Možnosti konfigurace jádra Freebsd 11. Další materiály o Freebsd. Vlastní přizpůsobení jádra

3. června 2015 12:15 hodin 2 161 zobrazení | Žádné komentáře

operační systém FreeBSD 10.1 standardně používá GENERICKÉ jádro. Tento standardní konfigurace slouží k podpoře velké množství hardware po vybalení z krabice. Kompilace vlastního jádra zase zlepšuje zabezpečení, funkčnost a výkon serveru.

FreeBSD k tomu používá dvě větve kódu: stabilní a aktuální. Stabilní větev je nejnovější vydání kódu připravené k produkci. Aktuální větev je nejnovější vydání kódu od vývojového týmu, které poskytuje pokročilé funkce, ale je také zranitelnější vůči chybám a nestabilitě systému. V tento manuál Používá se stabilní kódová větev.

Tento tutoriál vám ukáže, jak upravit vlastní kompilaci jádra FreeBSD.

Požadavky

1: Stažení zdrojového kódu jádra

Nejprve si musíte stáhnout zdrojový kód operačního systému.

FreeBSD, stejně jako mnoho jiných unixových distribucí, zpřístupňuje svůj kód veřejně ke stažení a úpravě. Abyste mohli překompilovat jádro, musíte si nejprve stáhnout zdrojový kód ze systému správy verzí FreeBSD.

Tým FreeBSD používá k ukládání kódu úložiště Subversion, takže nejprve musíte nainstalovat binární port Subversion.

sudo pkg install subversion

Ve výchozím nastavení používá systém FreeBSD shell tcsh, který používá interní hashovací tabulku příkazů v $PATH. Po Subversion instalace je potřeba spustit příkaz rehash, díky kterému systém znovu načte konfigurační soubory.

Nyní najděte kopii nejnovější stabilní větev v adresáři /usr/src.

sudo svn co https://svn0.us-east.FreeBSD.org/base/stable/10 /usr/src

Systém vás může vyzvat k přijetí certifikátu serveru. Chcete-li to přijmout, zadejte p a ujistěte se, že to je kontrolní součet soubor (nebo otisk prstu) odpovídá množství uvedenému ve spodní části této stránky.

2: Vlastní přizpůsobení jádra

Nyní můžete začít konfigurovat jádro systému.

Podle konvence pojmenování konfiguračního souboru jádra musí být název jádra napsán velkými písmeny. V této příručce se tento soubor bude jmenovat PŘÍKLAD. Nastavení jádra jsou uložena v adresáři /usr/src/sys/architecture/conf; Řekněme, že je použita architektura AMD64.

Otevřete konfigurační adresář:

cd /usr/src/sys/amd64/conf

Vytvořte soubor EXAMPLE a otevřete jej pro úpravy v libovolném textový editor(v tomto případě se používá):

GENERIC kernel podporuje obrovskou škálu různého hardwaru; Jádro EXAMPLE podporuje pouze hardware potřebný pro běh serveru, všechna standardní a nepotřebná zařízení jsou odstraněna. EXAMPLE také podporuje firewall pro filtrování paketů (pf), tvarování provozu (altq), šifrování souborového systému (geom_eli) a zabezpečení IP (IPsec).

Poznámka Poznámka: Více o možnostech si můžete přečíst v dokumentaci FreeBSD. Zkuste napsat kód jádra sami.

3: Sestavení a instalace jádra

Po vytvoření vlastní konfigurace kernel, musíte jej sestavit a znovu zkompilovat.

Vraťte se do adresáře /usr/src a spusťte make buildkernel pomocí nového konfigurační soubor:

cd /usr/src
sudo make buildkernel KERNCONF=EXAMPLE

To může nějakou dobu trvat v závislosti na množství serverových prostředků (v průměru trvá kompilace 1GB serveru 90 minut).

Po dokončení rekompilace nainstalujte nové jádro:

sudo make installkernel KERNCONF=EXAMPLE

Poté restartujte systém.

sudo shutdown -r nyní

Poté server deaktivuje aktuální služby, synchronizuje disky a aktualizuje jádro.

Po restartu serveru se přihlaste. Pomocí následujícího příkazu ověřte, zda systém používá konfigurační soubor jádra.

sysctl kern.conftxt | grep ident

Na obrazovce by se měl objevit následující výsledek:

Nastavení jádra a rekompilace byly úspěšně dokončeny.

Štítky: ,

Distribuce Fryukhi je často označována za nejvhodnější pro řešení aplikovaných síťových problémů v místní síti. Dnes vyřešíme jeden ze síťových problémů – nastavení brány na Freebsd 10 pro přístup k internetu z místní oblasti. Jedná se o jednoduchou, oblíbenou a vyhledávanou funkcionalitu serveru, kterou lze rozšířit o další funkce.

budeme používat další verze systémy k vyřešení našeho problému s nastavením brány:

# uname -v FreeBSD 10.2-RELEASE-p8 #0 r292756M: So 26. prosince 22:49:34 MSK 2015 root@freebsd:/usr/obj/usr/src/sys/GENERIC

Server má nainstalované 2 síťové karty:

  • hn0— externí rozhraní, přijímá internet od poskytovatele, nastavení přes dhcp
  • hn1místní síť, adresa 10.20.30.1, nastavit ručně

Náš úkol nastavení softwarového freebsd routeru bude zahrnovat nastavení směrování na serveru, instalaci a konfiguraci ipfw, povolení nat, nastavení lokálního dhcp a dns serveru.

Příprava serveru na konfiguraci brány

