Home

Install

Wiki

News

Screenshots

Register

Forum

GitHub



+------------------------------------------------------------------------------+
|  About the bootloader.                                                       |
+------------------------------------------------------------------------------+

Tin Can Linux uses $/limine-bootloader/limine instead of GRUB or other
common bootloaders to maintain simplicity (and a few other reasons).

=== Contents
============

[010] Installation

[020] Configuration

[030] Rationale


=== Installation [010]
======================

Install the bootloader with moss.

--------------------------------------------------------------------------------

  $ moss b limine

--------------------------------------------------------------------------------


For a BIOS install (run as root):

--------------------------------------------------------------------------------

  # cp /usr/share/limine/limine-bios.sys /boot/
  # limine bios-install /dev/sda

--------------------------------------------------------------------------------


Or for a UEFI install (run as root):

--------------------------------------------------------------------------------

  # mkdir -pv /boot/EFI/BOOT
  # cp /usr/share/limine/BOOTX64.EFI /boot/EFI/BOOT/

--------------------------------------------------------------------------------


=== Configuration [020]
=======================

The configuration file is located at /boot/limine.conf and should look something
like this if you followed the installtion guide:

--------------------------------------------------------------------------------

  timeout: 5

  /Tin Can Linux
      protocol: linux
      kernel_path: boot():/vmlinuz-[VERSION]
      kernel_cmdline: root=UUID=xxxx-xx--xxx ro loglevel=3 rootwait quiet

--------------------------------------------------------------------------------


This should typically be enough for a working installation of Tin Can Linux,
though there are some things to note about this basic configuration:

  - kernel_cmdline: while it's better to use the disk UUID if possible, this may
    not always work. Alternatively, the disk can be specified as
    `root=/dev/sdXY` if you know that the automatically assigned disk label
    won't change. This is typically the case if there is only one disk present.


Additionally, there are some potentially useful global config keys:

  - quiet: this can be added to hide all output (including the menu) except
    important warnings and panics. Purely aesthetic, and pressing any key brings
    back the menu and pauses the timeout as usual.

  - verbose: show more output, useful for debugging problems.

  - default_entry: the name or index of the entry to select by default.

  - wallpaper: can use a background image for fun. Supports BMP, PNG, JPEG, QOI.


And some useful local configuration keys (per-entry):

  - comment: displayed when an entry is highlighted.

  - module_path: if you're using an initramfs (which Tin Can does not use by
    default, since kernel modules are baked in), you can specify that here.


A customized config file might therefore look something like this:

--------------------------------------------------------------------------------

  timeout: 5
  quiet: yes
  wallpaper: boot():/wallpaper.png

  /Tin Can Linux
      protocol: linux
      kernel_path: boot():/vmlinuz-7.2.11-zen1
      kernel_cmdline: root=/dev/sda1 ro loglevel=3 rootwait quiet
      module_path: boot():/initrd
      comment: A really awesome tiny Linux distribution

--------------------------------------------------------------------------------


This is not at all an exhaustive list of the configuration options, just the
ones I think seemed relevant. The full documentation for the config file can be
found at https://github.com/Limine-Bootloader/Limine/blob/v12.x/CONFIG.md.


=== Rationale [030]
===================

I originally picked limine because it's simple, reasonably suckless, and not
exactly your usual bootloader. In other words, it fits perfectly with the
general themes of Tin Can as a distro.

Also, GRUB wasn't working back when I was first developing Tin Can. Limine did.


________________________________________________________________________________

AVS Origami (C) 2024-2026