Компилиране на ново ядро на Linux Трябва да копирате архива с новото ядро в директория /usr/src В някои дистрибуции нямате директория и връзка към нея, а само директория, която се нарича linux. Ако е така трябва да преименувате директорията linux например така: mv linux linux-2.2.9 Ако пък имате символична връзка трябва просто да я изтриете без да преименувате нищо: rm linux Сега да разархивираме новото ядро: tar xvfz linux-2.2.14.tar.gz След това трябва да влезем в новата директория за да започнем конфигурирането. mv linux linux-2.2.14 ln -s linux-2.2.14 linux cd /usr/src/linux Например ще ви оставя сами да разберете за какво служи командата make mrproper като точно тук е момента да я изпълните ако решите. Иначе първият класически инструмент за конфигуриране се стартира с make config make menuconfig Третият се стартира с командата make xconfig и както може би се досещате предлага графичен интерфейс с бутони. Можете да компилирате новото ядро с конфигурацията на старото. Трябва само да отидете в директорията, където е изходния код на старото ядро и да копирате скрития файл . config в / usr/src/linux, след което да напишете командата make oldconfig След като сте конфигурирали ядрото трябва да изпълните последователно командите: make dep make clean make bzImage Готовите модули след инсталация се разполагат в директория /lib/modules/<версия> в случая / usr/lib/2.2.14, ако обаче това не е първата компилация на това ядро е добра идея да преместим компилираните преди това модули на същото ядро, защото в противен случай ще ги препокрием. Например така: mv /lib/modules/2.2.14 /lib/modules/2.2.14.backup Сега отново в директория / usr/src/linux трябва да подадем командите: make modules make modules_install Ако не сте получили някакви грешки можете да се поздравите - имате ново ядро. Току-що компилираното ядро се казва bzImage (или zImage) и ще го намерите в директория /usr/src/linux/arch/i386/boot (ако разбира се компютърът ви не е Intel PC съвместим вместо i386 там Ако органзацията на / boot директорията ви е със символични връзки т.е. System.map не е самия файл, а връзка, сочеща към истинския файл, който се казва по друг начин, както е в Red Hat Linux това би станало със следните команди: cd /boot rm /boot/System.map rm /boot/vmlinuz cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.2.14 ln -s /boot/vmlinuz-2.2.14 /boot/vmlinuz cp /usr/src/linux/System.map /boot/System.map-2.2.14 ln -s /boot/System.map-2.2.14 /boot/System.map Ако във вашата дистрибуция нямате символични връзки трябва да направите нещо такова: cd /boot mv bzImage vmlinuz-2.2.9 mv System.map System.map-2.2.9 cp /usr/src/linux/arch/i386/boot/bzImage /boot cp /usr/src/linux/System.map /boot Ако вашата дистрибуция (напр. Red Hat) ползва initrd image той се получава с командата: /sbin/mkinitrd /boot/initrd-2.2.14.img 2.2.14 Остава да конфигурираме boot-мениджъра LILO. За целта отворете файла /etc/lilo.conf с предпочитания от вас текстов редактор. Ще намерите фрагмент от файла, който е подобен на този: image = /boot/vmlinuz-2.2.9-12 label = linux initrd = /boot/initrd-2.2.9.img read-only root = /dev/hda1 Това е частта, която boot-ва вашето старо ядро - добре е да си го оставите за да можете да се върнете към него при необходимост. Ако сте преименували ядрото или initrd имидж-файла трябва да отразите промените съответно в реда image и initrd. Трябва да добавите аналогичен фрагмент за новото ядро, който би изглеждал примерно така: image = /boot/vmlinuz-2.2.14 label = new initrd = /boot/initrd-2.2.14.img read-only root = /dev/hda1 Това е всичко - запишете файла / etc/lilo.conf и от командния ред изпълнете: /sbin/lilo “Закърпване ” на ядрото ( patching) Всеки patch се прилага с командата: gunzip -c patchfile | patch -p0 където patchfile е пълното име на patch-файла включително и пътя до него напр. / home/bobo/patch-2.2.11. Можете да проверите дали patch-а е приложен правилно с командите: find /usr/src/linux -follow -name “*.rej” -print find /usr/src/linux -follow -name “*#” -print Ако някоя от тези две команди върне като резултат някакви файлове по някаква причина някаква част от patch-а не е била приета както трябва. Ако не сте достатъчно наясно какъв е проблема единствения съвет, който мога да ви дам е да си download-нете ново ядро и да започнете отначало.