[HOME]

USL-5Pで遊ぶ

iodata の USL-5P を Linux マシンとして遊ぶ。
USL-5P は基本的には LANDISK から PCI-IDE を取り外して、 CFから起動できるようになって、小さくなったと思えばよい。

シリアルコンソールをつける

バッテリのそばのJP1にシリアル信号が出ている。 ピンの配置はLANDISKと同じ。 3.3V対応の232Cバストランシーバ回路をつければOK。

usl5p-cons.jpg(43406 byte)

カーネルの入れ替え

LANDISKのソースを使ってUSL-5Pで起動するカーネルをビルドする。
LANDISKのソースにはCFアクセス用のコードが既に用意されたので、ためしにビルドしたら動いた。

以下はNFSroot用の .config。

# grep -v '^#' .config|grep -v "^$"
CONFIG_SUPERH=y
CONFIG_UID16=y
CONFIG_RWSEM_GENERIC_SPINLOCK=y
CONFIG_EXPERIMENTAL=y
CONFIG_MODULES=y
CONFIG_SH_JULIAN=y
CONFIG_SH_RTC=y
CONFIG_CPU_SUBTYPE_SH7751=y
CONFIG_CPU_SH4=y
CONFIG_CPU_LITTLE_ENDIAN=y
CONFIG_MEMORY_START=0c000000
CONFIG_MEMORY_SIZE=04000000
CONFIG_MEMORY_SET=y
CONFIG_ISA=y
CONFIG_NET=y
CONFIG_SH_DMA=y
CONFIG_PCI=y
CONFIG_PCI_GODIRECT=y
CONFIG_PCI_DIRECT=y
CONFIG_SH_PCIDMA_NONCOHERENT=y
CONFIG_PCI_NAMES=y
CONFIG_HOTPLUG=y
CONFIG_SYSVIPC=y
CONFIG_SYSCTL=y
CONFIG_KCORE_ELF=y
CONFIG_BINFMT_ELF=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_RAM=y
CONFIG_BLK_DEV_RAM_SIZE=4096
CONFIG_BLK_DEV_INITRD=y
CONFIG_PACKET=y
CONFIG_FILTER=y
CONFIG_UNIX=y
CONFIG_INET=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_IP_PNP=y
CONFIG_IP_PNP_DHCP=y
CONFIG_IP_PNP_BOOTP=y
CONFIG_IDE=y
CONFIG_BLK_DEV_IDE=y
CONFIG_BLK_DEV_IDEDISK=y
CONFIG_BLK_DEV_IDECD=y
CONFIG_BLK_DEV_IDESCSI=y
CONFIG_BLK_DEV_IDE_MODES=y
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_SD_EXTRA_DEVS=40
CONFIG_NETDEVICES=y
CONFIG_NET_ETHERNET=y
CONFIG_NET_PCI=y
CONFIG_8139CP=y
CONFIG_SH_SCI=y
CONFIG_SERIAL_CONSOLE=y
CONFIG_UNIX98_PTYS=y
CONFIG_UNIX98_PTY_COUNT=256
CONFIG_RTC=y
CONFIG_EXT3_FS=y
CONFIG_JBD=y
CONFIG_FAT_FS=y
CONFIG_MSDOS_FS=y
CONFIG_VFAT_FS=y
CONFIG_TMPFS=y
CONFIG_RAMFS=y
CONFIG_ISO9660_FS=y
CONFIG_PROC_FS=y
CONFIG_DEVPTS_FS=y
CONFIG_EXT2_FS=y
CONFIG_NFS_FS=y
CONFIG_NFS_V3=y
CONFIG_ROOT_NFS=y
CONFIG_NFSD=y
CONFIG_NFSD_V3=y
CONFIG_NFSD_TCP=y
CONFIG_SUNRPC=y
CONFIG_LOCKD=y
CONFIG_LOCKD_V4=y
CONFIG_MSDOS_PARTITION=y
CONFIG_NLS=y
CONFIG_NLS_DEFAULT="iso8859-1"
CONFIG_NLS_CODEPAGE_932=y
CONFIG_VIDEO_DEV=m
CONFIG_VIDEO_PROC_FS=y
CONFIG_SOUND=m
CONFIG_SOUND_OSS=m
CONFIG_SOUND_YMFPCI=m
CONFIG_SOUND_YMFPCI_LEGACY=y
CONFIG_USB=y
CONFIG_USB_DEVICEFS=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_OHCI=y
CONFIG_USB_STORAGE=y
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_FREECOM=y
CONFIG_USB_STORAGE_ISD200=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_HP8200e=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_SDDR55=y
CONFIG_USB_STORAGE_JUMPSHOT=y
CONFIG_USB_PRINTER=m
CONFIG_USB_HID=m
CONFIG_USB_SCANNER=m
CONFIG_USB_OV511=m
CONFIG_USB_SERIAL=m
CONFIG_USB_SERIAL_PL2303=m

