• 検索結果がありません。

ィ 03ィェ ィィ 06ィー0902ィー04 ィェィ ィェィィ ツィィィーィ ィヲィー02 05ィー06 09ィェィ ツィ 05ィ! (08 05ィー ィ 04ィョィャ0209ィ 06) 0102ィ

N/A
N/A
Protected

Academic year: 2021

シェア "ィ 03ィェ ィィ 06ィー0902ィー04 ィェィ ィェィィ ツィィィーィ ィヲィー02 05ィー06 09ィェィ ツィ 05ィ! (08 05ィー ィ 04ィョィャ0209ィ 06) 0102ィ"

Copied!
21
0
0

読み込み中.... (全文を見る)

全文

(1)

Linux Kernel HOWTO

Brian Ward, [email protected], ïåðåâîä Alex Ott [email protected] v0.80, 26 Ìàÿ 1997 üÔÏ ÄÅÔÁÌØÎÏÅ ÒÕËÏ×ÏÄÓÔ×Ï ÐÏ ÎÁÓÔÒÏÊËÅ ÑÄÒÁ, ÅÇÏ ËÏÍÐÉÌÑÃÉÉ, ÏÂÎÏ×ÌÅÎÉÑÍ É ÒÁÚÒÅÛÅÎÉÀ ÐÒÏÂÌÅÍ ÎÁ ÓÉÓÔÅÍÁÈ ÐÏÓÔÒÏÅÎÎÙÈ ÎÁ ÂÁÚÅ ix86.

Ñîäåðæàíèå

1 Ââåäåíèå 1 2 Âàæíûå âîïðîñû è îòâåòû íà íèõ 2 3 Êàê íàñòðàèâàòü ÿäðî 4 4 Êîìïèëÿöèÿ ÿäðà 8 5 Èñïðàâëåíèå ÿäðà ñ ïîìîùüþ çàïëàòîê 10 6 Äîïîëíèòåëüíûå ïàêåòû 12 7 Íåêîòîðûå ëîâóøêè 12 8 Çàìå÷àíèå äëÿ îáíîâëåíèÿ äî âåðñèè 2.0.x 17 9 Ìîäóëè 17 10 Äðóãèå îïöèè íàñòðîéêè 18 11 Ñîâåòû è ïðèåìû 18 12 Äðóãèå HOWTO, êîòîðûå ìîãóò áûòü ïîëåçíûìè 19 13 Ðàçíîå 20 Ïðèìå÷àíèå ïåðåâîä÷èêà:Øëèòå ìíå ëþáûé êîììåíòàðèè è çàìå÷àíèÿ, äàæå íåáîëüøèå.

1

Ââåäåíèå

Äîëæíû ëè âû ÷èòàòü ýòîò äîêóìåíò? Äà, åñëè ó âàñ îäèí èç ñëåäóþùèõ ñèìïòîìîâ: • “Âàõ! Ýòîò ïàêåò wizzo-46.5.6 ãîâîðèò, ÷òî åìó íóæíî ÿäðî 1.8.193, à ÿ âñå åùå ïîëüçóþñü âåðñèåé 1.0.9!” •  îäíîì èç áîëåå íîâûõ ÿäåð ñóùåñòâóåò äðàéâåð íåîáõîäèìîãî âàì óñòðîéñòâà. • Âû íå çíàåòå êàê êîìïèëèðîâàòü ÿäðî • “ äåéñòâèòåëüíîñòè ëè â ôàéëå README íàõîäèòñÿ âñå îïèñàíèå?” • Âû ñòàðàëèñü, âû ïûòàëèñü, à ýòî íå ðàáîòàåò • Âàì íóæíî ÷òî-òî äàòü ëþäÿì, êîòîðûå ïðîñÿò âàñ óñòàíîâèòü ÿäðà äëÿ íèõ

(2)

2. Âàæíûå âîïðîñû è îòâåòû íà íèõ 2

1.1

Ïðî÷èòàéòå ýòî ñíà÷àëà! (ß ýòî ïîäðàçóìåâàþ)

Íåêîòîðûå èç ïðèìåðîâ â ýòîì äîêóìåíòå ïðåäïîëàãàþò, ÷òî ó âàñ åñòü GNU tar, find, è xargs. Ýòè ïðîãðàììû äîâîëüíî ñòàíäàðòíû; ýòî íå äîëæíî âûçâàòü ïðîáëåì. Òàê æå ïðåäïîëàãàåòñÿ, ÷òî âû çíàåòå ñòðóêòóðó âàøåé ôàéëîâîé ñèñòåìû; åñëè âû íå çíàåòå ýüëãë, òî âû äîëæíû ñîõðà-íèòü êîïèþ âûâîäà êîìàíäû mount ïðè îáû÷íûõ ñèñòåìíûõ îïåðàöèÿõ (èëè ñîäåðæèìîå ôàéëà /etc/fstab, åñëè âû ìîæåòå ÷èòàòü åãî). Ýòà èíôîðìàöèÿ ÿâëÿåòñÿ âàæíîé, è íå èçìåíÿåòñÿ äî ïåðåðàçáèâêè âàøåãî äèñêà, äîáàâëåíèÿ íîâîãî, ïåðåñòàíîâêè âàøåé ñèñòåìû èëè ÷åãî-òî ïîäîá-íîãî. Ïîñëåäíåé “ñòàáèëüíîé (production)” âåðñèåé ÿäðà âî âðåìÿ íàïèñàíèÿ ýòîãî äîêóìåíòà áûëà âåð-ñèÿ 2.0.30, ýòî îçíà÷àåò, ÷òî âñå ññûëêè è ïðèìåðû îòíîñÿòñÿ ê ýòîé âåðñèè. Äàæå õîòÿ ÿ ïûòàëñÿ ñäåëàòü ýòîò äîêóìåíò êàê íå çàâèñÿùèé îò âåðñèè íàñêîëüêî ýòî âîçìîæíî, âñå ðàâíî ÿäðà ïîñòî-ÿííî íàõîäÿòñÿ â ðàçâèòèè, òàê ÷òî åñëè âû ïîëó÷èëè íîâóþ âåðñèþ, òî îíà íåèçáåæíî áóäåò èìåòü íåêîòîðûå îòëè÷èÿ. Âîîáùå ýòî íå äîëæíî âûçâàòü áîëüøèõ ïðîáëåì, íî ìîæåò ñîçäàòü íåêîòîðûå îñëîæíåíèÿ. Ñóùåñòâóåò äâå âåðñèè èñõîäíîãî êîäà ÿäðà linux, “ñòàáèëüíàÿ (production)” è “ðàçðàáàòûâàåìàÿ (development)”. Ñòàáèëüíûå âåðñèè íà÷àëèñü ñ 1.0.x è â íàñòîÿùåå âðåìÿ îíè èäóò ñ ÷åòíûìè íî-ìåðàìè; 1.0.x ÿâëÿþòñÿ ñòàáèëüíûìè, 1.2.x ÿâëÿþòñÿ ñòàáèëüíûìè, òàê æå êàê è 2.0.x. Ýòè ÿäðà ñ÷èòàþòñÿ áîëåå ñòàáèëüíûìè è ñâîáîäíûìè îò îøèáîê âåðñèÿìè âî âðåìÿ èõ âûïóñêà. Ðàçðà-áàòûâàåìûå ÿäðà (1.1.x, 1.3.x, è ò.ï.) ÿâëÿþòñÿ ÿäðàìè äëÿ òåñòèðîâàíèÿ, äëÿ ëþäåé æåëàþùèõ ïðîòåñòèðîâàòü íîâûå, âîçìîæíî ñ îøèáêàìè, ÿäðà. ß âàñ ïðåäóïðåäèë!

1.2

Îäíî ñëîâî î ñòèëå

ôÅËÓÔ, ËÏÔÏÒÙÊ ×ÙÇÌÑÄÉÔ ×ÏÔ ÔÁË – ýòî ëèáî òî, ÷òî ïîÿâèòñÿ íà âàøåì ýêðàíå, ëèáî èìÿ ôàéëà, ëèáî òî, ÷òî ìîæåò áûòü ïðÿìî íàáðàíî, íàïðèìåð êîìàíäà, èëè îïöèè êîìàíäû (åñëè âû ÷èòàåòå ýòî êàê ïðîñòîé òåêñò, òî ýòî ðàçëè÷èå íå âèäíî). Êîìàíäû è äðóãîé ââîä ÷àñòî âçÿòû â êàâû÷êè (ñ ïîìîùüþ ‘ ’), ÷òî âûçûâàåò êëàññè÷åñêóþ ïðîáëåìó ïóíêòóàöèè: Åñëè òàêîé ïóíêò ïîÿâ-ëÿåòñÿ â êîíöå ïðåäëîæåíèÿ â êàâû÷êàõ, òî ëþäè ÷àñòî íàáèðàþò ‘.’ âìåñòå ñ êîìàíäîé, ïîòîìó-÷òî Àìåðèêàíñêèé ñòèëü öèòèðîâàíèÿ çàñòàâëÿåò ïîìåùàòü òî÷êó âíóòðè êàâû÷åê. Äàæå åñëè çäðàâûé ñìûñë (è ê ñîæàëåíèþ, ýòî ïðåäïîëàãàåò, ÷òî ëþäè ñî “çäðàâûì ñìûñëîì)” áóäóò èñïîëüçîâàòü àìåðèêàíñêèé ñòèëü öèòèðîâàíèÿ) ãîâîðèò êîìó-òî, ÷òî íàäî îòáðîñèòü ñíà÷àëà çíàêè ïóíêòóàöèè, ìíîãî ëþäåé ïðîñòî ýòîãî íå ïîìíÿò, òàê ÷òî ÿ áóäó â òàêèõ ñëó÷àÿõ ïîìåùàòü çíàêè ïóíêòóàöèè âíå êàâû÷åê. Äðóãèìè ñëîâàìè, êîãäà íàäî ïîêàçàòü, ÷òî âû äîëæíû íàáðàòü “make config”, òî ÿ áóäó ïèñàòü ‘make config’, à íå ‘make config.’

2

Âàæíûå âîïðîñû è îòâåòû íà íèõ

2.1

×òî âîîáùå äåëàåò ÿäðî?

ßäðî Unix âûñòóïàåò êàê ïîñðåäíèê ìåæäó âàøåé ïðîãðàììîé è âàøèì îáîðóäîâàíèåì. Ñíà÷àëà îíî äåëàåò (èëè ïîäãîòàâëèâàåòñÿ ê) îáñëóæèâàíèþ/ðàñïðåäåëåíèþ ïàìÿòè êîìïüþòåðà äëÿ âñåõ çàïóùåííûõ ïðîãðàìì (ïðîöåññîâ), è óáåæäàåòñÿ, ÷òî âñå îíè ÷åñòíî (èëè íå÷åñòíî, åñëè âû ýòîãî æåëàåòå) ðàçäåëÿþò âðåìÿ ïðîöåññîðà.  äîáàâëåíèå ê ýòîìó îíî îáåñïå÷èâàåò âåëèêîëåïíûé, äîâîëüíî ïåðåíîñèìûé èíòåðôåéñ äëÿ îáùåíèÿ ïðîãðàìì ñ îáîðóäîâàíèåì. Êîíå÷íî ó ÿäðî âûïîëíÿåò áîëüøå äåéñòâèé, ÷åì ìû çäåñü ïåðå÷èñëèëè, íî ýòè îñíîâíûå ôóíêöèè íåîáõîäèìî çíàòü.

2.2

Ïî÷åìó ÿ äîëæåí îáíîâëÿòü ìîå ÿäðî?

Áîëåå íîâûå ÿäðà â îáùåì ïîääåðæèâàþò áîëüøåå êîëè÷åñòâî òèïîâ îáîðóäîâàíèÿ (îíè èìåþò áîëüøå äðàéâåðîâ óñòðîéñòâ), îíè ìîãóò èìåòü óëó÷øåííîå óïðàâëåíèå ïðîöåññàìè, îíè ìîãóò âûïîëíÿòüñÿ áûñòðåå, ÷åì áîëåå ñòàðûå âåðñèè, îíè ìîãóò áûòü áîëåå ñòàáèëüíûìè, ÷åì ñòàðûå

(3)

2. Âàæíûå âîïðîñû è îòâåòû íà íèõ 3

