Skip to content

Commit 8bf6e7b

Browse files
Integrate modules into kernel config while retaining DKMS support
Converted external modules into built-in kernel config, ensuring better hardware compatibility and peripheral functionality. DKMS support is retained for modules that require dynamic compilation, fixing various hardware-related issues and ensuring drivers work as intended. Added more tweaks.
1 parent eed35f1 commit 8bf6e7b

File tree

9 files changed

+1021
-699
lines changed

9 files changed

+1021
-699
lines changed

README.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
██╔══██║ ╚██╔╝ ██╔═══╝ ██╔══╝ ██╔══██╗██║██║ ██║██║╚██╗██║
88
██║ ██║ ██║ ██║ ███████╗██║ ██║██║╚██████╔╝██║ ╚████║
99
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝╚═╝ ╚═════╝ ╚═╝ ╚═══╝
10-
<strong style="color:#1e88e5;">H Y P E R I O N · v0.1.2</strong>
10+
<strong style="color:#1e88e5;">H Y P E R I O N · v0.1.3</strong>
1111
<span style="color:#ff6f00;">Linux 6.19.6</span> <span style="color:#e53935;">·</span> <span style="color:#00e676;">Optimised</span> <span style="color:#e53935;">·</span> <span style="color:#ffea00;">Stable</span> <span style="color:#e53935;">·</span> <span style="color:#e040fb;">Developer-Friendly</span>
1212
</pre>
1313

@@ -22,7 +22,7 @@
2222
<img src="https://img.shields.io/github/actions/workflow/status/pro-grammer-SD/hyperion/build.yml?style=for-the-badge&label=Kernel%20Build&color=1e88e5" alt="Build Status">
2323
</a>
2424
<a href="https://kernel.org">
25-
<img src="https://img.shields.io/badge/kernel-6.19.6--Hyperion--0.1.2-blue?style=for-the-badge&color=43a047" alt="Kernel Version">
25+
<img src="https://img.shields.io/badge/kernel-6.19.6--Hyperion--0.1.3-blue?style=for-the-badge&color=43a047" alt="Kernel Version">
2626
</a>
2727
<a href="#supported-architectures">
2828
<img src="https://img.shields.io/badge/arch-x86__64-green?style=for-the-badge&color=f9a825" alt="Architecture">
@@ -69,8 +69,8 @@ Hyperion is designed for:
6969
- Developers building and testing kernel modules without fighting header or symbol versioning issues
7070

7171
```
72-
uname -r → 6.19.6-Hyperion-0.1.2
73-
uname -v → #1 SMP PREEMPT Linux 6.19.6-Hyperion-0.1.2 (Soumalya Das) 2026
72+
uname -r → 6.19.6-Hyperion-0.1.3
73+
uname -v → #1 SMP PREEMPT Linux 6.19.6-Hyperion-0.1.3 (Soumalya Das) 2026
7474
```
7575

7676
---
@@ -92,7 +92,7 @@ Hyperion is built on four principles:
9292

9393
| Category | Feature | Details |
9494
|---|---|---|
95-
| **Identity** | Custom branding | `uname -r``6.19.6-Hyperion-0.1.2` |
95+
| **Identity** | Custom branding | `uname -r``6.19.6-Hyperion-0.1.3` |
9696
| **Scheduler** | Full preemption | `CONFIG_PREEMPT=y` — lowest latency desktop |
9797
| **Scheduler** | Autogroup | `CONFIG_SCHED_AUTOGROUP=y` — session-aware scheduling |
9898
| **Timer** | 1000 Hz tick | `CONFIG_HZ_1000=y` — 1ms granularity |
@@ -151,8 +151,8 @@ Hyperion is built on four principles:
151151
Hyperion treats module compatibility as a **first-class feature**, not an afterthought.
152152

153153
**What this means in practice:**
154-
- Kernel headers are installed to `/usr/src/linux-headers-6.19.6-Hyperion-0.1.2/`
155-
- The build symlink `/lib/modules/6.19.6-Hyperion-0.1.2/build` always points to the correct headers directory
154+
- Kernel headers are installed to `/usr/src/linux-headers-6.19.6-Hyperion-0.1.3/`
155+
- The build symlink `/lib/modules/6.19.6-Hyperion-0.1.3/build` always points to the correct headers directory
156156
- `CONFIG_IKHEADERS=y` makes headers available at `/sys/kernel/kheaders.tar.xz` as a runtime fallback
157157
- `CONFIG_MODVERSIONS=y` means every exported symbol carries a CRC checksum — mismatched modules are rejected cleanly at `insmod` with a clear error, not a kernel panic
158158
- `CONFIG_MODULE_SRCVERSION_ALL=y` embeds a srcversion hash in every module for traceability
@@ -235,7 +235,7 @@ make olddefconfig
235235
make menuconfig
236236

