Raspberry Pi: hard realtime Linux/Xenomai

встраиваемые модели

Модераторы: Olej, vikos

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi: hard realtime Linux/Xenomai

Непрочитанное сообщение Olej » 28 мар 2022, 01:29

Olej писал(а):
28 мар 2022, 01:22
Что-то это ничему не помогает... И придётся это делать вручную.
Хотя...

Код: Выделить всё

root@raspberrypi:~# fdisk -l /dev/mmcblk0
Disk /dev/mmcblk0: 3.7 GiB, 3997171712 bytes, 7806976 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0xb93bee23

Device         Boot Start     End Sectors  Size Id Type
/dev/mmcblk0p1       8192   96042   87851 42.9M  c W95 FAT32 (LBA)
/dev/mmcblk0p2      98304 7806975 7708672  3.7G 83 Linux

Код: Выделить всё

root@raspberrypi:~# mount | grep mmcblk0
/dev/mmcblk0p2 on / type ext4 (rw,noatime,data=ordered)
/dev/mmcblk0p1 on /boot type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
Сам раздел /dev/mmcblk0p2 расширен до размера 3.7Gb ... но структура EXT4 файловой системы покрывает только 1.5Gb.
И её нужно расширить!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi: hard realtime Linux/Xenomai

Непрочитанное сообщение Olej » 28 мар 2022, 01:53

Olej писал(а):
28 мар 2022, 01:29
Сам раздел /dev/mmcblk0p2 расширен до размера 3.7Gb ... но структура EXT4 файловой системы покрывает только 1.5Gb.
И её нужно расширить!
В принципе, ситуация привычная ... уже не раз проезжали.
Неприятность её в том, что она 2-уровневая: нужно расширить сам размер раздела на диске (SD карте) + расширить структуру EXT4 файловой системы (i-node и т.д.) на увеличенный раздел раздела.

И тут мне непонятно то, что раньше получалось:

Код: Выделить всё

root@raspberrypi:~# resize2fs /dev/mmcblk0p2
resize2fs 1.43.4 (31-Jan-2017)
Filesystem at /dev/mmcblk0p2 is mounted on /; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
resize2fs: Permission denied to resize filesystem

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi: hard realtime Linux/Xenomai

Непрочитанное сообщение Olej » 28 мар 2022, 02:06

Olej писал(а):
28 мар 2022, 01:53
И тут мне непонятно то, что раньше получалось:
Но ДО решения этих технических проблем я убеждаюсь что именно hard realtime система загружена:

Код: Выделить всё

root@raspberrypi:~# ls -l /dev/rtdm/
total 0
crw------- 1 root root 243, 0 Mar 28 00:31 autotune
crw------- 1 root root 251, 0 Mar 28 00:31 memdev-private
crw------- 1 root root 251, 1 Mar 28 00:31 memdev-shared
crw------- 1 root root 250, 0 Mar 28 00:31 memdev-sys
drwxr-xr-x 2 root root   1120 Mar 28 00:32 pinctrl-bcm2835
crw------- 1 root root 241, 0 Mar 28 00:31 switchtest
crw------- 1 root root 242, 0 Mar 28 00:31 timerbench

Код: Выделить всё

