Skip to content

Commit 551e628

Browse files
committed
first commit
0 parents  commit 551e628

4 files changed

Lines changed: 201 additions & 0 deletions

File tree

Dockerfile.kernelbuild

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
FROM ghcr.io/void-linux/void-glibc-full:latest
2+
3+
RUN xbps-install -Syu xbps && xbps-install -Sy \
4+
bash bc binutils clang lld curl elfutils flex bison gcc kmod \
5+
elfutils-devel openssl-devel pahole perl python3 zlib-devel \
6+
zstd git make patch shadow sudo
7+
8+
RUN useradd -m builder && echo 'builder ALL=(ALL) NOPASSWD: ALL' > /etc/sudoers.d/builder
9+
10+
# clone void-packages as root, fix ownership
11+
RUN git clone --depth=1 https://github.com/void-linux/void-packages /void-packages && \
12+
chown -R builder:builder /void-packages
13+
14+
# copy our linux-cachyos template
15+
COPY --chown=builder:builder kernel/srcpkgs/linux-cachyos /void-packages/srcpkgs/linux-cachyos
16+
17+
WORKDIR /void-packages
18+
19+
# Run as root so we can set up /output and copy results
20+
# Then switch to builder just for xbps-src commands
21+
CMD ["sh", "-c", "mkdir -p /output && chown builder:builder /output && su - builder -c 'cd /void-packages && ./xbps-src binary-bootstrap && ./xbps-src pkg linux-cachyos' && cp /void-packages/hostdir/binpkgs/*.xbps /output/ && ls -la /output/"]

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# VoidLinux Cachy Kernel
2+
3+
*Provides CachyOS kernel support for Void Linux.*
4+
5+
## Build
6+
7+
### Requirements
8+
- Docker
9+
- xbps-src (optional - use directly if running Void Linux; Docker is better otherwise)
10+
11+
### Building with Docker
12+
```bash
13+
docker build -f Dockerfile.kernelbuild -t npkg-kernelbuild . && docker run --rm --privileged -v ~/kernel-output:/output npkg-kernelbuild
14+
```
15+
16+
## Notice
17+
18+
This project is in early development and currently targets glibc x86_64 systems only. Install at your own risk. Issues can be reported to the project repository.
Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
# CachyOS kernel config for npkg distro
2+
# Base: x86_64 defconfig + CachyOS tuning
3+
# Generated as a starting point — run `make menuconfig` to customize
4+
5+
CONFIG_LOCALVERSION="-cachyos"
6+
CONFIG_LOCALVERSION_AUTO=n
7+
8+
# Scheduler
9+
CONFIG_SCHED_BORE=y
10+
CONFIG_SCHED_CLASS_EXT=y
11+
CONFIG_PREEMPT=y
12+
CONFIG_PREEMPT_VOLUNTARY=n
13+
CONFIG_HZ_300=y
14+
CONFIG_HZ=300
15+
16+
# Memory
17+
CONFIG_TRANSPARENT_HUGEPAGE=y
18+
CONFIG_TRANSPARENT_HUGEPAGE_ALWAYS=y
19+
CONFIG_LRU_GEN=y
20+
CONFIG_LRU_GEN_ENABLED=y
21+
22+
# CPU
23+
CONFIG_GENERIC_CPU=y
24+
CONFIG_X86_64=y
25+
CONFIG_64BIT=y
26+
27+
# Compression
28+
CONFIG_KERNEL_ZSTD=y
29+
CONFIG_MODULE_COMPRESS_ZSTD=y
30+
31+
# Module versioning (required for Module.symvers / DKMS)
32+
CONFIG_MODULES=y
33+
CONFIG_MODVERSIONS=y
34+
35+
# Security
36+
CONFIG_SECURITY=y
37+
CONFIG_SECURITY_SELINUX=n
38+
CONFIG_SECURITY_APPARMOR=y
39+
CONFIG_DEFAULT_SECURITY_APPARMOR=y
40+
41+
# Filesystems
42+
CONFIG_EXT4_FS=y
43+
CONFIG_BTRFS_FS=y
44+
CONFIG_XFS_FS=y
45+
CONFIG_TMPFS=y
46+
CONFIG_TMPFS_POSIX_ACL=y
47+
CONFIG_VFAT_FS=y
48+
CONFIG_EXFAT_FS=y
49+
CONFIG_NTFS3_FS=y
50+
51+
# Networking
52+
CONFIG_INET=y
53+
CONFIG_IPV6=y
54+
CONFIG_NETFILTER=y
55+
CONFIG_NF_TABLES=y
56+
57+
# Virtio (for VM/QEMU support)
58+
CONFIG_VIRTIO=y
59+
CONFIG_VIRTIO_PCI=y
60+
CONFIG_VIRTIO_BLK=y
61+
CONFIG_VIRTIO_NET=y
62+
CONFIG_VIRTIO_CONSOLE=y
63+
64+
# USB
65+
CONFIG_USB=y
66+
CONFIG_USB_XHCI_HCD=y
67+
CONFIG_USB_EHCI_HCD=y
68+
CONFIG_USB_STORAGE=y
69+
70+
# Sound
71+
CONFIG_SOUND=y
72+
CONFIG_SND=y
73+
CONFIG_SND_HDA_INTEL=y
74+
75+
# Graphics
76+
CONFIG_DRM=y
77+
CONFIG_DRM_I915=y
78+
CONFIG_DRM_AMDGPU=y
79+
CONFIG_DRM_NOUVEAU=y
80+
81+
# Initramfs
82+
CONFIG_BLK_DEV_INITRD=y
83+
CONFIG_INITRAMFS_SOURCE=""
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
# Template file for 'linux-cachyos'
2+
pkgname=linux-cachyos
3+
version=7.0.0
4+
revision=1
5+
short_desc="Linux kernel with CachyOS patches (BORE scheduler, LRU_GEN)"
6+
maintainer="CachyVoid <noreply@cachyvoid>"
7+
license="GPL-2.0-only"
8+
homepage="https://github.com/CachyOS/linux-cachyos"
9+
arch="x86_64"
10+
_srcname="cachyos-${version}-${revision}"
11+
distfiles="https://github.com/CachyOS/linux/releases/download/${_srcname}/${_srcname}.tar.gz"
12+
checksum="d835e31dcc6665be43da8484d267e22e33f9f8b59e4f2892ce941705e728318a"
13+
14+
wrksrc="${_srcname}"
15+
16+
makedepends="bc binutils clang lld llvm elfutils elfutils-devel flex bison gcc kmod libelf openssl-devel pahole
17+
perl python3 zlib-devel zstd eudev-libudev-devel wireless-regdb"
18+
19+
nopie=yes
20+
nosstrip=yes
21+
22+
do_configure() {
23+
cd "${wrksrc}"
24+
# customized config
25+
cp "${FILESDIR}/config" .config
26+
make LLVM=1 olddefconfig
27+
}
28+
29+
do_build() {
30+
cd "${wrksrc}"
31+
make LLVM=1 ${makejobs}
32+
}
33+
34+
do_install() {
35+
cd "${wrksrc}"
36+
local _kernver
37+
_kernver="$(make -s kernelrelease)"
38+
vinstall arch/x86/boot/bzImage 644 boot "vmlinuz-${_kernver}"
39+
vinstall System.map 644 boot "System.map-${_kernver}"
40+
vinstall .config 644 boot "config-${_kernver}"
41+
make INSTALL_MOD_PATH="${DESTDIR}/usr" INSTALL_MOD_STRIP=1 modules_install
42+
local _hdrdir="usr/src/linux-headers-${_kernver}"
43+
vmkdir "${_hdrdir}"
44+
cp .config "${DESTDIR}/${_hdrdir}/.config"
45+
if [ -f Module.symvers ]; then
46+
cp Module.symvers "${DESTDIR}/${_hdrdir}/Module.symvers"
47+
elif [ -f vmlinux.symvers ]; then
48+
cp vmlinux.symvers "${DESTDIR}/${_hdrdir}/Module.symvers"
49+
msg_warn "Module.symvers missing; using vmlinux.symvers compatibility fallback"
50+
else
51+
msg_warn "Module.symvers not found; installing headers without symbol version table"
52+
fi
53+
cp System.map "${DESTDIR}/${_hdrdir}/System.map"
54+
cp Makefile "${DESTDIR}/${_hdrdir}/"
55+
cp Kbuild "${DESTDIR}/${_hdrdir}/" 2>/dev/null || true
56+
vcopy scripts "${_hdrdir}"
57+
vcopy include "${_hdrdir}"
58+
vmkdir "${_hdrdir}/arch"
59+
vcopy arch/x86/include "${_hdrdir}/arch/x86"
60+
cp arch/x86/Makefile "${DESTDIR}/${_hdrdir}/arch/x86/" 2>/dev/null || true
61+
[ -f arch/x86/Makefile_32.cpu ] && cp arch/x86/Makefile_32.cpu "${DESTDIR}/${_hdrdir}/arch/x86/"
62+
[ -f arch/x86/kernel/asm-offsets.h ] && {
63+
vmkdir "${_hdrdir}/arch/x86/kernel"
64+
cp arch/x86/kernel/asm-offsets.h "${DESTDIR}/${_hdrdir}/arch/x86/kernel/"
65+
}
66+
if [ ! -f "${DESTDIR}/${_hdrdir}/Module.symvers" ]; then
67+
msg_error "Module.symvers not found - modules may fail to build"
68+
fi
69+
vmkdir etc/kernel.d/post-install
70+
cat > "${DESTDIR}/etc/kernel.d/post-install/50-dracut-${_kernver}" <<-EOF
71+
#!/bin/sh
72+
dracut --force /boot/initramfs-${_kernver}.img ${_kernver}
73+
EOF
74+
chmod 0755 "${DESTDIR}/etc/kernel.d/post-install/50-dracut-${_kernver}"
75+
rm -f "${DESTDIR}/usr/lib/modules/${_kernver}/build"
76+
rm -f "${DESTDIR}/usr/lib/modules/${_kernver}/source"
77+
ln -sf "/${_hdrdir}" "${DESTDIR}/usr/lib/modules/${_kernver}/build"
78+
}
79+

0 commit comments

Comments
 (0)