Informace o vydaných dhcp pronájmech serveru dnsmasq lze zobrazit v souboru /var/db/dnsmasq.leases.

Analýza síťové aktivity ve freebsd pomocí iftop

Někdy chcete vidět, co se děje na routeru a kdo používá internet momentálně. Systém standardně nemá připravený nástroj pro získávání těchto informací. Na pomoc nám přijde jednoduchý iftop program, který umožňuje sledovat aktivitu na síťovém rozhraní v reálném čase.

Instalovat iftop na nakonfigurovanou bránu Freebsd:

# pkg instalace iftop

Spustíme iftop s uvedením rozhraní a zobrazením použitých portů:

# iftop -i hn1 -P

Vidíme zajímavý obrázek – kdo kam leze, jakým přístavem a jakou rychlostí.

Jako příklad jsem spustil generátor internetového provozu na jednom z počítačů. Zabíralo to téměř celý kanál a na routeru pomocí iftop to bylo jasně vidět. Tato jednoduchá utilita samozřejmě neřeší všechny problémy spojené se sledováním síťové aktivity, ale hodí se pro prezentaci aktuálního obrázku, pokud nepotřebujete nic víc.

Závěr

Pojďme si shrnout, co jsme udělali. Pro krátká doba Nakonfigurovali jsme plnohodnotnou bránu (v podstatě softwarový router) založenou na Freebsd 10, aby poskytovala přístup k internetu pro klienty za serverem. Zároveň byl zajištěn automatický příjem nastavení. I na skromném virtuálním serveru je taková brána schopna zpracovat poměrně velký provoz.

Celé nastavení trvá doslova 10-15 minut. Většinu času zabere sestavení jádra. Čím vyšší Verze Freebsd, tím déle trvá sestavení, a to i přesto, že se rychlost železa výrazně zvyšuje.

Pojďme si projít body a zjistit, co přesně jsme udělali:

  1. Připravili jsme server pro konfiguraci brány.
  2. Přestavěli jsme jádro s potřebnými parametry.
  3. Nakonfigurovali jsme ipfw a nat a povolili směrování.
  4. Nainstalovaný a nakonfigurovaný dnsmasq pro distribuci nastavení sítě přes dhcp a dns server.
  5. Pro jednoduchou analýzu síťové aktivity na externím rozhraní jsme nainstalovali iftop.

To stačí k tomu, aby brána plně fungovala na Freebsd 10. Pokud je potřeba počítat uživatelský provoz nebo omezit přístup k určitým zdrojům, můžete to použít.

Článek popisuje, jak kompilovat jádro FreeBSD. Při správné konfiguraci lze velikost jádra výrazně snížit.

Abyste mohli zkompilovat své jádro, musíte nainstalovat zdrojové kódy jádra (src-Source pro vše kromě šifrování). Pokud jsou již nainstalovány, přejděte do adresáře /usr/src/sys (kernel FreeBSD). Pokud nemáte nainstalované zdroje jádra, můžete je nainstalovat pomocí sysinstall. Předpokládáme, že jste nainstalovali zdrojové kódy jádra.

Pod uživatel root přejděte do složky /usr/src/sys/i386/conf.

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

Zkopírujte soubor GENERIC, například do mykernel. Výsledný soubor upravíme.

Pokud máte počítač Pentium4, doporučuji vám okamžitě okomentovat řádky:

Citovat
CPU I386_CPU
CPU I486_CPU
CPU I586_CPU

nechte náš stroj nakonfigurovat pro konkrétní procesor a nestříkejte ho nejrůznějšími odpadky;)

Nepoužívaná zařízení můžete zakázat, čímž se sníží velikost jádra a tím i zatížení procesoru. Po spuštění počítače můžete zjistit, jaká zařízení máte pomocí příkazu dmesg.

Můžete také přidat zařízení, která nejsou ve výchozím nastavení v jádře podporována. Zařízení jsou podrobněji popsána v souboru LINT pro větev FreeBSD 4.xa v souboru NOTES pro větev FreeBSD 5.x.

Poté, co jsme soubor upravili, můžeme jej začít kompilovat.

Budeme muset spustit následující příkazy:

Pokud vše proběhlo v pořádku, pak vše, co musíme udělat, je restartovat.

P.S. Před experimentováním vám doporučuji uložit normální jádro, například pod názvem kernel.good, a pokud se naše nové jádro nenačte, uvedeme místo kernel.old boot kernel.good. Navrhuji to udělat, protože když znovu zkompilujeme jádro, naše kernel.old se přepíše například nefunkčním jádrem a nebudeme moci vůbec zavést.

P.P.S. Udržování dobře fungujícího jádra:

Pro FreeBSD 4.x - příkaz cp /kernel /kernel.good

Pro FreeBSD 5.x - příkaz cp -R /boot/kernel /boot/kernel.good

Druhý způsob aktualizace jádra:

Přejděte do adresáře /usr/src.

Sestavte jádro.

# make buildkernel KERNCONF=MYKERNEL

Nainstalujte nové jádro.

# make installkernel KERNCONF=MYKERNEL

Poznámka: Tato metoda sestavení vyžaduje přítomnost všech zdrojových systémových souborů. Pokud jste právě nainstalovali zdrojové soubory jádra, použijte tradiční metodu popsanou výše.

MYKERNEL je konfigurační soubor vašeho jádra, který se pro i386 nachází ve složce /usr/src/sys/i386/conf. Pokud nezadáte parametr KERNCONF, sestaví se GENERIC kernel.

