I'm excited to finally release the X1Boot Manager into the X1000 Linux world!
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!
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.
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.
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.
- 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.