âåðñèè, è îíè èñïðàâëÿþò ãëóïûå îøèáêè â áîëåå ñòàðûõ âåðñèÿõ. Áîëüøèíñòâî ëþäåé îáíîâëÿþò ÿäðî, ïîòîìó-÷òî îíè õîòÿò èñïîëüçîâàòü íîâûå äðàéâåðà óñòðîéñòâ è èñïðàâèòü îøèáêè.

2.3

Êàêèå òèïû îáîðóäîâàíèÿ ïîääåðæèâàþò íîâûå ÿäðà?

Ñìîòðèòå Hardware-HOWTO.  êà÷åñòâå àëüòåðíàòèâû âû ìîæåòå ïîñìîòðåòü ôàéë ‘config.in’ â èñõîäíûõ òåêñòàõ ÿäðà linux source, èëè ïðîñòî íàéòè íóæíîå óñòðîéñòâî çàïóñòèâ ‘make config’. Îíè ïîêàçûâàþò âñå îáîðóäîâàíèå ïîääåðæèâàåìîå äèñòðèáóòèâîì ÿäðà, íî íå âñå, êîòîðîå ïîä-äåðæèâàåò linux; ìíîãî äðàéâåðîâ îáùèõ óñòðîéñòâ (òàêèõ êàê äðàéâåðà PCMCIA è íåêîòîðûå äðàéâåðà ëåíòî÷íûõ óñòðîéñòâ) ÿâëÿþòñÿ çàãðóæàåìûìè ìîäóëÿìè ñîïðîâîæäàþòñÿ è ðàñïðîñòðà-íÿþòñÿ îòäåëüíî.

2.4

Êàêèå âåðñèè gcc è libc ìíå íóæíû?

Ðåêîìåíäàöèè Linus ïî âåðñèè gcc íàõîäÿòñÿ â ôàéëå README, âêëþ÷åííîì â èñõîäíûå òåêñòû linux. Åñëè ó âàñ íåò ýòîé âåðñèè, òî äîêóìåíòàöèÿ ïî ðåêîìåíäóåìîé âåðñèè gcc äîëæíà ñîîáùèòü âàì âñå ñâåäåíèÿ, åñëè âàì íåîáõîäèìî îáíîâèòü âàøó âåðñèþ libc. Ýòî íå òðóäíàÿ ïðîöåäóðà, íî âàæíî ñëåäîâàòü èíñòðóêöèÿì.

2.5

×òî òàêîå çàãðóæàåìûé ìîäóëü?

Ýòî êóñî÷êè êîäà ÿäðà, êîòîðûå íå âêëþ÷åíû ïðÿìî â ÿäðî. Îíè êîìïèëèðóþòñÿ îòäåëüíî è çàòåì ìîãóò âñòàâëÿòü è óäàëÿòü èõ â çàïóùåííîå ÿäðî ïî÷òè â ëþáîå âðåìÿ. Âñëåäñòâèè èõ ãèáêîñòè, ñåé÷àñ ýòî ïðåäïî÷òèòåëüíûé ñïîñîá êîäèðîâàíèÿ íåêîòîðûõ ñðåäñòâ ÿäðà. Ìíîãî ïîïóëÿðíûõ äðàéâåðîâ óñòðîéñòâ, òàêèõ êàê äðàéâåðà PCMCIA è äðàéâåðà ëåíòî÷íûõ óñòðîéñòâ QIC-80/40, ÿâëÿþòñÿ çàãðóæàåìûìè ìîäóëÿìè.

2.6

Ñêîëüêî ìåñòà íà äèñêå ìíå íàäî?

Ýòî çàâèñèò îò êîíôèãóðàöèè âàøåé ñèñòåìû. Ïåðâîå, ýòî ñæàòûå èñõîäíûå òåêñòû ÿäðà, ïðèìåð-íî 6 ìåãàáàéò äëÿ âåðñèè 2.0.10. Íà ìïðèìåð-íîãèõ ìàøèíàõ ýòîò ôàéë õðàíÿò äàæå ïîñëå ðàñïàêîâêè.  ðàñæàòîì âèäå èñõîäíûå òåêñòû çàíèìàþò äî 24 ìåãàáàéò. Íî ýòî íå êîíåö – âàì íóæíî áîëüøå äëÿ êîìïèëÿöèè ÿäðà. Òðåáóåìûé ðàçìåð çàâèñèò îò òîãî, êàê âû íàñòðîèëè âàøå ÿäðî. Íàïðèìåð, íà îäíîé ìàøèíå ó ìåíÿ íàñòðîåíà ðàáîòà ñåòè, äðàéâåð 3Com 3C509, è òðè ôàéëîâûå ñèñòåìû, ýòî âñå çàíèìàåò ïðèìåðíî 30 ìåãàáàéò äèñêîâîãî ïðîñòðàíñòâà. Äîáàâèâ ñæàòûå èñõîäíûå òåê-ñòû, âàì ïîíàäîáèòüñÿ îêîëî 26 Ìá äëÿ òàêîé êîíôèãóðàöèè. Íà äðóãîé ñèñòåìå, áåç ïîääåðæêè äðàéâåðà ñåòåâîé êàðòû (íî âñå ðàâíî ñ ïîääåðæêîé ñåòè) è çâóêîâîé êàðòîé, âñå çàíèìàåò áîëüøå ïðîñòðàíñòâà. Òàêæå, áîëåå íîâûå ÿäðà èìåþò áîëåå áîëüøîå äåðåâî èñõîäíûõ òåêñòîâ, òàê ÷òî â îáùåì, åñëè åñëè ó âàñ äîâîëüíî ìíîãî óñòðîéñòâ, òî óáåäèòåñü, ÷òî ó âàñ äîñòàòî÷íî áîëüøîé æåñòêèé äèñê (ïðè ñåãîäíÿøíèõ öåíàõ, ÿ íå ìîãó ïîìî÷ü âàì, íî ÿ ðåêîìåíäóþ âçÿòü äðóãîé äèñê êàê îòâåò íà âàøó ïðîáëåìó îòñóòñòâèÿ ñâîáîäíîãî ïðîñòðàíñòâà).

2.7

Êàê äîëãî ýòîò ïðîöåññ èäåò?

Äëÿ áîëüøèíñòâà ëþäåé îòâåò áóäåò òàêîé: “äîâîëüíî äîëãî”. Ñêîðîñòü âàøåé ìàøèíû è êîëè÷åñòâî èìåþùåéñÿ ïàìÿòè îïðåäåëÿþò ýòî âðåìÿ, íî íåêîòîðàÿ ÷àñòü îïðåäåëÿåòñÿ, òåì êàê âû âêëþ÷èëè â ÿäðî. Íà ìàøèíå 486DX4/100 ñ 16 ÌÁ ÎÇÓ, íà ÿäðå âåðñèè 1.2 ñ ïÿòüþ ôàéëîâûìè ôàéëîâûìè ñèñòåìàìè, ïîääåðæêîé ñåòè è äðàéâåðîì çâóêîâîé êàðòû, êîìïèëÿöèÿ çàéìåò ïðèìåðíî 20 ìèíóò. Íà 386DX/40 (8 MÁ ÎÇÓ) ñ ïðèìåðíî òàêîé æå êîíôèãóðàöèåé, êîìïèëÿöèÿ ïðîäîëæàåòñÿ îêîëî 1.5 ÷àñîâ.  îáùåì ðåêîìåíäóåì âûïèòü êîôå, ïîñìîòðåòü òåëåâèçîð, ïîâÿçàòü èëè ïîäåëàòü ÷òî-íèáóäü ïîäîáíîå ïîêà âàøà ìàøèíà êîìïèëèðóåò ÿäðî.

(4)

3. Êàê íàñòðàèâàòü ÿäðî 4

3

Êàê íàñòðàèâàòü ÿäðî

3.1

Ïîëó÷åíèå èñõîäíûõ òåêñòîâ

Âû ìîæåòå ïîëó÷èòü èñõîäíûå òåêñòû ñ ïîìîùüþ àíîíèìíîãî ftp ñ ftp.funet.fi â äèðåêòî-ðèè /pub/Linux/PEOPLE/Linus, ñ åãî çåðêàëà, èëè ñ äðóãîãî ñåðâåðà. Îíè îáû÷íî îáîçíà÷åíû êàê linux-x.y.z.tar.gz, ãäå x.y.z íîìåð âåðñèè. Áîëåå íîâûå (ëó÷øèå?) âåðñèè è çàïëàòêè (patches) îáû÷íî íàõîäÿòñÿ â ïîääèðåêòîðèÿõ, òàêèõ êàê ‘v1.1’ è ‘v1.2’. Ñàìûé áîëüøîé íîìåð èìååò ïîñëåäíÿÿ âåðñèÿ è îáû÷íî ÿâëÿåòñÿ “òåñòîâîé âåðñèåé”, ýòî çíà÷èò, ÷òî åñëè âû íåëåãêî ïëîõî ÷óâñòâóåòå ñåáÿ ñ àëüôà èëè áåòà âåðñèÿìè, òî âû äîëæíû èñïîëüçîâàòü ñòàáèëüíóþ âåðñèþ. ß íàñòîÿòåëüíî ðåêîìåíäóþ âàì èñïîëüçîâàòü ñåðâåðà-çåðêàëà âìåñòî èñïîëüçîâàíèÿ ftp.funet.fi. Çäåñü ïðèâåäåí êîðîòêèé ñïèñîê ñåðâåðîâ-çåðêàë è äðóãèõ ñåðâåðîâ: USA: sunsite.unc.edu:/pub/Linux/kernel USA: tsx-11.mit.edu:/pub/linux/sources/system UK: sunsite.doc.ic.ac.uk:/pub/unix/Linux/sunsite.unc-mirror/kernel Austria: ftp.univie.ac.at:/systems/linux/sunsite/kernel Germany: ftp.Germany.EU.net:/pub/os/Linux/Local.EUnet/Kernel/Linus Germany: sunsite.informatik.rwth-aachen.de:/pub/Linux/PEOPLE/Linus France: ftp.ibp.fr:/pub/linux/sources/system/patches Australia: sunsite.anu.edu.au:/pub/linux/kernel  îáùåì çåðêàëî ñåðâåðà sunsite.unc.edu ÿâëÿåòñÿ õîðîøèì ìåñòîì, ãäå ìîæíî âçÿòü èñõîäíûå òåêñòû ÿäðà. Ôàéë /pub/Linux/MIRRORS ñîäåðæèò ñïèñîê èçâåñòíûõ ñåðâåðîâ-çåðêàë. Åñëè ó âàñ íåò äîñòóïà ê ftp, òî ñïèñîê ñèñòåì BBS, êîòîðûå ðàñïðîñòðàíÿþò linux ïåðèîäè÷åñêè ïîñûëàåòñÿ â ãðóïïó comp.os.linux.announce; ïîñòàðàéòåñü ïîëó÷èòü åãî. Åñëè âû èùåòå îáùóþ èíôîðìàöèþ î Linux è åãî äèñòðèáóòèâàõ, òî ïîñìîòðèòå íà http://www.linux.org.

3.2

Ðàñïàêîâêà èñõîäíûõ òåêñòîâ