root@raspberrypi:~# ls -l /dev/rtdm/pinctrl-bcm2835
total 0
crw------- 1 root root 238,  0 Mar 28 00:32 gpio0
crw------- 1 root root 238,  1 Mar 28 00:32 gpio1
crw------- 1 root root 238, 10 Mar 28 00:32 gpio10
crw------- 1 root root 238, 11 Mar 28 00:32 gpio11
crw------- 1 root root 238, 12 Mar 28 00:32 gpio12
crw------- 1 root root 238, 13 Mar 28 00:32 gpio13
crw------- 1 root root 238, 14 Mar 28 00:32 gpio14
crw------- 1 root root 238, 15 Mar 28 00:32 gpio15
crw------- 1 root root 238, 16 Mar 28 00:32 gpio16
crw------- 1 root root 238, 17 Mar 28 00:32 gpio17
crw------- 1 root root 238, 18 Mar 28 00:32 gpio18
crw------- 1 root root 238, 19 Mar 28 00:32 gpio19
crw------- 1 root root 238,  2 Mar 28 00:32 gpio2
crw------- 1 root root 238, 20 Mar 28 00:32 gpio20
crw------- 1 root root 238, 21 Mar 28 00:32 gpio21
crw------- 1 root root 238, 22 Mar 28 00:32 gpio22
crw------- 1 root root 238, 23 Mar 28 00:32 gpio23
crw------- 1 root root 238, 24 Mar 28 00:32 gpio24
crw------- 1 root root 238, 25 Mar 28 00:32 gpio25
crw------- 1 root root 238, 26 Mar 28 00:32 gpio26
crw------- 1 root root 238, 27 Mar 28 00:32 gpio27
crw------- 1 root root 238, 28 Mar 28 00:32 gpio28
crw------- 1 root root 238, 29 Mar 28 00:32 gpio29
crw------- 1 root root 238,  3 Mar 28 00:32 gpio3
crw------- 1 root root 238, 30 Mar 28 00:32 gpio30
crw------- 1 root root 238, 31 Mar 28 00:32 gpio31
crw------- 1 root root 238, 32 Mar 28 00:32 gpio32
crw------- 1 root root 238, 33 Mar 28 00:32 gpio33
crw------- 1 root root 238, 34 Mar 28 00:32 gpio34
crw------- 1 root root 238, 35 Mar 28 00:32 gpio35
crw------- 1 root root 238, 36 Mar 28 00:32 gpio36
crw------- 1 root root 238, 37 Mar 28 00:32 gpio37
crw------- 1 root root 238, 38 Mar 28 00:32 gpio38
crw------- 1 root root 238, 39 Mar 28 00:32 gpio39
crw------- 1 root root 238,  4 Mar 28 00:32 gpio4
crw------- 1 root root 238, 40 Mar 28 00:32 gpio40
crw------- 1 root root 238, 41 Mar 28 00:32 gpio41
crw------- 1 root root 238, 42 Mar 28 00:32 gpio42
crw------- 1 root root 238, 43 Mar 28 00:32 gpio43
crw------- 1 root root 238, 44 Mar 28 00:32 gpio44
crw------- 1 root root 238, 45 Mar 28 00:32 gpio45
crw------- 1 root root 238, 46 Mar 28 00:32 gpio46
crw------- 1 root root 238, 47 Mar 28 00:32 gpio47
crw------- 1 root root 238, 48 Mar 28 00:32 gpio48
crw------- 1 root root 238, 49 Mar 28 00:32 gpio49
crw------- 1 root root 238,  5 Mar 28 00:32 gpio5
crw------- 1 root root 238, 50 Mar 28 00:32 gpio50
crw------- 1 root root 238, 51 Mar 28 00:32 gpio51
crw------- 1 root root 238, 52 Mar 28 00:32 gpio52
crw------- 1 root root 238, 53 Mar 28 00:32 gpio53
crw------- 1 root root 238,  6 Mar 28 00:32 gpio6
crw------- 1 root root 238,  7 Mar 28 00:32 gpio7
crw------- 1 root root 238,  8 Mar 28 00:32 gpio8
crw------- 1 root root 238,  9 Mar 28 00:32 gpio9
Это уже говорит что hard realtime Xenomai установлен!
Но и то (предполагаю! :-? ), что realtime драйвер (дополнительный, RTDM модели) для GPIO этой модели - установлен!

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi: hard realtime Linux/Xenomai

Непрочитанное сообщение Olej » 28 мар 2022, 11:57

Olej писал(а):
27 мар 2022, 23:43
sys 0m3,877s
Olej писал(а):
28 мар 2022, 01:22
Что-то это ничему не помогает... И придётся это делать вручную.
Причина ошибки raspi-config --expand-rootfs или общей Linux resize2fs - в ошибках внутри файловой системы / на /dev/mmcblk0p2
Но исправить эти ошибки e2fsck невозможно на смонтированной FS.
Я нашёл только такое простое решение:
1. вынуть SD карту из Raspberry Pi и вставить в адаптер USB для стационара...
2.

Код: Выделить всё

