Presenting the X1Boot Manager!

AmigaOne X1000 platform specific issues related to Linux only.
User avatar
Hypex
Beta Tester
Beta Tester
Posts: 645
Joined: Mon Dec 20, 2010 2:23 pm
Location: Vic. Australia.

Presenting the X1Boot Manager!

Post by Hypex »

Hello everyone!

I'm excited to finally release the X1Boot Manager into the X1000 Linux world! :-D

The X1Boot Manager is the culmination of a two year research and development project and then some I call the X1Boot Project. The aim of the X1Boot Project was to prove if:

1. Linux could be booted directly off an X1000 HDD (or SSD.)
2. Linux could be loaded from a standard AmigaBoot menu.
3. Linux could be managed from a Linux boot editor.

Well I'm pleased to say I was successful in all three aims! :-o


The X1Boot Manager

Welcome to the X1Boot Manager. A boot loader and boot editor all combined into one easy package. Designed to simplify management of X1000 Linux kernels and boot menu entries.

The X1Boot Manager allows you to install and manage kernels and a boot menu from one easy interface. It's matched by the X1Boot Loader that will boot Linux kernels. And all this is transparently integrated into your AmigaBoot menu.

LoaderCropped.png

How does it work?

A special boot volume is used that contains the kernels, ramdisk and menu. Like a standard Linux boot volume, but one that can be shared between AmigaBoot and Linux. So, formatted as FFS, in this case. A customised Kicklayout with the Linux menu will be located by AmigaBoot and it will dynamically add the entries to the menu list. When booted AmigaBoot will load in the Linux kernel and boot options, then pass control over to the X1Boot Loader. Which will then unpack the kernel and ramdisk if included, set the boot options and launch the kernel! Easy as!


But won't this make it complicated?

Not for you! Software does this all for you. As a bonus, not only have I figured all this out to work as easy as possible, I've also packaged it all together in an easy to install package. From start to go, configuring the boot volume to installing the boot editor, is designed to be an easy process as possible. Including a customised desktop icon to launch it from I put together for you. Yay! :-)


Text me now!

Well, I could, if you'd like to give it a try, but how about downloading this package I will just leave here. Simply download the package from here and give it a shot. A small but powerful package. ;-)

https://drive.google.com/file/d/1TKn3b4 ... drive_link


Features

* Easy installation and configuring from a standard installer package.
* Easy installation of kernel and ramdisks images.
* Easy installation of kernel archives with kernel, modules, ramdisks and boot config all installed to system.
* Easy installation of ramdisks that can be generated on the fly when needed.
* Easy launching from desktop menu with a desktop icon.
* Easy setup of quick menu for current system.
* Easy management of kernels with functions to view, install, remove and purge kernels.
* Easy management of menu with functions to view, add, copy, edit, move and remove entries.
* Easy management of install settings with options for compression and level, ramdisk generating and setting a default kernel.


What can't it do?

There are still some things it can't do presently despite the big feature list. It can't import menus from CFE settings with a fancy wizard. It can't scan for Linux volumes to build a boot menu with a similar fancy wizard. It doesn't presently let you pick a Linux volume from a list and easily add it to the menu. It doesn't install modules to all volumes in boot menu, just the current system. Default boot options can't be set. And there is no terminal command support, only GUI. But I think it makes up for this with what it does provide. It's also only version 1.0 so a good base to start at.


How to install

1. You will need to prepare a boot volume to hold the Linux kernels, ramdisks and menu files. I recommend doing this from Amiga OS4 with Media Toolbox as it needs to be in FFS format. I recommend DOS3 as it's tested as working, with a 512 block size. And marked as bootable. Format if needed. It can be 100MB for a few kernels or 1GB for a whole set. The average kernel can be up to 12MB and average ramdisk 3MB, so around 15MB combined. With tight compression a kernel can be close to 8MB and ramdisk close to 2MB, so just under 11MB for both.

2. Once done boot into Linux, the usual way, perhaps for one last time. Open up the X1Boot package from the desktop or if you prefer install using dpkg from a terminal. It should open up a package manager you can install it from. But I have had trouble from Fienix where mine was missing a desktop package manager for some reason. It should be compatible with Ubuntu 12.04 and up.

3. The package will give you a welcome message. Then it will scan your system for compatible FFS boot volumes and present a list of compatible volumes found with device, size, filesystem and name. Pick your boot volume and confirm it. It will then check it for an existing Kicklayout and warn you if one is found. An X1Boot Kicklayout will be ignored. If there is any problem such as no compatible FFS volumes being found it will tell you, and you will need to investigate it. Otherwise the boot files will be installed to the X1Boot volume and the X1Boot Manager desktop application installed in your menu. A permanent X1Boot mount point at /boot/x1boot will be installed for the boot manager to access the X1Boot volume from. If you can't see it in the menu or dock then searching for "X1Boot" should find it and after you open it you can lock it in place. You can also run it from the terminal by executing "x1bootman".

