Рубрики
napi

rkdevtool / debian / install

Link:

https://github.com/rockchip-linux/rkdeveloptool

Install

0. Ставим пакеты:
apt install git libudev-dev libusb-1.0-0-dev dh-autoreconf
 
# На случай ошибки при configure с libusb, нужно доставить эти пакеты:
apt install pkg-config libusb-1.0

1. Качаем дистрибутив rkdevtool
cd /opt
git clone https://github.com/rockchip-linux/rkdeveloptool

2. Входим в каталог 
cd  /opt/rkdeveloptool

3. Выполняем:
./autogen.sh

4. Выполняем:
./configure

!!!  если все успешно то у вас появится Makefile

5. Производим сборку 
make

6. Производим установку в систему:
make install 

Основные команды:

rkdevtool ld - показать устройства в maskrom
rkdevtool db name_boot_loder - загрузка загрузчика (мелкий файл)
rkdevtool wl 0 name_image - загрузка образа системы (большой файл)

Пустой образ или затереть nand:

создаем образ пустой
dd if=/dev/zero cont=500 bs=1M of=zero.img
rkdevtool db грузим_загручик
записываем пустышку
rkdevtool wl 0 zero.img 
Рубрики
napi

zigbee2mqtt / napi / arbian

Link:

https://www.zigbee2mqtt.io/
https://www.zigbee2mqtt.io/guide/installation/01_linux.html
https://docs.jethome.ru/ru/controllers/linux/howto/zigbee2mqtt.html

Setup:

# Ставлю под рутом ^_^

0. Ставим пакеты:
apt-get install -y curl
curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
apt-get install -y nodejs git make g++ gcc libsystemd-dev tmux
apt install -y mosquitto mosquitto-clients
corepack enable

1. Создадим каталог
mkdir /opt/zigbee2mqtt

2. На случай если ставили не от рута нужно дать права на каталог
sudo chown -R ${USER}: /opt/zigbee2mqtt

3. Скачиваем гит в каталог
git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt

4. Переходим в каталог:
cd /opt/zigbee2mqtt

5. Запустим tmux и продолжим сборку в нем:
tmux

6. Собираем приложение:
pnpm install --frozen-lockfile

6.1 !!! Вот тут могут возникнуть проблемы, если у вас мало оперативки скорее всего сборка зависнет, запустим в один поток сборку
pnpm install --frozen-lockfile --child-concurrency=1

7. После сборки выполняем запуск: 
cd /opt/zigbee2mqtt
pnpm start

Пример сервиса:

cat > /etc/systemd/system/zigbee2mqtt.service << "EOF"
[Unit]
Description=zigbee2mqtt
After=network.target

[Service]
Environment=NODE_ENV=production
Type=simple
ExecStart=/usr/bin/pnpm start
WorkingDirectory=/opt/zigbee2mqtt
StandardOutput=inherit
StandardError=inherit
Restart=always
RestartSec=10


[Install]
WantedBy=multi-user.target
EOF


systemctl daemon-reload
systemctl enable zigbee2mqtt.service
systemctl start zigbee2mqtt.service
systemctl status zigbee2mqtt.service
journalctl -u zigbee2mqtt.service -f

Update Zigbee2MQTT to the latest version

cd /opt/zigbee2mqtt
./update.sh
Рубрики
napi

yocto napi наша

0. Подготовка системы  debian/ubuntu:
apt install lz4 vim sudo gawk wget git-core diffstat unzip texinfo gcc-multilib build-essential chrpath socat cpio python3 python3-pip python3-pyelftools python3-pexpect xz-utils debianutils iputils-ping libsdl1.2-dev xterm

1. Опционально, команда python выполняет python3
update-alternatives --install /usr/bin/python python /usr/bin/python3 1


2. Настраиваем локаль:
vim /etc/locale.gen
-------------------
en_US.UTF-8           <---------- найти и раскоментить
------------------
 
Перечитать local:
locale-gen
На этом все, теперь у вас должна появится local en_US.UTF-8


3. Создаем пользователя например useryocto
useradd useryocto
Входим под пользователем useryocto
su -  useryocto

 
4.  Создаем директорию yocto и cкачиваем репазитори napi
mkdir yocto
cd yocto
git clone --depth 1 git://git.yoctoproject.org/poky -b kirkstone
cd poky
git clone --depth 1 git://git.openembedded.org/meta-openembedded.git -b kirkstone
git clone --depth 1 git://git.yoctoproject.org/meta-arm.git -b kirkstone
git clone --depth 1 https://gitlab.nnz-ipc.net/pub/napilinux/meta-influx.git -b kirkstone
git clone --depth 1 https://gitlab.nnz-ipc.net/pub/napilinux/meta-nnz.git -b kirkstone
git clone --depth 1 https://github.com/sbabic/meta-swupdate -b kirkstone
git clone git://git.yoctoproject.org/meta-raspberrypi -b kirkstone

