diff --git a/wiki/unix/linux.m4 b/wiki/unix/linux.m4 index d259850..f7954ef 100644 --- a/wiki/unix/linux.m4 +++ b/wiki/unix/linux.m4 @@ -1,16 +1,16 @@ _header(`Linux') - +_bibliography(` +_bentr(`_link(`How to Linux', `http://tldp.yolinux.com/HOWTO/subdir/HOWTO-INDEX.html')') +_bentr(`_link(`How to Use User Mode Linux', `https://christine.website/blog/howto-usermode-linux-2019-07-07')') +_bentr(`LINUX's History') +_bentr(`_link(`The Linux Kernel documentation', `https://www.kernel.org/doc/html/v4.17/index.html')') +_bentr(`_link(`LINUX is obsolete', `https://groups.google.com/g/comp.os.minix/c/wlhw16QWltI')') +_bentr(`_link(`Linux From Scratch', `http://www.linuxfromscratch.org/')') +_bentr(`_link(`Move your Linux from BIOS to UEFI in place', `https://www.redhat.com/sysadmin/bios-uefi')') +_bentr(`Using the Linux kernel's Case-insensitive feature in Ext4') +') -

ACPI

+_subheader(`ACPI') _bibliography(` _bentr(`_ref(`#ACPI')') ') @@ -32,11 +32,11 @@ The Alpine wiki currently recommends _man(`pipewire(1)'), with postmarketOS, whi PipeWire is relatively new and the typical audio server used is PulseAudio; Debian and many popular Debian-based distributions come pre-configured with PulseAudio.

_subsubheader(`ALSA') - +_bibliography(` +_bentr(`Adding sound (Alpine Linux Wiki)') +_bentr(`ALSA lib conf Evaluate error') +_bentr(`ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave') +')

The Alpine wiki ("Adding sound") says to install _code(`alsa-conf'), _code(`alsa-lib'), and _code(`alsa-utils'), add yourself to the _code(`audio') group, and then do some more configuration that I've never needed to do: @@ -50,15 +50,15 @@ I also installed _code(`gstreamer') but I don't know why.

ALSA is clunky, many people prefer to use a frontend such as Pipewire or PulseAudio that exposes its own interface while remaining compatible with ALSA.

-

OSS

+_subsubheader(`OSS')

Deprecated, unfortunately.

-

PipeWire

- +_subsubheader(`PipeWire') +_bibliography(` +_bentr(`PipeWire (Alpine Linux Wiki)') +_bentr(`PipeWire (FreeDesktop Wiki)') +')

Provided by the _code(`pipewire') package on Alpine.

@@ -68,7 +68,7 @@ RTKit error: org.freedesktop.DBus.Error.ServiceUnknown

This means you need _program(`rtkit') installed and running through your initialization system.

-

PulseAudio

+_subsubheader(`PulseAudio')

On Alpine you'll need the _program(`pulseaudio'), _program(`pulseaudio-alsa'), and _program(`alsa-plugins-pulse') packages for PulseAudio with ALSA compatibility. Start _man(`pulseaudio(1)') when you want audio, ideally in your _file(`.xinitrc'). @@ -78,14 +78,14 @@ _subheader(`Distributions')

Linux is usually obtained as part of a software distribution put together to form a useable operating system.

-

Alpine

+_subsubheader(`Alpine')

Alpine Linux is a small Linux distribution based on musl libc. Its main purpose is to serve as a server distribution, however many have found use for it as a desktop distribution.

- +_bibliography(` +_bentr(`Alpine repositories content search') +')
Bootstrapping

Alpine's bootstrapping procedure is quite manual; you should probably use _program(`setup-alpine'). @@ -102,7 +102,10 @@ http://dl-cdn.alpinelinux.org/alpine/edge/testing _code(`edge') may be replaced with a stable branch, the latest being _code(`v3.17') as of writing. -

  • Run _command(`apk --root /mnt add --initdb alpine-base'). This is an ordinary _man(`apk-add(8)') call; you may wish to install necessities such as a kernel, firmware, and a bootloader at the same time.
  • +
  • +Run _command(`apk --root /mnt add --initdb alpine-base'). +This is an ordinary _man(`apk-add(8)') call; you may wish to install necessities such as a kernel, firmware, and a bootloader at the same time. +
  • Alpine does not have a _man(`chroot(1)') helper; you must manually do that with a one-liner such as @@ -117,7 +120,7 @@ After chrooting in, you must configure basics such as users, passwords, _man(`fs Alpine doesn't include man pages in program packages to save on space, instead keeping them in _code(`[package]-doc') sibling packages. To always install doc packages with program packages, _code(`apk add docs').

    -

    Arch

    +_subsubheader(`Arch')

    Arch is known for using the latest versions of programs, which has given it an undeserved reputation of instability.

    @@ -171,11 +174,11 @@ Include = /etc/pacman.d/mirrorlist-arch #Include = /etc/pacman.d/mirrorlist-arch ''' -

    Artix

    - +_subsubheader(`Artix') +_bibliography(` +_bentr(`Artix Linux') +_bentr(`Artix Linux (Wikipedia)') +')

    Artix is a Linux software distribution based on Arch that doesn't mandate SystemD as its initialization system.

    @@ -187,11 +190,11 @@ you need to select the initialization you want to use: _code(`66'), _code(`dinit and Artix's official wiki says you need to install the appropriate _link(`#logind', `_code(`elogind')') package (_code(`elogind-[initialization system]') e.g. _code(`elogind-66')) but like _code(`linux-firmware') though it is helpful it isn't strictly necessary.

    -

    Debian

    - +_subsubheader(`Debian') +_bibliography(` +_bentr(`Debian') +_bentr(`Debian (Wikipedia)') +')

    Debian is known for its stability and longevity. Debian uses SystemD as its initialization system, the GNU core utilities, and dpkg and apt for package management. @@ -200,7 +203,7 @@ Debian uses SystemD as its initialization system, the GNU core utilities, and dp While it's possible to use non-Linux kernels within Debian, it's uncommon and the only non-Linux option currently maintained is the GNU HURD microkernel.

    -

    postmarketOS

    +_subsubheader(`postmarketOS')

    postmarketOS is an Alpine-based Linux software distribution that makes configuring and using Linux easy on mobile devices.

    @@ -218,21 +221,21 @@ wifi.scan-rand-mac-address=no On a live system you can then _code(`rc-service networkmanager restart') to restart NetworkManager and have it load the new configuration.

    -

    Ubuntu

    - +_subsubheader(`Ubuntu') +_bibliography(` +_bentr(`How to get root on Ubuntu 20.04 by pretending nobody's /home') +')

    Ubuntu is a derivative of Debian.

    _subheader(`logind') - +_bibliography(` +_bentr(`elogind') +_bentr(`elogind (Gentoo Wiki)') +_bentr(`org.freedesktop.login1') +_bentr(`logind (NixOS Wiki)') +')

    logind (_code(`systemd-logind.service(8)')) is a component of SystemD that exposes information about active users on the system via the org.freedesktop.login1 D-Bus interface which is used by the popular desktop environments GNOME and KDE. It also handles _ref(`#ACPI') events. @@ -243,9 +246,9 @@ On systems without SystemD and with conflicting software, _code(`elogind(8)') ma

    _subheader(`util-linux') - +_bibliography(` +_bentr(`_link(`util-linux', `https://en.wikipedia.org/wiki/Util-linux') (Wikipedia)') +')

    _code(`util-linux') is distributed on all popular Linux distributions and contains utilities users may expect to be already present on their systems, like _man(`more(1)') or _man(`hexdump(1)').