Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

Konfiguracja jądra na FreeBSD


EgonPL

Rekomendowane odpowiedzi

Opublikowano

Po co budować indywidualne jądro?

 

Tradycyjnie, system FreeBSD miał coś, co zwie się ?monolitycznym? jądrem. Był to jeden duży program, wspierający ustaloną liczbę urządzeń. Jeśli zaszła potrzeba zmiany zachowania jądra, należało skompilować nowe jądro i uruchomić z nim ponownie komputer.

W dzisiejszych czasach, FreeBSD bardzo szybko przechodzi do modelu, w którym funkcjonalność jądra zawiera się w modułach, które można dynamicznie aplikować, lub usuwać, w miarę potrzeb. Umożliwia to jądru szybkie przystosowywanie się zaraz po rozpoznaniu nowego sprzętu (jak karty PCMCIA w laptopach). Pozwala też zwiększyć funkcjonalność, której nie miało oryginalne jądro (któremu nie były dane funkcje potrzebne). Potocznie mówi się o jądrze modularnym.

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.

Budowanie indywidualnego jądra jest jednym z najważniejszych rytuałów, których podczas użytkowania systemu BSD trzeba doświadczyć. Ten czasochłonny proces przyniesie naszemu systemowi wiele korzyści. Inaczej niż w przypadku jądra GENERIC [podstawowego, domyślnego], które musi wspierać wiele rodzajów sprzętu, nasze jądro będzie wspierało tylko nasz sprzęt PC. Ma to wiele zalet:

  • Szybszy czas uruchamiania systemu. Od kiedy jądro będzie sprawdzało tylko sprzęt który mamy, czas uruchamiania znacząco się zmniejszy.
  • Mniejsze zużycie pamięci. Indywidualne jądro często zużywa mniej pamięci niż jądro GENERIC, co jest istotnym faktem, gdyż jądro przez cały czas musi być obecne w pamięci fizycznej. Z tych powodów, budowanie indywidualnego jądra jest szczególnie przydatne przy pracy z maszynami o małej ilości pamięci RAM'u.
  • Więcej wspieranego sprzętu. Indywidualne jądro może zawierać obsługę np. kart muzycznych, które nie są wspierane przez domyślne jądro GENERIC.

1.Budowanie i instalowanie indywidualnego jądra :

W poniższym przykładzie instalacja z ?oficjalnej? płyty CD FreeBSD:

# mount /cdrom

# mkdir -p /usr/src/sys

# ln -s /usr/src/sys /sys

# cat /cdrom/src/ssys.[a-d]* | tar -xzvf -

 

Następnie wchodzimy do katalogu arch/conf i kopiujemy domyślny plik konfiguracyjny o nazwie GENERIC tworząc plik z nazwą jaką chcemy nadać swojemu jądru. Na przykład:

# cd /usr/src/sys/i386/conf

# cp GENERIC MYKERNEL

 

Tradycyjnie nazwa jądra pisana jest wielkimi literami. Dodatkowo dobrym pomysłem jest, by nazywać jądra tak jak komputery, co pomaga rozróżnić jądra, gdy mamy wiele komputerów z różnym sprzętem. Dla potrzeb tego przykładu nazwiemy jądro MYKERNEL.

Podpowiedź:
Nie jest najlepszym pomysłem trzymanie pliku konfiguracyjnego jądra bezpośrednio w katalogu /usr/src. Jeśli podczas kompilacji mamy kłopot, czasem może się okazać kuszącym pomysłem po prostu wykasować cały katalog /usr/src i rozpocząć od początku. Wtedy zwykle, kilka sekund po usunięciu katalogu, przypomina nam się, że usunęliśmy także plik konfiguracyjny jądra. Podobnie, nie powinniśmy edytować bezpośrednio GENERIC, gdyż może zostać nadpisany przy kolejnej
i zmiany, które wprowadziliśmy zostaną utracone.

Możemy chcieć trzymać plik konfiguracyjny jądra gdziekolwiek, a następnie utworzyć symboliczne dowiązanie do pliku w katalogu
i386
.

Przykładowo:

