Reply
 
Thread Tools Display Modes
  #1  
Old 09-28-2010, 02:52 AM
Ralph_Ellis Ralph_Ellis is offline
Senior Member
 
Join Date: Jul 2006
Location: Toronto, Ontario, Canada
Posts: 235
Thanks: 0
Thanked 0 Times in 0 Posts
Default Compiling a Custom Kernel in PC-BSD 8.1 or above - Detailed how to
Building a custom kernel has many advantages. Your memory use is lower. Your computer will run faster and only the hardware that is actually on your system will be supported.
The instructions that I will provide only apply to PC-BSD 8 or FreeBSD 8 or higher.
The first step will be to update your source tree. You will need to create a file called supfile. To update to the latest kernel and source in 8.1, create the file with these contents.

*default release=cvs tag=RELENG_8
*default host=cvsup11.FreeBSD.org
*default prefix=/usr
*default base=/var/db
*default release=cvs delete use-rel-suffix compress
src-all
ports-all
doc-all

This file would update you to FreeBSD 9 current.

*default tag=.
*default host=cvsup11.FreeBSD.org
*default prefix=/usr
*default base=/var/db
*default release=cvs delete use-rel-suffix compress
src-all
ports-all
doc-all

Open a terminal, login as root
su
your password
Go to the directory where you saved supfile and type either
csup supfile
or
cvsup -g -L 2 supfile

csup should be installed automatically in PC-BSD 8 or 8.1, You may have to install cvsup but if you choose to use that but there is no reason to prefer cvsup to csup.
Get a coffee. The download will take a while.

You should be using ZFS. If you are not, beat your head slowly against a wall. ZFS is miles ahead of UFS in terms of reliability, flexibility and recovery.
To back up your full system do a series of ZFS snapshots. To find the ZFS pools on your system type in terminal
su
your password
zfs list
You will see a list of all the pools in your system. My list is:

NAME USED AVAIL REFER MOUNTPOINT
tank0 1.92G 22.1G 1.30G /mnt
tank1 4.39G 10.5G 18K none
tank1/var 4.37G 10.5G 2.62G /var
tank2 84.5G 142G 18K none
tank2/usr 84.4G 142G 65.2G /usr

I would type in a terminal
zfs snapshot tank0@backup1
zfs snaphshot tank1@backup1
zfs snapshot tank1/var@backup1
zfs snapshot tank2@backup1
zfs snapshot tank2/usr@backup1

If you need to see a list of the snapshots that you have created, type
zfs list -t snapshot
to restore an earlier snapshot of tank0 for example, type
zfs rollback tank0@backup1
for example

By now you have your coffee finished and you are ready to start serious work.

You will need to edit your make.conf file. Building your system and kernel is often touchy and I will recommend only a plain setup to get through your compilation.
Open a terminal and type,
su
your password
nano /etc/make.conf
It may only contain a few lines. For the first step I want you to put a
#
in front of all lines that do not already have a # in front of them. Press Control x to save the file. Press Y. When prompted for the name make.conf, press Enter.

End of part 1 Go to part 2
Reply With Quote
  #2  
Old 09-28-2010, 02:54 AM
Ralph_Ellis Ralph_Ellis is offline
Senior Member
 
Join Date: Jul 2006
Location: Toronto, Ontario, Canada
Posts: 235
Thanks: 0
Thanked 0 Times in 0 Posts
Default
You now need to edit either
/usr/src/sys/i386/conf/GENERIC
or if you have an amd64 machine
/usr/src/sys/amd64/conf/GENERIC

You will put
#
in front of all the equipment that you want to not include in your build. Do not delete any disk drive controllers. If you delete your own disk drive controller, you cannot boot up. This is not a recoverable error.

I will show you the examples of these files that I built to eliminate
1) Wireless hardware
2) ISA devices. Unless you bought your computer at a garage sale for $1.50, it does not contain ISA devices.
3) All the the ethernet ports that are not in your system.
4) Floppy Drives
5) PCMCIA laptop devices
6) AGP video hardware
7) USB wireless and USB ethernet nics


