модули и /proc

Вопросы программного кода и архитектуры Linux

Модератор: Olej

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

модули и /proc

Непрочитанное сообщение Olej » 29 июн 2022, 19:51

Это возможность диагностики из ядра + возможность управлять параметрами ядра.
Создаём имена (и иерархии каталогов) в /proc и - читаем оттуда + пишем туда ... управляем параметрами ядра "на ходу" :lol:
Вложения
procfs.265.tgz
(20.35 КБ) 29 скачиваний

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

Re: модули и /proc

Непрочитанное сообщение Olej » 30 июн 2022, 11:29

Olej писал(а):
29 июн 2022, 19:51
Создаём имена (и иерархии каталогов) в /proc и - читаем оттуда + пишем туда ...

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

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ sudo insmod mod_proc.ko

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ echo $?
0

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ ls -l /proc/mod_*
-rw-rw-rw- 1 root root 0 июн 24 15:09 /proc/mod_node

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ cat /proc/mod_node
.........1.........2.........3.........4.........5

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ echo new_string > /proc/mod_node

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ cat /proc/mod_node
new_string

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ dmesg | tail -n10
[17718.942044] ! /proc/mod_node installed
[17784.017884] ! read: 131072 bytes (ppos=0)
[17784.017888] ! return 51 bytes
[17784.017897] ! read: 131072 bytes (ppos=51)
[17784.017897] ! EOF
[17893.808853] ! write: 11 bytes
[17893.808856] ! put 11 bytes
[17903.418643] ! read: 131072 bytes (ppos=0)
[17903.418650] ! return 11 bytes
[17903.418667] ! read: 131072 bytes (ppos=11)

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ sudo rmmod mod_proc

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

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ sudo insmod mod_proc.ko


olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ ./mcat 20
read + 20 bytes, input buffer: .........1.........2
read + 20 bytes, input buffer: .........1.........2.........3.........4
read + 11 bytes, input buffer: .........1.........2.........3.........4.........5
read + 00 bytes, input buffer: .........1.........2.........3.........4.........5

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ dmesg | tail -n9
[18061.025241] ! /proc/mod_node removed
[18070.520991] ! /proc/mod_node installed
[18129.162451] ! read: 20 bytes (ppos=0)
[18129.162455] ! return 20 bytes
[18129.162581] ! read: 20 bytes (ppos=20)
[18129.162582] ! return 20 bytes
[18129.162591] ! read: 20 bytes (ppos=40)
[18129.162592] ! return 11 bytes
[18129.162600] ! read: 20 bytes (ppos=51)

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

Re: модули и /proc

Непрочитанное сообщение Olej » 30 июн 2022, 11:32

Olej писал(а):
30 июн 2022, 11:29
Создаём имена (и иерархии каталогов) в /proc и - читаем оттуда + пишем туда ...

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

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ sudo insmod mod_proct.ko

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ echo $?
0
olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ tree /proc/mod_dir/
/proc/mod_dir/
└── mod_node

0 directories, 1 file

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ ls -l /proc/mod_dir/mod_node
-rw-rw-rw- 1 root root 0 июн 24 15:22 /proc/mod_dir/mod_node

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ cat /proc/mod_dir/mod_node
.........1.........2.........3.........4.........5

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ echo 12345 > /proc/mod_dir/mod_node

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ cat /proc/mod_dir/mod_node
12345

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ echo новая строка > /proc/mod_dir/mod_node

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ cat /proc/mod_dir/mod_node
новая строка

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ sudo rmmod mod_proct

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

Re: модули и /proc

Непрочитанное сообщение Olej » 30 июн 2022, 11:33

Старые релизы работают только с предыдущими ядрами:

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

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ sudo insmod mod_2.ko mode=2
insmod: ERROR: could not insert module mod_2.ko: Operation canceled

olej@R420:~/2022/own.BOOKs/BHV.kernel/examples.tmp/proc/proc$ dmesg | tail -n1
[18726.137627] ! it's work only for kernel LE 3.9

Ответить

Вернуться в «Linux изнутри»

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

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