HD-LAN V1 2つ目のカーネル


カーネルを作る

先日作った .config で、 kernimg.bin とカーネルモジュールを作った。
[root@SECO linux-2.4.17_mvl21-sandpoint]# make zImage
[root@SECO linux-2.4.17_mvl21-sandpoint]# make modules
適当に作った .config なので、モジュールにしすぎの感あり。
HD-LAN には USB がないのだから、 拡張性(=モジュール)などほとんどなくてもよいのだが、、、

そんなことより、この .config でカーネルが動くのかが先。

ルートファイルシステムの準備

.config で
CONFIG_CMDLINE="root=/dev/hda1"
を指定しているが、/dev/hda1 は /mnt にマウントしていて、 ルートファイルシステムの体をなしていない。

ハックキットが /mnt/HackKit にインストールしてあるので、 /mnt/HackKit 下の各ディレクトリを /mnt にシンボリックリンクする。 これで、まがりなりにルートファイルシステムの体は整った。
(こんなんでいいのか、ちょっと心配)

モジュールのインストール

/lib ができたので、
[root@SECO linux-2.4.17_mvl21-sandpoint]# make modules_install
を実行

フラッシュの書き換え

まずは気休めに /dev/fl1 のバックアップ
[root@SECO /root]# cat /dev/fl1 > fl1.orig
[root@SECO /root]# ls -l fl1.orig
-rw-r--r--    1 root     root     15728640 Aug 14 00:18 fl1.orig
(あちゃー。時計狂ってる)

先頭から 14MB(14680064Bytes)を取り出す。

[root@SECO /root]# head -c 14680064 /dev/fl1 > fl1.14MB
kernimg.bin をくっつけて、/dev/fl1 に書き戻す。
[root@SECO /root]# cat fl1.14MB kernimg.bin > /dev/fl1
めちゃくちゃ長い。 そら 15MB 書いているのだから、 単純に玄箱の4倍の時間がかかるのは仕方ないのだが、、、。
頼むから、この間みたいに瞬断などおこらないでくれ!!

正確には計っていないが、2分ほどで書き終えたようだ。

[root@SECO /root]# cmp fl1.14MB /dev/fl1
cmp: ファイルfl1.14MBの末尾

リブート

覚悟を決めて、リブート。まずは標準カーネルから。
******* Product Information *******
----------------------------------
Product Name: HD-LAN
          VER: 1.23
         Date: 2004/5/10 11:24:1
----------------------------------
Firmware check:done.

>>root=/dev/hda1
Now Loading...done.
Now Booting
Memory BAT mapping: BAT2=64Mb, BAT3=0Mb, residual: 0Mb
HWTYPE:None PLD Model
Linux version 2.4.17_mvl21-sandpoint (root@toda_dev.melcoinc.co.jp) (gcc version 2.95.3 20010315 (release/MontaVista)) #857 
2004年 5月 10日 月曜日 11:22:13 JST
MELCO Network Attached Storage Series
2002 MELCO INC.
	:

無事起動。

続いて、2つ目のカーネル。

>>root=/dev/hda1
に続いて "2" を入力する。

******* Product Information *******
----------------------------------
Product Name: HD-LAN
          VER: 1.23
         Date: 2004/5/10 11:24:1
----------------------------------
Firmware check:done.

>>root=/dev/hda12
second kernel

******* Product Information *******
----------------------------------
Product Name: HD-LAN(san)
          VER: 1.24
         Date: 2004/8/13 13:37:35
----------------------------------
Firmware check:Warning:invalid data size
done.

