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 -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
รอสักพักครับ แล้วแต่ 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 อื่นๆต่อไปครับผม