Форум: Инсталиране на Linux
Тема: Относно компилиране на кернел
Автор: emagi

Мнение от emagi пуснато на Януари 13 2007, 20:38
1.Със Slackware 10.2,kernel 2.4.31
2.Смъквам следните следния кернел ->2.6.19.2.tar.gz в /home
3.Създавам папката /home/cow,разархивирам кернела в тази папка /home/cow
4.root@box~/home/cow/#cd ./linux-2.6.19.2
root@box~/home/cow/linux-2.6.19.2#
5.make menuconfig
6.make mrproper
7.make
8.make install
9.make modules_install
10.конфигурирам lilo.conf
RESTART
Пиша uname -a ,и ми изписва
Linux box 2.4.31( стария кернел)
Защо не мога да сложа този 2.6..19.2

Мнение от saejoh пуснато на Януари 13 2007, 21:59
< http://www.kroah.com/lkn/ > май ще ти е от голяма полза. Наскоро се появи...BTW Шлака 10.2 не предлагаше ли още при инсталирането си да му се сложи ядро от 2.6.х.у серията?
Успех!

Мнение от saejoh пуснато на Януари 13 2007, 22:17
Ех, братко, ако беше фен на СУСЕ, такива мъчнотии трудно биха те сполетели...сигурно си чел доста, за да стигнеш дотук, ма то си е твоя работа.
Кажи какви инструкции следваш?
Тва с Лило-то как точно го правиш?
Иначе си на прав път, де... :P

Мнение от saejoh пуснато на Януари 13 2007, 22:34
Аз моя кернел си го инсталирам през YAST и досега не съм имал проблеми. След това задължително преинсталирам видео-драйверите и всичко заспива...
Мнение от nikolavp пуснато на Януари 13 2007, 23:57
Направи символна връзка на Новите сорсове в /usr/src/linux демек изпълни
Код: 
ln -sf "пътя до разархивираните сорсове" linux

И само за информация за тези, които се опитват да си компилират ново ядро излезе перфектната документация даже последните дни я чета когато имам време да не би случайно да съм пропуснал някоя оптимизацияза мойто ядро.Препоръчвам я на всички включително и на по-напредналите  :6; А < http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf.tar.bz2 > я и нея :).

EDIT:OMG Чак сега видях че не пишеш
Код: 
lilo
на мен ли така ми се струва или наистина не го правиш това батенце не ти е груб а е лило трябва да "рестартираш" приложението за да запази конфигурационните файлове



Мнение от emagi пуснато на Януари 14 2007, 00:39
Значи,така стоят нещата!При инсталация на Linux Slackware от диска,му задавам да boot-ва от MBR!При компилацията няма проблеми,но стартирам ли liloconf,и стигна ли до настройката от къде да boot-ва линукса,ми забива екрана,тоест,мога да пиша в конзолата!Посаветвахаме да напиша и lilo -v,и като рестартирах    ми се появи черен екран и това беше!
Това ln -sf в конзолата ли да го напиша,и как да рестартирам lilo!Обясни ми малко по-точно ако може!
Предварително благодаря!



Мнение от emagi пуснато на Януари 14 2007, 00:45
Разгледах .pdf файла който си дал,но мисля че той е повече за пачване,а не за цялостно подменяне!Смисъл,аз не искам от кернел 2.4.31 да го заменя с 2.4.5,а направо с 2.6.19.2!Но понеже,сега инсталирам закой ли път Линукс :6;  :6;  :6; ,не мога обстойно да го разгледам!Мерси все пак!!!
Мнение от saejoh пуснато на Януари 14 2007, 02:26
Цитат:  (nikolavp @ Януари 13 2007,23:57)

...И само за информация за тези, които се опитват да си компилират ново ядро излезе перфектната документация даже последните дни я чета когато имам време да не би случайно да съм пропуснал някоя оптимизацияза мойто ядро.Препоръчвам я на всички включително и на по-напредналите  :6; А < http://www.kernel.org/pub/linux/kernel/people/gregkh/lkn/lkn_pdf.tar.bz2 > я и нея :) ...

Хмм, то твоят линк същият кат моя, почти, към едно и също съдържание води, ма нищо де, от много връзки глава не боли...Тъкмо мойта връзка по-малко ше се натоварва... :33;  :D

Мнение от tonitochev пуснато на Януари 14 2007, 10:15
Най-лесно ще е от диска дето е кернел 2.6 (2 или 3 не помня)да си го инсталираш с installpkg и ще си спестиш много врътня.Щото трябва да се инсталират нови неща-hal и т.н.
Иначе даже и да успееш както си го намислил,я звук,я нещо друго ще липсва.За новак е почти непосилно.После вече като ти е инсталиран 2.6 си компилирай кернела по твой вкус и проблеми няма да има.

Мнение от nikolavp пуснато на Януари 14 2007, 11:01
Ако искаш да слушаш музика след като си подмениш кърнела не слушай tonitochev - Ако го инсталраш с installpkg няма да включи настройка на sound :)(поне така беше при Slackware 10.1).Съжалявам, че съм дал същия линк чак после видях :).Емаги pdf файла, който ти дадох е за абсолютно всичко затова първите няколко документа описват и пачването.И като последно защо пускаш liloconfig(liloconf) просто oказваш пътищата в /etc/lilo.conf(надявам се да знаеш как да направиш това) и после пишеш
Код: 
lilo
в конзолата като роот(може и
Код: 
lilo -v
просто така включва и verbose mode-a) и рестартираш няма нужда да пускаш liloconfig(liloconf) това се прави веднъж по време на инсталацията :)

Мнение от quintessence пуснато на Януари 14 2007, 12:53
Точно така , най-лесно е да инсталираш с installpkg , НО
1) Инсталираш kernel-source , kernel-modules, kernel-generic и kernel-headers на съответната 2.6.x версия , която желаеш
2) Задължително конфигурираш новото ядро (make config ,make menuconfig , ръчно .. както желаеш ) , задължително компилираш новите модули на версията и задължително ги инстралираш ...
След това си е стандартната процедура , махаш стария System.map ,ln -s новия ... местиш новия image на ядрото в /boot ... ( по подразбиране трябва да е там , но не е задължително ) и конфигурираш bootloader-a /път до новия image на ядрото / ... стартираш lilo ...
3) задължително инстлираш версията на alsa , която върви със съответната версия на ядрото ... alsaconf ,зада си настроиш sound картата ..

Мнение от emagi пуснато на Януари 14 2007, 19:27
Цитат:  (quintessence @ Jan. 14 2007,12:53)

Точно така , най-лесно е да инсталираш с installpkg , НО
1) Инсталираш kernel-source , kernel-modules, kernel-generic и kernel-headers на съответната 2.6.x версия , която желаеш
2) Задължително конфигурираш новото ядро (make config ,make menuconfig , ръчно .. както желаеш ) , задължително компилираш новите модули на версията и задължително ги инстралираш ...
След това си е стандартната процедура , махаш стария System.map ,ln -s новия ... местиш новия image на ядрото в /boot ... ( по подразбиране трябва да е там , но не е задължително ) и конфигурираш bootloader-a /път до новия image на ядрото / ... стартираш lilo ...
3) задължително инстлираш версията на alsa , която върви със съответната версия на ядрото ... alsaconf ,зада си настроиш sound картата ..

