Penguin
Diff: CompaqEvoT20Notes
EditPageHistoryDiffInfoLikePages

Differences between version 14 and predecessor to the previous major change of CompaqEvoT20Notes.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 14 Last edited on Sunday, June 18, 2006 9:06:11 pm by MilanHauth Revert
Older page: version 11 Last edited on Wednesday, May 24, 2006 10:36:34 pm by BishopClark Revert
@@ -7,19 +7,15 @@
  
  
 Some of these units support [PXE] booting. If you happen to have one, it is trivial to turn it into a linux thin client - just make use of a PXE netboot environment, such as PXES or diskless. 
  
-If you don't have a PXE boot model, or you wish to run linux locally, you could try [hacking the firmware|http://www.kazak.ws/evo/] (Note, this resource seems to have been relagated to the google cache)  
+If you don't have a PXE boot model, or you wish to run linux locally, you could try [hacking the firmware|http://www.kazak.ws/evo/] 
  
 !!General notes 
  
 ! Video depth 
  
 It appears that the driver [XOrg] uses for this unit can't support a bit depth of 24bits, but it does support 16bits. 
-  
-  
-  
-  
  
 Interestingly, if you allow the bootp to wait, it times out after an hour and tries to tftp /tftpboot/kernel on port 10069. 
  
 ---- 
@@ -37,34 +33,35 @@
 Revision 0.1 09/08/2004 Revised by: DSS 
  
 !Introduction 
  
- I did it!
+I did it! 
  
- I'm really happy now. I've still got problems with my NFS setup so I haven't run X yet, but if anything difficult pops up there I'll update the howto. This should get you well started. 
+I'm really happy now. I've still got problems with my NFS setup so I haven't run X yet, but if anything difficult pops up there I'll update the howto. This should get you well started. 
  
- The version I have is 48/64, meaning 48 MB flash and 64 MB RAM. Changes for the other versions will probably be needed. 
+The version I have is 48/64, meaning 48 MB flash and 64 MB RAM. Changes for the other versions will probably be needed. 
  
- Note to HP/Compaq/WYSE: If you don't like what I have done here just email me and I'll promptly take the page down. 
+Note to HP/Compaq/WYSE: If you don't like what I have done here just email me and I'll promptly take the page down. 
  
 !Uploading firmware 
  
 The first problem we're facing is that the BIOS won't boot from anything else than the soldered-on flash. Luckily there's a firmware update mechanism, "NETXFER". The EVO T20 tries to flash itself when you hold down the "P" key when applying power to it (a power outlet with a power switch is a must when working on this). "NETXFER" will appear on the screen, then it will try to connect with a BOOTP server. 
  
 You can download the windows tool for updating the firmware from hp.com (combined BOOTP+TFTP server, it will need an ancient Java implementation running on the machine, search the web), or (very very much preferred), set up Linux to update the firmware: 
  
-
+* Configure a BOOTP server to run at port 10067 and serve out an IP address and a filename (to the firmware file). Easiest is to use the stock ISC DHCP with something like:  
  
- Configure a BOOTP server to run at port 10067 and serve out an IP address and a filename (to the firmware file) . Easiest is to use the stock ISC DHCP with something like:  
+ <verbatim>  
+ range dynamic-bootp 192 .168..100 192.168..140;  
+ </verbatim>  
  
- range dynamic-bootp 192.168..100 192.168..140;  
+ in the file "/etc/dhcpd.conf" (the point was the dynamic-bootp), then start it with:  
  
- in the file "/etc/ dhcpd.conf" (the point was the dynamic -bootp), then start it with:  
+ <verbatim>  
+ dhcpd -p 10067 -cf custom-config-file-for-this-purpose  
+ </verbatim>  
  
- dhcpd -p 10067 -cf custom-config-file-for-this-purpose  
- *  
-  
- Run a TFTP server at port 10069, handing out the firmware file specified by the filename in the file "dhcpd.conf". Register the port in the file "/etc/services", then copy the line in inetd.conf for the TFTP and put it on that port as well. 
+* Run a TFTP server at port 10069, handing out the firmware file specified by the filename in the file "dhcpd.conf". Register the port in the file "/etc/services", then copy the line in inetd.conf for the TFTP and put it on that port as well. 
  
 It might look easier to use a Windows box, but getting it to work in Linux takes max half an hour and is very well worth it! 
  
 Then we need the stock firmware for modifications, get it from hp.com. It should be about 48 MB, and comes packed in an EXE-file that should execute just fine with the program WINE. 