olej@R420:~$ mount | grep sdd
/dev/sdd1 on /media/olej/boot type vfat (rw,nosuid,nodev,relatime,uid=1000,gid=1000,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
/dev/sdd2 on /media/olej/rootfs type ext4 (rw,nosuid,nodev,relatime,uhelper=udisks2)

Код: Выделить всё

olej@R420:~$ sudo umount /dev/sdd2
[sudo] пароль для olej:       

Код: Выделить всё

lej@R420:~$ sudo e2fsck /dev/sdd2
e2fsck 1.45.5 (07-Jan-2020)
rootfs содержит файловую систем с ошибками, check forced.
...
rootfs: ***** ФАЙЛОВАЯ СИСТЕМА БЫЛА ИЗМЕНЕНА *****
rootfs: 52220/99424 files (1.0% non-contiguous), 357809/395520 blocks
Перепроверка:

Код: Выделить всё

olej@R420:~$ sudo e2fsck /dev/sdd2
e2fsck 1.45.5 (07-Jan-2020)
rootfs: clean, 52220/99424 files, 357809/395520 blocks
Изменение размера FS:

Код: Выделить всё

olej@R420:~$ sudo resize2fs /dev/sdd2
resize2fs 1.45.5 (07-Jan-2020)
Resizing the filesystem on /dev/sdd2 to 963584 (4k) blocks.
The filesystem on /dev/sdd2 is now 963584 (4k) blocks long.
3. Перемонтирование (вынули-вставили USB):

Код: Выделить всё

olej@R420:~$ df
df: /run/user/1000/doc: Операция не позволена
Файл.система   1K-блоков Использовано Доступно Использовано% Cмонтировано в
udev            49420176            0 49420176            0% /dev
tmpfs            9893608         2080  9891528            1% /run
/dev/sda5      114335908     39551488 69389516           37% /
tmpfs           49468024       333428 49134596            1% /dev/shm
tmpfs               5120            4     5116            1% /run/lock
tmpfs           49468024            0 49468024            0% /sys/fs/cgroup
/dev/nvme0n1p1 239315456    178406304 48682900           79% /home
/dev/sda1         523248         3312   519936            1% /boot/efi
/dev/sdb2      239839744    207551560 20061960           92% /home/olej/Загрузки
tmpfs            9893604           52  9893552            1% /run/user/1000
/dev/sdc1      614271992    495770892 87228192           86% /run/timeshift/backup
/dev/sdd2        3763904      1374292  2212896           39% /media/olej/rootfs
/dev/sdd1          43234        31582    11652           74% /media/olej/boot

Код: Выделить всё

olej@R420:~$ df | grep sdd
df: /run/user/1000/doc: Операция не позволена
/dev/sdd2        3763904      1374292  2212896           39% /media/olej/rootfs
/dev/sdd1          43234        31582    11652           74% /media/olej/boot
То что хотели - 39% !
Вставили в Raspberry Pi + загрузка...

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi: hard realtime Linux/Xenomai

Непрочитанное сообщение Olej » 28 мар 2022, 11:59

Olej писал(а):
28 мар 2022, 11:57
Вставили в Raspberry Pi + загрузка...

Код: Выделить всё

olej@R420:~$ ssh root@192.168.1.142
root@192.168.1.142's password: 
Linux raspberrypi 4.9.80-v7+ #3 SMP Tue Jun 4 10:44:43 CEST 2019 armv7l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Mon Mar 28 10:10:48 2022

model: Raspberry Pi 2 Model B Rev 1.1
compatible: brcm,bcm2836
My IP address is 192.168.1.142 

Xenomai/cobalt v3.0.8
root@raspberrypi:~#

Код: Выделить всё

root@raspberrypi:~# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        3763904 1374476   2212712  39% /
devtmpfs          474224       0    474224   0% /dev
tmpfs             474736       0    474736   0% /dev/shm
tmpfs             474736    6484    468252   2% /run
tmpfs               5120       4      5116   1% /run/lock
tmpfs             474736       0    474736   0% /sys/fs/cgroup
/dev/mmcblk0p1     43234   31582     11652  74% /boot
tmpfs              94944       0     94944   0% /run/user/0

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi: hard realtime Linux/Xenomai

Непрочитанное сообщение Olej » 28 мар 2022, 12:06

И как привычно:

Код: Выделить всё

root@raspberrypi:~# apt install mc
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following additional packages will be installed:
  mc-data
Suggested packages:
  arj catdvi | texlive-binaries dbview djvulibre-bin genisoimage gv imagemagick libaspell-dev links | w3m | lynx
  odt2txt poppler-utils python-boto python-tz xpdf | pdf-viewer
The following NEW packages will be installed:
  mc mc-data
0 upgraded, 2 newly installed, 0 to remove and 20 not upgraded.
Need to get 1723 kB of archives.
After this operation, 7016 kB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://fastmirror.pp.ua/raspbian/raspbian stretch/main armhf mc-data all 3:4.8.18-1 [1267 kB]
Get:2 http://fastmirror.pp.ua/raspbian/raspbian stretch/main armhf mc armhf 3:4.8.18-1 [456 kB]
Fetched 1723 kB in 1s (1023 kB/s)
apt-listchanges: Can't set locale; make sure $LC_* and $LANG are correct!
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
	LANGUAGE = (unset),
	LC_ALL = (unset),
	LC_TIME = "ru_UA.UTF-8",
	LC_MONETARY = "ru_UA.UTF-8",
	LC_ADDRESS = "ru_UA.UTF-8",
	LC_TELEPHONE = "ru_UA.UTF-8",
	LC_NAME = "ru_UA.UTF-8",
	LC_MEASUREMENT = "ru_UA.UTF-8",
	LC_IDENTIFICATION = "ru_UA.UTF-8",
	LC_NUMERIC = "ru_UA.UTF-8",
	LC_PAPER = "ru_UA.UTF-8",
	LANG = "en_GB.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_GB.UTF-8").