Keep in mind that this setup if for MY HARDWARE. You will have to do your own research to find out what hardware you have and what you want to eliminate or keep.
PC-BSD Forums has some nice threads about how to find out what hardware you have.
Also see:

http://forums.freebsd.org/showthread.php?t=5327

End of part 2 Go to part 3
Reply With Quote
  #3  
Old 09-28-2010, 02:57 AM
Ralph_Ellis Ralph_Ellis is offline
Senior Member
 
Join Date: Jul 2006
Location: Toronto, Ontario, Canada
Posts: 235
Thanks: 0
Thanked 0 Times in 0 Posts
Default
This is my file for AMD64.
There are a couple of key notes. Always comment out:
#options ATA_STATIC_ID # Static device numbering
because it will screw up PC-BSD if you do not.

Do not remove drivers for hard drives. If you mess up on that area, you will be very sorry.
Always include the line
device miibus # MII bus support
under PCI ethernet nics. It is required by many other drivers.
My ethernet connections are rl0 and msk0. You will notice that these lines are not commented out in my example.
If you do have an older machine with an agp video card instead of pci, do not comment out
device agp # support several AGP chipsets
Most modern computers do not have agp video support.


One other note, every time you do an update with the csup supfile or cvsup supfile, it will overwrite the file
/usr/src/sys/amd64/conf/GENERIC
and
/usr/src/sys/i386/conf/GENERIC
save your working copy as
/usr/src/sys/amd64/conf/GENERIC.yourname
so you can go back to it for editing later.

If you are editing the i386 version of this file, you can comment out certain lines like
#cpu I486_CPU

#cpu I586_CPU
unless you bought your computer a garage sale for less than $1.50

When in doubt, exercise caution.





#
# GENERIC -- Generic kernel configuration file for FreeBSD/amd64
#
# For more information on this file, please read the config(5) manual page,
# and/or the handbook section on Kernel Configuration Files:
#
# http://www.FreeBSD.org/doc/en_US.ISO...ig-config.html
#
# The handbook is also available locally in /usr/share/doc/handbook
# if you've installed the doc distribution, otherwise always see the
# FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
# latest information.
#
# An exhaustive list of options and more detailed explanations of the
# device lines is also present in the ../../conf/NOTES and NOTES files.
# If you are in doubt as to the purpose or necessity of a line, check first
# in NOTES.
#
# $FreeBSD: src/sys/amd64/conf/GENERIC,v 1.549 2010/09/24 09:04:16 davidxu Exp $

cpu HAMMER
ident GENERIC

makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols

options SCHED_ULE # ULE scheduler
options PREEMPTION # Enable kernel thread preemption
options INET # InterNETworking
options INET6 # IPv6 communications protocols
options SCTP # Stream Control Transmission Protocol
options FFS # Berkeley Fast Filesystem
options SOFTUPDATES # Enable FFS soft updates support
options UFS_ACL # Support for access control lists
options UFS_DIRHASH # Improve performance on big directories
options UFS_GJOURNAL # Enable gjournal-based UFS journaling
options MD_ROOT # MD is a potential root device
options NFSCLIENT # Network Filesystem Client
options NFSSERVER # Network Filesystem Server
options NFSLOCKD # Network Lock Manager
options NFS_ROOT # NFS usable as /, requires NFSCLIENT
options MSDOSFS # MSDOS Filesystem
options CD9660 # ISO 9660 Filesystem
options PROCFS # Process filesystem (requires PSEUDOFS)
options PSEUDOFS # Pseudo-filesystem framework
options GEOM_PART_GPT # GUID Partition Tables.
options GEOM_LABEL # Provides labelization
options COMPAT_FREEBSD32 # Compatible with i386 binaries
options COMPAT_FREEBSD4 # Compatible with FreeBSD4
options COMPAT_FREEBSD5 # Compatible with FreeBSD5
options COMPAT_FREEBSD6 # Compatible with FreeBSD6
options COMPAT_FREEBSD7 # Compatible with FreeBSD7
options SCSI_DELAY=5000 # Delay (in ms) before probing SCSI
options KTRACE # ktrace(1) support
options STACK # stack(9) support
options SYSVSHM # SYSV-style shared memory
options SYSVMSG # SYSV-style message queues
options SYSVSEM # SYSV-style semaphores
options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options PRINTF_BUFR_SIZE=128 # Prevent printf output being interspersed.
options KBD_INSTALL_CDEV # install a CDEV entry in /dev
options HWPMC_HOOKS # Necessary kernel hooks for hwpmc(4)
options AUDIT # Security event auditing
options MAC # TrustedBSD MAC Framework
options FLOWTABLE # per-cpu routing cache
#options KDTRACE_FRAME # Ensure frames are compiled in
#options KDTRACE_HOOKS # Kernel DTrace hooks
options INCLUDE_CONFIG_FILE # Include this file in kernel

# Debugging for use in -current
options KDB # Enable kernel debugger support.
options DDB # Support DDB.
options GDB # Support remote GDB.
options DEADLKRES # Enable the deadlock resolver
options INVARIANTS # Enable calls of extra sanity checking
options INVARIANT_SUPPORT # Extra sanity checks of internal structures, required by INVARIANTS
options WITNESS # Enable checks to detect deadlocks and cycles
options WITNESS_SKIPSPIN # Don't run witness on spinlocks for speed
options MALLOC_DEBUG_MAXZONES=8 # Separate malloc(9) zones

# Make an SMP-capable kernel by default
options SMP # Symmetric MultiProcessor Kernel

# CPU frequency control
device cpufreq

# Bus support.
device acpi
device pci

# Floppy drives
#device fdc

# ATA and ATAPI devices
device ata
device atadisk # ATA disk drives
device ataraid # ATA RAID drives
device atapicd # ATAPI CDROM drives
device atapifd # ATAPI floppy drives
device atapist # ATAPI tape drives
#options ATA_STATIC_ID # Static device numbering

# SCSI Controllers
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 (Tekram DC-390(T))
device hptiop # Highpoint RocketRaid 3xxx series
device isp # Qlogic family
#device ispfw # Firmware for QLogic HBAs- normally a module
device mpt # LSI-Logic MPT-Fusion
device mps # LSI-Logic MPT-Fusion 2
#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 aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
device bt # Buslogic/Mylex MultiMaster SCSI adapters

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

# RAID controllers interfaced to the SCSI subsystem
device amr # AMI MegaRAID
device arcmsr # Areca SATA II RAID
#XXX it is not 64-bit clean, -scottl
#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 hptrr # Highpoint RocketRAID 17xx, 22xx, 23xx, 25xx
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
#XXX pointer/int warnings
#device pst # Promise Supertrak SX6000
device twe # 3ware ATA RAID

# atkbdc0 controls both the keyboard and the PS/2 mouse
device atkbdc # AT keyboard controller
device atkbd # AT keyboard
device psm # PS/2 mouse

device kbdmux # keyboard multiplexer

device vga # VGA video card driver

device splash # Splash screen and screen saver support

# syscons is the default console driver, resembling an SCO console
device sc

#device agp # support several AGP chipsets

# 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

# Serial (COM) ports
device uart # Generic UART driver

# Parallel port
device ppc
device ppbus # Parallel port bus (required)
device lpt # Printer
device plip # TCP/IP over parallel
device ppi # Parallel port interface device
#device vpo # Requires scbus and da

End of Part 3 Go to Part 4
Reply With Quote
  #4  
Old 09-28-2010, 02:58 AM
Ralph_Ellis Ralph_Ellis is offline
Senior Member
 
Join Date: Jul 2006
Location: Toronto, Ontario, Canada
Posts: 235
Thanks: 0
Thanked 0 Times in 0 Posts
Default
# If you've got a "dumb" serial or parallel PCI card that is
# supported by the puc(4) glue driver, uncomment the following
# line to enable it (connects to sio, uart and/or ppc drivers):
#device puc

