Building a package in Alpine
Xorg video playback stutters upon suspend / resume
I added the following configuration to xorg.conf
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "AccelMethod" "uxa" EndSection
This seems to resolve video playback issues. What happens is that the video will not play, though audio will. Only the first frame or so is visible. Video seems to be unable to display. This is a documented fix. The important part is AccelMethod. https://wiki.archlinux.org/index.php/Intel_Graphics Also documented in forums that I can't seem to find at the moment.
Python3 Script Won't Run
$ ztdl env: can't execute python
When cloning a hdd, do the following:
- clonezilla or otherwise rsync partitions and recreate partitions to similar boundaries
by default clonezilla might fail, due to -C not being set. There is an icds option for restore, but it can either be edited into /usr/sbin/ocs-onthefly for partclone or just rsync then:
- edit etc fstab uuids
- edit (boot partition) grub/grub.cfg root=uuid=whatever to root=/dev/sda3
- can also be in /dev/sda1 - extlinux.conf
NOTE: normal editing of extlinux.conf can also be done with the extlinux in /etc/
Kernel, Initramfs recovery
If upgrade fails halfway through for any reason (hdd failing, system in a broken state), you may be left with a unbootable machine. Keep an extra /boot/vmlinuz-lts and /boot/initramfs-lts and also a copy of that kernels /lib/modules/<kernelvers> around in case. I keep mine in a folder named /boot/recovery. Backup hdds help here. If you have a corrupt initramfs, or kernel, move the old files back over to /boot from another machine. Now, from the alpine machine (not from a different dist chroot, which didn't work for me btw), boot up, and run mkinitfs again. The command is easy to mess up, so here's the correct one (as of 3.12)
mkinitfs -c /etc/mkinitfs/mkinitfs.conf -b / <kernelvers>
The kernel vers for the new kernel can be found from /lib/modules. It should also have a folder, as the script will load modules into the initramfs ref: https://wiki.alpinelinux.org/wiki/Running_Alpine_in_a_Docker_Container
If you see certain foreign language characters not showing up correctly, you can try installing different fonts.
apk search ttf
But I found that changing in FF opensans to sans-serif fixed some of them for me. opensans had partial support for international characters.
History File Size
Alpine uses ash, not bash.
Histfilesize / histsize should be set correctly.
Search for package
apk search <packagename>
but, there is also
apk search -v --description 'something descriptive'
apk search -v --description 'browser'
Search for who owns a certain file
apk info -W ./somefile.so
Some info options (omitted a few):
Info options: -L, --contents List contents of the PACKAGE -e, --installed Check if PACKAGE is installed -W, --who-owns Print the package owning the specified file -R, --depends List packages that the PACKAGE depends on -r, --rdepends List all packages depending on PACKAGE --replaces List packages whom files PACKAGE might replace -w, --webpage Show URL for more information about PACKAGE -s, --size Show installed size of PACKAGE -d, --description Print description for PACKAGE -a, --all Print all information about PACKAGE
apk Update Between Versions
- A couple releases are supported for a while. So even if a new one is out, the older one may still have updates.
- Follow directions on Wiki for upgrade.
- If you run out of space in boot (as I did) just back up or delete the old kernel and initramfs (they will be in a folder, e.g. 202012) then mkinitfs and grub-mkimage again. should boot.
- If you get errors on apk, there is an apk fix. This might also run mkinitfs and grub again.
Allows for boot / shutdown scripts
Lists all packages installed.
Alpine uses a lot of text files for configuration. Text files are holy because they are accessible, editable, and in plain sight. DBs, hidden files, and registries are evil (when used for program flags/switches). Text files (in Alpine) are also minimal, and obvious where they are located. This makes editing / customization accessible to the novice user.
gcompat - way to run glibc programs