locale: Cannot set LC_ALL to default locale: No such file or directory
Selecting previously unselected package mc-data.
(Reading database ... 41698 files and directories currently installed.)
Preparing to unpack .../mc-data_3%3a4.8.18-1_all.deb ...
Unpacking mc-data (3:4.8.18-1) ...
Selecting previously unselected package mc.
Preparing to unpack .../mc_3%3a4.8.18-1_armhf.deb ...
Unpacking mc (3:4.8.18-1) ...
Processing triggers for mime-support (3.60) ...
Setting up mc-data (3:4.8.18-1) ...
Setting up mc (3:4.8.18-1) ...
Processing triggers for man-db (2.7.6.1-2) ...

Код: Выделить всё

root@raspberrypi:~# df
Filesystem     1K-blocks    Used Available Use% Mounted on
/dev/root        3763904 1382164   2205024  39% /
devtmpfs          474224       0    474224   0% /dev
tmpfs             474736       0    474736   0% /dev/shm
tmpfs             474736    6484    468252   2% /run
tmpfs               5120       4      5116   1% /run/lock
tmpfs             474736       0    474736   0% /sys/fs/cgroup
/dev/mmcblk0p1     43234   31582     11652  74% /boot
tmpfs              94944       0     94944   0% /run/user/0
Из SSH сессий:
Снимок экрана от 2022-03-28 12-05-32.png
Снимок экрана от 2022-03-28 12-05-32.png (91.43 КБ) 764 просмотра

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi: hard realtime Linux/Xenomai

Непрочитанное сообщение Olej » 28 мар 2022, 16:58

Olej писал(а):
28 мар 2022, 02:06
Это уже говорит что hard realtime Xenomai установлен!
Итак, некоторые предварительные итоги...
- Linux как realtime OS - несостоятелен ... хотя любая многозадачная OS в смысле realtime - несомтоятельня...
- многолетний проект Xenomai расширяет возможности Linux в область hard realtime (жёсткого реального времени)
Xenomai и real-time Linux
Adeos (Adaptive Domain Environment for Operating Systems)
xenomai website
Установка Xenomai в Debian
- установка Xenomai в Linux - громоздкая, требующая ручной пересборки ядра Linux...
- голландский университет Radbound University Nijmegen собирает имиджи OS Linux для аппаратуры Raspberry Pi ... они собирают их для своих учебных целей, групп ... но они время от времени обновляют их...
Xenomai General
Raspberry Pi images with Xenomai 3 on Raspbian linux
- чем возиться с непродуктивной сборкрй собственных образов под "самые последние" ядра Linux, проще взять готовые имиджи под Raspberry Pi ... потому что задачи, требующие realtime некритичны к особой свежести ядра Linux.
- брать, и использовать Raspbian Pi как он есть, тем более, что у него выведено всё GPIO для подключения внешних аппаратных устройств: см. GPIO

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi: hard realtime Linux/Xenomai

Непрочитанное сообщение Olej » 28 мар 2022, 20:59

Olej писал(а):
28 мар 2022, 16:58
Raspberry Pi images with Xenomai 3 on Raspbian linux
if you want to compile a kernel module using the linux headers you must also install the following package
linux-headers-4.9.80-rpi-xeno-3.0.8+_4.9.80-rpi-xeno-3.0.8+-1_armhf.deb

Note: if you want to compile a kernel module using these linux headers you must first run the following command:

Код: Выделить всё

cd  /usr/src/linux-headers-4.9.80-rpi-xeno-3.0.8+/
make -i modules_prepare

Код: Выделить всё