237237
# 5. Build (use all cores)
238-
make -j$(nproc) LOCALVERSION="-Hyperion-0.1.2"
238+
make -j$(nproc) LOCALVERSION="-Hyperion-0.1.3"
239239

240240
# 6. Build modules
241241
make modules -j$(nproc)
@@ -273,14 +273,14 @@ sudo reboot
273273

274274
# Verify identity
275275
uname -r
276-
# Expected: 6.19.6-Hyperion-0.1.2
276+
# Expected: 6.19.6-Hyperion-0.1.3
277277

278278
uname -v
279-
# Expected: #1 SMP PREEMPT Linux 6.19.6-Hyperion-0.1.2 (Soumalya Das) 2026
279+
# Expected: #1 SMP PREEMPT Linux 6.19.6-Hyperion-0.1.3 (Soumalya Das) 2026
280280

281281
# Verify headers symlink
282282
ls -la /lib/modules/$(uname -r)/build
283-
# Should point to /usr/src/linux-headers-6.19.6-Hyperion-0.1.2
283+
# Should point to /usr/src/linux-headers-6.19.6-Hyperion-0.1.3
284284

285285
# Test DKMS
286286
sudo dkms status
@@ -304,7 +304,7 @@ chmod +x ./scripts/generate-initramfs.sh
304304
```bash
305305
sudo apt install v4l2loopback-dkms # or your distro equivalent
306306
sudo dkms status
307-
# v4l2loopback/0.12.x, 6.19.6-Hyperion-0.1.2, x86_64: installed
307+
# v4l2loopback/0.12.x, 6.19.6-Hyperion-0.1.3, x86_64: installed
308308
```
309309

310310
---

ci/reproducible-build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
set -euo pipefail
1313

1414
KERNEL_VERSION="${1:-6.19.6}"
15-
HYPERION_VERSION="0.1.2"
15+
HYPERION_VERSION="0.1.3"
1616
SOURCE_DIR="${2:-./linux-${KERNEL_VERSION%.*}}"
1717

1818
# Fixed timestamp for reproducible builds (ISO 8601)

docs/build.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ done
9292
```bash
9393
# Build the kernel image, modules, and DTBs
9494
# Use all available CPU cores for maximum speed
95-
make -j$(nproc) LOCALVERSION="-Hyperion-0.1.2" 2>&1 | tee build.log
95+
make -j$(nproc) LOCALVERSION="-Hyperion-0.1.3" 2>&1 | tee build.log
9696

9797
# Build modules only
9898
make modules -j$(nproc)
@@ -137,10 +137,10 @@ sudo reboot
137137

138138
```bash
139139
uname -r
140-
# Expected: 6.19.6-Hyperion-0.1.2
140+
# Expected: 6.19.6-Hyperion-0.1.3
141141

142142
uname -v
143-
# Expected: #1 SMP PREEMPT Linux 6.19.6-Hyperion-0.1.2 (Soumalya Das) 2026
143+
# Expected: #1 SMP PREEMPT Linux 6.19.6-Hyperion-0.1.3 (Soumalya Das) 2026
144144

145145
# Verify headers symlink exists
146146
ls -la /lib/modules/$(uname -r)/build

docs/dkms-compatibility.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ sudo make headers_install INSTALL_HDR_PATH=/usr
9090
sudo make modules_prepare
9191

9292
# Step 3: Copy full headers directory
93-
KVER="6.19.6-Hyperion-0.1.2"
93+
KVER="6.19.6-Hyperion-0.1.3"
9494
sudo mkdir -p /usr/src/linux-headers-${KVER}
9595

9696
# Copy all header files
@@ -106,7 +106,7 @@ sudo ln -sfn /usr/src/linux-headers-${KVER} \
106106

