Skip to main content

Build your own ALG ISO

This document will guide you on how to build your own ALG ISO(s).

caution

The ALG project has been discontinued since July 2022.

The ALG repositories haven't been updated as of October 2022. Many things are prone to break or simply not work. While I will try my best to fix the issues, things will go really slowly, from my end.

You will have to take extra steps than described in this document to make them work. Feel free to ask questions on the discord server or telegram discussion group. Many members of the community build the ISOs and they will be able to help you.

Video References

Please note that I will update the videos.

Full Version

Short Version

1. Requirements

Hardware

warning

ISO building is a resource intensive process.

While you can build the ISOs on a potato system, ISO building will take a long time. I would recommend a system with at least:

  • 8 CPU threads (a good 4 core processor would suffice)
  • NVMe SSD
  • High Frequency RAM

Software

The system should have Arch Linux installed either by the help of ALG or via the official method. Please make sure you have the following packages installed.

archiso
git

If these aren't installed on your system, you can install them like this:

sudo pacman -S archiso

2. Clone repositories

note

ALG has many editions. Understand the differences between them here.

On the ALG github page, search for the edition you want. You should be able to see a green code button on the top right of the edition's repository. Clone the repository on your local system.

3. Build the ISO

Navigate to the cloned repository and open a terminal in that directory. (Right click, open in terminal)

Build ISO by typing,

sudo mkarchiso -v .

The -v flag will print verbose output for you and . (period), will build the ISO in the same folder. Once the ISO build process is done, you will be have two new folders, work and out. Work will contain the uncompressed ISO files, for debugging purposes. You will be able to see the ISO's file system there. Out will contain the actual ISO file.

4. Debugging possible issues you may face

No configurable repositories

If the error when running command at step 3, says something like no configurable repositories, simple copy the profile's pacman.conf to your system.

sudo cp pacman.conf /etc/pacman.conf

This will add the following repositories in your system's pacman.conf.

[alg_repo]
SigLevel = Optional TrustedOnly
Server = https://arch-linux-gui.github.io/$repo/$arch

[alg-settings]
SigLevel = Optional TrustedOnly
Server = https://arch-linux-gui.github.io/$repo/$arch

[chaotic-aur]
Include = /etc/pacman.d/chaotic-mirrorlist

Configuring chaotic AUR repository

While you can comment out the chaotic-aur repository, it is required to build some editions like the Window Managers or Mate editions. To enable the chaotic-aur, type the following commands:

sudo pacman-key --recv-key FBA220DFC880C036 --keyserver keyserver.ubuntu.com

sudo pacman-key --lsign-key FBA220DFC880C036

sudo pacman -U 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-keyring.pkg.tar.zst' 'https://cdn-mirror.chaotic.cx/chaotic-aur/chaotic-mirrorlist.pkg.tar.zst

or

You can comment the chaotic-aur lines in the pacman.conf you just copied. Synchronize you repositories and install the keyring and mirrolist from ALG's repositories.

sudo pacman -Sy chaotic-keying chaotic-mirrorlist

and then uncomment chaotic-aur in /etc/pacman.conf.

Unable to build ISO second time

Once an ISO is built, the files need to be removed, as the work and out folders are in the same directory as the profile. Hence you need to run the cleanup convinience script every time you want to make a new ISO.

./cleanup.sh

You could also automate this by making a new script in your profile directory

makeiso.sh
./cleanup.sh

sudo mkarchiso -v .

Certain packages do not exist

The root cause of this issue is that pacstrap cannot find the packages in any of the repositories. If a repository has been say, removed from the official repositories you need to remove them too. For example, recently, the firmware for older intel wireless devices was removed. Since these packages are in packages.x86_64, you need to comment or remove them.

profile/packages.x86_64
#ipw2100-fw
#ipw2200-fw