@@ -76,28 +73,32 @@
 First do a flash of the stock firmware. Note the files that are transferred and their sizes... the filesystems are in "filesys0" and "filesys1". Search for those names in the firmware using an hex editor (i.e. ghex2). Somewhere before "filesys0" the size of "filesys0" is as a DWORD (four bytes) (you found the size when transferring, right?). Now, the four bytes before this is the offset from the start of the package. 
  
 To find the start of the package (except by just figuring it out in the hex editor), basically find the size of the setup code before it, which is the sizes of the files "TFTP.dat" and "ulc_code.tmp" that can be found in the windows Netxfer download. Other Evo versions might have other setup code, so make a new firmware using the setup code bundled with the program NETXFER: 
  
- mkutc.bat firmware-file  
- 
+<verbatim>  
+ mkutc.bat firmware-file  
+</verbatim>  
  
 It will "reformat" firmware-file with the setup code we know and stick it in the file "bootp.bin". 
  
 Now, hopefully you've found the offset of the file "filesys0", you should find the Windows NT master boot record there (with strings referring to your lack of proper hard disk setup, etc.). Now mount it as a loop device: 
  
- losetup -o 834198 /dev/loop0 firmware.bin  
- 
+<verbatim>  
+ losetup -o 834198 /dev/loop0 firmware.bin  
+</verbatim>  
  
 Now we can make any changes we want on the device "/dev/loop0", treating it like a hard drive, and it will immedeately be reflected in the firmware. You can even mount 512 bytes further on the device "/dev/loop1" and mount the NTFS file system the Evo uses: 
  
- losetup -o 834710 /dev/loop1 firmware.bin  
- mount /dev/loop1 /mnt  
- 
+<verbatim>  
+ losetup -o 834710 /dev/loop1 firmware.bin  
+ mount /dev/loop1 /mnt  
+</verbatim>  
  
 I like to zero out everything but the MBR at this stage: 
  
- dd if=/dev/zero of=/dev/loop bs=512 seek=1  
- 
+<verbatim>  
+ dd if=/dev/zero of=/dev/loop bs=512 seek=1  
+</verbatim>  
  
 just to remove every trace of Windows NTe. Then we must install our own stuff, I picked GRUB (because it was the one I first got to the assembler level of in my efforts to make the bootloaders work on the Evo...). 
  
 !Making GRUB work 
