merampingkan kernel GENERIC OpenBSD dengan menggunakan dmassage
Tulisan ini saya salin kembali supaya tidak lupa ma proses pembelajarannya. ![]()
Awalnya sih tulisan ini adalah hasil dari postingan saya di forum.linux.or.id tentang bagaimana cara merampingkan ukuran kernel GENERIC di OpenBSD 4.0 yang saya gunakan.
Fyi, tool yang saya gunakan adalah dmassage yang bisa didownload dari situs resmi dmassage.
Di openbsd sendiri, dmassage juga bisa diinstall dgn menggunakan pkg_add(1).
# setenv PKG_PATH ftp://ftp.openbsd.org/pub/OpenBSD/4.0/packages/i386
# pkg_add ${PKG_PATH}/dmassage-0.6.tgz
Utk mempersingkat, silahkan disimak caranya..
Uname dulu ah..
-bash-3.1# uname -a
OpenBSD openbsd.domain.com 4.0 GENERIC#1107 i386
-bash-3.1#
Export beberapa parameter di bash, trus bikin alias secukupnya biar kerjanya lebih nyaman
-bash-3.1# . ~/.bashrc && . ~/.alias
-bash-3.1# alias
alias +='pushd .'
alias -='popd'
alias ..='cd ..'
alias ...='cd ../..'
alias cp='cp -i'
alias igrep='grep -i'
alias l='ls -alF'
alias l1='ls -1F'
alias la='ls -A'
alias lh='ls -lkh'
alias ll='ls -l'
alias lld='ls -ld */'
alias md='mkdir -p'
alias mv='mv -i'
alias o='less'
alias p='cd -'
alias rd='rmdir'
alias rm='rm -i'
alias vi='/usr/local/bin/vim -o'
Backup kernel lama, buat jaga2..
-bash-3.1# cp /bsd{,.bak}
-bash-3.1# ll /bsd*
-rw-r--r-- 1 root wheel 6046462 Jan 1 2002 /bsd
-rw-r--r-- 1 root wheel 6046462 Nov 22 18:04 /bsd.bak
-rw-r--r-- 1 root wheel 6095210 Jan 1 2002 /bsd.mp
-rw-r--r-- 1 root wheel 5007053 Jan 1 2002 /bsd.rd
Cek apakah dmassage dah ada..
-bash-3.1# type -P dmassage
/sbin/dmassage
Bikin konfig kernel baru pake dmassage, biar lebih cepet n gak usah mikir parameter2nya.. :p
(not recommended, seharusnya parameter2 kernel memang HARUS DIBACA dulu apa2 aja maksudnya. Ini cuman ngegambarin kalo dmassage cukup nyaman digunakan utk proses “diet”)
Trus simpan diff antara yang GENERIC ma yang baru
-bash-3.1# cd /usr/src/sys/arch/i386/conf
-bash-3.1# dmassage -s ./GENERIC > ./HXP
-bash-3.1# diff ./GENERIC ./HXP > ./diffed-kernel-config
Lanjut ngonfig kernel barunya
-bash-3.1# config ./HXP
Don't forget to run "make depend"
Dikompile deh..
-bash-3.1# cd ../compile/HXP/
-bash-3.1# make depend && make
mkdir -p /usr/src/sys/arch/i386/compile/HXP/lib/kern
depending the kern library objects
mkdep -a -I/usr/src/sys/lib/libkern/arch/i386 -nostdinc -I../../. -I/usr/src/sys/arch/i386/compile/HXP/../../../../arch -I/usr/src/sys/arch/i386/compile/HXP/../../../.. -DDDB -DDIAGNOSTIC -DKTRACE -DACCOUNTING -DKMEMSTATS -DPTRACE -DCRYPTO -DSYSVMS
G -DSYSVSEM -DSYSVSHM -DUVM_SWAP_ENCRYPT -DCOMPAT_35 -DCOMPAT_43 -DLKM
<sengaja dipotong, kepanjangan..>
-DWSDISPLAY_COMPAT_RAWKBD -DWSDISPLAY_DEFAULTSCREENS="6" -DWSDISPLAY_COMPAT_PCVT -DPCIAGP -D_KERNEL -Di386 -c vers.c
rm -f bsd
ld -Ttext 0xD0200120 -e start -N -S -x -o bsd ${SYSTEM_OBJ} vers.o
text data bss dec hex
2515899 70180 282928 2869007 2bc70f
-bash-3.1#
Cek kernel baru, trus pindahin ke /
-bash-3.1# pwd
/usr/src/sys/arch/i386/compile/HXP
-bash-3.1# ll ./bsd*
-rwxr-xr-x 1 root wheel 2862653 Nov 22 18:25 ./bsd
-rw-r--r-- 1 root wheel 8596 Nov 22 18:22 ./bsd-comp.o
-rw-r--r-- 1 root wheel 1376 Nov 22 18:25 ./bsdos_exec.o
-rw-r--r-- 1 root wheel 1316 Nov 22 18:25 ./bsdos_ioctl.o
-rw-r--r-- 1 root wheel 9564 Nov 22 18:25 ./bsdos_sysent.o
-bash-3.1# file ./bsd
./bsd: ELF 32-bit LSB executable, Intel 80386, version 1, statically linked, not stripped
-bash-3.1# cp ./bsd /bsd.HXP
Cek masing-masing ukuran dari GENERIC dan HXP, dari proses perampingan kelihatan ada selisih sekitar 3,1Meg ![]()
-bash-3.1# ll /bsd*
-rwxr-xr-x 1 root wheel 2862653 Nov 22 18:25 /bsd.HXP
-rw-r--r-- 1 root wheel 6046462 Jan 1 2002 /bsd
-rw-r--r-- 1 root wheel 6046462 Nov 22 18:04 /bsd.bak
-rw-r--r-- 1 root wheel 6095210 Jan 1 2002 /bsd.mp
-rw-r--r-- 1 root wheel 5007053 Jan 1 2002 /bsd.rd
Tambahin kernel baru ke boot.conf, reboot bwt ngeceknya..
-bash-3.1# vim /etc/boot.conf
-bash-3.1# cat /etc/boot.conf
set device wd1a
set timeout 5
#set image /bsd
set image /bsd.HXP
-bash-3.1# reboot
Setelah reboot, kita cek kernel barunya, trus simpan dmesg dari si kernel baru
0 hari@fujitsu: ~
Thu Nov 22, 11:35 $ ssh root@openbsd
Last login: Thu Nov 22 17:56:03 2007 from 10.128.17.19
OpenBSD 4.0 (HXP) #0: Thu Nov 22 18:25:29 WIT 2007
Welcome to OpenBSD: The proactively secure Unix-like operating system. Please use the sendbug(1) utility to report bugs in the system.
Before reporting a bug, please try to reproduce it with the latest
version of the code. With bug reports, please try to ensure that
enough information to reproduce the problem is enclosed, and if a
known fix for it exists, include that as well.
Terminal type? [xterm]
-bash-3.1# uname -a
OpenBSD openbsd.domain.com 4.0 HXP#0 i386
-bash-3.1# dmesg > ./dmesg.HXP
-bash-3.1#
Ternyata ukuran hasil perampingan memang lumayan banyak berbeda dgn GENERIC.
Cocok digunakan utk mesin non-produksi dgn memori dan kapasitas harddrive yang terbatas.
Untuk mesin produksi tidak direkomendasikan menggunakan kernel custom, karena support dari komunitas bsd biasanya hanya sebatas pada kernel GENERIC saja.
kalau untuk di linux, pakai apa ya? selain sunting berkas .config-nya perbaris dengan mencocokkan dgn hardware yang ada.
deRegen
April 1, 2008 at 4:36 pm
Sayangnya (masih) belum ada.
hxpurnama
April 3, 2008 at 10:15 am
klo untuk freebsd bisa pake dmesg ngak??
sherayusuf
August 13, 2008 at 9:06 pm