contents
  1. まだ書いている途中なので、内容が突然変わることがありえます
  2. SL-C700でNetBSD zaurusを動かす前提条件
  3. SL-C700用1GB SDを作成
    1. MacOSでのイメージ作成
  4. メンテナンスカーネルでSL-C700を立ち上げる
  5. NetBSD zaurusを起動
    1. boot用カーネルモジュールの読込
      1. NetBSD kernelの起動方法について
    2. zbootを利用した起動
    3. /proc/zbootへのkernelコピーでの起動
      1. 起動用パラメータの入力
  6. NetBSD zaurusの利用
    1. キーボード配列
    2. ログイン
    3. tpctlで画面キャリブレーション
    4. Xの起動
  7. 参考にしたページ

SL-C700でNetBSD/zaurus

まだ書いている途中なので、内容が突然変わることがありえます

OSC2012 Oitaに向けて、NetBSD/zaurusのサポートがNetBSD本家に入りました。

ここでは、NetBSD/zaurusをSL-C700で動かす手順について簡単にまとめます。

SL-C700でNetBSD zaurusを動かす前提条件

SL-C700でNetBSDを動かすための前提条件は、以下の通りです。

  • SDを使う場合は1GBでないとダメ
    • CFの場合はこの限りではない(はず?)
  • メンテナンスカーネルでの起動が必須

前者に関しては、SL-C700などのザウルスシリーズでの、2GB以上のSD/SDHCのサポートが十分でないためです。 独自にSDHCドライバを提供している以下のサイトがありますが、メンテナンスカーネルでは利用できません(よね?)。

後者は、SL-C700のメモリが少ないことが原因です。

SL-C700用1GB SDを作成

今回は、netbsd-zaurus-20120210-1GB-SD.img.gzを利用しました。

このイメージを、UNIXではdd、WindowsではRawrite32を使って、SDに書き込みます。

MacOSでのイメージ作成

今回は、MacOSを利用して、イメージを書き込みました。

基本的に、ddを使った方法ですが、SDがMacOSが認識できるフォーマットだとマウントされてしまっているので、これをアンマウントする必要があります。

以下の様に、diskutilを使って書き込むディスクを確認します。 この例では、disk1が書き込み対象です。

mutoubushinokonpyuta-4% diskutil list
/dev/disk0
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *1.0 TB     disk0
   1:                        EFI                         209.7 MB   disk0s1
   2:                  Apple_HFS Macintosh HD            999.3 GB   disk0s2
   3:                 Apple_Boot Recovery HD             650.0 MB   disk0s3
/dev/disk1
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *990.9 MB   disk1
   1:                 DOS_FAT_16 NO NAME                 33.6 MB    disk1s1
   2:                     NetBSD                         892.3 MB   disk1s2
   3:                 Linux_Swap                         64.0 MB    disk1s3
/dev/disk2
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                        *2.0 TB     disk2
   1:                        EFI                         209.7 MB   disk2s1
   2:                  Apple_HFS IO-Disk                 2.0 TB     disk2s2
/dev/disk4
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     Apple_partition_scheme                        *33.7 MB    disk4
   1:        Apple_partition_map                         32.3 KB    disk4s1
   2:                  Apple_HFS Dropbox Installer       33.7 MB    disk4s2

この状態では、DOS_FAT_16を"NO NAME"という名前でマウントしているため、以下の様にddすると怒られます。

mutoubushinokonpyuta-4% zcat ~/Downloads/netbsd-zaurus-20120210-1GB-SD.img.gz|sudo dd of=/dev/disk1 bs=64k
dd: /dev/disk1: Resource busy

そこで、以下の様にディスクをアンマウントします。

mutoubushinokonpyuta-4% sudo diskutil umountDisk disk1 
Unmount of all volumes on disk1 was successful

これで、書き込みが成功するようになります。

mutoubushinokonpyuta-4% zcat ~/Downloads/netbsd-zaurus-20120210-1GB-SD.img.gz|sudo dd of=/dev/disk1 bs=64k
14144+0 records in
14144+0 records out
926941184 bytes transferred in 393.544240 secs (2355367 bytes/sec)

メンテナンスカーネルでSL-C700を立ち上げる

キーボードの[B]と[D]を押しながら、電池ぶたロックをロック、解除、ロックと動かします。 この状態で電源を入れると、メンテナンスカーネルでSL-C700が起動します。

NetBSD zaurusを起動

以下では、1GB SDからNetBSD zaurusを起動する例を説明します。

boot用カーネルモジュールの読込

メンテナンスカーネルから、以下の手順でboot用モジュールをロードします。

 # cd /mnt/card
 # insmod -f zbsdmod.o
  (snip)

NetBSD kernelの起動方法について

NetBSDの起動方法には、以下の2つの方法があります。

  • zbootを利用した起動
  • /proc/zbootへのkernelコピーでの起動

前者は、bootオプションを渡せるため、より自由な起動方法と言えます。

zbootを利用した起動

zbootでの起動は、以下のとおりになります。

  1. zbootをコマンドラインから起動する
  2. スペースなどを入力し、ブートを止める (止めないとnetbsdカーネルをブートしようとしてしまいます)
  3. boot netbsd.c700と入力
    • ここでは、kernelブート時に指定できるフラグ(シングルユーザモードの-s)などの指定も可能です。
 # ./zboot

>> NetBSD/zaurus Boot, Revision 1.2 (Fri Feb 10 21:17:07 JST 2012)

disks: mmcd0* path*
Press rerutn to boot now, any other key for boot menu
booting mmcd0a:netbsd - starting in 0
type "?" or "help" for help.
> boot netbsd.c700
booting mmcd0a:netbsd.c700
  (snip)

/proc/zbootへのkernelコピーでの起動

 # cp netbsd.c700 /proc/zboot
  (snip)

起動用パラメータの入力

起動中に、以下の様に聞かれるので、適切に答えます。 今回は、以下の通り答えました。

  • root device
    • SDなのでld0
    • CFだとwd0を入力する
  • dump device
    • デフォルトのままエンター (ld0bが使われる)
  • file system
    • デフォルトのままエンター (genericが使われる)
  • init path
    • デフォルトのままエンター (/sbin/initが使われる)
  (snip)
boot device: <unknown>
root device: ld0
dump device (default ld0b):
file system (default generic):
init path (default /sbin/init):
  (snip)

これで、NetBSD/zaurusが立ち上がります。

NetBSD zaurusの利用

キーボード配列

作成中

入力されるキーザウルスキーボード刻印備考
Escape Cancel
Control半/全
{ Fn+U (「)
} Fn+I (」)

ログイン

初期状態では、rootにパスワードはついていませんので、初回ログイン時にパスワードを付けておきましょう。

tpctlで画面キャリブレーション

はじめてXを利用する前に、tpctlを利用してタッチパネルのキャリブレーションを行う必要があります。

 # tpctl -u

この補正結果は、/etc/tpctl.dat に保存されます。

再起動時にもこの補正データを有効にしたい場合は、/etc/rc.confに以下の設定を追加しておきます。

  • /etc/rc.conf
tpctl=YES

Xの起動

以下のように、Xを起動します。

 # startx

参考にしたページ

詳細(or 過程)は、以下のページが詳しい。

実際の1GBイメージは、ここ。

カーネルに関するパッチはここ。

アナウンスはこれ。

設定は、以下のページが参考になります。

Last modified: 2012-07-27
Post-it: New Post-it (help)

Text color: [_][_][_][_]

Background: [_][_][_][_][_][_]

Draw Line:

x: y: