====== Serial Console ======
這邊說的是 FreeBSD 6.x (20060127 之後), 7.x 的用法,之前的可以看[[http://in2.wiki.ptt.cc/-SerialConsole|in2's Serial Console]](他的不太對,最後還要用 bsdlabel(8) update Bootstraps 才對)。如果不是直接裝 20060127 以後的 6.x,請先用 bsdlabel(8) 更新過 Bootstraps 才行,否則認不得 -S 這個(可能要關掉 GEOM 防射腳,才能更新)。
* kernel conf
device sio
* /boot.config
-Dh -S115200
* /boot/loader.conf
console="comconsole vidconsole"
machdep.conspeed=115200
boot_multicons="YES"
* /etc/ttys
ttyd0 "/usr/libexec/getty std.115200" cons25 on secure
* /etc/remote (接 serial console 的)
console:dv=/dev/cuad0:br#115200:pa=none:
* 開機用 screen 接的話
/usr/bin/env HOME=/root TERM=cons25 LANG=C /usr/local/bin/screen -dm -c /root/screenrc-console
defscrollback 20000
vbell off
screen -t con /root/tip.sh con
#!/bin/sh
export HOME=/root
export TERM=cons25
while true; do
/usr/bin/tip $@
echo "sleep 10 secs"
/bin/sleep 10
done
====== GEOM Journaling ======
If you see 'panic: journal overflow', tune
kern.geom.journal.force_switch=50
kern.geom.journal.cache.switch=75
to force journal flush more frequently.
If ''kern.geom.journal.stats.wait_for_copy'' is higher, tune
kern.geom.journal.parallel_copies=24 # default 16
kern.geom.journal.parallel_flushes=12 # default 16
to force gjournal copies data faster.
Increase gjournal cache (by increase total kernel memory)
vm.kmem_size_max=419430400
====== PXE Install ======
* Load bootonly CD into /pxe
* vfs.root.mountfrom="ufs:/dev/md0c" in loader.conf
* gzip -d boot/mfsroot.gz
* [OPTIONAL] export installation CD via NFS
* DHCP
host pxe {
hardware ethernet 00:11:22:33:44:55;
fixed-address 10.0.0.1;
next-server 10.0.0.254; # server ip (nfs, also for tftp server)
# server-identifier 10.0.0.254;
filename "/boot/pxeboot"; # relative to tftp root
option root-path "/pxe/"; # bootonly, absolute path
}
* NFS [OPTIONAL?]
/pxe 10.0.0.1
* tftp
/usr/libexec/tftpd -s /pxe
====== IPMI ======
* [[http://in2.wiki.ptt.cc/-%E5%9C%A8+FreeBSD+%E4%B8%8A%E4%BD%BF%E7%94%A8+ipmi+%E9%80%B2%E8%A1%8C%E9%81%A0%E7%AB%AF%E9%9B%BB%E6%BA%90%E7%AE%A1%E7%90%86|in2's 在 FreeBSD 上使用 ipmi 進行遠端電源管理]]
* 在 20060615 以後的 RELENG_6 已經內建 ipmi(4)
* 用 bge(4) 的話,需要 [[http://people.freebsd.org/~rafan/bge-ipmi-6.diff|patch]] (已經在 HEAD 了,這個只是單純 backport)
* 設定
ipmitool -I open chassis status
ipmitool -I open lan set 7 ipaddr 該網卡的IP
ipmitool -I open lan set 7 netmask 該網卡的netmask
ipmitool -I open lan set 7 defgw ipaddr 該網卡的DefaultGateway # 不見得
ipmitool -I open lan set 7 access on
ipmitool -I open lan set 7 password 你的密碼
ipmitool -I open lan set 7 auth CALLBACK MD5
ipmitool -I open lan set 7 auth USER MD5
ipmitool -I open lan set 7 auth OPERATOR MD5
ipmitool -I open lan set 7 auth ADMIN MD5
ipmitool -I open lan set 7 user
* 測試
ipmitool -A PASSWORD -I lan -H 該機器的ip -P 密碼 chassis status
* 常用功能
* power status
* power on
* power off
* power reset
* power soft (via acpi)
* power cycle
====== Booting ======
Reference
* [[http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/boot-blocks.html|Handbook 12.3 The Boot Manager and Boot Stages]]
* [[http://www.freebsd.org/cgi/man.cgi?query=boot&apropos=0&sektion=0&manpath=FreeBSD&format=html|boot(8)]]
* boot0 (boot manager)
* ''fdisk -B -b /boot/boot0 device''
F1 DOS
F2 FreeBSD
F3 Linux
F4 ??
F5 Drive 1
Default: F2
* boot1 (Stage 1) (boot block)
* ''bsdlabel -B diskslice''
* 512 bytes
* knows about disklabel
* a rotating bar (\ - | /)
* find and exectute boot2
* boot2 (Stage 2) (boot block)
* ''bsdlabel -B diskslice''
* knows about filesystem
* choose loader or kernel
* read ''/boot.config'' from slice ''a'' //only//
>> FreeBSD/i386 BOOT
Default: 0:ad(0,a)/boot/loader
boot:
* loader (Stage 3)
====== pkgtools.conf ======
* ''AFTERINSTALL''
AFTERINSTALL = {
'*' => proc { |origin|
cmd_restart_rc(origin)
},
}
====== Jail ======
* periodic.conf
daily_status_disks_enable="NO"
daily_status_network_enable="NO"
daily_status_security_chksetuid_enable="NO"
daily_status_security_chkmounts_enable="NO"
daily_status_security_ipfwdenied_enable="NO"
daily_status_security_ipfdenied_enable="NO"
daily_status_security_pfdenied_enable="NO"
daily_status_security_ipfwlimit_enable="NO"
daily_status_security_ip6fwdenied_enable="NO"
daily_status_security_ip6fwlimit_enable="NO"
daily_status_security_kernelmsg_enable="NO"
====== ports tinderbox ======
* Install to /home/tinderbox (from tarball)
* Follow README
* Setup ccache
* Compile kernel with COMPAT_FREEBSD[56]
* [[http://www.marcuscom.com/downloads/binutils.diff|binutil patch]] for on 7.x
./tc updateHookCmd -h preJailBuild -c /home/tinderbox/patch/binutils.sh
$ cat /home/tinderbox/patch/binutils.sh
#!/bin/sh
major_version=$(echo ${JAIL} | sed -E -e 's|(^.).*$|\1|')
if [ ${major_version} -le 6 ]; then
cd ${SRCBASE}
patch -p1 < /home/tinderbox/patch/binutils.diff
fi
exit 0
* portstree.env
export FORCE_PACKAGE=1
export TRYBROKEN=1
* build.env (nodoc)
export NOPORTDOCS=1
export NOPORTEXAMPLES=1
export NOPORTDATA=1
* build.env (nonls)
export WITHOUT_NLS=1
* apache conf
DocumentRoot /home/tinderbox/scripts/www-exp
Alias /logs/ "/home/tinderbox/logs/"
Alias /packages/ "/home/tinderbox/packages/"
Alias /errors/ "/home/tinderbox/errors/"
#Alias /tb/ "/home/tinderbox/scripts/www-exp/"
Order allow,deny
Allow from all
Order deny,allow
Deny from all
====== misc ======
* ''ls -S'' to sorted by size (6.0)