1- Özet;
Kernel işletim sisteminin çekirdeğidir. Memory yönetimi, güvenlik kontrollerinin yapılması, network, disk erişimleri ve daha birçok işlemin yürütülmesini kontrol eder.
Bu dökümanı okuduktan sonra şu konularla alakalı bilgi sahibi olacağız;
- Neden özel kernel derlemesi yapabiliriz?
- Kernel konfigürasyon dosyası nasıl yeniden yazılır veya düzenlenir?
- Kernel konfigürasyon dosyası yeni bir kernel oluşturmak için nasıl kullanılır?
- Yeni kernel nasıl kurulur?
- Problem oluştuğunda nasıl çözülür?
Bu dökümanda kullanılacak bütün komutlar root olarak çalıştırılması gerekmektedir.
2- Neden Özel Kernel Oluşturalım ki?
Genel olarak FreeBSD işletim sistemi monolithic adı verilen yekpare kernele sahiptir. Bu demektir ki kernel, uygun donanım aygıtlarının listelendiği büyük bir programdır ve kernelin çalışma şeklini değiştirmek istediğinde yeni bir kernel oluşturup, derleyip, restart ettiğimizde yeni kernelle çalışmaya başlayabiliriz.
Günümüzde kernelin gelişen yapısı sayesinde istediğimiz modülü aktif veya pasif ederek kernel oluşturabiliriz. Bu sayede kernel yeni çıkan aygıtlara hemen adapte olabilmektedir veya çalışmasını istemediğimiz bazı modülleri pasif ederek modüler bir kernel oluşturabiliriz.
Buna rağmen bazı kernel ayarlarını yeni kernel oluştururken aktarmamız gerekir. Bunun sebebi kimsenin kendine göre tam modüler bir kernel oluşturmak için yeni bir kernel yazmaya zamanının olmamasıdır.
Özel kernel oluşturulması ileri seviye FreeBSD kullanıcıları için çok önemlidir. bu süreç çok zaman almasına rağmen FreeBSD sistemiyle alakalı birçok bilgiye sahip olmanızı sağlar. GENERIC kernelden daha ziyade daha geniş çapta donanım aygıtını destekleyerek, sadece kendi PC mizin hardware ını destekleyebilir. Bu durumun birçok faydası vardır. Bunlar;
- Pcnin hızlı boot edilmesini sağlar. Bu sayede pc hızlı açılıp kapanır.
- Gereksiz uygulamalar ve modüller pasif edileceğinden daha düşük RAM kullanımını sağlar.
- Daha geniş çapta donanım aygıtını tanıma desteği sağlar.
3- Sistem Donanım Belirleme
Kernel konfigürasyonuna başlamadan önce sistem donanımını bilmek faydalı olacaktır. Donanım hakkında bilgi sahibi olmak için dmesg(8) veya man(1) komutu kullanılabilir. Birçok desteklenen aygıt sürücülerinin yardım sayfası ve aygıt listeleri bulunabilir. Aşağıdaki örnekte psm sürücüsünde Mouse bulunmaktadır.
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: [GIANT-LOCKED]
psm0: [ITHREAD]
psm0: model Generic PS/2 mouse, device ID 0
Bu driver ın kernel konf dosyasında bulunması gerekir veya loader.conf(5) dosyası kullanılarak açılışta yüklenmesi gerekmektedir.
Ara sıra dmesg komutu system mesajlarını gösterir. Bu mesajlar kernel boot datası değildir. Dmesg bilgisi ayrıca /var/run/dmesg.boot dosyasından da takip edilebilir.
Aygıt bulmak için bir diğer yöntemde pciconf(8) ile daha detaylı bilgi görüntülemektir. Örneğin;
ath0@pci0:3:0:0: card=0x058a1014 chip=0x1014168c rev=0x01 hdr=0x00
vendor = 'Atheros Communications Inc.'
device = 'AR5212 Atheros AR5212 802.11abg wireless'
class = network
subclass = ethernet
pciconf –lv komutu ath driverında bulunan wireless aygıtını gösterir.
man ath komutu ath(4) bu driver hakkında bilgi verir.
# man -k Atheros
ath(4) - Atheros IEEE 802.11 wireless network driver
ath_hal(4) - Atheros Hardware Access Layer (HAL)
4- Kernel Sürücüleri, Alt sistemleri ve Modülleri
Özel kernel hazırlamadan önce bu işi neden yapmamız gerektiğini bilmemiz gereklidir. Belki de tanıtmak istediğimiz donanım aygıtı varolan kernelde tanıtılmış olabilir.
Kernel modülleri /boot/kernel altında bulunmaktadır. Ayrıca dinamik olarak kldload(8) kullanılarak ta yüklenebilir.
Alternatively, to load the driver as a module at boot time, place the
following line in loader.conf(5):
if_ath_load="YES"
/boot/loader.conf dosyasına if_ath_load=”YES” parametresini ekleyerek te bu modülü açılışta aktif edebiliriz.
Warning: It is considerably easy to remove built in support for a device or option and have a broken kernel. For example, if the ata(4) driver is pulled from the kernel configuration file, a system using ATA disk drivers may not boot without the line added to loader.conf. When in doubt, check for the module and then just leave support in the kernel.
5- Yeni Kernel Oluşturma ve Kurma
Hızlı bir şekilde kernel oluşturma klasörünü inceleyelim. Kernelle alakalı tüm dosyalar /usr/src/sys altında bulunmaktadır. Direk olarak /sys ile de ulaşılabilecek bu klasör altında bizim için en önemli olan kısım arch/conf klasörünün içeriğidir. Kernel ayarlarının yapılacağı dosyalar burada bulunmaktadır. Arch ifadesi i386, alpha, amd64, ia64, powerpc, sparc64, or pc98 den sistemimizin desteklediğini gösterir.
Bu bölümde mimari olarak i386 kullanıldığı varsayılacaktır.
NOT: eğer /usr/src/sys diye bir klasör yok ise kernel kaynak kodları yüklenmemiştir. Kodları yüklemenin en iyi yolu root olarak sysinstall u çalıştırıp Configure > Distributions dan src, base ve sys yi seçip kurmaktır. Eğer cd varsa komut satırından aşağıdaki şekilde kurulum yapılabilir.
# mount /cdrom
# mkdir -p /usr/src/sys
# ln -s /usr/src/sys /sys
# cat /cdrom/src/ssys.[a-d]* | tar -xzvf -
# cat /cdrom/src/sbase.[a-d]* | tar -xzvf –
Daha sonra arch
# cd /usr/src/sys/i386/conf
# cp GENERIC MYKERNEL
Genellikle yazılacak kernel adının tüm harfleri büyük yazılmalıdır. Eğer birçok freebsd kontrol ediyorsanız kernel adını hostname yapmanız daha uygun olacaktır. Biz örneğimizde adı MYKERNEL olarak belirledik.
Konf dosyanızı başka biryerde saklayıp link vererek çalıştırabilirsiniz.
# cd /usr/src/sys/i386/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL
# ln -s /root/kernels/MYKERNEL
Artık kendi kernel konf dosyanızı vi editörü ile açarak istediğiniz biçimde konfigüre edebilirsiniz.
Note: If you sync your source tree with the latest sources of the FreeBSD project, be sure to always check the file /usr/src/UPDATING before you perform any update steps. This file describes any important issues or areas requiring special attention within the updated source code. /usr/src/UPDATING always matches your version of the FreeBSD source, and is therefore more up to date with new information than this handbook.
İsteğimiz ayarları yaptıktan sonra kaynak kodu derlemeye geldi sıra.
Kerneli oluşturma
1- /usr/src klasörüne gelin.
# cd /usr/src
2- Kerneli derleyin.
# make buildkernel KERNCONF=MYKERNEL
3- Kerneli yükleyin.
# make installkernel KERNCONF=MYKERNEL
İpucu: default olarak özel kernel oluşturduğunuzda, tüm kernel modülleri tekrardan oluşturulur. Kerneli daha hızlı güncellemek istiyorsanız veya sadece bazı modülleri yüklemek istiyorsanız, kerneli inşa etmeye başlamadan önce /etc/make.conf dosyasını editlememiz gerekir.
MODULES_OVERRIDE = linux acpi sound/sound sound/driver/ds1 ntfs
Yukarıdaki parametre sadece seçilen le ilgili tüm modülleri listeler.
WITHOUT_MODULES = linux acpi sound/sound sound/driver/ds1 ntfs
Yukarıdaki parametre seçilenin dışındaki tüm modülleri listeler.
Diğer bilgiler için make.conf(5) incelenebilir.
Yeni kernel /boot/kernel altında /boot/kernel/kernel olarak oluşturulur ve eski kernel dosyaları /boot/kernel.old/kernel altına kopyalanır. Artık sisteme restart atıp yeni kerneli kullanmaya başlayabilirsiniz.
6- Kernel konfigürasyon dosyası
Konfigürasyon dosyasının içeriği oldukça basittir. Her satırda bir adet anahtar kelime ve bir veya daha fazla argüman vardır. Basitlik olması açısından çoğu satırda tek argüman vardır. # ile başlayan satırlar açıklama satırı olup ihmal edilir. Takip eden bölümde GENERIC dosyasındaki her anahtar kelime açıklanacaktır. Daha detaylı ve işlemci mimarisi fark etmeksizin tüm durumlar ve aygıtlar için GENERIC ile aynı klasörde bulunan NOTES dosyasını inceleyebilirsiniz. Tam yolu /usr/src/sys/conf/NOTES altındadır. FreeBSD 5.0 dan sonra konfigürasyon dosyasında başka bir konfigürasyon dosyasını dahil eden include yönergesi getirilmiştir. Örneğin GENERIC konf dosyasını kullanarak sadece birkaç seçenek ve sürücü eklemek istiyorsak aşağıdaki şekilde ifadeleri yerleştirebiliriz.
include GENERIC
ident MYKERNEL
options IPFIREWALL
options DUMMYNET
options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPDIVERT
NOT: test amacıyla bütün seçeneklerin bulunduğu bir dosya oluşturmak amacıyla aşağıdaki komutu root olarak çalıştırın.
# cd /usr/src/sys/i386/conf && make LINT
machine i386
sistem mimarisini belirtmektedir. Duruma göre alpha, amd64, i386, ia64, pc98, powerpc, veya sparc64 de olabilir.
cpu I486_CPU
cpu I586_CPU
cpu I686_CPU
kullanılan CPU tipini belirtir. Cpu tipinden emin değilseniz yukarıdaki örnekteki gibi birden fazla tip girebilirsiniz ama en uygun yöntem dmesg ile CPU tipini belirleyip sadece ilgili tipi girmektir.
ident GENERIC
kernelin kimliklendirme kısmıdır. Kernelinizin isminin girileceği kısımdır.
#To statically compile in device wiring instead of /boot/device.hints
#hints "GENERIC.hints" # Default places to look for devices.
device.hints(5) aygıt sürücüleri için seçeneklerin ayarlanmasını sağlar. loader(8) default olarak yerinin bulunduğu /boot/device.hints dosyasının kontrol eder. hints parametresi ile bu dosya static olarak belirlenebilir.
makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols
kernel oluşturulurken –g parametresi ile debugging açılır.
options SCHED_ULE # ULE scheduler
default sistem scheduler ı. Değiştirmeyin.
options PREEMPTION # Enable kernel thread preemption
kernel süreçlerinden öncelikleri yüksek olanları çalıştırma.
options INET # InterNETworking
network desteği aktif etme. Bazı uygulamalar loop olarak çalıştığı için network gerekmeyebilir. İptal edebilirsiniz.
options INET6 # IPv6 communications protocols
IPv6 haberleşme protokolü desteği
options FFS # Berkeley Fast Filesystem
basit harddisk dosya sisteminin aktivasyonudur. Diskten boot edecekseniz kullanmalısınız.
options SOFTUPDATES # Enable FFS Soft Updates support
kernele yapılacak Soft Update leri aktif eder. bu işlem diske yazma işlemlerinin hızlanmasını sağlayabilir.
options UFS_ACL # Support for access control lists
kernelin giriş kontrol listesi ( ACL ) desteklemesini sağlar. Default olarak enable edilmiştir.
options UFS_DIRHASH # Improve performance on big directories
büyük dosyalarda işlem yapılması durumunda veya yüksek memory kullanılması durumlarında aktif edilmesi gerekir. Aksi durumda pasif edilebilir.
options MD_ROOT # MD is a potential root device
memory bazlı sanal disklerin root aygıtı olarak kullanılmasını sağlar.
options CD9660 # ISO 9660 Filesystem
CDROM dosya sistemini aktif eder. eğer CDROM yoksa pasif edilebilir.
options PROCFS # Process filesystem (requires PSEUDOFS)
süreç dosya sistemi aktif etme. Süreçler hakkında bilgi veren ps komutunun çalışması için gereklidir. Fakat ps den başka süreç takibi için birçok araç olduğunu düşünürsek pasif edilebilir.
options PSEUDOFS # Pseudo-filesystem framework
6.X kernellerinde PROCFS aktif edilmişse aynı zamanda PSEUDOFS aktif edilmelidir.
options GEOM_GPT # GUID Partition Tables.
Tek disk üzerinde birden çok geniş partition oluşturulabilmesini sağlar.
options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!]
4.3BSD ile uyumluluk için girilir. Bazı programların çalışması için gereklidir.
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
5.X versiyonundan sonrakilerde bulunan eski versiyonların desteklenmesi.
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
6.X versiyonundan sonrakilerde bulunan ve eski versiyonun desteklenmesini sağlar.
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
her SCSI diskinin sisteme bağlanmadan önce 5 sn beklemesini sağlar. Eğer IDE disk kullanıyorsanız pasif edebilirsiniz. SCSI kullanıyorsanız boot un hızlı yapılabilmesi için süreyi azaltabilirsiniz fakat problem olabilir.
options KTRACE # ktrace(1) support
kernel debugging için ktrace komutunu aktif eder.
options SYSVSHM # SYSV-style shared memory
System V shared memory ayarıdır.
options SYSVMSG # SYSV-style message queues
System V mesajlarını aktif eder. kernele sadece birkaç yüz byte yük getirir.
options SYSVSEM # SYSV-style semaphores
System V semaphores desteğidir. Nadir kullanılır fakat kernele sadece birkaç yüz byte yük getirir.
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
POSIX eklenen gerçek zamanlı işlemler için kullanılır.
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
/dev altındaki klavye aygıtlarının tanınması için gereklidir.
options ADAPTIVE_GIANT # Giant mutex is adaptive.
Ne işe yaradığını bilmiyorsanız aktif edin.
device apic # I/O APIC
I/O APIC kesme işlemlerinin aktif olmasını sağlar. SMP kerneli için gereklidir. Çoklu işlemci desteği için SMP nin de kernelde aktif edilmesi gerekir.
device eisa
EISA anakartınız varsa EISA bus taki tum donanımların otomatik bulunmasını ve desteklenmesini sağlar.
device pci
PCI anakartlarda aktif edilmelidir.
# Floppy drives
device fdc
disket sürücü için
# ATA and ATAPI devices
device ata
ATA ve ATAPI aygıtlarının desteklenmesi için
device atadisk # ATA disk drives
ATA disk sürücüleri için gereklidir.
device ataraid # ATA RAID drives
ATA RAID sürücüleri için gereklidir.
device atapicd # ATAPI CDROM drives
ATAPI CDROM sürücüleri için gereklidir.
device atapifd # ATAPI floppy drives
ATAPI disket sürücüleri için gereklidir.
device atapist # ATAPI tape drives
ATAPI teyp sürücüleri için.
options ATA_STATIC_ID # Static device numbering
aygıt numaraları dinamik olarak oluşturma
# SCSI Controllers
device ahb # EISA AHA1742 family
device ahc # AHA2940 and onboard AIC7xxx devices
options AHC_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~128k to driver.
device ahd # AHA39320/29320 and onboard AIC79xx devices
options AHD_REG_PRETTY_PRINT # Print register bitfields in debug
# output. Adds ~215k to driver.
device amd # AMD 53C974 (Teckram DC-390(T))
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
#device ncr # NCR/Symbios Logic
device sym # NCR/Symbios Logic (newer chipsets + those of `ncr')
device trm # Tekram DC395U/UW/F DC315U adapters
device adv # Advansys SCSI adapters
device adw # Advansys wide SCSI adapters
device aha # Adaptec 154x SCSI adapters
device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters
device ncv # NCR 53C500
device nsp # Workbit Ninja SCSI-3
device stg # TMC 18C30/18C50
SCSI kontrol aygıtları. Sisteminizde bulunmayan aygıtları silebilirsiniz. Eğer sadece IDE varsa hepsini silebilirsiniz. *_REG_PRETTY_PRINT bulunan satırlar debugging içindir.
# 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)
SCSI çevresel aygıtları. İstediklerinizi aktif edebilirsiniz.
NOT: Bazı USB sürücüleri SCSI altsistemi olmamalarına rağmen SCSI imiş gibi davranırlar. Bu duruma dikkat ediniz.
# 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
desteklenen RAID kontroller kartları. Herhangi birisi mevcut değilse açıklama satırı haline getirebilirsiniz.
# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
klavye kontrollerı (atkbdc) ve PS/2 mouse kontrolleri (psm) destekleme
device atkbd # AT keyboard
atkbd sürücüsü desteği AT klavyeleri ile birlikte
device psm # PS/2 mouse
eğer Mouse nuzu PS/2 ile bağladıysanız bu kısmı etkinleştirmelisiniz.
device kbdmux # keyboard multiplexer
çoklu klavye desteği. Makinenizde birden çok klavye kullanmayacaksanız pasif edebilirsiniz.
device vga # VGA video card driver
ekran kartı sürücüsü
device splash # Splash screen and screen saver support
boot ekranı ve ekran koruyucu desteği
# syscons is the default console driver, resembling an SCO console
device sc
sc default konsol sürücüsüdür ve SCO konsoluna benzer.
# 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
VT220 konsol desteğinin aktif edilmesi
device agp
sistemde AGP kartı varsa aktif edin.
# Power management support (see NOTES for more options)
#device apm
Gelişmiş Güç Yönetimi nin aktif edilmesi. Laptoplar için kullanışlıdır. GENERIC te default olarak pasif tir.
# Add suspend/resume support for the i8254.
device pmtimer
APM ve ACPI gibi güç yönetimi olayları için zamanlayıcı aygıt sürücüleridir.
# 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
PCMCIA desteği. Laptop kullanıyorsanız aktif etmek isteyebilirsiniz.
# Serial (COM) ports
device sio # 8250, 16[45]50 based serial ports
COM portlarına yönelik seri portların aktif edilmesi
# Parallel port
device ppc
ISA-bus paralel port interface i
device ppbus # Parallel port bus (required)
paralel port bus desteği
device lpt # Printer
paralel port printer desteği
NOT: üstteki son 3 satır paralel port printer için gereklidir.
device plip # TCP/IP over parallel
paralel network interface desteği
device ppi # Parallel port interface device
I/O (“geek port”) + IEEE1284 I/O
#device vpo # Requires scbus and da
Iomega Zip sürücüsü. scbus ve da desteğini içerir.
#device puc
Eğer puc(4) tarafından desteklenen “dumb” seri kartı veya paralel PCI kartı varsa aktif edin.
# 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”)
PCI network kartları desteği. Sistemizin desteklemediği kartları uncomment edebilirsiniz.
# 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
Bazı PCI 10/100 Ethernet NIC leri için MII bus desteği için yazılır.
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 msk # Marvell/SysKonnect Yukon II 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 stge # Sundance/Tamarack TC9021 gigabit Ethernet
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”)
MII bus kontroller kodu kullanan Ethernet sürücüleri
# 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
ISA Ethernet sürücüleri. Hangi kartın hangi sürücüyü desteklediğini incelemek için /usr/src/sys/i386/conf/NOTES dosyasını inceleyebilirsiniz.
# Wireless NIC cards
device wlan # 802.11 support
genel 802.11 desteği. Wireless network için gereklidir.
device wlan_wep # 802.11 WEP support
device wlan_ccmp # 802.11 CCMP support
device wlan_tkip # 802.11 TKIP support
802.11 aygıtları için şifreleme desteği
device an # Aironet 4500/4800 802.11 wireless NICs.
device ath # Atheros pci/cardbus NIC's
device ath_hal # Atheros HAL (Hardware Access Layer)
device ath_rate_sample # SampleRate tx rate control for ath
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.
Çeşitli wireless kartları desteği
# Pseudo devices
device loop # Network loopback
TCP/IP için genel loopback aygıtı. Eğer localhosta telnet veya ftp ile bağlanmak gerekiyorsa bu sürücü üzerinden işlem yapılır. Aktif edilmesi gerekir.
device random # Entropy device
şifeleme tekniği ile rasgele numara oluşturma
device ether # Ethernet support
sadece Ethernet kartı olduğu zaman ether e ihtiyaç duyulur.
device sl # Kernel SLIP
sl SLIP desteği içindir. PPP nin yerini almıştır. Modemden modeme bağlantı için daha iyi ve daha güçlü bir yoldur.
device ppp # Kernel PPP
dial-up bağlantı için PPP desteği
device tun # Packet tunnel.
PPP yazılım tarafından kullanılır.
device pty # Pseudo-ttys (telnet etc)
“pseudo-terminal” login portudur. Gelen telnet , rlogin session ları, xterm ve Emacs tarafından kullanılır.
device md # Memory “disks”
memory disk pseudo-aygıtları
device gif # IPv6 and IPv4 tunneling
IPv6 ile IPv4 arasındaki tunnelleme için kullanılır.
device faith # IPv6-to-IPv4 relaying (translation)
pseudo-aygıtlarının kendi üzerine gelen paketleri yakalaması ve IPv6/IPv4 dönüşüm deamon nuna gönderilmesini sağlar.
# 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
Berkeley Paket Filtreleme nin aktif edilmesidir. Bu sayede tcmpdump ile paketler snif edilebilir.
NOT: bpf(4) aygıtları aynı zamanda dhclient(8) aracılığıyla otomatik IP adresi almak için kullanılacağından aktif edilmesi gerekir.
# 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 ural # Ralink Technology RT2500USB wireless NICs
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
çeşitli USB aygıtlarının desteği
# FireWire support
device firewire # FireWire bus code
device sbp # SCSI over FireWire (Requires scbus and da)
device fwe # Ethernet over FireWire (non-standard!)
çeşitli firewire aygıtlarının desteği
Daha fazla ve detaylı olarak FreeBSD nin desteklediği aygıtları incelemek için /usr/src/sys/i386/conf/NOTES dosyasını inceleyebilirsiniz.
Daha fazla memory kullanılabilmesi için yapılacak konfigürasyon (PAE)
32 bitlik sistemlerde 4 gigabyte tan yüksek memory miktarını destekleyebilmek için FreeBSD de basit bir kernel ayarlaması yapabilirsiniz.
options PAE
NOT: PAE sadece Intel IA-32 işlemcileri için geçerlidir. Bu özellik FreeBSD de çok fazla test edilmediği için beta kalitesindedir.
7- Birşeyler yanlış giderse!!
Özel kernel oluştururken karşılaşılabilecek problemleri 4 kategoride toplarsak;
config komutu başarısız olursa;
kernelin oluşturulması için gerekli tanımlamaları girdikten sonra config(8) ile çalıştırırdıktan sonra oluşabilecek herhangi bir hata aşağıdaki gibi hatanın oluştuğu satırla birlikte verilir.
config: line 17: syntax error
make komutu başarısız olursa;
make komutu sonrasında hata ile karşılaşırsanız config dosyanızı kontrol ediniz. Eğer herhangi bir sonuca varamazsanız FreeBSD general questions mailing list e mail atıp durumu bildiriniz.
Yeni kernel boot sonrasında açılmazsa;
Yeni kernel derlemesi sonrasında boot aşamasında kernel açılmaz ise FreeBSD boot loader aşamasında boot menü görüldüğünde 6. Seçenekteki “Escape to a loader prompt” seçeneğini seçin.
Gelen kısımda unload kernel deyip boot /boot/kernel.old/kernel yazın. Böylece sisteminiz bir önceki kernelden tekrar açılacaktır.
Sonrasında hatanın sebebini /var/log/messages veya dmesg ile inceleyebilirsiniz.
NOT: yeni kernel derlenmesi sonrasında geriye dönmek için kernel.old a güvenemeyebilirsiniz. Çünkü konfigürasyon aşamasında yapılan değişiklikler kernel.old a da etki eder ve bozulmasına sebep olabilir. Çalışan kerneli /boot/kernel altına taşıyarak sorunuzu çözebilirsiniz. Bunu alttaki şekilde yapabilirsiniz.
# mv /boot/kernel /boot/kernel.bad
# mv /boot/kernel.good /boot/kernel
Kernel çalışır fakat ps komutu çalışmazsa;
Eğer kernelin versiyonunu değiştirmişseniz örneğin –CURRENT dan –RELEASE e geçmişseniz bazı ps veya vmstat gibi sistem komutları çalışmayabilir.bu durumda recompile and install a world işlemini yapıp aynı kernel versiyonu ile kurulum yapmanız gerekir.
Kaynaklar: http://www.freebsd.org/doc/en/books/handbook/kernelconfig.html
VN:F [1.9.3_1094]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.3_1094]
Etiketler: FreeBSD, kernel