Page 2 of 3

Posted: Fri 19 Apr 2013, 22:59
by rcrsn51
What wiejetzt has failed to mention in all of this discussion is where he is getting syslinux 5.01 and why he is using it to boot Puppy. As Karl stated above, all recent woof-built Puppies have syslinux 3.73, which works fine.

As a test, I compiled syslinux 5.01 in Precise. Sure enough, it had exactly the problems that wiejetzt described. The same was true with 5.00. However, 4.06 worked.

So it appears that syslinux 5.x introduced something that is incompatible with how Puppy builds its kernel/initrd.gz.

Posted: Sat 20 Apr 2013, 00:40
by Karl Godt
I can only suspect that extlinux v5 is passing the boot parameters corrupted furhther .

Code: Select all

echo "pmedia='$pmedia' PMEDIA='$PMEDIA' psubdir='$psubdir' PSUBDIR='$PSUBDIR' pdev1='$pdev1' PDEV1='$PDEV1'"
In the initrd shell would probably reveal things .

Posted: Sat 20 Apr 2013, 01:01
by Karl Godt
sh-3.00# ls -1 /root/my-documents/syslinux-3.86/extlinux/

ext2_fs.h
extlinux
main.c
Makefile

sh-3.00# ls -1 /root/my-documents/syslinux-4.06/extlinux/

btrfs.h
extlinux
fat.h
main.c
Makefile
mountinfo.c
mountinfo.h
ntfs.h

sh-3.00# ls -1 /root/my-documents/syslinux-5.01/extlinux/

btrfs.h
extlinux
fat.h
main.c
Makefile
misc.h
mountinfo.c
mountinfo.h
ntfs.h
xfs_fs.h
xfs.h
xfs_sb.h
xfs_types.h

Posted: Sat 20 Apr 2013, 09:34
by wiejetzt
rcrsn51 wrote:What wiejetzt has failed to mention in all of this discussion is where he is getting syslinux 5.01 and why he is using it to boot Puppy. As Karl stated above, all recent woof-built Puppies have syslinux 3.73, which works fine.

As a test, I compiled syslinux 5.01 in Precise. Sure enough, it had exactly the problems that wiejetzt described. The same was true with 5.00. However, 4.06 worked.

So it appears that syslinux 5.x introduced something that is incompatible with how Puppy builds its kernel/initrd.gz.
Got syslinux 5.01 from syslinux.org, included are binaries, enabling to install immediately.
That syslinux 5.x introduced something is one conclusion, another conclusion is that other distros have no problem with syslinux 5.01, only puppy 5.5.

I am sorry that caused so much trouble. I thought it is helpful to point out bugs. Obviously I have to be VERY careful, to report something that might be a bug, but may be not. Delete my account.

Posted: Sat 20 Apr 2013, 13:27
by 01micko
wiejetzt wrote:I am sorry that caused so much trouble. I thought it is helpful to point out bugs. Obviously I have to be VERY careful, to report something that might be a bug, but may be not. Delete my account.
I haven't got lot of time lately but this thread is on my radar.

From the start I understood that your problem was with syslinux >= 5.0x and any recent puppy linux.

It is a bug and should be dealt with. Don't pack up your bat and ball and go home just yet!

Posted: Sat 20 Apr 2013, 14:08
by Iguleder
Make sure you have ldlinux.c32 on the partition - this file is required by 5.01, but not by 4.06.

Posted: Sat 20 Apr 2013, 14:31
by Karl Godt
make && make clean && make

produces less warnings than just

make

But I don't think that this matters, since he used the pre-compiled ones .

not having

make distclean

unexpectable for kernel.org

Posted: Sat 20 Apr 2013, 14:37
by Karl Godt
xfs seems to be missing in current partview btw .
horror_frontend_d still greps for it .

Posted: Sat 20 Apr 2013, 14:56
by Karl Godt
And question is : Is extlinux needed in some rare cases ?

When I read the mbr.S :

/* Search for active partitions */

too_many_active:
call error
.ascii "Multiple active partitions.\r\n"


Never had to set anything active for grub !

Posted: Sat 20 Apr 2013, 15:05
by Karl Godt
But a nice logo syslinux have now since v4 :

Posted: Sat 20 Apr 2013, 15:26
by Karl Godt
Iguleder wrote:Make sure you have ldlinux.c32 on the partition - this file is required by 5.01, but not by 4.06.
sh-3.00# ldd /mnt/sda7/SYSLINUX/syslinux-5.01/com32/elflink/ldlinux/ldlinux.c32
statically linked

So it needs to be copied onto the partition or if subfolder in ie /boot ?

Posted: Sat 20 Apr 2013, 16:43
by Iguleder
In the partition root. Also, make sure you use the right MBR (mbr.bin) and have syslinux.cfg.

