Управление ядром и модулями в Linux
Что за ядро
Модули ядра
# find /lib/modules/`uname -r`/kernel/
$ lsmod
# modinfo e1000
# modprobe ip_gre
# modprobe -r ip_gre
# iptables -L
# lsmod | grep ip
# cat /etc/modules
Сообщения ядра
Переменные ядра
# sysctl -a
# sysctl net.ipv4.ip_default_ttl=2
# ###sysctl -w net.ipv4.ping_group_range="1 65535"
# cat /etc/sysctl.conf
# sysctl -f
Сборка модулей ядра
Сборка ядра
Сборка ядра в Gentoo
# emerge --ask hardened-sources
# echo "=sys-kernel/hardened-sources-4.8.17-r2" >> /etc/portage/package.unmask
# emerge --ask hardened-sources
# time emerge -av sys-kernel/gentoo-sources
real 8m44.821s
user 5m37.132s
sys 1m56.026s
/usr/src/linux # make defconfig
/usr/src/linux # make menuconfig
/usr/src/linux # time make -j3
real 20m6.287s
user 34m28.865s
sys 4m4.605s
/usr/src/linux # make modules_install
/usr/src/linux # make install
# grub-mkconfig -o /boot/grub/grub.cfg
Сборка ядра в Debian/Ubuntu
Установка инструментария
# apt-get install libncurses5-dev kernel-package
# cd /usr/src/
Получение исходных текстов из репозитория
# apt-get install linux-source
# tar -xvf linux-source-X.X.XX.tar.bz2
Получение исходных текстов из kernel.org
# wget http://www.kernel.org/pub/linux/kernel/vX.X/linux-X.X.X.tar.bz2
# tar -xvf linux-X.X.X.tar.bz2
Копирование конфигурации текущего ядра
# cd linux-*
# yes "" | make oldconfig
Модификация исходных текстов ядра
Конфигурирование, компилирование и установка ядра
# cd /usr/src
# cd linux-*
# make menuconfig
# less .config
# time make-kpkg --initrd kernel-image kernel-headers
# cd /usr/src
# dpkg -i linux-image-X.X.XX.XX+drmXX.XXmykernel_X.X.XX.XX+drmXX.XXmykernel-10.00.Custom_i386.deb
# dpkg -i linux-headers-X.X.XX.XX+drmXX.XXmykernel_X.X.XX.XX+drmXX.XXmykernel-10.00.Custom_i386.deb
# cd /boot
# mkinitramfs -k -o initrd.img-X.X.XX.XX+drmXX.12mykernel X.X.XX.XX+drmXX.XXmykernel
# update-grub2