Dnes se naučíme, jak sestavit jádro a svět FreeBSD (hlavní spustitelné soubory, knihovny atd.) z podobných kódů. Dříve v příspěvku PostgreSQL: sestavení ze zdroje a nastavení pro Linux jsme zjistili, proč musíte být schopni sestavit něco ze zdroje. Hlavními scénáři jsou optimalizace pro konkrétní hardware a získávání nejnovějších věcí přímo z hlavní pobočky. Kromě toho si můžete upravit jádro tak, aby vyhovovalo vašim konkrétním potřebám – vybrat plánovač, zakázat IPv6, odebrat podporu pro nepotřebný hardware atd. A konečně, pokud se náhle plánujete stát autorem jádra FreeBSD, znalost toho, jak je toto jádro sestavováno, nebude zbytečná.

Vyloučení odpovědnosti: Mnoho z toho, co je napsáno níže, již nemusí být relevantní v době, kdy budete číst toto. Než budete postupovat podle uvedených pokynů, bylo by dobré nejprve zkontrolovat příručku. Všimněte si také, že níže mluvíme o výhradně o sestavení jádra a světa ze zdroje a postup binární aktualizace systému jsou popsány v poznámce Memo pro aktualizaci jádra a světa FreeBSD.

Příprava prostředí

Při psaní této poznámky jsem použil následující instalační disk:

FreeBSD-10.2-RELEASE-amd64-disc1.iso

Neměl jsem po ruce žádný další hardware, takže všechny experimenty byly prováděny na VirtualBoxu. VirtualBox byl vybrán před Vagrantem, protože bychom potřebovali přístup k systémovému monitoru. Ve VirtualBoxu byly v nastavení sítě vytvořeny dva adaptéry – jeden NAT a jeden Host Only. První je potřeba pro přístup hostujícího systému k internetu. Druhý vám umožní přístup k hostujícímu systému z hostitelského systému přes SSH.

Po instalaci systému nainstalujte balíčky git-lite, vim-lite, tree, bash, sudo, upravte /usr/local/etc/sudoers a poté změňte uživatelský shell:

sudo chsh -s /usr/local/bin/bash eax

V ~/.gitconfig přidáme:


pager = méně -S

Osobně se mi také líbí mít v systému obvyklý htop:

cd/usr/posts
sudo portsnap fetch extrakt
cd sysutils/htop
sudo make -DBATCH install clean

Podrobnosti o počáteční nastavení systémy a správu balíčků ve FreeBSD lze nalézt v poznámkách Používání FreeBSD na ploše, verze 2.0 a Správa balíčků ve FreeBSD pomocí nástroje pkg.

Sestavení jádra

Jak je jádro FreeBSD sestaveno, je řízeno několika konfiguračními soubory.

Některá nastavení jsou v /etc/make.conf. Tento soubor ovlivňuje sestavení portů, svět, jádro FreeBSD a obecně jakékoli programy napsané v C. Zde můžete určit CPU, pro které je sestavení vytvořeno, příznaky optimalizace a tak dále. Seznam všech dostupné možnosti můžete se podívat do /usr/share/examples/etc/make.conf a man make.conf . Příklad /etc/make.conf:

# použijte Clang 3.7 místo výchozí 3.4
CC=/usr/local/bin/clang37
CXX=/usr/local/bin/clang++37
CPP=/usr/local/bin/clang-cpp37

# optimalizujte kód pro CPU použitý na stroji
CPUTYPE?=nativní

# příznaky při kompilaci kódu v C a C++
CFLAGS+=-O2 -potrubí
CXXFLAGS+=-O2 -potrubí

Existuje také /etc/src.conf, který má trochu jiné nastavení a ovlivňuje pouze jádro a svět. Podrobnosti viz man src.conf. Příklad /etc/src.conf:

CPUTYPE?=nativní
CFLAGS+=-O2 -potrubí
COPTFLAGS+=-O2 -potrubí

Nakonec je zde také konfigurační soubor pro samotné jádro. O tom bude řeč později.

Pokud v instalace FreeBSD Pokud jste zaškrtli políčko „nainstalovat všechny zdroje“, pak jádro a světové zdroje budou umístěny v adresáři /usr/src. Informace o tom, co je ve kterém podadresáři, lze nalézt v Příručce pro vývojáře a v souboru README.

# místo hlavy uveďte větev nebo značku, o kterou máte zájem
cd / usr/ src && sudo svn co http:// svn.freebsd.org/ base/ head/ ./

Nastavení, se kterými je jádro sestaveno, jsou v souboru:

/usr/src/sys/(architektura)/conf/(config)

Název architektury závisí na vašem CPU. Zpravidla se jedná o i386 nebo amd64. Výchozí konfigurace jádra v systému se nazývá GENERIC. Můžete jej zkopírovat a pojmenovat například MYKERNEL.

cd sys/ amd64/ conf
sudo cp GENERIC MYKERNEL

Konfigurace je dobře zdokumentována. Můžete například zakázat podporu pro IPv6 a IPSec tak, že zakomentujete dva řádky:

#options INET6
#optionsIPSEC

Důležité! CURRENT ve výchozím nastavení obsahuje mechanismus svědků, který je navržen tak, aby vyhledával uváznutí. Uvědomte si, že může do konzole vydávat děsivé stopy zásobníku, z nichž některé jsou chyby a měly by být nahlášeny do konference freebsd-current@ a některé z nich jsou zcela neškodné. Také se uvádí, že tento mechanismus je poměrně pomalý, a proto jej možná budete chtít vypnout.

Sestavíme jádro s našimi nastaveními:

cd ../ ../ ..
sudo make -j4 buildkernel KERNCONF =MYKERNEL

Před instalací jádra vytvořte záložní kopii aktuálního jádra:

sudo cp -r /boot/kernel/ /boot/kernel.good

Při instalaci nového jádra se automaticky vytvoří záložní kopie, ale tato kopie bude přepsána další instalace. Po vytvoření ruční zálohy budeme mít vždy po ruce 100% fungující GENERIK, ze kterého můžeme bootovat, pokud nastanou problémy.

Instalace nového jádra:

sudo make installkernel KERNCONF =MYKERNEL

Po instalaci bude jádro v adresáři /boot/kernel a záložní kopie aktuálního jádra bude v /boot/kernel.old.

Místo několika kroků buildkernel a installkernel můžete také použít příkazy:

sudo make -j4 kernel KERNCONF =MYKERNEL INSTKERNNAME =kernel.test
sudo nextboot -k kernel.test

To by nám řeklo, abychom vložili jádro do /boot/kernel.test a použili jej jednou při příštím zavádění. Pokud vše půjde dobře, po restartu může být /boot/kernel.test přejmenován na /boot/kernel. Tato možnost může být výhodnější, pokud ke stroji není fyzický přístup.

Restartovat:

sudo restart

Po načtení systému zkontrolujte verzi jádra:

uname -a

Měl by vidět něco takového

FreeBSD vbox 11.0-AKTUÁLNÍ FreeBSD 11.0-AKTUÁLNÍ #0 6a8922d(master): Út
28. února 13:40:05 MSK 2016 root@vbox:/usr/obj/usr/src/sys/MYKERNEL amd64

Pokud se něco pokazí, můžete při zavádění systému vybrat v nabídce boot from kernel.old (stisknutím čísla 5). Můžete také vybrat „Escape to a loader prompt“ (stisknutím čísla 3) a vybrat jakékoli jádro, například:

boot kernel.good

Tímto způsobem, i když náhle zasekneme jádro, je zde záložní padák.

Dáváme svět dohromady

Svět FreeBSD 10 téměř jistě nebude tím nejlepším možným způsobem pracovat s jádrem FreeBSD 11 Proto má smysl okamžitě aktualizovat svět spolu s přebudováním jádra systému.

Důležité! Kompilace světa může trvat tolikčas, zvláště pokud jste ve VirtualBoxu dali virtuálnímu stroji pouze jedno jádro. Pokud používáte skutečný stroj, budete potřebovat fyzický přístup k ní. Budete také muset ručně sloučit mnoho konfigurací, potvrdit smazání mnoha souborů a poté (!) znovu nainstalovat všechny nainstalované balíčky a znovu vše sestavit nainstalované porty. Možná, že místo sestavování nového světa pro vás bude jednodušší stroj dočasně vyřadit z provozu, nasadit nový systém a nakonfigurujte vše, co potřebujete. Nebo použijte již zmíněný mechanismus binární aktualizace. Zdá se mi, že přebudování světa je postup spíše pro vývojáře FreeBSD než pro správce bojových serverů.

Pojďme tedy do adresáře se zdroji:

cd/usr/src

Čistíme dočasné soubory, které mohly zůstat z předchozího sestavení:

sudo rm -rf /usr/obj

Dát svět dohromady:

sudo make -j4 buildworld

Pro minimalizaci rizik spojených s aktualizací již běžících a spuštěných aplikací se doporučuje přepnout OS do režimu pro jednoho uživatele:

# v okně VirtualBoxu nebo stojící vedle serveru
sudo teď vypnout

Nyní připojíme souborový systém (mám ZFS):

zfs nastaveno jen pro čtení =off zroot
zfs mount -a

Pokud používáte UFS, pak.

Na internetu jsou tuny článků, co chcete, sbírejte jádro, já vám napíšu, co používám a proč, kdo nesouhlasí, napište níže :)

1. Zkopírujeme naše dobré jádro, co kdyby... (ano, vím, že při instalaci se to staré přesune do kernel.old)

# cp -R kernel/ kernel.good/

2. Shromažďování informací: jaké máme na matce ovladače a jaký hardware?

# cat /var/run/dmesg.boot Podívejte se, jaké ovladače jsou pro nás užitečné # pciconf -lv

3. Zkontrolujeme, zda je na místě zdrojové kódy

# ls /sys

3.0 Pokud tam nejsou, vezmeme je buď z disku nebo z internetu:
3.0a Z disku

Mount /cdrom cd /cdrom ls ; měli byste vidět složky na disku cd src/ ./install.sh all cd /usr/src/umount /cdrom

3.0b Pokud náhodou máme internet, ale žádný disk, pak (v mém případě Frya 8.3):

Cd /usr/ports/devel/subversion make config-recursive svn checkout http://svn.freebsd.org/base/releng/8.3/ /usr/src grep -A 2 "TYPE="" /usr/src/sys /conf/newvers.sh Měl by zobrazit něco takového TYPE="FreeBSD" REVISION="8.3" BRANCH="RELEASE-p4"

Pokud někdy budeme chtít aktualizovat zdrojové kódy, pak:

Aktualizace svn /usr/src/

Potřebujeme také VPN, pppoe server s MPPE kompresí a šifrováním
3.1 pull http://mavhome.dp.ua/MPPC/mppc-1.0.tgz

Wget http://mavhome.dp.ua/MPPC/mppc-1.0.tgz

3.2 Rozbalte do /usr/src/sys/net

Cd /usr/src/sys/net tar -xvf /usr/home/username/mppc-1.0.tgz