# cd /usr/src/sys/
i386
/conf

# mkdir /root/kernels

# cp GENERIC /root/kernels/
MYKERNEL

# ln -s /root/kernels/
MYKERNEL

Przyszedł czas na edycję pliku konfiguracyjnego jądra. W przykładzie nazywa się on MYKERNEL. Jeśli dopiero zainstalowaliśmy system, jedynym z dostępnych edytorów może być vi. Mimo, że jest dobrze udokumentowany, opisany w wielu książkach, dla początkujących wydaje się on nieco zbyt skomplikowany. FreeBSD zaopatrzony jest również w drugi edytor, znacznie prostszy w obsłudze, o nazwie ee. Jeśli dopiero zaczynamy, ee powinien być naszym wyborem. Nie krępujmy się i zmieńmy wartości na górze pliku, szczególnie te, odróżniające nasz własny plik od GENERIC.

Jeśli już kompilowaliśmy jądro w SunOS? lub innych systemach BSD, duża część pliku konfiguracyjnego powinna być nam znajoma. Jeśli natomiast jesteśmy lepiej zaznajomieni z systemami typu DOS, plik konfiguracyjny może wydać się nam nieco obcy. W tym przypadku przeczytajmy uważnie każdą opcję oraz komentarz w pliku konfiguracyjnym.

Notatka:
Jeśli
z najnowszymi źródłami projektu FreeBSD, należy zawsze, nim rozpoczniemy jakiekolwiek działania aktualizujące, zapoznać się z zawartością pliku /usr/src/UPDATING. W pliku tym zapisane są wszelkie niezbędne zagadnienia związane z aktualizacją FreeBSD. Plik /usr/src/UPDATING zawsze pasuje do źródła naszej wersji FreeBSD, jest przez to bardziej odpowiednim źródłem informacji niż Podręcznik.

Musimy teraz skompilować kod źródłowy jądra. Istnieją dwie procedury, za pomocą których można tego dokonać. Wybór zależeć będzie od tego w jakim celu kompilujemy jądro oraz od wykorzystywanej wersji FreeBSD.

  • Jeśli zainstalowaliśmy tylko źródła jądra, wykorzystamy procedurę 1.
  • Jeśli budujemy nowe jądro, bez aktualizowania źródeł (na przykład, by dodać dodatkowe opcje, np. IPFIREWALL), możemy użyć dowolnej z procedur.
  • Jeśli przebudowujemy jądro jako część procesu make buildworld, powinniśmy użyć procedury 2.

Jeśli nie aktualizowaliśmy naszych źródeł w żaden sposób od ostatniego, zakończonego powodzeniem cyklu buildworld-installworld (nie uruchamialiśmy CVSup, CTM, ani nie korzystaliśmy z anoncvs), wówczas bezpiecznym jest skorzystać z sekwencji config, make depend, make i make install.

 

Procedura 1. Budowanie jądra w ?tradycyjny? sposób.


  1. By wygenerować kod źródłowy jądra, należy uruchomić config(8).
    # /usr/sbin/config MYKERNEL

  2. Następnie, przenieśmy się do katalogu w którym dokonuje się budowy. Po ponownym uruchomieniu config(8) wyświetlona zostanie nazwa katalogu.
    # cd ../compile/MYKERNEL

  3. Skompilujmy jądro.
    # make depend
    # make

  4. Zainstalujmy nowe jądro.
    # make install

 

Procedura 2. Budowanie jądra w ?nowy? sposób.


  1. Wejdźmy do katalogu /usr/src.
    # cd /usr/src

  2. Skompilujmy jądro.
    # make buildkernel KERNCONF=MYKERNEL

  3. Zainstalujmy nowe jądro.
    # make installkernel KERNCONF=MYKERNEL

Notatka:
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.

Podpowiedź:
Domyślnie, podczas kompilacji indywidualnego jądra,
wszystkie
moduły jądra zostaną również zrekompilowane. Jeśli chcemy zaktualizować jądro szybciej bądź zbudować tylko własne moduły, powinniśmy przed rozpoczęciem kompilacji jądra zmodyfikować plik /etc/make.conf:

MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs

 

Zmienna ta definiuje listę modułów do kompilacji zamiast wszystkich. Inne zmienne przydatne w procesie kompilacji jądra opisane zostały w podręczniku systemowym
.

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. W razie jakby coś poszło źle, na końcu tego rozdziału przedstawionych zostało kilka awaryjnych rozwiązań. Przeczytajmy również rozdziały opisujące co zrobić w razie, gdy system nie chce się ponownie uruchomić.

Notatka:
Inne pliki związane z procesem uruchamiania, np. takie jak
czy pliki konfiguracyjne są przechowywane w katalogu /boot. Własne moduły jak i moduły innych producentów, można umieszczać w katalogu /boot/kernel, jednakże użytkownicy powinni być świadomi, iż synchronizacja modułów ze skompilowanym jądrem jest bardzo ważna. Moduły nie przygotowane do pracy z danym jądrem mogą doprowadzić do niestabilności czy błędów.

 

2. Plik konfiguracyjny

Ogólny format pliku konfiguracyjnego jest całkiem prosty. Każda linia zawiera słowo kluczowe i jeden lub więcej argumentów. Dla ułatwienia większość linii zawiera tylko jeden argument. Cokolwiek poprzedzone znakiem # jest uważane za komentarz i ignorowane. Ten rozdział opisuje każde słowo kluczowe w ogólnym porządku jaki zawiera plik GENERIC. device.hints(5) jest wykorzystywany do konfiguracji opcji sterowników urządzeń. Domyślną lokacją sprawdzaną przez loader(8) w trakcie uruchamiania systemu jest /boot/device.hints. Wykorzystując opcję hints możemy wkompilować je statycznie w jądro. Tym samym nie będzie potrzeby tworzenia pliku device.hints w katalogu /boot.

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(1). Ten sam efekt można również osiągnąć poprzez opcję -g w config(8) przy korzystaniu z ?tradycyjnej? metody kompilacji jądra (Sekcja 8.3 zawiera więcej informacji na temat budowy jądra).

options SCHED_4BSD # 4BSD scheduler

 

Tradycyjny i domyślny systemowy zarządca procesów FreeBSD. Nie zmieniajmy tego.

options PREEMPTION # Enable kernel thread preemption

 

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.

options NFSCLIENT # Network Filesystem Client

options NFSSERVER # Network Filesystem Server

options NFS_ROOT # NFS usable as /, requires NFSCLIENT

 

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.

Notatka:
Parametr -p polecenia
wyświetli każdy proces, który używa tych dogodności Sytemów V.

options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions

 

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.

# Floppy drives

device fdc

 

Kontroler stacji dyskietek.

# ATA and ATAPI devices

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.

umass(4) i kilka innych sterowników wykorzystuje podsystem SCSI chociaż nie są one prawdziwymi urządzeniami SCSI. Tym samym musimy pamiętać by nie usunąć całkowicie obsługi SCSI jeśli którykolwiek z tego typu sterowników został uwzględniony w konfiguracji jądra.[/indent]

# 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.

Notatka:
Jeśli posiadamy wewnętrzny modem na COM4 oraz port szeregowy COM2, należy zmienić IRQ modemu na 2 (z technicznych pobudek IRQ2 = IRQ9) bo takiej kolejności wymaga FreeBSD. Jeśli posiadamy wieloportową kartę szeregową musimy odwołać się do podręcznika systemowego
po więcej informacji o właściwych ustawieniach w pliku /boot/device.hints. Niektóre karty wideo (zwłaszcza te bazujące na chipie S3) używają adresów we/wy w postaci 0x*2e8, a ponieważ wiele tanich kart szeregowych nie dekoduje w pełni 16-bitowej przestrzeni adresowej we/wy, powodują one konflikt sprzętowy czyniąc port COM4 praktycznie niedostępnym.

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.

Notatka:
Powyższe trzy wpisy są wymagane, by było możliwe korzystanie z 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).

# PCI Ethernet NICs.

device de # DEC/Intel DC21x4x (?Tulip?)