root@raspberrypi:~# uname -a
Linux raspberrypi 4.9.80-v7+ #3 SMP Tue Jun 4 10:44:43 CEST 2019 armv7l GNU/Linux
Обновлять ядро при использовании этой realtime сборки нельзя ни в коем случае! И так всё хорошо. :lol:

Код: Выделить всё

root@raspberrypi:~# ls -l *.deb
-rw-rw-r-- 1 root root 10609324 Mar 20 16:09 linux-headers-4.9.80-rpi-xeno-3.0.8+_4.9.80-rpi-xeno-3.0.8+-1_armhf.deb
root@raspberrypi:~# dpkg -i linux-headers-4.9.80-rpi-xeno-3.0.8+_4.9.80-rpi-xeno-3.0.8+-1_armhf.deb 
Selecting previously unselected package linux-headers-4.9.80-rpi-xeno-3.0.8+.
(Reading database ... 42070 files and directories currently installed.)
Preparing to unpack linux-headers-4.9.80-rpi-xeno-3.0.8+_4.9.80-rpi-xeno-3.0.8+-1_armhf.deb ...
Unpacking linux-headers-4.9.80-rpi-xeno-3.0.8+ (4.9.80-rpi-xeno-3.0.8+-1) ...
Setting up linux-headers-4.9.80-rpi-xeno-3.0.8+ (4.9.80-rpi-xeno-3.0.8+-1) ...

Код: Выделить всё

root@raspberrypi:~# ls -l /usr/src/
total 4
drwxr-xr-x 24 root root 4096 Mar 28 19:59 linux-headers-4.9.80-rpi-xeno-3.0.8+

Код: Выделить всё

root@raspberrypi:~# cd /usr/src/linux-headers-4.9.80-rpi-xeno-3.0.8+

root@raspberrypi:/usr/src/linux-headers-4.9.80-rpi-xeno-3.0.8+# ls
Documentation  Makefile        arch   certs   drivers	fs	 init  kernel  mm   samples  security  tools  virt
Kconfig        Module.symvers  block  crypto  firmware	include  ipc   lib     net  scripts  sound     usr
Ignore the errors, it just only needs to recompile the scripts in the linux headers folder. These scripts are in intel format in the package because I cross compiled these debian packages on an intel machine and somehow the scripts where compiled for the local platform instead of the arm platform, so therefore we need to recompile them on the pi it self.
Не обращайте внимания на ошибки, нужно всего лишь перекомпилировать скрипты в папке заголовков linux. Эти сценарии находятся в формате Intel в пакете, потому что я перекрестно скомпилировал эти пакеты Debian на машине Intel, и каким-то образом сценарии были скомпилированы для локальной платформы, а не для платформы Arm, поэтому нам нужно перекомпилировать их на самом Pi.

Код: Выделить всё

root@raspberrypi:/usr/src/linux-headers-4.9.80-rpi-xeno-3.0.8+# make -i modules_prepare
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/bin2c
  HOSTCC  scripts/kconfig/conf.o
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf  --silentoldconfig Kconfig
init/Kconfig:2169: can't open file "arch/arm/xenomai/Kconfig"
scripts/kconfig/Makefile:37: recipe for target 'silentoldconfig' failed
make[2]: [silentoldconfig] Error 1 (ignored)
  CHK     include/config/kernel.release
  UPD     include/config/kernel.release
  CHK     include/generated/uapi/linux/version.h
  CHK     include/generated/utsrelease.h
  UPD     include/generated/utsrelease.h