nfsroot での起動

いろいろと実験するのに毎回CFを入れ替えるのが面倒なので、NFSrootできるようにする。 ポイントは次のとおり。

liloの設定例

ビルドしたカーネルをコピーして、lilo を実行する。

linear
boot=/dev/sda  (母艦でのデバイス)
disk=/dev/sda
bios=0x80
timeout=50
default=nfsroot
install=/boot/boot-sel.b-v214
image=/boot/zImage.new
        label=nfsroot
        root=/dev/hda1
        read-only
        append="mem=64M root=/dev/nfs rw console=ttySC1,9600 ip=::::::bootp"
(rw をつけること)

rootfsの用意

iohack のdebianベースを使わせていただく。

  1. baseを展開
    # mkdir $ROOTFSDIR
    # cd $ROOTFSDIR
    # tar xvfj base-sh4-for-landisk-20041122.tar.bz2
  2. etc/fstabを編集
    /dev/nfs        /       nfs     defaults,errors=remount-ro 0 0
  3. etc/network/interfaces
    auto lo
    iface lo inet loopback
  4. etc/inittabを編集
  5. etc/securettyを編集
  6. etc/hosts, etc/resolv.confを適切に編集
詳細省略部分はdebianのセットアップの例 を参考にする。

BOOTPサーバの設定

dhcp-2.0pl5-6vl1 の例

/etc/dhcpd.conf
---
subnet 192.168.0.0 netmask 255.255.255.0 {

  host usl5p {
        hardware ethernet 00:a0:b0:65:xx:xx;
        fixed-address 192.168.0.xxx;   (USL-5Pに与えるアドレス)
        option routers 192.168.0.1;    (defaultroute)
        option host-name "usl5p";

        option root-path "$NFSROOT";   (NFS export された rootfs TOP)
  }

}

NFSサーバの設定

/etc/exports
---
$NFSROOT 192.168.0.xxx/255.255.255.255(rw,no_root_squash)

起動例

I-O DATA DEVICE, INC. landisk3 support.
On node 0 totalpages: 16384
zone(0): 16384 pages.
zone(1): 0 pages.
zone(2): 0 pages.
Kernel command line: ro root=301 mem=64M root=/dev/nfs rw console=ttySC1,9600 ip=::::::bootp
CPU clock: 266.81MHz
Bus clock: 133.40MHz
Module clock: 33.35MHz
Interval = 5207
Calibrating delay loop... 266.24 BogoMIPS
Memory: 62576k/65536k available (1731k kernel code, 2960k reserved, 277k data, 6
4k init)
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: 512 (order: 0, 4096 bytes)
Buffer-cache hash table entries: 4096 (order: 2, 16384 bytes)
Page-cache hash table entries: 16384 (order: 4, 65536 bytes)
CPU: SH7751R
POSIX conformance testing by UNIFIX
PCI: Using configuration type 1
SH7751R PCI: Finished initialization of the PCI controller
Linux NET4.0 for Linux 2.4
Based upon Swansea University Computer Society NET3.039
Initializing RT netlink socket
Allocate Area5/6 success.
Julian Shutdown button driver initialized
Starting kswapd
Journalled Block Device driver loaded
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
pty: 256 Unix98 ptys configured
SuperH SCI(F) driver initialized
ttySC0 at 0xffe00000 is a SCI
ttySC1 at 0xffe80000 is a SCIF
Real Time Clock Driver v1.10e
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
8139cp: 10/100 PCI Ethernet driver v0.3.0 (Sep 29, 2002)
PCI: Enabling device Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (0000
 -> 0003)
eth0: RTL-8139C+ at 0xfd000000, 00:a0:b0:65:xx:xx, IRQ 5
eth0: PCI cache line size set incorrectly (0 bytes) by BIOS/FW, correcting to 32
PCI: Setting latency timer of device Realtek Semiconductor Co., Ltd. RTL-8139/81
39C/8139C+ to 64
Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
hda: Hitachi XXM2.3.0, CFA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 10
hda: attached ide-disk driver.
hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hda: task_no_data_intr: error=0x04 { DriveStatusError }
hda: 125184 sectors (64 MB) w/1KiB Cache, CHS=978/4/32
Partition check:
 hda: hda1