4. Do this for each of your Linux volumes so they can be managed independantly. All boot and config files are stored globally on the X1Boot volume. You can also add menu entries for each one from one install if you have the details handy.


How to use

You will need to setup the menu by installing a kernel and adding a menu entry. You have two ways of setting up the menu. You can install it quickly by providing a kernel image and ramdisk if needed and it will fill out a label and boot options for you determined from your system. Or you can install kernels then edit boot menu from dedicated edit menus for more control. In either case it will fill in the blanks for you. Be sure to check out the settings which contain the image install options.

For quick setup examine the "Install Menu" option in the main menu as detailed below.

For general management of boot menu and kernel images examine the "Edit Menu" and "Edit Kernels" options as detailed below.

For image install settings examine the "Edit Settings" options as detailed below.

Screenshot from 2021-05-19 01_36_58.png


Main menu:

Upon loading you will be presented with the main menu options.

  • Install Menu
  • Edit Menu
  • Edit Kernels
  • Edit Settings



Install Menu: Install boot menu for current system. This will quickly install a boot menu to get you started for the current system. You will be asked for a menu entry name, defaulting to Linux release name. Then you will be asked to choose an X1000 Kernel Binary, which can be a vmlinux or zImage. Finally, your root mount will be checked to see if requires a ramdisk, and if it does it will also ask you to choose an X1000 Kernel Ramdisk. Provided everything passes verification the kernel image and ramdisk image if needed will then be installed to the X1Boot volume and a menu entry added. This will now be ready to boot from.

Edit Menu: Edit menu items and options. This will bring up the boot menu editor. From here you can view, add, copy, edit, move or remove menu entries.
  • View Entries: View menu entries. Will display ordered menu list with number, label, kernel, ramdisk and boot options.
  • Add Entry: Add a menu entry. Will ask for label, kernel and boot options.
  • Copy Entry: Copy a menu entry. Will ask for entry and label to use. Must be a different label.
  • Edit Entry: Edit a menu entry. Will ask for entry then bring up a sub-menu to edit individual options for label, kernel, ramdisk status and boot options.
  • Move Entry: Move position of a menu entry. Will ask for entry to move and place to move to.
  • Remove Entry: Remove a menu entry and delete menu files. Will ask for entry to remove then delete entry from menu.

Edit Kernels: Edit kernels installed. This will bring up the kernel editor. From here you can view, install images or archives, create ramdisks, remove or purge kernels. The images will be compressed in the preferred format when installing to X1Boot volume. Images in matching format will be stored directly.
  • View Images: View installed images of kernels and ramdisks. Will display list of installed kernels, compression format and ramdisk status.
  • Install Images: Install a selection of kernel images. Will install a kernel image or selection of. Accepted types are vmlinux and zImage. If a matching ramdisk is found it will also be installed if ramdisks are activated or generated on the fly.
  • Install Archives: Install a selection of kernels and modules. Will install a kernel archive or selection of. Accepted types are vmlinux and linux-image in tar.gz format. Will install kernel to X1Boot volume in preferred format, install kernel modules to system root and any boot config. If a matching ramdisk is found it will also be installed if ramdisks are activated or generated on the fly. Will ask for root password.
  • Create Ramdisks: Create ramdisks for installed kernels. Will create ramdisks for a selection of installed kernels including all.
  • Remove Kernels: Remove kernels and delete boot files. Will remove a selection of installed kernels including all and any associated ramdisks from X1Boot volume. If any kernel is used in boot menu you will be told.
  • Purge Kernels: Completely remove kernels, modules and boot files. Will completely remove a selection of installed kernels including all and any associated ramdisks from X1Boot volume, including kernel modules on system root and boot config. Will ask for root password.
Edit Settings: Edit kernel installation settings. This will bring up the settings editor. From here you can set compression format, compression level, ramdisk activation, default kernel and duplicate files.
  • Format: Compression format for installing kernels and ramdisks. Will set compression format for kernel and ramdisk images installed to X1Boot volume. Currently supported are GZip and XZ. GZip is common and fast to compress, but slower to load, as files are bigger. XZ, also known as 7z, is a newer format that is slower to compress, but faster to load as files are smaller by comparison. Default is GZip, which will also be stored directly, if Format is set to GZip and a GZip image installed.
  • Level: Compression level to use. Set level of compression to use when installing and packing an image. From 1 to 9. 1 is fast and worst, 9 is slow and best. Default is 6 which provides a good all round average on packing time and file size.
  • Ramdisk: Generate ramdisk when installing kernels. Specify if a ramdisk will be installed alongside kernels, either from a ramdisk image, or generated on the fly if none is found. On or Off. Default is Off.
  • Default: Set a default kernel to use in boot entries. Set a default kernel that can be shared across boot entries. This allows you to easily set and change a kernel used in your boot menu which is useful for upgrading. Simply change the Default to another kernel and the boot menu will be regenerated for you with all menu entries using Default updated to use the other kernel.
  • Duplicate: What to do when a duplicate file is found. Set what to do if a duplicate file is found when installing a kernel image. Options are Ask or Skip. Ask if to overwrite the file, or to skip the file and move on. Default is Ask.