4. Zkopírujte obecnou konfiguraci (přepíšeme ji a budeme mít vlastní jádro)
Kousek teorie
Konfigurační soubory naleznete v adresáři /sys/»arch»/conf. Adresář obsahuje několik souborů, z nichž nejdůležitější jsou:
DEFAULTS Toto je seznam nastavení a zařízení, která jsou pro tuto architekturu standardně povolena.
GENERIC Tento soubor obsahuje konfiguraci standardního jádra.
GENERIC.hints Toto je soubor nápovědy, který je následně nainstalován jako /boot/device.hints. V tento soubor obsahuje konfigurační informace potřebné ke konfiguraci starších hardwarových zařízení.
MAC Tento konfigurační soubor jádra poskytuje podporu pro Mandatory Access Controls, víceúrovňový systém řízení přístupu používaný ve vysoce bezpečných prostředích. Tento konfigurační soubor je vyžadován pouze při použití MAC.
POZNÁMKY Toto je komplexní konfigurace jádra pro danou hardwarovou architekturu, včetně všech funkcí specifických pro platformu. Funkce nezávislé na platformě lze nalézt v /usr/src/sys/conf/NOTES.

# cd /usr/src/sys/i386/conf # mkdir /root/kernels # cp GENERIC /root/kernels/MYKERNEL # ln -s /root/kernels/MYKERNEL

5. Podívejme se, z čeho se skládá naše jádro, a upravme generikum
Parametry jádra:
CPU Tento štítek označuje, které typy procesorů jsou podporovány jádrem. Konfigurace jádra pro hardwarovou platformu amd64/EM64T obsahuje jednu položku označující typ procesoru.
ident obsahuje název jádra, libovolný řetězec
makeoptions Tento řádek obsahuje pokyny pro software, který vytváří jádro. Nejběžnější volbou je DEBUG=-g, která říká kompilátoru, aby zahrnul ladicí informace do jádra.
možnosti Záznamy tohoto typu popisují funkce jádra, které přímo nesouvisí s hardwarem. To zahrnuje souborové systémy, síťových protokolů a debuggery zabudované do jádra.
zařízení Položky tohoto typu popisují zařízení nebo ovladače zařízení, obsahují instrukce, které popisují, jak by jádro mělo interagovat s určitými zařízeními.

Nepotřebujeme jádro, které bude podporovat první konopí, takže ho necháme:

