2012年03月13日
KZM-A9-DualでDebianをnetinstallする
initrdの使い方がわかってきたので、その応用としてDebianをnetinstallしてみます。
以前に、「ARMのQEMUにDebianをnetinstallする」という記事を書きましたが、今回はQEMUでなくてKZM-A9-Dualボードで行います。
Debianのnetinstall用のinitrdの入手
wget http://ftp.jp.debian.org/debian/dists/stable/main/installer-armel/current/images/versatile/netboot/initrd.gz
これはversatileボード用のものですが、ローダブルモジュール以外はボードに依存するところはなさそうで、これをKZM-A9-Dualボードで使ってもうまくいきました。
kernelのコンフィグ
make menuconfigで以下を変更しました。
General setup ---> Support for paging of anonymous memory (swap) Networking support ---> Networking options Only allow certain groups to create sockets チェックを外す
netinstall用のinitrdで起動
2つの方法があります。
- initrd.gzをメモリ上に置いて、カーネルパラメータinitrd= でそのアドレスとサイズを指定する
- initrd.gzをカーネルに組み込んでしまう
今回は1の方法でやりました。(PARTNER-Jetのrdコマンドでファイルをメモリにロード。)
使用したカーネルのブートパラメータは以下の通り。
initrd=0x40800000,0x00800000 \ mem=129M@0x40000000 mem=256M@0x50000000 console=ttyS1,115200n8n
インストール先となるSDカードを挿しておきます。
シリアルコンソールに以下のような表示がでるので、これに沿ってインストールを進めていきます。
進めていくと、Kernel moduleが見つからないという警告がでますが、
Continue the install without loading kernel modules?
これにはYesで続行。
rootのパスワードは空にしておくと、Ubuntuと同様にsudoで使えるようにセットアップしてくれます。
Software RAIDが使えないという警告も続行。
Logical Volume Managerが使えないという警告も続行。
Partition disksでは "Guided - use entire disk" を選択。すると次の画面でどのdiskを使うかと聞かれます。
4GBのサイズのmmcblk0は内蔵のeMMCです。基板の表面にあるSDカードスロットはmmcblk1, 裏面にあるSDIOスロットはmmcblk2です。eMMCの内容はつぶしたくないので、mmcblk1を選択します。
The partition tables of the following devices are changed: x MMC/SD card #2 (mmcblk1) x x x x The following partitions are going to be formatted: x x partition #1 of MMC/SD card #2 (mmcblk1) as ext3 x x partition #5 of MMC/SD card #2 (mmcblk1) as swap x x x x Write the changes to disks?
書き込みの最終確認。デバイスがmmcblk1であることを確認してからYes。
この後はbase system のインストールに進みます。しばらく待ちます。
カーネルのソースが無いと言われますが、カーネルのインストール無しで続行。
Choose software to install: x x x x [ ] Graphical desktop environment x x [ ] Web server x x [ ] Print server a x x [ ] DNS server a x x [ ] File server a x x [ ] Mail server a x x [ ] SQL database a x x [ ] SSH server a x x [ ] Laptop
ここでは、SSH serverにチェックを入れます。(Graphical desktop environment を選択するとSDカードは4GBでは足りないことがわかっています。)
No boot loader installed という警告。起動時に自分で root=/dev/mmcblk1p1 をカーネルブートパラメータに追加しなさいということ。
インストール完了。
カーネルのブートパラメータ
root=/dev/mmcblk1p1 mem=129M@0x40000000 mem=256M@0x50000000 \ console=ttyS1,115200n8n rootwait rw
ブートログ
... [ 1.520000] TCP cubic registered [ 1.520000] NET: Registered protocol family 17 [ 1.530000] Registered led device: led1 [ 1.530000] Registered led device: led2 [ 1.540000] VFP support v0.3: implementor 41 architecture 3 part 30 variant 9 rev 1 [ 1.540000] emxx-rtc 0-0051: setting system clock to 2012-03-13 07:16:40 UTC (1331623000) [ 1.550000] Waiting for root device /dev/mmcblk1p1... [ 1.620000] mmc0: new high speed MMC card at address 0001 [ 1.620000] mmcblk0: mmc0:0001 000000 3.82 GiB [ 1.630000] mmcblk0: p1 p2 p3 [ 1.920000] mmc1: new high speed SD card at address 0002 [ 1.920000] mmcblk1: mmc1:0002 00000 1.86 GiB [ 1.930000] mmcblk1: p1 p2 < p5 > [ 2.000000] EXT3-fs: barriers not enabled [ 2.010000] kjournald starting. Commit interval 5 seconds [ 2.010000] EXT3-fs (mmcblk1p1): using internal journal [ 2.020000] EXT3-fs (mmcblk1p1): mounted filesystem with writeback data mode [ 2.030000] VFS: Mounted root (ext3 filesystem) on device 179:9. [ 2.030000] Freeing init memory: 128K modprobe: FATAL: Could not load /lib/modules/2.6.35.7/modules.dep: No such file or directory INIT: version 2.88 booting Using makefile-style concurrent boot in runlevel S. .udev/ already exists on the static /dev! ... (warning). Starting the hotplug events dispatcher: udevd. Synthesizing the initial hotplug events...done. Waiting for /dev to be fully populated...done. Activating swap...[ 4.350000] Adding 132092k swap on /dev/mmcblk1p5. Priority:-1 extents:1 across:132092k SS done. Checking root file system...fsck from util-linux-ng 2.17.2 /dev/mmcblk1p1: clean, 20165/113792 files, 114556/455168 blocks done. [ 5.300000] EXT3-fs (mmcblk1p1): using internal journal Cleaning up ifupdown.... Setting up networking.... Loading kernel modules...done. Activating lvm and md swap...done. Checking file systems...fsck from util-linux-ng 2.17.2 done. Mounting local filesystems...done. Activating swapfile swap...done. Cleaning up temporary files.... Configuring network interfaces...done. Starting portmap daemon.... Starting NFS common utilities: statd. Cleaning up temporary files.... Setting kernel variables ...done. [ 7.390000] net eth0: SMSC911x/921x identified at 0xe0840000, IRQ: 167 INIT: Entering runlevel: 2 Using makefile-style concurrent boot in runlevel 2. Starting portmap daemon...Already running.. Starting NFS common utilities: statd. Starting enhanced syslogd: rsyslogd. Starting deferred execution scheduler: atd. Starting periodic command scheduler: cron. Starting OpenBSD Secure Shell server: sshd. Starting MTA: exim4. ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken ... failed! Debian GNU/Linux 6.0 debian ttyS1 debian login:
関連するページ
Buildrootで作ったルートファイルシステムをカーネルと別々にロードして動かす(initrd)