Acknowledgements

X1Boot Loader makes use of the following resources for which I am thankful for their use:

Geri Pircher for his A1Boot volume layout template.

OpenBios team for their OpenFirmware OF1275 cient.
http://www.openbios.org

William L. Pitts for UBoot ELF loader.

Lasse Collin for unxz XZ decompressor.

Joergen Ibsen for tinf GZ decompressor.
Attachments
Screenshot from 2021-05-19 01_37_43.png
Last edited by Hypex on Mon Jul 31, 2023 6:26 am, edited 1 time in total.
User avatar
sailorMH
Posts: 230
Joined: Wed Aug 28, 2013 6:01 pm
Location: Czech republic

Re: Presenting the X1Boot Manager!

Post by sailorMH »

Itl looks GREAT! Thank You, Hypex.
It seems I have to reinstall my Debian installation on X1000 soon.
There was allways mess with kernels and setup different menu entries via CFE was very boring.
Micro A1-C (G3/1.2 GHz), AmigaOne XE (G4/1.4 GHz), Pegasos II (G4/1.33 GHz), Sam440ep, Sam440ep-flex, AmigaOne X1000
Efika 5200b, Pegasos I, Powerbook, Mac Mini (1.83 GHz), iMac, Powermac Quad

AmigaOS, MorphOS, linux, MacOS X
User avatar
xeno74
Posts: 9320
Joined: Fri Mar 23, 2012 7:58 am

Re: Presenting the X1Boot Manager!

Post by xeno74 »

:o

Great!
http://www.amigalinux.org
http://www.supertuxkart-amiga.de

Running Linux on AmigaONEs can require some tinkering.
User avatar
musa
Posts: 709
Joined: Tue Aug 23, 2011 7:58 pm

Re: Presenting the X1Boot Manager!

Post by musa »

Hi Hypex
Thanks for making this boot menu program possible. I have have a question.
I've made a boot partition. I have downloaded the x1boot deb file. I have installed the program from Fienix and found my boot partion. I have installed a kernel and made a menu item to start Fienix. I restart my x1000 but do not know where I can get the menu. Did I forget something?
Thanks in advance
Peter
AmigaX1000
Follow me on twitter @basjoo_dk
User avatar
Hypex
Beta Tester
Beta Tester
Posts: 645
Joined: Mon Dec 20, 2010 2:23 pm
Location: Vic. Australia.

Re: Presenting the X1Boot Manager!

Post by Hypex »

Thanks guys! Hope it's useful for you. Already used it to install a latest kernel.

I now realise I should left a place holder. There's bound to be an update in future eventually. :-)
User avatar
musa
Posts: 709
Joined: Tue Aug 23, 2011 7:58 pm

Re: Presenting the X1Boot Manager!

Post by musa »

Hypex wrote: Sun May 23, 2021 12:37 pm Thanks guys! Hope it's useful for you. Already used it to install a latest kernel.

I now realise I should left a place holder. There's bound to be an update in future eventually. :-)
Hi Hypex
How do you bring up the menu during startup?
Is it possible to create a cfe menu item that points to the x1boot menu. So when this item is selected I will see and be able to select the x1boot menu items? If so, how do you do it?
Thanks in advance
Peter
AmigaX1000
Follow me on twitter @basjoo_dk
User avatar
Hypex
Beta Tester
Beta Tester
Posts: 645
Joined: Mon Dec 20, 2010 2:23 pm
Location: Vic. Australia.

Re: Presenting the X1Boot Manager!

Post by Hypex »

musa wrote: Sun May 23, 2021 2:02 pm Hi Hypex
How do you bring up the menu during startup?
Hi musa and thanks for your interest. The menu should automatically come up in the standard AmigaBoot menu and look like another OS4 volume, except it will have the entry name you give it. The only thing I know to stop it would be a non bootable partition for X1Boot files that was skipped.
Is it possible to create a cfe menu item that points to the x1boot menu. So when this item is selected I will see and be able to select the x1boot menu items? If so, how do you do it?
I think it would be possible to have an early CFE menu for it but I designed it to that you don't need to stuff around like that. Any menu items you add in the manager should be added to the list of OS4 volumes you can boot from.