@@ -131,52 +132,62 @@
 Because we have no keyboard (only USB, won't work in GRUB or any bootloader that I know of because most BIOSes emulate a regular keyboard during startup) we must precode GRUBs actions. "dhcp --with-configfile" is my strong suggestion, as it lets you specify the GRUB boot options from a DHCP server. 
  
 Create a new file "presetmenu": 
  
- default  
- timeout  
- title Load config from DHCP  
- dhcp --with-configfile  
- 
+<verbatim>  
+ default  
+ timeout  
+ title Load config from DHCP  
+ dhcp --with-configfile  
+</verbatim>  
  
 (Why I have to write it as a menu instead of just the dhcp command is beyond me, but I must or it will enter an infinite DHCP loop...) 
  
 That's it for the patches. Let's configure it, my suggestion: 
  
- ./configure \  
- --enable-preset-menu=presetmenu \ 
+<verbatim>  
+ ./configure \  
+ --enable-preset-menu=presetmenu \ 
  --enable-natsemi \ 
  --enable-pci-direct \ 
- --disable-ext2fs --disable-fat --disable-ffs --disable-ufs2 \  
- --disable-minix --disable-reiserfs --disable-vstatfs --disable-jfs \  
- --disable-xfs --disable-iso9660\  
- --disable-md5-password --disable-serial  
- 
+ --disable-ext2fs \  
+ --disable-fat \  
+ --disable-ffs \  
+ --disable-ufs2 \  
+ --disable-minix \  
+ --disable-reiserfs \  
+ --disable-vstatfs \  
+ --disable-jfs \  
+ --disable-xfs \  
+ --disable-iso9660 \  
+ --disable-md5-password \  
+ --disable-serial  
+</verbatim>  
  
 The important ones is the presetmenu, to enable direct PCI (we have no PCI access from BIOS), and the natsemi network card. 
  
 Now for installation.. make sure the loop device is set up (see first section), then: 
  
-  
- dd if=grub-src/stage1/stage1 of=/dev/loop0 bs=512 seek=1  
- dd if=grub-src/stage2/stage2 of=/dev/loop0 bs=512 seek=2  
-  
-  
+<verbatim>  
+ dd if=grub-src/stage1/stage1 of=/dev/loop0 bs=512 seek=1  
+ dd if=grub-src/stage2/stage2 of=/dev/loop0 bs=512 seek=2  
+</verbatim>  
  
 Finally, stick this somewhere in dhcp.conf on the server: 
  
- option option-150 "(nd)/grub-menu.lst" 
+ option option-150 "(nd)/grub-menu.lst" 
  
  
 And put something fancy in the file "grub-menu.lst". My LTSP (Linux Terminal Server Project) setup: 
  
-  
- default  
- timeout  
- title LTSP  
- root (nd)  
- kernel /lts/kernel-version/bzImage-kernelversion init=/linuxrc rw root=/dev/ram0  
- initrd /lts/kernel-version/initrd-kernelversion.gz 
+<verbatim>  
+ default  
+ timeout  
+ title LTSP  
+ root (nd)  
+ kernel /lts/kernel-version/bzImage-kernelversion init=/linuxrc rw root=/dev/ram0  
+ initrd /lts/kernel-version/initrd-kernelversion.gz  
+</verbatim>  
  
 !Running X 
  
 Running X was a relatively quick job compared to the madness above. Only a single problem occured: Xorg detects the driver to be "geode", which is actually wrong. What we want is the "nsc" driver. And, National Semiconductor (seems like they made every chip in that box, not that strange). 
@@ -192,19 +203,17 @@
 !More stuff that could be done 
  
 I probably won't do any of these, considering that they're not all that useful, but here's the ideas anyway: 
  
-
+* Now that we can have Linux running we probably have full access to the BIOS code. Reflashing it with a different boot picture would be good (it still has that "Windows Powered" logo when booting...grrr). Considering that most of the time you won't see this (see point 3) it's not very useful, but then again it's probably not terribly difficult to do if the right tools exists.  
  
- Now that we can have Linux running we probably have full access to the BIOS code. Reflashing it with a different boot picture would be good (it still has that "Windows Powered" logo when booting...grrr). Considering that most of the time you won't see this (see point 3) it's not very useful , but then again it's probably not terribly difficult to do if the right tools exists .  
- *  
+* Look into video. Try to allocate more video memory for higher modes , get it to run in 24/32-bit, etc
  
- Look into video . Try to allocate more video memory for higher modes , get it to run in 24/32-bit , etc.  
- *  
+* The boot phase is strange: Orange LED shows during very basic initialization . This happen when it gets power (pressing power button not required). After this , it progresses with booting with the LED and screen output turned off. Then it pauses right before Linux is about to boot. Ok, with a splash screen in the Linux kernel it could look good since it takes you past all the text stuff , but still: Why does it pause at all? How does it detect that Linux is about to boot, and is there any way to make it go all the way, so that when the power button is pressed we have an X session ready and waiting?  
  
- The boot phase is strange: Orange LED shows during very basic initialization. This happen when it gets power (pressing power button not required). After this, it progresses with booting with the LED and screen output turned off. Then it pauses right before Linux is about to boot. Ok, with a splash screen in the Linux kernel it could look good since it takes you past all the text stuff, but still: Why does it pause at all? How does it detect that Linux is about to boot, and is there any way to make it go all the way, so that when the power button is pressed we have an X session ready and waiting?  
  
- I have Linux appliances projects out there (commercial) running on Geode, and the driver is there, so if there is a higher potential than this it can probably be done. 
+I have Linux appliances projects out there (commercial) running on Geode, and the driver is there, so if there is a higher potential than this it can probably be done.  
+  
  
 !Conclusions 
  
 Like I said, a more thorough investigation is probably in order, but this is all I'll do for now. Please mail me any experiences you have with it...also, if someone running the Evo T20 the intended way (Windows with Rapport on server) is reading this: It would be interesting to know the highest resolution/color they can set on it. 
@@ -227,18 +236,18 @@
 since i saw a cheap t20 on ebay i've looked for information to run linux/bsd on this machine, then i found the solution from Dag Sverre and got a t20 with 96/128 memory configuration fom ebay (30$). 
  
 first i've downloaded the firmware-image (U96CPQ163.bin) from hp-support-site and compared it with the 48/64-imgefile from Dags machine: the offset differs, while it seems to be exactly the same stuff is contained and loaded up before starting up the NTe-Image (don't ask me). 
  
