初版: 2005-01-20
最終更新日:
2006-01-04
とりあえずブートするだけなら、
というわけで実際に試してみると…
# /sbin/lsmod Module Size Used by pxa_bi 21328 0 (unused) net_fd 25024 0 (unused) usbdcore 34544 0 [pxa_bi net_fd] usbdmonitor 5248 0 sharp_mmcsd_m 25936 2 # /sbin/insmod -f zbsdmod.o Warning: kernel-module version mismatch zbsdmod.o was compiled for kernel version 2.4.20 while this kernel is version 2.4.18-rmk7-pxa3-embedix # /sbin/lsmod Module Size Used by zbsdmod 8391760 0 (unused) pxa_bi 21328 0 (unused) net_fd 25024 0 (unused) usbdcore 34544 0 [pxa_bi net_fd] usbdmonitor 5248 0 sharp_mmcsd_m 25936 2 # cp bsd.rd /proc/zboot cp: unable to open `/proc/zboot': No such file or directoryお〜、動かね〜。
なお、上のログはC760での例です。 C3000だと、insmodでwarningは出ません。 C3000でも同様に/proc/zbootを開けないというエラーになります。
どうも、zbsdmod.oをinsmodした段階で、 /proc/zbootというノードができ、 そのノードにカーネルイメージをコピーしてやれば、 めでたくブートする…という予感なのですが、 /proc/zbootが作られないようです。 なんか間違ってるのか、足りない手順があるのかもしれません。
ということでやってみると、(以下の例はC760の場合)
# ./zboot probing: ux0 >> OpenBSD/zaurus BOOT 2.06 open(/dev/hda4:/etc/boot.conf): Unknown error: code -1 boot> booting /dev/hda4:/bsd: open /dev/hda4:/bsd: Unknown error: code -1 failed(-1). will try /obsdとなります。FFSパーティションを作ってないので、 ブートしませんでした。
zbootコマンドは、FFSパーティション(BSDのファイルシステム)から カーネルを探してロードするようです。 BSDの動いていないザウルスでFFSパーティションを作ることは 不可能ですから(いや、やってやれないことはないけど、 簡単にはできないってことで)、さてどうしましょうか。
zbootコマンドは「boot>」プロンプトで 「set device /dev/hdc1」とかやると、 カーネルイメージを探す場所を指定することができます。 そこで、別のBSDマシンでフラッシュメモリカードに FFSパーティションを作って、そこにbsd.rdを入れ、 そこからブートしたらよいのでは…と。
ってことで、FreeBSDマシンにカードをつないで、 fdisk & disklabel & newfs して、 ファイルをコピーしてみました。 そのカードをC3000につないでみます。 カードは/dev/hdcで、FFSパーティションは/dev/hdc1です。 この状態で動かしてみると…
まずはlsmodで確認 # lsmod Module Size Used by pxa_bi 24912 0 (unused) storage_fd 100336 0 (unused) usbdcore 35504 0 [pxa_bi storage_fd] zbsdmod 8391760 0 (unused) usbdmonitor 5488 0 usb-monitor 6496 0 sharp_mmcsd_m 41008 1 次にzbootを動かす # cd openbsd # ls bsd.rd makedevice zboot zbsdmod.o # ./zboot probing: ux0 >> OpenBSD/zaurus BOOT 2.06 open(/dev/hda4:/etc/boot.conf): Invalid argument boot> booting /dev/hda4:/bsd: open /dev/hda4:/bsd: Invalid argument failed(22). will try /obsd カーネルを探すデバイスをFFSパーティションに boot> set device /dev/hdc1 ファイルを表示してみる boot> ls drwxr-xr-x 0,0 512 . drwxr-xr-x 0,0 512 .. -rw-r--r-- 0,0 22354 INSTALL.linux -rw-r--r-- 0,0 5039 zbsdmod.c -rw-r--r-- 0,0 4716 zbsdmod-1.3.c -rw-r--r-- 0,0 45179 zboot -rw-r--r-- 0,0 3971 compat_linux.h -rw-r--r-- 0,0 4132865 bsd.rd -rw-r--r-- 0,0 561 MD5 -rw-r--r-- 0,0 121054 INSTALL.zaurus -rw-r--r-- 0,0 3720 zbsdmod.o カーネルファイルに「bsd.rd」を指定 boot> set image bsd.rd boot> boot booting /dev/hdc1:bsd.rd: /proc/zboot: can't open (errno 2) failed(2). will try /bsd.oldというわけで、どうも/proc/zbootがないのが問題のようです。
なんか「mknodせんでええように、デバイスノードを /dev/zbootから/proc/zbootに変更した」 とか、 旧いバージョンのローダの使い方には 「cp bsd.rd /dev/zboot」 という記述があります。 また、現行バージョンのソースにもデバイスファイルに関するコードが 混じっています。 そこで、
mknod /dev/zboot c 99 0 cp bsd.rd /dev/zbootとしてみると。
…ハングしました(苦笑)。
OpenBSDに限りませんが、 インストールの段階で使えるのはシリアルコンソールだけだったりする UN*X系OSもありますから (インストール後もシリアルコンソールだけのもありますね)、 ひょっとしたら、I/Oポートにコンソールつないでたら、 ブートしてるのがわかったかも。 …という淡い期待もあったりします。
とはいえ、それ以外にも疑問点はいくつかあります。 INSTALL.zaurusに出ている情報が少ないのが残念ですね。
バックアップしてなかったよー。 って、「ターミナル」インストールして、 zbsdmod.oその他をコピーしただけやから、 別に初期化してもかめへんわ〜、ちうか(笑)。
ザウルスを「OpenBSDにチャレンジ」以外に使っている人は 作業前にバックアップをとりましょう。
よい子は真似しちゃだめ(笑)。
次のスナップショットなり、ドキュメントが出るのを待つか。
…うっ、ということは、単にわたしがしょーもないミスしてたか、
ファイルが壊れていたってことですね(汗)。
ハズカシ〜。
←というわけでもないか(笑)。
以下の
スナップショットやし
をご参照ください
…動きました。
wdc0 at pcmcia1 function 0 "HITACHI, microdrive" port 0x0/16が出た時点で止まった…
画面が真っ白になるときもあるな。 画面が切り替わらずにそのままハングのときもあるし。
あと一歩というところ
rootdev=0x1200 rrootdev=0x1200 rawdev=0x1202で止まって、
(I)nstall, (U)pgrade or (S)hell?まで行かないこともあるな〜。
ファイルサイズ | タイムスタンプ | MD5チェックサム | ブート |
4132961 | Jan 15 05:23 | 0edc400d61a813ee00f00dfe0524c326 | △ |
4132865 | Jan 17 00:35 | c2181fd7b74764c6b7f66d5fba4d0516 | × |
4132917 | Jan 20 05:56 | 715078aef488ed1b6e34cc6039b47224 | △ |
それより数日おきにミラーをチェックして、 動いた版と動かなかった版をリストアップしていったほうが いいのかな。
そこそこ安定してブートするカーネルが手に入ったら、 インストールしてみましょうかねぇ。
zbsdmod.o/ 日付: Jan 25 06:23/ サイズ: 3,952バイト/ MD5: 5c430894fddd77d6650a4d2895d8f1c7
パーティションを切ってから「完全消去(フォーマット)」を 実行しましたが、パーティション情報までは初期化されないようです。 ちなみに
Disk /dev/hda: 16 heads, 63 sectors, 7936 cylinders Units = cylinders of 1008 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 1 204 102784+ 83 Linux /dev/hda2 205 1020 411264 83 Linux /dev/hda3 1021 4000 1501920 c Win95 FAT32 (LBA) /dev/hda4 4001 7936 1983744 a6 OpenBSDこんな感じにしておきました。
…続く(笑)。
ftp://ftp.jp.openbsd.org/pub/OpenBSD/snapshots/zaurus/ のファイルも タイムスタンプが26日、29日になってました。
カーネルも新しくなっていますし、 安定度が向上したような気がします。 以前同様にCF-10TのMACアドレスがちとヘンですが (「00:90:cc:19:8e:89」なのに「00:ff:90:ff:cc:ff」になる)。 それでもftpその他の操作ができますし、 プライベートネットワークでしか使わないからまぁいいや。
dmesg (dmesg(8)によるシステムメッセージ) は、以前より情報が増えているようです。
ファイル名 | ファイルサイズ | タイムスタンプ | MD5チェックサム |
bsd | 2735322 | Jan 26 21:28 | f627e9ea32727f0f0709b70b142b6d42 |
bsd.rd | 4138724 | Jan 26 21:28 | 5d85502775e9347f95867f419ba6c00e |
zbsdmod.o | 4288 | Jan 26 21:29 | ab4b3f97e3b90d613056ac756c22709b |
zaurus# df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/wd0a 1868734 353586 1421712 20% /これぐらいディスク使ってます。 ちなみにディスクラベルは
# size offset fstype [fsize bsize cpg] a: 3800000 4032000 4.2BSD 2048 16384 1364 # Cyl 29647*- 57588* b: 167488 7832000 swap # Cyl 57588*- 58819*こんなかんじ。
インストールするときに、パーティションタイプ(fstype)を 「4.2BSD」にするのを忘れてて、newfsできなくてしばらく悩みました。
今のところ、OpenBSDをブートするときは、Linux側から
# cp bsd /proc/zbootとしています。
インストール手順などはそのうち掲載します。
しかし、これでは芸がないので、 なんとかscript(1)コマンドで取ったようなログを残せないかと 試行錯誤しました。
まず、OpenBSD/zaurusでstatic linkなscriptコマンドを 作って(コンパイルして)みました。 これをインストール直前に走らせれば簡単にログを残せると 思いましたが、openptyに失敗してうまくいきません。
次にtee(1)コマンドを同じくstatic linkで作って、 「sh -i 2>& | tee log」としてみると、 それなりにログを取ることができました。 ただしこれでも、disklabelはうまくログが取れませんでした。 とはいえ、大部分はテキストファイルとしてログが残りましたので、 そのうち整理することにしましょう。
コマンドをstatic linkでコンパイルするためには、 当然OpenBSD/zaurusが動く環境が必要であり、 そのためには前もってOpenBSD/zaurusをインストールしておきます。 で、その環境で作ったコマンドを使って記録を取るには、 あらためてインストール作業を行います。 …さて、今日は何回インストール作業をやったのか!?(自爆)
Filesystem 1k-blocks Used Available Use% Mounted on rootfs 5120 5120 0 100% / /dev/root 5120 5120 0 100% / /dev/mtdblock3 4096 2508 1588 61% /home /dev/ram1 44 29 15 66% /dev none 1024 44 980 4% /dev/shm /dev/hda1 99521 50360 44022 53% /hdd1 /dev/hda2 398282 12917 364802 3% /hdd2 /dev/hda3 1501696 772544 729152 51% /hdd3
zaurus# fdisk -c 7936 -h 16 -s 63 /dev/rwd0c Disk: /dev/rwd0c geometry: 7936/16/63 [7999488 Sectors] Offset: 0 Signature: 0xAA55 Starting Ending LBA Info: #: id C H S - C H S [ start: size ] ------------------------------------------------------------------------ 0: 83 0 1 1 - 203 15 63 [ 63: 205569 ] Linux files* 1: 83 204 0 1 - 1019 15 63 [ 205632: 822528 ] Linux files* 2: 0C 1020 0 1 - 3999 15 63 [ 1028160: 3003840 ] Win95 FAT32L *3: A6 4000 0 1 - 7935 15 63 [ 4032000: 3967488 ] OpenBSDジオメトリを指定しないでOpenBSD側で書き込むと、 Linux側でfdiskを指定したときに、 LBA情報とC/H/S情報が一致しないというwarningが出ます。 そのときは、OpenBSDでジオメトリを指定した上で書込みをすれば よいみたいです。
そのうち最新のスナップショットをインストールしなおして どれぐらい使えるか確認してみよっと。
「デバイスのサポートは、絶えず向上することである。 (翻訳これ一本で翻訳)」
それはさておき、
実際、デバイスのサポートは日に日によくなっているようです。
前はこんなん↓書いてましたっけ?
(保存しとけばよかったか…)
Most
PCMCIA/CF devices work (such as wireless/ethernet cards),
as well as host USB on the C-3000,
and the keyboard and touchscreen are supported by X11.
もうタッチスクリーン使えるのかな??
ファイル名 | ファイルサイズ | タイムスタンプ | MD5チェックサム |
bsd | 2740995 | Feb 3 05:42 | 6215468e95dfd7f74f547444a1a34889 |
bsd.rd | 4144038 | Feb 3 05:42 | c0600970e43ad6e7d327da29c443dc04 |
dmesg (dmesg(8)によるシステムメッセージ) は、以前より情報が増えているようです。
zssp0 at pxaip0 zts0 at pxaip0 wsmouse0 at zts0 mux 0
おお、カーソル動くやん!!
タッチしたその場所にカーソルが移動するわけではありませんが (相対的に動くというか)、 それなりに動かせますね。
Xのタッチスクリーンまわりが改良されてるんでしょうか?(ちょっと期待)
base37.tgz 41747 Kb Wed Mar 9 22:45:00 2005 bsd 2731 Kb Wed Mar 9 22:45:00 2005 xbase37.tgz 11635 Kb Thu Mar 10 07:31:00 2005
以前は効かなかった電源ボタンが効くようになったり、 タッチスクリーンの動きも改善されててヨイ感じです。 ただ、CF-10TのMACアドレスがおかしいのは前と同じでした。
今回は無線LANを使ってみました。構成は次のとおり。
ちなみに、主なファイルのタイムスタンプとチェックサムは以下のとおり。
この構成で、C3000をふつ〜にLinuxでブートして、 SDカード(/usr/mnt.rom/card/openbsd)に
# insmod -f zbsdmod.o # cp bsd.rd /proc/zbootでインストール用カーネル(bsd.rd)でブートします。
OpenBSDのブート画面は、 以前は縦長表示(ビュースタイル)でしたが、 今回は横長表示(インプットスタイル)になっています。 これでいくぶん、作業がやりやすくなったように思います。 なお、このことは、5月1日付けの http://www.openbsd.org/zaurus.html ($OpenBSD: zaurus.html,v 1.33 2005/05/01 15:51:43 deraadt Exp) にも 「LCD display panel (lcd) (* text mode turned horizontal after 3.7 release) 」 と書かれています。
なお、同ページには
「Audio is mostly working,
and the machine is of course able to suspend
much like a regular laptop. 」
っていう記述も(以前と比較して)追加されていますね。
→ブート画面
…そのあとはほぼいつもと同じ(^^;。
→ネットワーク設定画面
それから、インストール終了時には、
タッチスクリーンのキャリブレーション画面がでるようになってました。
→キャリブレーション画面,
拡大画像
マシン | dhrystones/sec | VAX MIPS |
Celeron 1.1GHzマシン(FreeBSD 4.11R) | 約2.2M | 約1250 |
bochs on 同上 | 約5.7k | 約3.2 |
SL-C3000 (OpenBSD 3.8) | 約450k | 約250 |
bochs on 同上 | 約250 | 約0.14 |
倍速200LX | 約2.1k | 約1.2 |