# PCI Ethernet NICs.
device de # DEC/Intel DC21x4x (``Tulip'')
device em # Intel PRO/1000 Gigabit Ethernet Family
device igb # Intel PRO/1000 PCIE Server Gigabit Family
device ixgbe # Intel PRO/10GbE PCIE Ethernet Family
device le # AMD Am7900 LANCE and Am79C9xx PCnet
device ti # Alteon Networks Tigon I/II gigabit Ethernet
device txp # 3Com 3cR990 (``Typhoon'')
device vx # 3Com 3c590, 3c595 (``Vortex'')

# 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
#device ae # Attansic/Atheros L2 FastEthernet
#device age # Attansic/Atheros L1 Gigabit Ethernet
#device alc # Atheros AR8131/AR8132 Ethernet
#device ale # Atheros AR8121/AR8113/AR8114 Ethernet
#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 et # Agere ET1310 10/100/Gigabit Ethernet
#device fxp # Intel EtherExpress PRO/100B (82557, 82558)
#device jme # JMicron JMC250 Gigabit/JMC260 Fast Ethernet
#device lge # Level 1 LXT1001 gigabit Ethernet
device msk # Marvell/SysKonnect Yukon II Gigabit Ethernet
#device nfe # nVidia nForce MCP on-board 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 'le')
#device re # RealTek 8139C+/8169/8169S/8110S
device rl # RealTek 8129/8139
#device sf # Adaptec AIC-6915 (``Starfire'')
#device sge # Silicon Integrated Systems SiS190/191
#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 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'')

# 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 sn # SMC's 9000 series of Ethernet chips
#device xe # Xircom pccard Ethernet

# Wireless NIC cards
#device wlan # 802.11 support
#options IEEE80211_DEBUG # enable debug msgs
#options IEEE80211_AMPDU_AGE # age frames in AMPDU reorder q's
#options IEEE80211_SUPPORT_MESH # enable 802.11s draft support
#device wlan_wep # 802.11 WEP support
#device wlan_ccmp # 802.11 CCMP support
#device wlan_tkip # 802.11 TKIP support
#device wlan_amrr # AMRR transmit rate control algorithm
#device an # Aironet 4500/4800 802.11 wireless NICs.
#device ath # Atheros pci/cardbus NIC's
#device ath_hal # pci/cardbus chip support
#options AH_SUPPORT_AR5416 # enable AR5416 tx/rx descriptors
#device ath_rate_sample # SampleRate tx rate control for ath
#device ral # Ralink Technology RT2500 wireless NICs.
#device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs.

# Pseudo devices.
device loop # Network loopback
device random # Entropy device
device ether # Ethernet support
device vlan # 802.1Q VLAN support
device tun # Packet tunnel.
device pty # BSD-style compatibility pseudo ttys
device md # Memory "disks"
device gif # IPv6 and IPv4 tunneling
device faith # IPv6-to-IPv4 relaying (translation)
device firmware # firmware assist module

# 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

# USB support
options USB_DEBUG # enable debug msgs
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 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
# USB Serial devices
device u3g # USB-based 3G modems (Option, Huawei, Sierra)
device uark # Technologies ARK3116 based serial adapters
device ubsa # Belkin F5U103 and compatible serial adapters
device uftdi # For FTDI usb serial adapters
device uipaq # Some WinCE based devices
device uplcom # Prolific PL-2303 serial adapters
device uslcom # SI Labs CP2101/CP2102 serial adapters
device uvisor # Visor and Palm devices
device uvscom # USB serial support for DDI pocket's PHS
# USB Ethernet, requires miibus
#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
#device udav # Davicom DM9601E USB
# USB Wireless
#device rum # Ralink Technology RT2501USB wireless NICs
#device uath # Atheros AR5523 wireless NICs
#device ural # Ralink Technology RT2500USB wireless NICs
#device zyd # ZyDAS zb1211/zb1211b wireless NICs

# FireWire support
device firewire # FireWire bus code
device sbp # SCSI over FireWire (Requires scbus and da)
device fwe # Ethernet over FireWire (non-standard!)
device fwip # IP over FireWire (RFC 2734,3146)
device dcons # Dumb console driver
device dcons_crom # Configuration ROM for dcons


