LV на OrangePi
-
- adviser
- Сообщения: 239
- Зарегистрирован: 06 ноя 2020, 15:37
- Версия LabVIEW: 19
- Благодарил (а): 19 раз
- Поблагодарили: 38 раз
- Контактная информация:
LV на OrangePi
LabVIEW устанавливается и работает на Orange Pi c процессором H3.
Установка по инструкции на raspberry.
Работает TCP соединение.
Устанавливается и работает postgresql сервер и клиент из LabVIEW.
Входы выходы из LINX toolkit не работают. Нужно разбираться с использованием WiringOP из Labview
Стоимость Orange Pi Zero около 1500 руб.
Думаю для обучения и всяких игрушек может подойти.
Запуск программы LabVIEW
Установка по инструкции на raspberry.
Работает TCP соединение.
Устанавливается и работает postgresql сервер и клиент из LabVIEW.
Входы выходы из LINX toolkit не работают. Нужно разбираться с использованием WiringOP из Labview
Стоимость Orange Pi Zero около 1500 руб.
Думаю для обучения и всяких игрушек может подойти.
Запуск программы LabVIEW
-
- adviser
- Сообщения: 239
- Зарегистрирован: 06 ноя 2020, 15:37
- Версия LabVIEW: 19
- Благодарил (а): 19 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: LV на OrangePi
Инструкция
1. Загрузить ОС armbian https://www.armbian.com/orange-pi-zero/
2. При первоначальной загрузке создать пользователя admin, задать пароль
3. Введите команды из блока ниже.
Примечание: текст может переноситься из-за размера окна веб-браузера. Я рекомендую скопировать текст в текстовый редактор, чтобы увидеть исходное форматирование.
4. Установка LINX
5. Отредактировать /etc/systemd/system/labview.service
After=networkg.service => After=networkging.service
6. reboot
7. Установка дополнительного программного обеспечения
7.1. MidnightCommander, htop
8. postgresql
8.1. pg_hba.cof добавить
8.2. postgresql.conf раскомментировать и изменить
8.3. Autostart postgresql
8.4. Install postgresql client to schroot
11. Установка драйверов для работы с GPIO (не проверено)
Ссылки
https://forums.ni.com/t5/NI-Linux-Real- ... anguage=en
https://www.labviewmakerhub.com/doku.ph ... -internals
http://feeds.angstrom-distribution.org/ ... -vfp/base/
Проверял, но с линуксом бывают разные варианты.
1. Загрузить ОС armbian https://www.armbian.com/orange-pi-zero/
2. При первоначальной загрузке создать пользователя admin, задать пароль
3. Введите команды из блока ниже.
Примечание: текст может переноситься из-за размера окна веб-браузера. Я рекомендую скопировать текст в текстовый редактор, чтобы увидеть исходное форматирование.
4. Установка LINX
Код: Выделить всё
1. # Update Armbian
admin@orangepizero:~$ sudo apt-get update
admin@orangepizero:~$ sudo apt-get dist-upgrade -y
2. # Add the LINX repository
admin@orangepizero:~$ sudo sh -c 'echo "deb [trusted=yes] http://feeds.labviewmakerhub.com/debian/ binary/" >> /etc/apt/sources.list'
3. admin@orangepizero:~$ sudo apt-get update
4. # Install the LINX package. Error messages will be displayed for the
nisysserver.service and labview.service
admin@orangepizero:~$ sudo apt-get install -y lvrt21-schroot
5. # link liblinxdevice.so to the Raspberry PI device driver file liblinxdevice_rpi2.so
admin@orangepizero:~$ sudo schroot -c labview -d /usr/lib -- ln -s liblinxdevice_rpi2.so liblinxdevice.so
Код: Выделить всё
admin@orangepizero:~$ sudo nano /etc/systemd/system/labview.service
[Unit]
Description=LabVIEW 2021 chroot run-time daemon
After=networkg.service
[Service]
Type=forking
PIDFile=/run/lvrt.pid
ExecStartPre=/usr/sbin/schroot-lv-start.sh
ExecStart=/usr/bin/schroot --run-session -c lv -- /etc/init.d/nilvrt start
ExecStop=/usr/bin/schroot --run-session -c lv -- /etc/init.d/nilvrt stop
ExecStopPost=/usr/bin/schroot --end-session -c lv
[Install]
WantedBy=multi-user.target
6. reboot
Код: Выделить всё
# check status nisysserver.service
admin@orangepizero:~$ sudo systemctl status nisysserver.service
● nisysserver.service - NI System Web Server (emulated)
Loaded: loaded (/etc/systemd/system/nisysserver.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-07-01 19:32:50 +07; 3 days ago
Main PID: 719 (NISysServer.py)
Tasks: 1 (limit: 905)
Memory: 6.5M
CPU: 1min 44.678s
CGroup: /system.slice/nisysserver.service
└─719 /usr/bin/python /usr/sbin/NISysServer.py
Jul 01 19:32:50 orangepizero systemd[1]: Started NI System Web Server (emulated).
Jul 01 19:32:57 orangepizero NISysServer.py[719]: 127.0.0.1 - - [01/Jul/2022 19:32:57] "GET publish?Main%20Application%20Instance>
Jul 01 19:48:21 orangepizero NISysServer.py[719]: 127.0.0.1 - - [01/Jul/2022 19:48:21] "GET publish?Main%20Application%20Instance>
lines 1-13/13 (END)
# check status labview.service
admin@orangepizero:~$ sudo systemctl status labview.service
● labview.service - LabVIEW 2021 chroot run-time daemon
Loaded: loaded (/etc/systemd/system/labview.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2022-07-01 19:48:21 +07; 3 days ago
Process: 1846 ExecStartPre=/usr/sbin/schroot-lv-start.sh (code=exited, status=0/SUCCESS)
Process: 1994 ExecStart=/usr/bin/schroot --run-session -c lv -- /etc/init.d/nilvrt start (code=exited, status=0/SUCCESS)
Main PID: 1998 (MainAppThread)
Tasks: 0 (limit: 905)
Memory: 60.0K
CPU: 1.136s
CGroup: /system.slice/labview.service
‣ 1998 ./lvrt
Jul 01 19:48:20 orangepizero systemd[1]: Starting LabVIEW 2021 chroot run-time daemon...
Jul 01 19:48:21 orangepizero schroot-lv-start.sh[1847]: lv
Jul 01 19:48:21 orangepizero schroot[1994]: pam_unix(schroot:session): session opened for user root(uid=0) by (uid=0)
Jul 01 19:48:21 orangepizero schroot[1994]: pam_unix(schroot:session): session closed for user root
Jul 01 19:48:21 orangepizero systemd[1]: Started LabVIEW 2021 chroot run-time daemon.
7.1. MidnightCommander, htop
Код: Выделить всё
admin@orangepizero:~$ sudo apt-get install mc
admin@orangepizero:~$ sudo apt-get install htop
Код: Выделить всё
admin@orangepizero:~$sudo apt-get install postgresql postgresql-client
postgresql-contrib
admin@orangepizero:~$ sudo -u postgres psql
postgres=# \password postgres
Enter new password for user "postgres":
Enter it again:
postgres=#
Код: Выделить всё
host all all 192.168.0.1/24 md5(trust)
Код: Выделить всё
listen_address = ‘*’ #
Код: Выделить всё
# Autostart postgresql
admin@orangepizero:~$ sudo systemctl enable postgresql
admin@orangepizero:~$ sudo systemctl restart postgresql
Код: Выделить всё
# Add feeds.angstrom repository
# run schroot session
admin@orangepizero:~$ sudo schroot --run-session -c lv
# Add repository
admin@orangepizero:~$ sudo sh -c 'echo "src/gz uri-armv6-vfp http://feeds.angstrom-distribution.org/feeds/v2014.12/ipk/glibc/armv6-vfp/base" >> /etc/opkg/base-feeds.conf'
admin@orangepizero:~$ opkg update
admin@orangepizero:~$ opkg install postgresql-client
postgresql-contrib
admin@orangepizero:~$ logout
# leave schroot session
# link libpq.so to the Raspberry PI device driver file libpq.so.5.??
admin@orangepizero:~$ schroot -c labview -d /usr/lib -- ln -s /usr/lib/arm-linux-gnueabihf/libpq.so.5.11 libpq.so
Код: Выделить всё
# Download
apt-get install -y git
git clone https://github.com/orangepi-xunlong/wiringOP.git
# Installation
# cd wiringOP
# ./build clean
# ./build
admin@orangepizero:~$ gpio readall
+------+-----+----------+------+---+ OPi H2 +---+------+----------+-----+------+
| GPIO | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | GPIO |
+------+-----+----------+------+---+----++----+---+------+----------+-----+------+
| | | 3.3V | | | 1 || 2 | | | 5V | | |
| 12 | 0 | SDA.0 | OFF | 0 | 3 || 4 | | | 5V | | |
| 11 | 1 | SCL.0 | OFF | 0 | 5 || 6 | | | GND | | |
| 6 | 2 | PA6 | OFF | 0 | 7 || 8 | 0 | OFF | TXD.1 | 3 | 198 |
| | | GND | | | 9 || 10 | 0 | OFF | RXD.1 | 4 | 199 |
| 1 | 5 | RXD.2 | OFF | 0 | 11 || 12 | 0 | OFF | PA07 | 6 | 7 |
| 0 | 7 | TXD.2 | OFF | 0 | 13 || 14 | | | GND | | |
| 3 | 8 | CTS.2 | OFF | 0 | 15 || 16 | 0 | OFF | SDA.1 | 9 | 19 |
| | | 3.3V | | | 17 || 18 | 0 | OFF | SCK.1 | 10 | 18 |
| 15 | 11 | MOSI.1 | OFF | 0 | 19 || 20 | | | GND | | |
| 16 | 12 | MISO.1 | OFF | 0 | 21 || 22 | 0 | OFF | RTS.2 | 13 | 2 |
| 14 | 14 | SCLK.1 | OFF | 0 | 23 || 24 | 0 | OFF | CE.1 | 15 | 13 |
| | | GND | | | 25 || 26 | 0 | OFF | PA10 | 16 | 10 |
+------+-----+----------+------+---+----++----+---+------+----------+-----+------+
| GPIO | wPi | Name | Mode | V | Physical | V | Mode | Name | wPi | GPIO |
+------+-----+----------+------+---+ OPi H2 +---+------+----------+-----+------+
https://forums.ni.com/t5/NI-Linux-Real- ... anguage=en
https://www.labviewmakerhub.com/doku.ph ... -internals
http://feeds.angstrom-distribution.org/ ... -vfp/base/
Проверял, но с линуксом бывают разные варианты.
-
- adviser
- Сообщения: 239
- Зарегистрирован: 06 ноя 2020, 15:37
- Версия LabVIEW: 19
- Благодарил (а): 19 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: LV на OrangePi
OPC UA сервер на OrangePi (проц AllWinner H3, H2+)
Скачать установить, активировать
NI Linux RT System Image
LabVIEW OPC UA Toolkit
Из архива
C:\Program Files (x86)\National Instruments\RT Images\OPCUA\20.6.0\Linux\armv7-a\niopcua.tar\data.tar.gz\data.tar\usr\local\natinst\lib\libni_opcua.so.20.6.0
Записать в OrangePi /run/schroot/mount/lv/usr/local/natinst/lib под рутом
Сделать 2 символические ссылки
Запустить сессию schroot
Далее команды из postinst архива C:\Program Files (x86)\National Instruments\RT Images\OPCUA\20.6.0\Linux\armv7-a\niopcua.tar
Про schroot можно прочитать
https://www.labviewmakerhub.com/doku.ph ... -internals
Скачать установить, активировать
NI Linux RT System Image
LabVIEW OPC UA Toolkit
Из архива
C:\Program Files (x86)\National Instruments\RT Images\OPCUA\20.6.0\Linux\armv7-a\niopcua.tar\data.tar.gz\data.tar\usr\local\natinst\lib\libni_opcua.so.20.6.0
Записать в OrangePi /run/schroot/mount/lv/usr/local/natinst/lib под рутом
Сделать 2 символические ссылки
Код: Выделить всё
sudo schroot -c labview -d /usr/local/natinst/lib -- ln -s libni_opcua.so.20.6.0 libni_opcua.so
sudo schroot -c labview -d /usr/local/natinst/lib -- ln -s libni_opcua.so.20.6.0 ni_opcua.so
Код: Выделить всё
sudo schroot --run-session -c lv
Код: Выделить всё
chmod 755 "/usr/local/natinst/lib/libni_opcua.so.20.6.0"
chmod 755 "/usr/local/natinst/lib/libni_opcua.so"
chmod 755 "/usr/local/natinst/lib/ni_opcua.so"
# create certificate store
mkdir -p "/var/local/natinst/certstore/opcua"
# chown lvuser:ni "/var/local/natinst/certstore/opcua" lvuser:ni такого пользователя и группы нет - пропустить либо заменить на root:root если копировали не под root
chmod 755 "/var/local/natinst/certstore/opcua"
# create xml files folder
mkdir -p "/usr/local/natinst/opcua"
# chown lvuser:ni "/usr/local/natinst/opcua" lvuser:ni такого пользователя и группы нет
chmod 755 "/usr/local/natinst/opcua"
https://www.labviewmakerhub.com/doku.ph ... -internals
-
- adviser
- Сообщения: 239
- Зарегистрирован: 06 ноя 2020, 15:37
- Версия LabVIEW: 19
- Благодарил (а): 19 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: LV на OrangePi
Автоматический перезапуск labview.service при зависании сервиса Labview. Изменить /etc/system/system/labview.service
Systemctl следит за работой сервиса и в случае выполнения недопустимых операций в сервисе, зависания сервиса закрывает, а в нашем случае перезагружает сервис.
Код: Выделить всё
[Unit]
Description=LabVIEW 2021 chroot run-time daemon
After=networking.target postgresql.service
StartLimitIntervalSec=500
StartLimitBurst=5
[Service]
Type=forking
PIDFile=/run/lvrt.pid
Restart=on-failure
RestartSec=5s
ExecStartPre=/usr/sbin/schroot-lv-start.sh
ExecStart=/usr/bin/schroot --run-session -c lv -- /etc/init.d/nilvrt start
ExecStop=/usr/bin/schroot --run-session -c lv -- /etc/init.d/nilvrt stop
ExecStopPost=/usr/bin/schroot --end-session -c lv
[Install]
WantedBy=multi-user.target
-
- adviser
- Сообщения: 239
- Зарегистрирован: 06 ноя 2020, 15:37
- Версия LabVIEW: 19
- Благодарил (а): 19 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: LV на OrangePi
Watchdog
Настройка /etc/watchdog.conf. Раскомментировать
Проверка статуса
Проверка срабатыватывания fork bomb. Через 16с компьютер должен перезагрузиться
Код: Выделить всё
admin@orangepizero:~$ sudo apt-get install watchdog
Код: Выделить всё
watchdog-device = /dev/watchdog
watchdog-timeout = 15
realtime = yes
priority = 1
max-load-5 = 18
max-load-15 = 12
Код: Выделить всё
admin@orangepizero:~$ systemctl status watchdog
● watchdog.service - watchdog daemon
Loaded: loaded (/lib/systemd/system/watchdog.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2023-06-15 08:37:39 +07; 21min ago
Process: 1523 ExecStartPre=/bin/sh -c [ -z "${watchdog_module}" ] || [ "${watchdog_module}" = "none" ] || /sbin/mod>
Process: 1524 ExecStart=/bin/sh -c [ $run_watchdog != 1 ] || exec /usr/sbin/watchdog $watchdog_options (code=exited>
Main PID: 1526 (watchdog)
Tasks: 1 (limit: 905)
Memory: 440.0K
CPU: 559ms
CGroup: /system.slice/watchdog.service
└─1526 /usr/sbin/watchdog
июн 15 08:37:39 dryer watchdog[1526]: interface: no interface to check
июн 15 08:37:39 dryer watchdog[1526]: temperature: no sensors to check
июн 15 08:37:39 dryer watchdog[1526]: no test binary files
июн 15 08:37:39 dryer watchdog[1526]: no repair binary files
июн 15 08:37:39 dryer watchdog[1526]: error retry time-out = 60 seconds
июн 15 08:37:39 dryer systemd[1]: Started watchdog daemon.
июн 15 08:37:39 dryer watchdog[1526]: repair attempts = 1
июн 15 08:37:39 dryer watchdog[1526]: alive=/dev/watchdog heartbeat=[none] to=root no_act=no force=no
июн 15 08:37:39 dryer watchdog[1526]: watchdog now set to 16 seconds
июн 15 08:37:39 dryer watchdog[1526]: hardware watchdog identity: sunxi-wdt
Код: Выделить всё
admin@orangepizero:~$ :(){ :|:& };:
-
- adviser
- Сообщения: 239
- Зарегистрирован: 06 ноя 2020, 15:37
- Версия LabVIEW: 19
- Благодарил (а): 19 раз
- Поблагодарили: 38 раз
- Контактная информация:
Re: LV на OrangePi
Автоматически запускаемое приложение при запуске контроллера:
Создать приложение в проекте для контроллера, скомпилировать, загрузить в контроллер - пункт меню Run as startup Отказаться перезагружать контроллер
Зайти в контроллер по SSH, перезагрузить сервис labview В итоге получаем приложение стартующее вместе с сервисом labview.
Сервис labview перезагружается при зависании (настройки выше)
Контроллер перезагружается при зависании Линукс.
Создать приложение в проекте для контроллера, скомпилировать, загрузить в контроллер - пункт меню Run as startup Отказаться перезагружать контроллер
Зайти в контроллер по SSH, перезагрузить сервис labview В итоге получаем приложение стартующее вместе с сервисом labview.
Сервис labview перезагружается при зависании (настройки выше)
Контроллер перезагружается при зависании Линукс.