Âîéäèòå â ñèñòåìó êàê àäìèíèñòðàòîð èëè âûïîëíèòå êîìàíäó su, è ïåðåéäèòå â äèðåêòîðèþ /usr/src.Åñëè âû óñòàíàâëèâàëè èñõîäíûå òåêñòû ÿäðà ïðè óñòàíîâêå linux (êàê äåëàåò áîëü-øèíñòâî), òî òîì ó âàñ óæå åñòü äèðåêòîðèÿ íàçâàííàÿ ‘linux’, êîòîðàÿ ñîäåðæèò ïîëíîå äåðåâî óñòàðåâøèõ èñõîäíûõ òåêñòîâ. Åñëè ó âàñ åñòü ñâîáîäíîå äèñêîâîå ïðîñòðàíñòâî, òî âû ìîæåòå ñî-õðàíèòü ýòó äèðåêòîðèþ. Õîðîøàÿ èäåÿ – îïðåäåëèòü êàêàÿ âåðñèÿ ÿäðà çàïóùåíà è ñîîòâåòñòâåí-íî ïåðåèìåñîîòâåòñòâåí-íîâàòü äèðåêòîðèþ. Êîìàíäà ‘uname -r’ âûäàåò ñîîòâåòñòâåí-íîìåð òåêóùåé âåðñèè ÿäðà. Ïîýòîìó, åñëè êîìàíäà ‘uname -r’ âûäàëà ‘1.0.9’, òî âû äîëæíû ïåðåèìåíîâàòü (ñ ïîìîùüþ ‘mv’) ‘linux’ â ‘linux-1.0.9’. Åñëè âû íå ÷óâñòâóåòå, ÷òî ïîñòóïàåòå îïðîìåò÷èâî, òî ïðîñòî ñîòðèòå âñþ äè-ðåêòîðèþ.  ëþáîì ñëó÷àå óáåäèòåñü, ÷òî íèêàêîé äèðåêòîðèè ‘linux’ â /usr/src äî ðàñïàêîâêè ïîëíîãî èñõîäíîãî êîäà ÿäðà. Òåïåðü ðàñïàêóéòå â /usr/src èñõîäíûå òåêñòû, ïîëüçóÿñü êîìàíäîé ‘tar zxpvf linux-x.y.z.tar.gz’ (åñëè âû ïîëó÷èëè ïðîñòî ôàéë .tar áåç ðàñøèðåíèÿ .gz íà êîíöå, òî ðàáîòàåò êîìàíäà ‘tar xpvf linux-x.y.z.tar’). Ñîäåðæèìîå àðõèâà áóäåò ðàñïàêîâàíî. Ïîñëå îêîí÷àíèÿ ïðîöåññà, áóäåò ñóùåñòâîâàòü íîâàÿ äèðåêòîðèÿ ‘linux’ â /usr/src. Ïåðåéäèòå linux è ïîñìîòðèòå ôàéë README. Òàì áóäåò ðàçäåë ñ çàãîëîâêîì ‘INSTALLING the kernel (õÓÔÁÎÏ×ËÁ ÑÄÒÁ)’. Âûïîëíèòå ñîîòâåòñòâóþùèå èíñòðóêöèè – ñèìâîëè÷åñêèå ññûëêè äîëæíû áûòü íà ñâîåì ìåñòå, óäàëèòå ñòàðûå .o ôàéëû, è ò.ï.

(5)

3. Êàê íàñòðàèâàòü ÿäðî 5

3.3

Íàñòðîéêà ÿäðà

Çàìå÷àíèå: Íåêîòîðîå èç ýòîãî ÿâëÿþòñÿ ïîâòîðåííèÿìè/ïîÿñíåíèÿìè ïîäîáíîãî ðàçäåëà ôàéëà READMEïîñòàâëÿåìîãî Linus.

Êîìàíäà ‘make config’ âûïîëíåííàÿ â /usr/src/linux çàïóñêàåò ñêðèïò íàñòðîéêè, êîòîðàÿ çàäàåò âàì ìíîãî âîïðîñîâ. Îíà òðåáóåò íàëè÷èÿ bash, òàê ÷òî ïðîâåðüòå ÷òî bash íàõîäÿòñÿ â /bin/bash, /bin/sh, èëè $BASH.

Ñóùåñòâóþò íåêîòîðûå àëüòåðíàòèâû êîìàíäå ‘make config’ è âû ìîæåòå íàéòè èõ áîëåå óäîá-íûìè è ëåãêèìè äëÿ èñïîëüçîâàíèÿ. Òå, êòî ðàáîòàåò â X ìîãóò ïîïðîáîâàòü ‘make xconfig’, åñëè ó âàñ óñòàíîâëåí Tk (‘click-o-rama’ - Nat). ‘make menuconfig’ – ýòî äëÿ òåõ, ó êîãî óñòàíîâëåí (n)curses è ïðåäïî÷èòàåò òåêñòîâûå ìåíþ. Ýòè èíòåðôåéñû èìåþò îäíî ÿâíîå ïðåèìóùåñòâî: åñëè âû ñäåëàëè íåïðàâèëüíûé âûáîð â òå÷åíèè íàñòðîéêè, òî î÷åíü ëåãêî âåðíóòüñÿ è èñïðàâèòü åå. Òåïåðü âû ãîòîâû îòâå÷àòü íà âîïðîñû, îáû÷íî îòâåòû âûãëÿäÿò êàê ‘y’ (äà) èëè ‘n’ (íåò). Äðàéâåðà óñòðîéñòâ îáû÷íî èìåþò îïöèþ ‘m’. Ýòî îçíà÷àåò “module (ìîäóëü)”, îáîçíà÷àÿ, ÷òî ñèñòåìà áóäåò êîìïèëèðîâàòü ýòîò äðàéâåð, íî íå âñòàâèò åãî ïðÿìî â ÿäðî, à ñäåëàåò çàãðóæàåìûì ìîäóëåì. Áîëåå êîìè÷íî ýòà îïöèÿ îïèñûâàåòñÿ êàê “maybe (ìîæåò áûòü)”. Íåêîòîðûå áîëåå ÿñíûå è íåêðèòè÷íûå îïöèè çäåñü íå îïèñàíû; ñìîòðèòå ðàçäåë “Äðóãèå îïöèè íàñòðîéêè” äëÿ èõ êðàòêîãî îïèñàíèÿ.  âåðñèÿõ 2.0.x è áîëåå ïîçäíèõ, ñóùåñòâóåò îïöèÿ ‘?’, êîòîðàÿ îáåñïå÷èâàåò êðàòêîå îïèñàíèå ïàðàìåòðà íàñòðîéêè. Ýòà èíôîðìàöèÿ ñêîðåå âñåãî íàèáîëåå ñâåæàÿ. 3.3.1 Ýìóëÿöèÿ ìàòåìàòè÷åñêèõ ôóíêöèé ÿäðîì Åñëè ó âàñ íåò ìàòåìàòè÷åñêîãî ñîïðîöåññîðà (ó âàñ ãîëûé 386 èëè 486SX), òî âû äîëæíû îòâåòèòü ‘y’ íà ýòîò âîïðîñ. Åñëè ó âàñ åñòü ñîïðîöåññîð è âû âñå ðàâíî îòâåòèëè ‘y’, òî íå áåñïîêîéòåñü – ñîïðîöåññîð âñå ðàíî áóäåò èñïîëüçîâàòüñÿ, à ýìóëÿöèÿ áóäåò ïðîèãíîðèðîâàíà. Åäèíñòâåííîå ñëåäñòâèå ýòîãî â òîì, ÷òî ÿäðî áóäåò áîëüøå (ðàñõîä ÎÇÓ). ß óïîìèíàë î òîì, ÷òî ýìóëÿöèÿ î÷åíü ìåäëåíà; õîòÿ ýòî íå î÷åíü ÷àñòî âëèÿåò, íî âñå ðàâíî âñïîìíèòå ýòî, åñëè ñòîëêíåòåñü ñ ìàëîé ïðîèçâîäèòåëüíîñòüþ ñèñòåìû X-windos. 3.3.2 Ïîääåðæêà îáû÷íûõ (MFM/RLL) äèñêîâ è äèñêîâ/cdrom IDE Âàì âåðîÿòíî íåîáõîäèìà ýòà ïîääåðæêà; ýòî îçíà÷àåò, ÷òî ÿäðî áóäåò ïîääåðæèâàòü ñòàíäàðòíûå æåñòêèå äèñêè PC, êîòîðûå èìååò áîëüøèíñòâî ëþäåé. Ýòîò äðàéâåð íå âêëþ÷àåò ïîääåðæêó SCSI äèñêîâ; èõ âûáîð èäåò äàëåå â íàñòðîéêå.

Çàòåì ó âàñ ñïðîñÿò î äðàéâåðàõ “old disk-only (òîëüêî ñòàðûõ äèñêîâ)” è “new IDE (íîâûõ IDE)”. Âû çàõîòèòå âûáðàòü îäèí èç íèõ; îñíîâíîå îòëè÷èå â òîì, ÷òî ñòàðûå äèñêè ïîääåðæèâàþò òîëü-êî äâà äèñêà íà îäíîì èíòåðôåéñå, à íîâûå ïîääåðæèâàþò âòîðè÷íûé (secondary) èíòåðôåéñ è íàêîïèòåëè IDE/ATAPI cdrom. Íîâûé äðàéâåð íà 4k áîëüøå ñòàðîãî è òàêæå ïðåäïîëîæèòåëüíî “óëó÷øåí”, óáèðàÿ íåêîòîðîå êîëè÷åñòâî îøèáîê, îí ìîæåò óëó÷øèòü ïðîèçâîäèòåëüíîñòü âàøåãî äèñêà, îñîáåííî åñëè ó âàñ íîâîå îáîðóäîâàíèå (òèïà EIDE). 3.3.3 Ïîääåðæêà ñåòè  ïðèíöèïå âû äîëæíû îòâåòèòü ‘y’, åñëè âàøà ìàøèíà ïîäêëþ÷åíà ê ñåòè, òàêîé êàê internet, èëè âû õîòèòå èñïîëüçîâàòü SLIP, PPP, term è ò.ï. äëÿ dial up äîñòóïà ê internet. Îäíàêî ìíîãî ïàêåòîâ (òàêèõ êàê îêîííàÿ ñèñòåìà X) òðåáóåò ïîääåðæêó ñåòè, äàæå åñëè âû íå ïîäêëþ÷åíû íè ê êàêîé ñåòè, âû äîëæíû ñêàçàòü ‘y’. Ïîçæå ó âàñ ñïðîñÿò, õîòèòå ëè âû ïîääåðæêó TCP/IP; äàëåå ñêàæèòå ‘y’, åñëè âû àáñîëþòíî óâåðåíû â ñâîåì âûáîðå. 3.3.4 Îãðàíè÷èòü ïàìÿòü äî ìåíåå 16MB Ñóùåñòâóþò ðàáîòàþùèå ñ îøèáêàìè êîíòðîëåðû DMA íà ìàøèíàõ ñ ïðîöåññîðîì 386, êîòîðûå èìåþò ïðîáëåìû ñ àäðåñàöèåé áîëüøå 16 Ìá ÎÇÓ; âû ìîæåòå îòâåòèòü ‘y’ â ñëó÷àå (ðåäêîì) åñëè

(6)

3. Êàê íàñòðàèâàòü ÿäðî 6

ó âàñ òàêîé êîíòðîëëåð.

3.3.5 System V IPC

