Setting up Chimera Linux — GNUcode.me

Setting up Chimera Linux

by Joshua Branson — August 09, 2023

My friend ownes a Talos II, and he wanted some help setting it up. We have decided on setting up Chimera Linux. Since Chimera Linux is new, we also installed the guix package manager as well. This blog post today is more of documentation and less story telling. You have been warned.

upgrading chimera linux

doas apk update

doas apk upgrade

DONE Getting X applications and gdm to run on chimera

All Talos II machines have trouble running X, when a discrete GPU is installed. Basically the Talos II has an on board GPU, which when combined with an AMD GPU, X does not know which GPU to use. click here to read more on the raptor wiki.

I did have trouble getting my friend’s Talos II to start gdm and X, but an update to chimera linux fixed the gdm issue. The below sections are for others that are using a Talos II with an AMD GPU. You do need to configure X to disable the onboard GPU and/or tell GDM to select a GPU at runtime.

raptor pdf user’s guide:

https://wiki.raptorcs.com/w/images/e/e3/T2P9D01_users_guide_version_1_0.pdf

raptor wiki ways to fix this

  1. Tell GDM to ignore a GPU

In this case ignore the crappy onboard GPU.

    lspci | grep VGA

    0005:02:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 41)
    0030:01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon Pro WX 7100]

    cat /etc/udev/udev.conf

    # see udev.conf(5) for details
    #
    # udevd is also started in the initrd.  When this file is modified you might
    # also want to rebuild the initrd, so that it will include the modified configuration.
    
    #udev_log=info
    #children_max=
    #exec_delay=
    #event_timeout=180
    #timeout_signal=SIGKILL
    #resolve_names=early
    TAG-="seat", ENV{ID_FOR_SEAT}=="drm-pci-0005_02_00_0"
    TAG-="seat", ENV{ID_FOR_SEAT}=="graphics-pci-0005_02_00_0"

    Do this to re-generate the initramfs.
    `doas apk fix linux-lts`
  1. Xorg will not start / crashes when a discrete GPU is installed

    We chose to do the workaround 2: select a desired GPU at runtime, which means that if we change the slot of the GPU, then we will have to re-create the Xorg configuration file.

    lspci | grep VGA
    
    0005:02:00.0 VGA compatible controller: ASPEED Technology, Inc. ASPEED Graphics Family (rev 41)
    0030:01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon Pro WX 7100]
    
    cat /etc/X11/xorg.conf.d/21-gpu-driver.conf
    
    # AST2500
    Section "Device"
        Identifier     "GPU0"
        Driver         "modesetting"
        BusID          "PCI:2@5:0:0"
        VendorName     "ASpeed Corporation"
    EndSection
        
    # WX7100
    Section "Device"
        Identifier     "GPU1"
        Driver         "modesetting" # or amdgpu if you have xf86-video-amdgpu installed
        BusID          "PCI:1@48:0:0"
        VendorName     "AMD Corporation"
    EndSection
        
    # this is absolutely necessary, it tells xorg which GPU to use for the screen
    Section "Screen"
        Identifier     "Screen0"
        Device         "GPU1"
    EndSection
  2. upgrade the openBMC bios/firmware and disable onboard GPU via

    I decided not to do this one. It's way too complicated. See the raptor wiki if you don't believe me.

Where to find X logs

var/log/gdm/greeter.log /var/lib/gdm.local/share/xorg/Xorg.1.log

toggling gdm to use X/wayland

This does not appear to work.

cat /etc/gdm/custom.conf | grep 'Wayland'

#WaylandEnable=false
WaylandEnable=true

DONE install icewm, and put that in ~/.xinitrc & startx

Originally this did not work, because X refused to start. But after I upgraded Chimera linux one day, it worked.

Setting up Bitcoin knots/bitcoin core

My friend is an avid bitcoin user. He wanted me to help him set up bitcoin on his Talos II. If possible, he wanted me to set up bitcoin-knots, which was forked from bitcoin-core.

github repo for bitcoin-knots

The github repo has lots of good information to help me out:

https://bitcoinknots.org/#download

https://github.com/bitcoinknots/bitcoin

https://github.com/bitcoinknots/bitcoin/tree/23.x-knots/doc

https://github.com/bitcoinknots/bitcoin/blob/23.x-knots/doc/build-unix.md

https://github.com/bitcoinknots/bitcoin/blob/23.x-knots/doc/build-freebsd.md

https://github.com/bitcoinknots/bitcoin/blob/23.x-knots/doc/dependencies.md

I can get help from webchat.freenode.net #bitcoin-dev

luke-jr says that I can compile bitcoin knots from source fairly easily.

download a release. Install dependencies:

https://download.qt.io/official_releases/qt/

doas apk add libevent 

./configure gmake && gmake check && gmake install

NO Packaging bitcoin knots for chimera linux

q66 is NOT ok with me packaging bitcoin-coin for chimera linux, because it depends on qt5, which is soon to be replaced by qt6. So why bother packaging qt5 when qt6 is soon to supplant it?

This is the documentation for packaging in chimera.

https://github.com/chimera-linux/cports https://github.com/chimera-linux/chimerautils

Alternatively I can package bitcoin knots for guix and install

guix on chimera linux. And guix already has qt packaged. Do they have 5.15.2 packaged? Why yes they do: They have qtbase version 5.15.8.

I have not packaged bitcoin-knots for guix yet. Instead my friend decided to run bitcoin-core.

DONE Or I can just install bitcoin-core from guix and run that

guix stuff

installing guix on chimera linux

You can install guix via these commands:

wget https://git.savannah.gnu.org/cgit/guix.git/plain/etc/guix-install.sh
doas chmod u+x guix-install.sh
doas ./guix-install.sh

Add in the export line so I can use the guix binaries.

cat ~/.profile

#!/usr/bin/bash

export GUIX_LOCPATH="$HOME/.guix-profile/lib/locale"

gnome-shell --wayland

starting the guix daemon manually

 ~root/.config/guix/current/bin/guix-daemon –build-users-group=guixbuild

set up guix daemon via dinit

cat /etc/dinit.d/guix-daemon

# guix-daemon service
type = process

# run this command as root
run-as = root
command = /root/.config/guix/current/bin/guix-daemon --build-users-group=guixbuild
# depends-on = bar
# waits-for = baz

# uncomment this next line once you know this works
# before = login.target
before = network.target

https://davmac.org/projects/dinit/man-pages-html/dinitcheck.8.html

https://davmac.org/projects/dinit/man-pages-html/dinit-service.5.html

So if you cannot get the daemon to autostart, then this will

doas dinitctl start guix-daemon work.