Обяснил си ми добре,но не мога да разбера всичко,а при инсталацията не мога да позволя грешка!Бих те помолил да хвърлиш един поглед на моите стъпки,които изпълнявам, да ми кажеш в какво греша или какво изпускам!Иначе на звук не държа!
Мнение от nikolavp пуснато на Януари 14 2007, 23:12
Първо той е жена :6; .Второ ако не държиж на звука значи вече си готов :).Прочети /boot/README.initrd или нещо такова спомням си че там е oказано как да инсталираш само generic kernel-a, който не включва звук :).Само внимавай на каква файлова система си(той initrd е точно затова там е обяснено.Аиде и питай ако не знаеш как да създадеш initrd за твойта файлова система(въпреки че Патрик доста добре го е обяснил).Мисля че ти трябва kernel-generic kernel-modules-2.6.X.X kernel-header-a не беше препорачителен до колкото помня тея сичките неща май са на третия диск както ти каза tonitochev.


Мнение от quintessence пуснато на Януари 14 2007, 23:50
Добре , ще обясня по-подробно стъпка по стъпка какво трябва да се направи ...

< http://mirrors.evrocom.net/slackware/slackware-current/testing/packages/linux-2.6.17.9/ > като гледам са пакети за ядрото на slackware-current (testing) ... не казвам да инсталираш тях , просто давам пример :)
Която и версия да си харесаш процедурата е еднаква ...

Сваляш kernel-source-xxx.tgz, kernel-generic-xxx.tgz , kernel-headers-xxx.tgz, kernel-modules.tgz /където "xxx" представлява версия,release,архитектура /

Инсталираш четирите пакети с помощта на installpkg .Примерно , ако си ги свалил с директория /home/cow
Код: 
cd /home/cow
installpkg пакет.tgz


Пакетите ще се инсталират в /usr/src
Ако си свалил и инсталирал с installpkg ядро 2.6.15 (примерно) , то ще се намира в
Код: 
/usr/src/linux-2.6.15


След това изтриваш директорията linux от /usr/src , тъй като тя представлява линк към версията на старото ти ядро
Код: 
rm -rf /usr/src/linux


Следва да създадеш символичен линк към "новото" ядро , приехме в примера ядрото да е версия 2.6.15 - така , че продължавам да давам пример с него
Код: 
cd /usr/src
ln -s linux-2.6.15 linux


Сега вече новото ядро в готово за конфигуриране,компилиране и инсталиране .

Конфигуриране може да представлява графично ( GTK - make gconfig , QT - make xconfig ) , в текстов режим (make config) , и едно , което не знам към кое да го причисля - в текстов режим шаренко ( :D ) - make menuconfig ; Също така може да редактираш config файла ръчно , стига да знаеш какво правиш . То при всички положения на конфигуриране трябва да знаеш какво правиш и какво искаш , но най-бавния и досаден начин с make config - поне може да видиш как е текущата ти конфигурация , съответно да се ориентираш какво да правиш. Ако решиш метода с make config /наистина е адски досадно и става бавно , но поне ще се позапознаеш основно с някои настройки / ще почнат да ти излизат въпроси , на които може да отговариш с y (yes) , n (no) , m (manual) ... Малко преди да отговориш (по спомен 1-2 символи преди ":") е дадена опцията , която показва текущата ти конфигурация , т.е може спокойно да й се довериш , без риск да омажеш нещата . Може да видиш новите модули включени в съответната версия на ясрото и да си избереш дали да ги включиш или не . Ако не ти се занимава с make config , може директно да стартираш make menuconfig / ядрото по подразбиране е с готова конфигурация , приложима и подходяща за повечето машини - говоря откъм hardware параметри ) , вече , ако искаш нещо специфично ще се наложи да пуснеш make config :) Та стига с основните обяснения ... Който и начин да избереш стъпките са следните :

Код: 
cd /usr/src/linux
make menuconfig
- make menuconfig може да го замениш s make config , make gconfig , make xconfig ... Задължително обаче , което и от останалите да избереш накрая да стартираш make menuconfig , за да запазиш конфигурацията на ядрото /Инструментът те пита като тръгнеш да излизаш от менщто дали да съхрани файла / ... Менюто е много приятно и също като графичните инструменти предлага да видиш опциите и евентуално да редактираш някоя преди да започнеш с компилирането на ядрото ... make menuconfig може да го приемеш като редактор , ако по някаква случайност примерно с make config си задал без да искаш някоя опция , която не си искал. Затова се изпълнява последно

