5-steps - Netboot a Puppy over the LAN with NO Media (PXE)

How to do things, solutions, recipes, tutorials
Message
Author
ShellyCat
Posts: 39
Joined: Fri 13 May 2011, 05:38
Location: USA

BIOS update over PXE (using 5-step netboot)

#31 Post by ShellyCat »

Hi gcmartin,

The laptop netboots successfully, but the PXE server shows errors (still running in "debug" mode, by the way). In addition, Quickset Puppy does not detect the NIC properly or load a driver.

I'm going to try the BIOS first. I have a laptop that won't boot from anything but PXE or hard disk (BIOS issue?), a battery that won't charge (BIOS upgrade is supposed to fix it), and maybe a BIOS issue with the network card and PXE, too.

Toshiba has a 3rd BIOS update method, a bootable CD ISO! I'll see about serving that over PXE with the 5-step method and let you know how it goes!

Then I will see about the NIC not getting detected; first, see if a HDD install of Puppy can detect the NIC and load the driver, then, try those other Puppies.
Puppy Distro: [url=http://openlab.jp/puppylinux/download/quickset_puppy/]pup-431JPqs3 "Quickset Puppy Linux (Japanese/English bilingual)"[/url]
Previous distros: Slackware (preferred), Fedora Core 6 (in school), Ubutntu (not much)

ShellyCat
Posts: 39
Joined: Fri 13 May 2011, 05:38
Location: USA

Must use floppy disk image?

#32 Post by ShellyCat »

It appears extending this PXE method only involves making one big ISO out of Puppy Linux files...and they would have to be Puppy?

So it's back to the floppy disk image for BIOS update. Well, I'm a little confused as to what files are what. Please excuse me for my ignorance. Here's what unzipped from the Toshiba download:

Code: Select all

2243d190.exe       guiProg         launcher.exe   pl190.rom       tlg00.gif
dot_clear.gif      index.html      launcher.ini   readme.txt      tlg01.bmp
dskProg            isocdrom.txt    pl10190.exe    sm115v190.iso
sm115v190.iso is the CD image. 2243d190.exe is the diskette image (which I have not extracted yet). There are 2 doc files (obviously ending with ".txt"). [EDIT: this part of the doc was wrong!]pl10190.exe is described in README.TXT as "Windows-installed BIOS package"...[/EDIT]

[EDIT: I think this part is correct.]Another spot in the text file says that pl10190.exe is the Windows-based installer. This actually makes sense![/EDIT]

BTW, I am following adapting Terry Burton's procedure for 5-step PXE with Puppy server, because it seems the most straightforward:

http://blog.terryburton.co.uk/2007/08/pxe-boot-freedos-with-memdisk-to-flash.html
Last edited by ShellyCat on Tue 12 Jul 2011, 15:59, edited 1 time in total.
Puppy Distro: [url=http://openlab.jp/puppylinux/download/quickset_puppy/]pup-431JPqs3 "Quickset Puppy Linux (Japanese/English bilingual)"[/url]
Previous distros: Slackware (preferred), Fedora Core 6 (in school), Ubutntu (not much)

ShellyCat
Posts: 39
Joined: Fri 13 May 2011, 05:38
Location: USA

UPDATE TO ABOVE

#33 Post by ShellyCat »

It came to me later while trying to sleep, I think I remember something about ".rom" files being the actual BIOS...so I searched for pl190.rom.

From this mailing-list thread, this seems correct:
http://www.bios-mods.com/forum/printthread.php?tid=1079

I will report back how the BIOS update over PXE goes!
Puppy Distro: [url=http://openlab.jp/puppylinux/download/quickset_puppy/]pup-431JPqs3 "Quickset Puppy Linux (Japanese/English bilingual)"[/url]
Previous distros: Slackware (preferred), Fedora Core 6 (in school), Ubutntu (not much)

ShellyCat
Posts: 39
Joined: Fri 13 May 2011, 05:38
Location: USA

#34 Post by ShellyCat »

Dealing with the floppy disk ".exe" took quite a hassle.
First, "unzip" will not extract it.
Second, "peazip" extracts it to just a single ".ima" image file. (I've never even seen that before.)

You have to use WinZip (or possibly some other Windows-only utility). (I couldn't see any way to do this without a Windows machine...maybe someone knows?) As for the option of the Windows-based installer, I would not be able to use that with "fdboot.img" (I think) because the README says it can only be used with Windows NT 4 and up...not even ME, so surely not DOS?

So I relented and installed WinZip (trial) on my slow-as-a-crawl Dell and extracted the floppy archive there...don't laugh, that took a while.

However, there's a bunch of files, how would I PXE it? I considered trying to make an ".img" image (like "fdboot.img") to see if it would work right, assuming I could even make one. But since I'm fairly certain which 2 files are the BIOS installer and the ROM BIOS, I just loop-mounted "fdboot.img" as per Terry Burton's blog and added the two files to that. (And if I'm wrong, the BIOS won't get flashed, anyway.)

The next step is to configure the pxe "default" (configuration) file to use "MEMDISK" (extracted from SYSLINUX download) as the kernel and "fdboot.img" in the append option.


I'm working early tomorrow and won't be able to perform the BIOS over PXE until late afternoon, but I will report back. If everything works out, I will make a HOW-TO for this specific BIOS.

If anyone has an idea how to make an error-free ".img" image from the extracted files intended for floppy -- without using Windows -- please let me know. (Or, how to extract the files from an ".exe" without using Windows...Peazip just made an ".ima" image, which didn't help.) It would be nice if I could document a complete, Linux-only method!
Puppy Distro: [url=http://openlab.jp/puppylinux/download/quickset_puppy/]pup-431JPqs3 "Quickset Puppy Linux (Japanese/English bilingual)"[/url]
Previous distros: Slackware (preferred), Fedora Core 6 (in school), Ubutntu (not much)

User avatar
Aitch
Posts: 6518
Joined: Wed 04 Apr 2007, 15:57
Location: Chatham, Kent, UK

#35 Post by Aitch »

Hi ShellyCat

Code: Select all

$ dd if=filename of=/dev/fd0 
e.g

unzip bootmec.exe ## that makes a file called bootmec.IMA

Put the image on the floppy with the command:

Code: Select all

dd if=bootmec.IMA of=/dev/fd0
Should be what you need

Aitch :)

gcmartin

Trying to NETBOOT a non-Puppy image/iso

#36 Post by gcmartin »

@ShellyCat
I think I understand what you're trying. And we may have to open a new thread to approach this, for NETBOOT,, differently.

What we're looking at in the last several posts, here, is to use our Puppy to be able to NETBOOT a floppy over the LAN to a PXE PC. It CAN BE DONE! But, in Puppy we will have to craft something a little different.

This thread addresses Puppy(s) method of taking its unique use of its SFS (Linux in a file) approach and serving it for PXE capable PCs use on the LAN.

In this post's specific case, you REQUIRE to upgrade the bios on the PXE PC, first, so that the PC has the correct firmware to support all feature necessary for correct operation of its hardware. And, further, the firmware upgrade exist in a format which is "foreign" to this current NETBOOT implementation in Puppy.

To convert a real CD or a real Floppy to an ISO (CD/DVD) or IMA (Floppy) is reasonably simple in Linux as there are several techniques to do this. Linux easily create the media's contents to images (ISO/IMA).

The next step is to serve the image via a NETBOOT framework to that PC which does NOT have a floppy or a CD/DVD.

This is where we are in understand for helping you. We need a Puppy tool/approach to do just this. ... in Puppy. We must find a way to setup the TFTP feature of the NETBOOT framework such that the PXE PC will boot that image (ISO/IMA). (There are other non-Puppy methods to do this. But, I agree, it would be nice if we could accommodate those methods in our NETBOOT in Puppyland, too.

Hmmm???
Last edited by gcmartin on Wed 13 Jul 2011, 23:21, edited 1 time in total.

User avatar
Aitch
Posts: 6518
Joined: Wed 04 Apr 2007, 15:57
Location: Chatham, Kent, UK

#37 Post by Aitch »

gcmartin

I don't know if emt4unix is any use
Linux package includes EMT4UNIX to build IMG, EMT, MIF or DSK files from diskettes or write diskettes from images files
http://dvalot.free.fr/emtcopy.htm

Perhaps there's a way to serve a different file format that can be loaded as if the bios update image was booted from?

see also IBM bios updater
I'm a linux user and I also have a virtualized install of windows xp. I make a floppy image with DD (dd bs=512 count=2880 if=/dev/zero of=bootfloppy.img) then use my XP install to write the bios update to it's floppy drive then take the floppy image that it's written to and use mkisofs (mkisofs -b bootfloppy.img -o bootcd.iso bootfloppy.img) to convert it to a bootable iso. It takes me about three or four minutes per update.


http://forum.thinkpads.com/viewtopic.ph ... 6e&start=0

Aitch :)

gcmartin

#38 Post by gcmartin »

Thanks @Aitch. Those are good approaches you present. I am going to open a new thread. It should helps us with 2 things which is what we working to solve.
  • An approach to getting a non-Puppy ISO/IMA to boot a PC over PXE. And,
  • to investigate what can be done to embrace a technology (a PET) in Puppy to allow this to occur.
Hope this helps

Here's the thread for discussion of Non-Puppy NETBOOTing

ShellyCat
Posts: 39
Joined: Fri 13 May 2011, 05:38
Location: USA

SUCCESFUL BIOS UPGRADE OVER PXE!

#39 Post by ShellyCat »

I worked really late, so I didn't start this until well after suppertime.

I was able to modify Terry Burton's method (with a few details from kharn's, as well) to successfully update (via PXE) the BIOS of my Toshiba Satellite M115-S3094. (Whether the upgrade solved my problems remains to be seen.)

[EDIT]I created this HOWTO so you can learn to update your computer's BIOS using PXE:
http://www.murga-linux.com/puppy/viewtopic.php?p=543911#543911

I will add another post later, with slower explanation for newbies (...hey, wait, I'm a newbie...) as well as what choices I made and problems I encountered while doing trying this for the first time.[/EDIT]

After that, I'll see if the BIOS upgrade actually fixed anything and report back!
Last edited by ShellyCat on Thu 14 Jul 2011, 08:47, edited 3 times in total.
Puppy Distro: [url=http://openlab.jp/puppylinux/download/quickset_puppy/]pup-431JPqs3 "Quickset Puppy Linux (Japanese/English bilingual)"[/url]
Previous distros: Slackware (preferred), Fedora Core 6 (in school), Ubutntu (not much)

ShellyCat
Posts: 39
Joined: Fri 13 May 2011, 05:38
Location: USA

Re: Trying to NETBOOT a non-Puppy image/iso

#40 Post by ShellyCat »

gcmartin wrote:@ShellyCat...I agree, it would be nice if we could accommodate those methods in our NETBOOT in Puppyland, too.
Yes, I was using your 5-step-PXE (netboot-server) method with Terry Burton's BIOS-upgrade-over-PXE-method. It works!

And probably the only reason it took so long is I am new to PXE, and new to figuring out what all the files used in various BIOS upgrade methods are...so I didn't know exactly what I should be trying to do. A little trial-and-error was involved, is all.

Also, thank you folks for your suggestions regarding images and so forth.
Puppy Distro: [url=http://openlab.jp/puppylinux/download/quickset_puppy/]pup-431JPqs3 "Quickset Puppy Linux (Japanese/English bilingual)"[/url]
Previous distros: Slackware (preferred), Fedora Core 6 (in school), Ubutntu (not much)

ShellyCat
Posts: 39
Joined: Fri 13 May 2011, 05:38
Location: USA

#41 Post by ShellyCat »

gcmartin wrote:Thanks @Aitch. Those are good approaches you present. I am going to open a new thread. It should helps us with 2 things which is what we working to solve.
  • An approach to getting a non-Puppy ISO/IMA to boot a PC over PXE. And,
  • to investigate what can be done to embrace a technology (a PET) in Puppy to allow this to occur.
Hope this helps

Here's the thread for discussion of Non-Puppy NETBOOTing
Wonderful ideas! Many people would like .PET that would allow them to just put a non-Puppy ISO in a directory, enable it to be served, and violla!

For the record, I was able to do flash the BIOS over PXE with netboot-server, using FreeDOS (a non-Puppy image), so apparently serving a non-Puppy image with netboot-server is trivial. (I also created an ISO of the floppy files and serving that with PXE. While the PXE part worked, the result of doing so was nothing to write home about, but the netbooting part worked fine!)

But for those who want a script to configure things for them, "mknetboot.sh" configures tftp to serve up a Puppy Linux image using a Linux kernel, while serving up a DOS image requires the memdisk" kernel (although to configure this would be very trivial). That begs the question, can you serve Linux with memdisk? I will try to use memdisk to serve a Puppy ISO and see if a Linux kernel is actually required. (Hey, you never know!)

Still, I don't see why "mknetboot.sh" couldn't be configured to optionally create a symlink to "fdboot.img" and configure "pxelinux.cfg/default" accordingly, or even give the user the option of adding 1 or more files to "fdboot.img" (such as those for BIOS update). It seems to me the complicated part would be offering more than one choice to a client at the same time (because the current Multi-boot Pup approach packs all the choices into one big ISO).

However, after I give explanations/solutions for some of the issues I encountered trying to update my BIOS and using FreeDOS and bootable floppy images over PXE, I will test some more methods with FreeDOS (and BIOS, too), especially ways that include menu choices, as well as trying that Multi-Puppy boot. Together they might yield some useful hints!
Puppy Distro: [url=http://openlab.jp/puppylinux/download/quickset_puppy/]pup-431JPqs3 "Quickset Puppy Linux (Japanese/English bilingual)"[/url]
Previous distros: Slackware (preferred), Fedora Core 6 (in school), Ubutntu (not much)

gcmartin

Diskette effort

#42 Post by gcmartin »

Great!

This is an important contribution.

Now, that you've accomplished this, you really should try MultiPUP, then come back here to the document. Follow the instructions there for "Netbooting a MultiPUP ISO".

For MultiPUP, do
  • Download current version,here
  • You can read the forum here
For Netbooting MultiPUP, read here.

Your approaches you've developed for non-Puppy Netboot (like diskette here), post on the new thread here, so others can find this important work of yours.

Hope this helps
P.S. @ShellyCat, Check your PMs

User avatar
Aitch
Posts: 6518
Joined: Wed 04 Apr 2007, 15:57
Location: Chatham, Kent, UK

#43 Post by Aitch »

Great stuff

ShellyCat/gcmartin

It's really good to see this getting looked at and understood/documented

thanks :D

Aitch :)

ShellyCat
Posts: 39
Joined: Fri 13 May 2011, 05:38
Location: USA

Results of BIOS upgrade

#44 Post by ShellyCat »

I'm sad to report that while updating my BIOS over PXE worked, the BIOS update did not fix the problems with my laptop. It still won't boot from anything but the hard disk or PXE.

I have it running (netbooted) Puppy now. I unplugged the AC power and it's running "dd if=/dev/zero of=/dev/null" so I can see if the battery fully charged under the new BIOS.

The laptop is still usable, and I'd like to try to PXE WinXP eventually (for an older program that cannot run in WINE). The nice thing, if that works, is I will not waste hard disk space on a dual-boot...I can have Windows installed and run Puppy most of the time!

My main concern is the ability to back up large amounts of data. At least I can save money by buying an external USB hard drive, instead of buying a new laptop!

I benefitted by learning about PXE. I will help in the other thread (started by gcmartin) on finding ways to allow Puppy to serve non-Puppy ISOs! In the meantime, while I'm seeing how long it take the laptop battery to become discharged, I'll finish documenting the various things I tried while updating the BIOS over PXE in the new thread (see my last post).
Puppy Distro: [url=http://openlab.jp/puppylinux/download/quickset_puppy/]pup-431JPqs3 "Quickset Puppy Linux (Japanese/English bilingual)"[/url]
Previous distros: Slackware (preferred), Fedora Core 6 (in school), Ubutntu (not much)

gcmartin

Laptop NETBOOTing problem

#45 Post by gcmartin »

ShellyCat,

Since the Laptop was able to boot and run the BIOS update, I'm a little suspect on what's going on.

You had mentioned earlier, you were using a Puppy distro; namely QuickSET (which was built by Shinobar last fall. I tested this and did NOT have a Netboot problem.

There are 2 things I would like to have you try:
  1. Try each of these Puppy ISOs, say Puppy 4.3.1 AND Puppy 5.2.5. One of these should work while I believe the other will fail. Let us know if both fail.
  2. Windows has a NETBOOT program which does what the Puppy Netboot does. And I would like you to try it if both 4.3.1 and 5.2.5 fail.
If you have a running XP/2K/Vista/Windows7 PC, try this for me:
  1. Stop Puppy's NETBOOT Server
  2. There is a Windows NETBOOT program "TFTPD32". Download and install it.
  3. Copy your Puppy TFTPBOOT contents to the TFTP folder that TFTPD32 installed on Windows.
  4. Start TFTPD32
Now, Go to your Laptop and restart it to boot from the LAN (PXE). Expect that it will find the Windows Netboot Server and should start booting.

Let me know if that works or if it gives the same error that Puppy Netbooting causes.

Thanks in advance.

jamesbond
Posts: 3433
Joined: Mon 26 Feb 2007, 05:02
Location: The Blue Marble

#46 Post by jamesbond »

I've been away for a while, so I'd just drop by for while just to address a few things.

1. There will be no dhcp conflict between netboot-server's DHCP server and your router's DHCP server. netboot-server uses code originally written by phLe http://www.murga-linux.com/puppy/viewtopic.php?t=62308 - the netboot DHCP only responds to PXE requests, not standard DHCP requests

2. The NIC is only used during PXE loading, and then released. When puppy is fully loaded, Puppy's drivers will take over the NIC. Once you see puppy's desktop, you need to configure your network as usual - the settings you get during PXE booting is temporary.

3. PXE support is done in BIOS - while web browsing in puppy is supported by Puppy's drivers. You need to check and ensure that your NIC is supported by Quickset puppy. (Puppy 4.31 is rather old, many newer hardware / NIC won't work with it).

cheers!
Fatdog64 forum links: [url=http://murga-linux.com/puppy/viewtopic.php?t=117546]Latest version[/url] | [url=https://cutt.ly/ke8sn5H]Contributed packages[/url] | [url=https://cutt.ly/se8scrb]ISO builder[/url]

cduran1983
Posts: 1
Joined: Wed 03 Aug 2011, 00:02

hey this script worked great for me THANKS!

#47 Post by cduran1983 »

Everything running fine... :D
I have all working DHCP server, TFTP server and the PXE server.

Just need it an ISO to "pxeboot" conversion!!

thanks!! Works great

I'm running Fedora 15 - 2.6.38.8-32.fc15.x86_64

THANKS...
#!/bin/sh
#jamesbond 2011
# convert a puppy iso into netboot-compatible vmlinuz and humongous initrd.gz
# Edited by Master_wrong so can save to other media not just temp

Xdialog --title "mknetboot" --msgbox "This script will create a set of files suitable for puppy netbooting.
The input is a puppy ISO file. The output will be located in /tmp/netboot - one vmlinuz and one huge initrd.gz.
If /root/tftpboot/pxelinux.cfg exist, the output files will be symlinked to this directory as well,
so you can use netboot-server to server them straight away." 0 0

ISO=$(Xdialog --title "Choose puppy ISO" -fselect "" 0 0 2>&1 | tail -n 1)
tmp="mnt/sdc2"
tmp2="mnt/sdc2"
if [ -n "$ISO" ]; then
rm -rf /$tmp2/netboot /$tmp/netboot_iso
mkdir -p /$tmp2/netboot/x /$tmp/netboot_iso
if mount -o loop "$ISO" /$tmp/netboot_iso; then
if [ -f /$tmp/netboot_iso/vmlinuz -a -f /$tmp/netboot_iso/initrd.gz ]; then
Xdialog --title "mknetboot" --no-buttons --infobox "This will take a while. Please wait ..." 0 0 60000 &
PID=$!
cp /$tmp/netboot_iso/vmlinuz /$tmp2/netboot
cd /$tmp2/netboot/x
zcat /$tmp/netboot_iso/initrd.gz | cpio -i
cp /$tmp/netboot_iso/*.sfs .
find . | cpio -o -H newc | gzip -9 > ../initrd.gz
cd /$tmp2/netboot
rm -rf x
if [ -d /root/tftpboot/pxelinux.cfg ]; then
rm /root/tftpboot/pxelinux.cfg/vmlinuz /root/tftpboot/pxelinux.cfg/initrd.gz
ln -s /$tmp2/netboot/vmlinuz /root/tftpboot/pxelinux.cfg
ln -s /$tmp2/netboot/initrd.gz /root/tftpboot/pxelinux.cfg
fi
kill $PID
Xdialog --title "mknetboot" --infobox "Done. Output is in /$tmp/netboot." 0 0 10000
else
Xdialog --title "mknetboot" --msgbox "Invalid ISO - cannot find vmlinuz and initrd.gz" 0 0
rm -rf /$tmp2/netboot
fi
umount /$tmp/netboot_iso
rm -rf /$tmp/netboot_iso
else
Xdialog --title "mknetboot" --msgbox "Failed to mount $ISO" 0 0
fi
fi

gcmartin

Re: hey this script worked great for me THANKS!

#48 Post by gcmartin »

cduran1983 wrote:Everything running fine...
Great!

Is that script in the code window an "update" you are offering? If so, would you add a comment under "Master_Wrong" in the script you post?

Thanks in advance.

P.S. @cduran1983, Check your PMs

gcmartin

32bit PUPs are Missing DNSMASQ PET for Netbooting (PXE)

#49 Post by gcmartin »

Edited:
This problem has been fixed. You can use the document to access the needed PETs; same as before.

Problem
I have just been informed that the 32bit version of DNSMASQ has disappeared and cannot be access as described in the document.

FATDOG and LightHOUSE64 are able to obtain the correct version from their PPM, but PUP528 (and probably other 32bit PUPs) does NOT offer the correct version via their PPMs.
Last edited by gcmartin on Wed 31 Aug 2011, 16:57, edited 2 times in total.


Post Reply