Ubuntu 18.04: Управляем модулями и переменными ядра
Ubuntu 18.04: Управляем модулями и переменными ядра
Определение версии ядра:
$ uname -r
4.15.0-96-generic
Описание модулей
Модули находятся по пути (моя версия ядра 4.15.0-96):
/lib/modules/4.15.0-96-generic/kernel/
Все они описаны в конф. файле:
/lib/modules/4.15.0-96-generic/modules.alias
Аналогично их можно вывести командой:
$ modprobe -c
Варианты просмотра списка установленных модулей другими командами:
$ dpkg -S *.ko | grep /lib/modules/$(uname -r)
$ find /lib/modules/$(uname -r) -name *.ko
Для загрузки или незагрузки во время старта ОС модули прописывают в /etc/modules
Модуль записывается в отдельную строку, пример:
usbmouse
usbkbd
Если строка начинается с blacklist, это запрещает загрузку модуля, пример:
blacklist usbmouse
blacklist usbkbd
Каталог /etc/modprobe.d содержит отдельные конф. файлы, аналоги /etc/modules
В Ubuntu доступны данные утилиты для работы с модулями ядра:
lsmod - выведет список загруженных модулей ядра
modinfo - выведет разнообразную информацию о модуле
insmod - загружает модули, схожа функционалом с утилитой modprobe
rmmod - выгружает модули, схожа функционалом с утилитой modprobe -r
modprobe - загружает и выгружает модули ядра (с учетом зависимостей между модулями)
Пример загрузки модуля ядра:
$ sudo insmod module_name
$ sudo modprobe module_name
Пример загрузки модуля ядра с указанием параметров:
Список параметров можно узнать выполнив - modinfo module_name
$ sudo insmod module_name setting_name=value_name
$ sudo modprobe module_name setting_name=value_name
Пример выгрузки модуля ядра:
$ sudo rmmod module_name
$ sudo modprobe -r module_name
Живой пример
Для прмиера выберем данные модули:
$ cd /lib/modules/4.15.0-96-generic/kernel/drivers/hid/usbhid/
Проведем эксперимент на паре модулей:
$ file usbmouse.ko usbkbd.ko
usbmouse.ko: ELF 64-bit LSB relocatable ...
usbkbd.ko: ELF 64-bit LSB relocatable ...
Информация об этих модулях:
$ modinfo usbkbd && echo && modinfo usbmouse
filename: /lib/modules/4.15.0-96-generic/kernel/drivers/hid/usbhid/usbkbd.ko
license: GPL
description: USB HID Boot Protocol keyboard driver
author: Vojtech Pavlik <vojtech@ucw.cz>
srcversion: 0B553CAA2E1322B21229F41
alias: usb:v*p*d*dc*dsc*dp*ic03isc01ip01in*
depends:
retpoline: Y
intree: Y
name: usbkbd
vermagic: 4.15.0-96-generic SMP mod_unload
signat: PKCS#7
signer:
sig_key:
sig_hashalgo: md4
filename: /lib/modules/4.15.0-96-generic/kernel/drivers/hid/usbhid/usbmouse.ko
license: GPL
description: USB HID Boot Protocol mouse driver
author: Vojtech Pavlik <vojtech@ucw.cz>
srcversion: 5BC4271A5D31A78FD703A0D
alias: usb:v*p*d*dc*dsc*dp*ic03isc01ip02in*
depends:
retpoline: Y
intree: Y
name: usbmouse
vermagic: 4.15.0-96-generic SMP mod_unload
signat: PKCS#7
signer:
sig_key:
sig_hashalgo: md4
Загрузка модулей:
$ sudo insmod usbmouse.ko
$ sudo modprobe usbkbd
$ sudo lsmod | grep usb
usbkbd 16384 0
usbmouse 16384 0
usbhid 49152 0
hid 118784 2 usbhid,hid_generic
Выгрузка модулей:
$ sudo rmmod usbmouse.ko
$ sudo modprobe -r usbkbd
$ sudo lsmod | grep usb
usbhid 49152 0
hid 118784 2 usbhid,hid_generic
Переменные ядра
Вывести список переменных ядра:
$ sudo sysctl -a
Установить значение переменной ядра:
$ sudo sysctl net.ipv4.ip_forward=1
Занести значение переменной ядра на постоянной основе в файле:
/etc/sysctl.conf
Комментарии пользователей
Анонимам нельзя оставоять комментарии, зарегистрируйтесь!