Запомняне

» Здравейте
[ Вход :: Регистриране ]
 » Начало » Li Форуми » Li Статии » Полезно » Ръчно обновяване на ядрото
  • Страница 1 от 1 Skip to Page:
  • 1
Тема: Ръчно обновяване на ядрото, Малък скрипт
Мнение #1 Skip to the next post in this topic.
Написано на: Октомври 06 2007, 16:05
nikolavp
 

Avatar




Група: Li maniacs
Мнения: 560
Регистриран: Юли 2006

Оценка: 4

Offline
Може би доста от вас ползват дистрибуции, който не предоставят прекомпилирани ядра, или пък сте от тези, които ползват такива дистрибуции, но си имате собствено(custom ядро), поради специален hardware или пък за по - добра производителност. Този скрипт е за вас. Той автоматизира компилиране/обновяване на ядрото от по - стара версия към сегашната свалена. Първо ще покажа скриптчето, а после ще обясня как се ползва
Код: 
#!/bin/bash
LOADER_ROOT_PARTITION="hd0,6"
KERNEL_PARAMETERS="root=/dev/hda7 vga=0x315 quiet"
if [[ -d /usr/src/linux ]];then
       echo "Cleaning the old sources"
else
       echo "You don't have a symbolic link or a directory /usr/src/linux and the ###### depends on that"
       exit 3
fi
#Get the VERSION from the symbolic link
VERSION=$(readlink /usr/src/linux)
#Entering the sources dir
cd /usr/src/linux
make mrproper
if [[ -f /proc/config.gz ]];then
       zcat /proc/config.gz > ./.config
else
       "There isn't /proc/config.gz and the ###### depend on it"
       eixt 3
fi
#If you want to edit the old options, comment "make oldconfig" and uncomment "make menuconfig"
###############################################################################
#make menuconfig
make oldconfig
make -j2
make modules_install
mv /usr/src/linux/arch/i386/boot/bzImage /boot/"${VERSION%/}"
#Making the menu.lst configuration; some version of grub have grub.conf instead so you can change it if
#there isn't a symbolic link(there should be).
#TODO: Make a sed hack that edit the default parameter and put the new section as default
#section_number=$(grep title /boot/grub/menu.lst | wc -l)
echo "" >> /boot/grub/menu.lst
echo "title=${VERSION%/}" >> /boot/grub/menu.lst
echo "root(${LOADER_ROOT_PARTITION})" >> /boot/grub/menu.lst
echo "kernel /boot/${VERSION%/} ${KERNEL_PARAMETERS}" >> /boot/grub/menu.lst
Скрипта работи само за grub за момента, тъй като нямам лило да го тествам. Нещата, които трябва да промените са LOADER_ROOT_PARTITION и KERNEL_PARAMETERS.

Първата променлива трябва да съдържа партицията/дяла, на който се намира имиджа на ядрото(така наречения /boot дял);използва се начина на броене на груб - така /dev/hda1 за груб се явява hd0,0;/dev/hda2 - hd0,1 /dev/hda3 - hd0,2 т.н. (демек се започва от нулата). KERNEL_PARAMETERS съдържа параметри за ядрото, които искате да поставите, не забравяйте да посочите главния (/) дял с root=""

Скрипта иска /proc/config.gz и ще се оплаче ако не го намери, тази възможност се намира в
Код: 
 -> General setup
              -> Kernel .config support (IKCONFIG [=y])

Също ще трябва да направите символна връзка от сорсовете към /usr/src/linux . Това става с командата
Код: 
ln -sf "директория със сорсовете" /usr/src/linux

Ако искате да промените нещо, което не харесвате в сегашната си конфигурация коментирайте реда
Код: 
make oldconfig
и откоментирайте
Код: 
make menuconfig


P.S. Скрипта трябва да е изпълним (демек chmod +x "името-с-което-сте-го-запазили) :)


This work is licensed under a
Creative Commons Attribution-Noncommercial-Share Alike 2.5 Bulgaria License.

Контакти:  nikolavp

  • AOL  AOL:
  • ICQ  ICQ:
  • MSN  MSN:
  • YIM  Yahoo IM:
WEB  
Мнение #2
Skip to the previous post in this topic. Написано на: Февруари 25 2008, 17:05

Avatar




Група: Li fans
Мнения: 763
Регистриран: Февруари 2008

Оценка: 5

Offline
пич, пиши за кое дистро го компилираш това ядро!
едно е дебиан, друго е ред хат и сусе!
и като пускаш скрипт за компилиране на ядро, поне обясни малко в к'во представлява това компилиране в подробности, не просто да си постнеш скрипта и толкова. то и аз имам скриптове за моята система ама на твоята и бъкел няма да направят!
а и не съм съгласен с краят на скрипта ти за добавяне на ядрото в груб менюто. поне за дебиан можеш да го направиш с update-initramfs. а boot part. да го изтеглиш от груб листа с прост cut и grep.

Редактирано от altoas на Февруари 25 2008, 17:09

Контакти:  altoas

  • AOL  AOL:
  • ICQ  ICQ:
  • MSN  MSN:
  • YIM  Yahoo IM:
Общо 1 отговор(а) от Октомври 06 2007, 16:05 до сега
  • Страница 1 от 1 Skip to Page:
  • 1
 » Начало » Li Форуми » Li Статии » Полезно » Ръчно обновяване на ядрото

© 2014 Linux Index Project
Powered by iF 1.0.0 © 2006 ikonForums