If you copy the OS4 boot command from the CFE menu variable starting amigaboot into another menu variable, then point it to the X1Boot partition and copy amigaboot.of to that, it should do what you want. If you really want to separate it from your OS4 menu,
User avatar
musa
Posts: 709
Joined: Tue Aug 23, 2011 7:58 pm

Re: Presenting the X1Boot Manager!

Post by musa »

Hi Hypex
Thank you for your answers.
I had tried both options without success until I came to the thought that my system has never been successful in having Amiga boot partitions on anything other than ide0. i have x1boot on ide2.2. I converted my swap partition on ide0 to x1boot partition and copied the contents from the old x1boot partition to the new one. I usually have 2 boot partions marks in amigaboot but now came two more. One for Fienix and one for Ubuntu 16.04. Unfortunately, the system froze before it got boot linux. Usually when I boot linux I use this command line: boot -elf -noints -fatfs cf0: vmlinux5.11. Is there any of this I need to type into the cfg file on the x1boot partition?
Have a nice day
Peter
AmigaX1000
Follow me on twitter @basjoo_dk
User avatar
Hypex
Beta Tester
Beta Tester
Posts: 645
Joined: Mon Dec 20, 2010 2:23 pm
Location: Vic. Australia.

Re: Presenting the X1Boot Manager!

Post by Hypex »

I realised after posting that that it won't matter if plug another amigaboot in the menu as it will look for all bootable volumes anyway. But let's continue on.

I just did some digging. How many OS4 volumes do you have and what is your CFE variable amigaboot_quiet set to? Do you see AmigaBoot at all? In CFE amigaboot_quiet needs to be set to "N" so it doesn't skip the Amiga boot menu.

Apart from that, on the x1boot volume, it should be marked as bootable and mounted to my knowledge. From your reply it looks like this is all fine. Since the menu turned up.

There should be nothing else you need. It needs a kernel to add a menu entry. So in that case, a vmlinux-5.11 should be installed to the x1boot volume. AmigaBoot itself would load the kernel in. Then pass control to the launcher. Shouldn't matter, but how did you install the kernel; the first quick menu, or installing kernel then adding entry? And also how far along did it get? Did you see the X1Boot Loader at all?

I tested kernel 5.13 but had problems booting. It did load in though.
User avatar
musa
Posts: 709
Joined: Tue Aug 23, 2011 7:58 pm

Re: Presenting the X1Boot Manager!

Post by musa »

Hypex wrote: Mon May 24, 2021 5:05 pm

I realised after posting that that it won't matter if plug another amigaboot in the menu as it will look for all bootable volumes anyway. But let's continue on.

I just did some digging. How many OS4 volumes do you have and what is your CFE variable amigaboot_quiet set to? Do you see AmigaBoot at all? In CFE amigaboot_quiet needs to be set to "N" so it doesn't skip the Amiga boot menu.

Apart from that, on the x1boot volume, it should be marked as bootable and mounted to my knowledge. From your reply it looks like this is all fine. Since the menu turned up.

There should be nothing else you need. It needs a kernel to add a menu entry. So in that case, a vmlinux-5.11 should be installed to the x1boot volume. AmigaBoot itself would load the kernel in. Then pass control to the launcher. Shouldn't matter, but how did you install the kernel; the first quick menu, or installing kernel then adding entry? And also how far along did it get? Did you see the X1Boot Loader at all?

I tested kernel 5.13 but had problems booting. It did load in though.
Hi Hypex
I have 3 menu itims there boot os4.1. The first boot a normal os4.1 fe and here amigaboot_quiet is set to Y.
number 2 is for cd boot and amigaboot_quiet set to Y.
Number 3 is to boot another os4.1 fe and I use it to test. Here I do not use the command amigaboot_quiet, but only boot -fs = amigafs ide0.0: amigaboot.of.
Here the boot menu appears and I can choose whether I want to start boot 1 or 3. It is also here I can now see the 2 X1boot menu itims.
I have several os4 partitions but they are for data only.

Yes the new x1boot partition is set to mount and boot

i decided that i would install the X1boot program again and my kernel and only one menu item. I installed the program and chose the new partition. Then I started the program and selected install boot menu for current system. Here I selected my kernel which was installed. Then the system asked me to select a ramdisk. i do not need a ramdisk to boot Fienix so i chose cancel but the program went a loop and could not been shut down. I had to restart linux and start over. This time I chose to delete the files in the x1boot folders l. Restarted the program and selected Edit menu items and optiens. then add a menu entry entered the data the program should use and end with cancel.

Restarted the amiga and went to amigaboot where there was now only one new menu item namely feinix. Chose feinix and then froze the machine. see photo
20210524_205415.jpg
Thanks and have a nice day
Peter
AmigaX1000
Follow me on twitter @basjoo_dk
Post Reply