[Soekris] net4801 - Linux boot?

Göran Sandin Goran.Sandin at abc.se
Sat Dec 6 23:22:13 UTC 2003

Hi Dave,

thanks for your suggestions.

On Saturday 06 December 2003 20.11, Dave Johnson wrote:
> Göran Sandin writes:

> > This is the last part before it halts:
> >
> > "PXELINUX 2.07 2003-11-22  Copyright (C) 1994-2003 H. Peter Anvin
> > MMiissssiinngg  ppaarraammeetteerr  iinn  ccoonnffiigg  ffiillee..
> > LLooaaddiinngg
> > vmmlliinnuuzz--22..44..2222--nneett44880011....................
> > ..............RReeaaddyy.."
> this version will get rid of those double characters.
> http://centerclick.org/net4801/pxelinux/pxelinux.0.gz

Yes, it certainly did. Much easier when you get the error messages in human 
readable form also :-)

I am still a little bit confused, but much closer to a working system now.

> I found pxelinux get very confused with complicated config files.
> This one works just fine for me (both nfs root and local root)
> http://centerclick.org/net4801/pxelinux/default

I "translated" that into this:
SERIAL 0 19200 0
label cf
kernel vmlinuz-2.4.22-pebble
append initrd=initrd-2.4.22-pebble console=ttyS00,19200n81 root=/dev/hda1 rw 
(whithout all empty lines and comments. Note that I changed to ttyS00 instead 
of ttyS0. With this change, I got some more output after "Warning: unable to 
open an initial console.)...

> You can also see the kernel config I'm using at (2.4.23)
> http://centerclick.org/net4801/kernel_config

That config had a lot of differences compared to the one I downloaded from 
somewhere for 2.4.22. I have downloaded the komplete 2.4.23 kernel also, but 
not tried it yet. Is your kernel_config "standard" from kernel.org, or have 
you applied any patches on it?

> > I then returned to the compact flash and have now spent enough hours on
> > it to understand that a little help could not hurt :-)
> >
> > This is the lilo.conf I try to use (well the latest version....):
> >
> > boot = /dev/sda1
> > install = /mnt/cf/boot/boot.b
> > map = /mnt/cf/boot/System.map-2.4.22-pebble
> >
> > vga = normal
> >
> > read-only
> > serial=0,19200n8
> > prompt
> > timeout=50
> >
> > disk = /dev/sda
> > cylinders=980
> > heads=8
> > sectors=32
> >
> > delay = 50
> /dev/sda* is wrong (unless you've hacked your 4801 to contain a SCSI
> card) use /dev/hda*

Well, /dev/sda* is what I got when I had the compact flash in the USB-card 
reader on my normal PC. As I understood it, I had to write it in this way to 
get LILO to actually place the boot-information on the compact flash and not 
on /dev/hda in my computer.

I tried your suggestion but it made no difference. (I guess I have to update 
GRUB on my computer before I turn it off for tonight ;-).

> You also shouldn't include the serial line as that will cause double
> output.  It's important to make sure /boot/boot.b is the 'text'
> version not the menu version.

Ok, about the text-version. I probably had not figured that out myself. The 
serial-line, I do not know yet. However, I kept it in the PXE-default-file 
and it works good now, no double letters.

> I threw my lilo.conf at:
> http://centerclick.org/net4801/lilo.conf
> To get lilo going, It's easiest to pxe boot the kernel with a local
> root fs (not nfsroot), then run lilo as the cf will already be mounted
> on /

OK, but I have still not been able to get a login-prompt.

(I am not sure if it is "polite" or not, to include to much listings in the 
mailinglist, but I give it a try anyway...)

When I try to boot from the CF, I still get the 'L' instead of 'LILO' and all 

If I press Ctrl-P and do a "boot f0" I actually get it booting now. So this is 
further than before. However, I do not get a login-prompt. It is the same 
both for the console and Eth0.