Îäíî èç ëó÷øèõ îïðåäåëåíèé IPC (Interprocess Communication, Ìåæïðîöåññíîãî ñîîáùåíèÿ) äàíîâ â ãëîññàðèè êíèãè ïî Perl. Íå óäèâèòåëüíî, ÷òî íåêîòîðûå ïðîãðàììèñòû íà Perl èñïîëüçóþò ýòîò ìåõàíèçì ÷òîáû ïîçâîëèòü ïðîöåññó îáùàòüñÿ ñ äðóãèìè ïðîöåññàìè, òàê æå êàê è äðóãèå ïàêåòû (ñàìûé çàìåòíûé èç íèõ ýòî DOOM), òàê ÷òî îòâåò n íå ÿâëÿåòñÿ õîðîøåé èäååé, ïîêà âû íå áóäåòå òî÷íî óâåðåíû â òîì, ÷òî âû äåëàåòå. 3.3.6 Òèï ïðîöåññîðà (386, 486, Pentium, PPro) (â ñòàðûõ ÿäðàõ: èñïîëüçóéòå ôëàã -m486 äëÿ îïòèìèçàöèè äëÿ ïðîöåññîðà 486) Òðàäèöèîííî, ýòî äåëàåò íåêîòîðóþ îïòèìèçàöèþ äëÿ âûáðàííîãî ïðîöåññîðà; ÿäðà ðàáîòàþò áû-ñòðåå, íî ÿäðî ìîæåò áûòü íåñêîëüêî áîëüøå.  íîâûõ ÿäðàõ, ýòî îäíàêî áîëüøå íå ÿâëÿåòñÿ ïðàâäîé, òàê ÷òî âû äîëæíû ââåñòè ïðîöåññîð äëÿ êîòîðîãî âû êîìïèëèðóåòå ÿäðî. ßäðî äëÿ “386” áóäåò ðàáîòàòü íà âñåõ ìàøèíàõ. 3.3.7 Ïîääåðæêà SCSI Åñëè ó âàñ åñòü óñòðîéñòâà SCSI, òî îòâåòüòå ‘y’. Ó âàñ çàïðîñÿò äîïîëíèòåëüíóþ èíôîðìàöèþ, òàêóþ êàê ïîääåðæêó CD-ROM, äèñêîâ, è êàêîé òèï àäàïòåðà SCSI ó âàñ èìååòñÿ. Ñìîòðèòå SCSI-HOWTO äëÿ äîïîëíèòåëüíîé èíôîðìàöèè. 3.3.8 Ïîääåðæêà ñåòåâûõ óñòðîéñòâ Åñëè ó âàñ åñòü ñåòåâàÿ êàðòà, èëè âû õîòèòå èñïîëüçîâàòü SLIP, PPP, èëè àäàïòåð ïàðàëëåëüíîãî ïîðòà äëÿ ïîäêëþ÷åíèÿ ê Internet, òî îòâåòüòå ‘y’. Ñêðèïò íàñòðîéêè çàïðîñèò ó âàñ òèï êàðòû è êàêèå ïðîòîêîëû âû õîòèòå èñïîëüçîâàòü. 3.3.9 Ôàéëîâûå ñèñòåìû Çàòåì íàñòðîå÷íûé ñêðèïò çàïðîñèò ó âàñ ïîääåðæêó äëÿ êàêèõ ôàéëîâûõ ñèñòåì âû õîòèòå èìåòü â ñâîåé ñèñòåìå: Ñòàíäàðòíàÿ (minix) - Áîëåå íîâûå äèñòðèáóòèâû íå ñîçäàþò ôàéëîâûå ñèñòåìû minix, è ìíîãî ëþ-äåé íå èñïîëüçóþò åå, íî âñå ðàâíî õîðîøàÿ èäåÿ íàñòðîèòü åå. Íåêîòîðûå ïðîãðàììû ñ “äèñêàìè äëÿ âîññòàíîâëåíèÿ (rescue disk)” èñïîëüçóþò åå è âñå åùå ìíîãî ãèáêèõ äèñêîâ ìîãóò èñïîëüçîâàòü ôàéëîâóþ ñèñòåìó minix, ïîñêîëüêó ôàéëîâàÿ ñèñòåìà minix ìåíåå ìó÷èòåëüíàÿ äëÿ èñïîëüçîâàíèÿ íà ãèáêèõ äèñêàõ. Extended fs - ýòî áûëà ïåðâàÿ âåðñèÿ ðàñøèðåííîé ôàéëîâîé ñèñòåìû, êîòîðàÿ ñåé÷àñ íå ÿâëÿåòñÿ øèðîêî èñïîëüçóåìîé. Åñëè âû íå çíàåòå òî÷íî, ÷òî îíà âàì íóæíà è ñîìíåâàåòåñü, òî ñêîðåå âñåãî îíà âàì íå íóæíà. Second extended - ýòà ôàéëîâàÿ ñèñòåìà øèðîêî èñïîëüçóåòñÿ â íîâûõ äèñòðèáóòèâàõ. Ó âàñ ñêîðåå âñåãî îíà åñòü è âàì íóæíî îòâåòèòü ‘y’. ôàéëîâàÿ ñèñòåìà xiafs - îäíî âðåìÿ îíà íå áûëà íåîáû÷íî, íî âî âðåìÿ íàïèñàíèÿ ýòîãî äîêóìåíòà ÿ íå çíàë íèêîãî èñïîëüçóþùåãî ýòó ôàéëîâóþ ñèñòåìó. msdos - åñëè âû õîòèòå èñïîëüçîâàòü ðàçäåëû âàøåãî æåñòêîãî äèñêà ñ MS-DOS, èëè ìîíòèðîâàòü ãèáêèå äèñêè, îòôîðìàòèðîâàííûå ïîä MS-DOS, òî îòâåòüòå ‘y’. umsdos - ýòà ôàéëîâàÿ ñèñòåìà ðàñøèðÿåò âîçìîæíîñòè ôàéëîâîé ñèñòåìû MS-DOS îáû÷íûìè Unix-ïîäîáíûìè âîçìîæíîñòÿìè, òàêèìè êàê äëèííûå èìåíà. Ýòî íå ÿâëÿåòñÿ ïîëåçíûì äëÿ ëþäåé (òàêèõ êàê ÿ), êòî “íå ðàáîòàåò â DOS.” /proc - îäíà èç âåëè÷àéøèõ âåùåé ñî âðåìåí èçîáðåòåíèÿ ïîðîøêîâîãî ìîëîêà (ÿ òàê ïðåäïîëà-ãàþ, èäåÿ áûëà áåññòûäíî óêðàäåíà ó Bell Labs). Îíà íå ñîçäàåò ôàéëîâóþ ñèñòåìó proc íà äèñêå;

(7)

3. Êàê íàñòðàèâàòü ÿäðî 7

îíà ÿâëÿåòñÿ èíòåðôåéñîì â âèäå ôàéëîâîé ñèñòåìû ê ÿäðó è ïðîöåññàì. Ìíîãî ïðîãðàìì, âûäà-þùèõ ñïèñîê ïðîöåññîâ (òàêèõ êàê ‘ps’) èñïîëüçóþò åå. Êàê íèáóäü ïîïðîáóéòå âûïîëíèòü ‘cat /proc/meminfo’ èëè ‘cat /proc/devices’. Íåêîòîðûå êîìàíäíûå ïðîöåññîðû (â ÷àñòíîñòè rc) èñïîëüçóþò /proc/self/fd (èçâåñòíûé êàê /dev/fd â äðóãèõ ñèñòåìàõ) äëÿ ââîäà/âûâîäà. Âû äîëæíû ïî÷òè âñåãäà îòâåòèòü ‘y’ íà ýòîò âîïðîñ; ìíîãî âàæíûõ óòèëèò äëÿ linux çàâèñÿò îò ýòîãî âûáîðà.

NFS - åñëè âàøà ìàøèíà ðàáîòàåò â ñåòè è âû õîòèòå èñïîëüçîâàòü ôàéëîâûå ñèñòåìû íàõîäÿùèåñÿ íà äðóãèõ ìàøèíàõ ñ ïîìîùüþ NFS, òî îòâåòüòå ‘y’.

ISO9660 - èìååòñÿ íà áîëüøèíñòâå CD-ROM. Åñëè ó âàñ åñòü ïðèâîä CD-ROM è âû õîòèòå èñïîëü-çîâàòü åãî â Linux, òî îòâåòüòå ‘y’.

OS/2 HPFS - âî âðåìÿ íàïèñàíèÿ ðàáîòàåò êàê ôàéëîâàÿ ñèñòåìà òîëüêî äëÿ ÷òåíèÿ äëÿ OS/2 HPFS. System V è Coherent - äëÿ ðàçäåëîâ ìàøèí ñ System V è Coherent (ýòî äðóãèå âàðèàíòû Unix äëÿ PC).

Íî ÿ íå çíàþ êàêèå ôàéëîâûå ñèñòåìû ìíå íóæíû! Õîðîøî, íàáåðèòå êîìàíäó ‘mount’. Åå âûâîä áóäåò âûãëÿäåòü ïðèìåðíî òàê:

blah# mount

/dev/hda1 on / type ext2 (defaults) /dev/hda3 on /usr type ext2 (defaults) none on /proc type proc (defaults) /dev/fd0 on /mnt type msdos (defaults)

Ïîñìîòðèòå íà êàæäóþ ñòðîêó; ñëîâî èäóùåå çà ñëîâîì ‘type (ÔÉÐ)’ ÿâëÿåòñÿ òèïîì ôàéëîâîé ñèñòåìû.  ìîåì ïðèìåðå ìîè ôàéëîâûå ñèñòåìû / è /usr ÿâëÿþòñÿ ôàéëîâûìè ñèñòåìàìè òèïà second extended, ÿ èñïîëüçóþ /proc, è åñòü ãèáêèé äèñê ñìîíòèðîâàííûé èñïîëüçóÿ ôàéëîâóþ ñèñòåìó msdos. Âû ìîæåòå ïîïðîáîâàòü âûïîëíèòü ‘cat /proc/filesystems’, åñëè ó âàñ â íàñòîÿùåå âðåìÿ ðàçðå-øåíî èñïîëüçîâàíèå /proc; ýòà êîìàíäà ïåðå÷èñëèò ôàéëîâûå ñèñòåìû, ïîääåðæêó êîòîðûõ èìååò âàøå ÿäðî. Íàñòðîéêà ðåäêî èñïîëüçóåìûõ, íå êðèòè÷åñêèõ ôàéëîâûõ ñèñòåì ìîæåò âûçâàòü ðàçäóâàíèå âà-øåãî ÿäðà; ñìîòðèòå ðàçäåë î ìîäóëÿõ ÷òîáû èçáåæàòü ýòîãî è ðàçäåë “Ëîâóøêè” î òîì, ïî÷åìó ðàçäóâøååñÿ ÿäðî ÿâëÿåòñÿ íåæåëàòåëüíûì. 3.3.10 Ñèìâîëüíûå óñòðîéñòâà  ýòîì ðàçäåëå âû âûáèðàåòå äðàéâåðà äëÿ âàøåãî ïðèíòåðà (ïàðàëëåëüíîãî ïðèíòåðà), øèííîé ìûøè, ìûøè äëÿ PS/2 (ìíîãèå notebook èñïîëüçóþò ïðîòîêîë ìûøè PS/2 äëÿ ñâîèõ âñòðîåííûõ òðåêáîëîâ), íåêîòîðûå ëåíòî÷íûå íàêîïèòåëè è äðóãèå òàêèå æå “ñèìâîëüíûå” óñòðîéñòâà. Îòâåòü-òå ‘y’ ãäå íåîáõîäèìî. Çàìå÷àíèå: Selection ýòî ïðîãðàììà, êîòîðàÿ ïîçâîëÿåò âàì èñïîëüçîâàòü ìûøü âíå ñèñòåìû X window äëÿ âûðåçàíèÿ è âñòàâêè ìåæäó âèðòóàëüíûìè êîíñîëÿìè. Îíà ðàáîòàåò äîâîëüíî õîðîøî, åñëè ó âàñ ìûøü äëÿ ïîñëåäîâàòåëüíîãî ïîðòà, ïîòîìó-÷òî îíà õîðîøî ðàáîòàåò ñ X, íî âàì íåîá-õîäèìî âûïîëíèòü íåêîòîðûå äåéñòâèÿ, äëÿ òîãî ÷òîáû ðàáîòàëè äðóãèå òèïû ìûøåé. Ïîääåðæêà Selection îäíî âðåìÿ áûëà îïöèåé íàñòðîéêè, íî ñåé÷àñ îíà ÿâëÿåòñÿ ñòàíäàðòîì. Çàìå÷àíèå 2: Ñåé÷àñ Selection ñ÷èòàåòñÿ óñòàðåâøåé. Èìÿ íîâîé ïðîãðàììû “gpm”. Îíà ìîæåò äå-ëàòü áîëåå ôàíòàñòè÷åñêèå âåùè, òàêèå êàê òðàíñëÿöèþ ïðîòîêîëà ìûøè, ðàáîòàòü ñ íåñêîëüêèìè ìûøàìè, .. 3.3.11 Çâóêîâûå êàðòû åñëè âû ÷óâñòâóåòå îãðîìíîå æåëàíèå ñëûøàòü ðÿâêàíüå biff, òî îòâåòüòå ‘y’, è äàëåå äðóãàÿ ïðîãðàììà íàñòðîéêè áóäåò ñêîìïèëèðîâàíà è áóäåò çàäàâàòü âàì âîïðîñû î âàøåé çâóêîâîé êàðòå.

(8)