Cpu I686_CPU ident MYKERNEL # možnosti ladění jádra (pravděpodobně nepoužitelné v reálném životě, ale pokud zachytíte závadu # a budete to chtít nahlásit vývojářům, bude se to hodit) makeoptions DEBUG=-g #4Crypt_and_compress options NETGRAPH_MPPC_ENCRYAPHPTION options 4PF: zařízení pf zařízení pflog zařízení pfsync volby ALTQ volby ALTQ_CBQ volby ALTQ_RED volby ALTQ_RIO volby ALTQ_CDNR volby ALTQ_PRIQ volby ALTQ_NOPCC volby ALTQ_DEBUG #4MPD volby NETGRAPH volby_NETGRAPH_GRAPH Možnosti _BPF Možnosti NETGRAPH_IFACE Možnosti NETGRAPH_KSO Možnosti CKET Možnosti NETGRAPH_PPP Možnosti NETGRAPH_PPTPGRE Možnosti NETGRAPH_TCPMSS NETGRAPH_VJC #polling NEDĚLEJTE to, nyní 2012!! #options DEVICE_POLLING #options HZ=1000 # nebo 2000 nebo 4000 než více témat provoz toky rychleji #Možnosti vícenásobných směrovacích tabulek ROUTETABLES=3 # # Definuje počet deskriptorů v systému # (0 - znamená definuje „autopilota“ :))) maxusers 0 # Možnosti plánovače ULE (distribuuje toky) SCHED_ULE # Zvyšuje možnost preempce FreeBSD # účinnost v multitaskingu. možnosti PREEMPTION # InterNETworking IPv4 options INET # IPv6 komunikační protokoly IPv6 options INET6 # bez tohoto IPv6 nefunguje volby SCTP # souborový systém Volby FreeBSD FFS # Tato volba povoluje technologii Soft Updates v jádře, která # zvyšuje rychlost zápisu na disky. Ačkoli je tato technologie # v jádře povolena, musí být povolena pro jednotlivé jednotky. options SOFTUPDATES # vám umožňují definovat podrobné volby oprávnění k souborům UFS_ACL # poskytuje podporu pro indexování adresářů, což zrychluje # práci s adresáři obsahujícími tisíce souborů. options UFS_DIRHASH # povolí volby UFS žurnálování založené na gjournalu UFS_GJOURNAL # můžeme nastavit možnosti kořenového adresáře / paměťového disku MD_ROOT # Tento parametr (a všechny ostatní parametry končící na _R00T) # vám umožňuje používat jej jako diskové zařízení Pro kořenový oddíl# jiné systémy souborů než FFS. Instalační program používá paměťové zařízení (MD) jako # kořenový souborový systém. Pokud používáte # bezdiskové systémy, budete potřebovat podporu NFS jako # kořenový oddíl. Pokud instalujete FreeBSD na standardní počítač- # s pevným diskem a klávesnicí, pak nebudete potřebovat všechny tyto parametry. #options NFSCLIENT #Network Filesystem Client #options NFSSERVER #Network Filesystem Server #Tyto dvě možnosti poskytují podporu Network File System (NFS). # Parametr NFSCLIENT vám umožní připojit oddíly obsluhované # jiným počítačem v síti a parametr NFSSERVER vám umožní poskytnout přístup # k vašim oddílům pro jiné počítače. # Network Lock Manager #options NFSLOCKD # NFS použitelný jako /, vyžaduje NFSCLIENT #options NFS_ROOT # MSDOS podpora souborového systému pro tlusté oddíly možnosti MSDOSFS # ISO 9660 podpora souborového systému pro CD oddíly možnosti CD9660 # procesní souborový systém (vyžaduje PSEUDOFS) procesní souborový systém možnosti PROCFS # Možnosti rámce pseudosouborového systému PSEUDOFS # GUID Partition Tables. options GEOM_PART_GPT # Poskytuje možnosti popisování GEOM_LABEL #kompatibilní se staršími verzemi # Možnosti BSD 4.3 TTY compat (sgtty) COMPAT_43TTY možnosti COMPAT_FREEBSD4 možnosti COMPAT_FREEBSD5 možnosti COMPAT_FREEBSD6 COMPAT_FREEBSD6 možnosti COMPAT_FREEBSD7 # Zpoždění při zjišťování SCSIms řadiče # Zpoždění v pořadí (v SCSIms) podařilo # detekovat všechna zařízení k němu připojená. #options SCSI_DELAY=5000 #options KTRACE # ktrace(1) support options STACK # stack(9) support # Tyto volby poskytují podporu pro sdílenou paměť a meziprocesovou komunikaci ve stylu System V # Mnoho programů pro správu databází spoléhá na tuto funkci. #Tato možnost poskytuje podporu pro sdílenou paměť System V #Nejčastějším využitím je rozšíření XSHM v X, které #mnoho graficky náročných aplikací automaticky #používá ke zvýšení rychlosti. Pokud používáte X, bude tato možnost #potřebná. options SYSVSHM # Sdílená paměť ve stylu SYSV # Podpora Systémové zprávy V. Tato volba přidá pouze několik set bajtů do jádra #. options SYSVMSG # Fronty zpráv ve stylu SYSV # Podpora semaforů System V Není to příliš běžně používaná funkce, ale přidává do jádra jen několik set bajtů. options SYSVSEM # Možnosti semaforů ve stylu SYSV P1003_1B_SEMAPHORES # Semafory ve stylu POSIX # Rozšíření v reálném čase přidaná v roce 1993 POSIX®. # Některé aplikace v kolekci je používají, například StarOffice™. options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B možnosti rozšíření v reálném čase PRINTF_BUFR_SIZE=128 # Zabránit prolínání výstupu printf. #options KBD_INSTALL_CDEV # inst a CDEV entry in /dev for USB keyboard options HWPMC_HOOKS # Nezbytné háky jádra pro hwpmc(4) options AUDIT # Možnosti auditování bezpečnostních událostí MAC # Možnosti TrustedBSD MAC Framework FLOWTABLE # mezipaměť směrování na procesor #volby KDTRACE_HOOKS # Kernel_HOOK DTrace hooks options INCLUDE_CONFIG_FILE # Zahrnout tento soubor do jádra # možnosti pro možnosti ladění KDB # Možnosti kódu související s debuggerem jádra KDB_TRACE # Vytisknout trasování zásobníku pro paniku # K vytvoření jádra SMP jsou potřeba další dva řádky volby SMP # Symetrické víceprocesorové jádro device apic # I/O APIC (pouze i386) # enable Symmetric # Multiprocessing (SMP) v jádrech navržených pro běh na architektuře i386: # Parametr SMP dává jádru pokyn, aby naplánovalo procesy # na více CPU a volba apic poskytuje I Podpora /O pro # jader SMP. FreeBSD je distribuováno s podporou SMP, která je ve výchozím nastavení povolena. # Zařízení apic umožňuje použití I/O APIC sady k distribuci přerušení. Lze jej použít s jednoprocesorovými i víceprocesorovými jádry (pro druhé je vyžadován apic). # Zařízení pro řízení frekvence CPU cpufreq # Podpora sběrnice. zařízení acpi zařízení eisa zařízení pci # Měly by být odstraněny, pokud systém takové sběrnice skutečně nemá. # Existuje velké množství systémů bez starších verzí, # ve kterých je sběrnice ISA skryta někde uvnitř. # Disketové jednotky #zařízení fdc # Zařízení ATA a ATAPI zařízení ata zařízení atapist # Diskové jednotky ATA zařízení ataraid # Jednotky ATA RAID zařízení atapicd # Jednotky ATAPI CDROM #device atapifd # Disketové jednotky ATAPI #device atapist # Možnosti páskových jednotek ATAPI # ATA_STATIC_ID číslování # Ve statickém režimu je ovladač považován za kus hardwaru, respektive # máme 2 kanály po 2 zařízeních 0-1 a 2-3, respektive PrMaster PrSlave # a SecMaster SecSlave pro fry ad0 ad1 ad2 ad3. a pokud přesunete šroub z # PriMaster do SecMaster, pak se objemy na něm z ad0 stanou ad2. # Pokud vypnete ATA_STATIC_ID, získáme dynamické číslování nikoli podle # kanálů a zařízení, ale podle zařízení, tedy šroubů. Jednodušší je to vyjádřit takto: # pokud jsme měli jeden šroub PriMaster a tuto možnost jsme vypnuli, pak se po # spuštění nového jádra počet oddílů nezmění. Nyní, když přepnete, # pomocí kabelu nebo propojek, šroub na místě jakéhokoli jiného, ​​například SecSlave, # stále zůstane ad0! Je to jediný v autě;) # Podle toho, přidáním druhého šroubu, systém určí jejich prioritu # podle pořadí připojení # Například zapneme 2 šrouby na PriSlave a SecMaster # Získáme PriSlave - ad0 a SecMaster - ad1. # Řadiče SCSI (komentováno celou sekci) #device ahb # EISA AHA1742 rodina #device ahc # AHA2940 a vestavěná zařízení AIC7xxx #options AHC_REG_PRETTY_PRINT # Tisk bitových polí registru ve výstupu ladění #. Přidá ~128k ovladači. #device ahd # AHA39320/29320 a palubní zařízení AIC79xx #options AHD_REG_PRETTY_PRINT # Tisk bitových polí registru ve výstupu ladění #. Přidá ~215k ovladači. #Řádky jako *_REG_PRETTY_PRINT umožňují režim ladění pro odpovídající ovladače. # periferie SCSI ponechány, protože je potřeba pro USB) zařízení scbus # sběrnice SCSI (vyžadováno pro SCSI) zařízení ch # zařízení pro měniče médií SCSI da # zařízení s přímým přístupem (disky) sa # zařízení se sekvenčním přístupem (páska atd.) cd zařízení # průchod zařízením CD # Průchod zařízení (přímý přístup SCSI) zařízení ses # SCSI Environmental Services (a SAF-TE) # atkbdc0 ovládá klávesnici i myš PS/2 zařízení atkbdc # AT ovladač klávesnice zařízení atkbd # AT klávesnici zařízení psm # PS/2 zařízení myši kbdmux # klávesnice multiplexer zařízení vga # Ovladač grafické karty VGA zařízení splash # Podpora úvodní obrazovky a spořiče obrazovky # syscons je výchozí ovladač konzoly, připomínající konzolu SCO # systémové konzole- bez této položky vše funguje, ale na # místním monitoru nic nezobrazuje :)) zařízení sc device agp # podporuje několik čipových sad AGP # Správa napájení podpora (další možnosti viz POZNÁMKY) #device apm # Přidat podporu pro pozastavení/obnovení pro i8254. zařízení pmtimer # podpora PCCARD (PCMCIA) # podpora PCMCIA a cardbus bridge pro každý případ #device cbb # cardbus (yenta) bridge #device pccard # PC Card (16-bit) bus #device cardbus # CardBus (32-bit) bus # Sériové (COM) porty zařízení uart # Obecný ovladač UART # Zařízení pro paralelní port ppc # Rozhraní paralelního portu na ISA. zařízení ppbus # Sběrnice paralelního portu (vyžadováno) zařízení lpt # Tiskárna # zařízení plip # TCP/IP přes paralelní # zařízení ppi # vstup/výstup obecný účel(""geek port"") + vstup/výstup IEEE1284. #device vpo # Ovladač jednotky Iomega Zip. Vyžaduje scbus a da. # PCI Ethernet NIC. Nechal jsem jen jedno :) zařízení em # Intel PRO/1000 Gigabit Ethernet Rodina # Pseudo zařízení. # Toto je rozhraní zpětné smyčky, které umožňuje systému komunikovat se sebou # přes síťové zásuvky pomocí síťových protokolů. smyčka zařízení # Síťová smyčka # Toto zařízení poskytuje pseudo náhodná čísla, nezbytné při # operacích šifrování a podobně důležité programy jako hry. FreeBSD # poskytuje podporu pro různé zdroje náhodných čísel, z nichž # jsou všechny kombinovány do zařízení s pseudonáhodnými čísly # /dev/random /dev/urandom. device random # má mnoho funkcí specifických pro zařízení, takže FreeBSD # jej představuje jako zařízení. Opusťte tento řádek! device ether # Ethernet support device vlan # 802.1Q VLAN support # logic packet tunnel. Používá se různými # programy k výměně paketů s jádrem. Takové pseudozařízení je potřeba # pro podporu PPP pomocí prostředků mimo jádro (userland PPP) - # běžná vytáčená připojení. zařízení tun # Tunel paketů. # toto je pseudo terminál. Když se připojíte k systému přes protokoly telnet nebo # SSH, FreeBSD musí být schopno monitorovat terminálové relace, # tisknout znaky na obrazovku a číst vstup z klávesnice. Systém slouží # vzdálené připojení jako běžný fyzický monitor a klávesnice. # Pseudoterminál je pseudozařízení podobné terminálu # spojené s připojením. zařízení pty # Kompatibilita ve stylu BSD pseudo ttys # vám umožňuje ukládat soubory do paměti. To je velmi užitečné pro organizaci velmi # rychlých dočasných datových úložišť. Pro většinu (ale ne všechny) # internetových serverů jsou paměťové disky jednoduše neproduktivní # odpad BERAN. Disky v paměti lze navíc # použít k připojení a přístupu k obrazům disků. device md # Paměťové "disky" gif zařízení # IPv6 a IPv4 tunelovací zařízení víra # IPv6-to-IPv4 relaying (překlad) firmware zařízení # firmware asistenční modul # Zařízení `bpf" umožňuje Berkeley Packet Filter. # Buďte si vědomi administrátorů důsledky povolení tohoto # Všimněte si, že "bpf" je vyžadován pro DHCP zařízení bpf # Berkeley packet filter # USB support all I need options USB_DEBUG # enable debug msgs device uhci # UHCI PCI->USB interface device ohci # OHCI PCI- >. USB rozhraní zařízení ehci # EHCI PCI->USB rozhraní (USB 2.0) zařízení usb # USB Bus (požadováno) #zařízení udbp # Zařízení USB Double Bulk Pipe zařízení uhid # Zařízení "Human Interface Devices" ukbd # Zařízení s klávesnicí ulpt # Zařízení tiskárny umass # Disky/Velkokapacitní úložiště – Vyžaduje scbus a zařízení UMs # Myš #device urio # MP3 přehrávač Diamond Rio 500 # Zařízení USB sériového zařízení u3g # 3G modemy na bázi USB (volitelně, Huawei, Sierra)

