Страница 1 из 1
модули и /proc
Добавлено: 29 июн 2022, 19:51
Olej
Это возможность диагностики из ядра + возможность управлять параметрами ядра.
Создаём
имена (и иерархии каталогов) в /proc и - читаем оттуда + пишем туда ... управляем параметрами ядра "на ходу"
Re: модули и /proc
Добавлено: 30 июн 2022, 11:29
Olej
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)
Re: модули и /proc
Добавлено: 30 июн 2022, 11:32
Olej
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
Re: модули и /proc
Добавлено: 30 июн 2022, 11:33
Olej
Старые релизы работают только с предыдущими ядрами:
Код: Выделить всё
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