4. Êîìïèëÿöèÿ ÿäðà 8 (Ïðèìå÷àíèå î íàñòðîéêå çâóêîâîé êàðòû: êîãäà ïðîãðàììà ñïðîñèò ó âàñ óñòàíàâëèâàòü ëè ïîëíóþ âåðñèþ äðàéâåðà, òî îòâåòüòå ‘n’ è ñîõðàíèòå íåêîòîðîå êîëè÷åñòâî ïàìÿòè â ÿäðå âûáîðîì òîëüêî íåîáõîäèìûõ âîçìîæíîñòåé äðàéâåðà). ß ñèëüíî ðåêîìåíäóþ âàì ïîñìîòðåòü â Sound-HOWTO äëÿ áîëåå äåòàëüíîé èíôîðìàöèè î ïîääåðæêå çâóêà, åñëè ó âàñ åñòü çâóêîâàÿ êàðòà. 3.3.12 Äðóãèå îïöèè íàñòðîéêè Íå âñå îïöèè íàñòðîéêè ïåðå÷èñëåíû çäåñü ïîòîìó-÷òî îíè ñëèøêîì ÷àñòî ìåíÿþòñÿ èëè ÿâëÿ-þòñÿ î÷åâèäíûìè (íàïðèìåð, ïîääåðæêà 3Com 3C509 äëÿ êîìïèëÿöèè äðàéâåðà äëÿ äàííîé êàðòû ethernet). Ñóùåñòâóåò äîâîëüíî ïîëíûé ñïèñîê âñåõ îïöèé (ïëþñ ñïîñîá ïîìåñòèòü èõ â ñêðèïò Configure), êîòîðûé ñîáðàí Axel Boldt ([email protected]) ïî ñëåäóþùåìó àäðåñó:

http://math-www.uni-paderborn.de/~axel/config_help.html èëè ÷åðåç àíîíèìíûé FTP ïî àäðåñó: ftp://sunsite.unc.edu/pub/Linux/kernel/config/krnl_cnfg_hlp.x.yz.tgz ãäå x.yz ýòî íîìåð âåðñèè. Äëÿ ïîñëåäíèõ ÿäåð (2.0.x è áîëåå ïîçäíèõ), ýòîò ñïèñîê áûë èíòåãðèðîâàí â äåðåâî èñõîäíûõ òåêñòîâ. 3.3.13 Ðàáîòà íàä ÿäðîì (Kernel hacking) Èç Linus README: äåéñòâèå îïöèè íàñòðîéêè “kernel hacking” îáû÷íî ïðîÿâëÿåòñÿ â áîëåå áîëüøîì èëè ìåäëåííîì ÿäðå (èëè îáà ñèìïòîìà), è ìîæåò äàæå ñäåëàòü ÿäðî ìåíåå ñòàáèëüíûì èç-çà íàñòðîéêè íåêîòîðûõ ïîäïðîãðàìì íà ïîïûòêó àêòèâíî ñëîìàòü ïëîõîé êîä, ÷òîáû íàéòè ïðîáëåìû ñ ÿäðîì (kmalloc()). Òàêèì îáðàçîì âàì ñêîðåå âñåãî íàäî îòâåòèòü ‘n’ íà ýòîò âîïðîñ äëÿ “production” ÿäåð.

3.4

×òî òåïåðü? (Makefile)

Ïîñëå òîãî êàê make config âûäàñò ñîîáùåíèå î òîì, ÷òî âàøå ÿäðî áûëî íàñòðîåíî, âû ìîæåòå “ïðîâåðèòü (íàñòðîèòü) îñíîâíîé Makefile äëÿ äîïîëíèòåëüíûõ íàñòðîåê”, è ò.ï. Òåïåðü âû ìîæåòå ïîñìîòðåòü â Makefile. Âàì âåðîÿòíî íå ïîíàäîáèòñÿ èçìåíÿòü åãî, íî âû íå ïîâðåäèòå åãî åñëè ïîñìîòðèòå. Âû ìîæåòå òàêæå èçìåíèòü îïöèè â íåì ñ ïîìîùüþ êîìàíäû ‘rdev’ ïîñëå òîãî êàê ïîìåñòèòå ÿäðî íà åãî ìåñòî.

4

Êîìïèëÿöèÿ ÿäðà

4.1

Î÷èñòêà è ñîçäàíèå çàâèñèìîñòåé

Êîãäà íàñòðîå÷íûé ñêðèïò çàêîí÷èò ñâîþ ðàáîòó, îí òàêæå ñêàæåò âàì, ÷òîáû âû âûïîëíèëè ‘make dep’ è (âåðîÿòíî) ‘clean’. Òàê ÷òî âûïîëíèòå ‘make dep’. Îí îáåñïå÷èò, ÷òîáû âñå çàâèñèìîñòè, òàêèå êàê ôàéëû çàãîëîâêîâ, íàõîäÿòñÿ íà ìåñòå. Ýòà ïðîöåäóðà íå äëèòüñÿ äîëãî, åñëè ó âàñ íå ìåäëåííûé êîìïüþòåð. Äëÿ áîëåå ñòàðûõ âåðñèé ÿäåð, ïðè îêîí÷àíèè âû äîëæíû âûïîëíèòü ‘make clean’. Ýòà ïðîöåäóðà óäàëÿåò âñå îáúåêòíûå ôàéëû è íåêîòîðûå äðóãèå âåùè îñòàâøèåñÿ îò ïðåäûäóùåé êîìïèëÿöèè.  ëþáîì ñëó÷àå, íå çàáûâàéòå âûïîëíèòü ýòîò øàã äî íà÷àëà ïåðåêîìïè-ëÿöèè ÿäðà.

(9)

4. Êîìïèëÿöèÿ ÿäðà 9

4.2

Âðåìÿ êîìïèëÿöèè

Ïîñëå âûïîëíåíèÿ dep è clean, âû ìîæåòå âûïîëíÿòü ‘make zImage’ èëè ‘make zdisk’ (ýòà ÷àñòü ïðîöåññà çàíèìàåò äëèòåëüíîå âðåìÿ). ‘make zImage’ ñêîìïèëèðóåò ÿäðî è îñòàâèò â äèðåêòîðèè arch/i386/boot ôàéë íàçâàííûé ‘zImage’ (ñðåäè äðóãèõ âåùåé). Ýòî íîâîå ñæàòîå ÿäðî. ‘make zdisk’ äåëàåò òîæå ñàìîå, íî òàêæå ïîìåùàåò íîâûé ôàéë zImage íà ãèáêèé äèñê, êîòîðûé âû äîëæíû âñòàâèòü â óñòðîéñòâî “A:”. ‘zdisk’ ÿâëÿåòñÿ äîâîëüíî óäîáíûì äëÿ òåñòèðîâàíèÿ íîâûõ ÿäåð; åñëè îíî íå çàãðóæàåòñÿ (èëè ïðîñòî ðàáîòàåò íåïðàâèëüíî), òî ïðîñòî âûòàùèòå äèñêåòó èç äèñêîâîäà è çàãðóçèòåñü ñî ñòàðûì ÿäðîì. Ýòî ìîæåò áûòü òàêæå óäîáíûì â òîì ñëó÷àå, åñëè âû ñëó÷àéíî óäàëèëè ÿäðî (èëè ñäåëàëè ÷òî-íèáóäü ïîäîáíîå ïî ñâîåìó ðàçðóøèòåëüíîìó äåéñòâèþ). Âû òàêæå ìîæåòå èñïîëüçîâàòü åãî äëÿ óñòàíîâêè íîâûõ ñèñòåì, â òîì ñëó÷àå êîãäà âû ïðîñòî äåëàåòå äàìï ñ îäíîãî äèñêà íà äðóãîé(“ýòî âñå è áîëüøå! Òåïåðü, ñêîëüêî âû ìîãëè áû êóïèòü?”). Âñå, äàæå ñðàâíèòåëüíî íåäàâíèå ÿäðà ÿâëÿþòñÿ ñæàòûìè, ïîýòîìó îíè èìåþò áóêâó ‘z’ â íà÷àëå èìåíè. Ñæàòîå ÿäðî àâòîìàòè÷åñêè ðàçæèìàåòñÿ ïðè âûïîëíåíèè.

4.3

Äðóãèå âåùè, ìîæíî ñäåëàòü ñ ïîìîùüþ “make”

‘make mrproper’ âûïîëíèò áîëåå èíòåíñèâíóþ î÷èñòêó äåðåâà èñõîäíûõ òåêñòîâ. Èíîãäà îíà ÿâ-ëÿåòñÿ íåîáõîäèìîé; âû ìîæåòå âûïîëíÿòü ýòó êîìàíäó ïîñëå êàæäîãî íàëîæåíèÿ çàïëàòîê. ‘make mrproper’ òàêæå óäàëèò âàøè ôàéëû êîíôèãóðàöèè, òàê ÷òî âû ìîæåòå çàõîòåòü ñîõðàíèòü ðå-çåðâíóþ êîïèþ âàøåãî ôàéëà (.config), åñëè âû ñ÷èòàåòå åãî öåííûì. ‘make oldconfig’ ïîïûòàåòñÿ íàñòðîèòü âàøå ÿäðî èñïîëüçóÿ ñòàðûé ôàéë íàñòðîåê; îí ïðîäåëàåò ïóòü ïî ïðîöåññó êîíôèãóðàöèè ‘make config’ âìåñòî âàñ. Åñëè ó âàñ íåò ñêîìïèëèðîâàííîãî ÿäðà èëè ó âàñ íåò ñòàðîãî ôàéëà íàñòðîåê, òî âàì ñêîðåå âñåãî íå íàäî äåëàòü ýòîé îïåðàöèè, ïîñêîëüêó âû âåðîÿòíî çàõîòèòå èçìåíèòü íàñòðîéêè ïî óìîë÷àíèþ. Ñìîòðèòå ðàçäåë î ìîäóëÿõ äëÿ îïèñàíèÿ îïåðàöèè ‘make modules’.

4.4

Óñòàíîâêà ÿäðà

Ïîñëå òîãî êàê âû óñòàíîâèëè, ÷òî íîâîå ÿäðî ðàáîòàåò òàê êàê âàì íàäî, íàñòóïàåò âðåìÿ åãî óñòàíîâêè. Áîëüøèíñòâî ëþäåé äëÿ ýòîãî èñïîëüçóåò LILO (Çàãðóç÷èê Linux). Êîìàíäà ‘make zlilo’ óñòàíîâèò íîâîå ÿäðî, çàïóñòèò äëÿ íåãî LILO, è âñå áóäåò ãîòîâî ê ïåðåçàãðóçêå, ÍÎ ÒÎËÜÊÎ åñëè lilo íàñòðîåíî ïðàâèëüíî â âàøåé ñèñòåìå: ÿäðî ðàñïîëàãàåòñÿ â ôàéëå /vmlinuz, lilo íàõîäèòñÿ â äèðåêòîðèè /sbin, è âàø êîíôèãóðàöèîííûé ôàéë lilo (/etc/lilo.conf) îòðàæàåò ýòè óñëîâèÿ. Èíà÷å âàì ïðèäåòñÿ èñïîëüçîâàòü LILO íåïîñðåäñòâåííî. Ýòî äîâîëüíî ëåãêèé â óñòàíîâêå è â ðàáîòå ïàêåò, íî îí èìååò òåíäåíöèþ ââîäèòü â çàìåøàòåëüñòâî ëþäåé ñâîèì êîíôèãóðàöèîííûì ôàéëîì. Ïîñìîòðèòå êîíôèãóðàöèîííûé ôàéë (ëèáî /etc/lilo/config äëÿ ñòàðûõ âåðñèé ëèáî /etc/lilo.confäëÿ áîëåå íîâûõ âåðñèé), è ïîñìîòðèòå òåêóùèå íàñòðîéêè. Êîíôèãóðàöèîííûé ôàéë âûãëÿäèò ïðèìåðíî òàê: image = /vmlinuz label = Linux root = /dev/hda1 ... ‘image =’ óêàçûâàåò íà óñòàíîâëåííîå â íàñòîÿùåå âðåìÿ ÿäðî. Áîëüøèíñòâî ëþäåé èñïîëüçóþò /vmlinuz. ‘label’ èñïîëüçóåòñÿ äëÿ îïðåäåëåíèÿ êàêîå ÿäðî èëè îïåðàöèîííàÿ ñèñòåìà áóäåò çà-ãðóæàòüñÿ, è ‘root’ ýòî êîðíåâîé ðàçäåë îòäåëüíîé îïåðàöèîííîé ñèñòåìû. Ñäåëàéòå ðåçåðâíóþ êîïèþ âàøåãî ÿäðà è ñêîïèðóéòå òîëüêî ÷òî ñäåëàííîå ÿäðî íà åãî ìåñòî (âû äîëæíû âûïîëíèòü êîìàíäó ‘cp zImage /vmlinuz’ åñëè âû èñïîëüçóåòå ‘/vmlinuz’). Çàòåì ïåðåçàïóñòèòå lilo – íà áîëåå íîâûõ ñèñòåìàõ âû ìîæåòå ïðîñòî çàïóñòèòü ‘lilo’, íî íà ñòàðûõ âû äîëæíû âûïîëíèòü /etc/lilo/install èëè äàæå /etc/lilo/lilo -C /etc/lilo/config.

