Skip to content

Commit 705cdf5

Browse files
committed
Add xone driver build
1 parent 92b1749 commit 705cdf5

File tree

4 files changed

+29
-0
lines changed

4 files changed

+29
-0
lines changed

Containerfile

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,11 @@ ARG FEDORA_MAJOR_VERSION=38
22
ARG BASE_CONTAINER_URL=ghcr.io/ublue-os/silverblue-main
33
ARG PKCS11_PROVIDER_VERSION=0.1
44

5+
FROM ${BASE_CONTAINER_URL}:${FEDORA_MAJOR_VERSION} as drivers
6+
7+
COPY drivers.sh /tmp/drivers.sh
8+
RUN chmod +x /tmp/drivers.sh && /tmp/drivers.sh
9+
510
FROM fedora:${FEDORA_MAJOR_VERSION} AS builder
611
ARG FEDORA_MAJOR_VERSION
712
ARG PKCS11_PROVIDER_VERSION
@@ -40,6 +45,17 @@ RUN chmod +x /tmp/build.sh && /tmp/build.sh
4045
COPY nix.sh /tmp/nix.sh
4146
RUN chmod +x /tmp/nix.sh && /tmp/nix.sh
4247

48+
RUN mkdir /tmp/xone
49+
COPY --from=drivers /tmp/xone/*.ko /tmp/xone/install/firmware.sh /tmp/xone/install/modprobe.conf /tmp/xone
50+
RUN install -D -m 644 /tmp/xone/modprobe.conf /usr/lib/modprobe.d/xone-blacklist.conf \
51+
&& install -D -m 755 /tmp/xone/firmware.sh /usr/sbin/xone-get-firmware.sh \
52+
&& xz /tmp/xone/*.ko \
53+
&& install -D -m 644 /tmp/xone/*.ko.xz /lib/modules/$(rpm -q kernel | sed 's/^kernel-//')/kernel/drivers/input/joystick/ \
54+
&& depmod $(rpm -q kernel | sed 's/^kernel-//')/ -F /lib/modules/$(rpm -q kernel | sed 's/^kernel-//')/System.map \
55+
&& ln -s /usr/local/lib/firmware/xow_dongle.bin /lib/firmware/xow_dongle.bin \
56+
&& sed -i 's/\/lib\/firmware/\/usr\/local\/lib\/firmware/g' /usr/sbin/xone-get-firmware.sh
57+
COPY xone-get-firmware-wrapper /usr/sbin/
58+
4359
# clean up and finalize container build
4460
RUN rm -rf \
4561
/tmp/* \

drivers.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
#!/bin/bash
2+
set -euxo pipefail
3+
4+
XONE_VERSION=v0.3
5+
curl -Lo /tmp/xone.tar.gz https://github.com/medusalix/xone/archive/refs/tags/${XONE_VERSION}.tar.gz
6+
mkdir -p /tmp/xone
7+
tar -C /tmp/xone --strip-components=1 -xf /tmp/xone.tar.gz
8+
make -C /lib/modules/$(rpm -q kernel | sed 's/^kernel-//')/build LD=ld.gold M=/tmp/xone modules

recipe.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ rpms:
2222
- podman-docker
2323
- podman-compose
2424
- steam-devices
25+
- cabextract
2526
# These Flatpaks (from flathub) will be available for install on boot
2627
# this is just an example selection.
2728
# If you leave this empty you can use yafti for post-boot installation

xone-get-firmware-wrapper

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
#!/bin/bash
2+
set -euxo pipefail
3+
mkdir -p /usr/local/lib/firmware
4+
/usr/sbin/xone-get-firmware.sh

0 commit comments

Comments
 (0)