#desc Top ; -*- mode: Muse; coding: euc-japan-unix -*-
#title kernel の再構築メモ
******
$Lastupdate: 2008/04/23 15:51:11 $
* 始めに
この文書は自作 DOS/V 機や laptop 機の
linux kernel を再構築した際のメモです.
使用 OS は Debian GNU/Linux 4.0(Etch), もしくは testing(Lenny) です.
----
* 準備
** ソースの取得
$ sudo aptitude install linux-source-2.6.24
** 構築環境の導入, 設定
$ sudo aptitude install kernel-package build-essential fakeroot
$ sudo kernel-packageconfig <-名前とメールアドレスを設定
$ sudo aptitude install libncurses5-dev
kernel-packageconfig の結果は /etc/kernel-pkg.conf にある.
あとは
$ sudo adduser [username] src
として作業ユーザを src グループに追加して再 login してから作業を始める.
----
#laptop
* laptop
Panasonic Let's Note CF-R4 を使用中.
#swsusp2
** TuxOnIce
旧「Sotfware Suspend2」.
lenny/sid のパッケージになっている linux-patch-tuxonice を導入して,
それを当てる.
$ cd /usr/src
$ tar xf linux-source-2.6.24.tar.bz2
$ ln -s linux-source-2.6.24 linux
$ cd linux
$ ../kenrel-patch/all/apply/tuxonice
...
All happy!
** config & build
設定開始
$ cd /usr/src/linux
$ make oldconfig
$ make menuconfig
不要なモノを削ればその分構築は速くなるけど, 結構大変.
/ が含まれるディスクのデバイスドライバと
/boot のファイルシステムは組み込んでおかないと起動できないので注意.
CONFIG_BLK_DEV_PIIX=y
と
CONFIG_EXT3_FS=y
は選んでおく.
TuxOnIce の設定は
Power management options --->
[*] Power Management support [CONFIG_PM]
[*] Hibernation (aka 'suspend to disk') [CONFIG_HIBERNATION]
() Default resume partition [CONFIG_PM_STD_PARTITION]
<*> Enhanced Hibernation (TuxOnIce) --->
<*> File Allocator [CONFIG_TOI_FILE]
<*> Swap Allocator [CONFIG_TOI_SWAP]
<*> Compression support [CONFIG_TOI_CRYPTO]
<*> Userspace User Interface support [CONFIG_TOI_USERUI]
(/usr/lib/tuxonice-userui/tuxoniceui_text) Default userui program location
[CONFIG_TOI_USERUI_DEFAULT_PATH]
[ ] Allow Keep Image Mode [CONFIG_TOI_KEEP_IMAGE]
[*] Replace swsusp by default [CONFIG_TOI_REPLACE_SWSUSP]
[*] Checksum pageset2 [CONFIG_TOI_CHECKSUM]
(25) Default waiting time for emergency boot messages
[CONFIG_TOI_DEFAULT_WAIT]
[*] ACPI Support (Advanced Configuration and Power Interface) Support --->
[CONFIG_ACPI]
Cryptographic API --->
{M} AES cipher algorithms [CONFIG_CRYPTO_AES]
AES cipher algorithms (x86_64) [CONFIG_CRYPTO_AES_X86_64]
<*> LZF compression algorithm [CONFIG_CRYPTO_LZF]
あとはデフォルトのままにして blacklist module を登録することにする.
個人的には ipv6 は今んとこ使ってないので, 抜いても良いかな, とか思う.
ログが煩いし...
あと initramfs-tools で TuxOnIce 用の script を仕込んでおく.
/etc/iniramfs-tools/scripts/local-premount/ に
#!/bin/sh
PREREQ=""
prereqs()
{
echo "$PREREQ"
}
case $1 in
# get pre-requisites
prereqs)
prereqs
exit 0
;;
esac
if [ -d /sys/power/tuxonice ]; then
echo 1 > /sys/power/tuxonice/do_resume
fi
としておくと, kernel package の postinst で
生成される initrd でも resume できるようになる.
linux-image には hostname_YYMMDD とバージョン名をつける事に.
$ fakeroot make-kpkg --revision=`date '+%y%m%d'` \
--append-to-version=.`cat /etc/hostname` kernel-image
これで linux-image-2.6.24.__i386.deb が生成される.
その後 構築した image を install する.
$ sudo dpkg -i linux-image-2.6.18.__i386.deb
#blacklist
** module の blacklist 登録
/etc/hotplug/blacklist.d 以下にテキストファイルを作成する.
blacklist.local というファイルを作成した.
$ ls /etc/modprobe.d/
aliases blacklist linux-sound-base_noOSS@
alsa-base blacklist.local oss-compat@
alsa-base-blacklist display_class pnp-hotplug
arch/ i2c thinkpad_acpi.modprobe
arch-aliases@ libpisock9
$ cat /etc/hotplug/blacklist.d/blacklist.local
# local blacklist setting
blacklist ipw2200
blacklist ieee80211
blacklist ipv6
blacklist 8139cp
blacklist yenta_socket
blacklist pcmcia
blacklist tsdev
blacklist joydev
blacklist pcspkr
上に書いてあるモジュールは blacklist 登録した代償として,
hotplug の恩恵は受けられない. 使う場合には明示的に読み込む必要がある.
** pcc_acpi
Hotkey を使うために,
[[http://www.da-cha.jp/letsnote][Panasonic Hotkey driver homepage]] より, モジュールのソースを落としてくる.
しかし linux 2.6.24 ではそのままでは make が通らないので,
suse で公開している patch を当てる.
- http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/src/pcc-acpi-0.9-4.src.rpm
落としてきた src.rpm を展開して, patch 当てする.
当てた後は管理者権限で make, make install で導入可能.
/etc/default/acpid の MODULES に
MODULES="battery ac processor button fan thermal pcc_acpi"
として, acpid 起動時に pcc_acpi を読み込むようにする.
acpid の設定は, etch の頃は
- 本家から hotkey-handler と ac-handler を取得し, 中身を展開
なんて事をしていたけれども, acpi-support パッケージを導入すると
$ ls /etc/acpi/pana*
/etc/acpi/panabright.sh /etc/acpi/panapower.sh
なんてモノが導入されるので, 気になる時はコレを弄る.
本家にはユーティリティとして hotkeys の Debian package が公開されているが,
sarge 版なので etch や lenny 用に build すると良い.
以上が終わったら, acpid を再起動し, .xsession あたりに
hotkeys -t pcc -d none
とでも書いておく.
中身が気にくわない場合には
/etc/hotkeys.conf や /etc/acpid/ 以下を修正していく
----
* 参考文献
** 全般
- [[http://www.debian.org/releases/stable/i386/index.html.ja][Debian GNU/Linux インストールガイド]]
- [[http://qref.sourceforge.net/Debian/reference/reference.ja.html][Debian リファレンス]]
** CF-R4
- [[http://kmuto.jp/open.cgi?Y2][Let's note CF-Y2]]
- [[http://yoosee.net/wiki/?Debian%2Finstall%2FCF-Y4][Debian sarge on Let's Note CF-Y4]]
- [[http://web.yl.is.s.u-tokyo.ac.jp/~furuse/comp/cf-w4.html][Debian Linux for CF-W4 (Let's note)]]
- [[http://www.da-cha.jp/letsnote][Panasonic Hotkey driver homepage]]
- http://download.opensuse.org/distribution/SL-OSS-factory/inst-source/suse/src/pcc-acpi-0.9-4.src.rpm