バッテリのそばのJP1にシリアル信号が出ている。 ピンの配置はLANDISKと同じ。 3.3V対応の232Cバストランシーバ回路をつければOK。
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
いろいろと実験するのに毎回CFを入れ替えるのが面倒なので、NFSrootできるようにする。 ポイントは次のとおり。
ビルドしたカーネルをコピーして、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 をつけること)
iohack のdebianベースを使わせていただく。
# mkdir $ROOTFSDIR # cd $ROOTFSDIR # tar xvfj base-sh4-for-landisk-20041122.tar.bz2
/dev/nfs / nfs defaults,errors=remount-ro 0 0
auto lo iface lo inet loopback
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) } }
/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: