Ôï HowTo ôïõ ðõñÞíá (kernel) ôïõ Linux Brian Ward, bri@cs.uchicago.edu v1.0, 5 Éïõíßïõ 1999 Áõôüò åßíáé Ýíáò ëåðôïìåñÞò ïäçãüò ãéÜ ôéò ñõèìßóåéò ôïõ ðõñÞíá, ãéÜ compilation, áíáâáèìßóåéò, êáé ëýóåéò ðñïâëçìÜôùí óå Ç/Õ ôýðïõ ix86. ______________________________________________________________________ Table of Contents 1. ÅéóáãùãÞ 1.1 Ðñþôá äéáâÜóôå åäþ! (Êáé ôï åííïþ) 1.2 Äõï ëüãéá ðåñß ôïõ óôýë 2. ÓçìáíôéêÝò åñùôÞóåéò, êáé ïé áðáíôÞóåéò ôïõò 2.1 Ôß, ôÝëïò ðÜíôùí, êÜíåé ï ðõñÞíáò; 2.2 Ãéáôß íá áíáâáèìßóù ôïí ðõñÞíá ìïõ; 2.3 Ôß åßäïõò hardware õðïóôçñßæïõí ïé íÝïé ðõñÞíåò; 2.4 ÐïéÝò åêäüóåéò ôùí gcc êáé libc ÷ñåéÜæïìáé; 2.5 Ôß åßíáé Ýíá module ðïõ ìðïñåß íá öïñôùèåß (loadable); 2.6 Ðüóï ÷þñï óôïí äßóêï ÷ñåéÜæïìáé; 2.7 Ðüóç þñá êÜíåé; 3. Ðþò íá ñõèìßóåôå ðñáãìáôéêÜ ôïí ðõñÞíá 3.1 Ðáßñíïõìå ôïí ðçãáßï (source) êþäéêá 3.2 Áíïßãïõìå ôïí source êþäéêá 3.3 Ñõèìßæïõìå ôïí ðõñÞíá 3.3.1 Áðïìßìçóç ôïõ ìáèçìáôéêïý óõíåðåîåñãáóôÞ (Ôýðïò êáé ÷áñáêôçñéóôéêÜ ôïõ ìPr) 3.3.2 Ðñï÷ùñçìÝíç õðïóôÞñéîç äßóêùí MFM/RLL, IDE, cdrom (Block Devices) 3.3.3 ÕðïóôÞñéîç äéêôýùóçò (ÃåíéêÝò ñõèìßóåéò) 3.3.4 System V IPC (ÃåíéêÝò ñõèìßóåéò) 3.3.5 ÏéêïãÝíåéá ôïõ processor (Ôýðïò êáé ÷áñáêôçñéóôéêÜ ôïõ processor) 3.3.6 ÕðïóôÞñéîç SCSI 3.3.7 ÕðïóôÞñéîç êáñôþí äéêôýïõ 3.3.8 ÓõóôÞìáôá áñ÷åßùí (Filesystems) 3.3.8.1 Ìá, äåí îÝñù ðïéÜ filesystems ÷ñåéÜæïìáé! 3.3.9 ÓõóêåõÝò ÷áñáêôÞñùí (Character devices) 3.3.10 Ç÷ïò 3.3.11 ¶ëëåò ðáñÜìåôñïé ñõèìßóåùí 3.3.12 ×Üêåìá ôïõ ðõñÞíá 3.4 Êáé ôþñá, ôß; (Ôï áñ÷åßï Makefile) 4. ÊÜíïíôáò compile óôïí ðõñÞíá 4.1 ÊáèÜñéóìá êáé åîáñôþìåíá áñ÷åßá 4.2 ÄéÜñêåéá ôïõ compile 4.3 ¶ëëá áñ÷åßá ôýðïõ "make" 4.4 ÅãêáôÜóôáóç ôïõ ðõñÞíá 5. Ìðáëþíïíôáò (patching) ôïí ðõñÞíá 5.1 Åöáñìüæïíôáò Ýíá ìðÜëùìá (patch) 5.2 Áí êÜôé äåí ðÜåé êáëÜ 5.3 ÓâÞíïíôáò ôá .orig áñ÷åßá 5.4 ¶ëëá patches 6. ÅðéðëÝïí ðáêÝôá 6.1 kbd 6.2 util-linux 6.3 hdparm 6.4 gpm 7. ÌåñéêÝò ðáãßäåò 7.1 make clean 7.2 ÔåñÜóôéïé Þ áñãïß ðõñÞíåò 7.3 Äåí äïõëåýåé ç ðáñÜëëçëç èýñá, Þ ï åêôõðùôÞò ìïõ 7.4 Äåí ãßíåôáé compile óôïí ðõñÞíá 7.5 Ç íÝá Ýêäïóç ôïõ ðõñÞíá äåí bootÜñåé 7.6 Îå÷Üóáôå íá ôñÝîåôå ôï LILO, Þ ï Ç/Õ äåí bootÜñåé êáèüëïõ 7.7 ËÝåé "warning: bdflush not running" 7.8 Äåí ìðïñþ íá âÜëù ôï IDE/ATAPI CD-ROM íá äïõëÝøåé 7.9 ËÝåé ðáñÜîåíá ðñÜãìáôá ãéÜ êáôáñãçìÝíåò áéôÞóåéò routing 7.10 Ôï firewalling äåí äïõëåýåé óôçí Ýêäïóç 1.2.0 7.11 "Not a compressed kernel Image file" 7.12 ÐñïâëÞìáôá ìå ôï ôåñìáôéêü êïíóüëáò (console terminal) ìåôÜ ôçí áíáâÜèìéóç óå 1.3.x 7.13 Äåí ìðïñþ íá êÜíù compile, áöïý áíáâÜèìéóá ôïí ðõñÞíá 7.14 ÁõîÜíïíôáò ôá üñéá 8. Óçìåßùóç ãéÜ áíáâáèìßóåéò ðñïò Ýêäïóç 2.0.x, 2.2.x 9. Modules 9.1 Åãêáèéóôþíôáò ôéò utilities ãéÜ ôá modules 9.2 Modules ðïõ äéáíÝìïíôáé ìáæß ìå ôïí ðõñÞíá 10. ÓõìâïõëÝò êáé êüëðá 10.1 Åðáíáêáôåýèõíóç ôçò åîüäïõ ôùí åíôïëþí make êáé patch 10.2 ÅãêáôÜóôáóç ôïõ ðõñÞíá õðü ðñïûðïèÝóåéò 10.3 Áíáíåþóåéò ôïõ ðõñÞíá 11. ¶ëëá ó÷åôéêÜ HOWTOs ðïõ ìðïñåß íá öáíïýí ÷ñÞóéìá 12. ÄéÜöïñá 12.1 ÓõããñáöÝáò 12.2 Ðñïò åíÝñãåéá 12.3 ÓõíåéóöïñÝò 12.4 Copyright, Üäåéá ÷ñÞóçò, êáé ôá ðáñüìïéá ______________________________________________________________________ [1m1. ÅéóáãùãÞ[0m Åßóáóôå õðï÷ñåùìÝíïé íá äéáâÜóåôå áõôü ôï êåßìåíï; Ëïéðüí, áò äïýìå áí ðáñïõóéÜæåôå êÜðïéï áðü ô' áêüëïõèá óõìðôþìáôá : · "Ù÷! Áõôü ôï ôñåëëïêáôéôßò-46.5.6 ðáêÝôï ëÝåé ðùò ÷ñåéÜæåôáé ðõñÞíá Ýêäïóçò 2.8.193, êé åãþ áêüìç Ý÷ù ôçí Ýêäïóç 1.0.9!" · ÕðÜñ÷åé Ýíáò driver ó' Ýíáí áðü ôïõò íÝïõò ðõñÞíåò, ðïõ ðñÝðåé íá Ý÷åôå ïðùóäÞðïôå. · Äåí Ý÷åôå êáèüëïõ éäÝá ãéÜ ôï ðþò íá êÜíåôå compile ó' Ýíáí ðõñÞíá. · "Åßíáé [4mðñáãìáôéêÜ[24m ôï README ç ìïíáäéêÞ äéáèÝóéìç ðçãÞ ðëçñïöüñçóçò;" · Ôï äïêéìÜóáôå, áëëÜ äåí äïýëåøå. · ÐñÝðåé íá Ý÷åôå êÜðïéåò Ýôïéìåò ïäçãßåò, íá ôéò äßíåôå ó' üóïõò åðéìÝíïõí íá óáò æçôÜíå íá ôïõò åãêáôáóôÞóåôå ôïí ðõñÞíá. [1m1.1. Ðñþôá äéáâÜóôå åäþ! (Êáé ôï åííïþ)[0m ÌåñéêÜ áðü ôá ðáñáäåßãìáôá áõôïý åäþ ôïõ êåéìÝíïõ ðñïûðïèÝôïõí üôé äéáèÝôåôå ôá êáôÜ GNU tar, find, êáé xargs. ÁõôÜ ôá áñ÷åßá åßíáé óôÜíôáñ, Üñá ëïãéêÜ äåí èá óáò ðñïîåíÞóïõí ðñïâëÞìáôá. Åðßóçò, ðñïûðïôßèåôáé üôé ãíùñßæåôå ôç äïìÞ ôïõ óõóôÞìáôïò áñ÷åßùí (filesystem) ôïõ Ç/Õ óáò. Áí ü÷é, ðñÝðåé íá êñáôÞóåôå Ýíá ãñáðôü áíôßãñáöï ôçò (êáôÜ ôç äéÜñêåéá ôçò êáíïíéêÞò ëåéôïõñãßáò ôïõ Ç/Õ) åîüäïõ ôçò åíôïëÞò mount, Þ ôùí ãñáììþí ôïõ áñ÷åßïõ /etc/fstab (áí ìðïñåßôå íá ôï äéáâÜóåôå). ÁõôÝò ïé ðëçñïöïñßåò åßíáé óçìáíôéêÝò, êáé äåí áëëÜæïõí, áí äåí îáíáêÜíåôå partition óôïí óêëçñü óáò äßóêï, áí äåí ðñïóèÝóåôå Ýíáí êáéíïýñãéï äßóêï, áí äåí êÜíåôå åðáíåãêáôÜóôáóç ôïõ Linux, Þ êÜðïéá ðáñüìïéá åíÝñãåéá. Ç ðéï ðñüóöáôç Ýêäïóç ôïõ ðõñÞíá "ðáñáãùãÞò" êáôÜ ôïí ÷ñüíï ãñáöÞò áõôïý ôïõ êåéìÝíïõ åßíáé ç 2.2.9 , ðïõ óçìáßíåé üôé ïé áíáöïñÝò êáé ôá ðáñáäåßãìáôá áíôéóôïé÷ïýí ó' áõôÞí ôçí Ýêäïóç. ¼óï êé áí ðñïóðÜèçóá íá ãñÜøù Ýíá êåßìåíï áíåîÜñôçôï áðü óõãêåêñéìÝíåò åêäüóåéò ôïõ ðõñÞíá, áõôüò âñßóêåôáé õðü äéáñêÞ åîÝëéîç. ÅðïìÝíùò, áí ðÜñåôå íåþôåñç Ýêäïóç, áíáðüöåõêôá èá Ý÷åé êÜðïéåò äéáöïñÝò. ÎáíáëÝù üôé áõôü ëïãéêÜ äåí èá äçìéïõñãÞóåé ìåãÜëá ðñïâëÞìáôá, áëëÜ ßóùò ðñïîåíÞóåé óýã÷õóç. ÕðÜñ÷ïõí äýï åêäüóåéò ôïõ source êþäéêá ôïõ ðõñÞíá ôïõ Linux, ç Ýêäïóç "ðáñáãùãÞò" êáé ç Ýêäïóç "áíÜðôõîçò". Ïé åêäüóåéò ðáñáãùãÞò åßíáé üóåò Ý÷ïõíå æõãïýò êáé ìéêñïýò áñéèìïýò. Ð÷ ðáñáãùãÞò Þôáíå ç 1.2.x , ç 2.0.x , êáèþò êáé ç 2.2.x . Áõôïß ïé ðõñÞíåò èåùñïýíôáé (êáôÜ ôïí ÷ñüíï ôçò êõêëïöïñßáò ôïõò óôçí áãïñÜ) ïé ðëÝïí óôáèåñïß êáé ÷ùñßò bugs. Ïé ðõñÞíåò áíÜðôõîçò (2.1.x , 2.3.x , êëð) ðñïïñßæïíôáé ãéÜ ðõñÞíåò äïêéìþí, ãéÜ üóïõò ÷ñÞóôåò åíäéáöÝñïíôáé íá ôåóôÜñïõí ôïõò íÝïõò (êáé ðéèáíüôáôá ãåìÜôïõò áðü bugs) ðõñÞíåò. Óáò ðñïåéäïðïßçóá! [1m1.2. Äõï ëüãéá ðåñß ôïõ óôýë[0m Êåßìåíï óáí áõôü åßíáé êÜôé ðïõ, åßôå åìöáíßæåôáé óôçí ïèüíç óáò, åßôå åßíáé üíïìá áñ÷åßïõ, åßôå êÜôé ðïõ ìðïñåßôå íá ðëçêôñïëïãÞóåôå (ð÷ ìéÜ åíôïëÞ), åßôå ðáñÜìåôñïé ìéáò åíôïëÞò (áí êïéôÜîåôå Ýíá áñ÷åßïõ êáèáñïý text, äåí äéáöÝñåé). Ïé åíôïëÝò (êáé ãåíéêÜ ç åßóïäïò) óõ÷íÜ ìðáßíïõí áíÜìåóá óå ìïíÜ åéóáãùãéêÜ ("), ðñÜãìá ðïõ ìáò ðÜåé óôï åîÞò êëáóéêü ðñüâëçìá óôßîçò : ÅÜí ìéÜ åíôïëÞ âñßóêåôáé óôï ôÝëïò Ìéáò ðñüôáóçò óå ìïíÜ åéóáãùãéêÜ, óõíÞèùò üëïé ãñÜöïõíå êáé ìéÜ ôåëåßá ìåôÜ ôçí åíôïëÞ, åðåéäÞ ïé áìåñéêáíéêïß êáíüíåò óôßîçò ëÝíå íá âÜæïõìå ôçí ôåëåßá ìÝóá óôá åéóáãùãéêÜ. Áí êáé ç êïéíÞ ëïãéêÞ (êáé äõóôõ÷þò, áõôü ðñïûðïèÝôåé üôé ïé Ý÷ïíôåò "êïéíÞ ëïãéêÞ" åßíáé óõíçèéóìÝíïé óôï ëåãüìåíï áìåñéêÜíéêï óôýë åéóáãùãéêþí) ëÝåé í' áöáéñïýìå ðñþôá ôçí óôßîç, ôá ðåñéóóüôåñá Üôïìá áðëÜ äåí ôï èõìïýíôáé, åðïìÝíùò óå ôÝôïéåò ðåñéðôþóåéò èá ôïðïèåôþ ôç óôßîç Ýîù áð' ôá åéóáãùãéêÜ. Ì' Üëëá ëüãéá, üôáí äåß÷íù üôé ðñÝðåé íá ðëçêôñïëïãåßôå ð÷ "make config", èá ãñÜöù "make config", ü÷é "make config." . (Ó.ô.ì. : Óôá ÅëëçíéêÜ, ç óôßîç äåí áêïëïõèåß áõôïýò ôïõò êáíüíåò, Üñá äåí èá ÷ñåéáóôåß íá èõìüìáóôå ôéò óõãêåêñéìÝíåò äéåõêñéíÞóåéò.) [1m2. ÓçìáíôéêÝò åñùôÞóåéò, êáé ïé áðáíôÞóåéò ôïõò[0m [1m2.1. Ôß, ôÝëïò ðÜíôùí, êÜíåé ï ðõñÞíáò;[0m Ï ðõñÞíáò ôùí *nix's äñá ùò ìåóïëáâçôÞò ìåôáîý ôùí ðñïãñáììÜôùí óáò êáé ôïõ hardware. Ðñþôá, ÷åéñßæåôáé ôç ìíÞìç (Þ äßíåé ïäçãßåò ãéÜ ôïí ÷åéñéóìü ôçò) ãéÜ üëá ôá ðñïãñÜììáôá ðïõ ôñÝ÷ïõí (processes), êáé óéãïõñåýåé ôï üôé üëá èá ðÜñïõí äßêáéï (Þ Üäéêï, áí ðñïôéìÜôå) ìåñßäéï áðü ôïí ÷ñüíï ôïõ ìéêñïðñïóÝóóïñá. ÅðéðëÝïí, ðáñÝ÷åé ìéÜ üìïñöç êáé óå ìåãÜëï âáèìü ìåôáöÝñóéìç äéáóýíäåóç, þóôå ôá ðñïãñÜììáôá íá ìéëÞóïõí óôï hardware. ÖõóéêÜ, ç ëåéôïõñãßá ôïõ ðõñÞíá áó÷ïëåßôáé ìå ðåñéóóüôåñá ðñÜãìáôá áðü ôá ðáñáðÜíù, áëëÜ áõôÝò ïé âáóéêÝò ëåéôïõñãßåò åßíáé ïé ðéï óçìáíôéêÝò ðïõ ðñÝðåé íá ãíùñßæåôå. [1m2.2. Ãéáôß íá áíáâáèìßóù ôïí ðõñÞíá ìïõ;[0m Ïé íåþôåñïé ðõñÞíåò ãåíéêÜ ìáò ðáñÝ÷ïõí ôçí éêáíüôçôá íá ìéëÜìå óå ðåñéóóüôåñïõò ôýðïõò hardware (äçëáäÞ, Ý÷ïõí ðåñéóóüôåñïõò drivers óõóêåõþí), äéåõèýíïõí êáëýôåñá ôéò äéÜöïñåò åñãáóßåò, ôñÝ÷ïõí ãñçãïñüôåñá áð' ôïõò ðáëéüôåñïõò, óõíÞèùò åßíáé óôáèåñüôåñïé áð' ôïõò ðáëéüôåñïõò, êé Ý÷ïõí äéïñèùìÝíá ôá ÷áæÜ ëÜèç ôùí ðáëáéïôÝñùí åêäüóåùí. Ïé ðåñéóóüôåñïé ÷ñÞóôåò áíáíåþíïõí ôïõò ðõñÞíåò, åðåéäÞ èÝëïõí íá Ý÷ïõí ôïõò íÝïõò drivers óõóêåõþí êáé ôçí åîÜëåéøç ôùí bugs. [1m2.3. Ôß åßäïõò hardware õðïóôçñßæïõí ïé íÝïé ðõñÞíåò;[0m ÄéáâÜóôå ôï Hardware-HOWTO. ÅíáëëáêôéêÜ, ìðïñåßôå íá øÜîåôå ôï áñ÷åßï config.in óôïí source êþäéêá ôïõ Linux, Þ áðëÜ íá áíáêáëýøåôå ôß ãßíåôáé, üôáí äßíåôå make config. Áõôü óáò äåß÷íåé üëá ôá åßäç hardware ðïõ õðïóôçñßæåé ï óôÜíôáñ ðõñÞíáò ôçò äéáíïìÞò óáò, áëëÜ ü÷é êé üëá üóá õðïóôçñßæåé ôï Linux. Áñêåôïß óõíçèéóìÝíïé drivers óõóêåõþí (üðùò ð÷ ãéÜ ôéò êÜñôåò PCMCIA êáé ìåñéêÝò ìïíÜäåò ìáãíçôéêÞò ôáéíßáò) åßíáé modules ðïõ öïñôþíïíôáé (loadable), êáé ïé ðñïãñáììáôéóôÝò ôïõò ôïõò ãñÜöïõí êáé ôïõò äéáíÝìïõí ÷ùñéóôÜ. [1m2.4. ÐïéÝò åêäüóåéò ôùí gcc êáé libc ÷ñåéÜæïìáé;[0m Óôï áñ÷åßï README, ðïõ ðåñéÝ÷åôáé ìÝóá óôïí source êþäéêá ôïõ Linux, o Linus óõíéóôÜ ôçí êáôÜëëçëç Ýêäïóç ôïõ gcc. ÅÜí, ðÜëé, äåí Ý÷åôå ôçí êáôÜëëçëç Ýêäïóç ôçò libc, ç ôåêìçñßùóç ôçò óõíéóôþìåíçò Ýêäïóçò ôçò gcc èá óáò ðåé áí ðñÝðåé í' áíáâáèìßóåôå ôç libc óáò. ÁõôÞ äåí åßíáé äýóêïëç äéáäéêáóßá, áëëÜ åßíáé óçìáíôéêü í' áêïëïõèÞóåôå áêñéâþò ôéò ïäçãßåò. [1m2.5. Ôß åßíáé Ýíá module ðïõ ìðïñåß íá öïñôùèåß (loadable);[0m Ôá modules áõôÜ åßíáé êïììÜôéá êþäéêá ôïõ ðõñÞíá, ðïõ äåí åíóùìáôþíïíôáé (linked) êáôåõèåßáí óôïí ðõñÞíá. Ôá êÜíïõìå compile ÷ùñéóôÜ, êáé ìðïñïýìå íá ôá âÜëïõìå óôïí êáé íá ôá âãÜëïõìå áðü ôïí ðõñÞíá (åíüóù ôñÝ÷åé), ó÷åäüí ïðïéáäÞðïôå óôéãìÞ. ÅðåéäÞ Ý÷åé åõåëéîßá, áõôüò åßíáé óÞìåñá ï ðñïôéìþìåíïò ôñüðïò ãéÜ íá ãñÜøïõìå óå êþäéêá êÜðïéåò äõíáôüôçôåò ôïõ ðõñÞíá. Ðïëëïß äçìïöéëåßò drivers óõóêåõþí, üðùò ð÷ ïé drivers ôùí êáñôþí PCMCIA êáé ôçò ìïíÜäáò ìáãíçôéêÞò ôáéíßáò QIC-80/40, åßíáé modules ðïõ öïñôþíïíôáé. [1m2.6. Ðüóï ÷þñï óôïí äßóêï ÷ñåéÜæïìáé;[0m ÅîáñôÜôáé áðü ôç óõãêåêñéìÝíç óýíèåóç ôïõ Ç/Õ óáò. Ðñþôá, ï óõìðéåóìÝíïò source êþäéêáò ôïõ Linux åßíáé ó÷åäüí 14 MÂytes óôçí Ýêäïóç 2.2.9 . ÁðïóõìðéåóìÝíïò êáé öôéáãìÝíïò ãéÜ ìéÜ óõíçèéóìÝíç óýíèåóç, êáôáëáìâÜíåé Üëëá 67 MB. [1m2.7. Ðüóç þñá êÜíåé;[0m Ìå íåþôåñïõò Ç/Õ, ç compilation ÷ñåéÜæåôáé åíôõðùóéáêÜ ëéãüôåñï ÷ñüíï, áð' ü,ôé ìå ðáëéüôåñïõò. Åíáò AMD K6-2/300 ìå ãñÞãïñï äßóêï ìðïñåß íá öôéÜîåé ðõñÞíá 2.2.x óå ðåñßðïõ ôÝóóåñá ëåðôÜ. ÅÜí ó÷åäéÜæåôå íá êÜíåôå compilation óå ðáëéüôåñïõò Pentiums, 486s, Þ 386s, íá ðñïåôïéìáóôåßôå ãéÜ ìåãÜëç áíáìïíÞ, ðéèáíüí ùñþí Þ çìåñþí... Áí áõôü óáò ðñïâëçìáôßæåé, êáé óõìâáßíåé íá äéáèÝôåôå ãéÜ compile Ýíáí ãñçãïñüôåñï Ç/Õ êÜðïõ åêåß êïíôÜ, ìðïñåßôå íá öôéÜîåôå ôïí ðõñÞíá óôï ãñÞãïñï ìç÷Üíçìá (õðïèÝôïíôáò üôé ôïõ äßíåôå ôéò óùóôÝò ðáñáìÝôñïõò, üôé ïé utilities ðïõ ÷ñçóéìïðïéåßôå åßíáé ðñüóöáôåò, êëð), êáé ìåôÜ íá ìåôáöÝñåôå ôï image ôïõ ðõñÞíá óôï áñãüôåñï ìç÷Üíçìá. [1m3. Ðþò íá ñõèìßóåôå ðñáãìáôéêÜ ôïí ðõñÞíá[0m [1m3.1. Ðáßñíïõìå ôïí ðçãáßï (source) êþäéêá[0m Ìðïñïýìå íá âñïýìå ôïí source êþäéêá ìå anonymous ftp óôï ftp.kernel.org, óôï dir /pub/linux/kernel/vx.y, üðïõ x.y åßíáé ï áñéèìüò Ýêäïóçò (ð÷ 2.2), êáé - üðùò ðñïåßðáìå - ïé ìïíïß áñéèìïß óôï ôÝëïò äåß÷íïõí åêäüóåéò áíÜðôõîçò, ðïõ ìðïñåß íá åßíáé áóôáèåßò. Ôï áñ÷åßï ôõðéêÜ ïíïìÜæåôáé linux-x.y.z.tar.gz, üðïõ x.y.z åßíáé ï áñéèìüò Ýêäïóçò. Ôá äéÜöïñá ðáñüìïéá sites óõ÷íÜ Ý÷ïõíå êé Ýíá áñ÷åßï ìå êáôÜëçîç .bz2, äçë. ðïõ óõìðéÝóôçêå ìå ôï ðñüãñáììá bzip2. (ÁõôÜ ôá áñ÷åßá åßíáé ìéêñüôåñá, êáé ÷ñåéÜæïíôáé ëéãüôåñï ÷ñüíï íá êáôåâïýí.) Êáëýôåñá åßíáé íá ÷ñçóéìïðïéïýìå ôï ftp.xx.kernel.org, üðïõ xx åßíáé ï êþäéêáò ôçò ÷þñáò óáò. ÃéÜ ðáñÜäåéãìá, ôï ftp.at.kernel.org åßíáé ãéÜ ôçí Áõóôñßá, êáé ôï ftp.us.kernel.org ãéÜ ôéò ÇÐÁ. [1m3.2. Áíïßãïõìå ôïí source êþäéêá[0m ÊÜíïõìå login ùò (Þ su ðñïò) root, êáé êÜíïõìå cd óôï directory /usr/src. ÅÜí åãêáôáóôÞóáôå ôïí source êþäéêá ôïõ ðõñÞíá (üðùò êÜíïõí ïé ðåñéóóüôåñïé ÷ñÞóôåò), èá õðÜñ÷åé Þäç Ýíá dir ðïõ ëÝãåôáé linux, ðïõ ðåñéÝ÷åé üëï ôï äÝíôñï ôïõ ðáëéïý source. Áí äéáèÝôåôå áñêåôü ÷þñï óôïí äßóêï êáé èÝëåôå íá åíåñãÞóåôå åê ôïõ áóöáëïýò, êñáôÞóôå áõôü ôï directory. ÌéÜ êáëÞ éäÝá åßíáé íá âñåßôå ðïéÜ Ýêäïóç ÷ñçóéìïðïéåß ï Ç/Õ óáò ôþñá, êáé áíÜëïãá í' áëëÜîåôå ôï üíïìá ôïõ dir. Ç åíôïëÞ uname -r äåß÷íåé ôçí ðáñïýóá Ýêäïóç ôïõ ðõñÞíá. ÅðïìÝíùò, áí ç uname -r ëÝåé 1.0.9, èá áëëÜîåôå ôï üíïìá (ìå ôçí åíôïëÞ mv) linux óå linux-1.0.9. Áí áéóèÜíåóôå ìåôñßùò áíõðüìïíïé, áðëÜ óâÞóôå üëï ôï óõãêåêñéìÝíï directory. Óå êÜèå ðåñßðôùóç, ðÜíôùò, êáé ðñéí áðïóõìðéÝóåôå ôïí ðëÞñç source êþäéêá, âåâáéùèåßôå ðùò äåí õðÜñ÷åé directory linux óôï /usr/src. Ôþñá, ìÝóá óôï /usr/src, áðïóõìðéÝóôå ôïí êþäéêá ìå ôçí åíôïëÞ tar zxpvf linux-x.y.z.tar.gz. (Áí Ý÷åôå áñ÷åßï áðëÜ .tar, ÷ùñßò .gz óôï ôÝëïò, äþóôå tar xpvf linux-x.y.z.tar.) Èá äåßôå íá ðåñíÜíå ìðñïóôÜ óáò ãñÞãïñá ôá ðåñéå÷üìåíá ôïõ source êþäéêá. ¼ôáí ôåëåéþóåôå, èá õðÜñ÷åé Ýíá íÝï linux directory ìÝóá óôï /usr/src. Ãõñßóôå ìå cd óôï linux, êáé øÜîôå ðñïóåêôéêÜ ôï áñ÷åßï README. Èá âñåßôå ìéÜ åíüôçôá ìå ôçí ôáìðÝëá INSTALLING the kernel ( = åãêáèéóôþíôáò ôïí ðõñÞíá). Åöáñìüóôå ôéò ó÷åôéêÝò ïäçãßåò üôáí ðñÝðåé - óõìâïëéêïß äåóìïß (symbolic links) ðïõ ðñÝðåé íá ðáñáìåßíïõí óôç èÝóç ôïõò, áöáßñåóç ðáëéþí áñ÷åßùí .o, êëð. Áí Ý÷åôå áñ÷åßï .bz2 êáé ôï ðñüãñáììá bzip2 (äéáâÜóôå ó÷åôéêÜ ì' áõôü óôï http://www.muraroa.demon.co.uk/), äþóôå : bz2cat linux-x.y.z.tar.bz2 | tar xvf - [1m3.3. Ñõèìßæïõìå ôïí ðõñÞíá[0m Óçìåßùóç : ÌåñéêÜ áðü ôá ðáñáêÜôù áðïôåëïýí åðáíÜëçøç / äéåõêñßíçóç ìéáò ðáñüìïéáò åíüôçôáò óôï áñ÷åßï README ôïõ Linus. Ç åíôïëÞ make config, üóï âñéóêüìáóôå óôï /usr/src/linux, îåêéíÜåé Ýíá script ñõèìßóåùí, ðïõ óáò êÜíåé ðïëëÝò åñùôÞóåéò. Ôï script áõôü áðáéôåß ôï bash, åðïìÝíùò åðáëçèåýóôå üôé ôï bash âñßóêåôáé óôï /bin/bash, óôï /bin/sh, Þ óôï $BASH. Ùóôüóï, õðÜñ÷ïõí ìåñéêÝò ðéï åõ÷Üñéóôåò åíáëëáêôéêÝò ëýóåéò óôï make config, êáé ðéèáíüí íá ôéò âñåßôå åõêïëüôåñåò êáé ðéï Üíåôåò óôç ÷ñÞóç ôïõò. Ôï make menuconfig åßíáé ðéèáíüôáôá ôï åõñýôåñá ÷ñçóéìïðïéïýìåíï. Ï,ôé êáé íá äéáëÝîåôå, ðÜíôùò, åßíáé êáëýôåñï íá åîïéêåéùèåßôå ìå ôï óõãêåêñéìÝíï, åðåéäÞ èá åðéóôñÝøåôå ó' áõôü óõíôïìüôåñá áð' üóï öáíôáæüóáóôå. ¼óïé ôñÝ÷åôå ôá X-Windows, ìðïñåßôå íá äïêéìÜóåôå ôï make xconfig, å, íá Ý÷åôå åãêáôáóôÞóåé ôï Tk ("click- o-rama" - Nat). Ôï make menuconfig åßíáé ãéÜ üóïõò äéáèÝôïõí ôï (n)curses êáé èá ðñïôéìïýóáíå Ýíá text ìåíïý. ÁõôÜ ôá ðåñéâÜëëïíôá äéáèÝôïõí Ýíá êáèáñü ðëåïíÝêôçìá : Áí êÜíåéò ëÜèïò åðéëïãÞ êáôÜ ôç äéÜñêåéá ôùí ñõèìßóåùí, åßíáé áðëÞ äïõëåéÜ ôï íá åðéóôñÝøåéò êáé íá ôç äéïñèþóåéò. Ìå ôá make menuconfig êáé make xconfig, ïé åðéëïãÝò ñõèìßóåùí åìöáíßæïíôáé éåñáñ÷éêÜ. Ôþñá, åßóáóôå Ýôïéìïé í' áðáíôÞóåôå óôéò åñùôÞóåéò, óõíÞèùò ìå y (yes, íáé), Þ n (no, ü÷é). Ïé drivers ôùí óõóêåõþí óõíÞèùò Ý÷ïõíå ìéÜ ðáñÜìåôñï m. ÁõôÞ óçìáßíåé "module", äçëáäÞ ï Ç/Õ èá ôçí êÜíåé compile, ü÷é üìùò êáôåõèåßáí ìÝóá óôïí ðõñÞíá, áëëÜ óáí module ðïõ öïñôþíåôáé. Åíáò êùìéêüôåñïò ôñüðïò íá ðåéò ôß óçìáßíåé ôï m, åßíáé "maybe". ( = ºóùò.) Ïé ðáñÜìåôñïé ìå ðñïöáíÝóôåñç ÷ñÞóç êáé ðïõ äåí åßíáé ôüóï âáóéêÝò, äåí èá óõæçôçèïýí åäþ. ÃéÜ óýíôïìç ðåñéãñáöÞ ìåñéêþí áêüìç, äéáâÜóôå ôçí åíüôçôá "¶ëëåò åðéëïãÝò ñõèìßóåùí". Óôï make menuconfig, ôï ðëÞêôñï ôïõ êåíïý äéáóôÞìáôïò åíáëëÜóóåé ôçí åðéëïãÞ. Óôïõò ðõñÞíåò 2.0.x (êáé óå ìåôáãåíÝóôåñïõò) õðÜñ÷åé êáé åðéëïãÞ "?", ç ïðïßá äßíåé óýíôïìç ðåñéãñáöÞ ôùí ðáñáìÝôñùí ñýèìéóçò. ÁõôÝò ïé ðëçñïöïñßåò ðéèáíüôáôá åßíáé êáé ïé ðëÝïí ðñüóöáôá åíçìåñùìÝíåò. Ïñßóôå êáé ìéÜ ëßóôá ìåñéêþí óçìáíôéêþí ÷áñáêôçñéóôéêþí, óå ðïéü éåñáñ÷éêü ìåíïý âñßóêïíôáé, êáèþò êáé ìéÜ óýíôïìç ðåñéãñáöÞ ôïõò. [1m3.3.1. Áðïìßìçóç ôïõ ìáèçìáôéêïý óõíåðåîåñãáóôÞ (Ôýðïò êáé[0m [1m÷áñáêôçñéóôéêÜ ôïõ ìPr)[0m Áí äåí Ý÷åôå ìáèçìáôéêü óõíåðåîåñãáóôÞ (äçë. Ý÷åôå óêÝôï 386 Þ 486SX Ç/Õ), ðñÝðåé í' áðáíôÞóåôå y óôç ó÷åôéêÞ åñþôçóç. Áí Ý÷åôå óõíåðåîåñãáóôÞ, êáé ðáñ' üë' áõôÜ áðáíôÞóåôå y, ìçí áíçóõ÷åßôå éäéáßôåñá - ï óõíåðåîåñãáóôÞò èá ÷ñçóéìïðïéçèåß, êáé ôï ðñüãñáììá áðïìßìçóÞò ôïõ è' áãíïçèåß. ÃéÜ ïðïéïäÞðïôå ó÷åäüí ìïíôÝñíï ìç÷Üíçìá ç áðÜíôçóç ðñÝðåé íá åßíáé no, áëëÜ ìçí áíçóõ÷åßôå áí áðáíôÞóåôå yes êáôÜ ëÜèïò. Áí äåí ÷ñåéáóôåß, äåí èá ÷ñçóéìïðïéçèåß. [1m3.3.2. Ðñï÷ùñçìÝíç õðïóôÞñéîç äßóêùí MFM/RLL, IDE, cdrom (Block[0m [1mDevices)[0m Ðéèáíüôáôá èá ôçí ÷ñåéáóôåßôå. Óçìáßíåé üôé ï ðõñÞíáò èá õðïóôçñßîåé óôÜíôáñ óêëçñïýò äßóêïõò ãéÜ PC, ôïõò ïðïßïõò äéáèÝôïõí ïé ðåñéóóüôåñïé ÷ñÞóôåò. Ï óõãêåêñéìÝíïò driver äåí õðïóôçñßæåé ìïíÜäåò SCSI. Ì' áõôÝò è' áó÷ïëçèïýìå ðéï êÜôù. ÌåôÜ èá åñùôçèåßôå ó÷åôéêÜ ìå drivers "old (ðáëéïýò) disk-only" êáé "new (íÝïõò) IDE". Óßãïõñá ðñÝðåé íá äéáëÝîåôå ôïí Ýíáí áð' ôïõò äõï. Ç êýñéá äéáöïñÜ ôïõò åßíáé ðùò ï ðáëéüò driver õðïóôçñßæåé ìüíï äýï äßóêïõò óå ìïíÞ äéáóýíäåóç (äçë. Ýíá ìïíáäéêü äéðëü êáëþäéï äßóêùí), êáé ï íÝïò õðïóôçñßæåé äåõôåñåýïõóá äéáóýíäåóç (äçë. äýï äéðëÜ êáëþäéá) êáé ìïíÜäåò cd-rom IDE/ATAPI. Ï íÝïò driver is 4k ìåãáëýôåñïò áðü ôïí ðáëéü, êáé èåùñçôéêÜ åßíáé êáé "âåëôéùìÝíïò", ðïõ óçìáßíåé üôé (åêôüò áðü ôï íá ðåñéÝ÷åé äéáöïñåôéêü áñéèìü bugs) ìÜëëïí èá âåëôéþóåé ôçí áðüäïóç ôïõ äßóêïõ óáò, åéäéêÜ áí äéáèÝôåôå íåþôåñï hardware (ôýðïõ EIDE). [1m3.3.3. ÕðïóôÞñéîç äéêôýùóçò (ÃåíéêÝò ñõèìßóåéò)[0m Óôç èåùñßá, ðñÝðåé í' áðáíôÞóåôå y ìüíïí áí ï Ç/Õ óáò âñßóêåôáé óõíäåäåìÝíïò ó' Ýíá äßêôõï (üðùò ð÷ ôï Internet), Þ èÝëåôå íá ÷ñçóéìïðïéÞóåôå ôá SLIP, PPP, term, êëð, ãéÜ íá óõíäåèåßôå ìÝóù ôçëåöþíïõ óôï Internet. Ùóôüóï, åðåéäÞ ðïõ áñêåôÜ ðáêÝôá (üðùò ôá X Windows) áðáéôïýí äéêôõáêÞ õðïóôÞñéîç, áêüìç êé áí ï Ç/Õ óáò äåí âñßóêåôáé óå êÜðïéï äßêôõï, ðñÝðåé í' áðáíôÞóåôå y. Áñãüôåñá, èá åñùôçèåßôå áí èÝëåôå õðïóôÞñéîç äéêôýùóçò ôýðïõ TCP/IP. Îáíáäþóôå y êáé åäþ, áí äåí åßóáóôå áðüëõôá âÝâáéïé. [1m3.3.4. System V IPC (ÃåíéêÝò ñõèìßóåéò)[0m Åíáò áðü ôïõò êáëýôåñïõò ïñéóìïýò ôçò IPC (Interprocess Communication, åðéêïéíùíßá äéáäéêáóéþí) âñßóêåôáé óôï ãëùóóÜñéï, óôï âéâëßï ôçò Perl. ÊÜôé ðïõ äåí åêðëÞóóåé, åðåéäÞ áñêåôïß ðñïãñáììáôéóôÝò óå Perl ÷ñçóéìïðïéïýí ôçí IPC ãéÜ íá âÜëïõí ôéò processes íá ìéëÞóïõí ç ìéÜ óôçí Üëëç, êáé ðáñüìïéá ãéÜ ìåñéêÜ Üëëá ðñïãñÜììáôá (ìå ãíùóôüôåñï ðáñÜäåéãìá ôï DOOM), Üñá äåí åßíáé êáëÞ éäÝá í' áðáíôÞóåôå n, åêôüò áí ãíùñßæåôå áêñéâþò ôß êÜíåôå. [1m3.3.5. ÏéêïãÝíåéá ôïõ processor (Ôýðïò êáé ÷áñáêôçñéóôéêÜ ôïõ proces-[0m [1msor)[0m (Óå ðáëéüôåñïõò ðõñÞíåò : Äþóôå ôçí ðáñÜìåôñï -m486 ãéÜ âåëôéóôïðïßçóç åéäéêÜ ãéÜ ôïí 486.) ÐáñáäïóéáêÜ, åäþ êÜíïõìå compile ìå âåëôéóôïðïßçóç ãéÜ óõãêåêñéìÝíï ðñïóÝóóïñá. Ðáëéüôåñá, ïé ðõñÞíåò ôñÝ÷áíå ìéÜ ÷áñÜ óå äéáöïñåôéêïýò ðñïóÝóóïñåò, áëëÜ Þóáí ìåãáëýôåñïé. Óôïõò íåþôåñïõò ðõñÞíåò áõôü äåí éó÷ýåé, åðïìÝíùò ðñÝðåé íá ðåßôå ãéÜ ðïéüí ðñïóÝóóïñá êÜíåôå compile ôïí ðõñÞíá. Åíáò ðõñÞíáò ãéÜ "386" èá äïõëÝøåé ì' áõôüí êáé êÜèå íåþôåñï ôýðï ix86 Ç/Õ. [1m3.3.6. ÕðïóôÞñéîç SCSI[0m Áí Ý÷åôå óõóêåõÝò SCSI devices, áðáíôÞóôå y. Èá åñùôçèåßôå ãéÜ ôéò õðüëïéðåò ðëçñïöïñßåò, ð÷ õðïóôÞñéîç cd-rom, äßóêùí, êáé ôß åßäïõò SCSI êÜñôá äéáèÝôåôå. ÃéÜ ðåñéóóüôåñåò ëåðôïìÝñåéåò, äéáâÜóôå ôï SCSI- HOWTO. [1m3.3.7. ÕðïóôÞñéîç êáñôþí äéêôýïõ[0m Áí Ý÷åôå êÜñôá äéêôýïõ, Þ èÝëåôå íá ÷ñçóéìïðïéÞóåôå ôá SLIP êáé PPP, Þ ìéÜ ðáñÜëëçëç èýñá ãéÜ óýíäåóç ìå ôï Internet, äþóôå y. Ôï script ñõèìßóåùí èá óáò ñùôÞóåé ôß åßäïò êÜñôáò Ý÷åôå, êáé ðïéü ðñùôüêïëëï íá ÷ñçóéìïðïéÞóåé. [1m3.3.8. ÓõóôÞìáôá áñ÷åßùí (Filesystems)[0m ÌåôÜ, ôï script ñõèìßóåùí ñùôÜåé áí èÝëåôå õðïóôÞñéîç ãéÜ ôá åîÞò filesystems : Ôï óôÜíôáñ (minix) - Ïé íåþôåñåò äéáíïìÝò äåí äçìéïõñãïýí minix filesystems, êáé ðïëëïß ÷ñÞóôåò äåí ôï ÷ñçóéìïðïéïýí, áëëÜ ßóùò íá åîáêïëïõèåß íá ÷ñåéÜæåôáé ôïýôï åäþ. Ôï ÷ñçóéìïðïéïýí ìåñéêÜ ðñïãñÜììáôá óå "äéóêÝôá äéÜóùóçò", áëëÜ êé Üëëïõ åßäïõò äéóêÝôåò ìðïñåß íá Ý÷ïõí minix filesystem, ìéÜ ðïõ åßíáé åýêïëï íá ôï ÷ñçóéìïðïéïýìå óå äéóêÝôåò. Ôï second extended - Áõôü åßíáé ôï óôÜíôáñ filesystem ôïõ Linux. Åóåßò ìÜëëïí óßãïõñá Ý÷åôå Ýíá ôÝôïéï, êáé ðñÝðåé íá áðáíôÞóåôå y. Ôï msdos - Áí èÝëåôå íá ÷ñçóéìïðïéÞóåôå êáé ôéò MS-DOS partitions ôïõ óêëçñïý óáò äßóêïõ, Þ íá êÜíåôå mount óå MS-DOS äéóêÝôåò, äþóôå y. ÕðÜñ÷ïõí äéáèÝóéìïé êáé ôýðïé filesystems áðü äéÜöïñá Üëëá ËÓ. Ôï /proc - (Áõôü Þôáí éäÝá ôùí Bell Labs, õðïèÝôù.) Äåí öôéÜ÷íïõìå proc filesystem åðÜíù ó' Ýíáí äßóêï : Áõôü åßíáé ç äéáóýíäåóç ôïõ filesystem ãéÜ ôïí ðõñÞíá êáé ôéò äéáäéêáóßåò (processes). Ôï ÷ñçóéìïðïéïýí ðïëëÜ ðñïãñÜììáôá ëßóôáò äéáäéêáóéþí (process listers), üðùò ð÷ ôï ps. ÄïêéìÜóôå ð÷ íá äþóåôå cat /proc/meminfo, Þ cat /proc/devices. ÌåñéêÜ êåëýöç (shells), åéäéêÜ ôï rc, ÷ñçóéìïðïéïýí ôï /proc/self/fd (ãíùóôü ùò /dev/fd óå Üëëá ËÓ) ãéÜ åßóïäï - Ýîïäï (I/O). Ó÷åäüí ìå âåâáéüôçôá ðñÝðåé íá ðåßôå y åäþ. ÐïëëÜ óçìáíôéêÜ åñãáëåßá ôïõ Linux âáóßæïíôáé ó' áõôü. Ôï NFS - Áí ï Ç/Õ óáò åßíáé óõíäåäåìÝíïò ó' Ýíá äßêôõï, êáé èÝëåôå íá ÷ñçóéìïðïéåßôå ôá filesystems ôùí Üëëùí Ç/Õ ðïõ åðßóçò Ý÷ïõí NFS, äþóôå y. Ôï ISO9660 - Âñßóêåôáé óôá ðåñéóóüôåñá CD-ROMs. Áí Ý÷åôå ìïíÜäá CD- ROM, êáé èÝëåôå íá ôç âëÝðåé ôï Linux, áðáíôÞóôå y. [1m3.3.8.1. Ìá, äåí îÝñù ðïéÜ filesystems ÷ñåéÜæïìáé![0m ÅíôÜîåé, äþóôå 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 äåß÷íåé ôïí ôýðï ôïõ filesystem. Óôï ðáñÜäåéãìÜ ìáò ôá filesystems / êáé /usr åßíáé second extended, ÷ñçóéìïðïéþ ôï /proc, êáé õðÜñ÷åé êáé ìéÜ äéóêÝôá ðïõ Ýêáíá mount, ç ïðïßá åßíáé ôïõ msdos (ìðëéÜ÷!) filesystem. ÄïêéìÜóôå íá äþóåôå cat /proc/filesystems, áí Ý÷åôå åíåñãïðïéÞóåé ôï /proc : Èá äþóåé ìéÜ ëßóôá ôùí filesystems ðïõ Ý÷åé ï ðõñÞíáò óáò. Ç ñýèìéóç óðáíßùí, ìç óçìáíôéêþí filesystems ðáñáöïõóêþíåé ôïí ðõñÞíá. ÄéáâÜóôå óôçí åíüôçôá ãéÜ ôá modules ðþò ôï áðïöåýãïõìå áõôü, êáé ôçí åíüôçôá "Ðáãßäåò" ãéÜ ôï ãéáôß Ýíáò ðáñáöïõóêùìÝíïò ðõñÞíáò åßíáé áíåðéèýìçôïò. [1m3.3.9. ÓõóêåõÝò ÷áñáêôÞñùí (Character devices)[0m Åäþ åíåñãïðïéåßôå ôïõò drivers ãéÜ ôïí åêôõðùôÞ óáò (äçë. ôïí ðáñÜëëçëï åêôõðùôÞ), ãéÜ ôï ðïíôßêé ôýðïõ busmouse Þ PS/2 (ðïëëïß öïñçôïß Ç/Õ ÷ñçóéìïðïéïýí ôï ðñùôüêïëëï PS/2 ãéÜ ôéò trackballs ðïõ Ý÷ïõíå), ãéÜ ìåñéêÝò ìïíÜäåò ìáãíçôéêÞò ôáéíßáò, êáé ãéÜ Üëëåò ðáñüìïéåò óõóêåõÝò "÷áñáêôÞñùí". Äþóôå y ãéÜ üðïéá óõóêåõÞ Ý÷åôå. Óçìåßùóç : ôï gpm åßíáé Ýíá ðñüãñáììá, ðïõ åíåñãïðïéåß ôï ðïíôßêé (Ýîù áðü ôï ðåñéâÜëëïí ôùí X-Windows) ãéÜ cut êáé paste áíÜìåóá óå (virtual) êïíóüëåò. ÐÜåé ìéÜ ÷áñÜ ìå ôá óåéñéáêÜ ðïíôßêéá, åðåéäÞ ìðïñåß íá óõíõðÜñ÷åé êáëÜ ìå ôá X, áëëÜ ÷ñåéÜæïíôáé åéäéêÜ êüëðá ãéÜ ôïõò Üëëïõò ôýðïõò ðïíôéêéþí. [1m3.3.10. Ç÷ïò[0m Áí Ý÷åôå éäéáßôåñç åðéèõìßá í' áêïýóåôå ôï biff íá ãáâãßæåé, äþóôå y, êáé ìåôÜ èá ðåßôå óôï ðñüãñáììá ñõèìßóåùí ü,ôé Ý÷åé ó÷Ýóç ìå ôçí êÜñôá Þ÷ïõ óáò. (ÌéÜ óçìåßùóç ãéÜ ôéò ñõèìßóåéò ôçò êÜñôáò Þ÷ïõ : ¼ôáí óáò ñùôÞóåé áí èÝëåôå íá åãêáôáóôÞóåôå ôçí ðëÞñç Ýêäïóç ôïõ driver, ìðïñåßôå í' áðáíôÞóåôå n êáé íá åîïéêïíïìÞóåôå êÜìðïóç ìíÞìç óôïí ðõñÞíá, äéáëÝãïíôáò ìüíï ôá ÷áñáêôçñéóôéêÜ ðïõ èåùñåßôå áðáñáßôçôá.) Áí èÝëåôå íá êÜíåôå óïâáñÞ õðïóôÞñéîç óôçí êÜñôá Þ÷ïõ, êïéôÜîôå êáé ôïõò äùñåÜí drivers óôï http://www.linux.org.uk/OSS/, êáé ôïõò åìðïñéêïýò ôïõ Open Sound System (OSS), óôï http://www.opensound.com/. [1m3.3.11. ¶ëëåò ðáñÜìåôñïé ñõèìßóåùí[0m Åäþ äåí ðáñáôßèåíôáé üëåò ïé åðéëïãÝò ñõèìßóåùí, åðåéäÞ áëëÜæïõí áñêåôÜ óõ÷íÜ, Þ åðåéäÞ åßíáé ó÷åôéêÜ áõôïíüçôåò (ð÷ ç õðïóôÞñéîç ãéÜ 3Com 3C509 óçìáßíåé íá êÜíïõìå compile ôïí driver ôçò óõãêåêñéìÝíçò êÜñôáò ethernet.) ÕðÜñ÷åé ìéÜ áñêåôÜ ðåñéåêôéêÞ ëßóôá üëùí ôùí åðéëïãþí (óõí Ýíáò ôñüðïò íá ôéò åéóÜãïõìå óôï script Configure), áðü ìéÜ ðñïóðÜèåéá ðïõ Üñ÷éóå êáé óõíôçñåßôáé áðü ôïí Axel Boldt (boldt@math.ucsb.edu), êáé ðñüêåéôáé ãéÜ ôçí online âïÞèåéá. ÁõôÞ ç ëßóôá åßíáé åðßóçò äéáèÝóéìç óå ìïñöÞ åíüò ôåñÜóôéïõ áñ÷åßïõ (ðïõ âñßóêåôáé óôçí Ýêäïóç 2.0), ôïõ Documentation/Configure.help óôï äÝíôñï ôùí dirs ôïõ source êþäéêá ôïõ ðõñÞíá ôïõ Linux óáò. [1m3.3.12. ×Üêåìá ôïõ ðõñÞíá[0m >Áðü ôï README ôïõ Linus : Ïé ëåðôïìÝñåéåò ôçò ñýèìéóçò ãéÜ "÷Üêåìá ôïõ ðõñÞíá (kernel hacking)" óõíÞèùò äçìéïõñãïýí Ýíáí ìåãáëýôåñï Þ áñãüôåñï ðõñÞíá (Þ êáé ôá äýï), êáé ìðïñïýí áêüìç íá êÜíïõí ôïí ðõñÞíá ëéãüôåñï óôáèåñü, üôáí ñõèìßæïõìå ñïõôßíåò, ðïõ ðÜíôá øÜ÷íïõí óôïí êáêïãñáììÝíï êþäéêá ãéÜ íá âñïõí ôá ðñïâëÞìáôá ôïõ ðõñÞíá (ç kmalloc() ). ÅðïìÝíùò, ðéèáíüôáôá íá ðñÝðåé í' áðáíôÞóåôå "n" óå ó÷åôéêÝò åñùôÞóåéò ãéÜ ðõñÞíá "ðáñáãùãÞò". [1m3.4. Êáé ôþñá, ôß; (Ôï áñ÷åßï Makefile)[0m Áöïý ôåëåéþóåôå ôéò ñõèìßóåéò, Ýíá ìÞíõìá óáò ëÝåé üôé ï ðõñÞíáò óáò åßíáé ñõèìéóìÝíïò, êáé íá "åëÝãîåôå ôï åðÜíù-åðÜíù åðßðåäï ôïõ Makefile ãéÜ åðéðëÝïí ñõèìßóåéò (check the top-level Makefile for additional configuration)", êëð. Áñá, êïéôÜæïõìå ôï Makefile. Ðéèáíüôáôá íá ìç ÷ñåéáóôåß íá ôï áëëÜîïõìå, áëëÜ ðïôÝ äåí âëÜðôåé ìéÜ ìáôéÜ. Ìðïñïýìå åðßóçò í' áëëÜîïõìå ôéò åðéëïãÝò ôïõ üôáí åôïéìáóôåß ï íÝïò ðõñÞíáò, ìå ôçí åíôïëÞ rdev. ÅÜí áéóèÜíåóôå óôá ÷áìÝíá êïéôÜæïíôáò ôï áñ÷åßï áõôü, ôüôå ìçí áó÷ïëçèåßôå. [1m4. ÊÜíïíôáò compile óôïí ðõñÞíá[0m [1m4.1. ÊáèÜñéóìá êáé åîáñôþìåíá áñ÷åßá[0m ¼ôáí ôåëåéþóåé ç äïõëåéÜ ôïõ script ñõèìßóåùí, óáò ëÝåé åðßóçò íá make dep ( = äçìéïõñãåßóôå ôéò åîáñôÞóåéò) êáé (ðéèáíÜ) clean ( = êáèáñßóôå). ÅðïìÝíùò, äþóôå make dep. Áõôü èá åðéâåâáéþóåé ðùò üëá ôá åîáñôþìåíá áñ÷åßá, üðùò ð÷ ôá include, âñßóêïíôáé óôç èÝóç ôïõò. ÁõôÞ ç äïõëåéÜ äåí ðáßñíåé ðïëý ÷ñüíï, åêôüò áí ï Ç/Õ óáò åßíáé áñêåôÜ áñãüò. ÃéÜ ðáëéüôåñåò åêäüóåéò ôïõ ðõñÞíá, üôáí ôåëåéþóåôå ðñÝðåé íá äþóåôå êáé make clean. Áõôü óâÞíåé üëá ôá object áñ÷åßá êáé ìåñéêÜ Üëëá ðñÜãìáôá, ðïõ ïé ðáëéüôåñåò åêäüóåéò áöÞíïõí ðßóù ôïõò. Óå ïðïéáäÞðïôå ðåñßðôùóç, [4mìçí[24m îå÷íÜôå áõôü ôï âÞìá ðñéí ðñïóðáèÞóåôå íá êÜíåôå compile Ýíáí ðõñÞíá. [1m4.2. ÄéÜñêåéá ôïõ compile[0m ÌåôÜ ôï depend êáé ôï clean, ôþñá ìðïñåßôå íá äþóåôå make bzImage, Þ make bzdisk. (Áõôü åßíáé ôï ìÝñïò ôçò åñãáóßáò ðïõ ðáßñíåé ôïí ðåñéóóüôåñï ÷ñüíï.) Ôï make bzImage êÜíåé compile ôïí ðõñÞíá, êáé áöÞíåé Ýíá áñ÷åßï óôï directory arch/i386/boot, ìå ôï üíïìá (ìåôáîý Üëëùí) bzImage. Áõôüò åßíáé ï íÝïò ðõñÞíáò, óå óõìðéåóìÝíç ìïñöÞ. Ôï make bzdisk êÜíåé ôá ßäéá ðñÜãìáôá, áëëÜ åðßóçò ãñÜöåé ôï êáéíïýñãéï bzImage óå ìéÜ äéóêÝôá, ôçí ïðïßá õðïèÝôù ðùò Ý÷åôå ôïðïèåôÞóåé óôç ìïíÜäá "A:". Ôï bzdisk åßíáé áñêåôÜ åõêïëï÷åßñéóôï, ãéÜ äïêéìÝò íÝùí ðõñÞíùí. Áí ôá êÜíåé èÜëáóóá (Þ áðëÜ äåí äïõëÝøåé óùóôÜ), áðëÜ âãÜëôå ôç äéóêÝôá êáé åðáíåêêéíÞóôå ìå ôïí ðáëéü ðõñÞíá óáò. Ìðïñåß åðßóçò í' áðïôåëÝóåé Ýíáí åýêïëï ôñüðï íá bootÜñåôå, áí áðü ëÜèïò óâÞóåôå ôïí ðáëéü óáò ðõñÞíá (Þ êÜíåôå êÜôé åî ßóïõ öïâåñü). Ìðïñåßôå åðßóçò íá ôï ÷ñçóéìïðïéÞóåôå ãéÜ íÝåò åãêáôáóôÜóåéò, üôáí áðëÜ ìåôáöÝñåôå ôá ðåñéå÷üìåíá åíüò óêëçñïý ó' Ýíáí Üëëïí. ("Ïë' áõôÜ êáé ðåñéóóüôåñá áêüìç! Ðüóá èá ðëçñþíáôå ÔÙÑÁ ãé' áõôÜ;") ¼ëïé ïé (áêüìç êáé ìå ïñéóìÝíç ðáñáäï÷Þ) ðñüóöáôïé ðõñÞíåò åßíáé óõìðéåóìÝíïé, åê ïý êáé ôï bz ìðñïóôÜ óôá ïíüìáôá. Åíáò óõìðéåóìÝíïò ðõñÞíáò áõôüìáôá áðïóõìðéÝæåôáé, üôáí åêôåëåßôáé. Óå ðáëéüôåñïõò ðõñÞíåò, äåí õðÜñ÷åé åðéëïãÞ íá öôéÜîåôå bzImage. Ôï üíïìá Þôáí áðëÜ zImage. Ðñïò ôï ðáñüí, ç åðéëïãÞ ãéÜ áóõìðßåóôï ðõñÞíá åîáêïëïõèåß íá õðÜñ÷åé, ùóôüóï, ìå ôï ìÝãåèïò ðïõ Ý÷ïõí ïé íÝïé ðõñÞíåò, åßíáé ó÷åäüí õðï÷ñåùôéêü íá ôïí öôéÜîåôå óõìðéåóìÝíï. [1m4.3. ¶ëëá áñ÷åßá ôýðïõ "make"[0m Ôï make mrproper êÜíåé ðéï åêôåôáìÝíï clean, ôï ïðïßï ìåñéêÝò öïñÝò åßíáé áðáñáßôçôï. Ìðïñåß íá èÝëåôå íá ôï êÜíåôå ìåôÜ áðü êÜèå ìðÜëùìá (patch). Ôï make mrproper èá óâÞóåé êáé ôï áñ÷åßï ôùí ñõèìßóåþí óáò, Üñá ßóùò ðñÝðåé íá êÜíåôå Ýíá backup áíôßãñáöü ôïõ (.config), áí äåßôå ðùò êÜôé ôÝôïéï óáò åßíáé ÷ñÞóéìï. Ôï make oldconfig èá ðñïóðáèÞóåé íá ñõèìßóåé ôïí ðõñÞíá áðü Ýíá ðáëéü áñ÷åßï ñõèìßóåùí. Èá äéáôñÝîåé ôç äéáäéêáóßá make config. Áí äåí Ý÷åôå îáíáêÜíåé compile êÜðïéïí ðõñÞíá, Þ äåí Ý÷åôå êÜðïéï ðáëéü áñ÷åßï ñõèìßóåùí, ôüôå ðéèáíüôáôá äåí ðñÝðåé íá êÜíåôå êÜôé ôÝôïéï, êáèþò ðéèáíüôáôá èá èåëÞóåôå í' áëëÜîåôå ôçí default ñýèìéóç. ÄéáâÜóôå ôçí åíüôçôá ãéÜ ôá modules, ãéÜ ðåñéãñáöÞ ôïõ make modules. [1m4.4. ÅãêáôÜóôáóç ôïõ ðõñÞíá[0m Áöïý áðïêôÞóåôå Ýíáí íÝï ðõñÞíá, ðïõ öáßíåôáé íá äïõëåýåé üðùò óáò áñÝóåé, åßíáé þñá íá ôïí åãêáôáóôÞóåôå. Ïé ðåñéóóüôåñïé ÷ñÞóôåò ÷ñçóéìïðïéïýí ôï LILO (Linux Loader) ãéÜ ôç äïõëåéÜ áõôÞ. Ôï make bzlilo èá åãêáôáóôÞóåé ôïí ðõñÞíá, èá ôñÝîåé ôï LILO, èá óáò åôïéìÜóåé íá bootÜñåôå, ÁËËÁ ÌÏÍÏÍ åÜí ôï lilo Ý÷åé ñõèìéóôåß óôïí Ç/Õ óáò ìå ôïí áêüëïõèï ôñüðï : ï ðõñÞíáò åßíáé ï /vmlinuz, ôï lilo âñßóêåôáé óôï /sbin, êáé ôï áñ÷åßï ñõèìßóåùí ôïõ lilo (/etc/lilo.conf) óõìöùíåß ìå üëá áõôÜ. ÄéáöïñåôéêÜ, ðñÝðåé íá ÷ñçóéìïðïéÞóåôå ôï LILO êáôåõèåßáí. Åßíáé ó÷åôéêÜ åýêïëï ðñüãñáììá íá ôï åãêáôáóôÞóåôå êáé íá äïõëÝøåôå ì' áõôü, áëëÜ Ý÷åé ìéÜ ôÜóç íá ìðåñäåýåé ôïõò áíèñþðïõò ìå ôï áñ÷åßï ñõèìßóåþí ôïõ. ÊïéôÜîôå áõôü ôï áñ÷åßï ñõèìßóåùí (/etc/lilo/config ãéÜ ðáëéüôåñåò åêäüóåéò ôïõ Linux, /etc/lilo.conf óôéò íÝåò åêäüóåéò), êáé äåßôå ðþò åßíáé ãñáììÝíï. ÐñÝðåé íá ìïéÜæåé êÜðùò Ýôóé : image = /vmlinuz label = Linux root = /dev/hda1 ... Ç ðáñÜìåôñïò image = äåß÷íåé ôïí åãêáôåóôçìÝíï ðõñÞíá, êáé ïé ðåñéóóüôåñïé ÷ñÞóôåò ãñÜöïõí /vmlinuz. Ç label ( = åôéêÝôá) ÷ñçóéìïðïéåßôáé áðü ôï lilo ãéÜ íá êáôáëÜâåé ìå ðïéüí ðõñÞíá Þ ìå ðïéü ËÓ èá bootÜñåé, êáé ôï root åßíáé ôï áíôßóôïé÷ï ôïõ directory / ãéÜ ôï óõãêåêñéìÝíï ËÓ. ÐÜñôå Ýíá backup ôïõ ðáëéïý óáò ðõñÞíá êáé áíôéãñÜøôå óôï óùóôü ìÝñïò ôï bzImage ðïõ ìüëéò öôéÜîáôå. (ÐñÝðåé íá äþóåôå cp bzImage /vmlinuz, áí ÷ñçóéìïðïéåßôå ôïí /vmlinuz). ÌåôÜ, îáíáôñÝîôå ôï lilo. Óå íåþôåñåò åêäüóåéò áðëÜ äßíåôå lilo, áëëÜ óå ðáëéüôåñåò ðñÝðåé íá êÜíåôå /etc/lilo/install (åãêáôÜóôáóç), Þ áêüìç êáé /etc/lilo/lilo -C /etc/lilo/config (ñýèìéóç). Áí èÝëåôå íá ìÜèåôå ðåñéóóüôåñá ãéÜ ôéò ñõèìßóåéò ôïõ LILO, Þ äåí Ý÷åôå ôï LILO, âñåßôå ôçí ðéï ðñüóöáôç ÝêäïóÞ ôïõ áðü ôïí áãáðçìÝíï óáò ftp server, êáé áêïëïõèåßóôå ôéò ïäçãßåò ôçò. ÃéÜ íá bootÜñåôå áðü ôïí óêëçñü äßóêï ì' Ýíáí áðü ôïõò ðáëéïýò ðõñÞíåò óáò (ðñÜãìá ðïõ åßíáé Ýíáò ôñüðïò íá äéáóùèåßôå, áí ôá êÜíåôå èÜëáóóá ìå ôïí íÝï ðõñÞíá), áíôéãñÜøôå óôï ôÝëïò ôïõ áñ÷åßïõ ôéò ãñáììÝò êÜôù áðü (êáé ìáæß ìå) ôï image = xxx ðïõ âñßóêïíôáé óôï áñ÷åßï ñõèìßóåùí ôïõ LILO, êáé áëëÜîôå ôï image = xxx óå image = yyy, üðïõ yyy åßíáé ôï ðëÞñåò üíïìá path ôïõ áñ÷åßïõ, óôï ïðïßï êÜíáôå backup ôïí ðáëéü óáò ðõñÞíá. ÌåôÜ, áëëÜîôå ôçí label = zzz óå label = linux-backup êáé îáíáôñÝîôå ôï lilo. Ìðïñåß íá ÷ñåéáóôåß íá âÜëåôå ìéÜ ãñáììÞ óôï áñ÷åßï ñõèìßóåùí, ðïõ íá ëÝåé delay=x, üðïõ x åßíáé ìéÜ ôéìÞ óå äÝêáôá ôïõ äåõôåñïëÝðôïõ, ðïõ ëÝåé óôï LILO ðüóï íá ðåñéìÝíåé ðñéí ôï bootÜñéóìá, þóôå íá ìðïñåßôå íá ôï äéáêüøåôå (ð÷ ðáôþíôáò ôï ðëÞêôñï shift), êáé íá äþóåôå ôçí label (åôéêÝôá) ôïõ backup áñ÷åßïõ (óå ðåñßðôùóç ðïõ óõìâïýí äõóÜñåóôá ðñÜãìáôá). [1m5. Ìðáëþíïíôáò (patching) ôïí ðõñÞíá[0m [1m5.1. Åöáñìüæïíôáò Ýíá ìðÜëùìá (patch)[0m Ïé êáôÜ ôìÞìáôá âåëôéþóåéò ôïõ ðõñÞíá äéáíÝìïíôáé ùò patches ( = ìðáëþìáôá). Ð÷, áí Ý÷åôå ôçí Ýêäïóç 1.1.45, êáé ðÜñåé ôï ìÜôé óáò üôé êÜðïõ õðÜñ÷åé patch46.gz ãé' áõôÞí, óçìáßíåé üôé ìðïñåßôå íá ôçí áíáâáèìßóåôå óå Ýêäïóç 1.1.46, åíþíïíôáò ôï patch. ÖõóéêÜ, ìðïñåß ðñþôá íá ÷ñåéáóôåß íá êÜíåôå backup ôïõ äÝíôñïõ ôùí dirs ôïõ source êþäéêá (ôï make clean, êáé ìåôÜ ôï cd /usr/src; tar zcvf old- tree.tar.gz linux, èá óáò öôÜîïõí Ýíá óõìðéåóìÝíï tar áñ÷åßï). ¸ôóé, óõíå÷ßæïíôáò ôï ðáñáðÜíù ðáñÜäåéãìá, áò õðïèÝóïõìå üôé Ý÷åôå ôï patch46.gz óôï /usr/src. ÌåôÜ ãõñßóôå ìå cd óôï dir /usr/src êáé äþóôå zcat patch46.gz | patch -p0 (Þ patch -p0 < patch46, áí ôï patch åßíáé áóõìðßåóôï). Èá äåßôå äéÜöïñá ðñÜãìáôá íá öåýãïõí ìå ôá÷ýôçôá (Þ íá áñãïðåôÜíå, áí ï Ç/Õ óáò åßíáé ôüóï áñãüò), ðñÜãìá ðïõ óáò ëÝåé üôé ðñïóðáèåß íá ôóïíôÜñåé ôá êïììÜôéá, êáé áí ðÝôõ÷å Þ ü÷é. ÓõíÞèùò áõôÞ ç äñáóôçñéüôçôá åîåëßóóåôáé ôüóï ãñÞãïñá, þóôå íá ìç ìðïñåßôå íá äéáâÜóåôå ôá ìçíýìáôÜ ôçò, êáé äåí åßìáóôå ðÜíôá óßãïõñïé áí ðåôõ÷áßíåé Þ ü÷é. ÅðïìÝíùò, ìðïñåß íá èÝëåôå íá âÜëåôå ôçí ðáñÜìåôñï -s óôç äéáäéêáóßá ðñïóêüëëçóçò ôïõ patch, ç ïðïßá âãÜæåé óôçí ïèüíç ìüíï ôá ìçíýìáôá ëÜèïõò. (Äåí è' áðïêôÞóåôå ðïëý óõíáßóèçìá ôïõ ôýðïõ "ãéÜ äåò, ï Ç/Õ ìïõ êÜíåé êÜôé ãéÜ í' áëëÜîåé!", áëëÜ ìðïñåß êáé íá óáò áñÝóåé áõôüò ï ôñüðïò.) ÃéÜ íá âñåßôå ðïéÜ ìÝñç ôçò äéáäéêáóßáò äåí äïýëåøáí óùóôÜ, ðÜôå óôï dir /usr/src/linux êáé øÜîôå ãéÜ áñ÷åßá ìå êáôÜëçîç .rej . ÌåñéêÝò åêäüóåéò ôçò patch (ðáëéüôåñåò åêäüóåéò, ðïõ ãßíáíå compile ìå ôç âïÞèåéá êáôþôåñïõ filesystem), áöÞíïõí ôá áñ÷åßá áõôÜ ìå êáôÜëçîç # . Ìðïñåßôå íá âÜëåôå ôçí åíôïëÞ find íá øÜîåé ãéÜ ÷Üñç óáò. Äßíïíôáò find . -name '*.rej' -print âãÜæåé óôçí ïèüíç üóá áñ÷åßá ìå êáôÜëçîç .rej ðïõ õðÜñ÷ïõí óôï ôñÝ÷ïí dir êáé óôá subdirs ôïõ. Áí üëá ðÞãáí êáëÜ, êÜíôå make clean, config, êáé dep, üðùò ôá ðåñéãñÜøáìå óôéò åíüôçôåò 3 êáé 4. ÕðÜñ÷ïõí êÜìðïóåò ðáñÜìåôñïé ôçò åíôïëÞò patch. ¼ðùò ðñïáíáöÝñáìå, ç patch -s êáôáðíßãåé üëá ôá ìçíýìáôá, åêôüò áðü ôá ìçíýìáôá ëáèþí. Áí âÜëåôå ôïí source êþäéêá ôïõ ðõñÞíá óå êÜðïéï dir äéáöïñåôéêü áðü ôï /usr/src/linux, ç patch -p1 (ó' áõôü ôï Üëëï dir) èá êÜíåé ôï patch ìéÜ ÷áñÜ. Ïé õðüëïéðåò ðáñÜìåôñïé ôçò patch åßíáé ôåêìçñéùìÝíåò êáëÜ óôçí áíôßóôïé÷ç óåëßäá man. [1m5.2. Áí êÜôé äåí ðÜåé êáëÜ[0m (Óçìåßùóç : ÁõôÞ ç åíüôçôá áíáöÝñåôáé êõñßùò óå ðáëéüôåñïõò ðõñÞíåò.) Ôï ðéï óõ÷íü ðñüâëçìá ðïõ õðÞñ÷å, Þôáí üðïôå Ýíá patch Üëëáæå Ýíá áñ÷åßï ìå üíïìá config.in, ðñÜãìá ðïõ äåí Þôáí áðüëõôá óùóôü, åðåéäÞ ï êÜèå ÷ñÞóôçò áëëÜæåé ôéò ñõèìßóåéò óôïí äéêü ôïõ Ç/Õ. Áõôü Ý÷åé ðëÝïí åîáëåéöèåß, áëëÜ ìðïñåß íá ôï îáíáâñåßôå ìðñïóôÜ óáò óå ðáëéüôåñåò åêäüóåéò. ÃéÜ íá ôï äéïñèþóåôå, øÜîôå óôï áñ÷åßï config.in.rej, íá äåßôå ôß Üöçóå ôï patch. Ïé áëëáãÝò ôõðéêÜ óçìåéþíïíôáé ìå + êáé - óôçí áñ÷Þ êÜèå ãñáììÞò. ÄéáâÜóôå ôéò ãñáììÝò ðïõ ðåñéóôïé÷ßæïõí ôéò ãñáììÝò ôùí áëëáãþí, êáé èõìçèåßôå áí äþóáôå áíÜëïãá y Þ n. Ôþñá, äéïñèþóôå ôï config.in, êáé áëëÜîôå ôá y óå n êáé ôá n óå y, üðùò ÷ñåéÜæåôáé. Äþóôå patch -p0 < config.in.rej êáé áí ëÝåé üôé ðÝôõ÷å (äçë. äåí Ý÷åé ìçíýìáôá áðïôõ÷ßáò), ôüôå ìðïñåßôå íá óõíå÷ßóåôå ìå ñõèìßóåéò êáé compilation. Ôï áñ÷åßï config.in.rej èá ðáñáìåßíåé ùò Ý÷åé, áëëÜ ìðïñåßôå íá ôï óâÞóåôå. Áí óõíáíôÞóåôå êé Üëëá ðñïâëÞìáôá, ìðïñåß íá Ý÷åôå åãêáôáóôÞóåé Ýíá patch ðïõ äåí äïõëåýåé. ÅÜí ç åíôïëÞ patch âãÜëåé ôï ìÞíõìá previously applied patch detected: Assume -R? (áíé÷íåýôçêå ðñïçãïýìåíï patch, íá ôï áíôéêáôáóôÞóù;) ðéèáíüôáôá ðÜôå íá âÜëåôå patch ðáëéüôåñçò Ýêäïóçò áðü ôïí ðõñÞíá óáò. Áí áðáíôÞóåôå y, èá ðñïóðáèÞóåé íá áãíïÞóåé ôïí source êþäéêá ðïõ Ý÷åôå, êáé ðéèáíüôáôá è' áðïôý÷åé. Óõíåðþò, èá ÷ñåéáóôåßôå Ýíá ïëüêëçñï íÝï äÝíôñï source êþäéêá (ðñÜãìá ðïõ, ôåëéêÜ, ìðïñåß êáé íá ìçí åßíáé êáêÞ éäÝá). ÃéÜ íá áöáéñÝóåôå Ýíá patch, ÷ñçóéìïðïéåßóôå ôçí åíôïëÞ patch -R åðÜíù óôï áñ÷éêü patch. Ôï êáëýôåñï ðïõ Ý÷åôå íá êÜíåôå, üôáí ôá patches áðïäåéêíýïíôáé ëáíèáóìÝíá, åßíáé íá îáíáñ÷ßóåôå ì' Ýíá êáèáñü ôïõ êïõôéïý äÝíôñï source êþäéêá (ð÷ áðü Ýíá áðü ôá áñ÷åßá linux-x.y.z.tar.gz), êáé íá îáíáêÜíåôå üëç ôç äéáäéêáóßá. [1m5.3. ÓâÞíïíôáò ôá .orig áñ÷åßá[0m ÌåôÜ áðü ìüëéò ëßãá patches, è' áñ÷ßóïõí íá óõóóùñåýïíôáé áñ÷åßá .orig . Ð÷, Ýíá äÝíôñï Ýêäïóçò 1.1.51 ðïõ åß÷á, ôåëåõôáßá öïñÜ êáèáñßóôçêå óôçí Ýêäïóç 1.1.48 . Ìå ôï ðïõ Ýóâçóá ôá .orig áñ÷åßá, åîïéêïíüìçóá ðåñéóóüôåñï áðü ìéóü MB. Ç åíôïëÞ find . -name '*.orig' -exec rm -f {} ';' èá öñïíôßóåé ôá ðñÜãìáôá ãéÜ óáò. Ïé åêäüóåéò ôçò patch ðïõ âÜæïõí # áíôß ãéÜ .rej, ÷ñçóéìïðïéïýí tilde (ðåñéóðùìÝíç) áíôß ãéÜ .orig . ÕðÜñ÷ïõí êáëýôåñïé ôñüðïé ãéÜ íá óâÞóïõìå ôá áñ÷åßá .orig, ïé ïðïßïé åîáñôþíôáé áðü ôá GNU xargs. Ð÷ : find . -name '*.orig' | xargs rm Þ ç "áñêåôÜ áóöáëÞò, áëëÜ ëßãï ðéï êõñéïëåêôéêÞ" ìÝèïäïò : find . -name '*.orig' -print0 | xargs --null rm -- [1m5.4. ¶ëëá patches[0m ÕðÜñ÷ïõí êé Üëëá patches (áõôÜ èá ôá áðïêáëþ "ìÞ óôÜíôáñ"), åêôüò áð' üóá äéáíÝìåé ï Linus. Áí äïêéìÜóåôå íá ôá ðñïóèÝóåôå, ôá patches ôïõ Linus ìðïñåß êáé íá ìç äïõëÝøïõí óùóôÜ, êáé åßôå èá ðñÝðåé íá ôá îáíáâãÜëåôå - íá äéïñèþóåôå ôïí source êþäéêá ôïõ patch - íá åãêáôáóôÞóåôå Ýíá íÝï äÝíôñï source êþäéêá, åßôå íá êÜíåôå Ýíáí óõíäõáóìü üëùí ôùí ðáñáðÜíù. Áõôü ìðïñåß íá åßíáé ðïëý åíï÷ëçôéêü, åðïìÝíùò, áí äåí èÝëåôå í' áëëÜîåôå ôïí source êþäéêá (ìå ðéèáíüôçôá ãéÜ ðïëý áðïôõ÷çìÝíï áðïôÝëåóìá), áöáéñÝóôå ôá ìÞ óôÜíôáñ patches ðñéí âÜëåôå ôá ôïõ Linus, Þ áðëÜ åãêáôáóôÞóôå Ýíá íÝï äÝíôñï. Ôüôå, ìðïñåßôå íá äåßôå åÜí ôá ìÞ óôÜíôáñ patches äïõëåýïõí áêüìç. Áí ü÷é, åßôå Ý÷åôå êïëëÞóåé ó' Ýíáí ðáëéü ðõñÞíá, êáé ðáßæåôå ìå ôï patch Þ ôïí source êþäéêá ðñïóðáèþíôáò íá ôá êÜíåôå íá äïõëÝøïõí, Þ ðåñíÜôå ôçí þñá óáò ðåñéìÝíïíôáò (ðéèáíüôáôá ðáñáêáëþíôáò) íá âãåé ìéÜ íÝá Ýêäïóç ôïõ patch. Ðüóï óõ÷íÜ õðÜñ÷ïõí patches åêôüò ôçò óôÜíôáñ äéáíïìÞò; Ðéèáíüôáôá êÜðïéá óôéãìÞ íá óõíáíôÞóåôå êÜðïéï. ÐñïóùðéêÜ ÷ñçóéìïðïéïýóá ôï noblink patch óôéò virtual êïíóüëåò ìïõ, åðåéäÞ ìéóþ ôïõò êÝñóïñåò ðïõ áíáâïóâÞíïõí. (Ôï óõãêåêñéìÝíï patch áíáíåþíåôáé óõ÷íÜ - ôïõëÜ÷éóôïí áíáíåùíüôáí êáôÜ ôï ðáñåëèüí - óôéò íÝåò åêäüóåéò ôïõ ðõñÞíá.) Ùóôüóï, ìå ôïõò ðåñéóóüôåñïõò íÝïõò drivers óõóêåõþí íá Ý÷ïõí ðëÝïí ôç ìïñöÞ modules ðïõ öïñôþíïíôáé, ç óõ÷íüôçôá åìöÜíéóçò ôùí "ìÞ óôÜíôáñ" patches ìåéþíåôáé óçìáíôéêÜ. [1m6. ÅðéðëÝïí ðáêÝôá[0m Ï ðõñÞíáò ôïõ Linux Ý÷åé ðïëëÝò éêáíüôçôåò, ïé ïðïßåò äåí åðåîçãïýíôáé ïýôå áêüìç êáé ìÝóá óôïí ßäéï ôïí source êþäéêá. ÁõôÝò ïé éêáíüôçôåò óõíÞèùò ÷ñçóéìïðïéïýíôáé áðü åîùôåñéêÜ ðñïãñÜììáôá, ôùí ïðïßùí ìåñéêÜ áðü ôá ðéï óõíçèéóìÝíá ðáñïõóéÜæïíôáé åäþ. [1m6.1. kbd[0m Ðéèáíüôáôá ç êïíóüëá ôïõ Linux íá Ý÷åé ðåñéóóüôåñåò éêáíüôçôåò áð' üóåò äéêáéïýôáé. Ìåôáîý áõôþí âñßóêåôáé ç éêáíüôçôá íá áëëÜæïõìå fonts, íá áíáäéáôÜóóïõìå ôï ðëçêôñïëüãéü ìáò, íá áëëÜæïõìå áíÜëõóç ïèüíçò (áõôü óôïõò íåþôåñïõò ðõñÞíåò), êëð. Ôï ðáêÝôï kbd Ý÷åé ðñïãñÜììáôá ðïõ åðéôñÝðïõí óôïí ÷ñÞóôç íá êÜíåé üëá ôá ðáñáðÜíù, óõí ðïëëÜ fonts êáé äéáôÜîåéò ðëÞêôñùí ãéÜ ó÷åäüí êÜèå ðëçêôñïëüãéï, êáé åßíáé äéáèÝóéìï áðü ôá ßäéá sites, üðïõ âñßóêïõìå ôïí source êþäéêá ôïõ ðõñÞíá. [1m6.2. util-linux[0m Ï Rik Faith (faith@cs.unc.edu) ìÜæåøå ó' Ýíá ðáêÝôï ìéÜ ìåãÜëç óõëëïãÞ utilities ãéÜ Linux, ôï ïðïßï - åíôåëþò ôõ÷áßá - ïíïìÜæåôáé util- linux. ÁõôÝò ïé utilities ôþñá óõíôçñïýíôáé áðü ôïí Andries Brouwer (util-linux@math.uio.no). Åßíáé äéáèÝóéìåò ìå áíþíõìï ftp áðü ôï sunsite.unc.edu óôï dir /pub/Linux/system/misc, êáé ðåñéÝ÷ïõí ðñïãñÜììáôá üðùò ôï setterm, ôï rdev, êáé ôï ctrlaltdel, ôá ïðïßá åßíáé ó÷åôéêÜ ìå ôïí ðõñÞíá. ¼ðùò ëÝåé ï Rik, [4mìçí[24m [4mêÜíåôå[24m [4måãêáôáóôÜóåéò[0m [4m÷ùñßò[24m [4míá[24m [4móêÝöôåóôå[24m. Äåí ÷ñåéÜæåôáé íá åãêáôáóôÞóåôå ôï êÜèå ôß ìÝóá óôï ðáêÝôï. (Áí êÜíåôå êÜôé ôÝôïéï, ðïëý ðéèáíü íá óáò ðñïîåíÞóåé óïâáñÜ ðñïâëÞìáôá.) [1m6.3. hdparm[0m ¼ðùò óõìâáßíåé ìå ðïëëÜ ðáêÝôá, ôïýôï åäþ êÜðïôå Þôáí Ýíá ðáêÝôï ìå ðñïãñÜììáôá êáé õðïóôÞñéîçò ôïõ ðõñÞíá. Ôá patches åíóùìáôþèçêáí óôïí åðßóçìï ðõñÞíá, êáé ôá ðñïãñÜììáôá ãéÜ íá ôïí âåëôéóôïðïéÞóåôå (êáé íá ðáßîåôå ìå ôïí óêëçñü óáò äßóêï) äéáíÝìïíôáé ÷ùñéóôÜ. [1m6.4. gpm[0m Ôï gpm óçìáßíåé general purpose mouse (ðïíôßêé ãéÜ êÜèå äïõëåéÜ). Áõôü ôï ðñüãñáììá óáò åðéôñÝðåé íá êÜíåôå cut êáé paste êáèáñü text óôéò virtual êïíóüëåò, êáèþò êáé íá êÜíåôå êé Üëëá ðñÜãìáôá, ìå ìéÜ ìåãÜëç ðïéêéëßá ôýðùí ðïíôéêéïý. [1m7. ÌåñéêÝò ðáãßäåò[0m [1m7.1. make clean[0m Áí ï ðõñÞíáò óáò êÜíåé ôñåëÜ ðñÜãìáôá ìåôÜ áðü ìéÜ óõíçèéóìÝíç áíáâÜèìéóç, ðéèáíüôáôá Ý÷åôå îå÷Üóåé ôï make clean ðñéí êÜíåôå compile ôïí íÝï ðõñÞíá. Ôá óõìðôþìáôá ìðïñåß íá åßíáé ïðïéáäÞðïôå, áðü êñÝìáóìá ôïõ Ç/Õ êáé ðáñÜîåíç óõìðåñéöïñÜ ôïõ I/O, ìÝ÷ñé ðåóìÝíç áðüäïóç. Åðßóçò, èõìçèåßôå íá êÜíåôå êáé make dep. [1m7.2. ÔåñÜóôéïé Þ áñãïß ðõñÞíåò[0m Áí ï ðõñÞíáò óáò áðïññïöÜ ðïëëÞ ìíÞìç, åßíáé ðïëý ìåãÜëïò, êáé/Þ êÜíåé áéþíåò ãéÜ compile áêüìç êáé óôï íÝï óáò Quadbazillium-III/4400, ðéèáíüôáôá ñõèìßæåôå ôüíïõò áðü Ü÷ñçóôá ðñÜãìáôá (drivers óõóêåõþí, filesystems, êëð). Áí äåí ÷ñçóéìïðïéåßôå êÜôé, ìçí ôï ñõèìßæåôå, åðåéäÞ êáôáëáìâÜíåé ðüñïõò ôïõ Ç/Õ. Ôï ðñïöáíÝóôåñï óýìðôùìá ðáñáöïõóêþìáôïò ôïõ ðõñÞíá åßíáé ç õðåñâïëéêÞ áíôáëëáãÞ äåäïìÝíùí (swapping) áðü - ðñïò ìíÞìç êáé äßóêï. Áí ï äßóêïò óáò êÜíåé ðïëý èüñõâï, êáé äåí åßíáé áðü êåßíïõò ôïõò ðáëéïýò Fujitsu Eagles, ðïõ êáôÜ ôï êëåßóéìï êÜíïõí óáí áåñéùèïýìåíï ðïõ ðñïóãåéþíåôáé, øÜîôå ôï óôÞóéìï ôïõ ðõñÞíá óáò. Ìðïñåßôå íá âñåßôå ðüóç ìíÞìç ÷ñçóéìïðïéåß ï ðõñÞíáò, ðáßñíïíôáò ôï ïëéêü ðïóü ìíÞìçò ôïõ Ç/Õ óáò, êáé áöáéñþíôáò ôï ðïóü ôçò "total mem" (ïëéêÞò ìíÞìçò) óôï áñ÷åßï /proc/meminfo, Þ ôï ðïóü ðïõ äßíåé ç åíôïëÞ free. [1m7.3. Äåí äïõëåýåé ç ðáñÜëëçëç èýñá, Þ ï åêôõðùôÞò ìïõ[0m Ïé åðéëïãÝò ñýèìéóçò ãéÜ ôá PCs åßíáé : Ðñþôá, óôçí êáôçãïñßá "General Setup" (ãåíéêÝò ñõèìßóåéò), äéáëÝîôå "Parallel port support" (õðïóôÞñéîç ðáñÜëëçëçò èýñáò) êáé "PC-style hardware" (hardware ôýðïõ PC). ÌåôÜ, óôéò "Character devices" (óõóêåõÝò ÷áñáêôÞñùí) äéáëÝîôå "Parallel printer support" (õðïóôÞñéîç ðáñÜëëçëïõ åêôõðùôÞ). ÌåôÜ, õðÜñ÷ïõí êáé ïé ïíïìáóßåò. Ôï Linux 2.2 ïíïìÜæåé ôïí åêôõðùôÞ äéáöïñåôéêÜ áð' ü,ôé ïé ðñïçãïýìåíåò åêäüóåéò. Ôï óõìðÝñáóìá åßíáé üôé áí åß÷áôå lp1 ìå ôïí ðáëéü ðõñÞíá óáò, ôþñá ðéèáíüôáôá Ý÷åôå lp0 ìå ôïõò êáéíïýñãéïõò. ÃéÜ íá âñåßôå ôï üíïìá ôïõ åêôõðùôÞ, äþóôå ôçí åíôïëÞ dmesg, Þ øÜîôå ôá áñ÷åßá êáôáãñáöÞò (logs) óôï dir /var/log. [1m7.4. Äåí ãßíåôáé compile óôïí ðõñÞíá[0m Áí äåí ãßíåôáé compile, ôüôå ðéèáíüôáôá áðÝôõ÷å ç ðñïóèÞêç åíüò patch, Þ êáôÜ êÜðïéï ôñüðï äåí åßíáé óùóôüò ï source êþäéêáò. Åðßóçò, ìðïñåß íá åßíáé ðáëéÜ Þ ü÷é óùóôÞ ç Ýêäïóç ôçò gcc ðïõ Ý÷åôå (ð÷ ôá áñ÷åßá include). Âåâáéùèåßôå üôé ïé óõìâïëéêïß äåóìïß (symbolic links) ðïõ ðåñéãñÜöåé ï Linus óôï README, åßíáé óôçìÝíïé óùóôÜ. ÃåíéêÜ, áí äåí ìðïñïýìå íá êÜíïõìå compile Ýíáí óôÜíôáñ ðõñÞíá, ôüôå êÜôé äåí ðÜåé êáèüëïõ êáëÜ ìå ôï Linux, êáé åßíáé áíáãêáßá ç åðáíåãêáôÜóôáóç ìåñéêþí åñãáëåßùí. Óå ìåñéêÝò ðåñéðôþóåéò, ç gcc êñáóÜñåé åî áéôßáò ðñïâëçìÜôùí óôï hardware. Ôï ìÞíõìá ëÜèïõò åßíáé êÜôé óáí "xxx exited with signal 15" ( = ôï xxx Ýðáøå íá ëåéôïõñãåß ìå ìÞíõìá 15), êáé ãåíéêÜ áõôÜ ôá ìçíýìáôá Ý÷ïõíå ìõóôçñéþäç åìöÜíéóç. Ðéèáíüôáôá äåí èá ìßëáãå ãéÜ êÜôé ôÝôïéï, áëëÜ åßíáé êÜôé ðïõ ìïõ óõíÝâç êÜðïôå - åß÷á ÷áëáóìÝíç ìíÞìç cache, êáé ï compiler êñåìïýóå óå ôõ÷áßåò óôéãìÝò. Áí Ý÷åôå ðñïâëÞìáôá, ðñþôá ðñïóðáèÞóôå íá åðáíåãêáôáóôÞóåôå ôçí gcc. ÐñÝðåé íá ãßíåôå êá÷ýðïðôïé ìïíÜ÷á áí êÜíåôå áðñïâëçìÜôéóôá compile óôïí ðõñÞíá óáò ìå off ôçí åîùôåñéêÞ cache, ìå ðåñéïñéóìÝíç ðïóüôçôá RAM, êëð. Åíï÷ëåß ôïõò ÷ñÞóôåò, üôáí ôïõò ëåò üôé ôï hardware ôïõò åßíáé ðñïâëçìáôéêü, áëëÜ äåí âãÜæù ôá ðñÜãìáôá áõôÜ áð' ôï ìõáëü ìïõ. ÕðÜñ÷åé Ýíáò ó÷åôéêüò êáôÜëïãïò ìå óõ÷íÝò åñùôÞóåéò (FAQs), ðïõ âñßóêåôáé óôï http://www.bitwizard.nl/sig11/. [1m7.5. Ç íÝá Ýêäïóç ôïõ ðõñÞíá äåí bootÜñåé[0m Äåí ôñÝîáôå ôï LILO, Þ äåí ôï ñõèìßóáôå óùóôÜ. ¸íá ðñÜãìá ðïõ ìå "äéÝëõóå" êÜðïôå, Þôáí Ýíá ðñüâëçìá óôï áñ÷åßï ñõèìßóåùí, üðïõ Ýãñáöå boot = /dev/hda1, áíôß boot = /dev/hda. (Áõôü ìðïñåß íá åßíáé ðïëý åíï÷ëçôéêü óôçí áñ÷Þ, áëëÜ áí Ý÷åôå Ýíá áñ÷åßï ñõèìßóåùí ðïõ äïõëåýåé, äåí ÷ñåéÜæåôáé íá ôï áëëÜîåôå.) [1m7.6. Îå÷Üóáôå íá ôñÝîåôå ôï LILO, Þ ï Ç/Õ äåí bootÜñåé êáèüëïõ[0m Ïýðò! Ôï êáëýôåñï ðñÜãìá ðïõ ìðïñåßôå íá êÜíåôå åäþ åßíáé boot áðü äéóêÝôá Þ CDROM, êáé íá åôïéìÜóåôå ìéÜ áêüìç äéóêÝôá åêêßíçóçò (üðùò ð÷ èá ôçí Ýöôéá÷íå ç åíôïëÞ make zdisk). ÐñÝðåé íá ãíùñßæåôå ðïõ íá âñåßôå ôï root filesystem óáò (/), êáé ôß ôýðïò åßíáé (äçë. second extended, minix). Óôï ðáñáêÜôù ðáñÜäåéãìá, ðñÝðåé åðßóçò íá ãíùñßæåôå åðÜíù óå ðïéü filesystem âñßóêåôáé ôï äÝíôñï ôïõ source êþäéêÜ óáò (/usr/src/linux), ôïí ôýðï ôïõ, êáé ðïý ôï êÜíïõìå mount óõíÞèùò. Óôï áêüëïõèï ðáñÜäåéãìá, ôï / åßíáé ôï /dev/hda1, êáé ôï filesystem ðïõ êñáôÜåé ôï /usr/src/linux âñßóêåôáé óôï /dev/hda3, ðïõ óõíÞèùò ôï êÜíïõìå mount óôï /usr. Êáé ôá äýï åßíáé filesystems ôýðïõ second extended. Ôï image ôïõ åíåñãïý ðõñÞíá óôï /usr/src/linux/arch/i386/boot ïíïìÜæåôáé bzImage. Ç éäÝá åßíáé üôé, áí õðÜñ÷åé Ýíá åíåñãü bzImage, ðéèáíüí íá ìðïñïýìå íá ôï âÜëïõìå óôç íÝá äéóêÝôá. ÌéÜ Üëëç åíáëëáêôéêÞ ëýóç, ðïõ ßóùò íá äïõëåýåé êáëýôåñá, ßóùò êáé ü÷é (åîáñôÜôáé ìå ðïéÜ ìÝèïäï êÜíáôå ìðÜ÷áëï ôïí Ç/Õ óáò), èá ôç óõæçôÞóïõìå ìåôÜ ôï ðáñÜäåéãìá. Ðñþôá, êÜíôå boot áðü óõíäõáóìü boot/root äéóêåôþí (Þ äéóêÝôá äéÜóùóçò - rescue disk), êáé êÜíôå mount ôï filesystem ðïõ ðåñéÝ÷åé ôï image ôïõ åíåñãïý ðõñÞíá : mkdir /mnt mount -t ext2 /dev/hda3 /mnt Áí ç mkdir óáò ðåé üôé ôï dir áõôü õðÜñ÷åé Þäç, áðëÜ áãíïÞóôå ôçí. Ôþñá, ðÜôå ìå cd óôï dir üðïõ âñéóêüôáíå ôï image ôïõ åíåñãïý ðõñÞíá. Óçìåéþóôå ðùò /mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot ÂÜëôå ìéÜ öïñìáñéóìÝíç äéóêÝôá óôï drive "A:" (ü÷é ôç äéóêÝôá boot Þ ôç root!), ñßîôå ôï image åðÜíù ôçò, êáé ñõèìßóôå ôï ãéÜ ôï root filesystem óáò : cd /mnt/src/linux/arch/i386/boot dd if=bzImage of=/dev/fd0 rdev /dev/fd0 /dev/hda1 ÌåôÜ, ãõñßóôå ìå cd óôï / êáé êÜíôå unmount ôï êáíïíéêü filesystem /usr : cd / umount /mnt Ôþñá, ëïãéêÜ ðñÝðåé íá ìðïñåßôå íá åðáíåêêéíÞóåôå ôïí Ç/Õ óáò êáíïíéêÜ áð' áõôÞ ôç äéóêÝôá. Ìçí îå÷Üóåôå íá ôñÝîåôå ôï lilo (Þ íá êÜíåôå óùóôÜ ü,ôé êÜíáôå ðñéí ëÜèïò) ìåôÜ ôçí åðáíåêêßíçóç! ¼ðùò ðñïáíáöÝñáìå, õðÜñ÷åé êáé ìéÜ Üëëç óõíçèéóìÝíç åíáëëáêôéêÞ ëýóç. Áí óõìâåß íá Ý÷åôå Ýíá áíôßãñáöï ôïõ åíåñãïý ðõñÞíá óôï / (ð÷ ôï /vmlinuz), ìðïñåßôå íá ôï ÷ñçóéìïðïéÞóåôå ãéÜ ìéÜ äéóêÝôá åêêßíçóçò. ÕðïèÝôïíôáò üëá ôá ðáñáðÜíù ùò óùóôÜ, êáé üôé ôï image ôïõ ðõñÞíá ïíïìÜæåôáé /vmlinuz, áëëÜîôå ôá åîÞò óôï ðáñáðÜíù ðáñÜäåéãìá : ÁëëÜîôå ôï /dev/hda3 óå /dev/hda1 (óôï filesystem /), ôï /mnt/src/linux óå /mnt, êáé ôï if=bzImage óå if=vmlinuz. (ÁãíïÞóôå ôç óçìåßùóç ðïõ ëÝåé ðþò íá öôéÜîåôå ôï /mnt/src/linux.) Ç ÷ñÞóç ôïõ LILO ìå ìåãÜëïõò äßóêïõò (ðÜíù áðü 1024 êõëßíäñùí) ìðïñåß íá ðñïîåíÞóåé ðñïâëÞìáôá. ÄéáâÜóôå ôï LILO mini-HOWTO, Þ ïðïéïäÞðïôå ó÷åôéêü êåßìåíï. [1m7.7. ËÝåé "warning: bdflush not running"[0m (Äçë. "ðñïåéäïðïßçóç : äåí ôñÝ÷åé ôï bdflush".) Áõôü ìðïñåß íá åßíáé óïâáñü ðñüâëçìá. Ìå áñ÷Þ êÜðïéá Ýêäïóç ôïõ ðõñÞíá ìåôáãåíÝóôåñç ôçò 1.0 (ãýñù óôéò 20 Áðñéëßïõ 1994), áíáâáèìßóèçêå êáé áíôéêáôáóôÜèçêå ôï ðñüãñáììá update (ôï ïðïßï áäåéÜæåé óå ðåñéïäéêÞ âÜóç ôá âïçèçôéêÜ áñ÷åßá ôïõ filesystem). ÐÜñôå ôïí source êþäéêá ôïõ bdflush (ìðïñåßôå íá ôïí âñåßôå åêåß, üðïõ õðÜñ÷åé êáé ï source êþäéêáò ôïõ ðõñÞíá), êáé åãêáôáóôÞóôå ôïí. (¼óï êÜíåôå ôçí åãêáôÜóôáóç, ðéèáíüôáôá íá èÝëåôå íá ôñÝ÷åé ï ðáëéüò ðõñÞíáò óáò.) Ôï ðñüãñáììá áõôü åãêáèßóôáôáé ùò update, êáé ìåôÜ ôçí åðáíåêêßíçóç ï íÝïò ðõñÞíáò äåí èá ðáñáðïíåèåß îáíÜ. [1m7.8. Äåí ìðïñþ íá âÜëù ôï IDE/ATAPI CD-ROM íá äïõëÝøåé[0m ÁñêåôÜ ðáñáäüîùò, áñêåôïß ÷ñÞóôåò äåí ìðïñïýí íá âÜëïõíå ôéò ìïíÜäåò ATAPI íá äïõëÝøïõí, åðåéäÞ åßíáé ðïëëÜ ôá ðñÜãìáôá ðïõ ðéèáíüí íá ìçí ðÜíå êáëÜ. ÅÜí ôï CD-ROM óáò åßíáé ç ìüíç óõóêåõÞ åðÜíù ó' Ýíá êáëþäéï IDE, ðñÝðåé íá ôï êÜíåôå (ìå ôïõò jumpers - âñá÷õêõêëùôÞñåò - óôï óáóß ôïõ) "master" Þ "single". Áõôü åßíáé ôï ðëÝïí óõíçèéóìÝíï ëÜèïò - áëëÜ åíôåëþò õðïèåôéêÜ. ÃéÜ ðáñÜäåéãìá, ç åôáéñßá Creative Labs Ý÷åé âÜëåé äéáóõíäÝóåéò IDE åðÜíù óôéò êÜñôåò Þ÷ïõ ðïõ ðáñÜãåé. Ùóôüóï, áõôü ïäçãåß óôï åíäéáöÝñïí ðñüâëçìá üôé, åíþ ìåñéêïß ÷ñÞóôåò Ý÷ïõíå ìüíï ìßá äéáóýíäåóç IDE, áñêåôïß Ý÷ïõíå äýï áð áõôÝò åðÜíù óôç motherboard ôïõò (óõíÞèùò óôçí IRQ15), Üñá ç äéáóýíäåóç óôéò êÜñôåò SoundBlaster ãßíåôáé ç ôñßôç IDE (ðïëëÝò öïñÝò óôçí IRQ11). Áõôü ðñïîåíåß ðñïâëÞìáôá óôï Linux, åðåéäÞ ïé åêäüóåéò 1.2.x äåí õðïóôçñßæïõí ôñßôç äéáóýíäåóç IDE. (Ç ó÷åôéêÞ õðïóôÞñéîç îåêéíÜåé êÜðïõ óôéò åêäüóåéò 1.3.x , áëëÜ èõìçèåßôå üôé áõôÝò åßíáé åêäüóåéò áíÜðôõîçò, êáé äåí êÜíïõí áõôüìáôç áíß÷íåõóç ðåñéöåñåéáêþí.) (Ó.ô.ì. : Ôï Linux Ý÷åé âåëôéùèåß ðïëý áðü ôüôå ðïõ ãñÜöôçêå ôï ðáñüí HowTo, áëëÜ óôçí ðñÜîç åîáêïëïõèåß íá ðáñáìÝíåé ðïëý óðÜíéá ç áíÜãêç ãéÜ 3ç IDE.) ÃéÜ íá îåðåñÜóåôå áõôüí ôïí óêüðåëï, Ý÷åôå êÜðïéåò åðéëïãÝò : Áí Þäç Ý÷åôå äåýôåñç IDE, ðéèáíüôáôá Þ äåí ôçí ÷ñçóéìïðïéåßôå, Þ äåí Ý÷åé äýï ìïíÜäåò äßóêïõ - cdrom åðÜíù ôçò. ÐÜñôå ôç ìïíÜäá ATAPI áðü ôçí êÜñôá Þ÷ïõ, êáé âÜëôå ôçí åðÜíù óôç äåýôåñç IDE. ÌåôÜ, áðåíåñãïðïéåßóôå ôçí IDE ôçò êÜñôáò Þ÷ïõ (êáé åîïéêïíïìÞóôå Ýôóé ìßá IRQ). Áí äåí Ý÷åôå äåýôåñç IDE, êáëùäéþóôå ìå ôïõò jumpers ôçí IDE ôçò êÜñôáò Þ÷ïõ (ü÷é ôï ìÝñïò ðïõ Ý÷åé íá êÜíåé ìå ôéò ëåéôïõñãßåò Þ÷ïõ!) óôçí IRQ15, þóôå íá ãßíåé äåýôåñç IDE. Áõôü ôï ó÷Þìá ðñÝðåé íá äïõëåýåé êáíïíéêÜ. [1m7.9. ËÝåé ðáñÜîåíá ðñÜãìáôá ãéÜ êáôáñãçìÝíåò áéôÞóåéò routing[0m Âñåßôå ôéò íÝåò åêäüóåéò ôïõ ðñïãñÜììáôïò route, êáèþò êáé üðïéïõ Üëëïõ ðñïãñÜììáôïò ÷åéñßæåôáé ôï routing. ¸÷åé áëëÜîåé ôï /usr/include/linux/route.h (ôï ïðïßï åßíáé Ýíá áñ÷åßï óôï /usr/src/linux). [1m7.10. Ôï firewalling äåí äïõëåýåé óôçí Ýêäïóç 1.2.0[0m Áíáâáèìéóôåßôå ôïõëÜ÷éóôïí óôçí Ýêäïóç 1.2.1 . [1m7.11. "Not a compressed kernel Image file"[0m (Äçë. "Äåí ðñüêåéôáé ãéÜ óõìðéåóìÝíï image ôïõ ðõñÞíá".) Ìçí ÷ñçóéìïðïéÞóåôå ãéÜ bootÜñéóìá ôï áñ÷åßï vmlinux ðïõ äçìéïõñãÞèçêå óôï /usr/src/linux. Ôï óùóôü åßíáé ôï [..]/arch/i386/boot/bzImage. [1m7.12. ÐñïâëÞìáôá ìå ôï ôåñìáôéêü êïíóüëáò (console terminal) ìåôÜ ôçí[0m [1máíáâÜèìéóç óå 1.3.x[0m Óôç ãñáììÞ ãéÜ ôçí console termcap ôïõ áñ÷åßïõ /etc/termcap, áëëÜîôå ôç ëÝîç dumb óå linux. ºóùò ÷ñåéáóôåß íá äþóåôå êáé ìßá ó÷åôéêÞ ãñáììÞ terminfo. [1m7.13. Äåí ìðïñþ íá êÜíù compile, áöïý áíáâÜèìéóá ôïí ðõñÞíá[0m Ï source êþäéêáò ôïõ ðõñÞíá ôïõ Linux ðåñéëáìâÜíåé êÜìðïóá áñ÷åßá include (áõôÜ ðïõ Ý÷ïõí êáôÜëçîç .h) óôï dir /usr/include, óôá ïðïßá êáé áíáöÝñïíôáé ôá õðüëïéðá. Ç ôõðéêÞ êëÞóç ôùí áñ÷åßùí áõôþí ãßíåôáé ùò åîÞò (üðïõ xyzzy.h åßíáé ïðïéïäÞðïôå áñ÷åßï include ìÝóá óôï /usr/include/linux) : #include <linux/xyzzy.h> ÊáíïíéêÜ, õðÜñ÷åé óôï /usr/include ôï link linux ðñïò ôï directory include/linux ôïõ source êþäéêá ôïõ ðõñÞíá óáò (óõíÞèùò /usr/src/linux/include/linux). Áí áõôü ôï link äåí âñßóêåôáé åêåß, Þ äåß÷íåé ðñïò ëÜèïò ìÝñïò, ôá ðåñéóóüôåñá áñ÷åßá äåí ìðïñïýí íá ãßíïõí compile. Áí áðïöáóßóáôå üôé ï source êþäéêáò ôïõ ðõñÞíá ôñþåé ÷þñï óôïí äßóêï, êáé ôïí óâÞóáôå, áõôü ðéèáíüôáôá è' áðïôåëÝóåé ðñüâëçìá. ÌéÜ áêüìç áéôßá ðñïâëçìÜôùí, åßíáé ïé Üäåéåò ÷ñÞóçò ôùí áñ÷åßùí. ÅÜí ôï dir root Ý÷åé åî ïñéóìïý umask, ðïõ äåí åðéôñÝðåé óå Üëëïõò ÷ñÞóôåò íá äïýíå ôá ðåñéå÷üìåíÜ ôïõ, êáé áíïßîáôå ôïí source êþäéêá ôïõ ðõñÞíá ÷ùñßò ôçí ðáñÜìåôñï p (preserve filemodes - äéáôÞñçóç ôïõ ôñüðïõ ëåéôïõñãßáò ôùí áñ÷åßùí), áõôïß ïé óõãêåêñéìÝíïé ÷ñÞóôåò äåí èá ìðïñÝóïõí íá ÷ñçóéìïðïéÞóïõí ìåôÜ ôïí compiler ôçò ãëþóóáò C. Áí êáé ìðïñåßôå íá äþóåôå ôçí åíôïëÞ chmod ãéÜ íá äéïñèþóåôå áõôÞ ôçí êáôÜóôáóç, åßíáé ìÜëëïí åõêïëüôåñï íá îáíáíïßîåôå ôá áñ÷åßá include. Áõôü ãßíåôáé ìå ôïí ßäéï ôñüðï ðïõ áíïßîáôå üëïí ôïí source êþäéêá ôïõ ðõñÞíá óôçí áñ÷Þ, ìüíï ðïõ Ý÷åé ìéÜ ðáñÜìåôñï ðáñáðÜíù : blah# tar zxvpf linux.x.y.z.tar.gz linux/include Óçìåßùóç : Ç "make config" èá îáíáöôéÜîåé ôï link ðñïò ôï /usr/src/linux, åÜí áõôü äåí õðÜñ÷åé. [1m7.14. ÁõîÜíïíôáò ôá üñéá[0m Ïé áêüëïõèåò, [4mùò[24m [4mðáñÜäåéãìá[24m åíôïëÝò, ìðïñåß íá öáíïýí ÷ñÞóéìåò ó' üóïõò ñùôÜíå ðþò áõîÜíïíôáé êÜðïéá üñéá, ðïõ âÜæåé ï ðõñÞíáò áðü ìüíïò ôïõ : echo 4096 > /proc/sys/kernel/file-max echo 12288 > /proc/sys/kernel/inode-max echo 300 400 500 > /proc/sys/vm/freepages [1m8. Óçìåßùóç ãéÜ áíáâáèìßóåéò ðñïò Ýêäïóç 2.0.x, 2.2.x[0m Ïé åêäüóåéò 2.0.x êáé 2.2.x ôïõ ðõñÞíá Ýöåñáí êÜìðïóåò áëëáãÝò óôïí ôñüðï åãêáôÜóôáóÞò ôïõ. Ôï áñ÷åßï Documentation/Changes óôï äÝíôñï dirs ôïõ source êþäéêá ôùí åêäüóåùí 2.0.x ðåñéÝ÷åé ðëçñïöïñßåò ðïõ ðñÝðåé íá îÝñåôå, áí êÜíåôå áíáâÜèìéóç ðñïò ïðïéáäÞðïôå áðü ôéò äýï áõôÝò åêäüóåéò. Ðéèáíüôáôá èá ÷ñåéáóôåß íá áíáâáèìßóåôå áñêåôÜ âáóéêÜ ðáêÝôá, üðùò ôá gcc, libc, SysVInit, êáé ßóùò í' áëëÜîåôå ìåñéêÜ áñ÷åßá, åðïìÝíùò ðñÝðåé íá áíáìÝíåôå ôÝôïéåò áëëáãÝò. Ùóôüóï, ìçí ðáíéêïâÜëëåóôå. [1m9. Modules[0m Ôá modules ôïõ ðõñÞíá ðïõ öïñôþíïíôáé (loadable), óõíÞèùò êÜíïõí ïéêïíïìßá óôç ìíÞìç êáé äéåõêïëýíïõí ôéò ñõèìßóåéò. Ôï ðåäßï ôùí modules Ý÷åé ìåãáëþóåé, þóôå óÞìåñá ðåñéëáìâÜíåé filesystems, drivers êáñôþí äéêôýïõ, drivers ìïíÜäùí ìáãíçôéêÞò ôáéíßáò, drivers åêôõðùôþí, êáé Üëëá. [1m9.1. Åãêáèéóôþíôáò ôéò utilities ãéÜ ôá modules[0m Ïé utilities ãéÜ ôá modules åßíáé äéáèÝóéìåò (ùò áñ÷åßï modutils- x.y.z.tar.gz) áðü åêåß, üðïõ ðÞñáôå ôïí source êþäéêá ôïõ ðõñÞíá. ÄéáëÝîôå ôçí ðëÝïí ðñüóöáôç Ýêäïóç x.y.z ôïõ ó÷åôéêïý patch, ç ïðïßá åßíáé ßóç ìå (Þ áìÝóùò ðáñáêÜôù áðü) ôçí Ýêäïóç ôïõ ðõñÞíá óáò. Áíïßîôå ôï ìå tar zxvf modutils-x.y.z.tar.gz, ðÜôå ìå cd óôï directory ðïõ äçìéïõñãÞèçêå (modutils-x.y.z), äéáâÜóôå ôï README, êáé áêïëïõèÞóôå ôéò ïäçãßåò åãêáôÜóôáóçò (ðïõ óõíÞèùò åßíáé áðëÝò, ð÷ êÜôé óáí make install). Ôþñá, êáíïíéêÜ ðñÝðåé íá Ý÷åôå ôá ðñïãñÜììáôá insmod, rmmod, ksyms, lsmod, genksyms, modprobe, êáé depmod óôï dir /sbin. Áí èÝëåôå, êÜíôå ìéÜ äïêéìÞ óôéò utilities áõôÝò ìå ôïí driver "hw", ðïõ ðåñéëáìâÜíåôáé óôçí insmod ùò ðáñÜäåéãìá. ÃéÜ ëåðôïìÝñåéåò, øÜîôå ôï áñ÷åßï INSTALL óôï ó÷åôéêü subdir. Ç insmod âÜæåé Ýíá module óôïí åíåñãü ðõñÞíá. Ôá modules óõíÞèùò Ý÷ïõíå åðÝêôáóç .o . Ï driver äïêéìþí ðïõ ðñïáíáöÝñáìå, ïíïìÜæåôáé drv_hello.o. ÅðïìÝíùò, ãéÜ íá ôïí âÜëïõìå óôïí ðõñÞíá, èá äþóïõìå insmod drv_hello.o. ÃéÜ íá äïýìå ðïéÜ modules ÷ñçóéìïðïéåß áõôÞ ôç óôéãìÞ ï ðõñÞíáò ìáò, äßíïõìå lsmod. Ç Ýîïäïò åßíáé êÜðùò Ýôóé : blah# lsmod Module: #pages: Used by: drv_hello 1 Ôï drv_hello åßíáé ôï üíïìá ôïõ module, êáôáëáìâÜíåé ìéÜ óåëßäá ôùí 4k ìíÞìçò, êáé ðñïò ôï ðáñüí äåí õðÜñ÷ïõí Üëëá modules ðïõ åîáñôþíôáé áð' áõôü. ÃéÜ íá ôï áöáéñÝóïõìå, äßíïõìå rmmod drv_hello. Óçìåéþóôå üôé ç rmmod ÷ñåéÜæåôáé [4müíïìá[24m [4mmodule[24m ùò üñéóìá, ü÷é üíïìá áñ÷åßïõ. Ôï üíïìá ôïõ module ôï ðáßñíåôå áðü ôç ëßóôá ôïõ lsmod. Ï óêïðüò ôùí õðïëïßðùí utilities ãéÜ ôá modules áíáöÝñåôáé óôéò áíôßóôïé÷åò óåëßäåò man. [1m9.2. Modules ðïõ äéáíÝìïíôáé ìáæß ìå ôïí ðõñÞíá[0m Áðü ôçí Ýêäïóç 2.0.30, ôá ðåñéóóüôåñá ðáêÝôá åßíáé äéáèÝóéìá ùò loadable modules. ÃéÜ íá ôá ÷ñçóéìïðïéÞóåôå, ðñþôá âåâáéùèåßôå üôé äåí ôá Ý÷åôå óôÞóåé ìáæß ìå ôïí ðõñÞíá. ÄçëáäÞ, ìçí áðáíôÜôå y ãé' áõôÜ, êáôÜ ôç äéÜñêåéá ôçò make config. ÊÜíôå compile Ýíáí íÝï ðõñÞíá, êáé åðáíåêêéíÞóôå ì' áõôüí. ÌåôÜ, îáíáðÜôå ìå cd óôï /usr/src/linux, êáé äþóôå make modules. Áõôü êÜíåé compile üëá ôá modules ðïõ äåí âÜëáôå óôï óôÞóéìï ôïõ ðõñÞíá, êáé ôïðïèåôåß links ðñïò áõôÜ óôï /usr/src/linux/modules. Ìðïñåßôå íá ôá ÷ñçóéìïðïéÞóåôå êáôåõèåßáí áðü ôï dir áõôü, Þ íá äþóåôå make modules_install, ðïõ èá ôá åãêáôáóôÞóåé óôï dir /lib/modules/x.y.z (üðïõ x.y.z åßíáé ç Ýêäïóç ôïõ ðõñÞíá). Áõôü åßíáé ðïëý åýêïëï åéäéêÜ ìå ôá filesystems. Ð÷, ðéèáíüôáôá äåí èá ÷ñçóéìïðïéÞóåôå óõ÷íÜ ôá filesystems minix êáé msdos, êáé, áí ðñïóùðéêÜ åýñéóêá ìéÜ äéóêÝôá msdos (ìðññññ!!!), èá Ýäéíá insmod /usr/src/linux/modules/msdos.o, êáé ìåôÜ rmmod msdos. ÁõôÞ ç äéáäéêáóßá åîïéêïíïìåß ðåñßðïõ 50k RAM óôïí ðõñÞíá êáôÜ ôçí õðüëïéðç ëåéôïõñãßá ôïõ. Åäþ åðéâÜëëåôáé ìéÜ ìéêñÞ óçìåßùóç ãéÜ ôï filesystem minix : [4mÐÜíôá[24m íá ôï óôÞíåôå êáôåõèåßáí ìÝóá óôïí ðõñÞíá, üôáí ðñüêåéôáé ãéÜ ÷ñÞóç óå äéóêÝôåò "äéÜóùóçò". [1m10. ÓõìâïõëÝò êáé êüëðá[0m [1m10.1. Åðáíáêáôåýèõíóç ôçò åîüäïõ ôùí åíôïëþí make êáé patch[0m Áí èÝëåôå êáôáãñáöÞ ôïõ ôß êÜíáíå ïé åíôïëÝò make êáé patch, ìðïñåßôå íá åðáíáêáôåõèýíåôå ôçí Ýîïäï ðñïò Ýíá áñ÷åßï. Ðñþôá, äåßôå ôß êÝëõöïò (shell) ôñÝ÷åé : Äþóôå grep root /etc/passwd, êáé øÜîôå ãéÜ êÜôé óáí /bin/csh. Áí ÷ñçóéìïðïéåßôå ôï sh Þ ôï bash, äßíïíôáò : (command) 2>&1 | tee (output file) èá ðÜñåôå Ýíá áíôßãñáöï ôçò åîüäïõ ôçò (command) ( = åíôïëÞò) óôï áñ÷åßï (output file) ( = áñ÷åßï åîüäïõ). ÃéÜ ôá csh êáé tcsh, äþóôå : (command) |& tee (output file) ÃéÜ ôï rc (óçìåßùóç : ôï ïðïßï ðéèáíüôáôá äåí ÷ñçóéìïðïéåßôå) äþóôå : (command) >[2=1] | tee (output file) [1m10.2. ÅãêáôÜóôáóç ôïõ ðõñÞíá õðü ðñïûðïèÝóåéò[0m Åêôüò áðü ôç ÷ñÞóç äéóêåôþí, õðÜñ÷ïõí áñêåôÝò ìÝèïäïé íá ôåóôÜñïõìå Ýíáí íÝï ðõñÞíá ÷ùñßò íá ðåéñÜæïõìå ôïí ðáëéü. Áíôßèåôá ìå ü,ôé óõìâáßíåé óå Üëëåò ðáñáëëáãÝò ôïõ Unix, ôï LILO Ý÷åé ôçí éêáíüôçôá íá bootÜñåé ôïí ðõñÞíá áð' ïðïõäÞðïôå óôïí óêëçñü. (Áí Ý÷åôå äßóêï ìåãáëýôåñï ôùí 500 MBytes, ðáñáêáëþ äéáâÜóôå óôçí ôåêìçñßùóç ôïõ LILO ôéò ðéèáíÝò áéôßåò ðñïâëçìÜôùí.) ÅðïìÝíùò, áí ðñïóèÝóåôå êÜôé ðïõ ìïéÜæåé ìå image = /usr/src/linux/arch/i386/boot/bzImage label = new_kernel óôï ôÝëïò ôïõ áñ÷åßïõ ñõèìßóåùí ôïõ LILO, èá ìðïñÝóåôå íá äïêéìÜóåôå Ýíáí íÝï ðõñÞíá, ÷ùñßò í' áêïõìðÞóåôå ôïí ðáëéü óáò /vmlinuz (öõóéêÜ, áöïý ôñÝîåôå ôï lilo). Ï åõêïëüôåñïò ôñüðïò íá ðïýìå óôï LILO íá bootÜñåé Ýíáí íÝï ðõñÞíá, åßíáé íá ðáôÞóïõìå ôï ðëÞêôñï shift êáôÜ ôçí åêêßíçóç (üôáí ãñÜöåé LILO óôçí ïèüíç, êáé ôßðïôå Üëëï), ðñÜãìá ðïõ óáò âãÜæåé óå ìéÜ áíáìïíÞ (prompt). Åäþ ìðïñåßôå íá ðëçêôñïëïãÞóåôå new_kernel (äçë. ôï üíïìá ôïõ íÝïõ ðõñÞíá), þóôå íá bootÜñåé ï íÝïò ðõñÞíáò. Áí èÝëåôå íá Ý÷åôå óôïí Ç/Õ óáò ôáõôü÷ñïíá ðåñéóóüôåñá áðü Ýíá äÝíôñá source êþäéêá ðõñÞíá (üìùò, ðñïóÝîôå : áõôü ìðïñåß íá öÜåé [4mðïëý[24m ÷þñï äßóêïõ), ï ðëÝïí óõíçèéóìÝíïò ôñüðïò åßíáé íá ôá ïíïìÜóåôå /usr/src/linux-x.y.z, üðïõ x.y.z åßíáé ç Ýêäïóç ôïõ ðõñÞíá. ÌåôÜ, ìðåßôå íá "äéáëÝîåôå" Ýíá äÝíôñï source êþäéêá ì' Ýíáí óõìâïëéêü äåóìü (symbolic link). Ð÷, äßíïíôáò ln -sf linux-1.2.2 /usr/src/linux, åíåñãïðïéïýìå ôï äÝíôñï 1.2.2 . Ðñéí öôéÜîïõìå Ýíá symbolic link, âåâáéùíüìáóôå üôé ç ôåëåõôáßá ðáñÜìåôñïò ôçò ln äåí åßíáé Ýíá ðñáãìáôéêü directory (ïé ðáëéïß symbolic links åßíáé ìéÜ ÷áñÜ), äéüôé ôá áðïôåëÝóìáôá äåí èá åßíáé áõôÜ ðïõ ðåñéìÝíïõìå. [1m10.3. Áíáíåþóåéò ôïõ ðõñÞíá[0m Ï Russell Nelson (nelson@crynwr.com) êÜíåé ðåñéëÞøåéò ôùí áëëáãþí óôéò íÝåò åêäüóåéò ôïõ ðõñÞíá. ÁõôÝò åßíáé óýíôïìåò, êáé ìÜëëïí ðñÝðåé íá ôéò äéáâÜóåôå ðñéí áðü ìéÜ áíáâÜèìéóç. Åßíáé äéáèÝóéìåò ìå áíþíõìï ftp áðü ôï ftp.emlist.com (óôï dir pub/kchanges), Þ áðü ôï site http://www.crynwr.com/kchanges [1m11. ¶ëëá ó÷åôéêÜ HOWTOs ðïõ ìðïñåß íá öáíïýí ÷ñÞóéìá[0m · Sound-HOWTO : êÜñôåò Þ÷ïõ êáé ó÷åôéêÝò utilities · SCSI-HOWTO : üëá ôá ó÷åôéêÜ ìå SCSI controllers êáé óõóêåõÝò · NET-2-HOWTO : äéêôýùóç · PPP-HOWTO : åéäéêÜ ç äéêôýùóç ìå PPP · PCMCIA-HOWTO : ïé drivers ãéÜ ôïí öïñçôü óáò · ELF-HOWTO : Ôß åßíáé ôï ELF, ó÷åôéêÝò ìåôáôñïðÝò · Hardware-HOWTO : ãåíéêÞ åðéóêüðçóç ôïõ õðïóôçñéæüìåíïõ hardware · Module mini-HOWTO : ðåñéóóüôåñá ãéÜ ôá modules ôïõ ðõñÞíá · Kerneld mini-HOWTO : ó÷åôéêÜ ìå ôïí daemon kerneld · BogoMips mini-HOWTO : áí áíáñùôéÝóôå... (ãéÜ ôçí áðüäïóç ôïõ Ç/Õ) [1m12. ÄéÜöïñá[0m [1m12.1. ÓõããñáöÝáò[0m Ï óõããñáöÝáò êáé óõíôçñçôÞò ôïõ Linux Kernel-HOWTO åßíáé ï Brian Ward (bri@cs.uchicago.edu). Ðáñáêáëþ, óôåßëôå ìïõ ó÷üëéá, ðñïóáñôÞìáôá, äéïñèþóåéò (åéäéêÜ áõôÝò ìïõ åßíáé ïé ðëÝïí ÷ñÞóéìåò). Ìðïñåßôå íá ñßîåôå ìéÜ ìáôéÜ óôç óåëßäá ìïõ, óå êÜðïéï áðü ôá åîÞò URLs : http://www.math.psu.edu/bri/ http://blah.math.tu-graz.ac.at/~bri/ Áí êáé ðñïóðáèþ íá äßíù ðñïóï÷Þ óôá mails ìïõ, ðáñáêáëþ íá èõìÜóôå üôé ðáßñíù [4mðïëëÜ[24m áð' áõôÜ êÜèå ìÝñá, Üñá ìðïñåß í' áñãÞóù ëßãï íá óáò áðáíôÞóù. ÅéäéêÜ üôáí ìïõ óôÝëíåôå åñùôÞóåéò, ðáñáêáëþ íá åêöñÜæåóôå ìå üóç óáöÞíåéá êáé ëåðôïìÝñåéá ìðïñåßôå. ÅÜí ãñÜöåôå ãéÜ harware ðïõ äåí äïõëåýåé (Þ ãéÜ ðáñüìïéá èÝìáôá), ðñÝðåé íá îÝñù ôß hardware Ý÷åôå. Áí Ý÷åôå íá ìïõ áíáöÝñåôå êÜðïéï óöÜëìá ëåéôïõñãßáò, ìç ëÝôå áðëÜ "ðñïóðÜèçóá áõôü êé áõôü, áëëÜ Ýäùóå ëÜèïò". ÐñÝðåé íá îÝñù ôß ëÜèïò Þôáíå áõôü. Åðßóçò, ðñÝðåé íá ãíùñßæù ðïéåò åêäüóåéò ðõñÞíá, gcc, êáé libc Ý÷åôå. Áí áðëÜ ìïõ ãñÜøåôå üôé ÷ñçóéìïðïéåßôå ôçí ôÜäå äéáíïìÞ, áõôü äåí ìïõ ëÝåé ðïëëÜ. ÔÝëïò, ïé áðëÝò åñùôÞóåéò äåí ìå ðåéñÜæïõí, äéüôé áí äåí ñùôÞóåôå, ðïôÝ äåí èá ðÜñåôå áðÜíôçóç! Èá Þèåëá íá åõ÷áñéóôÞóù ôïí êáèÝíá ðïõ ìïõ Ýóôåéëå e-mail. Áí ç åñþôçóÞ óáò äåí ó÷åôßæåôáé ìå ôïí ðõñÞíá, Þ åßíáé ãñáììÝíç óå ãëþóóá ðïõ äåí êáôáëáâáßíù, äåí èá áðáíôÞóù. Áí ìïõ ãñÜøáôå êáé äåí ðÞñáôå áðÜíôçóç óå ëïãéêü ÷ñïíéêü äéÜóôçìá (äçë. ðåñßðïõ ôñåßò åâäïìÜäåò), ôüôå ðéèáíüôáôá Ýóâçóá êáôÜ ëÜèïò ôï e-mail óáò. Óõãíþìç. Ðáñáêáëþ, îáíáðñïóðáèÞóôå. Ðáßñíù ðïëëÜ e-mails ó÷åôéêÜ ìå ðñÜãìáôá, ðïõ ïõóéáóôéêÜ åßíáé ðñïâëÞìáôá Þ èÝìáôá ôïõ hardware. Áõôü åßíáé ok, áëëÜ ðáñáêáëþ íá èõìÜóôå üôé äåí ãíùñßæù üëï ôï hardware ôïõ êüóìïõ. ÐñïóùðéêÜ ÷ñçóéìïðïéþ AMD ðñïóÝóóïñåò, Adaptec êáé Sybios SCSI controllers, êáé äßóêïõò IBM SCSI. Ç Ýêäïóç -0.1 áõôïý åäþ ôïõ HowTo ãñÜöôçêå óôéò 3 Ïêôùâñßïõ 1994. Áõôü ôï êåßìåíï åßíáé äéáèÝóéìï óå ìïñöÞ SGML, PostScript, TeX, roff, êáé óêÝôï text. [1m12.2. Ðñïò åíÝñãåéá[0m Ç åíüôçôá "ÓõìâïõëÝò êáé êüëðá" åßíáé ëßãï ìéêñÞ. Åëðßæù íá ôçí åðåêôåßíù ìÝóù óõìâïõëþí Üëëùí. Ôï ßäéï êáé ôá "ÅðéðëÝïí ðáêÝôá". ×ñåéÜæïíôáé êé Üëëá åðÜíù óôá èÝìáôá debugging êáé crash recovery ( = åðáíáëåéôïõñãßá ôïõ Ç/Õ ìåôÜ áðü êñÝìáóìá). [1m12.3. ÓõíåéóöïñÝò[0m ÐåñéÝëáâá Ýíá ìéêñü ìÝñïò ôïõ README ôïõ Linus (ôï ÷Üêåìá ôïõ ðõñÞíá). Åõ÷áñéóôþ, Linus! uc@brian.lunetix.de (Ulrich Callmeier) : ÃéÜ ôçí patch -s êáé ôçí xargs. quinlan@yggdrasil.com (Daniel Quinlan) : Äéïñèþóåéò êáé ðñüóèåôá êïììÜôéá óå áñêåôÝò åíüôçôåò. nat@nat@nataa.fr.eu.org (Nat Makarevitch) : ÃéÜ ôéò mrproper, tar -p, êáé ðïëëÜ Üëëá. boldt@math.ucsb.edu (Axel Boldt) : ÓõãêÝíôñùóå ðåñéãñáöÝò áðü ôï Internet ãéÜ ôéò ñõèìßóåéò ôïõ ðõñÞíá, êáé ìïõ Ýäùóå ôç ëßóôá. lembark@wrkhors.psyber.com (Steve Lembark) : Õðïäåßîåéò ãéÜ ôï ðïëëáðëü bootÜñéóìá. kbriggs@earwax.pd.uwa.edu.au (Keith Briggs) : Äéïñèþóåéò êáé õðïäåßîåéò. rmcguire@freenet.columbus.oh.us (Ryan McGuire) : ðñüóèåôá êïììÜôéá ãéÜ ôá makeables. dumas@excalibur.ibp.fr (Eric Dumas) : ÌåôÜöñáóç óôá ÃáëëéêÜ. simazaki@ab11.yamanashi.ac.jp (Yasutada Shimazaki) : ÌåôÜöñáóç óôá ÉáðùíéêÜ. jjamor@lml.ls.fi.upm.es (Juan Jose Amor Iglesias) : ÌåôÜöñáóç óôá ÉóðáíéêÜ. mva@sbbs.se (Martin Wahlen) : ÌåôÜöñáóç óôá ÓïõçäéêÜ. jzp1218@stud.u-szeged.hu (Zoltan Vamosi) : ÌåôÜöñáóç óôá ÏõããñéêÜ. bart@mat.uni.torun.pl (Bartosz Maruszewski): ÌåôÜöñáóç óôá ÐïëùíéêÜ. donahue@tiber.nist.gov (Michael J Donahue) : ÔõðïãñáöéêÜ ëÜèç, íéêçôÞò ôïõ "äéáãùíéóìïý öÝôáò øùìéïý". rms@gnu.ai.mit.edu (Richard Stallman) : Ç óçìåßùóç ôçò "åëåýèåñçò" ôåêìçñßùóçò êáé äéáíïìÞò. dak@Pool.Informatik.RWTH-Aachen.DE (David Kastrup) : Ôá ôïõ NFS. esr@snark.thyrsus.com (Eric Raymond) : ÄéÜöïñá êïììÜôéá. Åðßóçò, ìå âïÞèçóáí áñêåôÜ êáé üóïé ìïõ Ýóôåéëáí mails ìå åñùôÞóåéò êáé ðñïâëÞìáôá. [1m12.4. Copyright, Üäåéá ÷ñÞóçò, êáé ôá ðáñüìïéá[0m Copyright (C) Brian Ward, 1994-1999. Äßäåôáé Üäåéá íá öôéÜîåôå êáé íá äéáíåßìåôå áíôßãñáöá áõôïý ôïõ êåéìÝíïõ, áñêåß íá äéáôçñåßôå ôéò óçìåéþóåéò ãéÜ ôï copyright êáé ãéÜ ôçí Üäåéá áõôÞí åäþ åðÜíù óå üëá ôá áíôßãñáöá. Äßäåôáé Üäåéá íá áíôéãñÜøåôå êáé íá äéáíåßìåôå ôñïðïðïéçìÝíåò åêäüóåéò áõôïý ôïõ êåéìÝíïõ ìå ôïí üñï ôçò êáôÜ ëÝîç áíôéãñáöÞò, áñêåß ç ðáñÜãùãç åñãáóßá íá äéáíÝìåôáé õðü ôïõò üñïõò ìéáò Üäåéáò áêñéâþò ßäéáò ìå áõôÞí åäþ. Ïé ìåôáöñÜóåéò õðÜãïíôáé óôçí êáôçãïñßá "ôñïðïðïéçìÝíåò åêäüóåéò". Åããýçóç : Êáììßá. ÓõóôÜóåéò : Ç åìðïñéêÞ áíáäéáíïìÞ åðéôñÝðåôáé êáé åíèáññýíåôáé. Ùóôüóï, èåñìÜ óõíßóôáôáé ï áíáäéáíïìÝáò íá åðéêïéíùíÞóåé ìå ôïí óõããñáöÝá ðñéí ôçí áíáäéáíïìÞ, þóôå íá Ý÷ïõìå óýã÷ñïíåò åêäüóåéò. (Ìðïñåßôå íá ìïõ óôåßëåôå Ýíá áíôßãñáöï áõôïý ðïõ åôïéìÜæåôå, åíüóù ôï åôïéìÜæåôå.) Åðßóçò, ïé ìåôáöñáóôÝò ðáñáêáëïýíôáé íá åðéêïéíùíïýí ìå ôïí óõããñáöÝá ðñéí ôç ìåôÜöñáóç. Ç Ýíôõðç ìïñöÞ åßíáé ðéï üìïñöç. Áíáêõêëþóôå.