SCSI subsystem driver Revision: 1.00
scsi0 : SCSI host adapter emulation for IDE ATAPI devices
usb.c: registered new driver usbdevfs
usb.c: registered new driver hub
PCI: Enabling device NEC Corporation USB 2.0 (0000 -> 0002)
ehci-hcd 00:02.2: NEC Corporation USB 2.0
ehci-hcd 00:02.2: irq 5, pci mem fd000100
usb.c: new USB bus registered, assigned bus number 1
PCI: 00:02.2 PCI cache line size set incorrectly (0 bytes) by BIOS/FW.
PCI: 00:02.2 PCI cache line size corrected to 32.
ehci-hcd 00:02.2: USB 2.0 enabled, EHCI 1.00, driver 2003-Jan-22
hub.c: USB hub found
hub.c: 5 ports detected
PCI: Enabling device NEC Corporation USB (0000 -> 0002)
PCI: Setting latency timer of device NEC Corporation USB to 64
host/usb-ohci.c: USB OHCI at membase 0xfd001000, IRQ 7
host/usb-ohci.c: usb-00:02.0, NEC Corporation USB
usb.c: new USB bus registered, assigned bus number 2
hub.c: USB hub found
hub.c: 3 ports detected
PCI: Enabling device NEC Corporation USB (#2) (0000 -> 0002)
PCI: Setting latency timer of device NEC Corporation USB (#2) to 64
host/usb-ohci.c: USB OHCI at membase 0xfd002000, IRQ 8
host/usb-ohci.c: usb-00:02.1, NEC Corporation USB (#2)
usb.c: new USB bus registered, assigned bus number 3
hub.c: USB hub found
hub.c: 2 ports detected
Initializing USB Mass Storage driver...
usb.c: registered new driver usb-storage
USB Mass Storage support registered.
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP
IP: routing cache hash table of 512 buckets, 4Kbytes
TCP: Hash tables configured (established 4096 bind 8192)
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Sending BOOTP requests . OK
IP-Config: Got BOOTP answer from 192.168.0.xx, my address is 192.168.0.xxx
IP-Config: Complete:
      device=eth0, addr=192.168.0.xxx, mask=255.255.255.0, gw=192.168.0.x,
     host=usl5p, domain=, nis-domain=(none),
     bootserver=192.168.0.xx, rootserver=192.168.0.xx, rootpath=/xxxxx/nfsroot
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
Looking up port of RPC 100003/2 on 192.168.0.19
Looking up port of RPC 100005/1 on 192.168.0.19
VFS: Mounted root (nfs filesystem).
Freeing unused kernel memory: 64k freed
NIT: version 2.86 booting
Activating swap.
Timed out waiting for time change.
System time was Sun Nov 28 14:42:19 UTC 2004.
Setting the System Clock using the Hardware Clock as reference...
Timed out waiting for time change.
System Clock set. System local time is now Sun Nov 28 14:42:28 UTC 2004.
Not calculating module dependencies: /lib/modules/2.4.21 is read only.
Loading modules:
modprobe: Can't open dependencies file /lib/modules/2.4.21/modules.dep (No such file or directory)
Checking all file systems...
fsck 1.35 (28-Feb-2004)
Setting kernel variables ...
... done.
Mounting local filesystems...
Cleaning /tmp /var/run /var/lock.
Cleaning: /etc/network/ifstate.
Setting up IP spoofing protection: rp_filter.
Configuring network interfaces...done.
Mounting remote filesystems...

Setting the System Clock using the Hardware Clock as reference...
Timed out waiting for time change.
System Clock set. Local time: Sun Nov 28 23:42:35 JST 2004

Initializing random number generator...done.
Recovering nvi editor sessions... done.
INIT: Entering runlevel: 2
Starting system log daemon: syslogd.
Starting kernel log daemon: klogd.
Starting internet superserver: inetd.
Starting OpenBSD Secure Shell server: sshdCould not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_dsa_key
Disabling protocol version 2. Could not load host key
sshd: no hostkeys available -- exiting.
Starting deferred execution scheduler: atd.
Starting periodic command scheduler: cron.
Debian GNU/Linux 3.1 usl5p ttySC1

usl5p login:

あとはお好きに

iohack のベースは既に apt の設定が済んでいるので、 apt-get で足りないパッケージを探してインストールするだけ。

履歴

2004年11月12日 - 本体入手
2004年11月28日 - 公開

[HOME]