Skip to main content
Topic: Artix nitro ISO (Read 594 times) previous topic - next topic
0 Members and 2 Guests are viewing this topic.

Artix nitro ISO

I'm trying to build a custom iso with an unsupported init system (nitro see https://aur.archlinux.org/packages/init-nitro).

I feel a bit lost following the wiki as I seem to fail immediately,

At the step where it says to copy /etc/artools/artools-base.conf I find I don't have that file in /etc/artools/; do I need it?

Also where it says to copy /usr/share/artools/iso-profiles into ~/artools-workspace I think I should really be using the repository at
https://gitea.artixlinux.org/artix/iso-profiles/ as that contains a folder lqxt which /usr/share/artools/iso-profiles  does not.

Finally I will obviously want to substitute the AUR package install instead of say runit. I have a local pkg server; will buildiso  use that if I put it in the build host pacman.conf?

If that is ok what's the correct/easiest way to get the new init installed; should I use the advanced switch option?


EDIT: see a download here https://sourceforge.net/projects/artix-lxqt-nitro/files/ISOS/artix-lxqt-nitro-20250921-x86_64.iso/download
and below for how I get over the problems

 

Re: trying to build a custom iso

Reply #1
Bottom line, buildiso only supports the officially supported init systems.
Unless you want to patch buildiso, you will only get a sort of half working iso with unsupported init.

Re: trying to build a custom iso

Reply #2
I understand it may be hard to use an unsupported init, but you didn't answer any of my questions except perhaps the bits related to the init.

If I wanted to build lxqt-runit then do I need  /etc/artools/artools-base.conf?

Should I substitute  https://gitea.artixlinux.org/artix/iso-profiles/ for /usr/share/artools/iso-profiles?

If I can build an iso for lxqt-runit I will be much closer to my end goal as I can follow what buildiso does in a supported case.

Re: trying to build a custom iso

Reply #3
FWIW I did manage to make base-runit and lxqt-runit isos. Both were able to boot, but the base one went into a service startup loop of some sort.

I did manage to boot the lxqt-runit iso into action in a vm. It looked very different from the artix download; I assume more customization has been done there.

I did have to fix links for local.d and pacman.conf in iso-profiles/lxqt/root-overlay/etc when using https://gitea.artixlinux.org/artix/iso-profiles.

I might proceed in a more mechanistic way using a downloaded iso.

Re: trying to build a custom iso

Reply #4
OK I have managed to make artix-lxqt-nitro-20250921-x86_64.iso starting from the latest weekly
artix-lxqt-runit-20250915-x86_64.iso. My construction is approximately as follows

0) extract the livefs and rootfs from the weekly into live and root folders ($LIVE and $ROOT point there).
I'm not sure if I need to actually copy these out from the mounted squash mountpoints, but i thought it
might make things easier to do so,

1) perform the recommended buildiso -p lxqt -i runit -q to create ~/artools-workspace/
& cp -pr /etc/artools ~/.config/artools.

2) cd ~/artools-worspace && git clone https://gitea.artixlinux.org/artix/iso-profiles
the iso-profiles needs modifyingiso-profiles
    ln -sf ../../../common/community/live-overlay/etc/pacman.conf iso-profiles/lxqt/root-overlay/etc/pacman.conf
    cp -pr /etc/local.d iso-profiles/lxqt/root-overlay/etc/local.d
the last uses the local.d from a runit system.

3) start off the buildiso properly buildiso -p lxqt -i runit -x
this is the chroots only

4) Modify the buildiso chroots; remove most runit stuff and replace with nitro from the init-nitro AUR.
Code: [Select]
rootfs="/var/lib/artools/buildiso/lxqt/artix/rootfs"
livefs="/var/lib/artools/buildiso/lxqt/artix/livefs"
rsync -axHAX --delete "${LIVE}"/ "${livefs}"
rsync -axHAX --delete "${ROOT}"/ "${rootfs}"

pacman --sysroot="${rootfs}" --noconfirm -Rdd \
        acpid-runit avahi-runit bluez-runit cronie-runit cryptsetup-runit cups-runit \
        dbus-runit device-mapper-runit dhcpcd-runit elogind-runit haveged-runit lvm2-runit \
        mdadm-runit metalog-runit networkmanager-runit nfs-utils-runit ntp-runit \
        openssh-runit power-profiles-daemon-runit rpcbind-runit rsm rsync-runit \
        runit runit-rc sddm-runit wpa_supplicant-runit

pacman --sysroot="${rootfs}" --noconfirm -U init-nitro-0.3.5-2-x86_64.pkg.tar.zst
rm -rf "${livefs}/etc/runit"
cp -pr "${rootfs}/etc/nitro" "${livefs}/etc/nitro"
rm -f "${livefs}/etc/nitro/levels/default/*"
rm -rf "${livefs}/etc/nitro/levels/sv/*"
cp -pr "${rootfs}/etc/nitro/sv/pacman-init" "${livefs}/etc/nitro/sv/pacman-init"
ln -sf "../../sv/pacman-init" "${livefs}/etc/nitro/levels/default/"
rm -f "${rootfs}/etc/nitro/services/alsabeep"
ln -sf "../../sv/sddm" "${rootfs}/etc/nitro/levels/default/"
 

5) Complete the buildiso construction with
buildiso -p lxqt -i nitro -sc

buildiso -p lxqt -i nitro -bc

buildiso -p lxqt -i nitro -zc