6. Přejděme k řazení

# cd /usr/src

7. Sestavení jádra

# make buildkernel KERNCONF=MYKERNEL

8. Nainstalujte jádro

# make installkernel KERNCONF=MYKERNEL

10. Pokud jste jej shromáždili vzdáleně, počkejte nebo si jednorázově stáhněte nové jádro

App0. Doplněk železa
Pokud máte hardwarové zařízení, které GENERIC kernel nepodporuje, zkontrolujte soubor NOTES. Některé z funkcí uvedených v tomto souboru mají nejasný účel, ale pokud máte konkrétní zařízení Inclusions, Exclusions a Kernel Extensions, měli byste být schopni zjistit, která položka mu odpovídá.
Konfigurační mechanismus jádra FreeBSD má dvě zajímavé funkce, které mohou usnadnit údržbu jádra: žádná klíčová slova a klíčová slova. Konektivita umožňuje přidat samostatný soubor do konfigurace jádra. Pokud máte například konfiguraci jádra, která je popsána jako „OBECNÁ s párem další nastavení", můžete do něj zahrnout GENERICKOU konfiguraci pomocí příkazu include: include GENERIC Takže pokud byste například chtěli sestavit jádro, které má GENERICKOU funkcionalitu, ale zároveň podporuje mikroprocesor Soekris, můžete vytvořit konfiguraci složenou z následující řádky:
ident MYKERNEL
zahrnují GENERICKÉ
možnosti CPU_SOEKRIS
lze také použít
uzlové zařízení
nooption

