title:Setting up Chimera Linux
date: 2023-08-09 11:59
tags: chimera linux talosII guix
summary: Guix runs well on Chimera Linux
---

My friend ownes a [Talos II](https://www.raptorcs.com/TALOSII/), and he wanted some help setting it up.  We have
decided on setting up [Chimera Linux](https://chimera-linux.org/).  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](https://wiki.raptorcs.com/wiki/Troubleshooting/GPU#Xorg_will_not_start_.2F_crashes_when_a_discrete_GPU_is_installed) to read more on the raptor wiki.

I did have trouble getting my friend&rsquo;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&rsquo;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`

2.  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

3.  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 &#x2013;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.

