ALT Linux Sisyphus discussions
 help / color / mirror / Atom feed
* [sisyphus] Инструкция по сборке ядра.
@ 2005-02-10  8:30 Alexei V. Mezin
  2005-02-10  9:11 ` Alex Yustasov
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Alexei V. Mezin @ 2005-02-10  8:30 UTC (permalink / raw)
  To: ALT Linux Sisyphus discussion list

[-- 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


^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2005-02-13 11:24 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-02-10  8:30 [sisyphus] Инструкция по сборке ядра Alexei V. Mezin
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

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