doc:jroboplc:setup_raspbian_jessie

This is an old revision of the document!


Настройка Raspberry Pi для jrobo

Проверено на оборудовании:

  • Raspberry Pi 2 Model B
  • Raspberry Pi 3 Model B

Скачать образ Raspbian Lite https://www.raspberrypi.org/downloads/raspbian/

Установка образа:

df -h
sudo umount /dev/sdc1
sudo dd if=pi-jrobo.img of=/dev/sdc bs=4M conv=fsync status=progress
sync

Сохранение образа:

sudo dd of=pi-jrobo.img if=/dev/sdc bs=4M conv=fsync status=progress

Имя образа и диска заменить на свои!

user: pi
pass: raspberry
sudo raspi-config
  • Change User Password / jradmin
  • Network Options / Hostname / jrobo
  • Boot Options / Wait for Network at Boot / No
  • Localization Options
    • Change Locale / Select:
      • en_US.UTF-8 UTF-8 (default)
      • ru_RU.UTF-8 UTF-8
    • Change Timezone/ Asia-Barnaul
    • Change Keyboard Layout/ American US
  • Interfaciong Options
    • SSH / Yes
    • I2C / Yes
    • Serial
      1. NO - login over serial disabled
      2. Yes - serial port enabled
 Для дистрибутива stretch (апрель 2019) также требуется отключить блютус и поиграть с частотами в /boot/config.txt - говенное решение пользовать последовательный порт на raspberry,
 также последовательные порты мапятся на /dev/serial0, и /dev/serial1 - добро пожаловать к танцу с бубном
 Алексей, сделай своё решение, раз тебе это говенное.
sudo apt-get install mc telnet dos2unix nmap minicom rsync
sudo mcedit /etc/default/keyboard
XKBLAYOUT="us"
sudo mcedit /etc/ssh/sshd_config
UseDNS no

sudo mcedit /etc/dhcpcd.conf

interface eth0
static ip_address=192.168.2.210/24
static routers=192.168.2.1
static domain_name_servers=192.168.2.1

src

sudo cp /etc/network/interfaces /etc/network/interfaces.bak
sudo mcedit /etc/network/interfaces
auto eth0
iface eth0 inet static
address 192.168.1.210
netmask 255.255.255.0           
gateway 192.168.1.210           
dns-nameservers 8.8.4.4 8.8.8.8
$ nmcli device status
DEVICE         TYPE      STATE                   CONNECTION         
eth0           ethernet  connected               Wired connection 1 
lo             loopback  connected (externally)  lo                 
wlan0          wifi      disconnected            --        
  
$ sudo nmtui edit "Wired connection 1"

$ sudo systemctl restart NetworkManager

sudo nmtui

Подключение адаптера RS-232

Raspberry Pi Адаптер
4: +5V VCC
6: GND GND
8: TXD RXD
10: RXD TXD

У адаптера микросхема с ножками: 11 - RX 12 - TX

обычно порядок такой: VCC TXD RXD GND

В общем-то, можно и не использовать часы, если настроить синхронизацию времени с windows-компом

sudo apt-get install python-smbus i2c-tools
sudo apt-get purge fake-hwclock ntp
sudo apt-get install ntpdate

Add at the end:

sudo mcedit /boot/config.txt
dtoverlay=i2c-rtc,ds3231

Add the line (above “exit 0”):

sudo mcedit /etc/rc.local
/sbin/hwclock -s

Change:

sudo mcedit /etc/init.d/hwclock.sh
HWCLOCKACCESS=no

reboot

sudo date -s "10 OCTOBER 2016 10:00:00"
sudo hwclock -w  

<html> <!–

sudo su
apt-get remove --purge triggerhappy logrotate dbus dphys-swapfile 
apt-get autoremove --purge
apt-get install busybox-syslogd
dpkg --purge rsyslog
rm -rf /var/lib/dhcp/ /var/run /var/spool /var/lock /var/lib/systemd/random-seed
ln -s /tmp /var/lib/dhcp; ln -s /tmp /var/run; ln -s /tmp /var/spool; ln -s /tmp /var/lock; ln -s /tmp/random-seed /var/lib/systemd/random-seed

/boot/cmdline.txt добавить в конец строки:

noswap ro

/etc/systemd/system/dhcpcd5 исправить:

  PIDFile=/var/run/dhcpcd.pid

/lib/systemd/system/systemd-random-seed.service добавить строку в секцию [Service]:

  ExecStartPre=/bin/echo "" >/tmp/random-seed