107107
# Verify
108108
ls -la /lib/modules/${KVER}/build
109-
# → /lib/modules/6.19.6-Hyperion-0.1.2/build -> /usr/src/linux-headers-6.19.6-Hyperion-0.1.2
109+
# → /lib/modules/6.19.6-Hyperion-0.1.3/build -> /usr/src/linux-headers-6.19.6-Hyperion-0.1.3
110110
```
111111

112112
The `install-headers.sh` script does all of this automatically.
@@ -147,7 +147,7 @@ sudo dnf install akmod-nvidia # Fedora (akmods variant)
147147

148148
# Verify
149149
sudo dkms status | grep nvidia
150-
# nvidia/550.54.14, 6.19.6-Hyperion-0.1.2, x86_64: installed ✓
150+
# nvidia/550.54.14, 6.19.6-Hyperion-0.1.3, x86_64: installed ✓
151151

152152
# Load
153153
sudo modprobe nvidia
@@ -190,7 +190,7 @@ with the current kernel's CRC.
190190

191191
**Hyperion provides** `Module.symvers` at:
192192
```
193-
/usr/src/linux-headers-6.19.6-Hyperion-0.1.2/Module.symvers
193+
/usr/src/linux-headers-6.19.6-Hyperion-0.1.3/Module.symvers
194194
```
195195

196196
DKMS automatically uses this file during module builds via:

docs/installation.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ cd linux-6.19.6
1313
sudo make modules_install
1414
```
1515

16-
This installs `.ko` files to `/lib/modules/6.19.6-Hyperion-0.1.2/`.
16+
This installs `.ko` files to `/lib/modules/6.19.6-Hyperion-0.1.3/`.
1717

1818
### 2. Install Headers
1919

@@ -23,8 +23,8 @@ sudo bash /path/to/hyperion/scripts/install-headers.sh
2323

2424
This:
2525
- Runs `make headers_install` to install sanitised user-space headers
26-
- Copies build artifacts to `/usr/src/linux-headers-6.19.6-Hyperion-0.1.2/`
27-
- Creates the `/lib/modules/6.19.6-Hyperion-0.1.2/build` symlink
26+
- Copies build artifacts to `/usr/src/linux-headers-6.19.6-Hyperion-0.1.3/`
27+
- Creates the `/lib/modules/6.19.6-Hyperion-0.1.3/build` symlink
2828
- Triggers DKMS to rebuild all registered modules for the new kernel
2929

3030
### 3. Install Kernel Image
@@ -65,7 +65,7 @@ DKMS modules will auto-build for the new kernel after headers are installed.
6565
sudo dkms status
6666

6767
# Force rebuild for current kernel
68-
sudo dkms autoinstall -k 6.19.6-Hyperion-0.1.2
68+
sudo dkms autoinstall -k 6.19.6-Hyperion-0.1.3
6969

7070
# Example: NVIDIA
7171
sudo apt install nvidia-dkms-550 # Debian/Ubuntu
@@ -90,15 +90,15 @@ sudo apt install v4l2loopback-dkms
9090
sudo reboot
9191

9292
# After reboot:
93-
uname -r # Should show: 6.19.6-Hyperion-0.1.2
93+
uname -r # Should show: 6.19.6-Hyperion-0.1.3
9494
uname -a # Full version string with author credit
9595

9696
# Verify headers are at the correct path
97-
ls /usr/src/linux-headers-6.19.6-Hyperion-0.1.2/
97+
ls /usr/src/linux-headers-6.19.6-Hyperion-0.1.3/
9898

9999
# Verify build symlink
100100
readlink /lib/modules/$(uname -r)/build
101-
# Should show: /usr/src/linux-headers-6.19.6-Hyperion-0.1.2
101+
# Should show: /usr/src/linux-headers-6.19.6-Hyperion-0.1.3
102102

103103
# Verify DKMS modules all built
104104
sudo dkms status
@@ -114,20 +114,20 @@ ls /sys/kernel/kheaders.tar.xz
114114