device em # Intel PRO/1000 adapter Gigabit Ethernet Card

device ixgb # Intel PRO/10GbE Ethernet Card

device txp # 3Com 3cR990 (?Typhoon?)

device vx # 3Com 3c590, 3c595 (?Vortex?)

 

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.

device bce # Broadcom BCM5706/BCM5708 Gigabit Ethernet

device bfe # Broadcom BCM440x 10/100 Ethernet

device bge # Broadcom BCM570xx Gigabit Ethernet

device dc # DEC/Intel 21143 and various workalikes

device fxp # Intel EtherExpress PRO/100B (82557, 82558)

device lge # Level 1 LXT1001 gigabit ethernet

device nge # NatSemi DP83820 gigabit ethernet

device nve # nVidia nForce MCP on-board Ethernet Networking

device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc')

device re # RealTek 8139C+/8169/8169S/8110S

device rl # RealTek 8129/8139

device sf # Adaptec AIC-6915 (?Starfire?)

device sis # Silicon Integrated Systems SiS 900/SiS 7016

device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet

device ste # Sundance ST201 (D-Link DFE-550TX)

device ti # Alteon Networks Tigon I/II gigabit Ethernet

device tl # Texas Instruments ThunderLAN

device tx # SMC EtherPower II (83c170 ?EPIC?)

device vge # VIA VT612x gigabit ethernet

device vr # VIA Rhine, Rhine II

device wb # Winbond W89C840F

device xl # 3Com 3c90x (?Boomerang?, ?Cyclone?)

 

Sterowniki wykorzystujące szynę MII.

# 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.

tcpdump(1).

Notatka:
Urządzenie
jest również wykorzystywane przez
, by uzyskać adres IP domyślnego rutera (bramki) itp. Jeśli używamy DHCP pozostawmy ten wpis.

# 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 informacji o wymienionych oraz dodatkowych urządzeniach obsługiwanych przez FreeBSD znaleźć można w pliku /usr/src/sys/i386/conf/NOTES.

 