(10)

5. Èñïðàâëåíèå ÿäðà ñ ïîìîùüþ çàïëàòîê 10

Åñëè âû õîòèòå çíàòü áîëüøå î íàñòðîéêå LILO èëè ó âàñ åãî íåò, òî âîçüìèòå ñàìóþ íîâóþ åãî âåðñèþ ñ âàøåãî ëþáèìîãî ñåðâåðà ftp è ñëåäóéòå èíñòðóêöèÿì.

Äëÿ çàãðóçêè îäíîãî èç âàøèõ ñòàðûõ ÿäåð íà æåñòêîì äèñêå (åùå îäèí ñïîñîá îáåçîïàñèòü ñåáÿ ïðè èñïîëüçîâàíèè íîâîãî ÿäðà), ñêîïèðóéòå íèæåïðèâåäåííûå ñòðîêè (è âêëþ÷èòå) ‘image = xxx’ â ôàéë êîíôèãóðàöèè LILO â êîíöå ôàéëà, è èçìåíèòå ‘image = xxx’ íà ‘image = yyy’, ãäå ‘yyy’ ýòî ïîëíûé ïóòü âàøåãî ñòàðîãî ÿäðà. Çàòåì èçìåíèòå ‘label = zzz’ íà ‘label = linux-backup’ è ïåðåçàïóñòèòå lilo. Âàì ìîæåò áûòü áóäåò íåîáõîäèìî ïîìåñòèòü ñòðîêó â êîíôèãóðàöèîííûé ôàéë, êîòîðàÿ âûãëÿäèò òàê ‘delay=x’, ãäå x ýòî êîëè÷åñòâî äåñÿòûõ äîëåé ñåêóíäû, íà êîòîðîå LILO çàäåðæèòñÿ äî çàãðóçêè, òàê ÷òî âû ìîæåòå ïðåðâàòü åãî âûïîëíåíèå (íàïðèìåð ïðè ïîìîùè êëàâèøè shift), è íàáðàòü ìåòêó èìÿ ñîõðàíåííîãî îáðàçà çàãðóçêè (â ñëó÷àå, åñëè ïðîèçîéäóò ðàçíûå íåïðèÿòíûå âåùè).

5

Èñïðàâëåíèå ÿäðà ñ ïîìîùüþ çàïëàòîê

5.1

Íàëîæåíèå çàïëàòîê

Íàêëàäûâàþùèåñÿ îáíîâëåíèÿ ÿäðà ðàñïðîñòðàíÿþòñÿ â âèäå çàïëàòîê. Íàïðèìåð, åñëè ó âàñ âåð-ñèÿ 1.1.45, è âàñ îïîâåñòèëè, ÷òî âûïóùåí ‘patch46.gz’ äëÿ íåãî, ýòî îçíà÷àåò, ÷òî âû ìîæåòå îáíîâèòü ÿäðî äî âåðñèè 1.1.46 ïðèëîæèâ ýòó çàïëàòêó. Âû ìîæåòå çàõîòåòü ñíà÷àëà ñäåëàòü ðå-çåðâíóþ êîïèþ äåðåâà èñõîäíûõ òåêñòîâ ÿäðà (ñíà÷àëà ‘make clean’ è çàòåì ‘cd /usr/src; tar zcvf old-tree.tar.gz linux’ ñîçäàñò äëÿ ñæàòûé àðõèâíûé ôàéë ñ ðåçåðâíîé êîïèåé).

Òàê, ïðîäîëæàÿ ïðèìåð, ïðèâåäåííûé âûøå, ïðåäïîëîæèì, ÷òî ó âàñ ôàéë ‘patch46.gz’ ðàñïîëî-æåí â äèðåêòîðèè /usr/src. Âûïîëíèì cd â /usr/src è âûïîëíèì ‘zcat patch46.gz | patch -p0’ (èëè ‘patch -p0 < patch46’ åñëè ýòà çàïëàòêà íå ÿâëÿåòñÿ ñæàòîé). Âû óâèäèòå íåêîòîðûå âåùè ìåëüêàþùèå íà ýêðàíå, êîòîðûå ñîîáùàþò âàì, ÷òî ïðîãðàììà ïûòàåòñÿ ïðèëîæèòü êóñêè çàïëàòêè íà íóæíûå ôàéëû è èíôîðìàöèþ î òîì, óäà÷íà äàííàÿ îïåðàöèÿ èëè íåò. Îáû÷íî ýòîò ïðîöåññ èäåò ñëèøêîì áûñòðî, ÷òîáû âû ìîãëè ïðî÷èòàòü è âû ìîæåòå íå áûòü óâåðåííûìè, óäà÷-íà ýòà îïåðàöèÿ èëè íåò, â ýòîì ñëó÷àå âû ìîæåòå èñïîëüçîâàòü îïöèþ -s äëÿ ïðîãðàììû patch, êîòîðàÿ çàñòàâëÿåò patch âûäàâàòü òîëüêî ñîîáùåíèå îá îøèáêàõ (âû íå ïîëó÷èòå ñîîáùåíèÿ “ýé, ìîé êîìïüþòåð äåéñòâèòåëüíî ÷òî-òî äåëàåò!”, íî åñëè âû ýòî ïðåäïî÷èòàåòå..). Äëÿ òîãî, ÷òîáû âçãëÿíóòü íà òî êàêèå ðàçäåëû íå ïðîøëè ãëàäêî, ïåðåéäèòå â äèðåêòîðèþ /usr/src/linux è ïîñìîòðèòå ôàéëû ñ ðàñøèðåíèåì .rej. Íåêîòîðûå âåðñèè ïðîãðàììû patch (ñòàðûå âåðñèè, êî-òîðûå ìîãëè áûòü ñêîìïèëèðîâàíû íà áîëåå õóäøèõ ôàéëîâûõ ñèñòåìàõ) îñòàâëÿþò îòêëîíåííûå ôàéëû ñ ðàñøèðåíèåì #. âû ìîæåòå èñïîëüçîâàòü êîìàíäó ‘find’ äëÿ òîãî ÷òîáû íàéòè ýòè ôàéëû:

find . -name ’*.rej’ -print

ýòà êîìàíäà ïå÷àòàåò ñïèñîê âñåõ ôàéëîâ, êîòîðûå íàõîäÿòñÿ â òåêóùåé äèðåêòîðèè è åå ïîääè-ðåêòîðèÿõ è èìåþò ðàñøèðåíèå .rej íà ñòàíäàðòíûé âûâîä.

åñëè âñå ïðîøëî ïðàâèëüíî, òî âûïîëíèòå êîìàíäû ‘make clean’, ‘config’, è ‘dep’ êàê îïèñàíî â ðàçäåëàõ 3 è 4. Ñóùåñòâóåò åùå íåñêîëüêî îïöèé äëÿ êîìàíäû patch. Êàê áûëî îòìå÷åíî âûøå, patch -s çàïðåòèò âûâîä âñåõ ñîîáùåíèé çà èñêëþ÷åíèåì ñîîáùåíèé îá îøèáêàõ. Åñëè âû õðàíèòå âàøå ÿäðî ãäå-òî â äðóãîì ìåñòå, îòëè÷íîì îò /usr/src/linux, ãäå-òî âûïîëíåíèå patch -p1 (â ýãäå-òîé äèðåêãäå-òîðèè) ïðàâèëüíî âûñòàâèò çàïëàòêó. Äðóãèå îïöèè êîìàíäû patch õîðîøî îïèñàíû â åå ñïðàâî÷íîé ñòðàíèöå.

5.2

Åñëè ÷òî-òî íåïðàâèëüíî

(Çàìå÷àíèå: ýòîò ðàçäåë îòíîñèòñÿ ê áîëüøèíñòâó ñòàðûõ ÿäåð).

(11)