make[1]: *** No rule to make target 'arch/arm/tools/gen-mach-types', needed by 'include/generated/mach-types.h'.  Stop.
arch/arm/Makefile:315: recipe for target 'archprepare' failed
make: [archprepare] Error 2 (ignored)
scripts/kconfig/conf  --silentoldconfig Kconfig
init/Kconfig:2169: can't open file "arch/arm/xenomai/Kconfig"
scripts/kconfig/Makefile:37: recipe for target 'silentoldconfig' failed
make[3]: [silentoldconfig] Error 1 (ignored)
scripts/kconfig/conf  --silentoldconfig Kconfig
init/Kconfig:2169: can't open file "arch/arm/xenomai/Kconfig"
scripts/kconfig/Makefile:37: recipe for target 'silentoldconfig' failed
make[2]: [silentoldconfig] Error 1 (ignored)
  HOSTCC  scripts/dtc/dtc.o
  HOSTCC  scripts/dtc/flattree.o
  HOSTCC  scripts/dtc/fstree.o
  HOSTCC  scripts/dtc/data.o
  HOSTCC  scripts/dtc/livetree.o
  HOSTCC  scripts/dtc/treesource.o
  HOSTCC  scripts/dtc/srcpos.o
  HOSTCC  scripts/dtc/checks.o
  HOSTCC  scripts/dtc/util.o
  HOSTCC  scripts/dtc/dtc-lexer.lex.o
  HOSTCC  scripts/dtc/dtc-parser.tab.o
  HOSTLD  scripts/dtc/dtc
  HOSTCC  scripts/genksyms/genksyms.o
  HOSTCC  scripts/genksyms/parse.tab.o
  HOSTCC  scripts/genksyms/lex.lex.o
  HOSTLD  scripts/genksyms/genksyms
  CC      scripts/mod/empty.o
  HOSTCC  scripts/mod/mk_elfconfig
  MKELF   scripts/mod/elfconfig.h
  HOSTCC  scripts/mod/modpost.o
  CC      scripts/mod/devicetable-offsets.s
  GEN     scripts/mod/devicetable-offsets.h
  HOSTCC  scripts/mod/file2alias.o
  HOSTCC  scripts/mod/sumversion.o
  HOSTLD  scripts/mod/modpost
  HOSTCC  scripts/kallsyms
  HOSTCC  scripts/pnmtologo
  HOSTCC  scripts/conmakehash
  HOSTCC  scripts/sortextable
scripts/sortextable.c:31:32: fatal error: tools/be_byteshift.h: No such file or directory
 #include <tools/be_byteshift.h>
                                ^
compilation terminated.
scripts/Makefile.host:107: recipe for target 'scripts/sortextable' failed
make[1]: [scripts/sortextable] Error 1 (ignored)
:?: :oops:

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi: hard realtime Linux/Xenomai

Непрочитанное сообщение Olej » 28 мар 2022, 21:39

Olej писал(а):
28 мар 2022, 16:58
- Linux как realtime OS - несостоятелен ... хотя любая многозадачная OS в смысле realtime - несомтоятельня...
- многолетний проект Xenomai расширяет возможности Linux в область hard realtime (жёсткого реального времени)
Единственное (из известных мне) описание realtime, Linux, Xenomai (Кембриджский университет), 17 стр., с временными диаграммами тестирования:
How fast is fast enough? Choosing between Xenomai and Linux for real-time applications
Это на нашем форуме прикреплено (в виду его важности), оригинал здесь:
How fast is fast enough? Choosing between Xenomai and Linux for real-time applications

Аватара пользователя
Olej
Писатель
Сообщения: 21338
Зарегистрирован: 24 сен 2011, 14:22
Откуда: Харьков
Контактная информация:

Re: Raspberry Pi: hard realtime Linux/Xenomai

Непрочитанное сообщение Olej » 28 мар 2022, 21:48

Olej писал(а):
28 мар 2022, 16:58
- установка Xenomai в Linux - громоздкая, требующая ручной пересборки ядра Linux...
Я уже писал (и сам проделывал) ещё весной 2018 г. - Xenomai и real-time:
... будет вам realtime (с действительно очень хорошим детерминизмом), для этого:

1. пересобираем ядро Linux с патчем;
2. скачиваем, собираем и устанавливаем дистрибутив Xenomai (библиотеки, include и т.д.);
3. можем писать свои пользовательские приложения в нативном API Xenomai (это ранние наработки Xenomai);
4. можем писать realtime приложения в стандартном API POSIX, когда Xenomai маскирует многие системные вызовы Linux;
5. но если вам нужна обработка своих IRQ, драйвер собственных устройств (или не из числа немногих, реализуемых Xenomai) - то вам нужно писать собственные драйверы (kernel space), реализующие модель RTDM (RealTime Drivers Model);
4. точно так так же, для реализации realtime для Ethernet, TCP/IP, поскольку они сидят на IRQ от Ethernet адаптера, нужно использовать RTDM драйверы сетевых карт (которых совсем немного, около 10 моделей, в составе Xenomai);
5. и для обеспечения realtime для UDP/TCP они используют ещё один open-проект - RTnet, заменяющий способ доступа Ethernet к физ. среде на TDMA (каждый хост использует свой временной слот и не конкурирует за канал);
Другой путь, простой и быстрый, берите Raspberry Pi (за $25-30) с готовой сборкой realtime имиджа с Xenomai - и используйте полученное, начиная с п.3 ... о чём можно посмотреть и в той, ссылаемой выше теме.

Ответить

Вернуться в «Одноплатные компьютеры»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 2 гостя