Page 1 of 1
Installing Limine Bootloader
Posted: Wed Jun 29, 2022 11:28 pm
by williwaw
UPDATE: 9/21/22 example limine.cfg for PUPPY viewtopic.php?p=67377#p67377
After updating to Easy Dunfell using Limine as a bootloader recently, I decided to install Limine bootloader to a ssd. The syntax used in its config file is easy to utilize, and Limine boots UEFI as well as BIOS.
I used EasyOs Dunfell 4.2 from a USB to make the install as it includes Limine installed (as a pet).
The pet can also be found at https://distro.ibiblio.org/easyos/amd64 ... e/dunfell/
And the latest source at https://limine-bootloader.org/files/limine/
Once you have the pet installed, copy the contents of /usr/share/limine to your boot partition. I placed it one level down in /boot and it worked fine. Create a configuration file in the same directory named limine.cfg
For UEFI, your boot partition needs to be need a FAT formatted, with the "esp" flag set.
The "boot" flag should be set for use with legacy BIOS on a FAT partition or ext2/3/4
To enable support for legacy BIOS devices, run....
- Screenshot(3).png (35.33 KiB) Viewed 10218 times
Example limine.cfg for EasyOs
Note:
Code: Select all
QUIET=no
TIMEOUT=no
GRAPHICS=no
DEFAULT_ENTRY=1
EDITOR_ENABLED=yes
INTERFACE_BRANDING=Limine Boot Manager
:Dunfell
COMMENT=Dunfell
PROTOCOL=linux
TEXTMODE=yes
KERNEL_PATH=boot://2/install/vmlinuz
MODULE_PATH=boot://2/install/initrd
KERNEL_CMDLINE=initrd=initrd rw wkg_uuid=ce4ef232-b351-49dd-b07c-5abeb8a0281a wkg_dir=install/
see https://wiki.archlinux.org/title/Limine#Deployment_2
- limine.md.gz
- remove the fake.gz
- (13.58 KiB) Downloaded 86 times
Re: Installing Limine Bootloader
Posted: Thu Jun 30, 2022 1:06 am
by BarryK
EasyOS 4.2.2 has Limine version 3.7.3, which has some bug fixes.
I have updated the package online:
https://distro.ibiblio.org/easyos/amd64 ... -64.tar.xz
Note that it was compiled with glibc 2.33, so it is possible the 'limine-deploy' utility won't work on OS with older glibc -- but it might.
Re: Installing Limine Bootloader
Posted: Sat Jul 02, 2022 1:11 pm
by BarryK
Re: Installing Limine Bootloader
Posted: Sat Jul 02, 2022 5:13 pm
by williwaw
mintsuki has added a configuration guide to the project repo https://github.com/limine-bootloader/limine
attached below is CONFIG.md as written 7/2/22 development is ongoing so there may be a later version at the link above
remove the fake .gz from the attachment
Re: Installing Limine Bootloader
Posted: Sat Jul 02, 2022 6:02 pm
by bigpup
For this to stay in the How To -> Boot
This section of the forum is for How To's using Official Puppy versions.
You need to give specific info on how to use this to boot an actual Official Puppy version.
Re: Installing Limine Bootloader
Posted: Sat Jul 02, 2022 9:35 pm
by rockedge
@bigpup I was thinking about trying to see if I can get a USB frugal install of a Fossapup64 or Bionic64 to boot using this bootloader. Looks interesting and simple.
Also once it's working test if I can install a KLV next to the Puppy on that USB drive and dual boot those 2 systems.
Re: Installing Limine Bootloader For Booting Frugals
Posted: Mon Jul 04, 2022 2:49 am
by williwaw
bigpup wrote: ↑Sat Jul 02, 2022 6:02 pm
For this to stay in the How To -> Boot
This section of the forum is for How To's using Official Puppy versions.
You need to give specific info on how to use this to boot an actual Official Puppy version.
OK, with usb drive sdb as a target, and using Barry's tar.xz
1. extract the contents of your puppy iso to the root of the target
2. in the distro you are working from, extract the contents of https://distro.ibiblio.org/easyos/amd64 ... -64.tar.xz to a working folder.
3. create a folder "boot" alongside the the iso contents in your target, and from usr/share/limine in the working folder, copy into /boot...
and/or
4. A mbr also needs to be installed for BIOS booting
or
and
5. create limine.cfg in /boot and paste in
Code: Select all
TIMEOUT=no
GRAPHICS=no
DEFAULT_ENTRY=1
EDITOR_ENABLED=yes
INTERFACE_BRANDING=Limine Boot Manager
:MY-FRUGAL-PUPPY
COMMENT=
PROTOCOL=linux
TEXTMODE=yes
KERNEL_PATH=boot:///vmlinuz
MODULE_PATH=boot:///initrd.gz
KERNEL_CMDLINE=initrd=initrd pmedia=usbflash
copying the entire contents of usr/share/limine to /boot will also enable booting a 32 bit, a cd, and a network boot, although not tested yet, and your limine.cfg will differ.
Re: Installing Limine Bootloader
Posted: Tue Jul 05, 2022 12:08 am
by puddlemoon
I have had some great success with this bootloader so far.
I have used it for a "multiboot" disk image with a fat boot partition and an ext4 install partition. "limine-deploy" can be run on a .img file as well as a physical drive. So perfect for (easy)dd or balena-etcher.
Example config with extra boot entries:
Code: Select all
#Limine USB fat-boot config
# Some example macros
${kernel}=boot://2/jackalpup/vmlinuz
${init}=boot://2/jackalpup/initrd.gz
${cmd}=pmedia=usbflash psubdir=/jackalpup pfix=fsck threadirqs
DEFAULT_ENTRY=1
TIMEOUT=5
VERBOSE=yes
# Visual settings
TERM_WALLPAPER=boot:///hexynapse.bmp
TERM_BACKDROP=008080
TERM_FOREGROUND=00D999
# Boot Entries
:jackalpup
COMMENT=Audio Production Puplet
PROTOCOL=linux
KERNEL_PATH=${kernel}
KERNEL_CMDLINE=${cmd}
MODULE_PATH=${init}
:Boot a fresh start (no save)
COMMENT=Base system only - without user changes
PROTOCOL=linux
KERNEL_PATH=${kernel}
KERNEL_CMDLINE=pmedia=usbflash psubdir=/jackalpup pfix=fsck,ram threadirqs
MODULE_PATH=${init}
:Alternate boot for low ram systems
COMMENT=Uses less ram at boot up but programs load slower
PROTOCOL=linux
KERNEL_PATH=${kernel}
KERNEL_CMDLINE=pmedia=usbflash psubdir=/jackalpup pfix=fsck,nocopy threadirqs
MODULE_PATH=${init}
:Boot to console (no X)
COMMENT=Base system - without loading xorg
PROTOCOL=linux
KERNEL_PATH=${kernel}
KERNEL_CMDLINE=pmedia=usbflash psubdir=/jackalpup pfix=nox threadirqs
MODULE_PATH=${init}
Also the make .iso function is simple and fast.
The readme offers this command:
Code: Select all
xorriso -as mkisofs -b <relative path of limine-cd.bin> \
-no-emul-boot -boot-load-size 4 -boot-info-table \
--efi-boot <relative path of limine-cd-efi.bin \
-efi-boot-part --efi-boot-image --protective-msdos-label \
<root directory> -o image.iso
So my mk-limine-iso script became:
Code: Select all
#!/bin/sh
xorriso -as mkisofs -b boot/limine-cd.bin \
-no-emul-boot -boot-load-size 4 -boot-info-table \
--efi-boot boot/limine-cd-efi.bin> \
-efi-boot-part --efi-boot-image --protective-msdos-label \
/mnt/home/jackalpup-0.0 -o jackalpup.iso
Here is the iso directory structue for this example
Code: Select all
root# ls
adrv_jackalpup-0.0.sfs initrd.gz ydrv_jackalpup-0.0.sfs
boot puppy_jackalpup-0.0.sfs zdrv_jackalpup-0.0.sfs
fdrv_jackalpup-0.0.sfs vmlinuz
root# ls boot/
hexynapse.bmp limine-cd.bin limine-cd-efi.bin limine.cfg limine.sys
root#
-Note, xorriso needs to be installed- only tested in qemu so far.
One more great use is to create a "hybrid" usb that can use Limine for bios booting and rEFInd for uefi.
This allows the benefits of refind, namely the ability to scan for and boot other windows/mac/linux installs.
Just deploy limine as usual and use the refind /EFI directory.
So in the boot partition you'd have:
Code: Select all
root# ls
EFI hexynapse.bmp limine.cfg limine.sys
root# ls EFI/boot/
BOOT.CSV drivers_x64 keys refind_x64.efi tools_x64
bootx64.efi icons refind.conf themes
root#
This has been an exciting find!
one issue I have is the display drops out between loading the initrd.gz/vmlinuz and the time the true resolution kicks in, so during the loading of the puppy sfs files the screen is blank but only on the bios boot, not uefi or the iso.
Mabye not he most instructional but these have been my discoveries so far. Check the readme for more info (:
Re: Installing Limine Bootloader
Posted: Tue Jul 05, 2022 8:44 am
by williwaw
KERNEL_CMDLINE=initrd=initrd pmedia=usbflash
the initrd=initrd
seems to be superfluous with easyos, but breaks puppy if the install is not in the root of the partition.
can anyone comment on its purpose or need?
Re: Installing Limine Bootloader
Posted: Tue Jul 05, 2022 5:54 pm
by BarryK
williwaw wrote: ↑Tue Jul 05, 2022 8:44 am
KERNEL_CMDLINE=initrd=initrd pmedia=usbflash
the initrd=initrd
seems to be superfluous with easyos, but breaks puppy if the install is not in the root of the partition.
can anyone comment on its purpose or need?
EasyOS needs "initrd=initrd", but for Puppy frugal install it should be "initrd=initrd.gz"
Re: Installing Limine Bootloader
Posted: Tue Jul 05, 2022 6:31 pm
by rcrsn51
williwaw wrote: ↑Tue Jul 05, 2022 8:44 am
KERNEL_CMDLINE=initrd=initrd pmedia=usbflash
the initrd=initrd
seems to be superfluous with easyos, but breaks puppy if the install is not in the root of the partition.
can anyone comment on its purpose or need?
Remove it. The initrd is defined with a MODULE_PATH line.
Re: Installing Limine Bootloader
Posted: Wed Jul 06, 2022 1:08 am
by williams2
initrd=initrd ... can anyone comment on its purpose or need?
On my usb flash drive, I have files like vmlimuzb8 and initrdb8 vmlinuzb7 and initrdb7 etc etc.
initrd=initrd
means "hey, bootloader, copy the file named vmlinuz to ram, and copy the file named initrd
to ram so that the kernel (which is in the file named vmlinuz) can access it (in /dev/initrd
)
initrd=initrdb8
means "hey, bootloader, copy the file named vmlinuzb8 to ram, and copy the file named initrdb8
to ram so that the kernel (which is in the file named vmlinuzb8) can access it (in /dev/initrd
)
That is, initrd=initrdxen means copy the contents of the file named initrdxen
to ram, so that the kernel can access it to create an initrd (initial ram drive)
The initial ram drive is the file system of a tiny puppy linux which creates the big Puppy Linux.
AFAIK, the initrd file can be named whatever you want. The first initrd
is not a file name and can not be renamed (it is a boot loader command)
Re: Installing Limine Bootloader
Posted: Wed Jul 06, 2022 7:46 pm
by williwaw
from CONFIG.md
URIs
A URI is a path that Limine uses to locate resources in the whole system. It is comprised of a resource, a root, and a path. It takes the form of:
resource://root/path
Has anyone had success with the guid://
or fslabel://
resource?
with respect to
KERNEL_PATH=
and/or
MODULE_PATH=
could limine be useful to boot something on a different disk?
Re: Installing Limine Bootloader
Posted: Wed Jul 06, 2022 8:34 pm
by TerryH
williwaw wrote: ↑Wed Jul 06, 2022 7:46 pm
from CONFIG.md
URIs
A URI is a path that Limine uses to locate resources in the whole system. It is comprised of a resource, a root, and a path. It takes the form of:
resource://root/path
Has anyone had success with the guid://
or fslabel://
resource?
with respect to
KERNEL_PATH=
and/or
MODULE_PATH=
could limine be useful to boot something on a different disk?
It worked for guid on my install. I set up a fslabel, but the install of EasyOS was pre limine 3.10, so hadn't been included yet. EasyOS 4.2.3 includes limine 3.10.1-r9 which I believe has fslabel included. I couldn't get it to boot my W10 install using fslabel, I just get a kernel panic. I believe I have the correct syntax. For the other 2 options (as shown in screenshot), the boot just goes back to as if it's a first boot, rather than direct to Windows 10 boot.
Note: The USB Drive which contains the boot partition, so is identified as Device1, so EasyOS working partition is 1:2. The internal NVME Drive is Device 2, so Windows 10 boot partiton is 2:1.
Re: Installing Limine Bootloader
Posted: Thu Jul 07, 2022 2:24 am
by rcrsn51
rcrsn51 wrote: ↑Tue Jul 05, 2022 6:31 pm
williwaw wrote: ↑Tue Jul 05, 2022 8:44 am
KERNEL_CMDLINE=initrd=initrd pmedia=usbflash
the initrd=initrd
seems to be superfluous with easyos, but breaks puppy if the install is not in the root of the partition.
can anyone comment on its purpose or need?
Remove it. The initrd is defined with a MODULE_PATH line.
No reply. Am I the only person here who does NOT need "initrd=initrd"?
Re: Installing Limine Bootloader
Posted: Thu Jul 07, 2022 2:32 am
by BarryK
rcrsn51 wrote: ↑Thu Jul 07, 2022 2:24 am
rcrsn51 wrote: ↑Tue Jul 05, 2022 6:31 pm
williwaw wrote: ↑Tue Jul 05, 2022 8:44 am
the initrd=initrd
seems to be superfluous with easyos, but breaks puppy if the install is not in the root of the partition.
can anyone comment on its purpose or need?
Remove it. The initrd is defined with a MODULE_PATH line.
No reply. Am I the only person here who does NOT need "initrd=initrd"?
I did a thank-you to your original post.
While I was posting a report at Limine issues, I threw in a question about what you have reported:
https://github.com/limine-bootloader/li ... 1176406359
I haven't got around to testing yet.
Re: Installing Limine Bootloader
Posted: Thu Jul 07, 2022 2:35 am
by BarryK
TerryH wrote: ↑Wed Jul 06, 2022 8:34 pm
Note: The USB Drive which contains the boot partition, so is identified as Device1, so EasyOS working partition is 1:2. The internal NVME Drive is Device 2, so Windows 10 boot partition is 2:1.
I asked that question on the Limine site yesterday:
https://github.com/limine-bootloader/limine/issues/190
...so cannot assume boot drive is number one.
Re: Installing Limine Bootloader
Posted: Thu Jul 07, 2022 8:20 am
by williwaw
TerryH wrote: ↑Wed Jul 06, 2022 8:34 pm
EasyOS 4.2.3 includes limine 3.10.1-r9 which I believe has fslabel included.
tx, will have to install it to sda1
Re: Installing Limine Bootloader
Posted: Thu Jul 07, 2022 10:14 am
by BarryK
williwaw wrote: ↑Thu Jul 07, 2022 8:20 am
TerryH wrote: ↑Wed Jul 06, 2022 8:34 pm
EasyOS 4.2.3 includes limine 3.10.1-r9 which I believe has fslabel included.
tx, will have to install it to sda1
Yes.
One thing to be careful of though, if do an update on the usb-stick from an earlier version of EasyOS, the Limine bootloader isn't updated.
Re: Installing Limine Bootloader
Posted: Thu Jul 07, 2022 12:34 pm
by TerryH
BarryK wrote: ↑Thu Jul 07, 2022 10:14 am
williwaw wrote: ↑Thu Jul 07, 2022 8:20 am
TerryH wrote: ↑Wed Jul 06, 2022 8:34 pm
EasyOS 4.2.3 includes limine 3.10.1-r9 which I believe has fslabel included.
tx, will have to install it to sda1
Yes.
One thing to be careful of though, if do an update on the usb-stick from an earlier version of EasyOS, the Limine bootloader isn't updated.
Thanks, I checked the package list, but forgot that the contents of partition 1 containing the bootloader would still be from the original install. That explains why fslabel failed.
Re: Installing Limine Bootloader
Posted: Thu Jul 07, 2022 5:11 pm
by TerryH
BarryK wrote: ↑Thu Jul 07, 2022 2:35 am
TerryH wrote: ↑Wed Jul 06, 2022 8:34 pm
Note: The USB Drive which contains the boot partition, so is identified as Device1, so EasyOS working partition is 1:2. The internal NVME Drive is Device 2, so Windows 10 boot partition is 2:1.
I asked that question on the Limine site yesterday:
https://github.com/limine-bootloader/limine/issues/190
...so cannot assume boot drive is number one.
OK thanks for the details.
Re: Installing Limine Bootloader
Posted: Sun Jul 10, 2022 12:38 pm
by rcrsn51
rcrsn51 wrote: ↑Thu Jul 07, 2022 2:24 am Am I the only person here who does NOT need "initrd=initrd"?
Any update on this?
Re: Installing Limine Bootloader
Posted: Sun Jul 10, 2022 5:15 pm
by TerryH
rcrsn51 wrote: ↑Sun Jul 10, 2022 12:38 pm
rcrsn51 wrote: ↑Thu Jul 07, 2022 2:24 am Am I the only person here who does NOT need "initrd=initrd"?
Any update on this?
On my current ASUS Zenbook laptop, which is UEFI only, I can boot EasyOS without the initrd=initrd.
Edit: Just set up a Vanilla Dpup on my USB Drive with Limine bootloader. It will also boot with or without initrd=initrd.gz as a KERNEL_CMDLINE parameter
Re: Installing Limine Bootloader
Posted: Sun Jul 10, 2022 8:09 pm
by williwaw
TerryH wrote: ↑Wed Jul 06, 2022 8:34 pm
williwaw wrote: ↑Wed Jul 06, 2022 7:46 pm
Has anyone had success with the guid://
or fslabel://
resource?
with respect to
KERNEL_PATH=
and/or
MODULE_PATH=
could limine be useful to boot something on a different disk?
It worked for guid on my install.
thanks, TerryH
After reviewing some puppy kernel line parameters, I find this liming.cfg to work, when limine is installed to a USB, and booting vanilla on an internal ssd
Code: Select all
QUIET=no
TIMEOUT=no
GRAPHICS=no
DEFAULT_ENTRY=2
EDITOR_ENABLED=yes
INTERFACE_BRANDING=Limine Boot Manager
:Vanilladpup from usb
COMMENT=
PROTOCOL=linux
TEXTMODE=yes
KERNEL_PATH=guid://ce4ef232-b351-49dd-b07c-5abeb8a0281a/pups/vanilla/vmlinuz
MODULE_PATH=guid://ce4ef232-b351-49dd-b07c-5abeb8a0281a/pups/vanilla/initrd.gz
KERNEL_CMDLINE=pmedia=ataflash psubdir=/pups/vanilla pfix=fsckp
Re: Installing Limine Bootloader
Posted: Mon Jul 11, 2022 5:52 am
by BarryK
rcrsn51 wrote: ↑Sun Jul 10, 2022 12:38 pm
rcrsn51 wrote: ↑Thu Jul 07, 2022 2:24 am Am I the only person here who does NOT need "initrd=initrd"?
Any update on this?
I can confirm, the "initrd=" entry is not needed.
Re: Installing Limine Bootloader
Posted: Mon Jul 11, 2022 5:53 am
by BarryK
Re: Installing Limine Bootloader
Posted: Sat Sep 17, 2022 6:09 am
by mouldy
Finally got around to trying out Limine beyond just booting EasyOS. As somebody that used to prefer Loadlin (remember that one that loaded linux from small DOS partition/floppy?), then Gujin, I have never enjoyed dealing with any bootloader that much. Got used to Grub4Dos, mostly cause that was what was available with Puppy and Puppy had installer for it. And I had lot computers that still have legacy bios. I seriously dont like Grub2. Though if you are installing a linux distribution with Grub2 on its own drive, then it works.
Anyway I got both frugal versions DebianDogBookworm and Fossapup64 to boot with Limine on thumbdrive that also had EasyOS. Both MBR and UEFI with same thumbdrive. Tried booting a full install of DebianDog and still no luck with that one. Two weird quirks. DD frugal booted then it wouldnt boot UNTIL I finally used Gparted to give its partition a new UUID. This maybe why the full install of DD didnt bootm whatever weird thing with the UUID becoming corrupted. Not sure what the heck up with that. Also I have no idea where to put "changes=/path" for save folder for DD. DD needs its nose stuck in it by bootloader to find it. I tried putting it after the kernel line and DD stopped booting. Removed it and it booted again. Fossapup did better, its tends to try harder to find its save folder/file. Bootloader doesnt have to tell it where.
Oh another odd quirk. YOu cant have any other instance plugged into the computer. I had copied files off the Fossapup dvd and just left it in the dvdrom. Limine FOUND IT and and booted it, then when I shut down Fossapup, it tried to create a save file on the dvdrom.... Once I removed the dvd and rebooted, next time it offered to create it on the thumbdrive.
But all in all this is far simpler than Grub2 IMHO, though its all what you are used to using. For me this is lot like Grub4Dos only it can boot on both MBR and UEFI systems without lot extra hassle. I hope it becomes more popular, especially on smaller distributions.
EDIT: Must been tired when I was I finally got it booting. In the limine.cfg, entry for Debian Dog Bookworm, I apparently never actually entered "changes=/live/changes" in the KERNEL_CMDLINE, just thought I did. Did so now and it finds and uses the changes folder. Anyway its just bit different from what I got used to with GRUB4DOS. Next ought to try it with larger full install linux that comes with GRUB2. But as long as it can do pups/dogs/easy and in both MBR and UEFI; then aok with me. Its no harder than GRUB4DOS, just little different. And yea, still kinda miss the days of LOADLIN.... Simpler times.
Re: Installing Limine Bootloader
Posted: Wed Sep 21, 2022 5:08 pm
by williwaw
mouldy wrote: ↑Sat Sep 17, 2022 6:09 am
DD frugal booted then it wouldnt boot UNTIL I finally used Gparted to give its partition a new UUID.
previously I used the uuid parameters because uuid seemed quite specific. I cannot recall exactly why I needed to look for different options, but now I create partition boot labels with gparted and use fslabel instead
in this example, F1 is the boot label and /pups/vanilla is the installs directory/subdirectory
Code: Select all
:Vanilladpup
COMMENT=
PROTOCOL=linux
TEXTMODE=yes
KERNEL_CMDLINE=psubdir=pups/vanilla pmedia=ataflash
KERNEL_PATH=fslabel://F1/pups/vanilla/vmlinuz
MODULE_PATH=fslabel://F1/pups/vanilla/initrd.gz
Edit: I recall some issues using uuid parameters when having multiple installs of easy on different disks on the same machine.