Puppy won't load over PXE network (Solved)

Under development: PCMCIA, wireless, etc.
Post Reply
Message
Author
User avatar
netjess
Posts: 29
Joined: Fri 17 Feb 2006, 14:24
Location: Oklahoma, USA
Contact:

Puppy won't load over PXE network (Solved)

#1 Post by netjess »

I have a working PXE network. I am using PXE Linux http://syslinux.zytor.com/pxe.php and when I start to load puppy PXE Linux calls VMLINUZ and INITRD.GZ and then I get an error, because it can not find the pup_save.2fs.

Here is my default PXELinux config file:
default localboot
display display.msg
prompt 1
TIMEOUT 300
LABEL 1
LOCALBOOT 0
LABEL 2
KERNEL \puppy\vmlinuz
APPEND keeppxe initrd=\puppy\INITRD.GZ

Does anyone know how I can pass the remaining fs files to the kernel as it loads or would I have to recompile VMLINUZ or INITRD.GZ?
I am not sure how I could do the later. I am not a programer and I am just getting started on loading OS other than DOS floppy images for Ghost over the network.
I understand that loading Puppy is a little more complicated than that. The biggest hurdle is getting every thing it needs and loading the network stuff so that it can attach to a network share and get the rest of what is needed.
I tried the LANPuppy client but couldn't get the etherboot img to load. the PC would just go blank and restart.

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#2 Post by BarryK »

We have been discussing this on the Developer News page over the last week. The next Puppy will solve your problem -- 2.16pre-alpha soon. Look at the Developer News and look for the post on "humongous initrd.gz".

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#3 Post by sunburnt »

Hi netjess; You say the etherboot image just rebooted?
Was there any screen activity at all?
How did you make the boot floppy disk?
It worked on all of the many PCs I've tried it on.

But then to your Qs...
On a diskless PC, to have a user's HOME space, a network share is needed,
so the rest of what's required may as well be on network shares also.
LanPuppy does all of this with Samba shares, & so is compatable with Win.
NFS is also used for network shares, but it's not Win .compatable.
Unless your working on a keosk type setup you'll need storage for the client PCs.
Unless they have a HD or flash then network shares are your only choice.

The .sfs file can also be in the initrd.gz file, but the client needs lots of memory.

Here's the web page for alpha releases of PupServer & LanPuppy:
http://www.eejagger.com/LanPuppy/

If you have more Qs, just ask...

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#4 Post by BarryK »

Yes, sunburnt has done lots of work on this. My "solution" is for a PC with plenty of RAM -- a basic Puppy would load and run happily in 256M.

User avatar
netjess
Posts: 29
Joined: Fri 17 Feb 2006, 14:24
Location: Oklahoma, USA
Contact:

PXE

#5 Post by netjess »

Sunburnt,

> Hi netjess; You say the etherboot image just rebooted?
>Was there any screen activity at all?
>How did you make the boot floppy disk?

I did not use an actual floppy, I used the floppy image. with PXELinux (syslinux for PXE) you can use a bootable image like BART's Bootdisk. http://www.nu2.nu/bootdisk/network/

I with PXELinux that shouldn't be necessary you can call vmlinuz and pass options to the kernel. just like Puppy does in the ISO with ISOLINUX.

BUT..... once it starts loading it would need to load network and be able to reach back and pull the remaining files from the network to finish loading.
This could continue to be done using TFTP just like it started instead of SMB and would have a smaller "footprint" it would also make loading different configurations and such for multiple machines easier (in my opinion). That would require some kind of an editable configuration file so you didn't have to recompile for each PC. Unless I am missing something the only file I can directly edit is the cfg file passed by the bootloader.
I guess I could load puppy directly from CD and configure it and then copy the SFS files to the network so that when that machine boots it gets the configs it needs to be unique.
I tried puppy-barebones-1.0.4 and it loads further than 2.14 but it still doesn't get the usr_cram.fs and goffy.16 (what ever that is?) so I don't get xWindows I do how ever get network connectivity I just don't know how to make it auto configure. I had to manually start dhcpcd. If we had that much loaded and tftp (didn't find tftp in the system) we could reach back and continue loading what ever we want.

I like the work you have done so far but it seems to only work in it's own special configuration. I am just trying to use existing network. All thats needed is TFTP server and DHCP that can be configured using ISC dhcp (2.0 or later) dhcpd.conf syntax:

allow booting;
allow bootp;
option <dhcp option>
option <dhcp option>
option <dhcp option>
next-server <TFTP_server_address>;
filename "/tftpboot/pxelinux.0";

