Eee PC 4G-X に VineSeed をインストールする (eeevine-seed-20081206 相当)
[追記 2009/09/21]Vine Linux 5.0 のインストーラは USB から立ち上がりますので、以下の記事の大半は不要になりました。
前回、前々回はスクリーンショットと簡単な紹介のみでした。
- 「Eee PC 4G-X で VineSeed を動かしてみた」([id:munepi:20081129:1227970815])
- 「Eee PC 4G-X で VineSeed の無線ネットワークの設定をしてみた」([id:munepi:20081203:1228237262])
今回はインストール方法をドキュメントとしてまとめてみました。
実際に、コマンドラインから叩いたほとんどの処理をそのまま書き出していますので、chroot からですとカット&ペーストできる部分も多いと思われます。
少々長いですので、インストールの流れを列挙しますと、
- Vine Linux 4.2 の最小インストールから VineSeed へアップグレード
- USB ブート可能な initrd を作成
- SDHC へ VineSeed を丸ごとコピー
- SDHC へ Grub をインストール
- Eee PC の有線/無線ネットワークの設定
のような感じで、それぞれつまずきやすいポイントだと思います(私だけかも!?)。
Vine Linux 4.2 を最小構成でインストールし、tar.bz2 で固めます。
私は実ハードディスクへ Vine Linux 4.2 を Base System でインストールしました。
パーティションは /boot を作る必要はありません。Eee PC へは / しかコピーしません。
Vine Linux 4.2 のインストールが終わったら、/ パーティションマウントして、固めます。
$ sudo mount /dev/sda7 /mnt/sda7 $ sudo -i # cd /mnt/sda7 # tar jcvfp /tmp/eeevine-4.2-plain-20081206.tar.bz2 .dev.static * # chown munepi:users /tmp/eeevine-4.2-plain-20081206.tar.bz2 # exit $ du -hs /tmp/eeevine-4.2-plain-20081206.tar.bz2 86M /tmp/eeevine-4.2-plain-20081206.tar.bz2 $ cp /tmp/eeevine-4.2-plain-20081206.tar.bz2 /kurobox/lib/linux/vine/eeevine/
VineSeed へアップグレードします。
# eng # vim /etc/apt/sources.list #################### BEGIN #################### ## ## VineSeed ## # (master) rpm [vine] http://updates.vinelinux.org/apt VineSeed/$(ARCH) main plus nonfree extras rpm-src [vine] http://updates.vinelinux.org/apt VineSeed/$(ARCH) main plus nonfree extras #################### END #################### # apt-get update # apt-get dist-upgrade apt-get dist-upgrade でさらに更新があれば,更新する # rm /var/lib/rpm/__db.* # rpmdb --rebuilddb # vim /etc/fstab 必要であれば,/etc/fstab で /dev/hdX になっているところを /dev/sdX へ変更 Optional for Non SATA or SATA mode as IDE # vim /etc/modprobe.conf #################### BEGIN #################### alias scsi_hostadapter ata_piix #################### END #################### # cd /boot # /sbin/mkinitrd -v -f /boot/initrd-2.6.26-7vl5.img 2.6.26-7vl5 # reboot
現時点での VineSeed 最小構成として,tar.bz2 で固めておきます。
以下、/dev/sdaX へ Eee PC 用の VineSeed を構築しているものとして、話を進めます。
/kurobox は…、玄箱 HG へコピーですね (^_^;)
$ sudo mount /dev/sda7 /mnt/sda7 $ sudo -i # cd /mnt/sda7 # rm -f var/cache/apt/archives/*.rpm # tar jcvfp /tmp/eeevine-seed-plain-20081206.tar.bz2 .dev.static * # chown munepi:users /tmp/eeevine-seed-plain-20081206.tar.bz2 # exit $ du -hs /tmp/eeevine-seed-plain-20081206.tar.bz2 141M /tmp/eeevine-seed-plain-20081206.tar.bz2 $ cp /tmp/eeevine-seed-plain-20081206.tar.bz2 /kurobox/lib/linux/vine/eeevine/
chroot で入って,Eee PC 用に調整します。
$ sudo mount -t proc proc /mnt/sdaX/proc
$ sudo /usr/sbin/chroot /mnt/sdaX
initrd イメージを USB ブート対応にする
bash-3.2# mkdir /boot/work bash-3.2# cd /boot/work bash-3.2# zcat ../initrd-2.6.26-7vl5.img | cpio -i -c gzip -dc ../initrd-2.6.26-7vl5.img | cpio -idmv などでも構いません. bash-3.2# find /lib/modules/`uname -r`/ -name ehci-hcd.ko -exec cp -a {} lib/ \; bash-3.2# find /lib/modules/`uname -r`/ -name ohci-hcd.ko -exec cp -a {} lib/ \; bash-3.2# find /lib/modules/`uname -r`/ -name scsi_mod.ko -exec cp -a {} lib/ \; bash-3.2# find /lib/modules/`uname -r`/ -name sd_mod.ko -exec cp -a {} lib/ \; bash-3.2# find /lib/modules/`uname -r`/ -name usb-storage.ko -exec cp -a {} lib/ \; bash-3.2# ls lib ata_piix.ko ehci-hcd.ko ohci-hcd.ko scsi_wait_scan.ko usb-storage.ko dock.ko libata.ko scsi_mod.ko sd_mod.ko bash-3.2# vim init #################### BEGIN #################### #!/bin/nash mount -t proc /proc /proc #setquiet echo Mounted /proc filesystem echo Mounting sysfs mount -t sysfs none /sys ### <eeevine> echo "Loading ehci-hcd.ko module" insmod /lib/ehci-hcd.ko echo "Loading ohci-hcd.ko module" insmod /lib/ohci-hcd.ko ### </eeevine> echo "Loading scsi_mod.ko module" insmod /lib/scsi_mod.ko echo "Waiting for driver initialization." stabilized --iterations 10 --interval 250 /proc/scsi/scsi echo "Loading sd_mod.ko module" insmod /lib/sd_mod.ko ### <eeevine> echo "Loading usb-storage.ko module" insmod /lib/usb-storage.ko sleep 10 ### </eeevine> (snip) #################### END #################### bash-3.2# find | cpio -H newc -o | gzip -9 > ../initrd-2.6.26-7vl5eeevine.img
/boot/grub/menu.lst の編集
Eee PC 上で / パーティションが /dev/sda1 として認識されます。
bash-3.2# vim /boot/grub/menu.lst ########## BEGIN ########## title Vine Linux (Modified kernel) kernel /boot/vmlinuz ro root=/dev/sda1 initrd /boot/initrd-2.6.26-7vl5eeevine.img ########## END ##########
もし Windows Xp も必要であれば,以下を追加します.
########## BEGIN ########## title Microsoft Windows XP Home Edition root (hd1,1) savedefault makeactive map (hd0) (hd1) map (hd1) (hd0) chainloader +1 ########## END ##########
/etc/fstab の編集
bash-3.2# vim /etc/fstab ########## BEGIN ########## /dev/sda1 / ext3 defaults,noatime 1 1 (snip) #/dev/sda2 swap swap defaults 0 0 none /tmp tmpfs defaults,noatime 0 0 none /var/tmp tmpfs defaults,noatime 0 0 none /var/cache/apt/archives tmpfs defaults,noatime 0 0 ########## END ##########
/tmp, /var/tmp, /var/cache/apt/archives の tmpfs 化
/tmp, /var/tmp, /var/cache/apt/archives 以下にあるファイルをすべて削除
/etc/rc.local の編集
bash-3.2# vim /etc/rc.local ########## BEGIN ########## #### Vine stuff ends here ### <eeevine> # for tmpfs install -m755 -d /var/cache/apt/archives/partial # Optional: swap zero echo 0 > /proc/sys/vm/swappiness ### </eeevine> ########## END ##########
/etc/init.d/halt の編集
bash-3.2# vim /etc/init.d/halt ########## BEGIN ########## # Save mixer settings, here for lack of a better place. grep -q "\(alsa\)" /proc/devices if [ $? = 0 -a -x /sbin/salsa ]; then action $"Saving mixer settings" /sbin/salsa -s fi ### <eeevine> # for stopping snd-hda-intel of shutdown process /sbin/modprobe -r snd-hda-intel ### </eeevine> # Save random seed ########## END ########## bash-3.2# exit
現時点での eeevine-seed の最小構成として,tar.bz2 で固めておきます。
$ sudo umount /mnt/sdaX/proc $ sudo -i # cd /mnt/sdaX # tar jcvfp /tmp/eeevine-seed-20081206.tar.bz2 .dev.static * # chown munepi:users /tmp/eeevine-seed-20081206.tar.bz2 # exit $ du -hs /tmp/eeevine-seed-20081206.tar.bz2 145M /tmp/eeevine-seed-20081206.tar.bz2 $ cp /tmp/eeevine-seed-20081206.tar.bz2 /kurobox/lib/linux/vine/eeevine/
SDHC へ eeevine-seed をインストールします。
SDHC を差してどこにマウントされているかを確認します。
$ sudo /sbin/fdisk -l
私の場合は、SDHC が /dev/sdc として認識されましたので、以下そのままで話を進めます。
SDHC に ext3 パーティションを 1 つ作成します。これが / パーティションになります。
私は tune2fs でけちけちな設定にしています。
$ sudo /sbin/fdisk /dev/sdc $ sudo /sbin/mkfs -t ext3 /dev/sdc1 $ sudo tune2fs -r 10000 /dev/sdc1 $ sudo tune2fs -c 0 /dev/sdc1
Grub のインストール
/dev/sdc へ grub をなんとかインストールして下さい。
$ sudo /usr/sbin/grub-install --root-directory=/mnt/sdhc /dev/sdc
上記ですんなりと Grub が入ってくれれば良いのですが、うまくいかないことがあるかもしれないので、grub-install で /boot/grub を再生成させた方がよいかもしれません。
一旦、/boot/grub のコピーを取って、grub-install で /boot/grub を再生成させてから、menu.lst を上書きでコピーします。menu.lst が大事なファイルです。
$ sudo mv /mnt/sdhc/boot/grub /mnt/sdhc/boot/grub.orig $ sudo /usr/sbin/grub-install --root-directory=/mnt/sdhc /dev/sdc $ sudo cp -a /mnt/sdhc/boot/grub.orig/menu.lst /mnt/sdhc/boot/grub/
eeevine-seed の動作テストをします。
念のため,これで実際に Eee PC 上で boot するか確認します。これが成功すれば、95% お疲れ様でしたです。
localhost login: root
Password:
# shutdown -h now
eeevine-seed の最小イメージを作成します。
あらかじめ atl2-2.0.5.tar.bz2 (from http://people.redhat.com/csnook/atl2/), madwifi-hal-0.10.5.6-r3879-20081204.tar.gz (from snapshots.madwifi.org: madwifi-hal-0.10.5.6) をダウンロードしておきます。それぞれ最新版を落として問題ないです。
有線のドライバは atl2 で、無線のドライバは mafwifi-hal の ath_pci です。
kernel 2.6.26 に入っている ath5k ath5k_pci と mafwifi-hal の ath_pci との相性が良くないみたいです。
(追記 [2009/01/16) kernel-2.6.27-8 以降、atl2 がパッチとして追加されましたので、自前でビルドする必要はありません。
また、以下の xorg.conf を作成しておきます。これを見れば分かりますが、eeeUbuntu の xorg.conf をベースにしています。ほとんど自動認識してくれます。
########## BEGIN ########## # xorg.conf (X.Org X Window System server configuration file) # # This file was generated by dexconf, the Debian X Configuration tool, using # values from the debconf database. # # Edit this file with caution, and see the xorg.conf manual page. # (Type "man xorg.conf" at the shell prompt.) # # This file is automatically updated on xserver-xorg package upgrades *only* # if it has not been modified since the last upgrade of the xserver-xorg # package. # # If you have edited this file but would like it to be automatically updated # again, run the following command: # sudo dpkg-reconfigure -phigh xserver-xorg Section "InputDevice" Identifier "Generic Keyboard" Driver "kbd" Option "CoreKeyboard" Option "XkbRules" "xorg" Option "XkbModel" "jp106" Option "XkbLayout" "jp" Option "XkbRules" "base" Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll" Option "XkbVariant" "" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" EndSection Section "InputDevice" Identifier "Synaptics Touchpad" Driver "synaptics" # Option "SendCoreEvents" "true" Option "SendCoreEvents" "yes" Option "Device" "/dev/psaux" Option "Protocol" "auto-dev" Option "LeftEdge" "1000" Option "RightEdge" "5400" Option "TopEdge" "1000" Option "BottomEdge" "4900" Option "VertEdgeScroll" "1" Option "HorizEdgeScroll" "0" Option "VertScrollDelta" "100" Option "HorizScrollDelta" "0" Option "PalmDetect" "0" Option "SHMConfig" "on" Option "VertTwoFingerScroll" "1" Option "TapButton1" "1" Option "TapButton2" "2" Option "TapButton3" "3" Option "RBCornerButton" "0" Option "RTCornerButton" "0" EndSection Section "Device" Identifier "Configured Video Device" EndSection Section "Monitor" Identifier "Configured Monitor" EndSection Section "Screen" Identifier "Default Screen" Monitor "Configured Monitor" Device "Configured Video Device" EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Synaptics Touchpad" InputDevice "Generic Keyboard" EndSection ########## END ##########
chroot して、atl2 と ath_pci をインストールします。
$ sudo mount /dev/sda7 /mnt/sdaX $ sudo mount -t proc proc /mnt/sdaX/proc $ sudo mkdir /mnt/sdaX/usr/local/share/eeevine $ sudo cp atl2-2.0.5.tar.bz2 madwifi-hal-0.10.5.6-r3879-20081204.tar.gz /mnt/sdaX/usr/local/share/eeevine/ $ sudo /usr/sbin/chroot /mnt/sdaX bash-3.2# mkdir -p /var/cache/apt/archives/partial bash-3.2# apt-get install build-essential kernel-source kernel-headers kernel-devel bash-3.2# cd /usr/local/share/eeevine bash-3.2# install -m644 xorg.conf /etc/X11/ bash-3.2# tar jxvf atl2-2.0.5.tar.bz2 bash-3.2# cd atl2-2.0.5 bash-3.2# make clean && make bash-3.2# install -m0755 -d /lib/modules/2.6.26-7vl5/kernel/drivers/net/atl2 bash-3.2# install -m0755 atl2.ko /lib/modules/2.6.26-7vl5/kernel/drivers/net/atl2/ bash-3.2# cd .. bash-3.2# tar zxvf madwifi-hal-0.10.5.6-r3879-20081204.tar.gz bash-3.2# cd madwifi-hal-0.10.5.6-r3879-20081204 bash-3.2# make clean && make && make install
ここで atl2 と ath_pci に関する設定をしてしまいます。
bash-3.2# vim /etc/modprobe.d/blacklist ########## BEGIN ########## ### <eeevine> # Wireless Network blacklist ath5k_pci blacklist ath5k ### </eeevine> ########## END ########## bash-3.2# vim /etc/modprobe.conf ########## BEGIN ########## #alias eth0 r1000 #alias char-major-81 ivtv ########## END ########## bash-3.2# vim /etc/udev/rules.d/70-persistent-net.rules 人によって異なりますが、コメントアウトしてしまいます。 ########## BEGIN ########## # PCI device 0x10ec:0x8168 (r1000) (custom name provided by external tool) #SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="XX:XX:XX:XX:XX:XX", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0" ########## END ########## bash-3.2# rpm -e kernel-2.6.16-0vl76.27 bash-3.2# exit
最小イメージとして固めます。
$ sudo umount /mnt/sdaX/proc $ sudo -i # cd /mnt/sdaX # rm -rf var/cache/apt/archives/* # tar jcvfp /tmp/eeevine-seed-20081206.tar.bz2 .dev.static * 本当は,boot とそれ以外の base で分けた方がいい. Grub を再インストールしないといけないから. # chown munepi:users /tmp/eeevine-seed-20081206.tar.bz2 # exit $ du -hs /tmp/eeevine-seed-20081206.tar.bz2 233M /tmp/eeevine-seed-20081206.tar.bz2 $ cp /tmp/eeevine-seed-20081206.tar.bz2 /kurobox/lib/linux/vine/eeevine/
再び SDHC へ eeevine-seed をインストールします。
$ sudo mount /dev/sdc1 /mnt/sdhc/ $ sudo -i # cd /mnt/sdhc/ # tar jxvfp /tmp/eeevine-seed-20081206.tar.bz2 # exit $ sudo umount /mnt/sdhc/
必要であれば Grub も再インストールします。
いよいよ Eee PC 上で作業開始します!
この時点で,boot 時に udev が自動的にドライバを判断してくれて,有線 LAN に atl2 によって接続可能です.
まずは、デスクトップ環境と構築します。
ちなみに、この作業を chroot 環境でやってしまっても構わないのですが、ファイル数からして SDHC へコピーするのにものすごく時間がかかります。どっこいどっこいなのかもしれません。
# apt-get install task-gnome \ autofs nfs-utils sudo setuptool alsa-utils sndconfig readahead \ rsync vixie-cron nmap \ FD cups-pdf gnubiff hardinfo meld \ wget lha unzip openssh-clients synaptic update-watch foomatic-ppd \ firefox scim-anthy scim-bridge scim-bridge-gtk scim-input-pad \ java-1.6.0-sun \ NetworkManager-gnome \ xorg-x11-server-Xorg xorg-x11-drivers \ xorg-x11-xfs xorg-x11-xfs-utils xterm \ xorg-x11-xsm xorg-x11-server-Xdmx xorg-x11-xdm xorg-x11-utils \ xorg-x11-fonts* xorg-x11-jpfonts freefonts \ TrueType-hanaminplus \ totem-xine xine-lib-w32dll xine-lib-alsa \ gnumeric gftp gimp pidgin w3m lynx \ libnotify notification-daemon \ perl-MIME-tools \ samba-client \ gnome-mount gnome-volume-manager sshfs-fuse gparted zenity vutils-gui # preload wine TiMidity++ Optional: Emacs # apt-get install emacs emacs23 anthy-el bogofilter starttls \ html-helper-mode wl yatex tamago howm curl riece po-mode Optional: Compiz Fusion # apt-get install compiz compiz-fusion emerald fusion-icon \ compiz-fusion-extras compiz-fusion-extras-gnome compiz-fusion-gnome glx-utils Optional: Wnn8 + scim-wnn + wnn7egg # apt-get install scim-honoka scim-honoka-* scim-wnn libwnn7 wnn7egg Optional: pteTeX # apt-get install makejvf mathabx psutils t1lib t1utils task-tetex \ tetex-extra latex2html gv pdftk xpdf
ランレベルを 5 へ切り替えます。
# vim /etc/inittab ########## BEGIN ########## id:5:initdefault: ########## END ##########
NetworkManager へ切り替えます.
# vim /sbin/chkconfig network off # vim /sbin/chkconfig wpa_supplicant off # vim /sbin/chkconfig NetworkManager on
以上で、とりあえず一段落です。
# useradd -m -G wheel,users YOUR_ACCOUNT
などとして管理者ユーザーを追加すれば,これで最低限ネットブックとして使えます.
後は,cpufreq だとか,Eee PC 独自のカスタマイズが必要です。それはまたの機会に記事にします!
もしここまで作業をされた方がおられましたら,長々とお付き合い下さいましてありがとうございました.
お疲れ様でした m(_ _)m