https://github.com/dawciobiel/linux-kernel-build-py
Python-based framework for building custom Linux kernel RPM packages within a Dockerized environment
https://github.com/dawciobiel/linux-kernel-build-py
generate kernel linux linux-kernel
Last synced: about 1 month ago
JSON representation
Python-based framework for building custom Linux kernel RPM packages within a Dockerized environment
- Host: GitHub
- URL: https://github.com/dawciobiel/linux-kernel-build-py
- Owner: dawciobiel
- License: gpl-3.0
- Created: 2025-10-01T11:26:43.000Z (9 months ago)
- Default Branch: main
- Last Pushed: 2025-10-01T11:37:27.000Z (9 months ago)
- Last Synced: 2025-10-01T13:21:29.929Z (9 months ago)
- Topics: generate, kernel, linux, linux-kernel
- Language: Python
- Homepage:
- Size: 155 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Linux Kernel Build Project (Python)
This project provides a Python-based framework for building custom Linux kernel RPM packages within a Dockerized environment. It aims to streamline the process of kernel compilation, packaging, and signing, offering a modular and reproducible build system.
## Features
* **Dockerized Builds:** Kernel compilation and RPM packaging occur within isolated Docker containers, ensuring consistent build environments.
* **Python-driven Automation:** All build steps are orchestrated using Python scripts, enhancing flexibility and maintainability.
* **Custom Kernel Configurations:** Easily build kernels with various configurations (e.g., `tiny-config`, `vbox-config-slim`).
* **RPM Package Generation:** Produces standard RPM packages for easy installation and management on RPM-based systems.
* **Configurable Parallelism:** Customize the number of CPU cores used for compilation for faster builds.
* **GPG Signing:** Automatically generates a temporary GPG key pair within the build container to sign the generated RPMs, ensuring package integrity.
* **Structured Logging:** Detailed logs for each stage of the build process are generated, aiding in troubleshooting and analysis.
* **Build Reports:** A summary report is generated for each build, providing key information about the process.
## Project Structure
```
.
├── .gitignore
├── BUILD.md # Detailed build instructions
├── GEMINI.md # Gemini-specific context and instructions
├── INSTALL.md # Installation and setup guide
├── README.md # Project overview
├── RPM-GPG-KEY-dawciobiel # Public GPG key for RPM verification (if provided)
├── TODO.md # Project roadmap and pending tasks
├── docker/ # Dockerfiles and scripts for building Docker images
│ ├── _build_engine
│ ├── build-tumbleweed.sh
│ ├── build-ubuntu.sh
│ ├── tumbleweed.Dockerfile
│ └── ubuntu.Dockerfile
├── kernel-config/ # Custom kernel configuration files
│ ├── amd-fx8350-lspci_k.log
│ ├── amd-fx8350-lsusb.log
│ ├── README.md
│ ├── host-config/
│ ├── host-config-slim/
│ ├── tiny-config/
│ ├── vbox-config/
│ └── vbox-config-slim/
├── kernel-sources/ # Directory for kernel source tarballs
│ └── linux-6.16.8.tar.xz
└── scripts/ # Python and shell scripts for build automation
├── generate_gpg_key.sh
├── kernel_builder.py
└── local_kernel_build.py
```
## Getting Started
Refer to `INSTALL.md` for detailed instructions on setting up the project and `BUILD.md` for how to build your first custom kernel.