5. После загрузки выполняем 
source oe-init-build-env

6. На этом этапе мы можем скопировать настроенные слои
# napi image :
# -- # cp ../meta-nnz/conf/bblayers.conf.sample.napi conf/bblayers.conf
# frontcontrol image:
# -- # cp ../meta-nnz/conf/bblayers.conf.sample.fc conf/bblayers.conf
Я копирую слой для rpi
cp ../meta-nnz/conf/bblayers.conf.sample.rpi conf/bblayers.conf

7. Еще нужно добавить основной конфиг в котором мы в будущем выберем нужную платформу
cp ../meta-nnz/conf/local.conf.sample conf/local.conf


8. Редактируем файл local.conf
vim conf/local.conf 
---------------------------
MACHINE ?= "napi-rk3308b-s"  <----------------- ищем строку MACHINE
---------------------------
Возможные варианты: 
MACHINE ?=  "napi-rk3308b-s"
MACHINE ?= "napi-rk3308"
MACHINE ?= "roc-pc-rk3328"
MACHINE ?= "rockpro64-rk3399"


9. Сборка
Возможные варианты сборки:
nnz-frontcontrol-image
nnz-napi-image
nnz-napi-image-dev
nnz-napi-image-dev-noupdate


Пример сборки:
bitbake -k nnz-frontcontrol-image

Загрузка  исходников без сборки:
bitbake nnz-frontcontrol-image --runall=fetch
bitbake nnz-napi-image --runall=fetch
bitbake nnz-napi-image-dev --runall=fetch
bitbake nnz-napi-image-dev-noupdate --runall=fetch

Ошибка:
Я собирал от пользователя user и архивы закинул другому пользователю и получил ошибку:
Error, TMPDIR has changed location. 
You need to either move it back to /home/user/yocto/poky/build/tmp or delete it and rebuild
Просто удалил файлы сборки из tmp, так как в архиве были нужные исходники для сборки, а самой сборки не производилось.
rm -rf ~/yocto/poky/build/tmp

10. Собранные имеджи искать тут:
~/yocto/poky/build/tmp/deploy/images


11. Учетные данные по умолчанию.
Username: root
Password: napilinux


Прошивка napi (rk3308)

Ссылки:
бутлодеры:
https://dl.radxa.com/rockpis/images/loader/ 
Образы napi:
https://download.napilinux.ru/linuximg/

Компоненты для rkdeveloptool
sudo apt-get install libudev-dev libusb-1.0-0-dev dh-autoreconf


rkdeveloptool
git clone https://github.com/rockchip-linux/rkdeveloptool
cd rkdeveloptool
autoreconf -i
./configure
make
cp rkdeveloptool /usr/local/bin/

Убедится что нету других rkdeveloptool
whereis  rkdeveloptool



Команды rkdeveloptool
rkdeveloptool - справка
rkdeveloptool ld - лист устройств
rkdeveloptool db  <файл загрузчика> - загрузка бутлодера
rkdeveloptool wl 0 <файл образа> - загрузка прошивки

Порядок прошивки:
0. нажимаем и удерживаем клавишу Maskrom, затем коротко нажимаем клавишу Reset не отпускаем Maskrom, через несколько секунд отпускаем Maskrom;
1. Грузим бутлодер
sudo rkdeveloptool db rk3308_loader_uart0_m0_emmc_port_support_sd_20190717.bin
Или
sudo rkdeveloptool db  rk3308_loader_ddr589MHz_uart0_m0_v2.06.136sd.bin
!!! Если бутлодер не правильный или вы его не загрузили, то получите ошибку: Write LBA failed!


2. Прошиваем прошивку
sudo rkdeveloptool wl 0 <файл образа>
Пример:
rkdeveloptool wl 0 napi-rk3308b-s-latest-dev.img


P.S Очистка nand:
Создаем пустой файл с помощью dd
dd if=/dev/zero of=./zero.img bs=4M count=10
Шьем этим файлом.
rkdeveloptool db  <файл загрузчика> - загрузка бутлодера
rkdeveloptool wl 0 zero.img
minicom -D /dev/ttyUSB1 -b15000000
Рубрики
napi

modbus gw