bus_dma(9) spowodują utratę danych w jądrze z włączoną opcją PAE. Tym samym odradza się ich stosowanie. Z tego właśnie powodu plik konfiguracyjny jądra z opcją PAE jest dostarczany w wersji FreeBSD nie zawierającej żadnych ze sterowników, o których nie wiadomo, że współpracują poprawnie z jądrem z włączoną opcją PAE.

  • Niektóre narzędzia dostrajania systemu określają wykorzystanie zasobów pamięci na podstawie ilości dostępnej pamięci fizycznej. Takie programy mogą niepotrzebnie przydzielać więcej pamięci niż powinny, z uwagi na naturę dużego rozmiaru pamięci systemu PAE. Przykładem może być opcja sysctl kern.maxvnodes, która kontroluje maksymalną liczbę dopuszczalnych węzłów w jądrze. Zaleca się modyfikację tych i innych parametrów do rozsądnych wartości.
  • Może być potrzebnym zwiększenie rozmiaru przestrzeni adresów KVA bądź redukcja ilości specyficznych zasobów jądra często wykorzystywanych (patrz wyżej) w celu uniknięcia wyczerpania KVA. Do zwiększenia przestrzeni KVA może być wykorzystania opcja jądra KVA_PAGES.
    W przypadku uwag odnośnie wydajności i stabilności pracy zaleca się lekturę podręcznika systemowego tuning(7). Podręcznik systemowy pae(4) zawiera aktualne informacje odnośnie obsługi PAE we FreeBSD.
    3. Jeśli pojawią sie kłopoty:
    Istnieje pięć kategorii problemów, które możemy napotkać budując jądro. Oto one:
    Błąd config:
    Jeśli program config(8) zgłosił błąd podczas przetwarzania naszego pliku konfiguracyjnego, najprawdopodobniej popełniliśmy mały błąd w postaci literówki. Na szczęście config(8) wyświetli linię, z którą miał problem, dzięki czemu będziemy mogli szybko do niej dotrzeć. Na przykład, jeśli widzimy:
    config: line 17: syntax error
     
    Upewnijmy się, że słowo kluczowe zostało poprawnie wprowadzone, porównując z oryginalnym plikiem GENERIC lub z innym wiarygodnym źródłem. Błąd make:
    Jeśli pojawił się błąd podczas wykonywania polecenia make, zwykle wskazuje to na błąd w naszym opisie jądra. Nie jest to jednak błąd na tyle wyraźny, aby wykazał go config(8). Jak poprzednio, musimy przejrzeć plik konfiguracyjny jądra. Jeśli w dalszym ciągu nie możemy rozwiązać problemu, możemy wysłać nasz plik konfiguracyjny na Ogólną listę dyskusyjną FreeBSD gdzie nasz problem zostanie rozwiązany bardzo szybko. Jądro nie uruchamia się ponownie:dmesg(8) wyświetla informacje z jądra, pochodzące z bieżącego uruchomienia.


    Notatka: Jeśli mamy problemy ze zbudowaniem jądra, upewnijmy się, że posiadamy jądro GENERIC lub inne działające jądro nazwane tak, by nie zostało nadpisane po kolejnym procesie budowy. Nie możemy polegać na kernel.old, ponieważ gdy instalujemy nowe jądro, kernel.old jest nadpisywane przez ostatnio zainstalowane jądro, które może być niedziałające. Ponadto, powinniśmy tak szybko, jak to tylko możliwe, przenieść działające jądro do właściwej lokalizacji /boot/kernel, albo komendy takie jak ps(1) nie będą działały poprawnie. By to zrobić wystarczy zmienić nazwę katalogu zawierającego właściwe jądro:

    # mv /boot/kernel /boot/kernel.bad

    # mv /boot/kernel.good /boot/kernel

    Jądro działa, ale przestało ps(1):
    Jeśli zainstalowaliśmy inną wersję jądra, niż tą, z którą były budowane narzędzia systemowe, na przykład jądro -CURRENT na systemie -RELEASE, wiele poleceń pokazujących stan systemu, jak ps(1), czy vmstat(8) nie będzie działało. Musimy dokonać rekompilacji i instalacji world zbudowanych na podstawie tej samej wersji źródeł co nasze jądro. Jest to jeden z powodów, dla których nie jest najlepszym pomysłem instalowanie różnych wersji jądra i systemu operacyjnego.
     
    Jeden z pierwszych tutków w dziale FreeBSD

:) proszę o szczerą krytykę

BANER468.gif
Opublikowano

Autor 99% nie rozumie i daje tuta <facelam> daj zrodlo

Chyba stąd zajebał =D

 

http://freebsd.therek.net/handbook/kernelconfig.html

x

Opublikowano

Jak ja nie nawidzę ludzi, którzy bezmyślnie kopiują coś, czego nie rozumieją [.....].

 

Do rekompilacji nowego jądra styknie pobranie "base i sys" z source :C .

 

Owszem warto wyjebać niepotrzebne moduły, ale to czasem wiąże się z ryzykiem .

 

Zanim coś skopiujesz - pomyśl 10 x, i daj zawodowcom pracować ^^ .

 

Mówię o osobach takich jak : AdminFreeBSD, Maliusek, False, a nawet i SejBes :) . Ofc o sobie też dopomne, hehehe ^^

Opublikowano

Szczerą krytykę dot. poradnika?

Więc, tak, poradnik bardzo dobry, opisuje dokładnie krok po kroku budowanie jądra, naprawdę miodzio.

 

 

Ale jeżeli chodzi o krytykę dla Ciebie to proszę:

Powiedz mi proszę, w jaki sposób do tak niskiego poziomu można sie zniżyć ?

Aby kopiować handbook'a słowo w słowo, nawet bez dodania jakiś kolorów czy oprawy graficznej, tylko po prostu czysta kopia czegoś, czego się nie rozumie, na dodatek przytoczeniu sobie praw autorskich, bez podania źródła i dodatkowe napisania z prośbą o krytykę "twojego dzieła".

Po prostu, wstydzę się czasem kraju w jakim żyję.

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...