>>root=/dev/hda1
Now Loading...done.
Now Booting
Memory BAT mapping: BAT2=64Mb, BAT3=0Mb, residual: 0Mb
HWTYPE:None PLD Model
Linux version 2.4.17_mvl21-sandpoint (root@SECO) (gcc version 2.95.3 20010315 (release/franzo/20010312)) #1 2004年 8月 13日 
金曜日 13:15:05 JST
MELCO Network Attached Storage Series
2002 MELCO INC.
On node 0 totalpages: 16384
zone(0): 16384 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: root=/dev/hda1
OpenPIC Version 1.2 (1 CPUs and 139 IRQ sources) at 80040000
decrementer frequency = 98.304000 MHz 
rtc sec count 1093106864
Calibrating delay loop... 130.66 BogoMIPS
Memory: 62672k available (1076k kernel code, 492k data, 204k init, 0k highmem)
Dentry-cache hash table entries: 8192 (order: 4, 65536 bytes)
Inode-cache hash table entries: 4096 (order: 3, 32768 bytes)
Mount-cache hash table entries: 1024 (order: 1, 8192 bytes)
Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
POSIX conformance testing by UNIFIX
PCI: Probing PCI hardware
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Starting kswapd
Disabling the Out Of Memory Killer
Journalled Block Device driver loaded
pty: 256 Unix98 ptys configured
MELCO INC. RTC driver ver 1.00
Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled
ttyS00 at 0x80004600 (irq = 138) is a 16550A
ttyS01 at 0x80004500 (irq = 137) is a 16550A
block: 128 slots per queue, batch=32
RAMDISK driver initialized: 16 RAM disks of 10000K size 1024 blocksize
Uniform Multi-Platform E-IDE driver Revision: 6.31
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
CMD680: IDE controller on PCI bus 00 dev 60
CMD680: chipset revision 2
CMD680: 100% native mode on irq 17
    ide0: BM-DMA at 0xbffed0-0xbffed7, BIOS settings: hda:pio, hdb:pio
    ide1: BM-DMA at 0xbffed8-0xbffedf, BIOS settings: hdc:pio, hdd:pio
hda: WDC WD1200AB-00CBA1, ATA DISK drive
ide0 at 0xbffef8-0xbffeff,0xbffef6 on irq 17
hda: 234441648 sectors (120034 MB) w/2048KiB Cache, CHS=232581/16/63, UDMA(100)
Partition check:
 hda: hda1 hda2
FLASHDISK:Initialized [TOSHIBA VT641FT] 
Linux Tulip driver version 0.9.15-pre9 (Nov 6, 2001)
tulip0:  MII transceiver #1 config 3100 status 7849 advertising 05e1.
eth0: ADMtek Comet rev 17 at 0xbfff00, 00:07:40:60:54:22, IRQ 16.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 4096 bind 4096)
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
kjournald starting.  Commit interval 5 seconds
EXT3-fs: mounted filesystem with ordered data mode.
VFS: Mounted root (ext3 filesystem) readonly.
Freeing unused kernel memory: 204k init
modprobe: modprobe: Can't locate module char-major-4
INIT: version 2.78 booting
			Welcome to Vine Linux
		Press 'I' to enter interactive startup.
Mounting proc filesystem:  [  OK  ]
Configuring kernel parameters:  [  OK  ]
hwclock: ioctl() to /dev/rtc to turn on update interrupts failed unexpectedly, errno=515: Unknown error 515.
Setting clock  (localtime): Sun Aug 22 01:47:48 JST 2004 [  OK  ]
Activating swap partitions:  [  OK  ]
Setting hostname hackkit:  [  OK  ]
Checking root filesystem
/dev/hda1: clean, 38122/14630912 files, 2750112/29239662 blocks
[/sbin/fsck.ext3 (1) -- /] fsck.ext3 -a /dev/hda1 
[  OK  ]
Remounting root filesystem in read-write mode:  [  OK  ]
Finding module dependencies:  [  OK  ]
Checking filesystems
Checking all file systems.
[  OK  ]
Mounting local filesystems:  [  OK  ]
Enabling local filesystem quotas:  [  OK  ]
Enabling swap space:  [  OK  ]
INIT: Entering runlevel: 3
Entering non-interactive startup
Setting network parameters:  [  OK  ]
Bringing up loopback interface:  [  OK  ]
Bringing up interface eth0:  [  OK  ]
Starting system logger: [  OK  ]
Starting kernel logger: [  OK  ]
Initializing random number generator:  [  OK  ]
Mounting other filesystems:  [  OK  ]
Starting INET services: [  OK  ]
Starting keytable:  [  OK  ]
Starting crond: [  OK  ]
Starting SMB services: [  OK  ]
Starting NMB services: [  OK  ]
Starting atd: [  OK  ]


Vine Linux 2.6 (La Fleur de Bouard)
Kernel 2.4.17_mvl21-sandpoint on a ppc

hackkit login: 
すげっ。
ハックの記録 → HD-LAN V1 カーネル入れ換え後の環境整備

Copyright (C) 2004 Yasunari Yamashita. All Rights Reserved.
yasunari @ yamasita.jp 山下康成@京都府向日市