Титла: Компилиране на ядро! Публикувано от: emagi в 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 в 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 в 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 в Feb 25, 2007, 20:58 "ПОчти нищо не съм променял чрез make menuconfig...."
Ами поне микропроцесора посочи като пентиум 3... Ще вдигне скороста! Титла: Компилиране на ядро! Публикувано от: emagi в Feb 25, 2007, 23:40 Всичко стана,БЛАГОДАРЯ НА ВСИЧКИ,И ТО МНОГО
Обаче сега нямам пинг!Само към 127.0.0.1 има!Да съм забравил нещо да компилирам? Титла: Компилиране на ядро! Публикувано от: emagi в 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 в Feb 26, 2007, 02:03 Начинът да обновиш Slackware се нарича SWARET! Потърси в Google...
http://swaret.sourceforge.net/ http://users.piuha.net/martti/comp/slackware/slackware.html ![]() ![]() ![]() Титла: Компилиране на ядро! Публикувано от: ray в Feb 26, 2007, 05:59
Здравейте, Първо, не можеш да 'надградиш' само някои (новите) неща. Ползваш или старото (2.4.Х) ядро с модулите му или компилираш и ползваш новото (2.6.20.Х) с неговите модули. Не е задължително да имаш модули, но почти всички 'default' конфигурации на ядра/дистрибуции ги ползват. Конфигурацията на ядрото е в файла ".config", който обикновено се намира в /usr/src/linux - линк към реално разпакетирания код (/usr/src/linux-2.6.20.1 или нещо подобно). За да се ползва старата конфигурация просто се копира файла ".config" от старата в новата директория и евентуално се сменя линка "linux" да сочи към директорията с новото ядро. В този (специфичен) случай обаче не препоръчвам да се ползва наготово конфигурация на 2.4-ядро за компилиране на 2.6-ядро. Има голяма вероятност или да даде грешка при компилация или след това да не работи (или да има някои трудно откриваеми бъгове). По-добре си запиши някаде конфигурацията на старото и конфигурирай новото по подобен начин. Успех. Румен Титла: Компилиране на ядро! Публикувано от: Hapkoc в Feb 26, 2007, 08:30 ray, мисля че културния начин да си ползваш конфигурацията от старото ядро е след копирането на .config да пуснеш make oldconfig:
Титла: Компилиране на ядро! Публикувано от: ray в Feb 26, 2007, 10:11 Здравейте,
По принцип си прав, разбира се (#маке oldconfig), въпреки че и make menuconfig|xconfig също ще свършат работа. За мен по-важното бе да препоръчам да не ползва наготово конфигурацията от ядро 2.4 за ядро 2.6. Имал съм проблеми при такав подход, пък и доста често (ML и др.) се препоръчва ядрото 2.4 -> 2.6 да се настрои наново (евентуално с същите параметри). Много време мина откак минах от 2.4 на 2.6 ![]() Поздрави. Румен Титла: Компилиране на ядро! Публикувано от: Gruntz в Feb 26, 2007, 11:01 Здравейте.
Притежавам стар компютър. Има ли смисъл да си обновявам ядрото? Дали едно прекомпилиране на по-ново ядро ще повиши производителноста на компютъра ми. Нямам Serial ATA, нито RADI контролери, абе изобщо целият ми хардуер датира от далечната 1998 година ![]() Компютърът ми е нещо подобно: Процесор: 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 в Feb 26, 2007, 11:31 Ами най-вероятно няма, ако ползваш същият .config. Предполагам че може да си билд-неш нещо по-леко и така да спестиш някой друг процент производителност, но това няма връзка с новото ядро. От 2.6.18 нататък няма някакви фундаментални новости, които да позволяват по-добра производителност, а и обикновено като ги има трябва и userspace частта да се възползва от тях.
Титла: Компилиране на ядро! Публикувано от: ray в Feb 26, 2007, 12:00 Здравейте,
Не че чак толкова го препоръчвам, но едно поорязано ядро ще има по-голям ефект на слаб компютър отколкото на мощен такъв ![]() При мен ядрото винаги е било компилирано - Gentoo ![]() Просто като факт в момента ядрото ми е ~ 3MB, модулите са ~12 общо около 300 КБ (gcc-4.1.1). Във ядрата по-подразбиране има доста излишни модули, с цел поддръжка на по-разнообразен хардуер. Другата програма която има сериозно влияние върху производителността е glibc - при мен е версия 2.5 и е компилирана с опциите: ... nptl nptlonly (нямам threads). Разбира се не могат да се очакват чудеса. Успех. Румен Титла: Компилиране на ядро! Публикувано от: gat3way в 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 си е забавна тема, може много да се говори, просто има много частни случай и много зависи за какво ползваш системата. Много повече отколкото това колко "дебело" ядро си си билд-нал. Изтискването на максималното е някаква краста, няма отърване ебаси ![]() ![]() Та ако тук има хора, които се занимават, в което не се съмнявам, защо не направим и един подфорум с такива теми? Може да обменяме опит - аз имам доста наблюдения от x86 света, но в тази област съм много бос и ще се радвам някой компетентен да може да обяснява разни неща. Може да правим бартер за идеи, хехе ![]() Съжалявам, не му е тук мястото, ще пусна нова тема в "предложения" Титла: Компилиране на ядро! Публикувано от: emagi в Feb 26, 2007, 13:49 Аз сега хубаво компилирах новото ядро,но няма пинг между двата ми компютъра!Ако ползвам старото ядро 2.4.33.3 има пинг,но с новото
![]() Титла: Компилиране на ядро! Публикувано от: gat3way в Feb 26, 2007, 13:59 А, между 2.4 ядрата и 2.6 ядрата има балкан разлика, ще усетиш разлика в производителността, определено, особено за неща дето бълват threads/fork()-ват, или пък за неща дето ядат много РАМ и влизаш в суоп-а.
Що се отнася до пинг-а, вероятно нямаш подръжка за картата си. Или ако е на модул, не си компилирал и инсталирал модула. udev инсталирал ли си? modprobe <драйвера> не помага ли? Всъщност udev не виждам да има нещо общо с мрежовата карта май. Ама все пак.. Титла: Компилиране на ядро! Публикувано от: emagi в Feb 26, 2007, 14:17 Драйвера на картата трябва да го търся в /etc/modules.conf нали?
Титла: Компилиране на ядро! Публикувано от: gat3way в Feb 26, 2007, 14:33 Ооооо, защо не прочетеш малко все пак?
В /lib/modules/`uname -r` се намират иначе. Титла: Компилиране на ядро! Публикувано от: Gaara в Feb 26, 2007, 14:37 emagi, време е да научиш основни неща за линукс.
man lspci man locate man updatedb man lsmod man modprobe man rmmod Титла: Компилиране на ядро! Публикувано от: emagi в Feb 26, 2007, 15:15 Добре,това го прочетох!Само питам:
при командата ifconfig -a ми изкарва и двете лан карти,всичко си както трябва да бъде,само дето няма ping Титла: Компилиране на ядро! Публикувано от: emagi в Feb 26, 2007, 20:02 Копирам .config от папката linux-2.4.33.3 в папка linux-2.6.20.1 (вече имам направен символичен линк към новото ядро linux-2.6.20.1 -->linux и като напиша make oldconfig набързо се изброяват,и 'навъртат' редове( незнам дали ме разбирате) без да ме пита за никаква настройка,и така,доката стигане до празен ред : root@moon:~#
Къде греша,защо отговаря автоматично на въпросите вместо мен? P.S Като гледам на повечето въпроси автоматично е отговорено с no! Титла: Компилиране на ядро! Публикувано от: Hapkoc в Feb 26, 2007, 20:42 make oldconfig "мигрира" конфигурацията от старото ядро към новото. След oldconfig все пак е добре да пуснеш make menuconfig за да си конфигурираш ядрото.
Титла: Компилиране на ядро! Публикувано от: emagi в Feb 26, 2007, 21:02 Да,това е ясно!Но не трябва ли аз да отговоря на въпросите при конфигурирането,а не операционната система сама да го прави вместо мен!В моя случай това става!
Титла: Компилиране на ядро! Публикувано от: Hapkoc в Feb 27, 2007, 01:13 Е в make menuconfig не правиш ли точно това бе пиле?
Титла: Компилиране на ядро! Публикувано от: ivo1204 в Feb 27, 2007, 02:17 Първо ,трябва да знаеш какво има в компютъра ти.
Както виждам ,са ти посочили командата "lspci" ... Пример за лан картите.Командата: #lspci | grep Ethernet дава при мен: 02:03.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10) Номера отпред е ВАЖЕН. Показва къде е включена.Нищо че при мен е интегрирана в дъното , има си място ,като истинска PCI карта. #lspci -v ти дава всички ,разширено. В моя случей е написало и името и модела ,ама като тръгна да конфигурирам ядрото , има два различни драйвера за RLT8139 и за RTL8139C+ /8139cp и 8139too/.Отделно има и 4 опции за 8139too... Давам командата: #lspci -n | grep 02:03.0 /При теб това е номера от твоята карта/ 02:03.0 0200: 10ec:8139 (rev 10) или по-просто : #lspci -n Номера на края "10ec:8139 " е производител:модел два номера ,и то шестнайтични. Номера на производителя е 0x10ec. Номера на модела е :0x8139.От сайта: http://www.pcidatabase.com/ намираш производителя /Vendor Id/: ttp://www.pcidatabase.com/vendors.php?sort=id 0x10EC -> Realtek Semiconductor От "Devices for this vendor" търсим по втория номер /0x8139/: .......... 0x8139 Chip Number: RTL8139 ..........Chip Description: 10/100 Mbps Fast Ethernet NIC ................................................... Разбира се ,в моя случей името бе дадено още от lspci, това го правим ако дава "непознат девайс" ,има проблеми или не работи. Сега ,може да търсиш с "Google",да звъниш на производителя /има телефон ,емейл и т.н ,аз обаче не знам тайвански .../ ,да отидеш на неговия сайт и да търсиш информация или по линукските сайтове ,варианти много , ама английски. Друго ,във файла /var/log/messages е записано какво е ставало по време на стартирането ,какво е открито ,кой драйвер ит,н. Обаче много по лесно ми се вижда да си стартираш с старото ядро , да си дадеш коландата: "lsmod " и да си запишеш драйверите или да видиш предполагам файла "/etc/modules" ,на Дебиан съм ,нямам Слак ... Е ,сега може да отвориш конзола и: cd /usr/src/linux-xxxx #make oldconfig е добре. #make config Ще има яко питане ,нали за това се оплакваш? Конфигуратора ,като на linux-2.4.хх #make menuconfig е много по удобен. Има и още по-удобните: #make gconfig или #make xconfig <----Този ти препоръчвам! http://linuxdevices.com/articles/AT3855888078.html |