Budowanie i instalowanie indywidualnego jądra FreeBSD
Rytuał, który każdy użytkownik BSD doświadczyć powinien.
Na wstępie pragnę zaznaczyć, że korzystałem tylko i wyłącznie z handbooka (link na końcu tematu).
1. Co to jest jądro?
Jądro jest rdzeniem tego systemu operacyjnego. Odpowiedzialne jest za zarządzanie pamięcią, kontrolę dysków, sieci, wymuszanie kontroli bezpieczeństwa. Podczas, gdy coraz więcej elementów FreeBSD jest konfigurowanych dynamicznie, czasem jeszcze może zajść potrzeba przekonfigurowania i przekompilowania jądra np. w wypadku instalacji firewalla IPFW.
1.1. Po co budować jądro?
FreeBSD tradycyjnie miał jądro, które nazywa się monolityczne, czyli jeden ogromny program, który wspierał określoną liczbę urządzeń. Jeżeli trzeba było dodać nowe urządzenie trzeba było skompilować nowe jądro i uruchomić z nim ponownie komputer.
Teraz, FreeBSD, funkcjonalność jądra zawiera się w modułach, które można dynamicznie aplikować i usuwać. Umożliwia to jądru szybkie przystosowanie zaraz po rozpoznaniu urządzenia. Pozwala też zwiększyć funkcjonalność, której nie miało oryginalne jądro.
Pomimo tego, czasem trzeba wprowadzić do jądra statyczne zmiany. Na przykład w sytuacjach, gdy kluczowe funkcje jądra zostają zmieniane, nie jest możliwym załadowanie dynamicznie ładowalnego modułu. Możliwe też, że jeszcze odpowiedni, dynamicznie ładowalny moduł, nie został napisany.
1.2. Jakie korzyści otrzymamy z budowy jądra?
System operacyjny uruchamia się znacznie szybciej od kiedy jądro będzie sprawdzało tylko sprzęt, który mamy.
Mniejsze zużycie pamięci RAM (opcja ta przydaje się na komputerach z małą ilością tejże pamięci).
Więcej wspieranych sprzętów np. karta muzyczna, która nie jest wspierana przez jądro GENERIC.
2. Budowa nowego jądra.
Wszystkie za chwile omówione czynności będziemy wykonywać w katalogu /usr/src/sys i wyżej.
2.1. Uwaga! Wykonaj poniższe czynności, jeżeli nie posiadasz źródeł jądra.
Musimy najpierw zainstalować źródła jądra, jeżeli nie posiadamy powyższego katalogu (/usr/src/sys). Najprostszym sposobem na zainstalowanie źródła jest dogranie ich z płytki instalacyjnej FreeBSD. Z poziomu użytkownika root wchodzimy do sysinstall i wybieramy kolejno
Po wybraniu sys klikamy strzałkę w lewo, strzałkę w prawo i klikamy ENTER. Powtarzamy tę czynność jeszcze raz i w Choose Installation Media wybieramy
1 CD/DVD Install from a FreeBSD CD/DVD
Instalacja się rozpocznie i nie trwa długo.
Kopiujemy domyślny plik jądra GENERIC z katalogu /usr/src/sys/i386/conf (Jeżeli korzystasz z systemu 64 bitowego to zamiast i386 wpisujesz amd64) i ustalamy jak ma nasze jądro się nazywać.
# cd /usr/src/sys/i386/conf
# cp GENERIC XYLI
Tam gdzie pisze XYLI podajemy własną nazwę jądra np. MPCFORUM. Przyjęło się tak, że nazwy jąder piszemy dużymi literami.
2.2. Edycja pliku konfiguracyjnego.
Otwieramy edytor z plikiem konfiguracyjnym jądra.
# ee XYLI
Zamiast XYLI wpisz nazwę jądra, którą ustaliłeś/aś.
Objaśnienie poszczególnych linii.
machine i386
Architektura komputera np. i386, amd64, poweMPC itd.
cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
Powyższe wpisy określają typ CPU (procesor) jaki mamy w swoim systemie. Możemy mieć kilka różnych wpisów, ale lepiej zostawić to w spokoju.
ident GENERIC
GENERIC zmieniamy na nazwę naszego jądra, które ustaliliśmy. W moim przypadku będzie to XYLI.
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
Typowy proces kompilacji FreeBSD wyświetla również informacje diagnostyczne w trakcie budowy jądra z użyciem opcji -g, która włącza wyświetlanie informacji diagnostycznych w gcc.
Ten sam efekt można również osiągnąć poprzez opcję -g w config przy korzystaniu z “tradycyjnej” metody kompilacji jądra.
options SCHED_4BSD # 4BSD scheduler
Tradycyjny i domyślny systemowy zarządca procesów FreeBSD. Nie zmieniajmy tego.
Pozwala na wywłaszczanie wątków w jądrze przez wątki o wyższym priorytecie. Pozwala to na interaktywność i przerywanie wątków, by ukończyć pewne czynności wcześniej i uniknąć oczekiwania.
options INET # InterNETworking
Obsługa sieci. Należ pozostawić ten wpis, nawet jeśli nie planujemy podłączyć się do sieci. Większość programów wymaga przynajmniej urządzenia pętli zwrotnej loopback (np. tworzenie połączeń sieciowych wewnątrz naszego PC), więc jest to wpis bardzo istotny.
options INET6 # IPv6 communications protocols
Umożliwia to obsługę protokołu komunikacyjnego IPv6.
options FFS # Berkeley Fast Filesystem
Jest to podstawowy dyskowy system plików. Należy go pozostawić, jeśli startujemy system z dysku twardego.
options SOFTUPDATES # Enable FFS Soft Updates support
Opcja ta umożliwia tzw. Soft Updates w jądrze, co potrafi przyspieszyć czas dostępu do dysku przy zapisie. Jednakże, nawet jeśli funkcja ta jest włączona w jądrze, musi zostać aktywowana dla wybranych dysków. Czy opcja ta jest włączona możemy sprawdzić w wyniku polecenia mount(8). Jeśli przy naszym dysku nie ma oznaczenia soft-updates oznacza to, że musimy ją włączyć wykorzystując polecenie tunefs(8) (dla istniejących systemów plików) bądź newfs(8) (dla nowych systemów plików).
options UFS_ACL # Support for access control lists
Opcja ta włącza w jądrze obsługę list kontroli dostępu do systemu plików. Polega to na wykorzystaniu rozszerzonych atrybutów oraz systemu plików UFS2. Sekcja 14.12 opisuje dokładniej tę funkcjonalność. Domyślnie listy ACL są włączone i nie powinny być wyłączane w jądrze jeśli były wcześniej wykorzystywane w systemie plików, gdyż usunie to listy kontroli dostępu zmieniając metodę ochrony plików w nieprzewidywalny sposób.
options UFS_DIRHASH # Improve performance on big directories
Opcja ta zawiera kod szybszej obsługi dużych katalogów kosztem zużycia dodatkowej pamięci. Możemy pozostawić tę opcję dla dużych serwerów lub dla interaktywnej stacji roboczej a zablokować ją kiedy system jest mało obciążony i posiada mało pamięci, a dostęp do dysków nie jest taki ważny, np. serwer z zaporą ogniową.
options MD_ROOT # MD is a potential root device
Opcja ta włącza obsługę wirtualnego dysku w pamięci RAM, wykorzystywanego jako główne urządzenie.
Sieciowy system plików. Jeżeli nie planujemy montowania partycji z serwera UNIX® poprzez TCP/IP, możemy zablokować te linie.
options MSDOSFS # MSDOS Filesystem
System plików MS-DOS®. Jeśli nie planujemy montowania dysków lub partycji sformatowanych pod DOS-em podczas startowania systemu, dla bezpieczeństwa zablokujmy tę linię. Automatycznie MSDOSFS będzie ładowane kiedy pierwszy raz zamontujemy DOSową partycje jak opisano powyżej. Również wyśmienity program emulators/mtools umożliwia dostęp do dyskietek DOSowych bez potrzeby ich montowania i odmontowywania (i bynajmniej nie jest potrzebny MSDOSFS).
options CD9660 # ISO 9660 Filesystem
System plików ISO 9660 dla płyt CDROM. Jeśli nie posiadamy napędu CDROM możemy zablokować tę linię, lub gdy montujesz dane z CD okazjonalnie (od kiedy zamontujemy dane z CD po raz pierwszy, CD9660 będzie ładowany automatycznie). Płyty audio CD nie potrzebują tego systemu plików.
options PROCFS # Process filesystem (requires PSEUDOFS)
System plików procesów. Jest to system plików “na niby” montowany w /proc, który dla takich programów jak ps(1) posiada więcej informacji o tym jakie procesy są właśnie uruchomione. W większości przypadków wykorzystanie PROCFS nie jest wymagane, gdyż większość narzędzi diagnostycznych i monitorujących zostało zaadaptowanych do pracy bez PROCFS: Domyślne instalacje nie montują tego systemu plików.
options PSEUDOFS # Pseudo-filesystem framework
Jądra 6.X wykorzystujące PROCFS muszą również zawierać obsługę PSEUDOFS.
options GEOM_GPT # GUID Partition Tables.
Opcja ta umożliwia tworzenie dużej ilości partycji na pojedynczym dysku.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
Kompatybilność z systemem 4.3BSD. Należy pozostawić ten wpis; niektóre programy będą zachowywać się dziwnie jeśli zablokujemy tę opcję.
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
Opcja ta potrzebna jest w systemach FreeBSD 5.X i386™ i Alpha do obsługi aplikacji skompilowanych w starszych wersjach FreeBSD, wykorzystujących stary interfejs wywołań systemowych. Zaleca się by wykorzystywać tę opcję we wszystkich systemach i386 i Alpha, w których mogą być wykorzystywane starsze aplikacje; platformy wspierane dopiero od wersji 5.X, jak np. ia64 i Sparc64®, nie wymagają ten opcji.
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
Sprawi to, że jądro zatrzyma się na 5 sekund przed rozpoczęciem rozpoznawania w naszym systemie każdego urządzenia SCSI. Jeśli jednak posiadamy tylko urządzenia IDE, możemy ten wpis zignorować. W innym przypadku możemy zmniejszyć tę wartość i w ten sposób przyspieszyć start systemu. Gdy to zrobimy a FreeBSD będzie miał kłopoty z rozpoznawaniem urządzeń SCSI będziemy musieli zmienić tę wartość na większą.
options KTRACE # ktrace(1) support
Śledzenie procesów przez jądro, co jest użyteczne w diagnozowaniu.
options SYSVSHM # SYSV-style shared memory
Daje to systemom z rodziny V mechanizm współdzielenia pamięci. W działaniu ma to wiele wspólnego z mechanizmem XSHM w X-ach. Znaczna ilość programów obciążająca system graficzny zyska automatycznie na prędkości. Jeśli jesteśmy użytkownikiem X-ów koniecznie pozostawmy tę opcję.
options SYSVMSG # SYSV-style message queues
Wsparcie dla mechanizmu komunkatów w Systemach V. Opcja ta dodaje zaledwie kilkaset bajtów do jądra.
options SYSVSEM # SYSV-style semaphores
Wsparcie dla mechanizmu semaforów w Systemach V. Mniej przydatne w użyciu ale również dodaje tylko kilkaset bajtów do jądra.
Rozszerzenia czasu rzeczywistego dodane w 1993 do POSIX®. Pewne aplikacje z kolekcji portów używają tego mechanizmu (jak np. StarOffice™).
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
Opcja ta związana jest z obsługą klawiatury. Dodaje ona wpis CDEV w /dev.
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
Pomaga to w diagnozowaniu, wypisując łatwiejsze do odczytania definicje rejestrów.
options ADAPTIVE_GIANT # Giant mutex is adaptive.
Giant jest nazwą mechanizmu wzajemnego wykluczania (uśpiony mutex) chroniącego znaczną grupę zasobów jądra. Obecnie mechanizm ten stanowi niedopuszczalnie wąskie gardło w wydajności systemu, które jest zastępowane przez blokady zabezpieczające indywidualne zasoby. Opcja ADAPTIVE_GIANT powoduje, że Giant jest dołączany do zestawu adaptacyjnie zapętlanych muteksów. Co oznacza, że w momencie gdy wątek chce zablokować mutex Giant, który jest już zablokowany przez inny wątek bądź procesor, pierwszy wątek będzie pracował i oczekiwał na zwolnienie blokady. Normalnie, wątek przeszedłby do stanu uśpienia i oczekiwał na kolejną okazję uruchomienia. Jeśli nie jesteśmy przekonani, pozostawmy tę opcję włączoną.
device apic # I/O APIC
Urządzenie apic pozwala na wykorzystanie we/wy APIC do dostarczania przerwań. Urządzenie apic może być wykorzystywane zarówno w jądrach UP jak i SMP, przy czym wymagane jest jedynie w przypadku tych drugich. By włączyć obsługę wielu procesorów należy dodać wiersz options SMP.
device eisa
Należy to włączyć, jeśli posiadamy płytę główną typu EISA. Umożliwia to autodetekcję i konfigurację dla wszystkich urządzeń pracujących na magistrali EISA.
device pci
Włączmy to, jeśli posiadamy płyte główną typu PCI. Umożliwia to autodetekcję kart PCI i przesyłanie z magistrali PCI do ISA.
device fdc
Kontroler stacji dyskietek.
device ata
Sterownik ten obsługuje wszystkie urządzenia ATA i ATAPI. Potrzebujemy tylko tej jednej linijki, aby jądro wykrywało wszystkie urządzenia na współczesnych maszynach.
device atadisk # ATA disk drives
Potrzebne jest to razem z device ata dla dysków ATA.
device ataraid # ATA RAID drives
Potrzebne jest to razem z device ata dla dysków ATA RAID.
device atapicd # ATAPI CDROM drives
Potrzebne jest to razem z device ata dla napędów CDROM ATAPI.
device atapifd # ATAPI floppy drives
Potrzebne jest to razem z device ata dla stacji dyskietek ATAPI.
device atapist # ATAPI tape drives
Potrzebne jest to razem z device ata dla urządzeń taśmowych ATAPI.
options ATA_STATIC_ID # Static device numbering
Powoduje to przydzielanie przez kontroler statycznego numeru, inaczej liczba dyskowa będzie przydzielana dynamicznie.
Kontrolery SCSI. Należy zablokować te kontrolery, których nie posiadamy w naszym systemie. Jeśli mamy system oparty tylko na IDE możemy pozbyć się całej listy.
# SCSI peripherals
device scbus # SCSI bus (required for SCSI)
device ch # SCSI media changers
device da # Direct Access (disks)
device sa # Sequential Access (tape etc)
device cd # CD
device pass # Passthrough device (direct SCSI access)
device ses # SCSI Environmental Services (and SAF-TE)
Peryferia SCSI. Ponownie, jeśli nie posiadamy takowych możemy je wyłączyć lub jeśli posiadamy tylko sprzęt IDE możemy wszystkie powyższe wpisy usunąć.
# RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID
device ciss # Compaq Smart RAID 5*
device dpt # DPT Smartcache III, IV - See NOTES for options
device hptmv # Highpoint RocketRAID 182x
device rr232x # Highpoint RocketRAID 232x
device iir # Intel Integrated RAID
device ips # IBM (Adaptec) ServeRAID
device mly # Mylex AcceleRAID/eXtremeRAID
device twa # 3ware 9000 series PATA/SATA RAID
# RAID controllers
device aac # Adaptec FSA RAID
device aacp # SCSI passthrough for aac (requires CAM)
device ida # Compaq Smart RAID
device mfi # LSI MegaRAID SAS
device mlx # Mylex DAC960 family
device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAID
Obsługa kontrolerów RAID. Jeśli nie posiadamy żadnych kontrolerów RAID, możemy te wpisy zablokować lub usunąć.
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
Sterownik klawiatury (atkbdc) obsługujący porty we/wy dla klawiatur AT i dla urządzeń wskazujących PS/2. Wymagany jest przez sterownik klawiatur (atkbd) i PS/2 (psm).
device atkbd # AT keyboard
Sterownik atkbd razem z kontrolerem atkbdc umożliwiają dostęp do klawiatury AT84 lub do rozszerzonej klawiatury, które podłączone są do kontrolera AT.
device psm # PS/2 mouse
Urządzenie to należy wykorzystać jeśli nasza myszka jest podłączona do portu PS/2.
device kbdmux # keyboard multiplexer
Podstawowa obsługa multipleksacji klawiatury.
device vga # VGA video card driver
Sterownik kart video.
device splash # Splash screen and screen saver support
Obraz tytułowy w trakcie startu! Wymagany również przez wygaszacze ekranu.
# syscons is the default console driver, resembling an SCO console
device sc
sc jest domyślnym sterownikiem konsoli, przypominający konsolę SCO. Wiele programów pracujących w trybie pełnoekranowym uzyskują dostęp do konsoli poprzez biblioteki bazy danych terminala, takie jak termcap, nie powinno więc być istotne czy używamy właśnie jego czy vt, sterownika zgodnego z VT220. Kiedy logujemy się, a nasz program ma kłopoty podczas uruchamiania spod konsoli, należy ustawić zmienną TERM na scoansi.
# Enable this for the pcvt (VT220 compatible) console driver
#device vt
#options XSERVER # support for X server on a vt console
#options FAT_CURSOR # start with block cursor
Sterowniki konsoli kompatybilnej z VT220 i z wcześniejszymi VT100/102. Dobrze pracują na niektórych laptopach nie posiadających sprzętu kompatybilnego z sc. Również w takim przypadku należy zmodyfikować zmienną TERM na vt100 lub vt220, kiedy się logujemy. Sterownik ten może być również użyteczny kiedy łączymy się z dużą liczbą różnorodnych maszyn w sieci, gdzie termcap lub terminfo często nie posiadają wpisów dla urządzeń sc -- wówczas vt100 powinien być dostępny praktycznie na wszystkich platformach.
device agp
Należy włączyć tę opcję jeśli posiadamy kartę AGP w systemie. Włączy to obsługę AGP i AGP GART dla płyt głównych obsługujących te funkcje.
# Power management support (see NOTES for more options)
#device apm
Zaawansowane zarządzanie energią. Użyteczne dla laptopów, chociaż we FreeBSD 5.X i późniejszych opcja ta jest domyślnie wyłączona w jądrze GENERIC.
# Add suspend/resume support for the i8254.
device pmtimer
Sterownik urządzenia regulatora czasowego dla zarządzania energią, jak np. APM i ACPI.
# PCCARD (PCMCIA) support
# PCMCIA and cardbus bridge support
device cbb # cardbus (yenta) bridge
device pccard # PC Card (16-bit) bus
device cardbus # CardBus (32-bit) bus
Obsługa kart PCMCIA. Potrzebna dla laptopów.
# Serial (COM) ports
device sio # 8250, 16[45]50 based serial ports
Są to porty szeregowe nazywane w terminologii MS-DOS/Windows® COM.
Każdy port szeregowy wymaga unikalnego IRQ (z wyjątkiem multiportów gdzie współdzielenie przerwania jest obsługiwane) zatem domyślne IRQ dla COM3 i COM4 nie mają zastosowania.
# Parallel port
device ppc
Interfejs portu równoległego na magistrali ISA.
device ppbus # Parallel port bus (required)
Umożliwia obsługę portów równoległych.
device lpt # Printer
Obsługa drukarek na porcie równoległym.
device plip # TCP/IP over parallel
Sterownik dla równoległego interfejsu sieciowego.
device ppi # Parallel port interface device
Uniwersalny port we/wy + IEEE1284.
#device vpo # Requires scbus and da
Napęd ZIP firmy Iomega. Wymagane sterowniki scbus i da. Najlepszą wydajność można osiągnąć wykorzystując porty w trybie EPP 1.9.
#device puc
Opcję tę należy odblokować jeśli posiadamy “niemą” szeregową lub równoległa kartę PCI, obsługiwaną przez sterownik puc(4).
Różne karty sieciowe na złączu PCI. Należy zablokować lub usunąć te z nich, które nie są obecne w naszym systemie.
# PCI Ethernet NICs that use the common MII bus controller code.
# NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
device miibus # MII bus support
Obsługa szyny MII wymagana dla wielu kart sieciowych 10/100 na złączu PCI, wykorzystujących nadajniki-odbiorniki zgodne z MII lub mają wbudowany nadbiornik pracujący jak MII. Dodanie device miibus do jądra pozwoli na obsługę miibus API i wszystkich sterowników PHY, włączając te, które nie wymagają indywidualnych ustawień i sterowników.
# ISA Ethernet NICs. pccard NICs included.
device cs # Crystal Semiconductor CS89x0 NIC
# 'device ed' requires 'device miibus'
device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards
device ex # Intel EtherExpress Pro/10 and Pro/10+
device ep # Etherlink III based cards
device fe # Fujitsu MB8696x based cards
device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc.
device lnc # NE2100, NE32-VL Lance Ethernet cards
device sn # SMC's 9000 series of Ethernet chips
device xe # Xircom pccard Ethernet
# ISA devices that use the old ISA shims
#device le
Sterowniki ISA Ethernet. Plik /usr/src/sys/i386/conf/NOTES zawiera szczegółowy opis, która karta jest obsługiwana przez dany sterownik.
# Wireless NIC cards
device wlan # 802.11 support
device an # Aironet 4500/4800 802.11 wireless NICs.
device awi # BayStack 660 and others
device ral # Ralink Technology RT2500 wireless NICs.
device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
#device wl # Older non 802.11 Wavelan wireless NIC.
Obsługa różnych kart bezprzewodowych.
# Pseudo devices
device loop # Network loopback
Standardowe urządzenie pętli zwrotnej dla TCP/IP. Jeśli łączymy się z localhost (a.k.a. 127.0.0.1) za pomocą telnetu bądź FTP, połączenie powróci do nas za pomocą tego urządzenia. Obecność tego wpisu w konfiguracji jądra jest niezbędna.
device random # Entropy device
Bezpieczny z kryptograficznego punktu widzenia generator liczb losowych.
device ether # Ethernet support
ether jest wymagany tylko wówczas, gdy posiadamy kartę Ethernet. Zawiera podstawowy kod protokołu Ethernet.
device sl # Kernel SLIP
sl służy do obsługi SLIP. Zostało prawie całkowicie wyparte przez PPP, które jest łatwiejsze w obsłudze, lepiej przystosowane do połączeń modem - modem i posiada więcej możliwości.
device ppp # Kernel PPP
Wsparcie jądra dla PPP przy połączeniach wdzwanianych. Jest również w niej zaimplementowana wersja PPP, dla wielu aplikacji używających tun, oferująca większą elastyczność i funkcjonalności takie jak np. połączenie na żądanie (demand dialing).
device tun # Packet tunnel.
Używane przez rodzinę aplikacji korzystających z PPP. Więcej informacji na ten temat zawiera rozdział niniejszego Podręcznika poświęcony właśnie PPP.
device pty # Pseudo-ttys (telnet etc)
Jest to “pseudo-terminal” wykorzystywany przez przychodzące sesje telnet i rlogin, xterm oraz kilka innych aplikacji, jak np. Emacs.
device md # Memory “disks”
Pseudo urządzenie memory-disk.
device gif # IPv6 and IPv4 tunneling
Implementacja tunelowania IPv6 przez IPv4, IPv4 przez IPv6, IPv4 przez IPv4 oraz IPv6 przez IPv6. Urządzenie gif posiada cechę “auto-klonowania”, co umożliwia tworzenie wymaganych plików urządzeń.
To pseudo-urządzenie wyłapuje przesłane do niego pakiety i przekazuje je do demona translacji IPv4/IPv6.
# The `bpf' device enables the Berkeley Packet Filter.
# Be aware of the administrative consequences of enabling this!
# Note that 'bpf' is required for DHCP.
device bpf # Berkeley packet filter
Filtr pakietów rodem z Berkeley. To pseudo-urządzenie pozwala interfejsom sieciowym pracować w trybie nasłuchiwania, wyłapując każdy pakiet wysłany w sieci (np w sieci Ethernet). Pakiety te mogą zostać zapisane na dysku i/lub sprawdzane programem tcpdump(1).
# USB support
device uhci # UHCI PCI->USB interface
device ohci # OHCI PCI->USB interface
#device ehci # EHCI PCI->USB interface (USB 2.0)
device usb # USB Bus (required)
#device udbp # USB Double Bulk Pipe devices
device ugen # Generic
device uhid # “Human Interface Devices”
device ukbd # Keyboard
device ulpt # Printer
device umass # Disks/Mass storage - Requires scbus and da
device ums # Mouse
device urio # Diamond Rio 500 MP3 player
device uscanner # Scanners
# USB Ethernet, requires mii
device aue # ADMtek USB Ethernet
device axe # ASIX Electronics USB Ethernet
device cdce # Generic USB over Ethernet
device cue # CATC USB Ethernet
device kue # Kawasaki LSI USB Ethernet
device rue # RealTek RTL8150 USB Ethernet
Obsługa wielu urządzeń USB.
# FireWire support
device firewire # FireWire bus code
device sbp # SCSI over FireWire (Requires scbus and da)
device fwe # Ethernet over FireWire (non-standard!)
Obsługa różnorodnych urządzeń Firewire.
Więcej na ten temat znajdziesz w /usr/src/sys/i386/conf/NOTES
Którą metodę budowy jądra wybrać?
Jeśli zainstalowaliśmy tylko źródła jądra powiniśmy użyć budowy tradycyjnej.
Jeśli przebudowujemy jądro powinniśmy użyć budowy nowoczesnej.
Budowa jądra w tradycyjny sposób
Generujemy kod źródłowy jądra.
# /usr/sbin/config XYLI
Tam gdzie XYLI piszemy własną nazwę jądra.
Przechodzimy do katalogu w którym rozpocznie się kompilacja.
# cd ../compile/XYLI
Tam gdzie XYLI podajemy wlasną nazwę jądra.
Kompilujemy jądro
# make depend
# make
Instalujemy nowe jądro
# make install
Budowa jądra w nowoczesny sposób
Wejdźmy do katalogu /usr/src.
# cd /usr/src
Skompilujmy jądro.
# make buildkernel KERNCONF=XYLI
Tam gdzie XYLI podajemy własną nazwę jądra.
Zainstalujmy nowe jądro.
# make installkernel KERNCONF=XYLI
Tam gdzie XYLI podajemy własną nazwę jądra.
Ta metoda kompilacji jądra wymaga wszystkich plików źródłowych. Jeśli zainstalowaliśmy jedynie źródła jądra, powinniśmy skorzystać z opisanej powyżej metody tradycyjnej.
Nowe jądro zostanie skopiowane do katalogu /boot/kernel jako /boot/kernel/kernel , a dotychczasowe zostanie przeniesione do /boot/kernel.old/kernel. Teraz należy ponownie uruchomić komputer.
# shutdown -r now
Jeżeli pojawiły się jakieś kłopoty sprawdź, czy nie ma go tu
Używamy plików cookies i podobnych technologii. Niezbędne zapewniają działanie forum (np. logowanie) i nie wymagają zgody. Za Twoją zgodą użyjemy też plików cookies funkcjonalnych, analitycznych (statystyki odwiedzin), marketingowych (reklamy) oraz treści z zewnętrznych serwisów (np. filmy YouTube). Ich dostawcy mogą przetwarzać Twoje dane, także poza Europejskim Obszarem Gospodarczym. Zgoda jest dobrowolna. Możesz ją w każdej chwili zmienić lub wycofać w „Ustawieniach cookies” na dole strony. Wycofanie zgody nie wpływa na zgodność z prawem przetwarzania sprzed jej wycofania.
Wybierz, na które kategorie plików cookies się zgadzasz. Niezbędne pliki cookies są zawsze aktywne, bo bez nich forum nie działa poprawnie. Pozostałe są domyślnie wyłączone i włączasz je wyłącznie Ty. Nazwy plików, dostawców i okresy przechowywania znajdziesz w liście przy każdej kategorii oraz w Polityce cookies.
NiezbędneZawsze aktywne
Zapewniają podstawowe działanie forum: logowanie, bezpieczeństwo konta, ochronę przed spamem i zapamiętanie Twoich wyborów dotyczących plików cookies. Nie można ich wyłączyć i nie wymagają zgody.
Pokaż pliki cookies (17)
Wczytywanie…
Funkcjonalne
Zapamiętują Twoje ustawienia i ułatwiają korzystanie z forum, np. wybrany motyw, strefę czasową, ostatnio używane emoji czy zamknięte komunikaty.
Pokaż pliki cookies (12)
Wczytywanie…
Analityczne
Pomagają nam zrozumieć, jak odwiedzający korzystają z forum (np. liczba odwiedzin, najczęściej czytane strony), abyśmy mogli je ulepszać. Dane są analizowane zbiorczo.
Pokaż pliki cookies (4)
Wczytywanie…
Marketingowe
Służą do wyświetlania reklam i mierzenia ich skuteczności, także przez naszych partnerów reklamowych, którzy mogą tworzyć profil Twoich zainteresowań na podstawie odwiedzin na różnych stronach.
Treści zewnętrzne
Pozwalają wyświetlać na forum treści z zewnętrznych serwisów, np. filmy YouTube, wpisy z serwisu X czy mapy Google. Te serwisy mogą zapisywać własne pliki cookies i śledzić Twoją aktywność. Bez zgody w ich miejscu zobaczysz przycisk do jednorazowego wczytania treści.
Pokaż pliki cookies (4)
Wczytywanie…
Identyfikator Twojej zgody: ·
Ta treść pochodzi z zewnętrznego serwisu, który może zapisywać pliki cookies i śledzić Twoją aktywność. Wymaga zgody w kategorii .
Pytanie
Xyli
Xyli
Budowanie i instalowanie indywidualnego jądra FreeBSD
Rytuał, który każdy użytkownik BSD doświadczyć powinien.
Na wstępie pragnę zaznaczyć, że korzystałem tylko i wyłącznie z handbooka (link na końcu tematu).
1. Co to jest jądro?
Jądro jest rdzeniem tego systemu operacyjnego. Odpowiedzialne jest za zarządzanie pamięcią, kontrolę dysków, sieci, wymuszanie kontroli bezpieczeństwa. Podczas, gdy coraz więcej elementów FreeBSD jest konfigurowanych dynamicznie, czasem jeszcze może zajść potrzeba przekonfigurowania i przekompilowania jądra np. w wypadku instalacji firewalla IPFW.
1.1. Po co budować jądro?
FreeBSD tradycyjnie miał jądro, które nazywa się monolityczne, czyli jeden ogromny program, który wspierał określoną liczbę urządzeń. Jeżeli trzeba było dodać nowe urządzenie trzeba było skompilować nowe jądro i uruchomić z nim ponownie komputer.
Teraz, FreeBSD, funkcjonalność jądra zawiera się w modułach, które można dynamicznie aplikować i usuwać. Umożliwia to jądru szybkie przystosowanie zaraz po rozpoznaniu urządzenia. Pozwala też zwiększyć funkcjonalność, której nie miało oryginalne jądro.
Pomimo tego, czasem trzeba wprowadzić do jądra statyczne zmiany. Na przykład w sytuacjach, gdy kluczowe funkcje jądra zostają zmieniane, nie jest możliwym załadowanie dynamicznie ładowalnego modułu. Możliwe też, że jeszcze odpowiedni, dynamicznie ładowalny moduł, nie został napisany.
1.2. Jakie korzyści otrzymamy z budowy jądra?
2. Budowa nowego jądra.
Wszystkie za chwile omówione czynności będziemy wykonywać w katalogu /usr/src/sys i wyżej.
2.1. Uwaga! Wykonaj poniższe czynności, jeżeli nie posiadasz źródeł jądra.
Musimy najpierw zainstalować źródła jądra, jeżeli nie posiadamy powyższego katalogu (/usr/src/sys). Najprostszym sposobem na zainstalowanie źródła jest dogranie ich z płytki instalacyjnej FreeBSD. Z poziomu użytkownika root wchodzimy do sysinstall i wybieramy kolejno
Po wybraniu sys klikamy strzałkę w lewo, strzałkę w prawo i klikamy ENTER. Powtarzamy tę czynność jeszcze raz i w Choose Installation Media wybieramy
Instalacja się rozpocznie i nie trwa długo.
Kopiujemy domyślny plik jądra GENERIC z katalogu /usr/src/sys/i386/conf (Jeżeli korzystasz z systemu 64 bitowego to zamiast i386 wpisujesz amd64) i ustalamy jak ma nasze jądro się nazywać.
Tam gdzie pisze XYLI podajemy własną nazwę jądra np. MPCFORUM. Przyjęło się tak, że nazwy jąder piszemy dużymi literami.
2.2. Edycja pliku konfiguracyjnego.
Otwieramy edytor z plikiem konfiguracyjnym jądra.
Zamiast XYLI wpisz nazwę jądra, którą ustaliłeś/aś.
Objaśnienie poszczególnych linii.
Architektura komputera np. i386, amd64, poweMPC itd.
Powyższe wpisy określają typ CPU (procesor) jaki mamy w swoim systemie. Możemy mieć kilka różnych wpisów, ale lepiej zostawić to w spokoju.
GENERIC zmieniamy na nazwę naszego jądra, które ustaliliśmy. W moim przypadku będzie to XYLI.
Typowy proces kompilacji FreeBSD wyświetla również informacje diagnostyczne w trakcie budowy jądra z użyciem opcji -g, która włącza wyświetlanie informacji diagnostycznych w gcc.
Ten sam efekt można również osiągnąć poprzez opcję -g w config przy korzystaniu z “tradycyjnej” metody kompilacji jądra.
Tradycyjny i domyślny systemowy zarządca procesów FreeBSD. Nie zmieniajmy tego.
Pozwala na wywłaszczanie wątków w jądrze przez wątki o wyższym priorytecie. Pozwala to na interaktywność i przerywanie wątków, by ukończyć pewne czynności wcześniej i uniknąć oczekiwania.
Obsługa sieci. Należ pozostawić ten wpis, nawet jeśli nie planujemy podłączyć się do sieci. Większość programów wymaga przynajmniej urządzenia pętli zwrotnej loopback (np. tworzenie połączeń sieciowych wewnątrz naszego PC), więc jest to wpis bardzo istotny.
Umożliwia to obsługę protokołu komunikacyjnego IPv6.
Jest to podstawowy dyskowy system plików. Należy go pozostawić, jeśli startujemy system z dysku twardego.
Opcja ta umożliwia tzw. Soft Updates w jądrze, co potrafi przyspieszyć czas dostępu do dysku przy zapisie. Jednakże, nawet jeśli funkcja ta jest włączona w jądrze, musi zostać aktywowana dla wybranych dysków. Czy opcja ta jest włączona możemy sprawdzić w wyniku polecenia mount(8). Jeśli przy naszym dysku nie ma oznaczenia soft-updates oznacza to, że musimy ją włączyć wykorzystując polecenie tunefs(8) (dla istniejących systemów plików) bądź newfs(8) (dla nowych systemów plików).
Opcja ta włącza w jądrze obsługę list kontroli dostępu do systemu plików. Polega to na wykorzystaniu rozszerzonych atrybutów oraz systemu plików UFS2. Sekcja 14.12 opisuje dokładniej tę funkcjonalność. Domyślnie listy ACL są włączone i nie powinny być wyłączane w jądrze jeśli były wcześniej wykorzystywane w systemie plików, gdyż usunie to listy kontroli dostępu zmieniając metodę ochrony plików w nieprzewidywalny sposób.
Opcja ta zawiera kod szybszej obsługi dużych katalogów kosztem zużycia dodatkowej pamięci. Możemy pozostawić tę opcję dla dużych serwerów lub dla interaktywnej stacji roboczej a zablokować ją kiedy system jest mało obciążony i posiada mało pamięci, a dostęp do dysków nie jest taki ważny, np. serwer z zaporą ogniową.
Opcja ta włącza obsługę wirtualnego dysku w pamięci RAM, wykorzystywanego jako główne urządzenie.
Sieciowy system plików. Jeżeli nie planujemy montowania partycji z serwera UNIX® poprzez TCP/IP, możemy zablokować te linie.
System plików MS-DOS®. Jeśli nie planujemy montowania dysków lub partycji sformatowanych pod DOS-em podczas startowania systemu, dla bezpieczeństwa zablokujmy tę linię. Automatycznie MSDOSFS będzie ładowane kiedy pierwszy raz zamontujemy DOSową partycje jak opisano powyżej. Również wyśmienity program emulators/mtools umożliwia dostęp do dyskietek DOSowych bez potrzeby ich montowania i odmontowywania (i bynajmniej nie jest potrzebny MSDOSFS).
System plików ISO 9660 dla płyt CDROM. Jeśli nie posiadamy napędu CDROM możemy zablokować tę linię, lub gdy montujesz dane z CD okazjonalnie (od kiedy zamontujemy dane z CD po raz pierwszy, CD9660 będzie ładowany automatycznie). Płyty audio CD nie potrzebują tego systemu plików.
System plików procesów. Jest to system plików “na niby” montowany w /proc, który dla takich programów jak ps(1) posiada więcej informacji o tym jakie procesy są właśnie uruchomione. W większości przypadków wykorzystanie PROCFS nie jest wymagane, gdyż większość narzędzi diagnostycznych i monitorujących zostało zaadaptowanych do pracy bez PROCFS: Domyślne instalacje nie montują tego systemu plików.
Jądra 6.X wykorzystujące PROCFS muszą również zawierać obsługę PSEUDOFS.
Opcja ta umożliwia tworzenie dużej ilości partycji na pojedynczym dysku.
Kompatybilność z systemem 4.3BSD. Należy pozostawić ten wpis; niektóre programy będą zachowywać się dziwnie jeśli zablokujemy tę opcję.
Opcja ta potrzebna jest w systemach FreeBSD 5.X i386™ i Alpha do obsługi aplikacji skompilowanych w starszych wersjach FreeBSD, wykorzystujących stary interfejs wywołań systemowych. Zaleca się by wykorzystywać tę opcję we wszystkich systemach i386 i Alpha, w których mogą być wykorzystywane starsze aplikacje; platformy wspierane dopiero od wersji 5.X, jak np. ia64 i Sparc64®, nie wymagają ten opcji.
Sprawi to, że jądro zatrzyma się na 5 sekund przed rozpoczęciem rozpoznawania w naszym systemie każdego urządzenia SCSI. Jeśli jednak posiadamy tylko urządzenia IDE, możemy ten wpis zignorować. W innym przypadku możemy zmniejszyć tę wartość i w ten sposób przyspieszyć start systemu. Gdy to zrobimy a FreeBSD będzie miał kłopoty z rozpoznawaniem urządzeń SCSI będziemy musieli zmienić tę wartość na większą.
Śledzenie procesów przez jądro, co jest użyteczne w diagnozowaniu.
Daje to systemom z rodziny V mechanizm współdzielenia pamięci. W działaniu ma to wiele wspólnego z mechanizmem XSHM w X-ach. Znaczna ilość programów obciążająca system graficzny zyska automatycznie na prędkości. Jeśli jesteśmy użytkownikiem X-ów koniecznie pozostawmy tę opcję.
Wsparcie dla mechanizmu komunkatów w Systemach V. Opcja ta dodaje zaledwie kilkaset bajtów do jądra.
Wsparcie dla mechanizmu semaforów w Systemach V. Mniej przydatne w użyciu ale również dodaje tylko kilkaset bajtów do jądra.
Rozszerzenia czasu rzeczywistego dodane w 1993 do POSIX®. Pewne aplikacje z kolekcji portów używają tego mechanizmu (jak np. StarOffice™).
Opcja ta związana jest z obsługą klawiatury. Dodaje ona wpis CDEV w /dev.
Pomaga to w diagnozowaniu, wypisując łatwiejsze do odczytania definicje rejestrów.
Giant jest nazwą mechanizmu wzajemnego wykluczania (uśpiony mutex) chroniącego znaczną grupę zasobów jądra. Obecnie mechanizm ten stanowi niedopuszczalnie wąskie gardło w wydajności systemu, które jest zastępowane przez blokady zabezpieczające indywidualne zasoby. Opcja ADAPTIVE_GIANT powoduje, że Giant jest dołączany do zestawu adaptacyjnie zapętlanych muteksów. Co oznacza, że w momencie gdy wątek chce zablokować mutex Giant, który jest już zablokowany przez inny wątek bądź procesor, pierwszy wątek będzie pracował i oczekiwał na zwolnienie blokady. Normalnie, wątek przeszedłby do stanu uśpienia i oczekiwał na kolejną okazję uruchomienia. Jeśli nie jesteśmy przekonani, pozostawmy tę opcję włączoną.
Urządzenie apic pozwala na wykorzystanie we/wy APIC do dostarczania przerwań. Urządzenie apic może być wykorzystywane zarówno w jądrach UP jak i SMP, przy czym wymagane jest jedynie w przypadku tych drugich. By włączyć obsługę wielu procesorów należy dodać wiersz options SMP.
Należy to włączyć, jeśli posiadamy płytę główną typu EISA. Umożliwia to autodetekcję i konfigurację dla wszystkich urządzeń pracujących na magistrali EISA.
Włączmy to, jeśli posiadamy płyte główną typu PCI. Umożliwia to autodetekcję kart PCI i przesyłanie z magistrali PCI do ISA.
Kontroler stacji dyskietek.
Sterownik ten obsługuje wszystkie urządzenia ATA i ATAPI. Potrzebujemy tylko tej jednej linijki, aby jądro wykrywało wszystkie urządzenia na współczesnych maszynach.
Potrzebne jest to razem z device ata dla dysków ATA.
Potrzebne jest to razem z device ata dla dysków ATA RAID.
Potrzebne jest to razem z device ata dla napędów CDROM ATAPI.
Potrzebne jest to razem z device ata dla stacji dyskietek ATAPI.
Potrzebne jest to razem z device ata dla urządzeń taśmowych ATAPI.
Powoduje to przydzielanie przez kontroler statycznego numeru, inaczej liczba dyskowa będzie przydzielana dynamicznie.
Kontrolery SCSI. Należy zablokować te kontrolery, których nie posiadamy w naszym systemie. Jeśli mamy system oparty tylko na IDE możemy pozbyć się całej listy.
Peryferia SCSI. Ponownie, jeśli nie posiadamy takowych możemy je wyłączyć lub jeśli posiadamy tylko sprzęt IDE możemy wszystkie powyższe wpisy usunąć.
Obsługa kontrolerów RAID. Jeśli nie posiadamy żadnych kontrolerów RAID, możemy te wpisy zablokować lub usunąć.
Sterownik klawiatury (atkbdc) obsługujący porty we/wy dla klawiatur AT i dla urządzeń wskazujących PS/2. Wymagany jest przez sterownik klawiatur (atkbd) i PS/2 (psm).
Sterownik atkbd razem z kontrolerem atkbdc umożliwiają dostęp do klawiatury AT84 lub do rozszerzonej klawiatury, które podłączone są do kontrolera AT.
Urządzenie to należy wykorzystać jeśli nasza myszka jest podłączona do portu PS/2.
Podstawowa obsługa multipleksacji klawiatury.
Sterownik kart video.
Obraz tytułowy w trakcie startu! Wymagany również przez wygaszacze ekranu.
sc jest domyślnym sterownikiem konsoli, przypominający konsolę SCO. Wiele programów pracujących w trybie pełnoekranowym uzyskują dostęp do konsoli poprzez biblioteki bazy danych terminala, takie jak termcap, nie powinno więc być istotne czy używamy właśnie jego czy vt, sterownika zgodnego z VT220. Kiedy logujemy się, a nasz program ma kłopoty podczas uruchamiania spod konsoli, należy ustawić zmienną TERM na scoansi.
Sterowniki konsoli kompatybilnej z VT220 i z wcześniejszymi VT100/102. Dobrze pracują na niektórych laptopach nie posiadających sprzętu kompatybilnego z sc. Również w takim przypadku należy zmodyfikować zmienną TERM na vt100 lub vt220, kiedy się logujemy. Sterownik ten może być również użyteczny kiedy łączymy się z dużą liczbą różnorodnych maszyn w sieci, gdzie termcap lub terminfo często nie posiadają wpisów dla urządzeń sc -- wówczas vt100 powinien być dostępny praktycznie na wszystkich platformach.
Należy włączyć tę opcję jeśli posiadamy kartę AGP w systemie. Włączy to obsługę AGP i AGP GART dla płyt głównych obsługujących te funkcje.
Zaawansowane zarządzanie energią. Użyteczne dla laptopów, chociaż we FreeBSD 5.X i późniejszych opcja ta jest domyślnie wyłączona w jądrze GENERIC.
Sterownik urządzenia regulatora czasowego dla zarządzania energią, jak np. APM i ACPI.
Obsługa kart PCMCIA. Potrzebna dla laptopów.
Są to porty szeregowe nazywane w terminologii MS-DOS/Windows® COM.
Każdy port szeregowy wymaga unikalnego IRQ (z wyjątkiem multiportów gdzie współdzielenie przerwania jest obsługiwane) zatem domyślne IRQ dla COM3 i COM4 nie mają zastosowania.
Interfejs portu równoległego na magistrali ISA.
Umożliwia obsługę portów równoległych.
Obsługa drukarek na porcie równoległym.
Sterownik dla równoległego interfejsu sieciowego.
Uniwersalny port we/wy + IEEE1284.
Napęd ZIP firmy Iomega. Wymagane sterowniki scbus i da. Najlepszą wydajność można osiągnąć wykorzystując porty w trybie EPP 1.9.
Opcję tę należy odblokować jeśli posiadamy “niemą” szeregową lub równoległa kartę PCI, obsługiwaną przez sterownik puc(4).
Różne karty sieciowe na złączu PCI. Należy zablokować lub usunąć te z nich, które nie są obecne w naszym systemie.
Obsługa szyny MII wymagana dla wielu kart sieciowych 10/100 na złączu PCI, wykorzystujących nadajniki-odbiorniki zgodne z MII lub mają wbudowany nadbiornik pracujący jak MII. Dodanie device miibus do jądra pozwoli na obsługę miibus API i wszystkich sterowników PHY, włączając te, które nie wymagają indywidualnych ustawień i sterowników.
Sterowniki wykorzystujące szynę MII.
Sterowniki ISA Ethernet. Plik /usr/src/sys/i386/conf/NOTES zawiera szczegółowy opis, która karta jest obsługiwana przez dany sterownik.
Obsługa różnych kart bezprzewodowych.
Standardowe urządzenie pętli zwrotnej dla TCP/IP. Jeśli łączymy się z localhost (a.k.a. 127.0.0.1) za pomocą telnetu bądź FTP, połączenie powróci do nas za pomocą tego urządzenia. Obecność tego wpisu w konfiguracji jądra jest niezbędna.
Bezpieczny z kryptograficznego punktu widzenia generator liczb losowych.
ether jest wymagany tylko wówczas, gdy posiadamy kartę Ethernet. Zawiera podstawowy kod protokołu Ethernet.
sl służy do obsługi SLIP. Zostało prawie całkowicie wyparte przez PPP, które jest łatwiejsze w obsłudze, lepiej przystosowane do połączeń modem - modem i posiada więcej możliwości.
Wsparcie jądra dla PPP przy połączeniach wdzwanianych. Jest również w niej zaimplementowana wersja PPP, dla wielu aplikacji używających tun, oferująca większą elastyczność i funkcjonalności takie jak np. połączenie na żądanie (demand dialing).
Używane przez rodzinę aplikacji korzystających z PPP. Więcej informacji na ten temat zawiera rozdział niniejszego Podręcznika poświęcony właśnie PPP.
Jest to “pseudo-terminal” wykorzystywany przez przychodzące sesje telnet i rlogin, xterm oraz kilka innych aplikacji, jak np. Emacs.
Pseudo urządzenie memory-disk.
Implementacja tunelowania IPv6 przez IPv4, IPv4 przez IPv6, IPv4 przez IPv4 oraz IPv6 przez IPv6. Urządzenie gif posiada cechę “auto-klonowania”, co umożliwia tworzenie wymaganych plików urządzeń.
To pseudo-urządzenie wyłapuje przesłane do niego pakiety i przekazuje je do demona translacji IPv4/IPv6.
Filtr pakietów rodem z Berkeley. To pseudo-urządzenie pozwala interfejsom sieciowym pracować w trybie nasłuchiwania, wyłapując każdy pakiet wysłany w sieci (np w sieci Ethernet). Pakiety te mogą zostać zapisane na dysku i/lub sprawdzane programem tcpdump(1).
Obsługa wielu urządzeń USB.
Obsługa różnorodnych urządzeń Firewire.
Więcej na ten temat znajdziesz w /usr/src/sys/i386/conf/NOTES
Którą metodę budowy jądra wybrać?
Budowa jądra w tradycyjny sposób
Generujemy kod źródłowy jądra.
Tam gdzie XYLI piszemy własną nazwę jądra.
Przechodzimy do katalogu w którym rozpocznie się kompilacja.
Tam gdzie XYLI podajemy wlasną nazwę jądra.
Kompilujemy jądro
Instalujemy nowe jądro
Budowa jądra w nowoczesny sposób
Wejdźmy do katalogu /usr/src.
Skompilujmy jądro.
Tam gdzie XYLI podajemy własną nazwę jądra.
Zainstalujmy nowe jądro.
Tam gdzie XYLI podajemy własną nazwę jądra.
Ta metoda kompilacji jądra wymaga wszystkich plików źródłowych. Jeśli zainstalowaliśmy jedynie źródła jądra, powinniśmy skorzystać z opisanej powyżej metody tradycyjnej.
Nowe jądro zostanie skopiowane do katalogu /boot/kernel jako /boot/kernel/kernel , a dotychczasowe zostanie przeniesione do /boot/kernel.old/kernel. Teraz należy ponownie uruchomić komputer.
Jeżeli pojawiły się jakieś kłopoty sprawdź, czy nie ma go tu
Obiecane linki
PS. Jeżeli nigdy nie instalowałeś systemu FreeBSD, ani nie "bawiłeś" się z nim mocno to odpuść sobie te czynności na razie.
Przyznaję się do tego, że poradnik jest skopiowany. Więcej informacji znajdziecie w podanych przeze mnie linkach.
Pozdrawiam, Xyli.
Napisz do mnie, jeżeli potrzebujesz patcher'a.
23 odpowiedzi na to pytanie
Rekomendowane odpowiedzi
Zarchiwizowany
Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.