reorganization and some expansion
This commit is contained in:
parent
486050a94e
commit
3930a750cd
@ -33,58 +33,164 @@ Caution can accompany admiration.
|
|||||||
Ultimately, the humans were the ones that produced the computers, and computers amplify human flaws as well as human feats.
|
Ultimately, the humans were the ones that produced the computers, and computers amplify human flaws as well as human feats.
|
||||||
Try to be kind to everyone but don't take anything too seriously.
|
Try to be kind to everyone but don't take anything too seriously.
|
||||||
</P>
|
</P>
|
||||||
|
<P>
|
||||||
|
This guide encompasses usage of IBM-compatible, amd64 processor architecture computers, particularly with POSIX and other UNIX-like operating systems like Linux and DragonflyBSD.
|
||||||
|
Non-standard, proprietary operating systems such as Microsoft Windows or OS/2 are out of scope.
|
||||||
|
</P>
|
||||||
|
|
||||||
<H2>UNIX</H2>
|
<H2>UNIX</H2>
|
||||||
<UL>
|
<UL>
|
||||||
|
<LI><A HREF="https://en.wikipedia.org/wiki/Unix">Unix</A> (Wikipedia)</LI>
|
||||||
<LI><A HREF="https://github.com/dspinellis/unix-history-repo">unix-history-repo</A> (GitHub)</LI>
|
<LI><A HREF="https://github.com/dspinellis/unix-history-repo">unix-history-repo</A> (GitHub)</LI>
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
<H2>ACPI client</H2>
|
<H2>Advanced Configuration and Power Interface</H2>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="https://en.wikipedia.org/wiki/Advanced_Configuration_and_Power_Interface">Advanced Configuration and Power Interface</A> (Wikipedia)</LI>
|
||||||
|
</UL>
|
||||||
<P>
|
<P>
|
||||||
An ACPI client is a program that displays computer ACPI information, typically power and thermal statuses.
|
The Advanced Configuration and Power Interface, or ACPI, is the interface through which the operating system and client programs can control features in your computer's firmware.
|
||||||
The usual text program used is <CODE>acpi(1)</CODE>.
|
Usually this is used with an ACPI client or opaquely controlled by the operating environment.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
On Linux, <CODE>acpi(1)</CODE> can be used to read and control ACPI events manually.
|
||||||
|
<CODE><A HREF="https://sourceforge.net/projects/acpid2/">acpid</A>(8)</CODE>, <CODE><A HREF="#logind">elogind</A>(8)</CODE>,
|
||||||
|
SystemD, and many desktop environments can control the ACPI automatically.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
On NetBSD, see <CODE>acpi(4)</CODE>.
|
||||||
</P>
|
</P>
|
||||||
|
|
||||||
<H2>Alpine</H2>
|
|
||||||
|
<H2>C Language</H2>
|
||||||
|
<P>
|
||||||
|
For compilation, <CODE>tcc(1)</CODE>, <CODE>gcc(1)</CODE>, and <CODE>clang(1)</CODE> are all reasonable choices depending on your needs.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
On Alpine Linux, the standard library headers are in the <CODE>musl-dev</CODE> package.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
In most system package managers, standard library documentation can be found in the <CODE>man-pages</CODE> and <CODE>man-pages-posix</CODE> packages.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
Many Linux software distributions' system package managers have meta-packages that pull all necessities for C development as dependencies.
|
||||||
|
Alpine has <CODE>build-base</CODE> and Debian has <CODE>build-essential</CODE>.
|
||||||
|
</P>
|
||||||
|
|
||||||
|
|
||||||
|
<H2>echo(1)</H2>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="https://www.in-ulm.de/~mascheck/various/echo+printf/">Variations in echo implementations</A></LI>
|
||||||
|
</UL>
|
||||||
|
<P>
|
||||||
|
Don't use <CODE>echo(1)</CODE>, use <CODE>printf(1)</CODE>.
|
||||||
|
<CODE>printf(1)</CODE> simulates the <CODE>printf(3)</CODE> function in the C standard I/O library which has no significant variations, whereas the functionality of <CODE>echo(1)</CODE> can vary between vendors.
|
||||||
|
The following <CODE>sh(1)</CODE> program provides <CODE>echo(1)</CODE> through <CODE>printf(1)</CODE>:
|
||||||
|
</P>
|
||||||
|
<PRE>
|
||||||
|
#!/bin/sh
|
||||||
|
printf "%s" "$*"
|
||||||
|
</PRE>
|
||||||
|
|
||||||
|
<H2 ID="find">find(1)</H2>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="https://en.wikipedia.org/wiki/Find_(Unix)">find</A> (Wikipedia</LI>
|
||||||
|
</UL>
|
||||||
|
|
||||||
|
<H2 ID="fonts">Fonts</H2>
|
||||||
|
|
||||||
|
<H2 ID="fstab">fstab</H2>
|
||||||
|
<P>See <CODE>fstab(5).</CODE></P>
|
||||||
|
<P>postmarketOS requires that the <CODE>localmount</CODE> OpenRC service be enabled for the system to read <CODE>fstab(5)</CODE>.
|
||||||
|
<P>Arch and Artix have fstab generators at <CODE>genfstab(8)</CODE> and <CODE>fstabgen(8)</CODE> respectively in their installation scripts.</P>
|
||||||
|
|
||||||
|
<H2>Linux</H2>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="http://tldp.yolinux.com/HOWTO/subdir/HOWTO-INDEX.html">How to Linux</A></LI>
|
||||||
|
<LI><A HREF="https://christine.website/blog/howto-usermode-linux-2019-07-07">How to Use User Mode Linux</A></LI>
|
||||||
|
<LI><A HREF="https://www.cs.cmu.edu/~awb/linux.history.html">LINUX's History</A></LI>
|
||||||
|
<LI><A HREF="https://www.kernel.org/doc/html/v4.17/index.html">The Linux Kernel documentation</A></LI>
|
||||||
|
<LI><A HREF="https://groups.google.com/g/comp.os.minix/c/wlhw16QWltI">LINUX is obsolete</A></LI>
|
||||||
|
<LI><A HREF="http://www.linuxfromscratch.org/">Linux From Scratch</A></LI>
|
||||||
|
<LI><A HREF="https://www.redhat.com/sysadmin/bios-uefi">Move your Linux from BIOS to UEFI in place</A></LI>
|
||||||
|
<LI><A HREF="https://www.collabora.com/news-and-blog/blog/2020/08/27/using-the-linux-kernel-case-insensitive-feature-in-ext4/">Using the Linux kernel's Case-insensitive feature in Ext4</A></LI>
|
||||||
|
</UL>
|
||||||
|
<H3>Audio</H3>
|
||||||
|
<P>
|
||||||
|
Most audio servers recommend that they be run in userspace with user privileges, with PulseAudio going so far as to exiting when run as root without additional configuration.
|
||||||
|
The Alpine wiki currently recommends <CODE>pipewire(1)</CODE>, with postmarketOS, which is based on Alpine, coming pre-configured with PipeWire.
|
||||||
|
PipeWire is relatively new and the typical audio server used is PulseAudio; Debian and many popular Debian-based distributions come pre-configured with PulseAudio.
|
||||||
|
</P>
|
||||||
|
<H4>ALSA</H4>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="https://wiki.alpinelinux.org/wiki/Main_Page/Adding_sound">Adding sound</A> (Alpine Linux Wiki)</LI>
|
||||||
|
<LI><A HREF="https://bbs.archlinux.org/viewtopic.php?id=256857">ALSA lib conf Evaluate error</A></LI>
|
||||||
|
<LI><A HREF="https://dev.to/setevoy/linux-alsa-lib-pcmdmixc1108sndpcmdmixopen-unable-to-open-slave-38on">ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave</A></LI>
|
||||||
|
</UL>
|
||||||
|
<P>
|
||||||
|
The Alpine wiki ("Adding sound") says to install <CODE>alsa-conf</CODE>, <CODE>alsa-lib</CODE>, and <CODE>alsa-utils</CODE>,
|
||||||
|
add yourself to the <CODE>audio</CODE> group, and then do some more configuration that I've never needed to do:
|
||||||
|
Use <CODE>alsamixer(1)</CODE> to find a working sound card (press <CODE>F6</CODE> from the first screen ALSAMixer presents)
|
||||||
|
and edit <CODE>/usr/share/alsa/alsa.conf</CODE> and change <CODE>defaults.ctl.card</CODE> and <CODE>defaults.pcm.card</CODE> to the sound card that works.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
The Alpine wiki doesn't mention this but you'll need to enable the <CODE>alsa</CODE> OpenRC service and either start it or reboot.
|
||||||
|
I also installed <CODE>gstreamer</CODE> but I don't know why.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
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.
|
||||||
|
</P>
|
||||||
|
<H4>OSS</H4>
|
||||||
|
<P>
|
||||||
|
Deprecated, unfortunately.
|
||||||
|
</P>
|
||||||
|
<H4>PipeWire</H4>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="https://wiki.alpinelinux.org/wiki/PipeWire">PipeWire</A> (Alpine Linux Wiki)</LI>
|
||||||
|
<LI><A HREF="https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home">PipeWire</A> (FreeDesktop Wiki)</LI>
|
||||||
|
</UL>
|
||||||
|
<P>
|
||||||
|
Provided by the <CODE>pipewire</CODE> package on Alpine.
|
||||||
|
</P>
|
||||||
|
<PRE>
|
||||||
|
RTKit error: org.freedesktop.DBus.Error.ServiceUnknown
|
||||||
|
</PRE>
|
||||||
|
<P>
|
||||||
|
This means you need <CODE>rtkit</CODE> installed and running through your initialization system.
|
||||||
|
</P>
|
||||||
|
<H4>PulseAudio</H4>
|
||||||
|
<P>
|
||||||
|
On Alpine you'll need the <CODE>pulseaudio</CODE>, <CODE>pulseaudio-alsa</CODE>, and <CODE>alsa-plugins-pulse</CODE> packages for PulseAudio with ALSA compatibility.
|
||||||
|
Start <CODE>pulseaudio(1)</CODE> when you want audio, ideally in your <CODE>.xinitrc</CODE>.
|
||||||
|
</P>
|
||||||
|
|
||||||
|
<H3>Distribution</H3>
|
||||||
|
<P>
|
||||||
|
Linux is usually obtained as part of a software distribution put together to form a useable operating system.
|
||||||
|
</P>
|
||||||
|
|
||||||
|
<H4>Alpine</H4>
|
||||||
<UL>
|
<UL>
|
||||||
<LI><A HREF="https://pkgs.alpinelinux.org/contents">Alpine repositories content search</A></LI>
|
<LI><A HREF="https://pkgs.alpinelinux.org/contents">Alpine repositories content search</A></LI>
|
||||||
</UL>
|
</UL>
|
||||||
<H3>Always install manual pages</H3>
|
<H5>Always install manual pages</H5>
|
||||||
<P>
|
<P>
|
||||||
Alpine doesn't include man pages in program packages to save on space, instead keeping them in <CODE>[<I>package</I>]-doc</CODE> sibling packages.
|
Alpine doesn't include man pages in program packages to save on space, instead keeping them in <CODE>[<I>package</I>]-doc</CODE> sibling packages.
|
||||||
To always install doc packages with program packages, <CODE>apk add docs</CODE>.
|
To always install doc packages with program packages, <CODE>apk add docs</CODE>.
|
||||||
</P>
|
</P>
|
||||||
<H3>postmarketOS</H3>
|
|
||||||
<P>
|
|
||||||
postmarketOS is an Alpine-based Linux software distribution that makes configuring and using Linux easy on mobile devices.
|
|
||||||
</P>
|
|
||||||
<H4>Random MAC address generation on Wifi</H4>
|
|
||||||
<P>
|
|
||||||
By default, postmarketOS will generate a random software MAC address when connecting to a new WLAN network.
|
|
||||||
You can disable this by adding a NetworkManager rule.
|
|
||||||
In <CODE>/etc/NetworkManager/conf.d/</CODE> you can make a file with any name that has the following:
|
|
||||||
</P>
|
|
||||||
<PRE><CODE>
|
|
||||||
[device]
|
|
||||||
wifi.scan-rand-mac-address=no
|
|
||||||
</CODE></PRE>
|
|
||||||
<P>
|
|
||||||
On a live system you can then <CODE>rc-service networkmanager restart</CODE> to restart NetworkManager and have it load the new configuration.
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H2>Arch and Artix</H2>
|
<H4>Arch</H4>
|
||||||
<H3>Bootstrapping: Installing essential packages</H3>
|
|
||||||
<P>
|
<P>
|
||||||
On Artix, use <CODE>basestrap(8)</CODE>.
|
Arch is known for using the latest versions of programs, which has given it an undeserved reputation of instability.
|
||||||
On Arch, use <CODE>pacstrap(8)</CODE>.
|
</P>
|
||||||
|
<H5>Bootstrapping</H5>
|
||||||
|
<P>
|
||||||
|
Use <CODE>pacstrap(8)</CODE>.
|
||||||
</P>
|
</P>
|
||||||
<P>
|
<P>
|
||||||
At a minimum you need <CODE>base</CODE> on both Arch and Artix.
|
At a minimum you need the <CODE>base</CODE> package.
|
||||||
On Artix, you need to select the initialization you want to use: <CODE>66</CODE>, <CODE>dinit</CODE>, <CODE>openrc</CODE>, <CODE>runit</CODE>, or <CODE>s6-base</CODE>.
|
Select a kernel and install the corresponding package; <CODE>linux</CODE>, <CODE>linux-lts</CODE>, or another Linux configuration or fork.
|
||||||
On both Arch and Artix, select a kernel; <CODE>linux</CODE>, <CODE>linux-lts</CODE>, or another Linux configuration or fork.
|
The Arch wiki says you need to install <CODE>linux-firmware</CODE>, this isn't strictly necessary but it is recommended.
|
||||||
Arch says you need to install <CODE>linux-firmware</CODE>, technically you don't need to do so but you should.
|
|
||||||
Artix says you need to install the appropriate elogind package (<CODE>elogind-$(<B>INIT_SYSTEM</B>)</CODE>; e.g. <CODE>elogind-66</CODE>).
|
|
||||||
This isn't necessary if you aren't using elogind, but you <I>most likely</I> want elogind.
|
|
||||||
Install <CODE>base-devel</CODE> if you plan on using the AUR or if you don't know what the AUR is yet.
|
Install <CODE>base-devel</CODE> if you plan on using the AUR or if you don't know what the AUR is yet.
|
||||||
</P>
|
</P>
|
||||||
<P>
|
<P>
|
||||||
@ -92,7 +198,7 @@ It's also a good idea to install any utilities you'll need on the bootstrapped s
|
|||||||
Text editors, network managers or utilities, and other administration tools, for example.
|
Text editors, network managers or utilities, and other administration tools, for example.
|
||||||
Manual utilities such as <CODE>man-db</CODE> and others would also be useful.
|
Manual utilities such as <CODE>man-db</CODE> and others would also be useful.
|
||||||
</P>
|
</P>
|
||||||
<H3>Ubiquitous packages missing</H3>
|
<H5>Ubiquitous packages missing</H5>
|
||||||
<P>From the anals of my notes, 2021-06-04:</P>
|
<P>From the anals of my notes, 2021-06-04:</P>
|
||||||
<PRE>
|
<PRE>
|
||||||
Had an issue with pacman missing some ubiquitous packages (esr's `ascii`, xorg-xev, etc).
|
Had an issue with pacman missing some ubiquitous packages (esr's `ascii`, xorg-xev, etc).
|
||||||
@ -127,72 +233,81 @@ Include = /etc/pacman.d/mirrorlist-arch
|
|||||||
#Include = /etc/pacman.d/mirrorlist-arch
|
#Include = /etc/pacman.d/mirrorlist-arch
|
||||||
```
|
```
|
||||||
</PRE>
|
</PRE>
|
||||||
|
<H4>Artix</H4>
|
||||||
<H2>C Language</H2>
|
<UL>
|
||||||
|
<LI><A HREF="https://artixlinux.org/">Artix Linux</A></LI>
|
||||||
|
<LI><A HREF="https://en.wikipedia.org/wiki/Artix_Linux">Artix Linux</A> (Wikipedia)</LI>
|
||||||
|
</UL>
|
||||||
<P>
|
<P>
|
||||||
For compilation, <CODE>tcc(1)</CODE>, <CODE>gcc(1)</CODE>, and <CODE>clang(1)</CODE> are all reasonable choices depending on your needs.
|
Artix refers to the series of Arch derivatives which use initialization systems other than SystemD's.
|
||||||
</P>
|
</P>
|
||||||
|
<H5>Bootstrapping</H5>
|
||||||
<P>
|
<P>
|
||||||
On Alpine Linux, the standard library headers are in the <CODE>musl-dev</CODE> package.
|
This process differs from Arch's bootstrapping process.
|
||||||
</P>
|
Artix uses <CODE>basestrap(8)</CODE> rather than <CODE>pacstrap(8)</CODE>;
|
||||||
<P>
|
you need to select the initialization you want to use: <CODE>66</CODE>, <CODE>dinit</CODE>, <CODE>openrc</CODE>, <CODE>runit</CODE>, or <CODE>s6-base</CODE>, as a package separate from <CODE>base</CODE>;
|
||||||
In most system package managers, standard library documentation can be found in the <CODE>man-pages</CODE> and <CODE>man-pages-posix</CODE> packages.
|
and Artix's official wiki says you need to install the appropriate <A HREF="#logind"><CODE>elogind</CODE></A> package (<CODE>elogind-[<I>initialization system</I>]</CODE> e.g. <CODE>elogind-66</CODE>) but like <CODE>linux-firmware</CODE> though it is helpful it isn't strictly necessary.
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
Many Linux software distributions' system package managers have meta-packages that pull all necessities for C development as dependencies.
|
|
||||||
Alpine has <CODE>build-base</CODE> and Debian has <CODE>build-essential</CODE>.
|
|
||||||
</P>
|
</P>
|
||||||
|
|
||||||
<H2>Debian</H2>
|
<H4>Debian</H4>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="https://www.debian.org/">Debian</A></LI>
|
||||||
|
<LI><A HREF="https://en.wikipedia.org/wiki/Debian">Debian</A> (Wikipedia)</LI>
|
||||||
|
</UL>
|
||||||
<P>
|
<P>
|
||||||
Debian is a Linux software distribution known for its stability and longevity.
|
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.
|
Debian uses SystemD as its initialization system, the GNU core utilities, and dpkg and apt for package management.
|
||||||
</P>
|
</P>
|
||||||
<H3>Ubuntu</H3>
|
<P>
|
||||||
|
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.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<A HREF="#pkgsrc">pkgsrc</A> can be used on Debian.
|
||||||
|
</P>
|
||||||
|
|
||||||
|
<H4>postmarketOS</H4>
|
||||||
|
<P>
|
||||||
|
postmarketOS is an Alpine-based Linux software distribution that makes configuring and using Linux easy on mobile devices.
|
||||||
|
</P>
|
||||||
|
<H5>Random MAC address generation on Wifi</H5>
|
||||||
|
<P>
|
||||||
|
By default, postmarketOS will generate a random software MAC address when connecting to a new WLAN network.
|
||||||
|
You can disable this by adding a NetworkManager rule.
|
||||||
|
In <CODE>/etc/NetworkManager/conf.d/</CODE> you can make a file with any name that has the following:
|
||||||
|
</P>
|
||||||
|
<PRE><CODE>
|
||||||
|
[device]
|
||||||
|
wifi.scan-rand-mac-address=no
|
||||||
|
</CODE></PRE>
|
||||||
|
<P>
|
||||||
|
On a live system you can then <CODE>rc-service networkmanager restart</CODE> to restart NetworkManager and have it load the new configuration.
|
||||||
|
</P>
|
||||||
|
|
||||||
|
<H4>Ubuntu</H4>
|
||||||
<UL>
|
<UL>
|
||||||
<LI><A HREF="https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE/">How to get root on Ubuntu 20.04 by pretending nobody's /home</A></LI>
|
<LI><A HREF="https://securitylab.github.com/research/Ubuntu-gdm3-accountsservice-LPE/">How to get root on Ubuntu 20.04 by pretending nobody's /home</A></LI>
|
||||||
</UL>
|
</UL>
|
||||||
|
<P>
|
||||||
|
Ubuntu is a derivative of Debian.
|
||||||
|
</P>
|
||||||
|
|
||||||
<H2>echo(1)</H2>
|
<H3 ID="logind">logind</H3>
|
||||||
<UL>
|
<UL>
|
||||||
<LI><A HREF="https://www.in-ulm.de/~mascheck/various/echo+printf/">Variations in echo implementations</A></LI>
|
<LI><A HREF="https://github.com/elogind/elogind">elogind</A></LI>
|
||||||
|
<LI><A HREF="https://wiki.gentoo.org/wiki/Elogind">elogind</A> (Gentoo Wiki)</LI>
|
||||||
|
<LI><A HREF="https://www.freedesktop.org/software/systemd/man/org.freedesktop.login1.html">org.freedesktop.login1</A></LI>
|
||||||
|
<LI><A HREF="https://nixos.wiki/wiki/Logind">logind</A> (NixOS Wiki)</LI>
|
||||||
</UL>
|
</UL>
|
||||||
<P>
|
<P>
|
||||||
Don't use <CODE>echo(1)</CODE>, use <CODE>printf(1)</CODE>.
|
logind (<CODE>systemd-logind.service(8)</CODE>) 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.
|
||||||
<CODE>printf(1)</CODE> simulates the <CODE>printf(3)</CODE> function in the C standard I/O library which has no significant variations, whereas the functionality of <CODE>echo(1)</CODE> can vary between vendors.
|
It also handles <A HREF="#acpi">ACPI</A> events.
|
||||||
The following <CODE>sh(1)</CODE> program provides <CODE>echo(1)</CODE> through <CODE>printf(1)</CODE>:
|
It can be configured in <CODE>logind.conf(5)</CODE>.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
On systems without SystemD and with conflicting software, <CODE>elogind(8)</CODE> may be used.
|
||||||
</P>
|
</P>
|
||||||
<PRE>
|
|
||||||
#!/bin/sh
|
|
||||||
printf "%s" "$*"
|
|
||||||
</PRE>
|
|
||||||
|
|
||||||
<H2 ID="fonts">Fonts</H2>
|
<H3>Xenia</H3>
|
||||||
|
|
||||||
<H2 ID="fstab">fstab</H2>
|
|
||||||
<P>See <CODE>fstab(5).</CODE></P>
|
|
||||||
<P>postmarketOS requires that the <CODE>localmount</CODE> OpenRC service be enabled for the system to read <CODE>fstab(5)</CODE>.
|
|
||||||
<P>Arch and Artix have fstab generators at <CODE>genfstab(8)</CODE> and <CODE>fstabgen(8)</CODE> respectively in their installation scripts.</P>
|
|
||||||
|
|
||||||
<H2>Linux</H2>
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="http://tldp.yolinux.com/HOWTO/subdir/HOWTO-INDEX.html">How to Linux</A></LI>
|
|
||||||
<LI><A HREF="https://christine.website/blog/howto-usermode-linux-2019-07-07">How to Use User Mode Linux</A></LI>
|
|
||||||
<LI><A HREF="https://www.cs.cmu.edu/~awb/linux.history.html">LINUX's History</A></LI>
|
|
||||||
<LI><A HREF="https://www.kernel.org/doc/html/v4.17/index.html">The Linux Kernel documentation</A></LI>
|
|
||||||
<LI><A HREF="https://groups.google.com/g/comp.os.minix/c/wlhw16QWltI">LINUX is obsolete</A></LI>
|
|
||||||
<LI><A HREF="http://www.linuxfromscratch.org/">Linux From Scratch</A></LI>
|
|
||||||
<LI><A HREF="https://www.redhat.com/sysadmin/bios-uefi">Move your Linux from BIOS to UEFI in place</A></LI>
|
|
||||||
<LI><A HREF="https://www.collabora.com/news-and-blog/blog/2020/08/27/using-the-linux-kernel-case-insensitive-feature-in-ext4/">Using the Linux kernel's Case-insensitive feature in Ext4</A></LI>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H3>Culture</H3>
|
|
||||||
<H4>Pronunciation</H4>
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="https://www.linux.org/threads/common-pronunciations-of-linux-directories-commands-etc.4445/">Common pronunciations of Linux directories, commands, etc</A></LI>
|
|
||||||
</UL>
|
|
||||||
|
|
||||||
<H4>Xenia</H4>
|
|
||||||
<UL>
|
<UL>
|
||||||
<LI><A HREF="http://yerf.metafur.org/date/1996-07-14">A hacker fox!</A></LI>
|
<LI><A HREF="http://yerf.metafur.org/date/1996-07-14">A hacker fox!</A></LI>
|
||||||
</UL>
|
</UL>
|
||||||
@ -200,8 +315,6 @@ printf "%s" "$*"
|
|||||||
Xenia was an entry for the Linux logo competition which Tux eventually won.
|
Xenia was an entry for the Linux logo competition which Tux eventually won.
|
||||||
</P>
|
</P>
|
||||||
|
|
||||||
<H2 ID="login_manager">Login manager</H2>
|
|
||||||
<P>Use <CODE>elogind</CODE>.</P>
|
|
||||||
|
|
||||||
<H2>Make utility</H2>
|
<H2>Make utility</H2>
|
||||||
<P>
|
<P>
|
||||||
@ -308,18 +421,6 @@ Configuration is in <CODE>/etc/conf.d/dmcrypt</CODE> and further configuration s
|
|||||||
<LI><A HREF="https://en.wikipedia.org/wiki/TestDisk">TestDisk</A> (Wikipedia)</LI>
|
<LI><A HREF="https://en.wikipedia.org/wiki/TestDisk">TestDisk</A> (Wikipedia)</LI>
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
<H2>PCI Utilities</H2>
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="https://github.com/pciutils/pciutils">pciutils/pciutils</A> (GitHub)</LI>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
Available as <CODE>sysutils/pciutils</CODE> from pkgsrc.
|
|
||||||
Supplies <CODE>lspci(8)</CODE>, <CODE>setpci(8)</CODE>, and <CODE>update-pciids(8)</CODE>.
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
<CODE>update-pciids(8)</CODE> is not part of the <CODE>pciutils</CODE> package in Alpine Linux repositories.
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H2>NetBSD</H2>
|
<H2>NetBSD</H2>
|
||||||
<UL>
|
<UL>
|
||||||
<LI><A HREF="http://netbsd.org/">netbsd.org</A></LI>
|
<LI><A HREF="http://netbsd.org/">netbsd.org</A></LI>
|
||||||
@ -377,6 +478,22 @@ These leave your system open to man-in-the-middle attacks.
|
|||||||
<LI><A HREF="https://www.unitedbsd.com/d/110-upgrading-netbsd-using-sysinst">Upgrading NetBSD using sysinst</A></LI>
|
<LI><A HREF="https://www.unitedbsd.com/d/110-upgrading-netbsd-using-sysinst">Upgrading NetBSD using sysinst</A></LI>
|
||||||
</UL>
|
</UL>
|
||||||
|
|
||||||
|
<H2>PCI Utilities</H2>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="https://github.com/pciutils/pciutils">pciutils/pciutils</A> (GitHub)</LI>
|
||||||
|
</UL>
|
||||||
|
<P>
|
||||||
|
Available as <CODE>sysutils/pciutils</CODE> from pkgsrc.
|
||||||
|
Supplies <CODE>lspci(8)</CODE>, <CODE>setpci(8)</CODE>, and <CODE>update-pciids(8)</CODE>.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
<CODE>update-pciids(8)</CODE> is not part of the <CODE>pciutils</CODE> package in Alpine Linux repositories.
|
||||||
|
</P>
|
||||||
|
<P>
|
||||||
|
NetBSD includes <CODE>pcictl(8)</CODE> which offers similar functionality.
|
||||||
|
<CODE>pcictl pci0 list</CODE> outputs roughly the same information as <CODE>lspci(8)</CODE>, though <CODE>lspci(8)</CODE> may offer slightly more detailed information.
|
||||||
|
</P>
|
||||||
|
|
||||||
<H2 ID="pkgsrc">pkgsrc</H2>
|
<H2 ID="pkgsrc">pkgsrc</H2>
|
||||||
<UL>
|
<UL>
|
||||||
<LI><A HREF="http://www.netbsd.org/docs/pkgsrc/"</A>the pkgsrc user's guide</A></LI>
|
<LI><A HREF="http://www.netbsd.org/docs/pkgsrc/"</A>the pkgsrc user's guide</A></LI>
|
||||||
@ -390,9 +507,10 @@ These leave your system open to man-in-the-middle attacks.
|
|||||||
See <CODE>pkgtools/pkg_rolling_replace</CODE>.
|
See <CODE>pkgtools/pkg_rolling_replace</CODE>.
|
||||||
</P>
|
</P>
|
||||||
|
|
||||||
<H2 ID="power">Power</H2>
|
<H2 ID="power">Power settings</H2>
|
||||||
<P>Much of this can be configured in the ACPI settings in your <A HREF="#login_manager">login manager</A>, provided you have one running that can do this.</P>
|
<P>
|
||||||
<P>Check out <CODE>tlp</CODE> for Thinkpads and some other Lenovo devices.</P>
|
Power is managed by <A HREF="#acpi">ACPI</A>.
|
||||||
|
</P>
|
||||||
|
|
||||||
<H2>SSH keys</H2>
|
<H2>SSH keys</H2>
|
||||||
<UL>
|
<UL>
|
||||||
@ -408,6 +526,10 @@ Microsoft GitHub documentation suggests a user create a key with <CODE>ssh-keyge
|
|||||||
This generates an <A HREF="https://en.wikipedia.org/wiki/EdDSA#Ed25519">Ed25519</A> SSH key with an e-mail address in the key comment.
|
This generates an <A HREF="https://en.wikipedia.org/wiki/EdDSA#Ed25519">Ed25519</A> SSH key with an e-mail address in the key comment.
|
||||||
</P>
|
</P>
|
||||||
|
|
||||||
|
<H2>Pronunciation</H2>
|
||||||
|
<UL>
|
||||||
|
<LI><A HREF="https://www.linux.org/threads/common-pronunciations-of-linux-directories-commands-etc.4445/">Common pronunciations of Linux directories, commands, etc</A></LI>
|
||||||
|
</UL>
|
||||||
<H2>Task management</H2>
|
<H2>Task management</H2>
|
||||||
<P><CODE>top(1)</CODE> comes with busybox, otherwise use <CODE>htop</CODE>.</P>
|
<P><CODE>top(1)</CODE> comes with busybox, otherwise use <CODE>htop</CODE>.</P>
|
||||||
|
|
||||||
@ -559,55 +681,6 @@ and xsetroot as <CODE>xorg-xsetroot</CODE>.
|
|||||||
</P>
|
</P>
|
||||||
<P>Alpine has xinput as <CODE>xinput</CODE>.</P>
|
<P>Alpine has xinput as <CODE>xinput</CODE>.</P>
|
||||||
|
|
||||||
<H3>Audio</H3>
|
|
||||||
<P>
|
|
||||||
Most audio servers recommend that they be run in userspace with user privileges, with PulseAudio going so far as to exiting when run as root without additional configuration.
|
|
||||||
The Alpine wiki currently recommends <CODE>pipewire(1)</CODE>, with postmarketOS, which is based on Alpine, coming pre-configured with PipeWire.
|
|
||||||
PipeWire is relatively new and the typical audio server used is PulseAudio; Debian and many popular Debian-based distributions come pre-configured with PulseAudio.
|
|
||||||
</P>
|
|
||||||
<H4>ALSA</H4>
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="https://wiki.alpinelinux.org/wiki/Main_Page/Adding_sound">Adding sound</A> (Alpine Linux Wiki)</LI>
|
|
||||||
<LI><A HREF="https://bbs.archlinux.org/viewtopic.php?id=256857">ALSA lib conf Evaluate error</A></LI>
|
|
||||||
<LI><A HREF="https://dev.to/setevoy/linux-alsa-lib-pcmdmixc1108sndpcmdmixopen-unable-to-open-slave-38on">ALSA lib pcm_dmix.c:1108:(snd_pcm_dmix_open) unable to open slave</A></LI>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
The Alpine wiki ("Adding sound") says to install <CODE>alsa-conf</CODE>, <CODE>alsa-lib</CODE>, and <CODE>alsa-utils</CODE>,
|
|
||||||
add yourself to the <CODE>audio</CODE> group, and then do some more configuration that I've never needed to do:
|
|
||||||
Use <CODE>alsamixer(1)</CODE> to find a working sound card (press <CODE>F6</CODE> from the first screen ALSAMixer presents)
|
|
||||||
and edit <CODE>/usr/share/alsa/alsa.conf</CODE> and change <CODE>defaults.ctl.card</CODE> and <CODE>defaults.pcm.card</CODE> to the sound card that works.
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
The Alpine wiki doesn't mention this but you'll need to enable the <CODE>alsa</CODE> OpenRC service and either start it or reboot.
|
|
||||||
I also installed <CODE>gstreamer</CODE> but I don't know why.
|
|
||||||
</P>
|
|
||||||
<P>
|
|
||||||
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.
|
|
||||||
</P>
|
|
||||||
<H4>OSS</H4>
|
|
||||||
<P>
|
|
||||||
Deprecated, unfortunately.
|
|
||||||
</P>
|
|
||||||
<H4>PipeWire</H4>
|
|
||||||
<UL>
|
|
||||||
<LI><A HREF="https://wiki.alpinelinux.org/wiki/PipeWire">PipeWire</A> (Alpine Linux Wiki)</LI>
|
|
||||||
<LI><A HREF="https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/home">PipeWire</A> (FreeDesktop Wiki)</LI>
|
|
||||||
</UL>
|
|
||||||
<P>
|
|
||||||
Provided by the <CODE>pipewire</CODE> package on Alpine.
|
|
||||||
</P>
|
|
||||||
<PRE>
|
|
||||||
RTKit error: org.freedesktop.DBus.Error.ServiceUnknown
|
|
||||||
</PRE>
|
|
||||||
<P>
|
|
||||||
This means you need <CODE>rtkit</CODE> installed and running through your initialization system.
|
|
||||||
</P>
|
|
||||||
<H4>PulseAudio</H4>
|
|
||||||
<P>
|
|
||||||
On Alpine you'll need the <CODE>pulseaudio</CODE>, <CODE>pulseaudio-alsa</CODE>, and <CODE>alsa-plugins-pulse</CODE> packages for PulseAudio with ALSA compatibility.
|
|
||||||
Start <CODE>pulseaudio(1)</CODE> when you want audio, ideally in your <CODE>.xinitrc</CODE>.
|
|
||||||
</P>
|
|
||||||
|
|
||||||
<H3>Media</H3>
|
<H3>Media</H3>
|
||||||
<P>
|
<P>
|
||||||
<CODE>mpv(1)</CODE> and <CODE>vlc(1)</CODE> are good options.
|
<CODE>mpv(1)</CODE> and <CODE>vlc(1)</CODE> are good options.
|
||||||
|
Loading…
Reference in New Issue
Block a user