However, now it do respond on ping to Eth0.
# ping -f
PING ( 56(84) bytes of data.

--- ping statistics ---
6178290 packets transmitted, 6178290 received, 0% packet loss, time 2501355ms
rtt min/avg/max/mdev = 0.345/0.381/10.623/0.215 ms, pipe 2, ipg/ewma 
0.404/0.374 ms

I have a feeling that I can not get the 4801 to mount the CF properly. I am 
not sure if I have provided the correct mapping in the lilo.conf, but the 
kernel at least report CHS=980/8/32 which I think is what the BIOS in 4801 

One reason I suspect this is that I did not find any /dev/hda* in the 
pebble-distro that I downloaded. That was what I copied onto the CF after 
modifying /etc/lilo.conf, /etc/inittab and /etc/fstab.


Here is all of the output from booting with PXE:

POST: 0123456789bcefghipajklnoq,,,tvwxy
comBIOS ver. 1.22  20031029  Copyright (C) 2000-2003 Soekris Engineering.


                                         CPU Geode 266 Mhz 0000 Mbyte 

Pri Mas  SanDisk SDCFH-128               LBA 980-8-32  125 Mbyte

PXE-M00: BootManage UNDI, PXE-2.0 (build 082)

Slot   Vend Dev  ClassRev Cmd  Stat CL LT HT  Base1    Base2   Int
0:00:0 1078 0001 06000000 0107 0280 00 00 00 00000000 00000000 00
0:06:0 100B 0020 02000000 0107 0290 00 3F 00 0000E101 A0000000 10
0:07:0 100B 0020 02000000 0107 0290 00 3F 00 0000E201 A0001000 10
0:08:0 100B 0020 02000000 0107 0290 00 3F 00 0000E301 A0002000 10
0:18:2 100B 0502 01018001 0005 0280 00 00 00 00000000 00000000 00
0:19:0 0E11 A0F8 0C031008 0117 0280 08 38 00 A0003000 00000000 11

   Seconds to automatic boot.   Press Ctrl-P for entering Monitor. 5 4

comBIOS Monitor.   Press ? for help.

> boot f0

BootManage UNDI, PXE-2.0 (build 082)
BootManage PXE-2.0 PROM 1.0, NATSEC 1.0, SDK 3.0/082 (OEM52)
Copyright (C) 1989,2000 bootix Technology GmbH, D-41466 Neuss.
PXE Software Copyright (C) 1997, 1998, 1999, 2000 Intel Corporation.
Licensed to National Semiconductor

CLIENT MAC ADDR: 00 00 24 C1 55 D8
PXELINUX 2.06 0x3fb30aea  Copyright (C) 1994-2003 H. Peter Anvin
Loading vmlinuz-2.4.22-pebble...............
Loading initrd-2.4.22-pebble...
Linux version 2.4.22-pebble (root at ganymede) (gcc version 3.3.1 (SuSE Linux)) 
#2 Sat Dec 6 17:12:49 CET 2003
BIOS-provided physical RAM map:
 BIOS-e801: 0000000000000000 - 000000000009f000 (usable)
 BIOS-e801: 0000000000100000 - 0000000008000000 (usable)
128MB LOWMEM available.
On node 0 totalpages: 32768
zone(0): 4096 pages.
zone(1): 28672 pages.
zone(2): 0 pages.
DMI not present.
Kernel command line: initrd=initrd-2.4.22-pebble console=ttyS00,19200n81 
root=/dev/hda1 rw ip=dhcp BOOT_IMAGE=vmlinuz-2.4.22-pebble
No local APIC present or hardware disabled
Initializing CPU#0
Detected 266.636 MHz processor.
Calibrating delay loop... 530.84 BogoMIPS
Memory: 127496k/131072k available (945k kernel code, 3188k reserved, 406k 
data, 76k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Dentry cache hash table entries: 16384 (order: 5, 131072 bytes)
Inode cache hash table entries: 8192 (order: 4, 65536 bytes)
Mount cache hash table entries: 512 (order: 0, 4096 bytes)
Buffer cache hash table entries: 8192 (order: 3, 32768 bytes)
Page-cache hash table entries: 32768 (order: 5, 131072 bytes)
CPU: NSC Unknown stepping 01
Checking 'hlt' instruction... OK.
POSIX conformance testing by UNIFIX
PCI: PCI BIOS revision 2.00 entry at 0xf7861, last bus=0
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
Detected PS/2 Mouse Port.
pty: 256 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 
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
hdb: C/H/S=0/0/0 from BIOS ignored
hda: SanDisk SDCFH-128, CFA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: attached ide-disk driver.
hda: task_no_data_intr: status=0x51 { DriveReady SeekComplete Error }
hda: task_no_data_intr: error=0x04 { DriveStatusError }
hda: 250880 sectors (128 MB) w/1KiB Cache, CHS=980/8/32
Partition check:
 hda: hda1
Initializing Cryptographic API
NET4: Linux TCP/IP 1.0 for NET4.0
IP Protocols: ICMP, UDP, TCP, IGMP
IP: routing cache hash table of 1024 buckets, 8Kbytes
TCP: Hash tables configured (established 8192 bind 16384)
Linux IP multicast router 0.06 plus PIM-SM
NET4: Unix domain sockets 1.0/SMP for Linux NET4.0.
 hda: hda1
 hda: hda1
EXT2-fs warning: mounting unchecked fs, running e2fsck is recommended
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 76k freed
Warning: unable to open an initial console.
natsemi dp8381x driver, version 1.07+LK1.0.17, Sep 27, 2002
  originally by Donald Becker <becker at scyld.com>
  2.4.x kernel port by Jeff Garzik, Tjeerd Mulder
eth0: NatSemi DP8381[56] at 0xc8807000, 00:00:24:c1:55:d8, IRQ 10.
eth1: NatSemi DP8381[56] at 0xc8809000, 00:00:24:c1:55:d9, IRQ 10.
eth2: NatSemi DP8381[56] at 0xc880b000, 00:00:24:c1:55:da, IRQ 10.
ip_tables: (C) 2000-2002 Netfilter core team
ip_conntrack version 2.1 (1024 buckets, 8192 max) - 292 bytes per conntrack
eth0: link up.
eth0: Setting full-duplex based on negotiated link capability.

More information about the Soekris-tech mailing list