Sheeva Plug への Debian Squeeze のインストールに関するページです。

母艦での作業

rootfs のイメージファイルを作成する作業を母艦上で行う。今回は、VirtualBox 上の Debian Squeeze amd64 を母艦とした。具体的な作業内容は、Installing Debian on the Marvell SheevaPlug and OpenRDmephisto.tres - NANDのsqueeze化 にほぼ準拠している。

debootstrap によるルートファイルシステムの構築

母艦に以下のパッケージをインストールする。

  • debootstrap
  • qemu-user-static
  • binfmt-support
    # apt-get install debootstrap qemu-user-static binfmt-support

作業用ディレクトリを作成し、debootstrap を実行する。

root@sqeeze-vm:/somewhere# mkdir workdir
root@sqeeze-vm:/somewhere# cd workdir
root@sqeeze-vm:/somewhere/workdir# mkdir rootfs
root@sqeeze-vm:/somewhere/workdir# debootstrap --verbose --foreign --arch=armel --variant=minbase --include=module-init-tools,udev,aptitude,ifupdown,iproute,pump,nano,vim-tiny,\
  wget,netbase,locales,openssh-server,openssh-client,bzip2,unzip,ntpdate,uboot-mkimage,devio,mtd-utils,isc-dhcp-client\
  squeeze rootfs http://ftp.jp.debian.org/debian
I: Retrieving Release
I: Retrieving Packages
I: Validating Packages
I: Resolving dependencies of required packages...
I: Resolving dependencies of base packages...
I: Found additional required dependencies: insserv libbz2-1.0 libdb4.8 
I: Found additional base dependencies: adduser debian-archive-keyring gnupg gpgv
 isc-dhcp-common libboost-iostreams1.42.0 libbsd0 libcap2 libcwidget3 libedit2
 libept1 libgssapi-krb5-2 libk5crypto3 libkeyutils1 libkrb5-3 libkrb5support0
 liblzo2-2 libncursesw5 libpopt0 libreadline6 libsigc++-2.0-0c2a libsqlite3-0
 libssl0.9.8 libudev0 libusb-0.1-4 libwrap0 libxapian22 net-tools openssh-blacklist
 procps readline-common vim-common 
I: Checking component main on http://ftp.jp.debian.org/debian...
I: Retrieving libacl1
I: Validating libacl1
途中略
I: Extracting xz-utils...
I: Extracting zlib1g...

この段階ではターゲット用のパッケージが展開されただけなので、qemu-user-static を利用して debootstrap のセカンドステージを実行する。

root@sqeeze-vm:/somewhere/workdir# cp /usr/bin/qemu-arm-static rootfs/usr/bin/
root@sqeeze-vm:/somewhere/workdir# chroot rootfs
I have no name!@sqeeze-vm:/# ./debootstrap/debootstrap --second-stage
I: Installing core packages...
I: Unpacking required packages...
I: Unpacking libacl1...
途中略
I: Configuring libept1...
I: Configuring aptitude...
I: Base system installed successfully.

I have no name!@sqeeze-vm:/# apt-get clean
I have no name!@sqeeze-vm:/# export LANG=C; dpkg-reconfigure tzdata

Configuring tzdata
------------------

Please select the geographic area in which you live. Subsequent configuration 
questions will narrow this down by presenting a list of cities, representing the
time zones in which they are located.

  1. Africa      4. Australia  7. Atlantic  10. Pacific  13. Etc
  2. America     5. Arctic     8. Europe    11. SystemV
  3. Antarctica  6. Asia       9. Indian    12. US

Geographic area: 6

Please select the city or region corresponding to your time zone.

  1. Aden         22. Dushanbe      43. Macau         64. Samarkand
  2. Almaty       23. Gaza          44. Magadan       65. Seoul
  3. Amman        24. Harbin        45. Makassar      66. Shanghai
  4. Anadyr       25. Ho_Chi_Minh   46. Manila        67. Singapore
  5. Aqtau        26. Hong_Kong     47. Muscat        68. Taipei
  6. Aqtobe       27. Hovd          48. Nicosia       69. Tashkent
  7. Ashgabat     28. Irkutsk       49. Novokuznetsk  70. Tbilisi
  8. Baghdad      29. Istanbul      50. Novosibirsk   71. Tehran
  9. Bahrain      30. Jakarta       51. Omsk          72. Tel_Aviv
  10. Baku        31. Jayapura      52. Oral          73. Thimphu
  11. Bangkok     32. Jerusalem     53. Phnom_Penh    74. Tokyo
  12. Beirut      33. Kabul         54. Pontianak     75. Ujung_Pandang
  13. Bishkek     34. Kamchatka     55. Pyongyang     76. Ulaanbaatar
  14. Brunei      35. Karachi       56. Qatar         77. Urumqi
  15. Choibalsan  36. Kashgar       57. Qyzylorda     78. Vientiane
  16. Chongqing   37. Kathmandu     58. Rangoon       79. Vladivostok
  17. Colombo     38. Kolkata       59. Riyadh        80. Yakutsk
  18. Damascus    39. Krasnoyarsk   60. Riyadh87      81. Yekaterinburg