115115
```bash
116116
# Remove kernel image and associated files
117-
sudo rm -f /boot/vmlinuz-6.19.6-Hyperion-0.1.2
118-
sudo rm -f /boot/initrd.img-6.19.6-Hyperion-0.1.2
119-
sudo rm -f /boot/System.map-6.19.6-Hyperion-0.1.2
120-
sudo rm -f /boot/config-6.19.6-Hyperion-0.1.2
117+
sudo rm -f /boot/vmlinuz-6.19.6-Hyperion-0.1.3
118+
sudo rm -f /boot/initrd.img-6.19.6-Hyperion-0.1.3
119+
sudo rm -f /boot/System.map-6.19.6-Hyperion-0.1.3
120+
sudo rm -f /boot/config-6.19.6-Hyperion-0.1.3
121121

122122
# Remove modules
123-
sudo rm -rf /lib/modules/6.19.6-Hyperion-0.1.2/
123+
sudo rm -rf /lib/modules/6.19.6-Hyperion-0.1.3/
124124

125125
# Remove headers
126-
sudo rm -rf /usr/src/linux-headers-6.19.6-Hyperion-0.1.2/
126+
sudo rm -rf /usr/src/linux-headers-6.19.6-Hyperion-0.1.3/
127127

128128
# Update bootloader
129129
sudo update-grub # or your distro equivalent
130130

131131
# Remove DKMS records for this kernel
132-
sudo dkms remove --all -k 6.19.6-Hyperion-0.1.2
132+
sudo dkms remove --all -k 6.19.6-Hyperion-0.1.3
133133
```

docs/kernel-attribution.md

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ all version strings, `uname` output, and boot messages correctly identify as
77
Expected result:
88

99
```
10-
Linux version 6.19.6-Hyperion-0.1.2 (Soumalya Das) (gcc version 13.2.0) #1 SMP PREEMPT 2026
10+
Linux version 6.19.6-Hyperion-0.1.3 (Soumalya Das) (gcc version 13.2.0) #1 SMP PREEMPT 2026
1111
```
1212

1313
---
@@ -28,12 +28,12 @@ NAME = Hurr durr I'ma ninja sloth
2828
VERSION = 6
2929
PATCHLEVEL = 12
3030
SUBLEVEL = 0
31-
EXTRAVERSION = -Hyperion-0.1.2
31+
EXTRAVERSION = -Hyperion-0.1.3
3232
NAME = Hyperion
3333
```
3434

3535
The `EXTRAVERSION` is what appears in `uname -r` **when not overridden by**
36-
`CONFIG_LOCALVERSION`. Since we also set `CONFIG_LOCALVERSION="-Hyperion-0.1.2"`
36+
`CONFIG_LOCALVERSION`. Since we also set `CONFIG_LOCALVERSION="-Hyperion-0.1.3"`
3737
in `hyperion.config`, they work together. Set `EXTRAVERSION` in Makefile to
3838
empty and rely on `CONFIG_LOCALVERSION` for flexibility, OR set both to the
3939
same value for a hard-coded build.
@@ -42,7 +42,7 @@ same value for a hard-coded build.
4242

4343
```makefile
4444
EXTRAVERSION =
45-
# CONFIG_LOCALVERSION="-Hyperion-0.1.2" in .config handles the suffix
45+
# CONFIG_LOCALVERSION="-Hyperion-0.1.3" in .config handles the suffix
4646
```
4747

4848
---
@@ -51,16 +51,16 @@ EXTRAVERSION =
5151

5252
```kconfig
5353
# In hyperion.config (already set):
54-
CONFIG_LOCALVERSION="-Hyperion-0.1.2"
54+
CONFIG_LOCALVERSION="-Hyperion-0.1.3"
5555
CONFIG_LOCALVERSION_AUTO=n
5656
```
5757

58-
This produces: `6.19.6-Hyperion-0.1.2`
58+
This produces: `6.19.6-Hyperion-0.1.3`
5959

6060
**Build-time override** (takes precedence over config):
6161

6262
```bash
63-
make -j$(nproc) LOCALVERSION="-Hyperion-0.1.2"
63+
make -j$(nproc) LOCALVERSION="-Hyperion-0.1.3"
6464
```
6565

6666
---
@@ -104,7 +104,7 @@ In your build environment:
104104
```bash
105105
export KBUILD_BUILD_USER="Soumalya Das"
106106
export KBUILD_BUILD_HOST="hyperion-build"
107-
make -j$(nproc) LOCALVERSION="-Hyperion-0.1.2"
107+
make -j$(nproc) LOCALVERSION="-Hyperion-0.1.3"
108108
```
109109

110110
This is the **recommended approach** as it requires no source modification.
@@ -128,10 +128,10 @@ If you want to also embed the git commit hash:
128128

129129
```bash
130130
# In scripts/setlocalversion, near the end, append custom string:
131-
echo "-Hyperion-0.1.2-$(git rev-parse --short HEAD 2>/dev/null || echo 'release')"
131+
echo "-Hyperion-0.1.3-$(git rev-parse --short HEAD 2>/dev/null || echo 'release')"
132132
```
133133

134-
This produces: `6.19.6-Hyperion-0.1.2-a3f9c21`
134+
This produces: `6.19.6-Hyperion-0.1.3-a3f9c21`
135135

136136
---
137137

@@ -168,23 +168,23 @@ After building and booting:
168168
```bash
169169
# Release string (uname -r)
170170
uname -r
171-
# → 6.19.6-Hyperion-0.1.2
171+
# → 6.19.6-Hyperion-0.1.3
172172
173173
# Full version string (uname -v)
174174
uname -v
175-
# → #1 SMP PREEMPT Linux 6.19.6-Hyperion-0.1.2 (Soumalya Das) 2026
175+
# → #1 SMP PREEMPT Linux 6.19.6-Hyperion-0.1.3 (Soumalya Das) 2026
176176
177177
# All info
178178
uname -a
179-
# → Linux hyperion 6.19.6-Hyperion-0.1.2 #1 SMP PREEMPT ... (Soumalya Das) 2026 x86_64 GNU/Linux
179+
# → Linux hyperion 6.19.6-Hyperion-0.1.3 #1 SMP PREEMPT ... (Soumalya Das) 2026 x86_64 GNU/Linux
180180
181181
# /proc interface
182182
cat /proc/version
183-
# → Linux version 6.19.6-Hyperion-0.1.2 (Soumalya Das) (gcc version 13.2.0 ...) #1 SMP PREEMPT 2026
183+
# → Linux version 6.19.6-Hyperion-0.1.3 (Soumalya Das) (gcc version 13.2.0 ...) #1 SMP PREEMPT 2026
184184
185185
# Kernel banner in dmesg
186186
dmesg | head -3
187-
# → [ 0.000000] Linux version 6.19.6-Hyperion-0.1.2 (Soumalya Das) ...
187+
# → [ 0.000000] Linux version 6.19.6-Hyperion-0.1.3 (Soumalya Das) ...
188188
```
189189

190190
---

docs/troubleshooting.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -61,29 +61,29 @@ ls /boot/loader/entries/
6161

6262
**Symptom:**
6363
```
64-
Error! Bad return status for module build on kernel: 6.19.6-Hyperion-0.1.2
64+
Error! Bad return status for module build on kernel: 6.19.6-Hyperion-0.1.3
6565
```
6666

6767
**Step 1: Check if headers exist**
6868
```bash
69-
ls /usr/src/linux-headers-6.19.6-Hyperion-0.1.2/
69+
ls /usr/src/linux-headers-6.19.6-Hyperion-0.1.3/
7070
# If empty or missing → run install-headers.sh
7171
sudo bash /path/to/hyperion/scripts/install-headers.sh
7272
```
7373

7474
**Step 2: Verify build symlink**
7575
```bash
76-
readlink /lib/modules/6.19.6-Hyperion-0.1.2/build
77-
# Must point to /usr/src/linux-headers-6.19.6-Hyperion-0.1.2
76+
readlink /lib/modules/6.19.6-Hyperion-0.1.3/build
77+
# Must point to /usr/src/linux-headers-6.19.6-Hyperion-0.1.3
7878