Posted: Sun 21 Apr 2013, 10:32
by Karl Godt
extlinux.txt wrote:EXTLINUX is a new Syslinux derivative, which boots from a Linux
ext2/ext3 filesystem.
It works the same way as SYSLINUX (see doc/syslinux.txt), with a few
slight modifications.

1. The installer is run on a *mounted* filesystem. Run the extlinux
installer on the directory in which you want extlinux installed:

extlinux --install /boot

Specify --install (-i) to install for the first time, or
--update (-U) to upgrade a previous installation.
NOTE: this doesn't have to be the root directory of a filesystem.
If /boot is a filesystem, you can do:

mkdir -p /boot/extlinux
extlinux --install /boot/extlinux

... to create a subdirectory and install extlinux in it.
/boot/extlinux is the recommended location for extlinux.
The Puppy installer installs it onto the rootfs of the partition ie
mkdir /boot /mnt/data
mount /dev/sdb1 /mnt/data || mount /dev/sdb1 /boot
puppyinstaller wrote:if [ ! "`echo "$DESTPART" | grep '[0-9]$'`" = "" ];then
extlinux -i /mnt/data #i think only use -z for superfloppy.
else
extlinux -i -z /mnt/data
fi
extlinux.txt wrote: 2. The configuration file is called "extlinux.conf", and is expected
to be found in the same directory as extlinux is installed in.
Since 4.00 "syslinux.cfg" is also tried if "extlinux.conf" is not
found.



3. Pathnames can be absolute or relative; if absolute (with a leading
slash), they are relative to the root of the filesystem on which
extlinux is installed (/boot in the example above), if relative,
they are relative to the extlinux directory.

extlinux supports subdirectories, but the total path length is
limited to 511 characters
.

Posted: Sun 21 Apr 2013, 15:02
by Karl Godt
First adventures with extlinux :

1) version 5.01 make; make clean; make; make install
* Extended partition on SDCARD sd*5 formatted with xfs
* mount /dev/sd*5 /mnt/sd*5
* mkdir -p /mnt/sd*5/boot/extlinux
* extlinux --install /mnt/sd*5/boot/extlinux
-> files created in /mnt/sd*5/boot/extlinux : ldlinux.sys AND ldlinux.c32 [ no extlinux.sys ]
* by default make install installs to /usr/share NOT to /usr/lib [ NO MCONFIG file ]
-> cp /usr/share/syslinux/mbr.bin /mnt/sd*5/boot/extlinux/
* cat /mnt/sd*5/boot/extlinux/mbr.bin >/dev/sd* [ * mostly c -> /dev/sdc in my case ]
* installed precise-5.5 into /mnt/sd*5/LINUXes/precise-5.5 frugal
* fetched the syslinux.cfg out of the precise-5.5.iso and copied to /mnt/sd*5/boot/extlinux
* renamed /mnt/sd*5/boot/extlinux/syslinux.cfg to extlinux.conf
* umount /dev/sd*5
* ran fdisk /dev/sd*5 to flag partition bootable
* ran fdisk -l /dev/sd*5 to check if it is now marked active
* rebooted
-> Missing Operating System ..

2) version 3.86 make; make clean; make; make install
* did all that above for a USB first partition ext3 formatted which had grub4dos on it
-> Problems with the PATH to boot.msg , help.msg , logo16
* typed at the prompt : /vmlinuz
-> booted a full installation on second internal hard drive .
* fixed the PATHs in these files
* rebooted
* booted correctly .

3) fixed everything for 1) : Still missing operating system .

OVERALL : 5.0X seems very unstable for now .

For the record : Puppy 4.3 has already extlinux v3.73 and since the files for the syslinux in woof2 are empty placeholders it seems that all main distros also still use v3.73 .

Posted: Sun 21 Apr 2013, 22:08
by Karl Godt
Finally : Cannot confirm this BUG .
Posting from precise-5.5 on sdc2 ext2 formatted SDCard partition . Found the files ! Nothing unusual to report .

WHAT I can confirm is : xfs support is broken .

The partition was formerly formatted jfs .

Formatted to xfs : Missing operating system .

Formatted ext2 : Everything went smooth . Posting from it now .

Will have to check the PATH to logo.16 cos it did not show up,
but the four lines of boot.msg .

And while copying I did not correct the pdev1 variable in extlinux.conf and the /init was able to find it though :

Code: Select all

# cat /proc/cmdline
video=640x480 /LINUXes/precise-5.5/vmlinuz /LINUXes/precise-5.5/vmlinuz initrd=/LINUXes/precise-5.5/initrd.gz psubdir=LINUXes/precise-5.5 pdev1=sdc5