Build your own ALG ISO
This document will guide you on how to build your own ALG ISO(s).
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
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
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
./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.
#ipw2100-fw
#ipw2200-fw