FreeBSD Kernel Compile How to


วันนี้มีเหตุต้องลง FreeBSD + Apache 1.3 + Tomcat5 + mod_jk2 ทั้งหมด 4 เครื่อง เลยมาเขียน docs ให้เพื่อนๆ อ่านเรื่อง Kernel ไปก่อนละกันนะครับ

เริ่มต้น FreeBSD หลังจากลงเสร็จต้องทำการปรับแต่ง Kernel ก่อน และ cvsup ให้เป็น version ล่าสุดก่อน โดยผมเลือกใช้ FreeBSD 6.1 ในส่วนของ Kernel จริงๆ ผมก็ไม่ได้ ปรับแต่งอะไรมากครัีบแค่เพิ่มค่าบางค่าให้มันทำงานเป็น web server ได้ดีขึ้น โดยมีขั้นตอนดั่งนี้ครับ

1. ติดตั้ง cvsup โดยผมจะติดตั้งผ่าน pkg_add เมื่อเราใส่ option -r เข้าไป pkg_add จะทำการ download packet ของเรามา install ให้เองครับ

pkg_add -r cvsup-without-gui

หลังจากรอ down โหลดเสร็จ ให้ใช้คำสั่ง rehash freebsd จะทำการ search โปรแกรมที่อยู่ใน $PATH ใหม่ครับ

2. ใช้คำสั่ง cvsup update source ล่าสุดมา ด้วยคำสั่ง

cvsup -g -L 2 /usr/share/examples/cvsup/stable-supfile -h cvsup.th.freebsd.org

-g คือไม่ต้องรันใน x-window
-L 2 คือการบอกให้ cvsup แสดง logs ออกมาทาง stdout ด้วย หากไม่ต้องการดู log ก็ใส่ 0 แทนได้ครับผม
-h คือการระบุบ host ที่จะให้ cvsup เข้าไป sync ด้วย ซึ่งในไทยก็มี cvsup.th.freebsd.org ของ http://www.lru.ac.th ครับ ที่ทำ mirror ไว้ หากท่านมี server มากก็แนะนำให้ทำ cvsup-mirror เองครับ

รอสักพักครับ แล้วแต่ net แต่ละท่านครับ

3. ทำการ แก้ไข config ของ kernel เรา โดยใช้ คำสั่ง

vi /usr/src/sys/i386/conf/SIAMBOX

เพิ่มข้อลูกเข้าไป ดั่งนี้ครับ

include	GENERIC				#Include config เดิมมาจาก GENERIC
ident	SIAMBOX				#ตั้งชื่อ Kernel ของเรา
options	SMP				#ทำใ้ห้ Kernel support 
options	IPFIREWALL			#ทำให้ Kernel support ipfw
options	IPFIREWALL_VERBOSE			#enable logging to syslogd(8) 
options	IPFIREWALL_FORWARD			#enable transparent proxy support 
options	IPFIREWALL_VERBOSE_LIMIT=100	#limit verbosity 
options	IPFIREWALL_DEFAULT_TO_ACCEPT	#allow everything by default 
options	IPDIVERT				#divert sockets 
options	IPSTEALTH				#support for stealth forwarding 
options	TCP_DROP_SYNFIN			#drop TCP packets with SYN+FIN 
options	NMBCLUSTERS=65535			#อันนี้ต้องใส่ครับ ผมไม่รู้อะครับว่าแปลว่าอะไร
					#แต่เวลาทำ web server จะขึ้น error บ่อยๆ เลยใส่เป็น 65535
options	PMAP_SHPGPERPROC=65535

หลังจากแก้ไขเสร็จ ให้ backup kernel เก่าและเข้าไปยัง /usr/src และสั่ง compile kernel ครับ

cp -Rp /boot/kernel /boot/kernel.ok
cd /usr/src
make -j4 kernel KERNCONF=SIAMBOX

รอไปอีกสักพักครับ หลังจาก compile เสร็จก็ได้ FreeBSD Kernel ล่าสุดพร้อมที่จะเอาไปติดตั้ง Software อื่นๆต่อไปครับผม

Tags: , , ,


Leave a Reply