встраиваемые модели
Модераторы: Olej, vikos
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
Olej » 31 май 2022, 13:21
Orange Pi One - Armbian GUI
Плата:
Код: Выделить всё
olej@orangepione:~$ inxi -Mxxx
Machine: Type: ARM Device System: Xunlong Orange Pi One details: Allwinner sun8i Family rev: N/A serial: 02c000815fd5e717
Процессор:
Код: Выделить всё
olej@orangepione:~$ inxi -Cxxxf
CPU: Topology: Quad Core model: ARMv7 v7l variant: cortex-a7 bits: 32 type: MCP arch: v7l rev: 5 bogomips: 0
Speed: 1008 MHz min/max: 480/1008 MHz Core speeds (MHz): 1: 1008 2: 1008 3: 1008 4: 1008
Features: edsp evtstrm fastmult half idiva idivt lpae neon thumb tls vfp vfpd32 vfpv3 vfpv4
Система:
Код: Выделить всё
olej@orangepione:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
Проверка инструментов:
Код: Выделить всё
olej@orangepione:~$ gcc --version
gcc (Debian 8.3.0-6) 8.3.0
Copyright (C) 2018 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Код: Выделить всё
olej@orangepione:~$ make --version
GNU Make 4.2.1
Эта программа собрана для arm-unknown-linux-gnueabihf
Copyright (C) 1988-2016 Free Software Foundation, Inc.
Лицензия GPLv3+: GNU GPL версии 3 или новее <http://gnu.org/licenses/gpl.html>
Это свободное программное обеспечение: вы можете свободно изменять его и
распространять. НЕТ НИКАКИХ ГАРАНТИЙ вне пределов, допустимых законом.
Olej
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
Olej » 31 май 2022, 13:29
По аналогии с
Raspbian модули ядра чтобы не ловить ошибки
...
Код: Выделить всё
olej@orangepione:~$ ls /lib/modules
5.15.25-sunxi
Код: Выделить всё
olej@orangepione:~$ ls /lib/modules/`uname -r`
kernel modules.builtin modules.builtin.modinfo modules.devname modules.symbols
modules.alias modules.builtin.alias.bin modules.dep modules.order modules.symbols.bin
modules.alias.bin modules.builtin.bin modules.dep.bin modules.softdep
Ожидаемо, что ссылки-каталога build там нет.
Код: Выделить всё
olej@orangepione:~$ aptitude search linux-headers
v linux-headers -
p linux-headers-4.19.0-18-all - All header files for Linux 4.19 (meta-package)
p linux-headers-4.19.0-18-all-armhf - All header files for Linux 4.19 (meta-package)
p linux-headers-4.19.0-18-armmp - Header files for Linux 4.19.0-18-armmp
p linux-headers-4.19.0-18-armmp-lpae - Header files for Linux 4.19.0-18-armmp-lpae
p linux-headers-4.19.0-18-common - Common header files for Linux 4.19.0-18
p linux-headers-4.19.0-18-common-rt - Common header files for Linux 4.19.0-18-rt
p linux-headers-4.19.0-18-rt-armmp - Header files for Linux 4.19.0-18-rt-armmp
p linux-headers-4.19.0-19-all - All header files for Linux 4.19 (meta-package)
p linux-headers-4.19.0-19-all-armhf - All header files for Linux 4.19 (meta-package)
p linux-headers-4.19.0-19-armmp - Header files for Linux 4.19.0-19-armmp
p linux-headers-4.19.0-19-armmp-lpae - Header files for Linux 4.19.0-19-armmp-lpae
p linux-headers-4.19.0-19-common - Common header files for Linux 4.19.0-19
p linux-headers-4.19.0-19-common-rt - Common header files for Linux 4.19.0-19-rt
p linux-headers-4.19.0-19-rt-armmp - Header files for Linux 4.19.0-19-rt-armmp
p linux-headers-4.19.0-20-all - All header files for Linux 4.19 (meta-package)
p linux-headers-4.19.0-20-all-armhf - All header files for Linux 4.19 (meta-package)
p linux-headers-4.19.0-20-armmp - Header files for Linux 4.19.0-20-armmp
p linux-headers-4.19.0-20-armmp-lpae - Header files for Linux 4.19.0-20-armmp-lpae
p linux-headers-4.19.0-20-common - Common header files for Linux 4.19.0-20
p linux-headers-4.19.0-20-common-rt - Common header files for Linux 4.19.0-20-rt
p linux-headers-4.19.0-20-rt-armmp - Header files for Linux 4.19.0-20-rt-armmp
p linux-headers-5.10.0-0.bpo.11-armmp - Header files for Linux 5.10.0-0.bpo.11-armmp
p linux-headers-5.10.0-0.bpo.11-armmp-lpae - Header files for Linux 5.10.0-0.bpo.11-armmp-lpae
p linux-headers-5.10.0-0.bpo.11-common - Common header files for Linux 5.10.0-0.bpo.11
p linux-headers-5.10.0-0.bpo.11-common-rt - Common header files for Linux 5.10.0-0.bpo.11-rt
p linux-headers-5.10.0-0.bpo.11-rt-armmp - Header files for Linux 5.10.0-0.bpo.11-rt-armmp
p linux-headers-5.10.0-0.bpo.12-armmp - Header files for Linux 5.10.0-0.bpo.12-armmp
p linux-headers-5.10.0-0.bpo.12-armmp-lpae - Header files for Linux 5.10.0-0.bpo.12-armmp-lpae
p linux-headers-5.10.0-0.bpo.12-common - Common header files for Linux 5.10.0-0.bpo.12
p linux-headers-5.10.0-0.bpo.12-common-rt - Common header files for Linux 5.10.0-0.bpo.12-rt
p linux-headers-5.10.0-0.bpo.12-rt-armmp - Header files for Linux 5.10.0-0.bpo.12-rt-armmp
p linux-headers-5.10.0-0.bpo.9-armmp - Header files for Linux 5.10.0-0.bpo.9-armmp
p linux-headers-5.10.0-0.bpo.9-armmp-lpae - Header files for Linux 5.10.0-0.bpo.9-armmp-lpae
p linux-headers-5.10.0-0.bpo.9-common - Common header files for Linux 5.10.0-0.bpo.9
p linux-headers-5.10.0-0.bpo.9-common-rt - Common header files for Linux 5.10.0-0.bpo.9-rt
p linux-headers-5.10.0-0.bpo.9-rt-armmp - Header files for Linux 5.10.0-0.bpo.9-rt-armmp
v linux-headers-armbian -
p linux-headers-armmp - Header files for Linux armmp configuration (meta-package)
p linux-headers-armmp-lpae - Header files for Linux armmp-lpae configuration (meta-package)
p linux-headers-current-imx6 - Linux kernel headers for 5.15.25-imx6 on armhf current
p linux-headers-current-meson - Linux kernel headers for 5.10.21-meson on armhf
p linux-headers-current-mvebu - Linux kernel headers for 5.15.25-mvebu on armhf current
p linux-headers-current-odroidxu4 - Linux kernel headers for 5.4.181-odroidxu4 on armhf
p linux-headers-current-rk322x - Linux kernel headers for 5.15.25-rk322x on armhf current
p linux-headers-current-rockchip - Linux kernel headers for 5.15.25-rockchip on armhf current
p linux-headers-current-sunxi - Linux kernel headers for 5.15.25-sunxi on armhf current
p linux-headers-edge-imx6 - Linux kernel headers for 5.15.11-imx6 on armhf edge
p linux-headers-edge-mvebu - Linux kernel headers for 5.16.9-mvebu on armhf edge
p linux-headers-edge-odroidxu4 - Linux kernel headers for 5.17.5-odroidxu4 on armhf edge
p linux-headers-edge-rk322x - Linux kernel headers for 5.17.5-rk322x on armhf edge
p linux-headers-edge-rockchip - Linux kernel headers for 5.17.5-rockchip on armhf edge
p linux-headers-edge-sunxi - Linux kernel headers for 5.17.5-sunxi on armhf edge
v linux-headers-generic -
p linux-headers-legacy-mt7623 - Linux kernel headers for 4.19.204-mt7623 on armhf
p linux-headers-legacy-mvebu - Linux kernel headers for 4.19.167-mvebu on armhf
p linux-headers-legacy-odroidxu4 - Linux kernel headers for 4.14.222-odroidxu4 on armhf
p linux-headers-legacy-rk322x - Linux kernel headers for 4.4.194-rk322x on armhf
p linux-headers-legacy-rockchip - Linux kernel headers for 4.4.213-rockchip on armhf
p linux-headers-legacy-sunxi - Linux kernel headers for 5.4.88-sunxi on armhf
p linux-headers-rt-armmp - Header files for Linux rt-armmp configuration (meta-package)
Код: Выделить всё
olej@orangepione:~$ sudo apt install linux-headers
[sudo] пароль для olej:
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Пакет linux-headers — виртуальный, его функции предоставляются пакетами:
linux-headers-edge-sunxi 22.05.0-trunk.0060
linux-headers-edge-rockchip 22.05.0-trunk.0064
linux-headers-edge-rk322x 22.05.0-trunk.0064
linux-headers-edge-odroidxu4 22.05.0-trunk.0064
linux-headers-edge-mvebu 22.02.0-trunk.0035
linux-headers-edge-imx6 21.11.0-trunk.115
linux-headers-current-sunxi 22.02.1
linux-headers-current-rockchip 22.02.1
linux-headers-current-rk322x 22.02.1
linux-headers-current-mvebu 22.02.1
linux-headers-current-imx6 22.02.1
Вы должны явно указать, какой именно вы хотите установить.
E: Для пакета «linux-headers» не найден кандидат на установку
Так вот просто - облом!
Olej
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
Olej » 31 май 2022, 13:38
Olej писал(а): ↑31 май 2022, 13:29
Так вот просто - облом!
Систему я устанавливал из имиджа Armbian_21.08.1_Orangepione_buster_current_5.10.60_xfce_desktop.img.xz (
Orange Pi One - Armbian GUI).
Могу
предположить что хэдеры они положили сюда:
Olej писал(а): ↑31 май 2022, 13:29
Код: Выделить всё
...
p linux-headers-current-sunxi - Linux kernel headers for 5.15.25-sunxi on armhf current
...
Код: Выделить всё
olej@orangepione:~$ sudo apt install linux-headers-current-sunxi
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Следующие НОВЫЕ пакеты будут установлены:
linux-headers-current-sunxi
Обновлено 0 пакетов, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 12,0 MB архивов.
После данной операции объём занятого дискового пространства возрастёт на 79,2 MB.
Пол:1 http://armbian.12z.eu/apt buster/main armhf linux-headers-current-sunxi armhf 22.02.1 [12,0 MB]
Получено 12,0 MB за 4с (2.803 kB/s)
Выбор ранее не выбранного пакета linux-headers-current-sunxi.
(Чтение базы данных … на данный момент установлено 136539 файлов и каталогов.)
Подготовка к распаковке …/linux-headers-current-sunxi_22.02.1_armhf.deb …
Распаковывается linux-headers-current-sunxi (22.02.1) …
Настраивается пакет linux-headers-current-sunxi (22.02.1) …
Compiling headers - please wait ...
На вот той строчке: Compiling headers - процессор достаточно сильно загружается:
Код: Выделить всё
olej@orangepione:~$ uptime
13:41:05 up 2 days, 18:14, 6 users, load average: 1,65, 0,54, 0,19
Olej
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
Olej » 31 май 2022, 13:45
Изменения очевидны:
Код: Выделить всё
olej@orangepione:~$ ls /lib/modules/`uname -r`
build modules.alias.bin modules.builtin.bin modules.dep.bin modules.softdep
kernel modules.builtin modules.builtin.modinfo modules.devname modules.symbols
modules.alias modules.builtin.alias.bin modules.dep modules.order modules.symbols.bin
Код: Выделить всё
olej@orangepione:~$ ls -l /lib/modules/`uname -r`/build
lrwxrwxrwx 1 root root 36 фев 27 11:23 /lib/modules/5.15.25-sunxi/build -> /usr/src/linux-headers-5.15.25-sunxi
Код: Выделить всё
olej@orangepione:~$ ls -lL /lib/modules/`uname -r`/build
итого 1280
drwxr-xr-x 25 root root 4096 мая 31 13:39 arch
drwxr-xr-x 3 root root 4096 мая 31 13:39 block
drwxr-xr-x 2 root root 4096 мая 31 13:39 certs
drwxr-xr-x 4 root root 4096 мая 31 13:39 crypto
drwxr-xr-x 8 root root 4096 мая 31 13:39 Documentation
drwxr-xr-x 138 root root 4096 мая 31 13:39 drivers
drwxr-xr-x 84 root root 4096 мая 31 13:39 fs
drwxr-xr-x 31 root root 4096 мая 31 13:39 include
drwxr-xr-x 2 root root 4096 мая 31 13:39 init
drwxr-xr-x 2 root root 4096 мая 31 13:39 ipc
-rw-r--r-- 1 root root 555 мая 31 13:39 Kconfig
drwxr-xr-x 19 root root 4096 мая 31 13:39 kernel
drwxr-xr-x 21 root root 4096 мая 31 13:39 lib
-rw-r--r-- 1 root root 65702 мая 31 13:39 Makefile
drwxr-xr-x 5 root root 4096 мая 31 13:39 mm
-rw-r--r-- 1 root root 1139837 мая 31 13:39 Module.symvers
drwxr-xr-x 72 root root 4096 мая 31 13:39 net
drwxr-xr-x 33 root root 4096 мая 31 13:39 samples
drwxr-xr-x 17 root root 12288 мая 31 13:41 scripts
drwxr-xr-x 14 root root 4096 мая 31 13:39 security
drwxr-xr-x 27 root root 4096 мая 31 13:39 sound
drwxr-xr-x 36 root root 4096 мая 31 13:39 tools
drwxr-xr-x 3 root root 4096 мая 31 13:39 usr
drwxr-xr-x 4 root root 4096 мая 31 13:39 virt
Olej
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
Olej » 31 май 2022, 13:51
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ pwd
/home/olej/2022/kernel/first_hello
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ ls
hello_printk.c Makefile printk.hist
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ cat hello_printk.c
#include <linux/module.h>
MODULE_LICENSE( "GPL" );
MODULE_AUTHOR( "Oleg Tsiliuric <olej@front.ru>" );
static int __init hello_init( void ) {
printk( "Hello, world!\n" );
return 0;
}
static void __exit hello_exit( void ) {
printk( "Goodbye, world!\n" );
}
module_init( hello_init );
module_exit( hello_exit );
Сборка модуля:
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ time make
make -C /lib/modules/5.15.25-sunxi/build M=/home/olej/2022/kernel/first_hello modules
make[1]: вход в каталог «/usr/src/linux-headers-5.15.25-sunxi»
CC [M] /home/olej/2022/kernel/first_hello/hello_printk.o
MODPOST /home/olej/2022/kernel/first_hello/Module.symvers
CC [M] /home/olej/2022/kernel/first_hello/hello_printk.mod.o
LD [M] /home/olej/2022/kernel/first_hello/hello_printk.ko
make[1]: выход из каталога «/usr/src/linux-headers-5.15.25-sunxi»
real 0m6,039s
user 0m4,109s
sys 0m1,670s
Olej
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
Olej » 31 май 2022, 13:55
Olej писал(а): ↑31 май 2022, 13:51
Сборка модуля:
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ ls -l *.ko
-rw-r--r-- 1 olej olej 3848 мая 31 13:49 hello_printk.ko
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ file hello_printk.ko
hello_printk.ko: ELF 32-bit LSB relocatable, ARM, EABI5 version 1 (SYSV), BuildID[sha1]=654d8e3a49c4b9eb9d0c0326f7fedb52124c232e, not stripped
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ modinfo hello_printk.ko
bash: modinfo: команда не найдена
olej@orangepione:~/2022/kernel/first_hello$ /sbin/modinfo hello_printk.ko
filename: /home/olej/2022/kernel/first_hello/hello_printk.ko
author: Oleg Tsiliuric <olej@front.ru>
license: GPL
depends:
name: hello_printk
vermagic: 5.15.25-sunxi SMP mod_unload ARMv7 thumb2 p2v8
Olej
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
Olej » 31 май 2022, 13:58
Загрузка модуля:
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ sudo insmod ./hello_printk.ko
[sudo] пароль для olej:
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ lsmod | head -n2
Module Size Used by
hello_printk 16384 0
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ dmesg | tail -n4
[89924.689933] oom_reaper: reaped process 10273 (compile), now anon-rss:0kB, file-rss:0kB, shmem-rss:0kB
[239336.319238] hello_printk: loading out-of-tree module taints kernel.
[239336.319381] hello_printk: module verification failed: signature and/or required key missing - tainting kernel
[239336.319728] Hello, world!
Модуль загружен!
Olej
-
Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
-
Контактная информация:
Непрочитанное сообщение
Olej » 31 май 2022, 14:01
Olej писал(а): ↑31 май 2022, 13:58
Модуль загружен!
Выгрузка модуля:
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ sudo rmmod hello_printk
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ lsmod | grep hello
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ lsmod | head -n2
Module Size Used by
l2tp_ppp 20480 0
Код: Выделить всё
olej@orangepione:~/2022/kernel/first_hello$ dmesg | tail -n4
[239336.319238] hello_printk: loading out-of-tree module taints kernel.
[239336.319381] hello_printk: module verification failed: signature and/or required key missing - tainting kernel
[239336.319728] Hello, world!
[239609.640016] Goodbye, world!
Olej
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 4 гостя