Skip to content

Commit 449a39c

Browse files
first commit
0 parents  commit 449a39c

18 files changed

Lines changed: 4417 additions & 0 deletions
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug or kernel issue
4+
title: '[BUG] '
5+
labels: bug
6+
assignees: ''
7+
---
8+
9+
## Environment
10+
11+
```
12+
uname -a:
13+
Distro:
14+
GPU:
15+
CPU:
16+
RAM:
17+
Storage:
18+
```
19+
20+
## Description
21+
22+
<!-- Clear description of the problem -->
23+
24+
## Steps to Reproduce
25+
26+
1.
27+
2.
28+
3.
29+
30+
## Expected Behaviour
31+
32+
## Actual Behaviour
33+
34+
## Relevant Logs
35+
36+
```
37+
# Please include output of:
38+
# dmesg | tail -100
39+
# journalctl -k --since=-10m
40+
# sudo dkms status (if module related)
41+
```
42+
43+
## Additional Context

.github/workflows/build.yml

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,166 @@
1+
name: Hyperion Kernel Build CI
2+
3+
on:
4+
workflow_dispatch:
5+
6+
env:
7+
KERNEL_VERSION: "6.19.6"
8+
HYPERION_VERSION: "0.1.0"
9+
KBUILD_BUILD_USER: "Soumalya Das"
10+
KBUILD_BUILD_HOST: "hyperion-ci"
11+
12+
jobs:
13+
validate-config:
14+
name: Validate Hyperion Config
15+
runs-on: ubuntu-latest
16+
steps:
17+
- uses: actions/checkout@v4
18+
- name: Validate config
19+
run: |
20+
python3 - <<'EOF'
21+
with open('hyperion.config') as f:
22+
lines = f.readlines()
23+
errors = []
24+
for i, line in enumerate(lines, 1):
25+
line = line.strip()
26+
if not line or line.startswith('#'):
27+
continue
28+
if '=' not in line:
29+
errors.append(f'Line {i}: Invalid config line: {line}')
30+
elif not line.startswith('CONFIG_'):
31+
errors.append(f'Line {i}: Expected CONFIG_ prefix: {line}')
32+
if errors:
33+
for e in errors:
34+
print(e)
35+
exit(1)
36+
print(f"Config validated: {len(lines)} lines, no errors")
37+
EOF
38+
- name: Check critical options
39+
run: |
40+
critical_opts=(
41+
"CONFIG_MODULES=y"
42+
"CONFIG_MODULE_UNLOAD=y"
43+
"CONFIG_MODVERSIONS=y"
44+
"CONFIG_KALLSYMS=y"
45+
"CONFIG_DEVTMPFS=y"
46+
"CONFIG_DEVTMPFS_MOUNT=y"
47+
"CONFIG_IKHEADERS=y"
48+
"CONFIG_BLK_DEV_NVME=y"
49+
"CONFIG_PREEMPT=y"
50+
"CONFIG_HZ_1000=y"
51+
"CONFIG_LRU_GEN=y"
52+
"CONFIG_BPF_JIT=y"
53+
"CONFIG_TCP_CONG_BBR=y"
54+
)
55+
failed=0
56+
for opt in "${critical_opts[@]}"; do
57+
if grep -q "^${opt}" hyperion.config; then
58+
echo "✓ $opt"
59+
else
60+
echo "✗ MISSING: $opt"
61+
failed=$((failed+1))
62+
fi
63+
done
64+
if [ $failed -gt 0 ]; then exit 1; fi
65+
echo "All critical options present"
66+
67+
build-kernel:
68+
name: Build Linux ${{ env.KERNEL_VERSION }}-Hyperion-${{ env.HYPERION_VERSION }}
69+
runs-on: ubuntu-latest
70+
needs: validate-config
71+
steps:
72+
- uses: actions/checkout@v4
73+
74+
- name: Install build dependencies
75+
run: |
76+
sudo apt-get update -qq
77+
sudo apt-get install -y --no-install-recommends \
78+
build-essential libncurses-dev bison flex libssl-dev \
79+
libelf-dev dwarves bc pahole git make gcc xz-utils zstd \
80+
cpio perl tar rsync
81+
82+
- name: Cache kernel tarball
83+
uses: actions/cache@v4
84+
with:
85+
path: linux-${{ env.KERNEL_VERSION }}.tar.xz
86+
key: linux-${{ env.KERNEL_VERSION }}-tarball
87+
88+
- name: Cache extracted kernel source
89+
uses: actions/cache@v4
90+
with:
91+
path: linux-${{ env.KERNEL_VERSION }}
92+
key: linux-${{ env.KERNEL_VERSION }}-source
93+
94+
- name: Download kernel source
95+
if: steps.cache.outputs.cache-hit != 'true'
96+
run: |
97+
wget -q "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-${{ env.KERNEL_VERSION }}.tar.xz"
98+
99+
- name: Extract kernel source
100+
if: steps.cache.outputs.cache-hit != 'true'
101+
run: tar -xf linux-${{ env.KERNEL_VERSION }}.tar.xz
102+
103+
- name: Apply Hyperion config
104+
run: |
105+
cd linux-${{ env.KERNEL_VERSION }}
106+
cp ../hyperion.config .config
107+
make olddefconfig \
108+
LOCALVERSION="-Hyperion-${{ env.HYPERION_VERSION }}" \
109+
KBUILD_BUILD_USER="${{ env.KBUILD_BUILD_USER }}" \
110+
KBUILD_BUILD_HOST="${{ env.KBUILD_BUILD_HOST }}"
111+
112+
- name: Apply patches
113+
run: |
114+
cd linux-${{ env.KERNEL_VERSION }}
115+
set -e
116+
if ls ../patches/*.patch 2>/dev/null | grep -q .; then
117+
for patch in ../patches/*.patch; do
118+
git apply "$patch" || patch -p1 < "$patch"
119+
echo "Applied: $(basename $patch)"
120+
done
121+
else
122+
echo "No patches to apply"
123+
fi
124+
125+
- name: Build kernel
126+
run: |
127+
cd linux-${{ env.KERNEL_VERSION }}
128+
make -j$(nproc) \
129+
LOCALVERSION="-Hyperion-${{ env.HYPERION_VERSION }}" \
130+
KBUILD_BUILD_USER="${{ env.KBUILD_BUILD_USER }}" \
131+
KBUILD_BUILD_HOST="${{ env.KBUILD_BUILD_HOST }}" \
132+
KBUILD_BUILD_TIMESTAMP="$(date '+%Y-%m-%d %H:%M:%S UTC')" \
133+
2>&1 | tee build.log
134+
135+
- name: Verify kernel image
136+
run: |
137+
ls -lh linux-${{ env.KERNEL_VERSION }}/arch/x86/boot/bzImage
138+
KVER=$(strings linux-${{ env.KERNEL_VERSION }}/arch/x86/boot/bzImage | grep "Linux version" | head -1)
139+
echo "Kernel release: $KVER"
140+
if echo "$KVER" | grep -q "Hyperion"; then
141+
echo "✓ Hyperion branding confirmed"
142+
else
143+
exit 1
144+
145+
- name: Create GitHub release
146+
id: release
147+
uses: softprops/action-gh-release@v2
148+
with:
149+
tag_name: v${{ env.KERNEL_VERSION }}-Hyperion-${{ env.HYPERION_VERSION }}
150+
name: Linux ${{ env.KERNEL_VERSION }}-Hyperion-${{ env.HYPERION_VERSION }}
151+
env:
152+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
153+
154+
- name: Upload bzImage to release
155+
uses: softprops/action-gh-release@v2
156+
with:
157+
files: linux-${{ env.KERNEL_VERSION }}/arch/x86/boot/bzImage
158+
env:
159+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
160+
161+
- name: Upload Module.symvers to release
162+
uses: softprops/action-gh-release@v2
163+
with:
164+
files: linux-${{ env.KERNEL_VERSION }}/Module.symvers
165+
env:
166+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

CODE_OF_CONDUCT.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
We as members, contributors, and leaders pledge to make participation in the
6+
Hyperion Kernel project a harassment-free experience for everyone, regardless
7+
of age, body size, visible or invisible disability, ethnicity, sex
8+
characteristics, gender identity and expression, level of experience,
9+
education, socio-economic status, nationality, personal appearance, race,
10+
caste, color, religion, or sexual identity and orientation.
11+
12+
## Our Standards
13+
14+
Examples of behavior that contributes to a positive environment:
15+
- Demonstrating empathy and kindness toward other people
16+
- Being respectful of differing opinions, viewpoints, and experiences
17+
- Giving and gracefully accepting constructive feedback
18+
- Accepting responsibility and apologizing to those affected by our mistakes
19+
20+
Examples of unacceptable behavior:
21+
- Trolling, insulting or derogatory comments, and personal or political attacks
22+
- Public or private harassment
23+
- Publishing others' private information without their explicit permission
24+
25+
## Enforcement
26+
27+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
28+
reported to Soumalya Das via GitHub Issues or email.
29+
30+
All complaints will be reviewed and investigated promptly and fairly.
31+
32+
## Attribution
33+
34+
This Code of Conduct is adapted from the [Contributor Covenant](https://www.contributor-covenant.org), version 2.1.

CONTRIBUTING.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Contributing to Hyperion Kernel
2+
3+
Thank you for your interest in contributing to Hyperion Kernel!
4+
This document outlines the standards and workflow for contributions.
5+
6+
---
7+
8+
## Code of Conduct
9+
10+
By participating in this project you agree to abide by the
11+
[Code of Conduct](CODE_OF_CONDUCT.md).
12+
13+
---
14+
15+
## Ways to Contribute
16+
17+
- **Bug reports** — open a GitHub Issue using the bug report template
18+
- **Config suggestions** — open a GitHub Issue with benchmark data or reference
19+
- **Patches** — open a Pull Request following the patch format below
20+
- **Documentation** — improve `docs/` or inline comments in `hyperion.config`
21+
- **Testing** — test on new hardware and report results in Discussions
22+
23+
---
24+
25+
## Development Setup
26+
27+
```bash
28+
git clone https://github.com/soumalyadev/hyperion-kernel.git
29+
cd hyperion-kernel
30+
git checkout -b feature/my-improvement
31+
```
32+
33+
---
34+
35+
## Submitting Patches
36+
37+
1. Place patch files in `patches/` named as `NNNN-description.patch`
38+
(e.g. `0001-sched-tune-autogroup-latency.patch`)
39+
2. Each patch must have a proper header:
40+
41+
```
42+
From: Your Name <your@email.com>
43+
Subject: [PATCH] subsystem: brief description
44+
45+
Longer description of what this patch does and why.
46+
Tested on: hardware description
47+
Reference: link to upstream thread / LWN / Phoronix
48+
49+
Signed-off-by: Your Name <your@email.com>
50+
```
51+
52+
3. Config changes must include a comment explaining the rationale
53+
4. Open a Pull Request targeting `main`
54+
55+
---
56+
57+
## Config Change Policy
58+
59+
All `hyperion.config` changes must include:
60+
- A comment in the config file explaining the option
61+
- A reference (benchmark, upstream doc, distro precedent) in the PR description
62+
- Before/after performance data if the change affects performance
63+
64+
---
65+
66+
## Testing Requirements
67+
68+
Before submitting a PR, confirm:
69+
- [ ] Kernel builds without errors: `make -j$(nproc)`
70+
- [ ] Boots successfully
71+
- [ ] `dkms status` shows all modules built
72+
- [ ] `uname -r` shows the correct Hyperion version string
73+
74+
---
75+
76+
## Coding Style
77+
78+
Follow the [Linux kernel coding style](https://www.kernel.org/doc/html/latest/process/coding-style.html) for any C patches.
79+
Shell scripts follow Google's [Shell Style Guide](https://google.github.io/styleguide/shellguide.html).

LICENSE

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
MIT License
2+
3+
Copyright (c) 2026 Soumalya Das
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
22+
23+
---
24+
25+
NOTE ON KERNEL LICENSE:
26+
The Linux kernel source code (linux-6.19.6) is licensed under the GNU General
27+
Public License version 2 (GPL-2.0-only) with various exceptions for user-space
28+
headers. This repository contains only configuration files, scripts, patches,
29+
and documentation, which are covered by the MIT License above.
30+
31+
Any kernel patches in the patches/ directory that are derived from Linux kernel
32+
source code are necessarily subject to the GPL-2.0-only license. Such patches
33+
are clearly marked in their headers.
34+
35+
See https://www.kernel.org/doc/html/latest/process/license-rules.html for the
36+
authoritative statement on Linux kernel licensing.

0 commit comments

Comments
 (0)