From: "Alexei V. Mezin" <mezin@ntmdt.ru> To: ALT Linux Sisyphus discussion list <sisyphus@altlinux.ru> Subject: [sisyphus] Инструкция по сборке ядра. Date: Thu, 10 Feb 2005 11:30:27 +0300 Message-ID: <898307551.20050210113027@ntmdt.ru> (raw) [-- Attachment #1: Type: text/plain, Size: 787 bytes --] Hello ALT, Опять угораздило подписаться на common@. Опять чуть не утонул в потоке сообщений. И пришел к выводу, что вопрос о пересборке ядра все еще актуален. Причем он и в sisyphus@ всплывает периодически. А рецепты в ответах почти не меняются: посылают читать альт-кернел-полиси где про сборку ядра практически ничего и нет. Посмотрел ссылку на ALT FAQ, там почти все написано, но для common@ явно недостаточно. Решил попробовать написать сам. Сильно не пинайте, я в сборке официального ядра не участвую, так что официального способа сборки не знаю. Написал пока только первую часть. Есть ли смысл писать дальше? Собирается ли ядро в hasher'е и нужно ли это описывать? -- Best regards, Alexei V. Mezin mailto:mezin@ntmdt.ru [-- Attachment #2: kernel_build_v1.txt --] [-- Type: text/plain, Size: 10962 bytes --] Äëÿ íà÷àëà îïðåäåëèì, ÷åãî ìû õîòèì ïîëó÷èòü: 0. Ïîíÿòü, çà÷åì íàì ïåðåñîáèðàòü ÿäðî. 1. Çàäà÷à-ìèíèìóì: ñîáðàòü ïàêåò ñî "ñòàíäàðòíûì" ÿäðîì/çàãîëîâêàìè. Ò.å. òàêîå æå ÿäðî, êîòîðîå ìîæíî ïîñòàâèòü èç ðåïîçèòàðèÿ ñ áèíàðíûìè ïàêåòàìè (èëè äèñòðèáóòèâíûõ äèñêîâ). 1.1. Ñîáðàòü âåðñèþ ïàêåòà ñ äðàéâåðàìè nVidia äëÿ íîâîãî ÿäðà. 2. Îñíîâíàÿ çàäà÷à: ñîáðàòü ÷óòü ìîäèôèöèðîâàííîå ÿäðî, ò.å. ñ äîïîëíèòåëüíûìè îïöèÿìè èëè ñ äîïîëíèòåëüíûìè ïàò÷àìè âçÿòûìè èç Ñèçèôà. 2.1. Ñîáðàòü RPM-ïàêåòû ñ äîïîëíèòåëüíûìè ìîäóëÿìè ÿäðà. 3. Çàäà÷à-ìàêñèìóì: ñîáðàòü ÿäðî ñ ïîñòîðîííèìè ïàò÷àìè. 0. Èòàê, âû ðåøèëè ïåðåñîáðàòü ÿäðî. Çà÷åì? ßäðà â ñèñòåìàõ îò ALT Linux Team ñîáðàíû òàê, ÷òîáû áûòü óíèâåðñàëüíûìè.  íèõ âêëþ÷åíû ìàêñèìóì ôóíêöèé è âîçìîæíîñòåé, ïðè÷åì âñå, ÷òî ìîæíî ñîáðàòü â âèäå ìîäóëåé, èìåííî òàê è ñîáðàíî. Ïîýòîìó åñëè ó âàñ âîçíèêëè ïðîáëåìû, íàïðèìåð êàêîå-ëèáî óñòðîéñòâî íå ðàáîòàåò, òàê êàê äëÿ íåãî íå íàéäåí (íå çàãðóæåí) ìîäóëü, íå ñïåøèòå "ïåðåñîáèðàòü ÿäðî". Âîçìîæíî ìîäóëü ïðîñòî "íå çàãðóçèëñÿ àâòîìàòè÷åñêè" (åñëè âîçìîæíîñòü àâòîçàãðóæàòü ìîäóëè âîîáùå êîãäà-íèáóäü íîðìàëüíî çàðàáîòàåò â Ñèçèôå). Ñîâåò: èçó÷èòå êîìàíäû depmod, modprobe, modinfo Èëè ïðîñòî ïàêåò ñ íóæíûì ìîäóëåì íå óñòàíîâëåí. Ñîâåò: èçó÷èòå êîìàíäó apt-cache search Åñëè âàì íóæíî ñïåöèôè÷åñêîå ÿäðî, íàïðèìåð ñ ïîääåðæêîé RealTime, Win4Lin è ò.ï., òî ïðîñòî ïðîâåðüòå àëüòîâñêèé ðåïîçèòàðèé. Ìîæåò òàì óæå âñå åñòü? Òàê çà÷åì æå ïåðåñîáèðàòü ÿäðî? Ïðè÷èíû ìîãóò áûòü òàêèìè: *  ÿäðå íå âêëþ÷åíà (èëè íàîáîðîò) íóæíàÿ îïöèÿ. * Ïàòîëîãè÷åñêàÿ ïðîáëåìà ñ æåëåçîì, êîòîðàÿ òðåáóåò ïåðåñáîðêè. * Äðàéâåðà (íàïðèìåð ALSA) â âàøåé òåêóùåé ñèñòåìå óñòàðåëè è ïî÷åìó-òî èõ ïåðåñáîðêà íå ìîæåò áûòü ïðîâåäåíà áåç ïåðåñáîðêè ÿäðà. * Õî÷åòñÿ ýêçîòè÷åñêèõ ôóíêöèé, êîòîðûå îáåñïå÷èâàþòñÿ òîëüêî ïîñëå íàëîæåíèÿ ïàò÷åé íà ÿäðî. 1.1. Îïðåäåëèìñÿ. Äëÿ íà÷àëà îïðåäåëèì, êàêîå ÿäðî ñåé÷àñ çàïóùåíî è ÷òî èìåííî ìû õîòèì ñîáðàòü: [alexei@localhost alexei]$ uname -r 2.6.10-std26-smp-alt1 Èòàê, âåðñèÿ è òèï ÿäðà îïðåäåëåíû. Ïðèìå÷àíèå: âåðñèÿ è òèï ÿäðà â âàøåé ñèñòåìå ñêîðåå âñåãî íå ñîâïàäàþò ñ âûøåïðèâåäåííûì. Äëÿ ñáîðêè ÿäðà â ñèñòåìå äîëæíî áûòü óñòàíîâëåíî ìíîæåñòâî ïàêåòîâ, íàïðèìåð êîìïèëÿòîð, ñêðèïòû äëÿ ñáîðêè RPM è ò.ï.Äàëåå ïðåäïîëàãàåòñÿ, ÷òî âñå ýòî óæå óñòàíîâëåíî, èëè âû çíàåòå, êàê äîóñòàíîâèòü íóæíûå ïàêåòû. FIXME: íàâåðíîå òóò íóæåí ñïèñîê ïàêåòîâ, íåîáõîäèìûõ äëÿ ñáîðêè ÿäðà. Êðîìå òîãî, íóæíû ïàêåòû, ñâÿçàííûå íåïîñðåäñòâåííî ñ êîíêðåòíûì ÿäðîì: * ïàêåò ñ èñõîäíûìè êîäàìè ÿäðà * ïàêåòû ñ ïàò÷àìè, èñïðàâëÿþùèìè ñáîðêó è ïðîáëåìû ñ áåçîïàñíîñòüþ * ïàêåòû ñ ïàò÷àìè, ðàñøèðÿþùèìè ôóíêöèîíàëüíîñòü * ïàêåò è êîíôèãóðàöèîííûì ôàéëîì è spec-ôàéëîì äëÿ ñáîðêè. Óñòàíîâêó íà÷íåì íåñêîëüêî íåòðàäèöèîííî, "ñ êîíöà" è èç-ïîä ïîëüçîâàòåëÿ: óñòàíîâèì src-ïàêåò ñ íàñòðîéêàìè ÿäðà è spec-ôàéëîì. Íàçâàíèå òàêèõ ïàêåòîâ íà÷èíàåòñÿ ñ kernel-image, äàëåå ñëåäóåò òèï ÿäðà (wks, std, vs, wks26 è ò.ï.) è -up äëÿ îäíîïðîöåññîðíûõ ñèñòåì è -smp äëÿ ìóëüòèïðîöåññîðíûõ. Ïðèìå÷àíèå: íå ïóòàéòå kernel-image*.src.rpm è kernel-image*.rpm FIXME: íóæíî íîðìàëüíîå îïèñàíèå òèïîâ ÿäåð. Ò.å. ÷òî òàêîå è â ÷åì îòëè÷èÿ wks/std/vs/ll/rt è ò.ï. [alexei@localhost alexei]$ apt-get source kernel-image-std26-smp ×òåíèå ñïèñêîâ ïàêåòîâ... Çàâåðøåíî Ïîñòðîåíèå äåðåâà çàâèñèìîñòåé... Çàâåðøåíî Íåîáõîäèìî ïîëó÷èòü 0B/56,6kB èñõîäíûõ àðõèâîâ. kernel-image-std26-smp ############################################# Ïðèìå÷àíèå: äåëàåì ýòó îïåðàöèþ èìåííî èç-ïîä ïîëüçîâàòåëÿ, òàê êàê óñòàíîâêà src.rpm àäìèíèñòðàòîðó çàïðåùåíà ïî ñîîáðàæåíèÿì áåçîïàñíîñòè. Ïîñëå ýòîãî ó âàñ â ~/RPM/SPECS ïîÿâèëñÿ ôàéë kernel-image-std26-smp.spec -- ýòî èíñòðóêöèÿ äëÿ RPM ïî ñáîðêå ïàêåòîâ ñ ÿäðîì è çàãîëîâêàìè.  êàòàëîãå ~/RPM/SOURCES ïîÿâèëñÿ ôàéë config-2.6.10-std26-smp -- ýòî íàñòðîéêè ÿäðà ïî óìîë÷àíèþ. Çàãëÿíåì â íà÷àëî spec-ôàéëà: # Fixes: %add_patch_list kernel-fix-build %add_patch_list kernel-fix-core %add_patch_list kernel-fix-acpi %add_patch_list kernel-fix-fs %add_patch_list kernel-fix-net %add_patch_list kernel-fix-drivers-net %add_patch_list kernel-fix-drivers-usb %add_patch_list kernel-fix-drivers-ide %add_patch_list kernel-fix-drivers-ieee1394 %add_patch_list kernel-fix-drivers-sound #add_patch_list kernel-fix-drivers-serial %add_patch_list kernel-fix-drivers-parport %add_patch_list kernel-fix-security # Feathures: %add_patch_list kernel-feat-drivers-video-splash %add_patch_list kernel-feat-drivers-input %add_patch_list kernel-feat-drivers-lirc %add_patch_list kernel-feat-drivers-pktcdvd %add_patch_list kernel-feat-fs-squashfs %add_patch_list kernel-feat-net-ppp-mppe %add_patch_list kernel-feat-evms-nodm Ýòî ñïèñîê ïàêåòîâ, êîòîðûå íåîáõîäèìî óñòàíîâèòü äëÿ ñáîðêè âàøåãî ÿäðà. Ïåðåéäåì â ðåæèì ñóïåðïîëüçîâàòåëÿ è óñòàíîâèì ñíà÷àëà èñõîäíèêè ÿäðà: íàéäåì, ãäå îíè è êàê íàçûâàþòñÿ [root@localhost root]# apt-cache search kernel-source kernel-source-2.4.26 - Linux kernel 2.4.26rel sources kernel-source-2.6.10 - Linux kernel 2.6.10 sources ........ ........ è óñòàíîâèì èõ [root@localhost root]# apt-get install kernel-source-2.6.10 ×òåíèå ñïèñêîâ ïàêåòîâ... Çàâåðøåíî Ïîñòðîåíèå äåðåâà çàâèñèìîñòåé... Çàâåðøåíî Ñëåäóþùèå ÍÎÂÛÅ ïàêåòû áóäóò óñòàíîâëåíû: kernel-source-2.6.10 0 áóäåò îáíîâëåíî, 1 íîâûõ óñòàíîâëåíî, 0 ïàêåòîâ áóäåò óäàëåíî è 1 íå áóäåò îáíîâëåíî. .............. .............. À çàòåì àíàëîãè÷íûì îáðàçîì óñòàíîâèì âñå îñòàëüíûå ïàêåòû kernel-fix* è kernel-feat* èç âûøåïðèâåäåííîãî ñïèñêà. FIXME: ìîæíî ëè ñäåëàòü ýòó îïåðàöèþ àâòîìàòè÷åñêè? Âûéäåòå èç ðåæèìà ñóïåðïîëüçîâàòåëÿ, ò.ê. ñáîðêè RPM-ïàêåòîâ ïî ñîîáðàæåíèÿì áåçîïàñíîñòè íåâîçìîæíà èç-ïîä ñóïåðïîëüçîâàòåëÿ.  ïðèíöèïå óæå âñå ãîòîâî äëÿ ñáîðêè ÿäðà. Íî âû íàâåðíÿêà çàõîòèòå ïðîäåëàòü íåêîòîðûå äîïîëíèòåëüíûå íàñòðîéêè. Îòêðîéòå â âàøåì ëþáèìîì ðåäàêòîðå spec-ôàéë. Èñïðàâüòå ñòðîêó %define krelease alt1 çàìåíèâ â íåé "alt1" íà ÷òî-íèáóäü äðóãîå, íàïðèìåð, íà "myown1". Ýòî íóæíî äëÿ òîãî, ÷òîáû âàøå ÿäðî íå êîíôëèêòîâàëî ñ ÿäðîì èç äèñòðèáóòèâà. Êðîìå òîãî æåëàòåëüíî çàìåíèòü ñòðîêó %make_build oldconfig íà ñòðîêó %make_build menuconfig Ýòî ïîçâîëèò âàì ïåðåä íà÷àëîì ñáîðêè ÿäðà îòðåäàêòèðîâàòü íàñòðîéêè â ñòèëå êëàññè÷åñêîãî "make menuconfig". FIXME: ó ìåíÿ íå ñîáèðàþòñÿ ïàêåòû åñëè íå çàêîììåíòèðîâàòü ñòðîêó %__cp -a ./scripts/kconfig/conf %buildroot%_prefix/src/linux-%version-%flavour/scripts/kconfig/ Òåïåðü ìîæíî ïðèñòóïèòü ê ñáîðêå: cd ~/RPM/SPECS rpm -bb kernel-image-std26-smp.spec FIXME: íóæíî ëè äëÿ ñáîðêè ïàêåòîâ ïðåäâàðèòåëüíî ðåäàêòèðîâàòü ~/.rpmmacros? Åñëè âñå ñëîæèëîñü óäà÷íî, òî áóäóò óäàëåíû ôàéëû, êîòîðûå ìîãëè îñòàòüñÿ ïîñëå ïðåäûäóùèõ ñáîðîê, ðàñïàêîâàíû èñõîäíûå êîäû ÿäðà, ïðèëîæåíû âñå íåîáõîäèìûå ïàò÷è è çàïóùåí òåêñòîâûé èíòåðôåéñ äëÿ íàñòðîéêè ïàðàìåòðîâ ÿäðà. Åñëè ýòîãî íå ïðîèçîøëî, âíèìàòåëüíî ÷èòàéòå âûâîä â êîíñîëè è ïðèíèìàéòå ìåðû. Ïîñëå òîãî, êàê âû ïîêèíåòå êîíôèãóðàòîð ÿäðà, íà÷íåòñÿ ñáîðêà. Òóò ñàìîå âðåìÿ îòêèíóòüñÿ íà ñïèíêó êðåñëà, ðàññëàáèòüñÿ è ïîëó÷àòü óäîâîëüñòâèå îò ñîçåðöàíèÿ ýòîãî çàâîðàæèâàþùåãî ïðîöåññà. Ïðèìå÷àíèå: òàê êàê ÿäðî ñîáèðàåòñÿ ñî âñåìè äîñòóïíûìè ìîäóëÿìè, ýòîò ïðîöåññ ìîæåò çàíèìàòü äîâîëüíî ïðîäîëæèòåëüíîå âðåìÿ (îñîáåííî â ñðàâíåíèè ñî ñáîðêîé ïî "êëàññè÷åñêîé" òåõíîëîãèè ñ "ðó÷íîé" íàñòðîéêîé îïöèé ÿäðà). Íàïðèìåð íà Dual P-III 1Gz ñáîðêà ïðîäîëæàåòñÿ îêîëî 1.5 ÷àñîâ. Åñëè ñáîðêà ÿäðà è ìîäóëåé ïðîøëà áåç îøèáîê è RPM-ñêðèïòû îòðàáîòàëè èñïðàâíî, òî â ~/RPM/RPMS/i686 FIXME: ÷òî òóò áóäåò íà äðóãîé àðõèòåêòóðå? âû îáíàðóæèòå ïàêåòû kernel-headers-modules-std26-smp-2.6.10-alt1.i686.rpm kernel-image-std26-smp-2.6.10-alt1.i686.rpm kernel-headers-std26-smp-2.6.10-alt1.i686.rpm Òî åñòü âû ïîëó÷èëè ïàêåò ñ ÿäðîì kernel-image è äâà ïàêåòà ñ çàãîëîâêàìè. Îñòàëîñü òîëüêî óñòàíîâèòü èõ: ïåðåéäèòå â ðåæèì ñóïåðïîëüçîâàòåëÿ cd /home/<user-name>/RPM/RPMS/i686 rpm -i ./kernel-image-std26-smp-2.6.10-alt1.i686.rpm rpm -i ./kernel-headers-std26-smp-2.6.10-alt1.i686.rpm rpm -i ./kernel-headers-modules-std26-smp-2.6.10-alt1.i686.rpm FIXME: ý-ý-ý... íóæíî ëè òóò ïðàâèòü êîíôèãè äëÿ âîçìîæíîñòè óñòàíîâêè ïàðàëëåëüíî íåñêîëüêèõ âåðñèé ÿäðà? FIXME: íóæíî íàïèñàòü êîðîòêîå (èëè íå î÷åíü) ïîÿñíåíèå, êóäà â ALTîâñêèõ ñèñòåìàõ âñòàþò õèäåðû è êàê áîðîòüñÿ ñ alternatives. À òî â common@ ó ïîëüçîâàòåëåé ñ ýòèì ñâÿçàíî ìíîãî ïðîáëåì. Ïðè óñòàíîâêå ÿäðà RPM àâòîìàòè÷åñêè ïðîïèøåò íîâóþ çàïèñü â /etc/lilo.conf è çàïóñòèò lilo FIXME: à ÷òî òóò ñ grub? Òàê ÷òî âàì íàâåðíÿêà çàõî÷åòñÿ çàãëÿíóòü â /etc/lilo.conf è ïîïðàâèòü òàì ÷òî-íèáóäü (íî è "ïî óìîë÷àíèþ" âñå äîëæíî õîòû áû çàãðóçèòüñÿ). Ïîñëå ïðàâêè /etc/lilo.conf íå çàáóäüòå çàïóñòèòü lilo. Ïðèìå÷àíèå: íîâîå ÿäðî äîáàâëÿåòñÿ â çàãðóçî÷íîå ìåíþ, íî ïî óìîë÷àíèþ çàãðóçèòñÿ âàøå ñòàðîå ÿäðî. Òàê ñïîêîéíåå! :) Ïðèìå÷àíèå: åñëè ó âàñ âèäåîêàðòà nVidia, òî ñ íîâûì ÿäðîì âèäåîäðàéâåð íå çàãðóçèòñÿ áåç äîïîëíèòåëüíûõ äåéñòâèé (âîò îí, íåäîñòàòîê çàêðûòûõ äðàéâåðîâ), è ïîýòîìó ðàçóìíî ñíà÷àëà çàãðóçèòüñÿ â runlevel 3, óáåäèòüñÿ, ÷òî íîâîå ÿäðî ðàáîòàåò êàê îæèäàåòñÿ, ïåðåñîáðàòü âèäåîäðàéâåðû, óñòàíîâèòü èõ, è òîëüêî ïîñëå ýòîãî ïåðåõîäèòü â runlevel 5. FIXME: äëÿ äðóãèõ âèäåîêàðò ïðîáëåì íåò? reboot
next reply other threads:[~2005-02-10 8:30 UTC|newest] Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top 2005-02-10 8:30 Alexei V. Mezin [this message] 2005-02-10 9:11 ` Alex Yustasov 2005-02-10 9:31 ` [sisyphus] " Arioch 2005-02-11 8:25 ` Michael Shigorin 2005-02-10 9:41 ` [sisyphus] " Epiphanov Sergei 2005-02-10 9:50 ` [sisyphus] хМЯРПСЙЖХЪ ОН ЯАНПЙЕ ЪДПЮ Anton Farygin 2005-02-10 9:58 ` Re[2]: [sisyphus] Инструкция по сборке ядра Alexei V. Mezin 2005-02-10 10:25 ` Epiphanov Sergei 2005-02-13 11:24 ` Alexey Borovskoy 2005-02-10 10:25 ` Alex Yustasov 2005-02-11 8:24 ` [sisyphus] " Michael Shigorin
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=898307551.20050210113027@ntmdt.ru \ --to=mezin@ntmdt.ru \ --cc=sisyphus@altlinux.ru \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
ALT Linux Sisyphus discussions This inbox may be cloned and mirrored by anyone: git clone --mirror http://lore.altlinux.org/sisyphus/0 sisyphus/git/0.git # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V2 sisyphus sisyphus/ http://lore.altlinux.org/sisyphus \ sisyphus@altlinux.ru sisyphus@altlinux.org sisyphus@lists.altlinux.org sisyphus@lists.altlinux.ru sisyphus@lists.altlinux.com sisyphus@linuxteam.iplabs.ru sisyphus@list.linux-os.ru public-inbox-index sisyphus Example config snippet for mirrors. Newsgroup available over NNTP: nntp://lore.altlinux.org/org.altlinux.lists.sisyphus AGPL code for this site: git clone https://public-inbox.org/public-inbox.git