[More] 

  19. Dhaka       40. Kuala_Lumpur  61. Riyadh88      82. Yerevan
  20. Dili        41. Kuching       62. Riyadh89
  21. Dubai       42. Kuwait        63. Sakhalin

Time zone: 74

Current default time zone: 'Asia/Tokyo'
Local time is now:      Sat Sep 25 16:21:57 JST 2010.
Universal Time is now:  Sat Sep 25 07:21:57 UTC 2010.

I have no name!@sqeeze-vm:/# passwd
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully
I have no name!@sqeeze-vm:/# exit
exit
root@sqeeze-vm:/somewhere/workdir# rm rootfs/usr/bin/qemu-arm-static 

最後に不要なファイルを削除し、いくつかの設定ファイルを作成する。

root@sqeeze-vm:/somewhere/workdir# find rootfs/var/lib/apt/lists -type f -delete
root@sqeeze-vm:/somewhere/workdir# rm -r rootfs/dev/.udev
root@sqeeze-vm:/somewhere/workdir# : > rootfs/etc/hostname
root@sqeeze-vm:/somewhere/workdir# : > rootfs/etc/resolv.conf
root@sqeeze-vm:/somewhere/workdir# ln -s /dev/null rootfs/etc/blkid.tab
root@sqeeze-vm:/somewhere/workdir# ln -s /proc/mounts rootfs/etc/mtab
root@sqeeze-vm:/somewhere/workdir# : > rootfs/etc/udev/rules.d/70-persistent-net.rules
root@sqeeze-vm:/somewhere/workdir# echo 'APT { Install-Recommends "false"; };' > rootfs/etc/apt/apt.conf.d/no-recommends
root@sqeeze-vm:/somewhere/workdir# sed -i -e '/^RAM\(RUN\|LOCK\)=/ s/^\(.*\)=.*$/\1=yes/' rootfs/etc/default/rcS
root@sqeeze-vm:/somewhere/workdir# echo CONCURRENCY=shell >> rootfs/etc/default/rcS
root@sqeeze-vm:/somewhere/workdir# cat <<EOF > rootfs/etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).

# The loopback network interface
auto lo
iface lo inet loopback

# The primary network interface
allow-hotplug eth0
iface eth0 inet dhcp
EOF


root@sqeeze-vm:/somewhere/workdir# cat <<EOF > rootfs/etc/apt/sources.list
deb http://ftp.jp.debian.org/debian/ squeeze main contrib non-free
#deb-src http://ftp.jp.debian.org/debian/ squeeze main contrib non-free

deb http://security.debian.org/ squeeze/updates main contrib non-free
#deb-src http://security.debian.org/ squeeze/updates main contrib non-free

#deb http://volatile.debian.org/debian-volatile squeeze/volatile main
EOF

/etc/fstab はインストール先の媒体により、適宜変更する。

  • NAND flash の場合
    root@sqeeze-vm:/somewhere/workdir# cat <<EOF > rootfs/etc/fstab
    # /etc/fstab: static file system information.
    #
    # <file system> <mount point>   <type>  <options>                     <d><p>
    /dev/root	/		ubifs	defaults,noatime,rw		0  0
    tmpfs		/var/run	tmpfs	size=1M,rw,nosuid,mode=0755	0  0
    tmpfs		/var/lock	tmpfs	size=1M,rw,noexec,nosuid,nodev,mode=1777 0  0
    tmpfs		/tmp		tmpfs	defaults,nosuid,nodev		0  0
    EOF
  • SDカード(partition 1: /boot(ext2), partition 2: swap, partition 3: /(ext3))の場合
    root@sqeeze-vm:/somewhere/workdir# cat <<EOF > rootfs/etc/fstab
    # /etc/fstab: static file system information.
    #
    # <file system> <mount point>   <type>  <options>               <dump>  <pass>
    proc            /proc           proc    defaults                0       0
    /dev/mmcblk0p1  /boot           ext2    defaults                0       0
    /dev/mmcblk0p3  /               ext2    errors=remount-ro       0       0
    /dev/mmcblk0p2  swap            swap    defaults                0       0
    EOF

シリアルコンソールが使えるように /etc/inittab を書き換える

# Example how to put a getty on a serial line (for a terminal)
#
T0:23:respawn:/sbin/getty -L ttyS0 115200 vt102
#T1:23:respawn:/sbin/getty -L ttyS1 9600 vt100

最後に、出来上がったルートファイルシステムを tar で固める。

root@sqeeze-vm:/somewhere/workdir# cd rootfs
root@sqeeze-vm:/somewhere/workdir/rootfs# tar czvf ../squeeze-rootfs.tar.gz *

ルートファイルシステムの tar ball

root のパスワードは SheevaPlug の 初期パスワードと同じ。

参考


トップ   差分 バックアップ リロード   一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2013-08-29 (木) 06:33:40 (1608d)