For a home or other small network you could start off with a M$ machine and tftpd32 and just specify 'pxelinux.0' as your boot file in the dhcp settings.
I load DOS this way all the time. and I can mount SMB shares and pull whatever other files I need/want. Can't let Puppy be outdone by the DOSosaur can we? :twisted:

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#6 Post by sunburnt »

The etherboot image IS for a client PC boot floppy disk, incase the client PC
has no ability to PXEboot from it's NIC (Network Interface Card).

I paid $3 each for 10 used 3com NICs on eBay that PXEboot ( 3c905c-tx-m ).

Tftp ONLY moves the kernel & image files to the cilent PC, & NOTHING ELSE.
With further work you could get the sfs file to tftp to the client PC.

But then as I said... What will you use for HOME storage?
Typically this is a network share, but local storage could be used.

If it's a keosk setup a small sfs file put in the image file is all that's needed.
And a keosk would need no storage at all, NOT like a normal PC setup.

woodeye18
Posts: 16
Joined: Sat 01 Oct 2005, 15:59
Location: Southern California
Contact:

PXE booting Puppy from my router

#7 Post by woodeye18 »

I finally got my new WRTSL54GS Linksys router setup with open source (http://www.thibor.co.uk/) firmware. This router has a USB storage link that hooks up to external hard drives. I have been wanting to load Lanpuppy on the router and SAMBA mount the storage device. It uses DNSMASQ and I have been hoping to experiment with getting a PXE booting router. If you guys have any ideas of stumbling blocks I might run into, please share them with me.

User avatar
sunburnt
Posts: 5090
Joined: Wed 08 Jun 2005, 23:11
Location: Arizona, U.S.A.

#8 Post by sunburnt »

Hi woodeye18; Routers do dhcpd (dhcp server), but I haven't seen any that do boot services.

This is the stumbling block that stopped me, the router firmware needs modding.
The dhcpd.conf file needs booting enabled, & a tftpboot dir. for the client OS.
If a router does Samba shares (I don't know of any), then it may work.
Alot of NAS & other network storage devices are nothing more than SANS.

I've looked at NAS devices & some are true "Linux Samba servers",
so the boot services just need to be added, some routers may be like this.
If you can mount & access a share with Linneighborhood, then it might work.

I'd like to know how your effort goes, please let me know!
A small appliance type of device for a share & boot server would be trick!
If you need more help just say so! PM me... Terry

raffy
Posts: 4798
Joined: Wed 25 May 2005, 12:20
Location: Manila

PXE booting with the humongous 2.16 initrd.gz

#9 Post by raffy »

Allow me to post here how I managed to do PXE booting of an 800-Mhz, 256 MB RAM thin client from a Pentium II 350 Mhz 128 MB RAM Windows 98 machine. The version is Puppy 2.16 with humongous initrd.gz provided by Barry. The server used is TFTP for Windows 98.

I used a tutorial by Mark Hinge from here. If you use the included zip file, there is no need to download any of the files he discussed.

The rest of the setup of the PXE directory you can view in the image below.

When Puppy 2.16 ran, it was using only 130 MB RAM.
Attachments
pxe.png
TFTP server setup in C:\PXE of Win98
(64.66 KiB) Downloaded 12952 times
Puppy user since Oct 2004. Want FreeOffice? [url=http://puppylinux.info/topic/freeoffice-2012-sfs]Get the sfs (English only)[/url].

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#10 Post by BarryK »

Raffy, that's great -- does SeaMonkey run in that machine? -- perhaps even if it does, you might quickly run into trouble opening multiple windows or tabs. Should I build another humongous initrd with Opera instead?

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#11 Post by BarryK »

Raffy, how does it go with creating a pup_save file? If it's a thin station without hd, you should be able to plug in a usb flash drive and create a pup_save on that -- and it should get recognised at bootup.

raffy
Posts: 4798
Joined: Wed 25 May 2005, 12:20
Location: Manila

Usage no problem

#12 Post by raffy »

No problem with usage, Barry, I can run mp4 while using other programs such as Abiword, Gnumeric and Seamonkey (in that 800-Mhz, 256-MB RAM machine; as the video is shared, the net available RAM is 245 MB). With Puppy running, available storage is 115 MB. So I estimated 245 - 115 = 130 MB, the RAM used by Puppy (I guess it must be 128 MB, given the usual 1024 bytes/Kb confusion).

There's a bootup error that I recorded only now (last night I saw no errors in the logs so I disregarded what I saw - see the logs attached).

The error ran like this:

Code: Select all

DEV1PUP=
PUPSAVE=
ZDRV=
mount: cannot read /etc/fstab
Then it pauses for 60 seconds.

Despite this, I can mount/unmount USB media afterwards.

On shutdown, it does not ask to save anything.

OK, I run another test, now with storage device (USB flash) available at boot time. It recognized the flash drive just after that error. But at shutdown, it's the same - no save attempt was done by the script.

(Off to the office for now - will be back in the afternoon.)
Attachments
pxe-boot-raffy.tar.gz
Boot information
(4.55 KiB) Downloaded 1831 times
Puppy user since Oct 2004. Want FreeOffice? [url=http://puppylinux.info/topic/freeoffice-2012-sfs]Get the sfs (English only)[/url].

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#13 Post by BarryK »

Raffy, thanks for the feedback, but the files you posted are not really what I need to see. Can you post
/initrd/tmp/bootinit.log
/etc/rc.d/PUPSTATE

I can see where it goes wrong, but I don't have quite enough info to fix it properly.

Also, can you please post the output of
# df
# mount

raffy
Posts: 4798
Joined: Wed 25 May 2005, 12:20
Location: Manila

here goes

#14 Post by raffy »

bootinit.log

Code: Select all

USB-Storage: Loading usb-storage module
USB-Storage: Detecting connected device(s)...
USB-Storage: Device scan complete, found 0 devices
PDEV1=
FSTYPE=
PUPSFS=rootfs,rootfs,/pup_216.sfs
DEV1PUP=
PUPSAVE=
ZDRV=
mount: cannot read /etc/fstab: No such file or directory
umount: cannot umount /mnt/dev_ro1: Invalid argument
PUPSTATE

Code: Select all

PUPMODE=5
PDEV1=''
DEV1FS=''
PUPSFS='rootfs,rootfs,/pup_216.sfs'
PUPSAVE=''
PMEDIA='int'
SATADRIVES=''
#these directories are unionfs layers in /initrd...
SAVE_LAYER=''
PUP_LAYER='/pup_ro2'
df and mount

Code: Select all

sh-3.00# df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/root                90975     90415       560  99% /initrd
/dev/loop0               71808     71808         0 100% /initrd/pup_ro2
tmpfs                   119880      2568    117312   2% /initrd/pup_rw
unionfs                 191688     74376    117312  39% /
sh-3.00# mount
/dev/root on /initrd type ext2 (rw)
/dev/loop0 on /initrd/pup_ro2 type squashfs (ro,noatime)
tmpfs on /initrd/pup_rw type tmpfs (rw)
unionfs on / type unionfs (rw,dirs=/initrd/pup_rw=rw:/initrd/pup_ro2=ro,debug=4294967295,delete=whiteout)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw)
none on /sys type sysfs (rw)
none on /proc/bus/usb type usbfs (rw)

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#15 Post by BarryK »

Raffy, Steven,
Okay, try the humongous '2.16rc2':
ftp://ibiblio.org/pub/linux/distributio ... linux/test

Hopefully, you should not get the error message at bootup, then at shutdown it should ask if you want to save the session. Then more hopefully, it will load the pup_save file at next bootup. You could use a usb flash drive for the pup_save file.

raffy
Posts: 4798
Joined: Wed 25 May 2005, 12:20
Location: Manila

Success!

#16 Post by raffy »

Success! The test machine booted without problems and saved to USB flash on shutdown. On reboot, it was initially unable to use the pup_save settings (a failed read from the same saved-to USB device), so I used another USB device. The values below combine the outputs from the two trials (the bold values show changed values in the second successful attempt).

Here again are the files:

bootinit.log
USB-Storage: Loading usb-storage module
USB-Storage: Detecting connected device(s)... 1 2 3 4 5
USB-Storage: Device scan complete, found 0 1 devices
PDEV1=sda1
FSTYPE=vfat
PUPSFS=ext2,root,/pup_216.sfs
DEV1PUP=
PUPSAVE=vfat,sda1,/pup_save.2fs
ZDRV=
umount: cannot umount /mnt/dev_ro1: Invalid argument (this line is not present in the successful boot)
e2fsck 1.38 (30-Jun-2005)
ext2fs_check_if_mount: No such file or directory while determining whether /dev/loop1 is mounted.

Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/loop1: 186/16384 files (0.0% non-contiguous), 4284/65536 blocks
ls: *_216.sfs: No such file or directory
Cleaning out /tmp...


PUPSTATE
PUPMODE=5 13
PDEV1='' 'sda1'
DEV1FS='' 'vfat'
PUPSFS='ext2,root,/pup_216.sfs'
PUPSAVE='' 'vfat,sda1,/pup_save.2fs'
PMEDIA='xxx' 'usbflash'
SATADRIVES=''
#these directories are unionfs layers in /initrd...
SAVE_LAYER='' '/pup_ro1'
PUP_LAYER='/pup_ro2'
#The partition that has the vfat,sda1,/pup_save.2fs file is mounted here...
PUP_HOME='/mnt/dev_save'
#(in /initrd) ...note, /mnt/home is a link to it.

df and mount

sh-3.00# df
Filesystem 1k-blocks Used Available Use% Mounted on
/dev/root 90975 90415 560 99% /initrd
/dev/loop0 71808 71808 0 100% /initrd/pup_ro2
tmpfs 119880 4472 115408 4% /initrd/pup_rw
unionfs 191688 76280 115408 40% /
(trial 2 has same values up to /dev/loop0)
/dev/sda1 255716 173976 81740 68% /initrd/mnt/dev_save
/dev/loop1 63461 2210 61251 3% /initrd/pup_ro1
tmpfs 119880 3108 116772 3% /initrd/pup_rw
unionfs 255148 77128 178020 30% /


sh-3.00# mount
/dev/root on /initrd type ext2 (rw)
/dev/loop0 on /initrd/pup_ro2 type squashfs (ro,noatime)
tmpfs on /initrd/pup_rw type tmpfs (rw)
unionfs on / type unionfs (rw,dirs=/initrd/pup_rw=rw:/initrd/pup_ro2=ro,debug=42 94967295,delete=whiteout)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw)
none on /sys type sysfs (rw)
none on /proc/bus/usb type usbfs (rw)
/dev/sda1 on /mnt/sda1 type vfat (rw,fmask=0022,dmask=0022,codepage=cp437,iochar set=iso8859-1,shortname=mixed)

sh-3.00# mount
/dev/root on /initrd type ext2 (rw)
/dev/loop0 on /initrd/pup_ro2 type squashfs (ro,noatime)
/dev/sda1 on /initrd/mnt/dev_save type vfat (rw,noatime,fmask=0022,dmask=0022,co depage=cp437,iocharset=iso8859-1)
/dev/loop1 on /initrd/pup_ro1 type ext2 (rw,noatime)
tmpfs on /initrd/pup_rw type tmpfs (rw)
unionfs on / type unionfs (rw,dirs=/initrd/pup_rw=rw:/initrd/pup_ro1=ro:/initrd/ pup_ro2=ro,debug=4294967295,delete=whiteout)
none on /proc type proc (rw)
none on /dev/pts type devpts (rw)
none on /sys type sysfs (rw)
none on /proc/bus/usb type usbfs (rw)


Cheers!

User avatar
BarryK
Puppy Master
Posts: 9392
Joined: Mon 09 May 2005, 09:23
Location: Perth, Western Australia
Contact:

#17 Post by BarryK »

Great! before I officially release it though, as "humongous initrd 2.16final", I will examine this:
PDEV1='' 'sda1'
DEV1FS='' 'vfat'
...although it works, sda1 is not really the boot partition and I don't like PDEV1 being set to sda1. It doesn't seem to do any harm, but I'll examine the logic in the init script.

Note, I don't really know what to set PDEV1 to, to accurately reflect that it's a PXE boot. On the first boot, before creating the pup_save file, it comes up as set to nothing, which seems like it might be appropriate? Ditto, DEV1FS initially comes up set to nothing.

steven
Posts: 1
Joined: Tue 22 May 2007, 03:25

#18 Post by steven »

BarryK wrote:Raffy, Steven,
Okay, try the humongous '2.16rc2':
ftp://ibiblio.org/pub/linux/distributio ... linux/test

Hopefully, you should not get the error message at bootup, then at shutdown it should ask if you want to save the session. Then more hopefully, it will load the pup_save file at next bootup. You could use a usb flash drive for the pup_save file.
Barry, yes, now it works here. No more error messages and never have to wait for 60 secs. Thank you very much.

raffy
Posts: 4798
Joined: Wed 25 May 2005, 12:20
Location: Manila

Welcome

#19 Post by raffy »

Welcome to the forum, Steven!

Thanks to your support, this feature is now added to Puppy 2.16.

(For the reader's info, Steven initiated the creation of "humongous initrd" for Puppy Linux, please see this thread in Barry's developer blog.)
Puppy user since Oct 2004. Want FreeOffice? [url=http://puppylinux.info/topic/freeoffice-2012-sfs]Get the sfs (English only)[/url].

Post Reply