Other key notes for Nvidia users.
If you are using a proprietary video driver from Nvidia or the open source nouveau driver, they will need to be recompiled if you are going to continue to run 8.1. They will not run at all under FreeBSD 9 current. If you need the proprietary driver, do not move to FreeBSD 9 current for now.
If you are building 8.1 and want to boot up in a graphics mode in a terminal
su
your password
nano /etc/X11/xorg.conf
edit the file section for device so that it is “nv” instead of “nvidia”. You can also use “vesa” if you really want to be safe.
Control X and answer Y and Enter to save.
You will also have to edit the /boot/loader.conf file to comment out the line
#nvidia_load="YES"
or else you will get an error message when you rebuild the Nvidia driver.
You will now boot up in a basic graphics mode so you can start to edit and reinstall the Nvidia drivers when you reboot.

Now you are ready to buildworld. Close other running programs and in a terminal
su
your password
cd /usr/src
chflags -R noschg /usr/obj/usr
rm -rf /usr/obj/usr
make cleandir
make cleandir
cp -irv /boot/kernel /boot/kernel.good

This last step is to back up your kernel so you can recover it if something goes wrong.
Type in the terminal

make buildworld

Get a really large cup of coffee and find a good movie on television or actually spend time with your family.

Buildworld should work. After it finishes, open the make.conf file with
nano /etc/make.conf
My make .conf at this point is

WITHOUT_MODULES = isa ipw ipwfw iwi iwifw wpi wpifw iwn iwnfw agp cbb pccard cardbus wlan wlan_acl wlan_amrr wlan_ccmp wlan_rssadapt wlan_tkip wlan_wep wlan_xauth

This is all on one line. Do not wrap it around on two lines or you have an error. What I have told the kernel building process to do here is ignore modules for ISA, all wireless devices, AGP video, PCMCIA devices and all wireless lan devices.
Because I did this, I also had to edit the /boot/loader.conf file so that modules for wireless devices were not loaded.

Now finally, in terminal

make buildkernel

You do not need as large a cup of coffee this time and you only need to watch a sitcom.
When it finishes

make installkernel
make installworld
reboot

Traditionally FeeBSD, suggests dropping to single user mode but if you are running a desktop system and there are not programs running in the background, you do not need to.

Traditionally, FreeBSD suggest that you run the mergemaster command to alter configuration files. This is needed if you are moving from lets say 6.1 to 7.3 but for moving to 8.1 to an 8.1 custom kernel or 9 current, from PC-BSD 8.1, it is usually a waste of time and can screw you system up if you make the wrong choices. There are many useful configuration files in PC-BSD that will be messed up if you use mergemaster. My advice is to stay away from it.

When you reboot, you will be running the new kernel and the new world.

If you run VirtualBox or any other port that depends on a kernel module, you will have to rebuild it.

Moving to FreeBSD 9 current will get rid of the nice PC-BSD splash screen that allows you to change your video driver. You still should be able to keep that screen if you are staying with 8.1.
The PBI files will continue to work in 8.1 or 9 in KDE4 if you do not use mergemaster.
You will gradually want to rebuild any key ports that you have installed but most will work like before.

Last edited by Ralph_Ellis; 09-28-2010 at 03:03 AM. Reason: Coherency
Reply With Quote
  #5  
Old 09-28-2010, 02:59 AM
Ralph_Ellis Ralph_Ellis is offline
Senior Member
 
Join Date: Jul 2006
Location: Toronto, Ontario, Canada
Posts: 235
Thanks: 0
Thanked 0 Times in 0 Posts
Default
What happens if my system will not boot properly or my programs do not work properly?
At the the boot menu, choose
“Escape to loader prompt”
Type
unload kernel
boot /boot/kernel.old/kernel
or
boot /boot/kernel.good/kernel
if you used that name to save your old kernel.

If you boot up and you do not like the results, you can move bad to your old setup easily.
You should be using ZFS. If you do not, continue beating you head against a wall as in the earlier instructions.
Type as root in a terminal
su
your password
zfs list -t snapshot
to show a list of your snaphots
then
zfs rollback tank0@ whatever the name of your snapshot is

