mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-07-12 18:19:42 -07:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| c9fa2ae9d3 | |||
| faa9c6f6c4 | |||
| 14db5f1ffb | |||
| b29af12832 | |||
| 9723e3e09c | |||
| c1b9f27838 | |||
| 2d04170214 | |||
| 01bfa9a5c7 | |||
| 8275879350 | |||
| ccb3eaaa86 | |||
| 330c4199a6 |
@@ -3,7 +3,7 @@
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
<strong>Arch Linux-based gaming distribution for handheld devices.</strong>
|
||||
<strong>Arch Linux gaming distribution for handheld devices.</strong>
|
||||
</p>
|
||||
|
||||
<p align="center">
|
||||
@@ -14,17 +14,22 @@
|
||||
|
||||
---
|
||||
|
||||
Arch R is a custom Linux distribution for the **R36S** handheld gaming console and all its variants, built on top of [ROCKNIX](https://github.com/ROCKNIX/distribution) with an **Arch Linux-based** build environment. It supports **16 board profiles** and **20 display panels** across original and clone hardware.
|
||||
Arch R is an **Arch Linux** distribution for the **R36S** handheld gaming console and its many variants. In the same spirit as SteamOS, it pairs a genuine Arch userland (pacman, systemd, up-to-date packages) with a curated console experience: flash it, turn the device on, play. System updates are delivered through the built-in updater, kernel included; reflashing is only needed for a fresh install or recovery.
|
||||
|
||||
The image build pipeline descends from the LibreELEC family of embedded build systems (through JELOS and ROCKNIX), but the operating system it assembles is Arch Linux ARM, not a JELOS derivative.
|
||||
|
||||
## Features
|
||||
|
||||
- Arch Linux-based build system with Docker support.
|
||||
- Kernel 6.12 LTS with board auto-detection via SARADC.
|
||||
- Mesa Panfrost open-source GPU driver (GLES 3.1, no proprietary blobs).
|
||||
- EmulationStation frontend with RetroArch and 18+ cores pre-installed.
|
||||
- Full audio support with speaker/headphone auto-switch.
|
||||
- Battery monitoring with capacity reporting and LED warning.
|
||||
- MIPI panel overlays for every known motherboard revision, generated on demand by the online overlay generator at https://arch-r.io/overlay-generator/ (or during flashing by the Arch R Flasher).
|
||||
- Genuine Arch Linux ARM base with pacman and signed package repositories (stable, next and dev channels).
|
||||
- Built-in system updater in EmulationStation; kernel and device trees update through it too, with checksum-verified writes to the boot partition.
|
||||
- Mainline kernel 6.12 LTS with board auto-detection via SARADC.
|
||||
- Memory clock trained at 666MHz from boot (twice the BSP-era default) and tuned Mali-G31 graphics.
|
||||
- EmulationStation frontend with RetroArch and 18+ cores pre-installed, plus PortMaster.
|
||||
- Full audio support with speaker/headphone auto-switch across board revisions.
|
||||
- Power button light sleep: screen and backlight fully off, instant wake.
|
||||
- Power LED control (on, off, heartbeat) on every supported family.
|
||||
- USB WiFi dongle support, including the common RTL8188EUS family (TP-Link, Edimax).
|
||||
- MIPI panel overlays for every known motherboard revision, generated on demand by the online overlay generator at https://arch-r.io/overlay-generator/ (or during flashing by the Arch R Flasher). The generator also extracts board-specific wiring (audio amplifier, jack detect, LEDs, PMIC interrupt) from your stock DTB.
|
||||
- Separate images for original and clone boards, both with hardware auto-detection.
|
||||
- Integrated cross-device local and remote network play.
|
||||
- Fine-grained control for battery life and performance.
|
||||
@@ -40,13 +45,12 @@ Arch R is a custom Linux distribution for the **R36S** handheld gaming console a
|
||||
|
||||
| Board | Image |
|
||||
|-------|-------|
|
||||
| R36S (original), R33S | Original |
|
||||
| R36S (original), R33S, R36S Soysauce | Original |
|
||||
| Odroid Go Advance / v1.1 / Super | Original |
|
||||
| Anbernic RG351V / RG351M | Original |
|
||||
| GameForce Chi, MagicX XU10 | Original |
|
||||
| K36 / R36S clones / EE Clone | Clone |
|
||||
| Powkiddy RGB10 / RGB10X / RGB20S | Clone |
|
||||
| MagicX XU-Mini-M, BatLexp G350 | Clone |
|
||||
| GameForce Chi, MagicX XU10, Powkiddy RGB10 | Original |
|
||||
| K36 / R36S V20 clones / EE Clone | Clone |
|
||||
| Powkiddy RGB10X, MagicX XU-Mini-M | Clone |
|
||||
|
||||
### Display Panels
|
||||
|
||||
@@ -59,15 +63,22 @@ Download the latest images from [Releases](https://github.com/archr-linux/Arch-R
|
||||
- **Original image** -- for genuine R36S and compatible boards.
|
||||
- **Clone image** -- for K36 clones and compatible boards.
|
||||
|
||||
Flash to a MicroSD card:
|
||||
The easiest path is the [Arch R Flasher](https://github.com/archr-linux/archr-flasher), which downloads, verifies, flashes and installs your panel overlay in one go. Manual flashing works too:
|
||||
|
||||
```bash
|
||||
xz -d ArchR-R36S-*.img.xz
|
||||
gzip -d ArchR-R36S-*.img.gz
|
||||
sudo dd if=ArchR-R36S-*.img of=/dev/sdX bs=4M status=progress
|
||||
sync
|
||||
```
|
||||
|
||||
Insert the SD card and power on. The correct board DTB is selected automatically.
|
||||
Always verify the download against the published `SHA256SUMS` before flashing. Insert the SD card and power on; the correct board DTB is selected automatically.
|
||||
|
||||
## Updates
|
||||
|
||||
- **In place (default after install)**: EmulationStation > Updates, or `archr-update` over SSH. Updates come from the signed pacman repository; after each transaction the boot partition is synchronized automatically, so kernel and device-tree fixes arrive without reflashing. User overlays and configuration are never touched.
|
||||
- **Reflash**: for fresh installs, recovery, or the rare low-level bootloader change (TPL/U-Boot, e.g. a DDR frequency change), which lives outside the filesystem.
|
||||
|
||||
Release channel is configurable (stable, next, dev) under updates settings.
|
||||
|
||||
## Building from Source
|
||||
|
||||
@@ -90,7 +101,7 @@ make docker-image-build
|
||||
make docker-RK3326
|
||||
```
|
||||
|
||||
Output images are generated in `target/`.
|
||||
Output images are generated in `target/`. Add `OFFICIAL=yes` for release-stamped images.
|
||||
|
||||
### Build Commands
|
||||
|
||||
@@ -105,23 +116,23 @@ Output images are generated in `target/`.
|
||||
|
||||
Arch R separates **board configuration** from **panel configuration**:
|
||||
|
||||
- **Board DTB** = hardware profile (GPIOs, PMIC, joypad, audio codec). Selected automatically by U-Boot via SARADC.
|
||||
- **Panel overlay** = display init sequence and timings. Applied on top of the board DTB at boot time.
|
||||
- **Board DTB** = hardware profile (GPIOs, PMIC, joypad, audio codec). Selected automatically by U-Boot via SARADC. One generic DTB per hardware family; board-revision differences are carried by the overlay.
|
||||
- **Panel overlay** = display init sequence, timings and board-specific wiring extracted from the stock DTB. Applied on top of the board DTB at boot time.
|
||||
|
||||
This means the same image works on all boards of a variant. Only the panel overlay needs to match the specific display.
|
||||
This means the same image works on all boards of a variant. Only the overlay needs to match the specific device.
|
||||
|
||||
### Boot Flow
|
||||
|
||||
```
|
||||
Power On
|
||||
U-Boot (BSP or mainline)
|
||||
boot.scr: read SARADC hwrev, select board DTB
|
||||
U-Boot (mainline, legacy BSP loader for clone boards)
|
||||
boot script: read SARADC hwrev, select board DTB
|
||||
sysboot: load kernel + DTB + overlay from extlinux.conf
|
||||
Kernel 6.12 + initramfs
|
||||
mount root (ext4) + storage
|
||||
mount root (ext4) + storage, resolved by partition label
|
||||
switch_root to systemd
|
||||
systemd
|
||||
archr-autostart (quirks, governors, audio)
|
||||
archr-autostart (quirks by device-tree model, governors, audio)
|
||||
EmulationStation
|
||||
```
|
||||
|
||||
@@ -130,7 +141,7 @@ Power On
|
||||
| Partition | Filesystem | Label | Purpose |
|
||||
|-----------|-----------|-------|---------|
|
||||
| 1 | FAT32 | ARCHR | Boot (kernel, DTBs, overlays, boot.scr) |
|
||||
| 2 | ext4 | ARCHR_ROOT | Root filesystem |
|
||||
| 2 | ext4 | ARCHR_ROOT | Root filesystem (Arch Linux ARM) |
|
||||
| 3 | ext4 | STORAGE | User data, ROMs, configs |
|
||||
|
||||
## Community
|
||||
@@ -139,7 +150,7 @@ Contributions are welcome. Please open issues or pull requests on [GitHub](https
|
||||
|
||||
## Licenses
|
||||
|
||||
**Arch R** is a fork of [ROCKNIX](https://github.com/ROCKNIX/distribution), which is a fork of [JELOS](https://github.com/JustEnoughLinuxOS/distribution/). All upstream licenses apply.
|
||||
The Arch R operating system is Arch Linux ARM plus original Arch R software. The image build tooling in this repository descends from [ROCKNIX](https://github.com/ROCKNIX/distribution) and [JELOS](https://github.com/JustEnoughLinuxOS/distribution/); the licenses of that inherited tooling continue to apply to the portions derived from it.
|
||||
|
||||
You are free to:
|
||||
|
||||
@@ -168,12 +179,12 @@ Like any Linux distribution, this project is not the work of one person. It is t
|
||||
|
||||
Special thanks to:
|
||||
|
||||
- **[ROCKNIX](https://github.com/ROCKNIX/distribution)** -- the upstream distribution that Arch R is forked from. ROCKNIX provided the complete build system, device support, EmulationStation integration, and the foundation for handheld gaming on Linux.
|
||||
- **[JELOS](https://github.com/JustEnoughLinuxOS/distribution/)** -- the project that ROCKNIX was originally forked from.
|
||||
- **[CoreELEC](https://coreelec.org/)** and **[LibreELEC](https://libreelec.tv/)** -- the embedded Linux distributions whose build system forms the backbone of this project.
|
||||
- **[Arch Linux](https://archlinux.org/)** and **[Arch Linux ARM](https://archlinuxarm.org/)** -- the operating system Arch R is built on.
|
||||
- **[ROCKNIX](https://github.com/ROCKNIX/distribution)** and **[JELOS](https://github.com/JustEnoughLinuxOS/distribution/)** -- the projects whose build tooling and RK3326 device knowledge Arch R inherited and still learns from.
|
||||
- **[CoreELEC](https://coreelec.org/)** and **[LibreELEC](https://libreelec.tv/)** -- the embedded Linux distributions whose build system forms the backbone of the image pipeline.
|
||||
- **[Hardkernel](https://www.hardkernel.com/)** -- for the Odroid Go Advance BSP U-Boot and kernel device trees.
|
||||
- **[Rockchip](https://www.rock-chips.com/)** -- for the RK3326 SoC and rkbin firmware.
|
||||
- **[Mesa](https://mesa3d.org/)** -- for the Panfrost open-source GPU driver.
|
||||
- **[Rockchip](https://www.rock-chips.com/)** -- for the RK3326 SoC, rkbin firmware and the libmali GPU driver.
|
||||
- **[Mesa](https://mesa3d.org/)** -- for the open-source graphics stack.
|
||||
- **[RetroArch](https://www.retroarch.com/)** and **[Libretro](https://www.libretro.com/)** -- for the emulation framework and cores.
|
||||
- **[EmulationStation](https://emulationstation.org/)** -- for the frontend.
|
||||
- All developers and contributors across the open-source community who made this possible.
|
||||
|
||||
@@ -2173,7 +2173,7 @@ CONFIG_MT7663_USB_SDIO_COMMON=m
|
||||
CONFIG_MT7663U=m
|
||||
CONFIG_MT7663S=m
|
||||
# CONFIG_MT7921S is not set
|
||||
# CONFIG_MT7921U is not set
|
||||
CONFIG_MT7921U=m
|
||||
# CONFIG_MT7925U is not set
|
||||
CONFIG_WLAN_VENDOR_MICROCHIP=y
|
||||
# CONFIG_WILC1000_SDIO is not set
|
||||
|
||||
@@ -61,7 +61,7 @@
|
||||
# for a list of additional drivers see packages/linux-drivers
|
||||
# Space separated list is supported,
|
||||
# e.g. ADDITIONAL_DRIVERS="DRIVER1 DRIVER2"
|
||||
ADDITIONAL_DRIVERS="rk915 RTL8188EUS RTL8812AU RTL8814AU RTL8821AU RTL8821CU RTL88x2BU RTL8831 AIC8800 mali-bifrost"
|
||||
ADDITIONAL_DRIVERS="rk915 RTL8188EUS RTL8812AU RTL8814AU RTL8821AU RTL8821CU RTL88x2BU RTL8831 RTL8852BU RTL8852CU AIC8800 mali-bifrost"
|
||||
|
||||
# Additional Firmware to use ( )
|
||||
# Space separated list is supported,
|
||||
|
||||
@@ -121,6 +121,17 @@ EOF
|
||||
# final dir so it materializes on first launch.
|
||||
mkdir -p ${INSTALL}/opt
|
||||
ln -sf /storage/jdk ${INSTALL}/opt/jdk
|
||||
|
||||
# Scripts and alpm hooks belong in makeinstall_target, NOT post_install:
|
||||
# post_install writes straight into the assembled image, so anything
|
||||
# done there never lands in the pacman package and stays flash-only.
|
||||
# These (archr-update, flash-sync, the depmod hook, wifictl, ...) must
|
||||
# reach users through `pacman -Syu` too, so they go here.
|
||||
mkdir -p ${INSTALL}/usr/bin
|
||||
cp ${PKG_DIR}/sources/scripts/* ${INSTALL}/usr/bin
|
||||
chmod 0755 ${INSTALL}/usr/bin/* 2>/dev/null ||:
|
||||
mkdir -p ${INSTALL}/etc/pacman.d/hooks
|
||||
cp ${PKG_DIR}/sources/pacman-hooks/*.hook ${INSTALL}/etc/pacman.d/hooks
|
||||
}
|
||||
|
||||
post_install() {
|
||||
@@ -143,15 +154,6 @@ EOF
|
||||
cp ${PKG_DIR}/sources/motd ${INSTALL}/etc
|
||||
cat ${INSTALL}/etc/issue >> ${INSTALL}/etc/motd
|
||||
|
||||
cp ${PKG_DIR}/sources/scripts/* ${INSTALL}/usr/bin
|
||||
chmod 0755 ${INSTALL}/usr/bin/* 2>/dev/null ||:
|
||||
|
||||
# alpm hooks (pacman.conf points HookDir at /etc/pacman.d/hooks): the
|
||||
# flash-sync hook keeps the FAT boot partition in step with kernel or
|
||||
# DTB updates delivered through pacman.
|
||||
mkdir -p ${INSTALL}/etc/pacman.d/hooks
|
||||
cp ${PKG_DIR}/sources/pacman-hooks/*.hook ${INSTALL}/etc/pacman.d/hooks
|
||||
|
||||
### Install man pages
|
||||
if [ -d "${PKG_DIR}/sources/man" ]; then
|
||||
for page in ${PKG_DIR}/sources/man/*.[1-9]; do
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
[Trigger]
|
||||
Operation = Install
|
||||
Operation = Upgrade
|
||||
Operation = Remove
|
||||
Type = Path
|
||||
Target = usr/lib/kernel-overlays/*/lib/modules/*
|
||||
|
||||
[Action]
|
||||
Description = Rebuilding the kernel module index (full tree)...
|
||||
When = PostTransaction
|
||||
Exec = /usr/bin/archr-depmod
|
||||
@@ -0,0 +1,21 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2026-present ArchR (https://github.com/archr-linux/Arch-R)
|
||||
#
|
||||
# Regenerate the module dependency index over the FULL module tree after
|
||||
# a pacman transaction touches kernel modules. The linux package used to
|
||||
# ship the modules.dep generated at kernel build time, which predates
|
||||
# every out-of-tree module (joypad, WiFi drivers); installing it wiped
|
||||
# them from the index and the console came up with dead input and no
|
||||
# WiFi. The repo no longer ships those index files, and this hook keeps
|
||||
# the index honest on the device no matter what changed.
|
||||
set -u
|
||||
rc=0
|
||||
for verdir in /usr/lib/kernel-overlays/*/lib/modules/*/; do
|
||||
[ -d "${verdir}kernel" ] || continue
|
||||
base="${verdir%/lib/modules/*}"
|
||||
ver="$(basename "${verdir}")"
|
||||
echo "archr-depmod: indexing ${ver} under ${base}"
|
||||
depmod -a -b "${base}" "${ver}" || rc=1
|
||||
done
|
||||
exit ${rc}
|
||||
@@ -18,7 +18,13 @@
|
||||
. /etc/profile
|
||||
|
||||
BRANCH="$(get_setting updates.branch 2>/dev/null)"
|
||||
BRANCH="${BRANCH:-stable}"
|
||||
# Anything that is not a real channel falls back to stable: the ES
|
||||
# settings screen historically stored values like "auto" here, which
|
||||
# would point the mirrorlist at a repo tag that does not exist.
|
||||
case "${BRANCH}" in
|
||||
stable|next|dev) ;;
|
||||
*) BRANCH="stable" ;;
|
||||
esac
|
||||
|
||||
# Channel is reflected by a single line in mirrorlist; rewrite it on
|
||||
# the fly so the user can switch channels by changing the setting.
|
||||
@@ -45,8 +51,28 @@ Channel is configured via system.cfg "updates.branch" (stable|next|dev).
|
||||
EOF
|
||||
}
|
||||
|
||||
# A freshly flashed image carries no pacman local db, so pacman has no
|
||||
# installed list to compare against and every check reports "no
|
||||
# updates". Seed it once from the repo (gen-pacman-repo publishes the
|
||||
# matching archr-localdb.tar.gz next to the packages).
|
||||
seed_local_db() {
|
||||
[ -n "$(pacman -Q 2>/dev/null | head -1)" ] && return 0
|
||||
echo "Seeding package database (first update on this install)..."
|
||||
mkdir -p /var/lib/pacman
|
||||
if curl -fsSL -o /tmp/archr-localdb.tar.gz \
|
||||
"https://github.com/archr-linux/archr-repo/releases/download/repo-${BRANCH}/archr-localdb.tar.gz"; then
|
||||
tar -xzf /tmp/archr-localdb.tar.gz -C /var/lib/pacman
|
||||
rm -f /tmp/archr-localdb.tar.gz
|
||||
echo "Seeded $(pacman -Q 2>/dev/null | wc -l) package entries."
|
||||
else
|
||||
echo "Could not download the database seed. Check network."
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
cmd_check() {
|
||||
write_mirrorlist
|
||||
seed_local_db || return 1
|
||||
pacman -Sy --noconfirm >/dev/null 2>&1 || {
|
||||
echo "Failed to sync repo metadata. Check network."
|
||||
return 1
|
||||
@@ -62,6 +88,7 @@ cmd_check() {
|
||||
|
||||
cmd_update() {
|
||||
write_mirrorlist
|
||||
seed_local_db || return 1
|
||||
pacman -Syu --noconfirm
|
||||
}
|
||||
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="quirks"
|
||||
PKG_VERSION=""
|
||||
PKG_REV="2"
|
||||
PKG_VERSION="2.1"
|
||||
PKG_REV="1"
|
||||
PKG_LICENSE="GPLv2"
|
||||
PKG_SITE=""
|
||||
PKG_URL=""
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2026-present ArchR (https://github.com/archr-linux/Arch-R)
|
||||
|
||||
PKG_NAME="RTL8852AU"
|
||||
PKG_VERSION="865ab0fa91471d595c283d2f3db323f7f15455f5"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/lwfinger/rtl8852au"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_LONGDESC="Realtek RTL8852AU USB WiFi 6 driver. Out of tree because mainline has no USB glue for this chip on 6.12; the in-kernel rtw89 only gains 8852AU USB support past 6.17. NOTE: does not build against 6.12 yet (rtw_pwrctrl API break); kept out of ADDITIONAL_DRIVERS until ported."
|
||||
PKG_TOOLCHAIN="make"
|
||||
PKG_IS_KERNEL_PKG="yes"
|
||||
|
||||
pre_make_target() {
|
||||
unset LDFLAGS
|
||||
}
|
||||
|
||||
make_target() {
|
||||
make V=1 \
|
||||
ARCH=${TARGET_KERNEL_ARCH} \
|
||||
KSRC=$(kernel_path) \
|
||||
CROSS_COMPILE=${TARGET_KERNEL_PREFIX} \
|
||||
CONFIG_POWER_SAVING=y
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p ${INSTALL}/$(get_full_module_dir)/kernel/drivers/net/wireless/
|
||||
cp *.ko ${INSTALL}/$(get_full_module_dir)/kernel/drivers/net/wireless/
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2026-present ArchR (https://github.com/archr-linux/Arch-R)
|
||||
|
||||
PKG_NAME="RTL8852BU"
|
||||
PKG_VERSION="59a5918e3dc188bb9055e9ba4690623c434e0e11"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/morrownr/rtl8852bu-20250826"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_LONGDESC="Realtek RTL8852BU USB WiFi 6 driver. Out of tree because mainline has no USB glue for this chip on 6.12; the in-kernel rtw89 only gains 8852BU USB support in 6.17."
|
||||
PKG_TOOLCHAIN="make"
|
||||
PKG_IS_KERNEL_PKG="yes"
|
||||
|
||||
pre_make_target() {
|
||||
unset LDFLAGS
|
||||
}
|
||||
|
||||
make_target() {
|
||||
make V=1 \
|
||||
ARCH=${TARGET_KERNEL_ARCH} \
|
||||
KSRC=$(kernel_path) \
|
||||
CROSS_COMPILE=${TARGET_KERNEL_PREFIX} \
|
||||
CONFIG_POWER_SAVING=y
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p ${INSTALL}/$(get_full_module_dir)/kernel/drivers/net/wireless/
|
||||
cp *.ko ${INSTALL}/$(get_full_module_dir)/kernel/drivers/net/wireless/
|
||||
}
|
||||
@@ -0,0 +1,28 @@
|
||||
# SPDX-License-Identifier: GPL-2.0
|
||||
# Copyright (C) 2026-present ArchR (https://github.com/archr-linux/Arch-R)
|
||||
|
||||
PKG_NAME="RTL8852CU"
|
||||
PKG_VERSION="1530c38e5b1be6d1e96a31cf4f3602a9c23f2465"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="https://github.com/morrownr/rtl8852cu-20251113"
|
||||
PKG_URL="${PKG_SITE}.git"
|
||||
PKG_LONGDESC="Realtek RTL8852CU USB WiFi 6 driver. Out of tree because mainline has no USB glue for this chip on 6.12; the in-kernel rtw89 only gains 8852CU USB support past 6.17."
|
||||
PKG_TOOLCHAIN="make"
|
||||
PKG_IS_KERNEL_PKG="yes"
|
||||
|
||||
pre_make_target() {
|
||||
unset LDFLAGS
|
||||
}
|
||||
|
||||
make_target() {
|
||||
make V=1 \
|
||||
ARCH=${TARGET_KERNEL_ARCH} \
|
||||
KSRC=$(kernel_path) \
|
||||
CROSS_COMPILE=${TARGET_KERNEL_PREFIX} \
|
||||
CONFIG_POWER_SAVING=y
|
||||
}
|
||||
|
||||
makeinstall_target() {
|
||||
mkdir -p ${INSTALL}/$(get_full_module_dir)/kernel/drivers/net/wireless/
|
||||
cp *.ko ${INSTALL}/$(get_full_module_dir)/kernel/drivers/net/wireless/
|
||||
}
|
||||
@@ -14,6 +14,8 @@ mt7601u.bin
|
||||
mt7662*.bin
|
||||
mediatek/mt7662u*.bin
|
||||
mediatek/mt7610u.bin
|
||||
mediatek/WIFI_MT7961_patch_mcu_1_2_hdr.bin
|
||||
mediatek/WIFI_RAM_CODE_MT7961_1.bin
|
||||
|
||||
ath6k/AR6004/hw1.?/bdata.bin
|
||||
ath9k_htc/*
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
# Copyright (C) 2016-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="kernel-firmware"
|
||||
PKG_REV="2"
|
||||
PKG_VERSION="20260110"
|
||||
PKG_LICENSE="other"
|
||||
PKG_SITE="https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/"
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
# Copyright (C) 2017-present Team LibreELEC (https://libreelec.tv)
|
||||
|
||||
PKG_NAME="linux"
|
||||
PKG_REV="3"
|
||||
PKG_LICENSE="GPL"
|
||||
PKG_SITE="http://www.kernel.org"
|
||||
PKG_DEPENDS_HOST="ccache:host openssl:host"
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="sleep"
|
||||
PKG_VERSION=""
|
||||
PKG_REV="2"
|
||||
PKG_VERSION="2.1"
|
||||
PKG_REV="1"
|
||||
PKG_LICENSE="OSS"
|
||||
PKG_DEPENDS_TARGET="systemd"
|
||||
PKG_SITE=""
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
# Copyright (C) 2023 JELOS (https://github.com/JustEnoughLinuxOS)
|
||||
|
||||
PKG_NAME="system-utils"
|
||||
PKG_VERSION=""
|
||||
PKG_REV="2"
|
||||
PKG_VERSION="2.1"
|
||||
PKG_REV="1"
|
||||
PKG_LICENSE="mix"
|
||||
PKG_DEPENDS_TARGET="toolchain sleep"
|
||||
PKG_SITE=""
|
||||
|
||||
@@ -144,7 +144,25 @@ EOF
|
||||
# /.image on every kernel update for nothing.
|
||||
find . -mindepth 1 -maxdepth 1 -not -name '.PKGINFO' -not -name '.image' -printf '%P\n'
|
||||
} > "${filelist}"
|
||||
tar --zstd -cf "${outfile}" --owner=0 --group=0 -T "${filelist}"
|
||||
# The depmod-generated indexes are stale by construction inside a
|
||||
# package (the kernel builds them before any out-of-tree module
|
||||
# exists); shipping them wiped the joypad and WiFi drivers from
|
||||
# modules.dep on every linux update. The device rebuilds them via
|
||||
# the archr-depmod hook; modules.builtin*/order stay (kernel-owned
|
||||
# depmod inputs).
|
||||
tar --zstd -cf "${outfile}" --owner=0 --group=0 \
|
||||
--exclude='*/modules/*/modules.dep' \
|
||||
--exclude='*/modules/*/modules.dep.bin' \
|
||||
--exclude='*/modules/*/modules.alias' \
|
||||
--exclude='*/modules/*/modules.alias.bin' \
|
||||
--exclude='*/modules/*/modules.symbols' \
|
||||
--exclude='*/modules/*/modules.symbols.bin' \
|
||||
--exclude='*/modules/*/modules.devname' \
|
||||
--exclude='*/modules/*/modules.softdep' \
|
||||
--exclude='*/modules/*/modules.weakdep' \
|
||||
--exclude='*/modules/*/modules.builtin.bin' \
|
||||
--exclude='*/modules/*/modules.builtin.alias.bin' \
|
||||
-T "${filelist}"
|
||||
rm -f "${filelist}"
|
||||
)
|
||||
rm -f "${pkginfo}"
|
||||
@@ -194,9 +212,14 @@ fi
|
||||
echo "gen-pacman-repo: seeding installed (local) db..."
|
||||
seed_dbpath="${OUT_DIR}/.seed-dbpath"
|
||||
rm -rf "${seed_dbpath}" "${OUT_DIR}/.seed-root"
|
||||
mkdir -p "${seed_dbpath}/local" "${seed_dbpath}/sync"
|
||||
mkdir -p "${seed_dbpath}/local" "${seed_dbpath}/sync" "${OUT_DIR}/.seed-root"
|
||||
cp "${local_db}" "${seed_dbpath}/sync/${REPO_NAME}.db"
|
||||
if fakeroot pacman -U --dbonly --noconfirm \
|
||||
# The host pacman runs with the host architecture and signature policy,
|
||||
# which rejects our unsigned aarch64 payload; give it a minimal config
|
||||
# scoped to this seed operation.
|
||||
seed_conf="${seed_dbpath}/pacman.conf"
|
||||
printf '[options]\nArchitecture = aarch64\nSigLevel = Never\n' > "${seed_conf}"
|
||||
if fakeroot pacman -U --dbonly --noconfirm --config "${seed_conf}" \
|
||||
--root "${OUT_DIR}/.seed-root" --dbpath "${seed_dbpath}" \
|
||||
--cachedir "${OUT_DIR}" \
|
||||
"${OUT_DIR}"/*.pkg.tar.zst >/dev/null 2>&1; then
|
||||
|
||||
Reference in New Issue
Block a user