Aplikace 1. Jednorázové stažení nového jádra:
1. Zkopírujte sestavené jádro do složky test good kernel (dobré jádro) do složky kernel

# mv /boot/kernel /boot/kernel.test # mkdir /boot/kernel # cp /boot/kernel.good/* /boot/kernel/

2. Při příštím spuštění se jednou načte testovací, pokud se vám líbí, udělejte z něj hlavní

Nextboot -k kernel.test

3. Pokud vše proběhlo hladce

# mv /boot/kernel /boot/kernel.previous # mv /boot/kernel.test /boot/kernel

Pokud ne, požádejte pracovníky údržby o vypnutí a zapnutí :)

Aplikace 2. PROBLÉMY:
Když systém chrlí strašlivou kletbu: "zámek pořadí se obrátí"(žádost o zámek odvolána), Hlavními zdroji problémů jsou ACPI, PAE (nevypnuto), SMP a požadavek na zámek odvolán.
http://ipv4.sources.zabbadoz.net/freebsd/lor.html

náznak. apic. 0. zakázáno=1. deaktivace v již sestaveném jádře
kern. smp. vypnuto=1 zakázání v již vytvořeném jádře
náznak. acpi. 0. vypnuto=1 zakázáno v již vytvořeném jádře

Aplikace 3. DEBUG při panice
1.Jádro musí být s
makeoptions DEBUG=-g
možnosti KDB
možnosti KDB_TRACE
options DDB # zakázat automatický restart
2. Příjem zpětného sledování
cd /boot/kernel.paniced/
# kgdb kernel.symbols /var/crash/vmcore.0
Zpětná stopa
3.Opakujte paniku v režimu pro jednoho hráče
nasednout -ar
# /etc/rc.d/dumpon start

Aplikace 4. NAKLADAČ
Pokud jsme něco pokazili a server se nespustí, pak pomocí loaderu můžeme načíst staré jádro
lsdev - seznam zařízení dostupných ke stažení
show - hodnota načítaných proměnných ze souboru conf
set - změna spouštěcího parametru
lsmod - moduly a jádro načtené do paměti
unload - úplné uvolnění jádra a modulů z paměti
boot – pokračovat v bootování
Stažení alternativního jádra
vyložit
načíst /boot/kernel.good/kernel
načtěte /boot/kernel.good/acpi.ko vše ostatní je volitelné
bota

Aplikace5. Moduly jádra
kldstat seznam načtených modulů

Kldload wlan_wep nebo kldload /boot/kernel/wlan_wep.ko

kldunload vykládací modul

Kldunload wlan_wep.ko

registrací v /boot/kernel/loader.conf požadovaný modul, automaticky se načte při spuštění systému

Procfs_load="ANO"

Aplikace 6. Selektivní zpětná montáž modulu
Ve výchozím nastavení budou při sestavování jádra přestavěny také všechny moduly jádra. Pokud chcete aktualizovat jádro rychleji nebo sestavit pouze určité moduly, musíte před zahájením procesu vytváření jádra upravit soubor /etc/make.conf:

MODULES_OVERRIDE = linux acpi zvuk/zvuk zvuku/ovladač/ds1 ntfs
Tato proměnná nastavuje seznam modulů k sestavení namísto vytváření všech modulů.

WITHOUT_MODULES = linux acpi sound ntfs
Tato proměnná uvádí základní moduly, které by měly být vyloučeny z procesu sestavení. Další proměnné, které mohou být užitečné během procesu sestavování jádra, naleznete v manuálové stránce make.conf(5).





Nahoru