====== Управление ядром и модулями в Linux ====== * [[https://ru.wikipedia.org/wiki/Ядро_Linux|Ядро Linux]] ===== Что за ядро ===== # uname -a ===== Модули ядра ===== # find /lib/modules/`uname -r`/kernel/ $ lsmod # modinfo e1000 # modprobe ip_gre # modprobe -r ip_gre # iptables -L # lsmod | grep ip # cat /etc/modules ===== Сообщения ядра ===== $ dmesg -T ===== Переменные ядра ===== * [[https://coderoad.ru/8290046/ICMP-%D1%81%D0%BE%D0%BA%D0%B5%D1%82%D1%8B-linux|ICMP-сокеты (linux)]] # sysctl -a # sysctl net.ipv4.ip_default_ttl=2 # ###sysctl -w net.ipv4.ping_group_range="1 65535" # cat /etc/sysctl.conf # sysctl -f ===== Сборка модулей ядра ===== * [[http://www.altlinux.org/Сборка_модулей_ядра|Сборка модулей ядра]] ===== Сборка ядра ===== * [[https://youtu.be/QFoGnnB3WPg|Видео урок: Сборка ядра в linux]] * [[http://citkit.ru/articles/1066/|Пересборка ядра: ядерный распад или термоядерный синтез?]] * [[http://www.linuxcenter.ru/lib/articles/system/kernel26_install.phtml|Ставим ядро 2.6, или Ядерная физика для домохозяйки. Версия 1.1.]] ==== Сборка ядра в Gentoo ==== * [[https://wiki.gentoo.org/wiki/Kernel/Configuration/ru|Ядро/Конфигурация]] * [[https://www.gentoo.org/news/2017/08/19/hardened-sources-removal.html|Hardened Linux kernel sources removal]] # 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 ==== * Не рекомендуется в этом дистрибутиве * [[http://ubuntism.ru/2010/02/building-kernel-ubuntu/|Оптимизация Ubuntu. Сборка ядра: предпосылки, рекомендации, практика.]] * [[https://help.ubuntu.com/community/Kernel/Compile|Ubuntu/Kernel/Compile]] === Установка инструментария === * [[Управление ПО в Linux#Работа с исходными текстами]] # 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 === Модификация исходных текстов ядра === * [[Linux Hardened#Hardened Debian/Ubuntu]] === Конфигурирование, компилирование и установка ядра === # cd /usr/src # cd linux-* # make menuconfig * General setup->Local version - append to kernel release->mykernel # 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