Перейти к основному содержимому

3 записи с тегом "armbian"

Посмотреть все теги

Перенос blue-led на GPIO2B4 в Armbian

· 1 мин. чтения
dmn
maintainer

Перевод blue-led на GPIO2B4

Перевод blue-led на GPIO2B4 (Аrmbian). (В предыдущем примере GPIO3B3 попало на SPI1-CLK)

Файл конфигурации


root@rockpi-s:~# cat blue-led-gpio2b4-1.dts

/dts-v1/;
/plugin/;

/ {
fragment@0 {
/* у вас узел именно под /leds */
target-path = "/leds/blue-led";
__overlay__ {
gpios = <&gpio2 12 0>; /* GPIO2_B4, ACTIVE_HIGH */
linux,default-trigger = "heartbeat";
default-state = "on";
status = "okay";
};
};
};

#napi #dts

Перенос heartbeat диода на пользовательский GPIO через overlay

· 2 мин. чтения
dmn
maintainer

Как перенести "софтовым" методом heartbit (диод активности) с встроенного GPIO на свободный  

По умолчанию диод на GPIO находится на  GPIO0A5, у нас в NAPI его нет на "гребёнке",  подтому мы его перекинем на GPIO3B3, который есть на "гребёнке" и ничем не занят.

Научимся делать user-overlay к ядру 

Добавляем оверлей в Armbian

Сделать файл blue-led-gpio3b3-2.dts и добавить его как оверлей 

armbian-add-overlay blue-led-gpio3b3-2.dts

Команда сама скомпилирует dtbo, перенесем его в нужную папку и добавит запись в файл armbianEnv.txt.

Останется только перегрузится и убедиться, что диод "прикрепился" к нашему пину (визуально он станет сразу помигивать). Как проверить на каком GPIO оказался диод - в конце поста.

Файл dts для Armbian

/dts-v1/;
/plugin/;

/ {
fragment@0 {
     /* у вас узел именно под /leds */
     target-path = "/leds/blue-led";
     __overlay__ {
         gpios = <&gpio3 11 0>;      /* GPIO3_B3, ACTIVE_HIGH */
         linux,default-trigger = "heartbeat";
         default-state = "on";
         status = "okay";

         /* убрать pinctrl у конкретного LED, чтобы не валилось на -22 */
         /delete-property/ pinctrl-names;
         /delete-property/ pinctrl-0;
     };
};
};

Добавляем оверлей NapiLinux

Необходимо скомпилировать из dts файла, dtbo файл через утилиту dtc на любом Linux-хосте.

dtc -@ -I dts -O dtb -o blue-led-gpio3b3.dtbo blue-led-gpio3b3.dts

Делаем папку 

mkdir /boot/overlay-user Получившийся файл dtbo (blue-led-gpio3b3.dtbo) закинуть  в  /boot/overlay-user

Добавить строчку в файл /boot/uEnv.txt

user_overlays=blue-led-gpio3b3 Файл dts для NapiLinux

/dts-v1/;
/plugin/;

/ {
fragment@0 {
     /* у вас узел именно под /leds */
     /* target-path = "/leds/blue-led"; */
     target-path = "/gpio-leds/blue-led";
     __overlay__ {
         gpios = <&gpio3 11 0>;      /* GPIO3_B3, ACTIVE_HIGH */
         linux,default-trigger = "heartbeat";
         default-state = "on";
         status = "okay";

     };
};
};

Проверка на каком gpio blue-led 

hexdump -v -e '1/4 "0x%08X "' -e '"\n"' /proc/device-tree/gpio-leds/blue-led/gpios
Должно выдать: <phandle gpio3, 0x0000000B, 0x00000000>

#gpio #napi #dts

Установка Zigbee2mqtt на NAPI-C (P)

· 1 мин. чтения
dmn
maintainer

Устанавливаем на NAPI-C (P) Zigbee2mqtt

  1. Устанавливаем Аrmbian

  2. Ставим пакеты

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
  1. На случай если ставили не от рута нужно дать права на каталог
sudo chown -R ${USER}: /opt/zigbee2mqtt
  1. Скачиваем гит в каталог
git clone --depth 1 https://github.com/Koenkk/zigbee2mqtt.git /opt/zigbee2mqtt
  1. Переходим в каталог:
cd /opt/zigbee2mqtt
  1. Запустим tmux и продолжим сборку в нем:
tmux
  1. Собираем приложение

Запустим сборку в один поток

pnpm install --frozen-lockfile --child-concurrency=1 6.1
  1. После сборки выполняем запуск
cd /opt/zigbee2mqtt
pnpm start
  1. Делаем сервис

Создаем файл

nano /etc/systemd/system/zigbee2mqtt.service

С таким содержимым

[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
  1. Выполняем инициализацию и запуск сервиса
systemctl daemon-reload
systemctl enable zigbee2mqtt.service
systemctl start zigbee2mqtt.service
systemctl status zigbee2mqtt.service
journalctl -u zigbee2mqtt.service -f

#napi #zigbee $zigbee2mqtt