@@ -22,7 +22,7 @@ your CI/CD minutes are numbered.
## BTW - Here's an Ansible playbook {#btw-here-s-an-ansible-playbook}
{{<figuresrc="/ox-hugo/gitlab-runner-ansible.png"caption="Figure 1: screenshot demonstrating success using the playbook">}}
{{<figuresrc="/ox-hugo/gitlab-runner-ansible.png"caption="<span class=\"figure-number\">Figure 1: </span>screenshot demonstrating success using the playbook" >}}
I wrote a short playbook based off of the steps outlined below. You can check
it out here: <https://gitlab.com/winny/gitlab-runner-playbook/-/tree/master>
...
...
@@ -66,7 +66,7 @@ Register the GitLab Runner. You'll need to specify a default docker image. I
usually do `alpine:latest`, but it shouldn't matter because the `image` should
be specified in your `.gitlab-ci.yml` for maximum clarity. You will also need
the registration token from your GitLab project's CI/CD page. You can find it
by clicking on Settings -> CI/CD -> expand "Runners". This is also where your
by clicking on Settings -> CI/CD -> expand "Runners". This is also where your
runners will be listed.
```sh
...
...
@@ -142,8 +142,8 @@ guest. You also do not need to expose your guest to the internet or even the
local LAN - it only needs to dial out via a NAT.
Another cool thing learned when working on this is one can use the
[`community.libvirt.libvirt_qemu` connection plugin](https://docs.ansible.com/ansible/latest/collections/community/libvirt/libvirt%5Fqemu%5Fconnection.html) to manage guests without even
needing SSH access or credentials. This uses the [qemu guest agent](https://wiki.libvirt.org/page/Qemu%5Fguest%5Fagent), bypassing the
[`community.libvirt.libvirt_qemu` connection plugin](https://docs.ansible.com/ansible/latest/collections/community/libvirt/libvirt_qemu_connection.html) to manage guests without even
needing SSH access or credentials. This uses the [qemu guest agent](https://wiki.libvirt.org/page/Qemu_guest_agent), bypassing the
- upgrading the driver breaks currently running Xorg sessions'
3d acceleration, and requires a reboot;
- Out of tree kernel drivers are usually a bad idea, though I
appreciate [how easy Gentoo makes it to deal with them](https://wiki.gentoo.org/wiki/Kernel/Upgrade#Reinstalling%5Fexternal%5Fkernel%5Fmodules) — simply run
appreciate [how easy Gentoo makes it to deal with them](https://wiki.gentoo.org/wiki/Kernel/Upgrade#Reinstalling_external_kernel_modules) — simply run
`emerge @module-rebuild`, this still a mild annoyance because it
adds extra steps when upgrading kernels or rebuilding kernels
- No [native resolution modesetting is available on Nvidia](https://wiki.archlinux.org/index.php/Kernel%5Fmode%5Fsetting), so your
- No [native resolution modesetting is available on Nvidia](https://wiki.archlinux.org/index.php/Kernel_mode_setting), so your
linux consoles (tt1-tty6 on most installs) are stuck at a very low
resolution, and look very chunky;
- ~~you have to either use Nvidia libGL or use Mesa, not both~~
...
...
@@ -182,7 +182,7 @@ as
capture correctly with the binary drivers;
- Nvidia's composition pipeline feature for reducing video tearing
is pretty awful. [It simply makes most animations look
choppy/stuttery](https://www.reddit.com/r/linux%5Fgaming/comments/5tym3e/nvidia%5Flinux%5Ftearing%5Fand%5Fforcecompositionpipeline/), and ruins the experience of most video playback;
choppy/stuttery](https://www.reddit.com/r/linux_gaming/comments/5tym3e/nvidia_linux_tearing_and_forcecompositionpipeline/), and ruins the experience of most video playback;
- Nvidia is liable to drop support for my card in another year or
so, forcing me to upgrade anyways, [this is planned obsolescence at
the driver level](https://www.nvidia.com/en-us/drivers/unix/legacy-gpu/). With AMD on the other hand the driver probably
...
...
@@ -198,7 +198,7 @@ as
With AMD on the other hand I don't foresee most of these
issues. Presently I found s3 suspend-resume cycles take up to a
minute, so I need to address that. Video tearing on the other hand
is very minimal; I have been able to watch this YouTube [tearing test](https://www.youtube.com/watch?v=MfL%5FJkcEFbE)
is very minimal; I have been able to watch this YouTube [tearing test](https://www.youtube.com/watch?v=MfL_JkcEFbE)
and experience no video tearing. I did notice tearing in certain
parts of Firewatch though. That is likely because Firewatch is not
particularly well optimized.
...
...
@@ -212,7 +212,7 @@ run an `emerge -uDU --changed-deps -av @word` after an `emerge
in the Xorg logs it couldn't open the `radeonsi` driver. I thought
I could simply add `amdgpu` to `VIDEO_CARDS`, but as the logs
suggest, I need `radeonsi` and `amdgpu`. [The Gentoo Wiki also
suggests this](https://wiki.gentoo.org/wiki/AMDGPU#Feature%5Fsupport). Because I was both trying to update and reconfigure
suggests this](https://wiki.gentoo.org/wiki/AMDGPU#Feature_support). Because I was both trying to update and reconfigure
my installation, this yielded to problems with blockers. It seemed
nvidia was the problem, as it was masking Xorg versions I needed. I
nuked `nvidia` from my `VIDEO_CARDS` and was successful in updating
...
...
@@ -275,4 +275,4 @@ debugging a GTK bug, and some other topics, but the amount of
material to cover kept growing, much like this post keeps
growing. Stay tuned to read about seccomp madness.
[^fn:1]:See my overlay [on GitHub](https://github.com/winny-/winny-overlay).
[^fn:1]:See my overlay [on GitHub](https://github.com/winny-/winny-overlay).
maintaining okay desk ergonomics, doing tendon & nerve glides, and hot/cold
therapy. At some point my symptoms were not improving, so I looked into using
better input devices.
## Strategic switch to Dvorak {#strategic-switch-to-dvorak}
{{<figuresrc="/ox-hugo/900px-KB_United_States.svg.png"caption="Figure 1: The standard QWERTY layout, [courtesy Wikipedia](https://commons.wikimedia.org/wiki/File:KB%5FUnited%5FStates.svg).">}}
{{<figuresrc="/ox-hugo/900px-KB_United_States.svg.png"caption="<span class=\"figure-number\">Figure 1: </span>The standard QWERTY layout, [courtesy Wikipedia](https://commons.wikimedia.org/wiki/File:KB_United_States.svg)." >}}
{{<figuresrc="/ox-hugo/900px-KB_United_States_Dvorak.svg.png"caption="Figure 2: The standard Dvorak layout, [courtesy Wikipedia](https://commons.wikimedia.org/wiki/File:KB%5FUnited%5FStates%5FDvorak.svg).">}}
{{<figuresrc="/ox-hugo/900px-KB_United_States_Dvorak.svg.png"caption="<span class=\"figure-number\">Figure 2: </span>The standard Dvorak layout, [courtesy Wikipedia](https://commons.wikimedia.org/wiki/File:KB_United_States_Dvorak.svg)." >}}
Enter Dvorak. I chose to switch to the [Dvorak keyboard layout](https://en.wikipedia.org/wiki/Dvorak%5Fkeyboard%5Flayout) because it
Enter Dvorak. I chose to switch to the [Dvorak keyboard layout](https://en.wikipedia.org/wiki/Dvorak_keyboard_layout) because it
requires less stretching to type the same English text. Dvorak also is
designed such that each other key is likely typed by the other hand. As such
each hand gets opportunity to rest between keystrokes, and position itself
...
...
@@ -54,9 +54,9 @@ keyboards. Nothing really seemed very comfortable.
## Kinesis Advantage: The best board {#kinesis-advantage-the-best-board}
{{<figuresrc="/ox-hugo/kb600-angled-l-2007x1024-1400x1049.jpg"caption="Figure 3: Kinesis Advantage 2 top view, [Kinesis Corp](https://kinesis-ergo.com/shop/advantage2/).">}}
-[How to detect whether there is a CD-ROM in the drive?](https://superuser.com/questions/630588/how-to-detect-whether-there-is-a-cd-rom-in-the-drive/1367091#1367091)
-[Start ripping when CD is inserted](https://somewideopenspace.wordpress.com/yet-another-headless-cd-ripper-and-mpd-on-raspberry-pi-installation-guide-yahcdramorpig/start-ripping-when-cd-is-inserted/)
-[abcde - A Better CD Encoder](https://abcde.einval.com/wiki/)
-[abcde - A Better CD Encoder](https://abcde.einval.com/wiki/)
The error message `Cannot find user-level thread for LWP 18744:
generic error` is [mentioned on the Sourceware Wiki](https://sourceware.org/gdb/wiki/FAQ#GDB%5Freports%5F.22Cannot%5Ffind%5Fuser-level%5Fthread%5Ffor%5FLWP%5F23957:%5Fgeneric%5Ferror.22.2C%5Fhow%5Fdo%5FI%5Ffix%5Fthis.3F). The Wiki FAQ
generic error` is [mentioned on the Sourceware Wiki](https://sourceware.org/gdb/wiki/FAQ#GDB_reports_.22Cannot_find_user-level_thread_for_LWP_23957:_generic_error.22.2C_how_do_I_fix_this.3F). The Wiki FAQ
suggests I may have a mismatch between `libthread_db.so.1` and
`libpthread.so.0` or am using a 64-bit debugger with a 32-bit
program. Both zathura and gdb are amd64 programs on my box. And I only
@@ -51,14 +51,14 @@ sure to read through [the RouterOS Wiki documentation](https://wiki.mikrotik.com
replacement wiki](https://help.mikrotik.com/docs/display/ROS/RouterOS) when things are not clear.
In particular check out the guides for [scripting](https://wiki.mikrotik.com/wiki/Manual:Scripting), [using the console](https://wiki.mikrotik.com/wiki/Manual:Console),
[first-time setup](https://wiki.mikrotik.com/wiki/Manual:First%5Ftime%5Fstartup), and [troubleshooting tools](https://wiki.mikrotik.com/wiki/Manual:Troubleshooting%5Ftools).
[first-time setup](https://wiki.mikrotik.com/wiki/Manual:First_time_startup), and [troubleshooting tools](https://wiki.mikrotik.com/wiki/Manual:Troubleshooting_tools).
The steps are this:
### 1) Make a backup of your current RouterOS configuration {#1-make-a-backup-of-your-current-routeros-configuration}
[About the `/export` and `/import` paths](https://wiki.mikrotik.com/wiki/Manual:Configuration%5FManagement). Also worth reading about
[About the `/export` and `/import` paths](https://wiki.mikrotik.com/wiki/Manual:Configuration_Management). Also worth reading about
-[Freenode ops take control of 700 channels](https://news.ycombinator.com/item?id=27286628)([direct link to post](https://mastodon.sdf.org/@kline/106299403921451814))
...
...
@@ -127,4 +127,4 @@ going to put up with this misconduct.
Given that even the existent channels are all pretty quiet, I think it's safe
to say Freenode is dead, except for niche communities that have managed to
title = "How to fix early framebuffer problems, or \"Can I type my disk password yet??\""
title = """
How to fix early framebuffer problems, or "Can I type my disk password yet??"
"""
author = ["Winston (winny) Weinert"]
date = 2019-12-25T03:37:00-05:00
tags = ["computing", "gentoo", "linux"]
draft = false
+++
Most of my workstations & laptops require a passphrase typed in to
Most of my workstations & laptops require a passphrase typed in to
open the encrypted root filesystem. So my steps to booting are as
follows:
...
...
@@ -141,7 +143,7 @@ the kernel image (it would be `m` if it's a module):
CONFIG_DRM_I915=y
```
After compiling & installing the kernel (and generating a dracut
After compiling & installing the kernel (and generating a dracut
initrd for cryptsetup/lvm), I was able to reboot and get an early
pre-mounted-root framebuffer on this device.
...
...
@@ -151,7 +153,7 @@ pre-mounted-root framebuffer on this device.
I discovered the Gentoo devs [have begun shipping an ebuild that
builds and installs a kernel with a portable, livecd friendly
config](https://blogs.gentoo.org/mgorny/2019/12/19/a-distribution-kernel-for-gentoo/). In addition this package will optionally generates an initrd
with dracut as a pkg\_postinst step, making it very suitable as a
with dracut as a pkg_postinst step, making it very suitable as a
replacement for users who just want a working kernel, and don't mind
a excessive compatibility (at a cost to size and build time).
...
...
@@ -193,5 +195,9 @@ working system with a couple small non-free components, than a
non-working system. Which is more valuable, your freedom, or reduced
capacity of your tools?
[^fn:1]:GRML is my favorite live media. It is simple, to the point, has lots of little scripts to streamline tasks such as setting up a wireless AP, a iPXE netboot environment, a router, installing debian, and so on. And Remastering is relatively straight forward. It also has a sane gui sutable for any machine (fluxbox).
[^fn:2]:Thanks to [this post](https://askubuntu.com/questions/727577/how-to-check-if-framebuffer-is-enabled) on Ask Ubuntu
[^fn:1]:GRML is my favorite live media. It is simple, to the point, has
lots of little scripts to streamline tasks such as setting up a
wireless AP, a iPXE netboot environment, a router, installing debian,
and so on. And Remastering is relatively straight forward. It also has
a sane gui sutable for any machine (fluxbox).
[^fn:2]:Thanks to [this post](https://askubuntu.com/questions/727577/how-to-check-if-framebuffer-is-enabled) on Ask Ubuntu
When upgrading to Emacs 27 there were quite a few weird things I had to
address.
...
...
@@ -47,7 +47,7 @@ due to cairo building with pango now.
It turns out setting a catchall Xresources setting to configure font for all
old-style applications can cause problems with Emacs which uses [`Emacs.font`
resource](https://www.gnu.org/software/emacs/manual/html%5Fnode/emacs/Table-of-Resources.html) to configure a font. Insofar the other X applications appear to use
resource](https://www.gnu.org/software/emacs/manual/html_node/emacs/Table-of-Resources.html) to configure a font. Insofar the other X applications appear to use
`*font*` only for old-style bitmap fonts.
In order to keep the `*font` setting, override `Emacs.font`:
...
...
@@ -92,7 +92,7 @@ emacsclient: No socket or alternate editor. Please use:
After a quick search on the Gentoo bug tracker, this bug looked appropriate:
[#794649: app-emacs/emacs-daemon fails to set the socket location emacsclient 27
expects by default](https://bugs.gentoo.org/show%5Fbug.cgi?id=794649).
expects by default](https://bugs.gentoo.org/show_bug.cgi?id=794649).
This bug references upstream Emacs bugreport: [#33847: 27.0.50; emacsclient does
not find server socket](https://debbugs.gnu.org/cgi/bugreport.cgi?bug=33847).
...
...
@@ -154,4 +154,4 @@ emacs` works without special user intervention. One downside of my
[`configuration.org` setup](https://harryrschwartz.com/2016/02/15/switching-to-a-literate-emacs-configuration) with `use-package` is the slow initialization. It
takes at least a couple minutes to install all the packages during first
startup. Maybe one day my Emacs startup be fast and instantaneous from `git