Links:

https://www.modbusdriver.com/modpoll.html

Начало:

## Что у нас есть

/dev/ttyS0 - порт 485 на напи
115200 - скорость
полярность:
a +
b - 

Для GW modbus:

1 . Создать необходимые директории и файлы:
#/etc/mbusd/mbusd-ttyS0.conf
#  Внимание имя конфиг файла должно иметь правильное название
# для  mbusd@ttyS1.service  файл будет иметь название mbusd-ttyS1.conf и etc.
# а иначе если файла не будет, то сервис запустится с параметрами по умолчанию 


mkdir /etc/mbusd
touch /etc/mbusd/mbusd-ttyS0.conf


2. Запуск демона.

systemctl enable mbusd@ttyS0.service
systemctl start mbusd@ttyS0.service
systemctl status mbusd@ttyS0.service

3. Настроить правильно конфиг:
Пример конфига:
https://github.com/3cky/mbusd/blob/master/conf/mbusd.conf.example

Тут нужно поменять :
device = /dev/ttyS3
speed = 115200
maxconn = 100 
timeout = 10 
pause = 50  
wait = 50


default conf:

#############################################
#                                           #
#    Sample configuration file for mbusd    #
#                                           #
#############################################

########## Serial port settings #############

# Serial port device name
device = /dev/ttyS0

# Serial port speed
speed = 9600

# Serial port mode
mode = 8n1

# RS-485 data direction control type (addc, rts, sysfs_0, sysfs_1)
trx_control = addc

# Sysfs file to use to control data direction
# trx_sysfile =

############# TCP port settings #############

# TCP server address to bind
address = 0.0.0.0

# TCP server port number
port = 502

# Maximum number of simultaneous TCP connections
maxconn = 32

# Connection timeout value in seconds
timeout = 60

######### Request/response settings #########

# Maximum number of request retries
retries = 3

# Pause between requests in milliseconds
pause = 100

# Response wait time in milliseconds
wait = 500

# Reply on Broadcast
replyonbroadcast = no

modpoll:

https://www.modbusdriver.com/modpoll.html
cd /opt
wget https://www.modbusdriver.com/downloads/modpoll.tgz 
tar -xvf modpoll.tgx
cd modpoll 


mbpoll -b 9600 -p none -m rtu -a 1 -r 515 /dev/ttyS3

modpoll -m tcp -t3 -a1 -r 515 -c 1 192.168.16.153
modpoll -0 -b 9600 -p none -m rtu -a 1 -t 3 -r 512  /dev/ttyUSB0
modpoll -0 -b 9600 -p none -m rtu -a 1 -t 3 -r 512  /dev/ttyUSB1

modpoll -m rtu -a 1 -b 9600 -p none -t 4:int -c 10 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -t 4:int -r 1 -c 62 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -t 4:int -r 1 -c 1 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -t 4:int -r 99 -c 1 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -r 1 -c 125 /dev/ttyS1
modpoll -m rtu -a 1 -b 9600 -p none -t 4:hex -r 1 -c 125 /dev/ttyS1
modpoll -m rtu -b 9600 -p none  -c 125 -a 1 -r 1 -0 /dev/ttyS1

modpoll -0 -b 9600 -p none -m rtu  /dev/ttyS1
modpoll -0 -b 115200 -p none -m rtu -a 2 -t 3 -r 512  /dev/ttyS4


modpoll -m rtu -a 1 -b 9600 -p none -r100  /dev/ttyS1
modpoll -m tcp -a1 -r 100 -c 1 192.168.16.147

Пример конфига:

root@napi-redkoala:~# cat /boot/uEnv.txt
verbosity=7
fdtfile=rk3308-napi-c.dtb
console=ttyS0,1152008
overlays=rk3308-usb20-host rk3308-i2c1-ds1307 rk3308-uart1
#overlays=rk3308-uart1 rk3308-uart2 rk3308-uart3 rk3308-i2c1-ds1338 rk3308-i2c3-m0 rk3308-usb20-host rk3308-spi1-w5500
kernelimg=Image
extraargs=

PM-3112-160

https://www.modbusdriver.com/modpoll.html
mbpoll -0 -b 9600 -P none -a 1 -t 3 -r 515 /dev/ttyUSB0
modpoll -0 -b 9600 -p none -m rtu -a 1 -t 3 -r 515  /dev/ttyUSB0


Настройки портов пример:
stty -F /dev/ttyS3 #посмотреть текущие настройки 
stty -F /dev/ttyS3 115200 cs8 -parenb -cstopb #установить настройки