Компилирование ядра Linux

Компилирование ядра Linux

 
  • Компилирование ядра Linux
  • Установка патчей в ядро
  • Чтоб ядро перекомпилировать нужно
  • Как увеличить скорость компиляции на SMP-машине
  • Как задать свою версию в ядре
  • Как воспроизвести дефолтные установки дистрибутивного ядра
  • Компиляция и установка модулей
  • Изготовление init-ram-диска
  • Конфигурация lilo
  • Компилирование ядра Linux
  • Компилирование ядра с поддержкой автозагрузки модулей
  • Параметры ядра

  • Установка патчей в ядро


    Раньше ядро должно было располагаться в каталоге /usr/src/linux
    cd /usr/src zcat /path/to/patch-1.2.31.gz | patch -s -p0 zcat /path/to/patch-1.2.32.gz | patch -s -p0
    Теперь ядро должно располагаться в каталоге /usr/src/linux-2.4.{version_number}
    cd /usr/src ln -s linux linux-2.4.18 bzcat /path/to/patch-2.4.19.bz2 | patch -s -p0 ln -s linux linux-2.4.19 bzcat /path/to/patch-2.4.20.bz2 | patch -s -p0
          . . .

    Чтоб ядро перекомпилировать нужно



          cd /usr/src/linux

          make xconfig # в графическом режиме
          или
          make config # в текстовом режиме

          заполнить в графическом режиме параметры и выбрать нужные драверы

          make dep ; make clean ;
          MAKE='make -j2' make -j2

          make zlilo или, если ядро получилось слишком большим
          make bzlilo
    возможно придется сделать команду

          cp /vmlinux /boot/vmlinuz

          lilo

    Как увеличить скорость компиляции на SMP-машине


    MAKE='make -j2' make -j2 # -j задает максимальное количество параллельных jobs

    Как задать свою версию в ядре


    vi /usr/src/linux/Makefile
    VERSION = 2 PATCHLEVEL = 4 SUBLEVEL = 18 EXTRAVERSION = YouNameIt

    Как воспроизвести дефолтные установки дистрибутивного ядра


    cd /usr/src/linux cp /boot/config-2.6.18-3 /usr/src/linux/.config make silentoldconfig ### make oldconfig make xconfig MAKE='make -j2' make -j2 # -j задает максимальное количество параллельных jobs

    Компиляция и установка модулей

    cd /usr/src/linux make modules # в 2.6-й версии не нужен make modules_install ls -l /lib/modules/2.4.18-3-YouNameIt

    Изготовление init-ram-диска


    Исполнять после инсталляции модулей:
    mkinitrd -f /boot/initrd-2.4.18-3-YourNameIt 2.4.18-3-YourNameIt

    Конфигурация lilo


    vi /etc/lilo
    ############################################################### image=/boot/vmlinuz-2.4.18-YouNameIt label=new initrd=/boot/initrd-YouNameIt read-only root=/dev/hda2 append="hdc=ide-scsi" ############################################################### lilo

    Компилирование ядра Linux


    # cd /usr/src/linux/ # make xconfig или # make { menuconfig | config } Смысл конфигурационных параметров ядра разъясняется здесь # make dep # make clean # make bzlilo # make modules # make modules_install # reboot
    Это все.

    Компилирование ядра с поддержкой автозагрузки модулей


    0) cd /usr/src/linux 1) make menuconfig
          Where I enable the features I want as odules
          (for vfat support you should answer M for FAT and VFAT)
          Besides, the kernel must be compiled with modversion
          and kerneld support enabled.(This is the second submenu in
          the config - select all the 3 items). 2) make install
          At the end the old kernel (if it's /vmlinuz) will be renamed
          /vmlinuz.old and the new will be /vmlinuz.
          This option calls the script /usr/src/linux/arch/i386/boot/install.sh
          which does the above renaming and runs lilo.If you don't want lilo just
          comment out the last line in that script. 3) make modules 4) rm /lib/modules/2.0.0 (or move to another location) 5) make modules_install
    6) VERY IMPORTANT to make linux boot the new kernel.
          If you use lilo do not edit /usr/src/linux/arch/i386/boot/install.sh,
          it will install it automaticly,if not then you are using either
          loadlin or bootdisk.Either way update your bootdisk or loadlin kernel
          (on your dos partition I guess).
    7) Reboot linux.

    Параметры ядра


    # просмотр:
    sysctl -a | grep tcp # просмотр cat /proc/sys/net/ipv4/tcp_max_syn_backlog sysctl net.ipv4.tcp_max_syn_backlog
    # установка значения
    sysctl -w net.ipv4.tcp_max_syn_backlog=1024
    # установка значений при загрузке
    /etc/sysctl.conf
    net.ipv4.tcp_max_syn_backlog = 1024


    Home | UK Shop Center |Contact | Buy Domain | Directory | Web Hosting | Resell Domains


    Copyleft 2005 ruslib.us