Така вече си съхранил конфигурацията на новото ядро , може да преминеш към компилирането . На доста места из нета предпоръчват преди компилирането да се пусне make mrproper , make oldconfig , make dep и др. За мен лично е излишно , ако те интересуват какво означават може да потърсиш или питай тук .

Таа , стигнахме до компилирането , приемаме , че не си "излязъл" от директорията /usr/src/linux , пишеш
Код: 
make bzImage
- компилиране на ядрото

/минава време/

Код: 
make modules
- компилиране на  модулите

/минава време/

Код: 
make modules_install
- инсталиране на модулите

/минава време/

Така вече инсталирано ново ядро и модулите към него . Сега местиш bzImage в /boot директорията , като кръщаваш bzImage по някакъв начин ,за да се ориентираш  ,че това е новото ядоро .. примерно bzImage-2.6.15

Код: 
cd /usr/src/linux/arch/i386/boot
mv bzImage /boot/bzImage-2.6.15
- ако не си с i386 архитектура , влизаш в тази директория , която отговаря на твоята архитектура

Следва да преместиш новия System.map в /boot директорията , като също го кръщаваш по някакъв начин - например System.map-2.6.15

Код: 
cd /usr/src/linux
mv System.map /boot/System.map-2.6.15


Отиваш в /boot директорията , махаш стария System.map и правиш символичен линк към новия :
Код: 
cd /boot
rm System.map
ln -s System.map-2.6.15 System.map


Остана да конфигурираш bootloader-a ... Каза, че си с LILO , конфигурационният му файл се намира в директория /etc , казва се lilo.conf
Харесваш си някой текстов редактор и отваряш файла , ще видиш на някой от редовете
"Image=/boot/bzImage-нещо си" или не е задължително да е bzImage ... Та тазо ред в примера трябва да има вида :
Код: 
Image=/boot/bzImage-2.6.15

По този начин указваш в конфигурационния файл na bootloader-a новото ядро и къде да го търси при зареждане на системата

За финал изпълняваш lilo в конзолата , за да видиш за евентуален проблем . Ако няма проблем ( ако си следвал стъпките - няма да има :) ) , си готов за рестартира и за тестване на новото ти ядро :)
Ако lilo изкара някаква грешка , каквато и да е - НЕ рестартирай!!! , дай я тук


За звука също мога да обясня...

ПС. Командите се изпълняват като суперпотребител (root) ...
ПС2. Малко размисли ... Ядрото не е задължително да се инсталира по този начин - може и с make , make_modules, make_modules install ; НО :
1) така е по-прегледно
2) по-лесно ще се ориентираш с пътищата и името на image-a на новото ядро
3) по-лесно ще е при редактиране на конфигурационния файл на bootloader-a

 :P

ПС3. Абе то стана много дълго  :12;


-------------------------- edit--------------------------

Цитат:  (nikolavp @ Януари 14 2007,23:12)

Мисля че ти трябва kernel-generic kernel-modules-2.6.X.X kernel-header-a не беше препорачителен до колкото помня тея сичките неща май са на третия диск както ти каза tonitochev.

Логично е да са на първия диск и се намират на първия диск :)
За да инсталираш една операционна система (независимо каква) ти е необходим точно един диск/дискета за основата /windows-ите пък си вървят с един диск) - основата включва ядрото и някои "екстри" , за подкраване на системата - те са различни ... от bin utils до bootloader /unix-like os/:) Това , че някои Linux дистрибуции имат по 19723498123 диска (образно казано ) - не означава , че ядрото се намира на диск,различен от първия ...
По принцип на останалите извън първия диск се намират различни пакети (инструменти) за различните диструбуции  :)



Powered by ikonforums 1.0.0 © 2006 ikonforums