amazingly this all seemed to work and I have an iso. I have tested that it works in a virtmanager vm. The nitro init appeared
to be working in both the live system and after the install in the installed version.

I tried to upload it to github, but it's too large. I don't know where I can put such large files. Sorry Worm_Jim :(

Re: trying to build a custom iso

Reply #5
I believed in you :)

I've seen a lot of distro builds on sourceforge.net. Right now I'm looking at a 2.3 GB build. You can also upload it to mega, where you get 20 GB after registering, but I don't know anything about the limitations!

Re: trying to build a custom iso

Reply #6
I am trying scp into sourceforge; failed in the web upload I suppose that's reasonable as proxies/servers time out.

EDIT: It's been 20 years since I last used sf.net, but it has taken my upload better than github.

Worm_Jim here you are https://sourceforge.net/projects/artix-lxqt-nitro/files/ISOS/

Re: trying to build a custom iso

Reply #7
The nsm tool (derivative of rsm) is included:
Code: [Select]
$ nsm -h
 ╔╗╔╔═╗╔╦╗  Nitro Service Manager for Artix Linux (0.1.0)
 ║║║╚═╗║║║  Source:
 ╝╚╝╚═╝╩ ╩  MIT License

[nsm]    Manage and view nitro services
[nsm]    Made specifically for Artix Linux
[nsm]    Author: replabrobin

USAGE:
nsm [OPTIONS] [SUBCOMMAND] [<ARGS>]
nsm [-u] [-d <dir>] [-h] [-t] [SUBCOMMAND] [...]

OPTIONS:
-c <yes|no|auto>          Enable/disable color output, defaults to auto
-d <dir>                  service directory, defaults to env SVDIR or /etc/nitro/services if unset
-h                        Print this message and exit
-l                        Show log processes, this is a shortcut for 'status -l'
-t<topts>                 Tree view, this is a shortcut for 'status -t with optional tree opts'
-u                        User mode, this is a shortcut for '-d ~/.config/nitro/'
-v                        Increase verbosity
-V                        Print the version number and exit

ENV:
SVDIR                     The service directory to use, passed to the 'sv' command, can
                          be overridden with '-d <dir>'

SUBCOMMANDS:
status [-lt] [filter]     Default subcommand, show process status
  '-t' enables tree mode (process tree)
  '-l' enables log mode (show log processes)
  'filter' is an optional string to match service names against

enable <svc> [...]        install service(s) into the service directory and start

disable <svc> [...]       stop and remove service(s) from the service directory

create-user <user> [...]  create user(s) ie ln -s user@ /user@<user>

delete-user <user> [...]  delete user(s) ie remove service links

destroy-user <user> [...]  delete user(s) and remove ~<user>/.config/nitro


Any other subcommand gets passed directly to the 'nitroctl' command, see nitroctl(1) for the
full list of subcommands and information about what each does specifically.
Common subcommands:

start <service>           Start the service
fast-start <service>      Start the service without waiting
up <service>              Start the service without waiting
stop <service>            Stop the service
down <service>            Stop using SIGTERM or first letter of ./down-signal
restart <service>         Restart the service
reload <service>          Reload the service (send SIGHUP)
runlevel <level>          stop current and start a new runlevel
runlevels                 list runlevel dirs
logs <service>            Outputs the service's logfilenames and their access & error logs from /var/log/<serice>/
alllogs <service>         The same like logs <service>
errorlogs <service>       Outputs the service's logfilenames and their errorlogs from /var/log/<serice>/



EXAMPLES:
nsm                       Show service status in /var/service
nsm status                Same as above
nsm -t                    Show service status + pstree output
nsm status -t             Same as above
nsm status tty            Show service status for any service that matches tty*
nsm check uuidd           Check the uuidd svc, wrapper for 'nitroctl check uuidd'
nsm restart sshd          Restart sshd
nsm -u                    Show service status in ~/.config/nitro/
nsm -u restart ssh-agent  Restart ssh-agent in ~/.config/nitro/ssh-agent

Code: [Select]
$ nsm
  SERVICE              STATE    LIVE  PID      COMMAND              TIME
✔ acpid                UP-0     true  783      acpid                1 minute
✔ agetty@tty1          UP-0     true  789      agetty               1 minute
✔ agetty@tty2          UP-0     true  787      agetty               1 minute
✔ agetty@tty3          UP-0     true  798      agetty               1 minute
✔ agetty@tty4          UP-0     true  795      agetty               1 minute
✔ agetty@tty5          UP-0     true  801      agetty               1 minute
✔ agetty@tty6          UP-0     true  805      agetty               1 minute
✔ alsabeep             UP-0     true  800      alsabeep-daemon      1 minute
✔ avahi-daemon         UP-65280 true  844      avahi-daemon: run    1 minute
✔ bluetoothd           UP-0     true  791      bluetoothd           1 minute
✔ cronie               UP-0     true  792      crond                1 minute
✔ dbus                 UP-0     true  781      dbus-daemon          1 minute
✔ LOG                  UP-0     true  784      logger               1 minute
✔ metalog              UP-0     true  796      metalog [MASTER]     1 minute
✔ NetworkManager       UP-0     true  780      NetworkManager       1 minute
✔ sshd                 UP-0     true  785      sshd -D [listener    1 minute
✔ udevd                UP-0     true  808      udevd                1 minute

Re: trying to build a custom iso

Reply #8
Nice, edit the OP title to something more descriptive like "Artix nitro ISO" or something and include the SF download link in the body.