The wonderful thing about zfs is that after you reboot, you will be right back to your old installation without changes.

What are the positive changes that you will see with your new kernel and world?
Your memory use will lower. Programs will load faster. Floating point performance in my case rose 20% in folding@home. You system will now just support the hardware that you have and will not keep checking the system for new devices that you do not have. Overall system performance will increase.

Have fun.
Ralph Ellis
Reply With Quote
  #6  
Old 09-30-2010, 09:41 PM
killasmurf86 killasmurf86 is offline
Junior Member
 
Join Date: Jan 2010
Posts: 7
Thanks: 0
Thanked 0 Times in 0 Posts
Default
It's better to make new file, include GENERIC kernel and then set NO(OPTION|DEVICE)....
This say after system upgrade to newer version, if some new option become necessary they will be included in your custom kernel automatically

To make it easier to explain here are my custom kernels:
This is for my desktop PC (old pc. Pentium4)
http://aldis.git.bsdroot.lv/desktop/tree/ANTIGENERIC

This is for my Laptop (HP Compaq 6715b)
http://aldis.git.bsdroot.lv/hp-compa...ee/ANTIGENERIC
If you have same laptop, you can try this kernel
__________________
Small and simple parts form big and complex mechanisms
Learning sh and Perl was one of best things I did, after learning FreeBSD.
vim is the best editor.
Reply With Quote
  #7  
Old 10-02-2010, 12:02 PM
brucec brucec is offline
Junior Member
 
Join Date: Oct 2010
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Default
You can save another few KB by removing the "device miibus" line and using "device mii" instead along with the appropriate PHY driver. For example for if_re you'll want "device rlphy".

Also, you'll get a faster kernel by removing the lines under "Debugging for use in -current" since things like WITNESS and INVARIANTS slow it down though obviously they're useful for finding problems if things go wrong. If you're running -CURRENT you'll probably also want to make a symlink from /etc/malloc.conf to 'aj' ("ln -s aj /etc/malloc.conf") in order to disable malloc debugging.
Reply With Quote
  #8  
Old 10-07-2010, 11:13 PM
Ralph_Ellis Ralph_Ellis is offline
Senior Member
 
Join Date: Jul 2006
Location: Toronto, Ontario, Canada
Posts: 235
Thanks: 0
Thanked 0 Times in 0 Posts
Default
Just a quick comment. I am now able to use the Nvidia driver with the FreeBSD 9 current kernel and base. You cannot install the latest driver from the Nvidia website but you can install the version 195 driver from ports.
Other changes that I have made since I went to a custom kernel
in /usr/src/sys/amd64/conf/GERNERIC, I removed the debugging options to speed things up and I removed the raid references since I do not have a raid set up.
This continues to work very well.
Reply With Quote
  #9  
Old 11-27-2010, 01:49 AM
biniar biniar is offline
Junior Member
 
Join Date: Feb 2009
Location: Michigan
Posts: 4
Thanks: 0
Thanked 0 Times in 0 Posts
Send a message via Yahoo to biniar Send a message via Skype™ to biniar
Default Just a reminder
Since I renamed the GENERIC kernel to something else I figured this might be worth mentioning....

# make buildkernel KERNCONF=MYKERNEL
# make installkernel KERNCONF=MYKERNEL



KERNCONF=MYKERNEL (This is for people not saving over GENERIC kernel)
Reply With Quote
  #10  
Old 01-19-2011, 03:40 AM
fase fase is offline
Junior Member
 
Join Date: Jan 2011
Posts: 5
Thanks: 0
Thanked 0 Times in 0 Posts
Default
That was a pretty long tutorial for which there is a much easier and simpler kernel to build and which gives you a lot of advantages like rapid prototype !! But there seems to be a much shorter method to do it which I think will I am sure will be preferred by the users!

Last edited by fase; 07-16-2011 at 10:15 AM.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 03:23 AM.


Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.

Copyright 2005-2010, The PC-BSD Project. PC-BSD and the PC-BSD logo are registered trademarks of iXsystems.
All other content is freely available for sharing under the terms of the Creative Commons Attribution License.