This is the single most valuable contribution. Here's how:
Any distro works. Arch and Fedora tend to have the newest kernels.
lspci -nn > lspci.txt
lsusb > lsusb.txt
cat /proc/cpuinfo > cpuinfo.txt
dmesg > dmesg.txt
lsmod > lsmod.txtmake localmodconfig
cp .config starting-config.txtconfigs/YourModel/
├── config # kernel .config
├── README.md # hardware matrix (use MacPro6,1 as template)
├── patches/ # any model-specific patches
├── sysctl.d/
│ └── 99-yourmodel.conf
└── fan/
└── fan.conf # if applicable
Follow the pattern in configs/MacPro6,1/config:
- Identify exact hardware from
lspci - Set your drivers to
=y(built-in) - Disable drivers for hardware you don't have
- Set CPU optimization for your architecture
- Build firmware blobs into the kernel
- Build the kernel
- Boot it (keep stock kernel as fallback!)
- Verify all hardware works
- Document what works/doesn't in your README.md
Include your config directory, test results, and lspci -nn output.
- Fix hardware that doesn't work
- Add patches for model-specific issues
- Tune performance settings
- Update for newer kernel versions
See docs/pvg-linux.md. Most impactful contributions:
- Protocol documentation from QEMU source analysis
- Mesa/Vulkan integration expertise
- Testing on different GPU + macOS combinations
- Shell scripts:
shellcheckclean - Kernel configs: commented, organized by subsystem
- Documentation: clear, practical, tested
Include: Mac model/variant, kernel version, relevant dmesg output, steps to reproduce.