Автор Тема: Компилиране на ядро!  (Прочетена 4061 пъти)

emagi

  • Напреднали
  • *****
  • Публикации: 249
    • Профил
Компилиране на ядро!
« -: Feb 24, 2007, 19:52 »
Със Slackware 11 съм,ядро 2.4.33.3!Искам да си солжа ядро 2.6.20.1,но днес трябва поне 4 пъти да съм преинсталирал Linux-a!Ползвам тази статия http://www.slackersbible.org/?q=node/42 и то стъпка по стъпка,и след рестарт пак черен екран!
Ползвам това ядро:linux-2.6.20.1.tar.gz

Смъкнах го от тук:
http://www.kernel.org/pub/linux/kernel/v2.6/

ПОчти нищо не съм променял чрез make menuconfig ,само някои натройки за PPP,който ми трябваха!

Има ли нещо специално,което трябва да направя?КОмпа е стар,COMPAQ на 500MHz,Pentium III



Активен

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Компилиране на ядро!
« Отговор #1 -: Feb 25, 2007, 18:20 »
Нямам Slackware,та малко наизуст..
1.Не е нужно да преинсталираш Линукса,не е като Уиндовса.Ако не тръгне с новото ядро ,няма никакъв проблем да тръгне със старото.
Старото ядро не е изтрито.И ако все пак имаш съмнение ,направи си
копие на ядрото и на image файла под други имена.Те са в директория "/boot".Обикновенно се използва символна връзка
"vmlinuz " ,сочеща ядрото и "initrd.img" ,сочеща image файла.
Когато правиш "make install" на ядрото ,тези връзки се променят,"vmlinuz " сочи новото ядро ,но "initrd.img" / или "initrd.gz"/
си сочи старият "image " файл.

2.Копие на ядрото и "image " файла /преди да инсталираш новото ядро/.
Команди ,които изпьлни от терминал:
cd /boot                                           /отиваш в директория /boot  /
ls -l vm*                                            /да покаже връзките/
cp vmlinuz-xxxxxx   vm                  /копираме ядрото като vm /
cp initrd.img-xxxxxx     i.img          /копираме "image " файл като"i.img"/

3.Почти сигурно си с boot loader "GRUB".Процедурата за "GRUB":
Вариант А. Добави в /boot/grub/menu.lst следните редове:

title      My Old Kernel
root      (hd0,2)
kernel/boot/vm  root=/dev/hda3 ...параметри ,копирай от оргинала
initrd      /boot/i.img   /или /boot/initrd.img ,няма значение/
savedefault
boot

title      My New Kernel
root      (hd0,2)
kernel/boot/vm  root=/dev/hda3  
savedefault
boot

/Това е за дял 3 от диска ,разгледай "/etc/fstab",линията
/dev/hda3      /               ext3    defaults,errors=remount-ro 0       1
значи ,че  дяла  "/dev/hda2 " се монтира като "роот",дяла ,кьдето сме
инсталирали Линукса.
Обьрни внимание ,че   в menu.lst ->  root (hd0,2) ,е с 1 по-малко, "GRUB" брои от "0" дяловете.

Вариант В.Направо като рестартораш ,с  "е" редактирай командните
редове ,изчисти линията :
initrd      /boot/initrd.img-xxxx
и всичко от рода "lang=us ..vga=791 ..",след "kernel /boot/vmlinuz"
Клавишите са:
"e" ->edit , "b"->boot   , "d" -> del.

Проблема за черният екран може да е в параметъра "vga=791" ,и зареждането на старият "initrd.img" ,в които са драйверите за старото ядро , затова за да видиш какво става ,махни "vga=791" пьрво.
Ако си с "lilo" файла ,който трябва да редактираш е /etc/lilo.conf
и след това да изпълниш :
#lilo



Активен

PERMANENT

  • Напреднали
  • *****
  • Публикации: 94
    • Профил
Компилиране на ядро!
« Отговор #2 -: Feb 25, 2007, 20:18 »
Вместо make install прави
make dep bzImage modules modules_install
после копираш новото ядро kernel-sourse/arch/i386/boot/bzImage
в /boot едитваш си лилото като добавяш в /etc/lilo.conf

image = /boot/bzImage
  root = /dev/hda2 #там които ти е дяла
  label = Slackware[2.6] #това ти е етикета
  read-only

после пишеш в конзолата
lilo
или ако lilo-то ти е в mbr
lilo -M /dev/hda

нормално е като направиш make menuconfig ядрото ти да не тръгва
просто защото не е конфигулирано
виж link
Активен

ivo1204

  • Напреднали
  • *****
  • Публикации: 987
    • Профил
Компилиране на ядро!
« Отговор #3 -: Feb 25, 2007, 20:58 »
"ПОчти нищо не съм променял чрез make menuconfig...."
Ами поне микропроцесора посочи като пентиум 3...
Ще вдигне скороста!
Активен

emagi

  • Напреднали
  • *****
  • Публикации: 249
    • Профил
