Компилиране на kernel под Debian 7.

Linux, Debian, Windows Server и всякакви други неща от ежедневието на сисадмина
Публикувай отговор
Аватар
ivaylon
Глобален модератор
Мнения: 177
Регистриран на: 22 Дек 2012 10:48

Компилиране на kernel под Debian 7.

Мнение от ivaylon »

Здравейте!
Музата ми дойде отново и ето я новата тема от поредицата за системното администриране. Надявам се да ви е полезна и да научите нещо ново. :)

И така: какво ни трябва, за да можем да изпълним заданието:

1. инсталирана виртуална машина под Debian 7, без никакви екстри (махнати отметки от всичко, което ни е предлагано като софтуер; или още както му казват някои - правим си инсталация само с конзола, from stratch).
2. Инсталираме необходимия софтуер:
# aptitude install bc gcc make ncurses-dev openssh-server vim

3. Изтегляме и разархивираме последното stable ядро от kernel.org:
За работна директория ще използваме /usr/src.
# cd /usr/src

Изтегляме ядрото без проверка на сертификат.
# wget --no-check-certificate https://www.kernel.org/pub/linux/kernel ... 9.8.tar.xz

Разархивираме с -J (създава поддиректория с името на архива).
# tar -xJvf linux-3.19.8.tar.xz

Създаваме софт линк към разархивираното съдържание.
# ln -s linux-3.19.8 linux
# cd linux


4. Компилиране на ядрото и модулите.
# make menuconfig

и записваме в .config файл. След това копираме старата конфигурация от посл. работещо ядро (намира се в /boot).
# cp /boot/config-3.2.0-4-amd64 /usr/src/linux/.config

Започваме компилирането:
# make -j 10 bzImage
# make -j 10 modules
# make -j 10 modules_install


Новото ядро се намира в /usr/src/linux/arch/x86_64/boot/. Копираме го и преименуваме в подходящ вид в /boot:
# cp /usr/src/linux/arch/x86/boot/bzImage /boot/vmlinuz-3.19.8.c1
# cp /usr/src/linux/System.map /boot/System.map-3.19.8.c1


5. Създаваме ramfs:
# mkinitramfs -o /boot/initrd-3.19.8.c1.img 3.19.8

6. Редактираме файла /boot/grub/grub.cfg:
#Custom kernel 3.19.8 v.1.
menuentry 'Debian GNU/Linux, with Linux 3.19.8.c1 (custom)' --class debian --class gnu-linux --class gnu --class os {
load_video
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
search --no-floppy --fs-uuid --set=root c6f28e3c-8332-4e09-a670-4cdf9f74cdbd
echo 'Loading Linux 3.19.8.c1 (custom) ...'
linux /last_core root=UUID=c3d1230a-55ba-4c0e-8739-15a85f54627a ro quiet
echo 'Loading initial ramdisk ...'
initrd /initrd-3.19.8.c1.img
}


Обърнете внимание на следното: има два uuid номера, които се вземат от локалния за машината /boot/grub/grub.cfg.

# init 6

Аватар
ivaylon
Глобален модератор
Мнения: 177
Регистриран на: 22 Дек 2012 10:48

Re: Компилиране на kernel под Debian 7.

Мнение от ivaylon »

Има stable и 4.0.3. :)

# uname -a
Linux deb7min 4.0.3 #1 SMP Mon May 18 01:05:36 EEST 2015 x86_64 GNU/Linux

Публикувай отговор