20070609_b653b090901d2e9f354f69e8db3dc004
手元のFirebox 2500 にLinux を導入する。

こちらには、256MB のコンパクトフラッシュにLinux を導入する。
CF を採用した理由は、HDD は可動部品が存在するので故障の心配があったため。

まず、Firebox 2500 のハードウェア詳解。

マザーボード上のコンデンサは殆どが、高品質で有名なSANYO OS-CON 。
パーツの品質は、そのままシステム安定性に影響する。

今回の構成は以下の通り。

CPU AMD K6-III 500MHz/FSB100MHz
MEM PC-133 CL2 256MB 144pin
CF San Disk Ultra II 256MB
LAN Macronix 98715 *3

非常に堅い構成。

次に、考えられるLinux の導入方法は以下の通り。

  1. PC 用のLinux distribution を適当に導入して設定
  2. ユーザーランドを自分で作る(オリジナルLinux)
  3. フラッシュメモリ向けに作られたLinux を使う
以前にFirebox X2500 用にCF にインストールしたCentOS が残っていた。
20070609_0582cc51ed3f34b2ef30aa866fb8475f
Firebox X2500 時代のCF カード

環境の作り込みはWindows 上のQEMU で行った。
しかし、2GB CF を装着した実機では、
grub GEOM errorEmbedded BIOS Debugger Invalid Opcode Trapなど、
ハードウェア、BIOS に起因すると思われるエラーメッセージを吐き起動しない。
そもそも普通のPC と異なり、BIOS などは公開すらされていないので解決は困難そうだ。

この調子では動かすのに時間がかかりそうだったので、
手元にあった256MB CF にフラッシュメモリ向けのCFLinux を導入する。

CFLinux はramfs で動くLinux で、基本的にread-only で動作する。
変更はsavedata コマンドでファイルシステムにcommit する。
一応、コンパイル済みのソフトウェアパッケージも存在する。

/etc/inittab にシリアルコンソールの設定を入れる

s0:2345:respawn:/sbin/mgetty ttyS0

名前解決のため、resolv.conf を書く

nameserver 192.168.1.1

ホスト名、daemon 起動のため、rc.conf を書く。
終わったら、savedata。

あと、grub もシリアルコンソールに出力したかったので、
QEMU+KNOPPIX でCF をマウントし、
/boot/grub/menu.lst を書き換えた。

以下、dmesg

Linux version 2.4.32 (root@alpha) (gcc version 3.3.5 (Debian 1:3.3.5-13)) #1 Fri May 26 16:20:18 CEST 2006
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009f800 (usable)
 BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 0000000010000000 (usable)
 BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
0MB HIGHMEM available.
256MB LOWMEM available.
On node 0 totalpages: 65536
zone(0): 4096 pages.
zone(1): 61440 pages.
zone(2): 0 pages.
DMI not present.
Kernel command line: root=/dev/hda5 console=ttyS0,9600n8r
No local APIC present or hardware disabled
Initializing CPU#0
Detected 475.386 MHz processor.
Console: colour VGA+ 80x25
Calibrating delay loop... 946.99 BogoMIPS
Memory: 256384k/262144k available (1233k kernel code, 5372k reserved, 295k data, 80k init, 0k highmem)
Dentry cache hash table entries: 32768 (order: 6, 262144 bytes)
Inode cache hash table entries: 16384 (order: 5, 131072 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 16384 (order: 4, 65536 bytes)
Page-cache hash table entries: 65536 (order: 6, 262144 bytes)
Enabling new style K6 write allocation for 256 Mb
CPU: L1 I Cache: 32K (32 bytes/line), D cache 32K (32 bytes/line)
CPU: L2 Cache: 256K (32 bytes/line)
CPU:     After generic, caps: 008021bf c08029bf 00000000 00000002
CPU:             Common caps: 008021bf c08029bf 00000000 00000002
CPU: AMD-K6(tm)-III Processor stepping 00
Checking 'hlt' instruction... OK.
Checking for popad bug... OK.
POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.10 entry at 0xe68e8, last bus=1
PCI: Using configuration type 1
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
pty: 2048 Unix98 ptys configured
keyboard: Timeout - AT keyboard not present?(ed)
keyboard: Timeout - AT keyboard not present?(f4)
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Real Time Clock Driver v1.10f
mixcomwd: No card detected, or port not available.
Software Watchdog Timer: 0.05, timer margin: 60 sec
COMX: driver version 0.85 (C) 1995-1999 ITConsult-Pro Co. 
Linuxのブートプロセスをみる (UNIXMAGAZINE COLLECTION)Linuxのブートプロセスをみる
白崎 博生

アスキー 2004-04-16
売り上げランキング : 156084
おすすめ平均

Amazonで詳しく見る
by G-Tools