7979
# Fix if wrong:
80-
sudo ln -sfn /usr/src/linux-headers-6.19.6-Hyperion-0.1.2 \
81-
/lib/modules/6.19.6-Hyperion-0.1.2/build
80+
sudo ln -sfn /usr/src/linux-headers-6.19.6-Hyperion-0.1.3 \
81+
/lib/modules/6.19.6-Hyperion-0.1.3/build
8282
```
8383

8484
**Step 3: Try building DKMS module manually**
8585
```bash
86-
sudo dkms build -m nvidia -v 550.54.14 -k 6.19.6-Hyperion-0.1.2 --verbose
86+
sudo dkms build -m nvidia -v 550.54.14 -k 6.19.6-Hyperion-0.1.3 --verbose
8787
```
8888

8989
**Step 4: Check module build log**
@@ -98,7 +98,7 @@ cat /var/lib/dkms/<module>/<version>/build/make.log
9898
**Symptom:**
9999
```
100100
insmod: ERROR: could not insert module foo.ko: Invalid module format
101-
dmesg: foo: version magic '6.19.6 ...' should be '6.19.6-Hyperion-0.1.2 ...'
101+
dmesg: foo: version magic '6.19.6 ...' should be '6.19.6-Hyperion-0.1.3 ...'
102102
```
103103

104104
**Cause:** Module was built for a different kernel version

0 commit comments

Comments
 (0)