5. Èñïðàâëåíèå ÿäðà ñ ïîìîùüþ çàïëàòîê 11 Íàèáîëåå ÷àñòàÿ ïðîáëåìà âîçíèêàåò êîãäà çàïëàòêà ìîäèôèöèðóåò ôàéë, íàçûâàåìûé ‘config.in’ è îí íå âûãëÿäèò äîñòàòî÷íî ïðàâèëüíî, ïîòîìó-÷òî âû èçìåíèëè åãî îïöèè äëÿ âàøåé ìàøèíû. Ýòî áûëî èñïðàâëåíî, íî ýòà ïðîáëåìà ìîæåò âîçíèêíóòü ñî ñòàðûìè âûïóñêàìè ÿäðà. Äëÿ èñ-ïðàâëåíèÿ ýòîé ïðîáëåìû ïîñìîòðèòå â ôàéë config.in.rej, è ïîñìîòðèòå ÷òî îñòàëîñü ñäåëàòü îðèãèíàëüíîé çàïëàòêå. Èçìåíåíèÿ îáû÷íî îáîçíà÷àþòñÿ ñèìâîëàìè ‘+’ è ‘-’ â íà÷àëå ñòðîêè. Ïîñìîòðèòå ñòðîêè, êîòîðûå îêðóæàþò ýòè ñèìâîëû è çàïîìíèòå ãäå óñòàíîâëåíî ‘y’ èëè ‘n’. Òå-ïåðü îòðåäàêòèðóéòå ôàéë config.in, è èçìåíèòå ‘y’ íà ‘n’ è ‘n’ íà ‘y’ ãäå ýòî íóæíî. Âûïîëíèòå êîìàíäó patch -p0 < config.in.rej è åñëè îíà âûäàëà, ÷òî îïåðàöèÿ ïðîâåäåíà óäà÷íî (áåç îøèáîê), òî âû ìîæåòå ïðîäîëæàòü ðàáîòó âûïîëíÿÿ íàñòðîéêó ÿäðà è åãî êîìïèëÿöèþ. Ôàéë config.in.rej âñå ðàâíî îñòàíåòñÿ, íî âû ìîæåòå óäàëèòü åãî. åñëè ó âàñ âñå ðàâíî ñóùåñòâóþò ïðîáëåìû, òî ýòî çíà÷èò, ÷òî âû ìîãëè óñòàíîâèòü çàïëàòêó íå ñ òåì íîìåðîì. Åñëè ïðîãðàììà patch ñîîáùàåò ‘previously applied patch detected: Assume -R? (ÏÂÎÁÒÕÖÅÎÁ ÐÒÅÄÙÄÕÝÁÑ ÚÁÐÌÁÔËÁ: ÉÓÐÏÌØÚÏ×ÁÔØ ÏÐÃÉÀ -R?’, òî âû ñêîðåå âñåãî ïûòà-åòåñü ïðèëîæèòü çàïëàòêó ñ íîìåðîì ìåíüøèì, ÷åì íîìåð âåðñèè âàøåãî ÿäðà; åñëè âû îòâåòèòå ‘y’, òî ïðîãðàììà ïîïûòàåòñÿ âåðíóòü âàøè èñõîäíûå òåêñòû ê ïðåäûäóùåé âåðñèè, è ñêîðåå âñåãî ýòî âûçîâåò îøèáêó; ïîýòîìó âàì ïîíàäîáèòñÿ óñòàíîâèòü çàíîâî âñå äåðåâî èñõîäíûõ òåêñòîâ (÷òî ìîæåò áûòü íå òàêîé óæ ïëîõîé èäååé). Äëÿ òîãî ÷òîáû óáðàòü èçìåíåíèÿ âíåñåííûå çàïëàòêîé, èñïîëüçóéòå êîìàíäó ‘patch -R’ ñ îðèãè-íàëüíîé çàïëàòêîé. Ëó÷øå âñåãî â ñëó÷àå, êîãäà çàïëàòêè äåëàþò ÷òî-òî íåïðàâèëüíî, íà÷àòü ïðèìåíÿòü åå ñ íîâûì äåðåâîì èñõîäíûõ òåêñòîâ (íàïðèìåð èçâëå÷åííûì èç îäíîãî èç ôàéëîâ linux-x.y.z.tar.gz), è çàïóñòèò ïðîöåññ çàíîâî.

5.3

Èçáàâëÿåìñÿ îò ôàéëîâ .orig

Ïîñëå âñåãî íåñêîëüêèõ çàïëàòîê ó âàñ íàêîïèòñÿ êó÷à ôàéëîâ ñ ðàñøèðåíèåì .orig. Íàïðèìåð îäíî ÿäðî 1.1.51, êîòîðîå áûëî ïîñëåäíèé ðàç ïî÷èùåíî ïðè âåðñèè 1.1.48. Óäàëåíèå .orig ôàéëîâ ñîõðàíèëî ïðèìåðíî ïîëîâèíó ìåãàáàéòà äèñêîâîé ïàìÿòè.

find . -name ’*.orig’ -exec rm -f {} ’;’

ýòà êîìàíäà ïîçàáîòèòñÿ î âàñ. Âåðñèè ïðîãðàììû patch, êîòîðûå èñïîëüçóþò çíàê # äëÿ îòêëî-íåííûõ ôàéëîâ èñïîëüçóþò çíàê òèëüäû âìåñòî .orig.

Ñóùåñòâóåò ëó÷øèé ñïîñîá èçáàâèòñÿ îò .orig ôàéëîâ, êîòîðûé çàâèñèò îò GNU ïðîãðàììû xargs:

find . -name ’*.orig’ | xargs rm

èëè “äîâîëüíî áåçîïàñíûé, íî íåñêîëüêî áîëåå ìíîãîñëîâíûé” ìåòîä: find . -name ’*.orig’ -print0 | xargs null rm

--5.4

Äðóãèå çàïëàòêè

Òàêæå ñóùåñòâóþò äðóãèå çàïëàòêè (ÿ áóäó íàçâàòü èõ “íåñòàíäàðòíûìè”), êðîìå ïîñòàâëÿåìûõ Linus. Åñëè âû íàêëàäûâàåòå òàêèå çàïëàòêè, òî çàïëàòêè îò Linus ìîãóò ðàáîòàòü íåïðàâèëüíî è âû äîëæíû áóäåòå ëèáî óáðàòü èõ, èçìåíèòü èñõîäíûå òåêñòû èëè çàïëàòêó, ëèáî óñòàíîâèòü íîâîå äåðåâî èñõîäíûõ òåêñòîâ, èëè âûïîëíèòü êîìáèíàöèþ îïèñàííûõ äåéñòâèé. Ýòî ìîæåò áûòü î÷åíü ðàññòðàèâàþùèì, òàê ÷òî åñëè âû íå õîòèòå èçìåíÿòü èñõîäíûå òåêñòû (ñ âîçìîæíî ïëîõèì ðåçóëüòàòîì), òî óäàëèòå íåñòàíäàðòíûå çàïëàòêè äî ïðèëîæåíèÿ çàïëàòîê ïîëó÷åííûõ îò Linus,

(12)

6. Äîïîëíèòåëüíûå ïàêåòû 12 èëè ïðîñòî óñòàíîâèòå íîâîå äåðåâî èñõîäíûõ òåêñòîâ. Çàòåì âû ìîæåòå ïîñìîòðåòü ðàáîòàþò ëè íåñòàíäàðòíûå çàïëàòêè. Åñëè îíè íå ðàáîòàþò, òî âû ëèáî çàäåðæàëèñü ñ èñïîëüçîâàíèåì ñòàðîãî ÿäðà, ïîèãðàéòåñü ñ èñõîäíûìè òåêñòàìè èëè èçìåíèòå çàïëàòêó, ëèáî ïðîñòî äîæäèòåñü âûõîäà íîâîé âåðñèè íåñòàíäàðòíîé çàïëàòêè. Êàêèå ñóùåñòâóþò çàïëàòêè íå âõîäÿùèå â ñòàíäàðòíûé äèñòðèáóòèâ? Âû âåðîÿòíî ñëûøàëè î íèõ. ß èñïîëüçóþ òàêóþ çàïëàòêó äëÿ òîãî, ÷òîáû êóðñîð íà ìîåé êîíñîëè íå ìèãàë, ÿ íåíàâèæó ìèãàþùèå êóðñîðû (Ýòà çàïëàòêà ÷àñòî îáíîâëÿåòñÿ (èëè ïî êðàéíåé ìåðå îáíîâëÿëàñü) ïî ìåðå âûïóñêà íîâûõ âåðñèé ÿäðà. Äëÿ áîëüøèíñòâà íîâûõ óñòðîéñòâ äðàéâåðà ðàçðàáàòûâàþòñÿ êàê çàãðóæàåìûå ìîäóëè è ÷àñòîòà èñïîëüçîâàíèÿ íåñòàíäàðòíûõ çàïëàòîê çíà÷èòåëüíî óìåíüøàåòñÿ.

6

Äîïîëíèòåëüíûå ïàêåòû

Âàøå ÿäðî èìååò ìíîãî âîçìîæíîñòåé, êîòîðûå íå îáúÿñíÿþòñÿ â èñõîäíûõ òåêñòàõ ÿäðà; ýòè âîçìîæíîñòè îáû÷íî èñïîëüçóþòñÿ ÷åðåç èñïîëüçîâàíèå âíåøíèõ ïàêåòîâ. Íåêîòîðûå èç íàèáîëåå îáùèõ ïàêåòîâ ïåðå÷èñëåíû çäåñü.

6.1

kbd

Êîíñîëü linux âåðîÿòíî èìååò áîëüøå âîçìîæíîñòåé, ÷åì îíà çàñëóæèâàåò. Ñðåäè íèõ âîçìîæíîñòü ïåðåêëþ÷åíèÿ øðèôòîâ, èçìåíåíèÿ ðàñêëàäêè êëàâèàòóðû, ïåðåêëþ÷åíèå âèäåîðåæèìîâ (â áîëåå íîâûõ ÿäðàõ) è ò.ï. Ïàêåò kbd èìååò ïðîãðàììû, êîòîðûå ïîçâîëÿþò ñäåëàòü âñå ýòî, è â äîïîëíåíèå ìíîãî øðèôòîâ è ðàñêëàäîê êëàâèàòóðû äëÿ áîëüøèíñòâà êëàâèàòóð è îí äîñòóïåí ñ òåõ æå ñàìûõ ñåðâåðîâ, êîòîðûå ðàñïðîñòðàíÿþò èñõîäíûå òåêñòû ÿäðà.

6.2

util-linux

Rik Faith ([email protected]) ñîáðàë âìåñòå áîëüøîé íàáîð óòèëèò äëÿ linux, êîòîðûé ïî ñòðàí-íîìó ñîâïàäåíèþ íàçûâàåòñÿ util-linux. Â íàñòîÿùåå âðåìÿ ýòîò íàáîð ñîïðîâîæäàåòñÿ Nicolai Langfeldt ([email protected]). Îí äîñòóïåí ïî àíîíèìíîìó ftp ñ sunsite.unc.edu â äèðåêòî-ðèè /pub/Linux/system/misc, îí ñîäåðæèò òàêèå ïðîãðàììû êàê setterm, rdev, è ctrlaltdel, êîòîðûå èìåþò îòíîøåíèå ê ÿäðó. Êàê ñêàçàë Rik, íå óñòàíàâëèâàéòå èõ áåç ðàçäóìèé; âàì íå íóæíî óñòàíàâëèâàòü âåñü ïàêåò, è ó âàñ ìîãóò âîçíèêíóòü ñåðüåçíûå ïðîáëåìû, åñëè âû ñäåëàåòå ýòî.

6.3

hdparm

Êàê è ìíîãî äðóãèõ ïàêåòîâ, ðàíüøå ýòî áûë ïàêåò èç çàïëàòêè íà ÿäðî è ïðîãðàìì ïîääåðæêè. Ñåé÷àñ ýòè çàïëàòêè âêëþ÷åíû â îôèöèàëüíîå äåðåâî èñõîäíûõ òåêñòîâ ÿäðà è ïðîãðàììû äëÿ îïòèìèçàöèè è íàñòðîéêè âàøåãî æåñòêîãî äèñêà ïîñòàâëÿþòñÿ îòäåëüíî.

6.4

gpm

gpm ýòî îáîçíà÷åíèå äëÿ ìûøè îáùåãî íàçíà÷åíèÿ (general purpose mouse). Ýòà ïðîãðàììà ïîç-âîëÿåò âàì âûðåçàòü è âñòàâëÿòü òåêñò ìåæäó âèðòóàëüíûìè êîíñîëÿìè, à òàêæå äåëàòü äðóãèå äåéñòâèÿ ñ áîëüøèì êîëè÷åñòâîì ìûøåé ðàçíûõ òèïîâ.

7

Íåêîòîðûå ëîâóøêè

7.1

make clean

Åñëè íîâîå ÿäðî äåëàåò êàêèå-òî ñòðàííûå âåùè ïîñëå òåêóùåãî åãî îáíîâëåíèÿ, òî åñòü áîëüøàÿ âåðîÿòíîñòü, ÷òî âû çàáûëè âûïîëíèòü make clean äî êîìïèëÿöèè íîâîãî ÿäðà. Ñèìïòîìû ìîãóò

(13)

7. Íåêîòîðûå ëîâóøêè 13 áûòü ëþáûìè îò ïîëíîãî êðàõà âàøåé ñèñòåìû, ñòðàííûõ ïðîáëåì ñ ââîäîì/âûâîäîì äî ìàëîé ïðîèçâîäèòåëüíîñòè. Óáåäèòåñü òàêæå, ÷òî âû ñäåëàëè make dep.

7.2

Áîëüøèå èëè ìåäëåííûå ÿäðà

Åñëè âàøå ÿäðî ïîãëîùàåò äîñòàòî÷íîå êîëè÷åñòâî ïàìÿòè, ñëèøêîì áîëüøîå è/èëè ïðîñòî äîëãî êîìïèëèðóåò, äàæå êîãäà âû çàñòàâèëè âàø íîâûé 786DX6/440 ðàáîòàòü ñ íèì, òî âû âåðîÿòíî ïîëó÷èëè íàáîð íåíóæíûõ âàì âåùåé (äðàéâåðîâ óñòðîéñòâ, ôàéëîâûõ ñèñòåì è ò.ï.). Åñëè âû íå èñïîëüçóåòå èõ, òî íå íàñòðàèâàéòå èõ, ïîòîìó, ÷òî ýòî çàíèìàåò ïàìÿòü ìàøèíû. Íàèáîëåå î÷åâèäíûé ñèìïòîì ðàçäóòèÿ ÿäðà, ýòî èíòåíñèâíîå ñâàïèðîâàíèå ïàìÿòè íà äèñê è ñ äèñêà; åñëè âàø äèñê ñîçäàåò øóì è îí íå îäèí èç ñòàðûõ âèí÷åñòåðîâ Fujitsu Eagles, ÷åé çâóê íàïîìèíàë çâóê âûêëþ÷àåìîãî äâèãàòåëÿ ðåàêòèâíîãî ñàìîëåòà, òî ïîñìîòðèòå â êîíôèãóðàöèþ ÿäðà. Âû ìîæåòå óçíàòü ñêîëüêî îïåðàòèâíîé ïàìÿòè çàíèìàåò ÿäðî âçÿâ îáùåå êîëè÷åñòâî ïàìÿòè íà ìàøèíå è âû÷òÿ èç íåãî êîëè÷åñòâî “îáùåé ïàìÿòè” â ôàéëå /proc/meminfo èëè âûâîä êîìàí-äû ‘free’. Âû ìîæåòå òàêæå îïðåäåëèòü ýòî âûïîëíèâ êîìàíäó ‘dmesg’ (èëè ïîñìîòðåâ â ôàéë ïðîòîêîëà ÿäðà, åñëè îí åñòü â âàøåé ñèñòåìå). Òàì áóäåò ñòðîêà, êîòîðàÿ âûãëÿäèò ïðèìåðíî òàê: Memory: 15124k/16384k available (552k kernel code, 384k reserved, 324k data) Ìîÿ ìàøèíà ñ ïðîöåññîðîì 386 (êîòîðàÿ áûëà íàñòðîåíà ñ ìåíüøèì êîëè÷åñòâî îïöèé) âûäàåò ñëåäóþùåå:

Memory: 7000k/8192k available (496k kernel code, 384k reserved, 312k data)

Åñëè ó âàñ ïðîñòî ïîëó÷àåòñÿ áîëüøîå ÿäðî, íî ñèñòåìà íå ïîçâîëÿåò âàì ýòî, òî âû ìîæåòå ïîïû-òàòüñÿ âûïîëíèòü ‘make bzimage’. Âàì òàêæå ìîæåò ïîíàäîáèòüñÿ óñòàíîâèòü íîâóþ âåðñèþ LILO ÷òîáû ñäåëàòü ýòî.

7.3

ßäðî íå êîìïèëèðóåòñÿ

Åñëè ÿäðî íå êîìïèëèðóåòñÿ, òî ñêîðåå âñåãî ïðîèçîøåë ñáîé ïðè íàêëàäûâàíèè çàïëàòêè èëè âàøè èñõîäíûå òåêñòû áûëè ïîâðåæäåíû êàêèì-ëèáî îáðàçîì. Ó âàñ òàêæå ìîæåò áûòü íåïðàâèëü-íàÿ âåðñèÿ gcc èëè òàêæå ìîæåò áûòü ïîâðåæäåíà (íàïðèìåð âêëþ÷àåìûå ôàéëû ìîãóò áûòü ñ îøèáêàìè). Óáåäèòåñü, ÷òî ñèìâîëè÷åñêèå ññûëêè, êîòîðûå îïèñûâàåò Linus â ôàéëå README óñòà-íîâëåíû ïðàâèëüíî.  îáùåì, åñëè ñòàíäàðòíîå ÿäðî íå êîìïèëèðóåòñÿ, òî ó ÷àñ ÷òî-òî ñåðüåçíîå ñ ñèñòåìîé è âåðîÿòíî íåîáõîäèìà ïåðåóñòàíîâêà íåêîòîðûõ óòèëèò. èëè âîçìîæíî âû êîìïèëèðóåòå ÿäðî 1.2.x ïðè ïîìîùè ELF êîìïèëÿòîðà (gcc 2.6.3 è âûøå). Åñëè âû ïîëó÷èëè íàáîð îøèáîê òèïà so-and-so undefined â òå÷åíèè êîìïèëÿöèè, òî ñêîðåå âñåãî ó âàñ òàêàÿ ïðîáëåìà. Èñïðàâëåíèå â áîëüøèíñòâå ñëó÷àåâ î÷åíü ïðîñòî. Äîáàâüòå ýòè ñòðîêè â íà÷àëî ôàéëà arch/i386/Makefile: AS=/usr/i486-linuxaout/bin/as LD=/usr/i486-linuxaout/bin/ld -m i386linux

CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include

Çàòåì çàíîâî âûïîëíèòå make dep è zImage.

 ðåäêèõ ñëó÷àÿõ gcc ìîæåò íå ðàáîòàòü èç-çà àïïàðàòíûõ ïðîáëåì. Ñîîáùåíèå îá îøèáêå áóäåò ïðèìåðíî òàêîå “xxx exited with signal 15” è ýòî â îáùåì áóäåò âûãëÿäåòü î÷åíü çàãàäî÷íî. ß âåðî-ÿòíî íå äîëæåí áûë çäåñü ýòî óïîìèíàòü, çà èñêëþ÷åíèåì òîãî ÷òî ýòî ñî ìíîé îäíàæäû ñëó÷èëîñü – ó ìåíÿ áûëà èñïîð÷åííàÿ êýø-ïàìÿòü è êîìïèëÿòîð âðåìÿ îò âðåìåíè íå ðàáîòàë. Ïîïðîáóéòå ñíà÷àëà ïåðåñòàâèòü gcc, åñëè ó âàñ åñòü òàêàÿ ïðîáëåìà. ÂÛ äîëæíû ñòàòü ïîäîçðèòåëüíûì òîëü-êî åñëè âàøå ÿäðî íîðìàëüíî òîëü-êîìïèëèðóåòñÿ ñ îòêëþ÷åííûì âíåøíèì êýøåì, ñ óìåíüøåííûì êîëè÷åñòâî îïåðàòèâíîé ïàìÿòè è ò.ï. Ýòî èìååò ñêëîííîñòü áåñïîêîèòü ëþäåé, êîãäà îíè ïðåäïîëàãàþò, ÷òî èõ îáîðóäîâàíèå íå â ïîðÿäêå. Õîðîøî, ÿ íå áóäó äåëàòü ýòî. Îá ýòîì ñóùåñòâóåò FAQ – îí íàõîäèòñÿ íà http://www.bitwizard.nl/sig11/.

(14)

7. Íåêîòîðûå ëîâóøêè 14

7.4

Íå âèäíî ÷òîáû íîâàÿ âåðñèÿ ÿäðà ãðóçèëàñü

Âû íå çàïóñòèëè LILO, èëè îí íå íàñòðîåí ïðàâèëüíî. Îäíà âåùü êîòîðàÿ ñëó÷èëîñü îäíàæäû ñî ìíîé ýòî áûëà ïðîáëåìà â ôàéëå êîíôèãóðàöèè; òàì ãîâîðèëîñü ‘boot=/dev/hda1’ âìåñòî ‘boot=/dev/hda’ (Ýòî ìîæåò áûòü ðàçäðàæàþùèì â íà÷àëå, íî êîãäà âû ñäåëàåòå ðàáî÷èé ôàéë êîíôèãóðàöèè, òî âàì íå íóæíî áóäåò åãî áîëüøå èçìåíÿòü).

7.5

Âû çàáûëè çàïóñòèòü LILO, èëè ñèñòåìà ïðîñòî íå ãðóçèòñÿ

Îõõõ! Ëó÷øàÿ âåùü, êîòîðóþ âû ìîæåòå ñäåëàòü â ýòîì ñëó÷àå ýòî çàãðóçèòüñÿ ñ äèñêåòû ïîäãîòî-âèòü äðóãîé çàãðóçî÷íûé äèñê (òàêîé êàêîé äîëæíà ñäåëàòü êîìàíäà ‘make zdisk’). Âàì íåîáõîäèìî çíàòü ãäå íàõîäèòñÿ âàøà êîðíåâàÿ ôàéëîâàÿ ñèñòåìà (/) è êàêîé òèï îíà èìååò (íàïðèìåð second extended, minix).  íèæåïðèâåäåííîì ïðèìåðå, âàì òàêæå íåîáõîäèìî çíàòü íà êàêîé ôàéëîâîé ñèñòåìå íàõîäèòñÿ äåðåâî èñõîäíûõ òåêñòîâ /usr/src/linux, åå òèï è ãäå îíà îáû÷íî ìîíòèðó-åòñÿ.  ñëåäóþùåì ïðèìåðå, / íàõîäèòñÿ íà /dev/hda1, à ôàéëîâàÿ ñèñòåìà, êîòîðàÿ ñîäåð-æèò /usr/src/linux íàõîäèòñÿ íà /dev/hda3, îáû÷íî ñìîíòèðîâàííîé êàê /usr. Îáå îò-íîñÿòñÿ ê òèïó second extended ôàéëîâûõ ñèñòåì. Ðàáî÷åå ÿäðî íàõîäèòñÿ â äèðåêòîðèè /usr/src/linux/arch/i386/bootè íàçûâàåòñÿ zImage. Èäåÿ çàêëþ÷àåòñÿ â òîì, ÷òî åñëè åñòü ðàáîòàþùåå ÿäðî, òî ìîæíî èñïîëüçîâàòü åãî äëÿ ñîçäàíèÿ íîâîãî çàãðóçî÷íîãî ãèáêîãî äèñêà. Äðóãîé âàðèàíò, êîòîðûé ìîæåò ðàáîòàòü ëó÷øå (à ìîæåò è íå ðàáîòàòü, ýòî çàâèñèò îò êîíêðåòíîãî ìåòîäà êîòîðûì âû ñëîìàëè ñâîþ ñèñòåìó) îáñóæäàåòñÿ äàëüøå ïîñëå ïðèìåðà. Ñ íà÷àëà çàãðóçèìñÿ ñ êîìáèíàöèè çàãðóçî÷íîãî/êîðíåâîãî äèñêîâ èëè ñïàñàòåëüíîãî (rescue) äèñ-êà, è ñìîíòèðóåì ôàéëîâóþ ñèñòåìó, êîòîðàÿ ñîäåðæèò ðàáîòàþùåå ÿäðî: mkdir /mnt

mount -t ext2 /dev/hda3 /mnt

Åñëè mkdir ñîîáùàåò âàì, ÷òî äèðåêòîðèÿ óæå ñóùåñòâóåò, òî ïðîñòî ïðîèãíîðèðóéòå ýòî ñîîáùå-íèå. Çàòåì ïåðåéäèòå â òó äèðåêòîðèþ, ãäå íàõîäèòñÿ ðàáîòàþùåå ÿäðî. Çàìåòèì, ÷òî

/mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot

Ïîìåñòèòå îòôîðìàòèðîâàííóþ äèñêåòó â ïðèâîä “A:” (òîëüêî íå çàãðóçî÷íóþ äèñêåòó è íå äèñêåòó ñ êîðíåâîé ôàéëîâîé ñèñòåìîé!), è ïåðåáðîñüòå ÿäðî íà äèñêåòó è íàñòðîéòå åãî íà âàøó êîðíåâóþ ôàéëîâóþ ñèñòåìó:

cd /mnt/src/linux/arch/i386/boot dd if=zImage of=/dev/fd0

rdev /dev/fd0 /dev/hda1

ïåðåéäèòå â / è îòìîíòèðóéòå îáû÷íóþ ôàéëîâóþ ñèñòåìó /usr: cd / umount /mnt Òåïåðü âû äîëæíû èìåòü âîçìîæíîñòü ïåðåçàãðóçèòü âàø êîìïüþòåð êàê îáû÷íî ñ ñîçäàííîé äèñêåòû. Íå çàáóäüòå ïåðåçàïóñòèòü lilo (èëè âûïîëíèòü òî, ÷òî âû ñäåëàëè íå ïðàâèëüíî) ïîñëå ïåðåçàãðóçêè! Êàê áûëî óïîìÿíóòî âûøå, ñóùåñòâóåò äðóãàÿ îáùàÿ àëüòåðíàòèâà. Åñëè ó âàñ ê ñ÷àñòüþ èìååòñÿ ðàáî÷åå ÿäðî íàõîäÿùååñÿ íà ðàçäåëå / (íàïðèìåð /vmlinuz), òî âû ìîæåòå èñïîëüçîâàòü åãî äëÿ çàãðóçî÷íîé äèñêåòû. Ïðåäïîëàãàÿ âñå âûøåïðèâåäåííûå óñëîâèÿ, è ÷òî íàøå ÿäðî íàõîäèòñÿ â /vmlinuz, òî ïðîñòî ñäåëàéòå èçìåíåíèÿ â âûøåïðèâåäåííîì ïðèìåðå: èçìåíèòå /dev/hda3 íà

参照

関連したドキュメント

Application Directions: Heritage Fungicide applications should begin prior to disease development and continue throughout the season every 12-14 days following the resistance

Notice to User: BADGE SC may be used in greenhouses and shadehouses to control disease on crops which appear on this label and specific instructions have

Use the minimum Moccasin II PLUS + AAtrex rate postemergence with Touchdown or Roundup in glyphosate- tolerant corn as specified in the CORN - Moccasin II PLUS Combinations –

Princep 4L or Princep Caliber 90 plus Roundup brands: Use as tank mixture for preemergence and postemer- gence control of certain broadleaf and grass weeds where corn will be

Glory FDF may be tank mixed with Freedom 3 EC for preplant incorporated application to control certain weeds in soybeans. Refer to the GENERAL INFORMATION section of this label

Refer to crop specifi c application directions in this label for specifi c application information for each crop in each region including the maximum yearly application rate,

A preplant incorporated application of this product tank mixed with either Trifluralin HF, Intrro, Dual Magnum®, Stealth or Sonalan and followed by a preemergence surface

By buying or using this product, the buyer or user accepts the following Conditions of Sale and Limitation of Warranty and Liability, which no employee or agent of LOVELAND