תבנית:התקנת ג'נטו - פרק 7
מתוך הויקי של ג'נטו.
תוכן העניינים |
[עריכה] קביעת תצורת הקרנל
[עריכה] איזור זמן
קודם עלייך לבחור את איזור הזמן שלך כדי שהמערכת תדע היכן היא ממוקמת. חפש אחר איזור הזמן שלך ב-/usr/share/zoneinfo, ואז צור קישור (symbolic link) אל /etc/localtime באמצעות הפקודה ln:
| קוד: הגדרת מידע איזור זמן |
# ls /usr/share/zoneinfo (נניח שאתה באיזור הזמן של ישראל) # ln -sf /usr/share/zoneinfo/Israel /etc/localtime |
[עריכה] התקנת קוד המקור
[עריכה] בחירת קרנל
הליבה של כל הפצות הלינוקס היא הקרנל של לינוקס. זוהי השכבה בין תוכנות המשתמש לבין חומרת המחשב. ג'נטו נותנת למשתמשיה מספר חבילות קוד מקור של קרנלים. רשימה מלאה עם תיאור של כל אחד ואחד מהם ניתן למצוא ב-Gentoo Kernel Guide.
עבור מערכות מבוססות x86, יש לנו, בין השאר, את vanilla-sources (קוד המקור של הקרנל בברירת המחדל, אשר פותח על ידי מפתחי הקרנל של לינוקס), gentoo-sources (קוד המקור של הקרנל שהוטלא עם תכונות המשפרות ביצועים), ועוד...
בחר את קוד המקור הרצוי לך, והתקן אותו באמצעות emerge.
| קוד: התקנת קוד המקור של הקרנל |
|
emerge gentoo-sources |
כאשר תביט ב-/usr/src תוכל לראות קישור (symlink) שנקרא linux אשר יצביע לקוד המקור של הקרנל שבחרת. אנו נניח שהגירסא שהותקנה היא gentoo-sources-2.6.11-r3:
| קוד: הצגת הקישור לקוד המקור של הקרנל |
# ls -l /usr/src/linux lrwxrwxrwx 1 root root 12 Oct 13 11:04 /usr/src/linux -> linux-2.6.11-gentoo-r3 |
אם הקישור אינו מפנה לקרנל שבחרת (שים לב ש-linux-2.6.11-gentoo-r3 זו רק דוגמא), אתה צריך לשנות את הקישור אל הקרנל הנכון:
| קוד: שינוי הקישור אל קוד המקור של הקרנל |
# rm /usr/src/linux # cd /usr/src # ln -s linux-2.6.11-gentoo-r3 linux |
כעת הגיע הזמן לקבוע את התצורה ולהדר את קוד המקור של הקרנל שלך. אתה יכול להשתמש ב-genkernel לשם כך, דבר אשר יבנה עבורך קרנל גנרי כמו זה שיש על תקליטור ההתקנה. אנו נסביר קודם לכן את הדרך ה"ידנית" לביצוע התצורה, כיוון שהיא הדרך הטובה ביותר לקבל סביבה מכווננת היטב.
אם אתה מעוניין להגדיר באופן ידני את הקרנל שלך, המשך עם ברירת מחדל: קביעת תצורה ידנית. אם אתה מעוניין להשתמש ב-genkernel, המשך עם אלטרנטיבה: שימוש ב-genkernel.
[עריכה] ברירת מחדל: קביעת תצורה ידנית
[עריכה] הקדמה
קביעת התצורה של הקרנל לרוב נחשבת ההליך המסובך ביותר שמשתמש לינוקס עשוי לבצע לעולם. שום דבר הוא לא נכון פחות מזה - אחרי קביעת תצורה של מספר קרנלים, אתה בכלל לא תזכור שחשבת שזה היה קשה ;)
למרות זאת, משהו אחד כן נכון: אתה חייב להכיר את המערכת שלך כשאתה קובע את תצורת הקרנל באופן ידני. את רוב המידע ניתן למצוא על ידי התקנת החבילה pciutils (על ידי emerge pciutils אשר מכילה את הפקודה lspci. כעת תוכל להשתמשב ב-lspci בתוך סביבת ה-chroot שלך. אתה יכול להתעלם בבטחון מכל אזהרה לגבי pcilib (כמו: piclib: cannot open /sys/bus/pci/devices) אשר lspci עשוייה לפלוט. לחילופין, אתה יכול להשתמש ב-lspci מחוץ לסביבת ה-chroot. התוצאות הן אותן התוצאות. אתה גם יכול להשתמש ב-lsmod כדי לראות את רשימת המודולים של הקרנל שתקליטור ההתקנה משתמש בהם (והדבר עשוי לספק לך רמז יפה לגבי מה יש לאפשר בזמן קביעת תצורת הקרנל...)
כעת עבור אל ספרית קוד המקור והרץ את הפקודה make menuconfig. פעולה זו תקפיץ לך תפריט ממשק תצורה מבוסס ncurses.
| קוד: הרצת menuconfig |
# cd /usr/src/linux # make menuconfig |
אתה תתקבל עם מספר חלקי תצורה. בהתחלה נציג מספר אפשרויות שאתה חייב להפעיל (או שג'נטו לא תפעל, או שלא תפעל כראוי בלי "משחקים" נוספים).
[עריכה] הפעלת אפשרויות החובה
בתור התחלה, הפעלה את השימוש באפשרויות פיתוח ובקוד ודרייברים נסיוניים. אתה תצטרך זאת, כיוון שחלק מהקוד/הדרייברים החשובים לא יופיעו אחרת:
| קוד: בחירת קוד/דרייברים נסיוניים, הגדרות כלליות |
Code maturity level options ---> [*] Prompt for development and/or incomplete code/drivers |
וודא שכל דרייבר שחיוני להפעלת המערכת שלך (כגון בקר SCSI או SATA...) מהודר בתוך הקרנל (עם סימן כוכבית לידו), ולא כמודול, אחרת המערכת שלך לא תוכל לסיים את שלב האתחול.
כעת בחר את משפחת המעבד הנכונה:
| קוד: בחירת משפחת המעבד הנכונה |
Processor type and features ---> (שנה בהתאם למערכת שלך) (Athlon/Duron/K7) Processor family |
כעת היכנס ל-File Systems ובחר תמיכה עבור מערכות הקבצים שבהן אתה משתמש. אל תהדר את התמיכה כמודול, אחרת מערכת הג'נטו שלך לא תהיה מסוגלת לעגון את המחיצות שלך. כמו כן, עלייך לסמן את Virtual memory ואת /proc file system. אם אתה משתמש בקרנל 2.6 (זוהי ברירת מחדל), אל תסמן את /dev file system, מכיוון שג'נטו על x86 משתמשת כעת ב-udev בברירת מחדל. אם אתה משתמש בקרנל 2.4, אתה צריך לסמן את /dev, כיוון שהקרנלים מסדרה 2.4 אינם תומכים ב-udev.
| קוד: בחירת מערכות הקבצים הנחוצות |
(2.4 עם קרנל מסדרה)
File systems --->
[*] Virtual memory file system support (former shm fs)
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[*] automatically mount /dev at boot
[ ] /dev/pts file system for Unix98 PTYs
(2.6 עם קרנל מסדרה)
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[ ] /dev file system support (OBSOLETE)
[*] Virtual memory file system support (former shm fs)
(בחר באחת (או יותר) מהאפשרויות הבאות אם השתמשת במערכות קבצים אלו במערכת שלך)
<*> Reiserfs support
<*> Ext3 journalling file system support
<*> JFS filesystem support
<*> Second extended fs support
<*> XFS filesystem support
|
אם ה-BIOS שלך אינו יכול לטפל בכוננים גדולים וג'ימפרת את הכונן שלך לדווח על גודל מוגבל, תצטרך לסמן את האפשרות הבאה כדי לקבל גישה לכל הכונן שלך:
| קוד: בחירת תמיכה בשינוי גודל גאומטריה אוטומטי |
(בקרנל 2.4 בלבד)
ATA/IDE/MFM/RLL support --->
IDE, ATA and ATAPI Block devices --->
<*> Include IDE/ATA-2 DISK support
[ ] Use multi-mode by default
[*] Auto-Geometry Resizing support
|
אל תשכח לאפשר DMA על הכוננים שלך:
| קוד: הפעלת DMA |
Device Drivers --->
ATA/ATAPI/MFM/RLL support --->
[*] Generic PCI bus-master DMA support
[*] Use PCI DMA by default when available
|
אם אתה משתמש ב-PPPoE כדי להתחבר לאינטרנט, או שאתה משתמש במודם אנלוגי, תצטרך את האפשרויות הבאות בקרנל:
| קוד: בחירת דרייברים הכרחיים עבור PPPoE |
(עם קרנל 2.4)
Network device support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
(עם קרנל 2.6)
Device Drivers --->
Networking support --->
<*> PPP (point-to-point protocol) support
<*> PPP support for async serial ports
<*> PPP support for sync tty ports
|
שתי אפשרויות הדחיסה לא יזיקו, אך גם לא ממש נחוצות, כמו גם האפשרות PPP over Ethernet, אשר בה יש שימוש על ידי rp-pppoe רק אם היא מוגדרת לבצע PPPoE דרך הקרנל.
אם הדבר נדרש עבורך, אל תשכח לכלול תמיכה בכרטיס הרשת שלך בקרנל.
אם יש לך מעבד אינטל שתומך ב-HyperThreading, או שיש לך מערכת עם מספר מעבדים (כולל מערכת עם מעבד Dual Core בודד), אתה צריך להפעיל את האפשרות "Symmetric multi-processing support":
| קוד: הפעלת תמיכה ב-SMP |
Processor type and features ---> [*] Symmetric multi-processing support |
אם אתה משתמש בהתקני קלט המחוברים דרך כניסת USB (כמו לוח מקשים ועכבר), אל תשכח להפעיל את האפשרויות הבאות גם כן:
| קוד: הפעלת תמיכה בהתקני קלט מבוססי USB |
USB Support ---> <*> USB Human Interface Device (full HID) support |
משתמשים בעלי מחשב נייד שמעוניינים בתמיכת PCMCIA אינם צריכים להשתמש בדרייברי ה-PCMCIA אם הם משתמשים בקרנל 2.4. דרייברים עדכניים יותר זמינים בחבילת pcmcia-cs אשר תותקן מאוחר יותר. משתמשי קרנל 2.6, לעומת זאת, צריכים להשתמש בדרייברי PCMCIA המגיעים עם הקרנל שלהם.
חוץ מהידור תמיכה ב-PCMCIA בקרנל 2.6, אל תשכח להפעיל תמיכה עבור כרטיס גשר ה-PCMCIA הקיים במערכת שלך:
| קוד: הפעלת תמיכה ב-PCMCIA בקרנלים מסדרת 2.6 |
Bus options (PCI, PCMCIA, EISA, MCA, ISA) --->
PCCARD (PCMCIA/CardBus) support --->
<*> PCCard (PCMCIA/CardBus) support
(בחר תמיכה ב 16 ביט אם אתה צריך תמיכה בכרטיסים ישנים. רוב האנשים ירצו לסמן אפשרות זו)
<*> 16-bit PCMCIA support
[*] 32-bit CardBus support
(בחר את הגשרים הרלוונטיים למטה)
--- PC-card bridges
<*> CardBus yenta-compatible bridge support (NEW)
<*> Cirrus PD6729 compatible bridge support (NEW)
<*> i82092 compatible bridge support (NEW)
<*> i82365 compatible bridge support (NEW)
<*> Databook TCIC host bridge support (NEW)
|
[עריכה] הידור והתקנת הקרנל
כעת שתצורת הקרנל שלך נקבעה, הגיע הזמן להדר ולהתקין אותו. צא ממסכי התצורה (ושמור כשהוא שואל), והתחל את תהליך ההידור:
| קוד: הידור הקרנל |
(עבור קרנלים מסדרה 2.4) # make dep && make bzImage modules modules_install (עבור קרנלים מסדרה 2.6) # make && make modules_install |
אחרי שתהליך הידור הקרנל הסתיים, העתק את קובץ תמונת הקרנל אל /boot. מעתה ואילך, אנו נניח שהקרנל שאתה מתקין הוא מגירסא 2.6.11-r3 של gentoo-sources. באפשרותך להשתמש בכל שם שאתה מרגיש שמתאים עבור הבחירה שלך, וזכור את מה שבחרת, כיוון שתצטרך להשתמש בו מאוחר יותר, כשתגדיר את טוען האתחול.
| קוד: התקנת הקרנל |
# cp arch/i386/boot/bzImage /boot/kernel-2.6.11-gentoo-r3 # cp System.map /boot/System.map-2.6.11-gentoo-r3 |
כמו כן, יהיה חכם להעתיק את קובץ התצורה של הקרנל ל-/boot, לכל צרה שלא תבוא :)
| קוד: גיבוי תצורת הקרנל |
|
cp .config /boot/config-2.6.11-gentoo-r3 |
כעת המשך עם מודולי קרנל.
[עריכה] אלטרנטיבה: שימוש ב-genkernel
אם אתה קורא חלק זה, בחרת להשתמש בתסריט ה-genkernel שלנו כדי שהוא יקבע עבורך את תצורת הקרנל.
עכשיו שעץ קוד המקור של הקרנל שלך מותקן, הגיע הזמן להדר את הקרנל שלך על ידי שימוש בתסריט ה-genkernel שלנו כדי שהוא יבנה את הקרנל עבורך. genkernel פועל על ידי קביעת תצורת קרנל שהינה כמעט זהה לדרך שבה הקרנל של תקליטור האתחול נוצר. זה אומר שכשאתה משתמש ב-genkernel כדי לבנות את הקרנל שלך, המערכת שלך תזהה את כל החומרה שלך בזמן האתחול, בדיוק כמו שתקליטור האתחול עושה. כיוון ש-genkernel אינו דורש שום קביעת תצורת קרנל ידנית, הוא פתרון אידאלי עבור משתמשים שאינם מרגישים נוח עם הידור קרנל משל עצמם.
כעת, הבה נראה כיצד להשתמש ב-genkernel. קודם כך, התקן את genkernel:
| קוד: התקנת genkernel |
|
emerge genkernel |
בהמשך, אם אתה הולך ליצור קרנל מסדרת 2.6, העתק את תצורת הקרנל של תקליטור ההתקנה למיקום שבו genkernel מסתכל עבור תצורת ברירת המחדל של הקרנל:
| קוד: העתקת תצורת הקרנל של תקליטור ההתקנה |
(עשה זאת אך ורק אם אתה הולך ליצור קרנל מסדרה 2.6) # zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6 |
כעת, הדר את קוד המקור של הקרנל שלך על ידי הרצת genkernel --udev all (עבור קרנלים מסדרה 2.6) או genkernel all (עבור קרנלים מסדרה 2.4). שים לב, שכיוון ש-genkernel יהדר קרנל שתומך בכמעט כל חומרה אפשרית, זמן ההידור עשוי להיות ארוך במיוחד!
שים לב, שאם מחיצת האתחול שלך אינה משתמשת במערכת קבצים ext2 או ext3, יתכן ותצטרך לשנות את התצורה באופן ידני על ידי שימוש ב-genkernel --menuconfig all ואז להוסיף תמיכה למערכת הקבצים שלך בתוך הקרנל (כלומר לא כמודול!). משתמשים ב-EVMS2 או ב-LVM2 כנראה ירצו להוסיף --evms2 או --lvm2 כפרמטרים נוספים.
| קוד: הרצת genkernel |
(עבור קרנלים מסדרה 2.6) # genkernel --udev all (עבור קרנלים מסדרה 2.4) # genkernel all |
אחרי ש-genkernel מסיים, קרנל, סט שלם של מודולים, ודיסק שורש התחלתי (initrd) ייווצרו. אנו נשתמש בקרנל וב-initrd כשנגדיר את טוען האתחול מאוחר יותר במדריך זה. כתוב את השמות של הקרנל וה-initrd כיוון שתצטרך להקליד אותם מאוחר יותר לתוך קובץ התצורה של טוען האתחול. ה-initrd יופעל מייד לאחר האתחול כדי לבצע זיהוי אוטומטי של החומרה (בדיוק כמו תקליטור האתחול), לפני שהמערכת ה"אמיתית" שלך תעלה.
| קוד: בדיקת השם של קובץ הקרנל וה-initrd |
ls /boot/kernel* /boot/initrd* |
כעת, הבה נבצע שלב נוסף כדי להפוך את המערכת שלנו ליותר דומה לתקליטור ההתקנה -- נתקין את coldplug. למרות ש-initrd מזהה את החומרה הנדרשת לתהליך האתחול, coldplug יזהה את כל הדברים האחרים. כדי להתקין ולהפעיל את coldplug, הקלד את הפקודות הבאות:
| קוד: התקנת והפעלת coldplug |
# emerge coldplug # rc-update add coldplug boot |
[עריכה] מודולי קרנל
[עריכה] קביעת תצורת המודולים
עלייך ליצור רשימה של המודולים שאתה רוצה שיטענו במהלך האתחול בקובץ /etc/modules.autoload.d/kernel-2.4 (או kernel-2.6). אתה יכול להוסיף אפשרויות טעינה למודולים אם אתה מעוניין.
כדי לראות את כל המודולים הזמינים, הרץ את פקודת ה-find הבאה. אל תשכח להחליף את <kernel version> יחד עם גירסת הקרנל שהרגע הידרת:
| קוד: הצגת כל המודולים הזמינים |
find /lib/modules/<kernel version> -type f -iname '*.o' -or -iname '*.ko' |
לדוגמא, כדי לטעון את המודול 3c59x.o, ערוך את הקובץ kernel-2.4 או הקובץ kernel-2.6 והכנס שם את שם המודול.
| קוד: עריכת etc/modules.autoload.d/kernel-2.4/ |
(דוגמא עבור קרנלים מסדרה 2.4) # nano -w /etc/modules.autoload.d/kernel-2.4 |
| קוד: etc/modules.autoload.d/kernel-2.4/ או kernel-2.6 |
|
3c59x |