-#losetup -o 834236 /dev/loop0 U96CPQ163.bin ( for the entire file)  
-  
-# losetup -o 834748 /dev/loop1 U96CPQ163.bin (for the contained ntfs-filesystem)  
-  
-#mount /dev/loop1 /mountpoint -t ntfs  
-  
-#cd /mountpoint  
-  
-#ls -l  
+<verbatim>  
+ # for the entire file:  
+ losetup -o 834236 /dev/loop0 U96CPQ163.bin  
+ # for the contained ntfs-filesystem  
+ losetup -o 834748 /dev/loop1 U96CPQ163.bin 
  
+ mount -t ntfs /dev/loop1 /mountpoint  
+ cd /mountpoint  
+ ls -l  
+</verbatim>  
  
  
  
 ! first i tried to manipulate the bootloader with grub for nt 
@@ -258,10 +267,12 @@
 commented out the A20-calls in "builtins.c" and "common.c" patched the other files as described (maybe i have forget/ignored to comment out the routine itself in "asm.S" - don't know if this is nessesary) and wrote the preset-menu (may be i failed here - i wrote all in the same row - shit!) 
  
 after compiling, patching 
  
-# dd if=my-compiled-grub-src/stage1/stage1 of=/dev/loop0 bs=512 seek=1  
-# dd if=my-compiled-grub-src/stage2/stage2 of=/dev/loop0 bs=512 seek=2 
+<verbatim>  
+ dd if=my-compiled-grub-src/stage1/stage1 of=/dev/loop0 bs=512 seek=1  
+ dd if=my-compiled-grub-src/stage2/stage2 of=/dev/loop0 bs=512 seek=2  
+</verbatim>  
  
 and flashing (with netxfer)... and rebooting ... 
  
 ... the machine waited for me at the grub command-prompt (no preset-menu) ... without having a keyboard - kacke! 
@@ -288,9 +299,11 @@
  
  
 ! now i have patched the firmware with this image 
  
-# dd if=eb-5.4.2pre2-natsemi.zhd of=/dev/loop0 bs=512 seek=1 
+<verbatim>  
+ dd if=eb-5.4.2pre2-natsemi.zhd of=/dev/loop0 bs=512 seek=1  
+</verbatim>  
  
 then i have flashed the patched U96CPQ163.bin to my t20 ... rebooted ... and: 
  
 ! BINGO! ### a DHCP/PXE-Request on my sniffer-screen and the machine replies on ICMP-Requests 
@@ -334,125 +347,125 @@
  
  
  
 <verbatim> 
-P192168100251# dmesg  
-Linux version 2.4.32-2pxes (diego@thindev) (gcc version 3.3.5 (Debian 1:3.3.5-8)) #3 Tue Feb 21 18:02:22 EST 2006  
-BIOS-provided physical RAM map:  
- BIOS-e801: 0000000000000000 - 000000000009f000 (usable)  
- BIOS-e801: 0000000000100000 - 0000000007d10000 (usable)  
-125MB LOWMEM available.  
-On node 0 totalpages: 32016  
-zone(): 4096 pages.  
-zone(1): 27920 pages.  
-zone(2): 0 pages.  
-DMI not present.  
-ACPI: Unable to locate RSDP  
-Kernel command line: rw root=/dev/nfs ramdisk_size=17080 initrd=pxes-1.1-1PB.squash ro root=/dev/ram  
-Initializing CPU#  
-Working around Cyrix MediaGX virtual DMA bugs.  
-Detected 300.683 MHz processor.  
-Console: colour VGA+ 80x25  
-Calibrating delay loop... 599.65 BogoMIPS  
-Memory: 106808k/128064k available (1351k kernel code, 20868k reserved, 528k data, 108k 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: , 4096 bytes)  
-Buffer cache hash table entries: 4096 (order: 2, 16384 bytes)  
-Page-cache hash table entries: 32768 (order: 5, 131072 bytes)  
-Working around Cyrix MediaGX virtual DMA bugs.  
-CPU: After generic, caps: 00808131 00818131 00000000 00000001  
-CPU: Common caps: 00808131 00818131 00000000 00000001  
-CPU: NSC Geode(TM) Integrated Processor by National Semi stepping 02  
-Checking 'hlt' instruction... OK.  
-POSIX conformance testing by UNIFIX  
-ACPI: Subsystem revision 20040326  
-ACPI: Interpreter disabled.  
-PCI: Using configuration type 1  
-PCI: Probing PCI hardware  
-PCI: Probing PCI hardware (bus 00)  
-PCI: Fixup for MediaGX/Geode Slave Disconnect Boundary (0x41=0x9c)  
-Linux NET4.0 for Linux 2.4  
-Based upon Swansea University Computer Society NET3.039  
-Initializing RT netlink socket  
-Starting kswapd  
-devfs: v1.12d (20021015) Richard Gooch (rgooch@atnf.csiro.au)  
-devfs: boot_options: 0x1  
-Squashfs 2.2-r2 (released 2005/09/08) (C) 2002-2005 Phillip Lougher  
-intelfb: Framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G chipsets  
-intelfb: Version .7.7, written by David Dawes <dawes@tungstengraphics.com>  
-tridentfb: Trident framebuffer .7.5 initializing  
-keyboard: Timeout - AT keyboard not present?(ed)  
-keyboard: Timeout - AT keyboard not present?(f4)  
-pty: 256 Unix98 ptys configured  
-Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled  
-RAMDISK driver initialized: 16 RAM disks of 17080K size 1024 blocksize  
-NET4: Linux TCP/IP 1.0 for NET4.  
-IP Protocols: ICMP, UDP, TCP, IGMP  
-IP: routing cache hash table of 512 buckets, 4Kbytes  
-TCP: Hash tables configured (established 8192 bind 16384)  
-NET4: Unix domain sockets 1./SMP for Linux NET4..  
-RAMDISK: squashfs filesystem found at block  
-RAMDISK: Loading 17078 blocks [1 disk] into ram disk... done.  
-Freeing initrd memory: 17128k freed  
-VFS: Mounted root (squashfs filesystem) readonly.  
-Mounted devfs on /dev  
-Freeing unused kernel memory: 108k freed  
-usb.c: registered new driver usbdevfs  
-usb.c: registered new driver hub  
-usb-uhci.c: $Revision: 1.275 $ time 18:01:58 Feb 21 2006  
-usb-uhci.c: High bandwidth mode enabled  
-usb-uhci.c: v1.275:USB Universal Host Controller Interface driver  
-PCI: Setting latency timer of device 00:13.0 to 64  
-usb-ohci.c: USB OHCI at membase 0xc00cc000, IRQ 6  
-usb-ohci.c: usb-00:13., Compaq Computer Corporation ZFMicro Chipset USB  
-usb.c: new USB bus registered, assigned bus number 1  
-hub.c: USB hub found  
-hub.c: 2 ports detected  
-usb.c: registered new driver hid  
-hid-core.c: v1.8.1 Andreas Gal, Vojtech Pavlik <vojtech@suse.cz>  
-hid-core.c: USB HID support drivers  
-mice: PS/2 mouse device common for all mice  
-hub.c: new USB device 00:13.-1, assigned address 2  
-hub.c: USB hub found  
-hub.c: 4 ports detected  
-hub.c: new USB device 00:13.-1.2, assigned address 3  
-input: USB HID v1.10 Keyboard [ USB Keyboard] on usb1:3.  
-input: USB HID v1.10 Device [ USB Keyboard] on usb1:3.1  
-hub.c: new USB device 00:13.-1.3, assigned address 4  
-input: USB HID v1.10 Mouse [05e3:1205] on usb1:4.  
-natsemi dp8381x driver, version 1.07+LK1..17, Sep 27, 2002  
- originally by Donald Becker <becker@scyld.com>  
- http://www.scyld.com/network/natsemi.html  
- 2.4.x kernel port by Jeff Garzik, Tjeerd Mulder  
-eth0: NatSemi DP8381[56] at 0xc883d000, 00:80:64:1e:48:f3, IRQ 10.  
-eth0: link up.  
-usb-uhci.c: $Revision: 1.275 $ time 18:01:58 Feb 21 2006  
-usb-uhci.c: High bandwidth mode enabled  
-usb-uhci.c: v1.275:USB Universal Host Controller Interface driver  
-inserting floppy driver for 2.4.32-2pxes  
-Floppy drive(s): fd0 is unknown type 7 (usb?), fd1 is 360K PC  
-floppy0: Unable to grab IRQ6 for the floppy driver  
-SCSI subsystem driver Revision: 1.00  
-Initializing USB Mass Storage driver...  
-usb.c: registered new driver usb-storage  
-USB Mass Storage support registered.  
-Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4  
-ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx  
-isapnp: Scanning for PnP cards...  
-isapnp: No Plug & Play device found  
-Soundblaster audio driver Copyright (C) by Hannu Savolainen 1993-1996  
-sb: No ISAPnP cards found, trying standard ones...  
-SB 4.12 detected OK (220)  
-Too much work in interrupt on uart401 (0x330). UART jabbering ??  
-parport0: PC-style at 0x3bc [PCSPP(,...)]  
-parport1: PC-style at 0x378 [PCSPP(,...)]  
-parport2: PC-style at 0x278 [PCSPP(,...)]  
-lp0: using parport0 (polling).  
-lp1: using parport1 (polling).  
-lp2: using parport2 (polling).  
-P192168100251# 
+ P192168100251# dmesg  
+ Linux version 2.4.32-2pxes (diego@thindev) (gcc version 3.3.5 (Debian 1:3.3.5-8)) #3 Tue Feb 21 18:02:22 EST 2006  
+ BIOS-provided physical RAM map:  
+ BIOS-e801: 0000000000000000 - 000000000009f000 (usable)  
+ BIOS-e801: 0000000000100000 - 0000000007d10000 (usable)  
+ 125MB LOWMEM available.  
+ On node 0 totalpages: 32016  
+ zone(): 4096 pages.  
+ zone(1): 27920 pages.  
+ zone(2): 0 pages.  
+ DMI not present.  
+ ACPI: Unable to locate RSDP  
+ Kernel command line: rw root=/dev/nfs ramdisk_size=17080 initrd=pxes-1.1-1PB.squash ro root=/dev/ram  
+ Initializing CPU#  
+ Working around Cyrix MediaGX virtual DMA bugs.  
+ Detected 300.683 MHz processor.  
+ Console: colour VGA+ 80x25  
+ Calibrating delay loop... 599.65 BogoMIPS  
+ Memory: 106808k/128064k available (1351k kernel code, 20868k reserved, 528k data, 108k 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: , 4096 bytes)  
+ Buffer cache hash table entries: 4096 (order: 2, 16384 bytes)  
+ Page-cache hash table entries: 32768 (order: 5, 131072 bytes)  
+ Working around Cyrix MediaGX virtual DMA bugs.  
+ CPU: After generic, caps: 00808131 00818131 00000000 00000001  
+ CPU: Common caps: 00808131 00818131 00000000 00000001  
+ CPU: NSC Geode(TM) Integrated Processor by National Semi stepping 02  
+ Checking 'hlt' instruction... OK.  
+ POSIX conformance testing by UNIFIX  
+ ACPI: Subsystem revision 20040326  
+ ACPI: Interpreter disabled.  
+ PCI: Using configuration type 1  
+ PCI: Probing PCI hardware  
+ PCI: Probing PCI hardware (bus 00)  
+ PCI: Fixup for MediaGX/Geode Slave Disconnect Boundary (0x41=0x9c)  
+ Linux NET4.0 for Linux 2.4  
+ Based upon Swansea University Computer Society NET3.039  
+ Initializing RT netlink socket  
+ Starting kswapd  
+ devfs: v1.12d (20021015) Richard Gooch (rgooch@atnf.csiro.au)  
+ devfs: boot_options: 0x1  
+ Squashfs 2.2-r2 (released 2005/09/08) (C) 2002-2005 Phillip Lougher  
+ intelfb: Framebuffer driver for Intel(R) 830M/845G/852GM/855GM/865G chipsets  
+ intelfb: Version .7.7, written by David Dawes <dawes@tungstengraphics.com>  
+ tridentfb: Trident framebuffer .7.5 initializing  
+ keyboard: Timeout - AT keyboard not present?(ed)  
+ keyboard: Timeout - AT keyboard not present?(f4)  
+ pty: 256 Unix98 ptys configured  
+ Serial driver version 5.05c (2001-07-08) with MANY_PORTS SHARE_IRQ SERIAL_PCI enabled  
+ RAMDISK driver initialized: 16 RAM disks of 17080K size 1024 blocksize  
+ NET4: Linux TCP/IP 1.0 for NET4.  
+ IP Protocols: ICMP, UDP, TCP, IGMP  
+ IP: routing cache hash table of 512 buckets, 4Kbytes  
+ TCP: Hash tables configured (established 8192 bind 16384)  
+ NET4: Unix domain sockets 1./SMP for Linux NET4..  
+ RAMDISK: squashfs filesystem found at block  
+ RAMDISK: Loading 17078 blocks [1 disk] into ram disk... done.  
+ Freeing initrd memory: 17128k freed  
+ VFS: Mounted root (squashfs filesystem) readonly.  
+ Mounted devfs on /dev  
+ Freeing unused kernel memory: 108k freed  
+ usb.c: registered new driver usbdevfs  
+ usb.c: registered new driver hub  
+ usb-uhci.c: $Revision: 1.275 $ time 18:01:58 Feb 21 2006  
+ usb-uhci.c: High bandwidth mode enabled  
+ usb-uhci.c: v1.275:USB Universal Host Controller Interface driver  
+ PCI: Setting latency timer of device 00:13.0 to 64  
+ usb-ohci.c: USB OHCI at membase 0xc00cc000, IRQ 6  
+ usb-ohci.c: usb-00:13., Compaq Computer Corporation ZFMicro Chipset USB  
+ usb.c: new USB bus registered, assigned bus number 1  
+ hub.c: USB hub found  
+ hub.c: 2 ports detected  
+ usb.c: registered new driver hid  
+ hid-core.c: v1.8.1 Andreas Gal, Vojtech Pavlik <vojtech@suse.cz>  
+ hid-core.c: USB HID support drivers  
+ mice: PS/2 mouse device common for all mice  
+ hub.c: new USB device 00:13.-1, assigned address 2  
+ hub.c: USB hub found  
+ hub.c: 4 ports detected  
+ hub.c: new USB device 00:13.-1.2, assigned address 3  
+ input: USB HID v1.10 Keyboard [ USB Keyboard] on usb1:3.  
+ input: USB HID v1.10 Device [ USB Keyboard] on usb1:3.1  
+ hub.c: new USB device 00:13.-1.3, assigned address 4  
+ input: USB HID v1.10 Mouse [05e3:1205] on usb1:4.  
+ natsemi dp8381x driver, version 1.07+LK1..17, Sep 27, 2002  
+ originally by Donald Becker <becker@scyld.com>  
+ http://www.scyld.com/network/natsemi.html  
+ 2.4.x kernel port by Jeff Garzik, Tjeerd Mulder  
+ eth0: NatSemi DP8381[56] at 0xc883d000, 00:80:64:1e:48:f3, IRQ 10.  
+ eth0: link up.  
+ usb-uhci.c: $Revision: 1.275 $ time 18:01:58 Feb 21 2006  
+ usb-uhci.c: High bandwidth mode enabled  
+ usb-uhci.c: v1.275:USB Universal Host Controller Interface driver  
+ inserting floppy driver for 2.4.32-2pxes  
+ Floppy drive(s): fd0 is unknown type 7 (usb?), fd1 is 360K PC  
+ floppy0: Unable to grab IRQ6 for the floppy driver  
+ SCSI subsystem driver Revision: 1.00  
+ Initializing USB Mass Storage driver...  
+ usb.c: registered new driver usb-storage  
+ USB Mass Storage support registered.  
+ Uniform Multi-Platform E-IDE driver Revision: 7.00beta4-2.4  
+ ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx  
+ isapnp: Scanning for PnP cards...  
+ isapnp: No Plug & Play device found  
+ Soundblaster audio driver Copyright (C) by Hannu Savolainen 1993-1996  
+ sb: No ISAPnP cards found, trying standard ones...  
+ SB 4.12 detected OK (220)  
+ Too much work in interrupt on uart401 (0x330). UART jabbering ??  
+ parport0: PC-style at 0x3bc [PCSPP(,...)]  
+ parport1: PC-style at 0x378 [PCSPP(,...)]  
+ parport2: PC-style at 0x278 [PCSPP(,...)]  
+ lp0: using parport0 (polling).  
+ lp1: using parport1 (polling).  
+ lp2: using parport2 (polling).  
+ P192168100251# 
 </verbatim> 
 ---- 
 ! Patching the Firmware with DD 
  
@@ -465,20 +478,55 @@
 and received a ~~22.54k eb-5.4.2-natsemi.zhd . 
  
 I used dd to patch my stock binfile: 
  
- dd if=/tmp/eb-5.4.2-natsemi.zhd of=/tftpboot/evo/U48CPQ163.bin 
+<verbatim>  
+ dd if=/tmp/eb-5.4.2-natsemi.zhd of=/tftpboot/evo/U48CPQ163.bin  
+</verbatim>  
  
 However, the unit hates this new, very small file: 
+  
 <verbatim> 
- May 24 01:43:38 fishy in.tftpd[5271]: RRQ from 192.168..125 filename /tftpboot/evo/U48CPQ163.bin 
+ May 24 01:43:38 fishy in.tftpd[5271]: RRQ from 192.168..125 filename /tftpboot/evo/U48CPQ163.bin 
 </verbatim> 
- repeated about 50 times per second 
+  
+ repeated about 50 times per second 
  
 the old binfile is 48544412b; this new one is 23594b. Is that as much a concern as I think it is? 
  
 Anyway, my 48/64 is still unhappy. I even got desperate and random: 
+  
 <verbatim> 
- Uploading /tftpboot/evo/pxes-1.2-2PB-2.6.nbi [4002](02)  
- Upload Successful [4002](01) 
+ Uploading /tftpboot/evo/pxes-1.2-2PB-2.6.nbi [4002](02)  
+ Upload Successful [4002](01) 
 </verbatim> 
+  
 And nothing more.... 
+  
+... it seems, that you have tried to patch direct into the org.-firmware-file and without offset ...  
+  
+set up a loopdevice as decribed above:  
+  
+<verbatim>  
+ losetup -o 834198 /dev/loop0 firmware.bin  
+ # 834198 is the offset for the 48/64-T20  
+ # other mem-configs use firmware with different offsets  
+ # you can identify the ntfs-partition-header with a hex-editor  
+ # have a look in the 48/64-Firmware and compare the pattern with your  
+ # machine-specific firmware-file  
+</verbatim>  
+  
+and then  
+  
+<verbatim>  
+ dd if=etherboot-image.zhd of=/dev/loop0 bs=512 seek=1  
+</verbatim>  
+  
+now the patch is written to the right position in the mounted  
+firmware-file and you can send this file to your machine  
+  
+!!! patching to the part of the firmware the soft-bios and flash-tools are located  
+!!! can break the machine - be carefull  
+  
+floaty  
+  
+ps.: the mofu's from lycos have killed my account, so my splash-screens are no longer online