Компилиране на ядро!
« Отговор #4 -: Feb 25, 2007, 23:40 »
Всичко стана,БЛАГОДАРЯ НА ВСИЧКИ,И ТО МНОГО
Обаче сега нямам пинг!Само към 127.0.0.1 има!Да съм забравил нещо да компилирам?
Активен

emagi

  • Напреднали
  • *****
  • Публикации: 249
    • Профил
Компилиране на ядро!
« Отговор #5 -: Feb 26, 2007, 00:13 »
Примерно,ако имам работещо ядро 2.4.33.3,и искам да сложа ново 2.6.20.1 примерно,обаче да ползвам натсройките на старото 2.4.33.3,как точно става чрез make oldconfig
1.Разархивирам новото в папка /usr/src
2.създавам символичен линк ln -sfT linux-2.6.20.2 linux
Ами сега?
КАк точно се прави,да надградя старото,тоест да компилирам само новите неща?
Активен

smelkomar

  • Напреднали
  • *****
  • Публикации: 429
    • Профил
Компилиране на ядро!
« Отговор #6 -: Feb 26, 2007, 02:03 »
Начинът да обновиш Slackware се нарича SWARET! Потърси в Google...

http://swaret.sourceforge.net/
http://users.piuha.net/martti/comp/slackware/slackware.html

 '<img'>  '<img'>  '<img'>



Активен

Ползвам т'ва, к'вот ме кефи

ray

  • Напреднали
  • *****
  • Публикации: 1464
    • Профил
Компилиране на ядро!
« Отговор #7 -: Feb 26, 2007, 05:59 »
Цитат (emagi @ Фев. 26 2007,01:13)
Примерно,ако имам работещо ядро 2.4.33.3,и искам да сложа ново 2.6.20.1 примерно,обаче да ползвам натсройките на старото 2.4.33.3,как точно става чрез make oldconfig
1.Разархивирам новото в папка /usr/src
2.създавам символичен линк ln -sfT linux-2.6.20.2 linux
Ами сега?
КАк точно се прави,да надградя старото,тоест да компилирам само новите неща?

Здравейте,

Първо, не можеш да 'надградиш' само някои (новите) неща.
Ползваш или старото (2.4.Х) ядро с модулите му или компилираш и ползваш новото (2.6.20.Х) с неговите модули.
Не е задължително да имаш модули, но почти всички 'default' конфигурации на ядра/дистрибуции ги ползват.
Конфигурацията на ядрото е в файла ".config", който обикновено се намира в /usr/src/linux - линк към реално разпакетирания код (/usr/src/linux-2.6.20.1 или нещо подобно).
За да се ползва старата конфигурация просто се копира файла ".config" от старата в новата директория и евентуално се сменя линка "linux" да сочи към директорията с новото ядро.
В този (специфичен) случай обаче не препоръчвам да се ползва наготово конфигурация на 2.4-ядро за компилиране на 2.6-ядро.
Има голяма вероятност или да даде грешка при компилация или след това да не работи (или да има някои трудно откриваеми бъгове).
По-добре си запиши някаде конфигурацията на старото и конфигурирай новото по подобен начин.
Успех. Румен
Активен

Hapkoc

  • Напреднали
  • *****
  • Публикации: 2117
    • Профил
Компилиране на ядро!
« Отговор #8 -: Feb 26, 2007, 08:30 »
ray, мисля че културния начин да си ползваш конфигурацията от старото ядро е след копирането на .config да пуснеш make oldconfig:

Цитат

# make help | grep oldconfig
  oldconfig       - Update current config utilising a provided .config as base
Активен

ray

  • Напреднали
  • *****
  • Публикации: 1464
    • Профил
Компилиране на ядро!
« Отговор #9 -: Feb 26, 2007, 10:11 »
Здравейте,

По принцип си прав, разбира се (#маке oldconfig), въпреки че и make menuconfig|xconfig също ще свършат работа.
За мен по-важното бе да препоръчам да не ползва наготово конфигурацията от ядро 2.4 за ядро 2.6.
Имал съм проблеми при такав подход, пък и доста често (ML и др.) се препоръчва ядрото 2.4 -> 2.6 да се настрои наново (евентуално с същите параметри).
Много време мина откак минах от 2.4 на 2.6 '<img'>
Поздрави. Румен
Активен

Gruntz

  • Напреднали
  • *****
  • Публикации: 67
    • Профил
Компилиране на ядро!
« Отговор #10 -: Feb 26, 2007, 11:01 »
Здравейте.

Притежавам стар компютър. Има ли смисъл да си обновявам ядрото? Дали едно прекомпилиране на по-ново ядро ще повиши производителноста на компютъра ми. Нямам Serial ATA, нито RADI контролери, абе изобщо целият ми хардуер датира от далечната 1998 година '<img'>

Компютърът ми е нещо подобно:
Процесор: PII MMX ~266MHz
Памет: 3x64MB RAM
Видео: geForce MX440 64MB RAM ( на дъното имам AGP 3x )
Хард диск: 20GB Seagate ( на дънто има IDE 33MHz )
Зеукова карта: ESS AudioDrive ES1869 ( на EISA слот )
Дънната платка ще ви излъжа каква е, май беше на някаква фирма ATC, но несъм сигурен... Имам три USB слотчета на една платка за PCI слот ( VIA USB 2.0 - който USB-та и без това не работят, компютъра ги открива, и линукса също, но немога да монттирам flash-чето си ).

Е какво мислите. Използвам Slackware 11, сега съм си сложил ядро 2.6.18, но не компилирано от мен.
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Компилиране на ядро!
« Отговор #11 -: Feb 26, 2007, 11:31 »
Ами най-вероятно няма, ако ползваш същият .config. Предполагам че може да си билд-неш нещо по-леко и така да спестиш някой друг процент производителност, но това няма връзка с новото ядро. От 2.6.18 нататък няма някакви фундаментални новости, които да позволяват по-добра производителност, а и обикновено като ги има трябва и userspace частта да се възползва от тях.
Активен

"Knowledge is power" - France is Bacon

ray

  • Напреднали
  • *****
  • Публикации: 1464
    • Профил
Компилиране на ядро!
« Отговор #12 -: Feb 26, 2007, 12:00 »
Здравейте,

Не че чак толкова го препоръчвам, но едно поорязано ядро ще има по-голям ефект на слаб компютър отколкото на мощен такъв '<img'>
При мен ядрото винаги е било компилирано - Gentoo '<img'> така че не мога да съдя от опит.
Просто като факт в момента ядрото ми е ~ 3MB, модулите са ~12 общо около 300 КБ (gcc-4.1.1).
Във ядрата по-подразбиране има доста излишни модули, с цел поддръжка на по-разнообразен хардуер.
Другата програма която има сериозно влияние върху производителността е glibc - при мен е версия 2.5 и е компилирана с опциите: ... nptl nptlonly (нямам threads).
Разбира се не могат да се очакват чудеса.
Успех. Румен
Активен

gat3way

  • Напреднали
  • *****
  • Публикации: 6050
  • Relentless troll
    • Профил
    • WWW
Компилиране на ядро!
« Отговор #13 -: Feb 26, 2007, 12:59 »
Ммм, аз съм на дебилиан, но винаги си слагам мои си компилирани ядра. Следвам редхадските прийоми и почти всички модули, които някога може да ми се наложи да ползвам с оглед и на смяна и на купуване на нов хардуер, ги компилирам. Има си udev, който решава доста неща вместо мен, хех.  Самият kernel image го орязвам максимално много и рядко надхвърля 2 МБ (тук ми е 1.7 МБ). За жалост, понякога се налага да правя initrd (пак тук, за да може да ползва за root fs един LVM2 logical volume) - цели 4 мегабайта..

Забелязал съм че най-голямо отражение върху производителността оказват разни debugging mode глупости или пък странни features, watchdogs, etc.

// оффтопик:

Performance tunning-a си е забавна тема, може много да се говори, просто има много частни случай и много зависи за какво ползваш системата. Много повече отколкото това колко "дебело" ядро си си билд-нал. Изтискването на максималното  е някаква краста, няма отърване ебаси '<img'> . Напоследък съм се зарибил да се занимавам с разни embedded глупости и ARM архитектури, оказва се че много неща, които съм имал за даденост, придобиват доста различни измерения '<img'> Това си е много забавна тема, установих че съм МНООООООООГО бос в тези неща и че са доста по-сложни отколкото съм мислел. Много ще се радвам ако някой, който се занимава, има желание да обменим малко информация. Засега съм стигнал дотам да си подкарвам и ръчкам разни images, които qemu е така добър да ми емулира все едно native вървят на такъв хардуер. За жалост се подържа само някакъв идиотски "integrator" хардуер, но скоро ще си купя или някаква джаджа от сорта на онези интелски IOP глупости, или ще разфасовам един linksys WRTG и ще го мод-на малко да си играя с него. Мисля, че ембедед нещата са една много забавна и важна част от линукс-света и трябва да има един раздел във форума за подобни неща. Знам също, че има и немалко хора в БГ, които се занимават с това. Много бих искал да се занимавам с такива  джаджи (за жалост имам огромен проблем - скаран съм с хардуера и трябва да си търся разни generic решения).

Та ако тук има хора, които се занимават, в което не се съмнявам, защо не направим и един подфорум с такива теми?  Може да обменяме опит - аз имам доста наблюдения от x86 света, но в тази област съм много бос и ще се радвам някой компетентен да може да обяснява разни неща. Може да правим бартер за идеи, хехе '<img'>

Съжалявам, не му е тук мястото, ще пусна нова тема в "предложения"



Активен

"Knowledge is power" - France is Bacon

emagi

  • Напреднали
  • *****
  • Публикации: 249
    • Профил
Компилиране на ядро!
« Отговор #14 -: Feb 26, 2007, 13:49 »
Аз сега хубаво компилирах новото ядро,но няма пинг между двата ми компютъра!Ако ползвам старото ядро 2.4.33.3 има пинг,но с новото '<img'> !Къде точно в конфигурацията трябва да обърна особено внимание относно тези модули за лан картите,или изобщо за нета!А и като напиша lsmod не ми покзва нито един модул?Защо?
Активен