systemctl daemon-reload
insserv -r bootlogs; insserv -r console-setup  
mkdir /data;chmod 777 /data
touch /bin/rw;echo 'mount -o remount,rw /'>/bin/rw;chmod 777 /bin/rw
touch /bin/ro;echo 'mount -o remount,ro /'>/bin/ro;chmod 777 /bin/ro

fstab:

proc            /proc           proc    defaults                        0       0
/dev/mmcblk0p1  /boot           vfat    defaults,ro                     0       2
/dev/mmcblk0p2  /               ext4    defaults,noatime,nodiratime,ro  0       1
/dev/mmcblk0p3  /data           ext4    defaults,noatime,nodiratime,rw  0       1

tmpfs           /tmp            tmpfs   nosuid,nodev                    0       0
tmpfs           /var/log        tmpfs   nosuid,nodev                    0       0
tmpfs           /var/tmp        tmpfs   nosuid,nodev                    0       0

reboot

Для откл и вкл readonly режима соответственно:

sudo rw
sudo ro

Cоздать файл /home/pi/softshut/softshut.py

/etc/rc.local:

# add this line before "exit 0"
python /home/pi/softshut/softshut.py &

Установить адаптер, как показано на картинке:

Для того, чтобы ПЛК определял, что БП работает от батареи, сигнал AC_OK блока питания заводится на вход GPIO адаптера по схеме:

Вариант настройки для работы с встроенным модулем ИБП PIco HV 3.0A.

Исходное состояние - PIco не установлен на плату RPi. Включить I2C через raspi-config:

sudo raspi-config
sudo apt-get update
sudo apt-get dist-upgrade
sudo apt-get -y install python-rpi.gpio git python-dev python-serial python-smbus python-jinja2 python-xmltodict python-psutil python-pip
sudo git clone https://github.com/modmypi/PiModules.git
cd PiModules/code/python/package
sudo python setup.py install
cd ../upspico/picofssd
sudo python setup.py install
sudo systemctl enable picofssd.service

Выключить pi, установить pico, включить.

Управление сервисом:

sudo systemctl start picofssd.service
sudo systemctl stop picofssd.service
sudo apt-get -y install i2c-tools

sudo mcedit /etc/modules

i2c-bcm2708
i2c-dev
rtc-ds1307

sudo mcedit /boot/config.txt дописать в конце:

enable_uart=1
dtoverlay=i2c-rtc,ds1307

reboot

sudo apt-get -y remove fake-hwclock && sudo update-rc.d -f fake-hwclock remove

sudo mcedit /lib/udev/hwclock-set закомментировать:

#if [ -e /run/systemd/system ] ; then
# exit 0
#fi
sudo date -s "04 MAY 2017 13:31:00"
sudo hwclock -w
sudo hwclock -r

–> </html>

Скачать JDK 8 (Linux ARM v6/v7 Hard Float ABI) здесь и скопировать в /data. Номер версии (101) заменить на нужный.

sudo su
mkdir /usr/lib/jvm
mv /data/jdk-8u101-linux-arm32-vfp-hflt.tar.gz /usr/lib/jvm
cd /usr/lib/jvm
tar xzvf jdk-8u101-linux-arm32-vfp-hflt.tar.gz
rm jdk-8u101-linux-arm32-vfp-hflt.tar.gz
ln -s jdk1.8.0_101 java-8-oracle
sudo mkdir /data
sudo chmod 777 /data
sudo mkdir /usr/lib/jvm
sudo chmod 777 /usr/lib/jvm

# скопировать дистрибутив с другого компа при помощи mc/Shell Link... пример адреса:
denis@192.168.1.44/home/denis/Public/1

cd /usr/lib/jvm
# перенести дистрибутив и распаковать
tar -xzvf jdk-8u391-linux-aarch64.tar.gz
sudo ln -s jdk1.8.0_391 java-8-oracle
temperature.sh
#!/bin/bash
cpuTemp0=$(cat /sys/class/thermal/thermal_zone0/temp)
cpuTemp1=$(($cpuTemp0/1000))
cpuTemp2=$(($cpuTemp0/100))
cpuTempM=$(($cpuTemp2 % $cpuTemp1))
 
echo CPU temp"="$cpuTemp1"."$cpuTempM"'C"
echo GPU $(/opt/vc/bin/vcgencmd measure_temp)
  • doc/jroboplc/setup_raspbian_jessie.1768734226.txt.gz
  • Last modified: 2026/01/18 14:03
  • by 127.0.0.1