linux-tkg:Linux 内核定制编译脚本
一组脚本,自动下载、打补丁并编译 Linux 内核,附带面向桌面和游戏体验的可选补丁与调度器。
- 浏览
- 3
- 访问
- 0
- 下载
- 0
- 版本
- v7.3.1
- 平台
- Linux
详细介绍
项目简介
linux-tkg 提供一组脚本,可自动下载、打补丁并编译任意 ≥ 5.4 版本的 Linux 内核。仓库还附带一批可改善桌面与游戏体验的补丁,其中大多数可以通过编辑 customization.cfg 或跟随交互式安装脚本进行开关。
主要功能
内核定制开关(位于 customization.cfg):
_timer_freq:定时器频率,取决于调度器_cpusched:选择不同的 CPU 调度器_processor_opt:针对指定 CPU 优化编译代码,例如znver4_compileroptlevel:使用 GCC 或 Clang,并可附加O2/O3_lto_mode:仅 Clang,启用 LTO 编译优化
精简模块,缩短编译时间:
_kernel_on_diet:使用现成的精简模块列表- 高级用户可通过
_modprobeddb和_modprobeddb_db_path使用自定义模块列表(不推荐;列表过短可能导致内核无法启动或运行时缺少模块)
NTsync 与 Fsync 支持,包括本身不带这些特性的旧内核版本;可能需要配合打过补丁的 wine(见 wine-tkg)。
CPU 调度器:
- 运行时切换:内核 ≥ 6.12 可通过 sched-ext 在运行时切换调度器,并保留内核内置默认调度器作为回退。sched-ext 提供多种调度器,其中 LAVD 面向游戏负载。
- 构建时切换:可选 BORE(Burst-Oriented Response Enhancer)、Project C / PDS & BMQ、MuQSS、Undead PDS。具体可用项取决所选内核版本,脚本会按版本显示。
自带补丁:在克隆根目录创建 linuxXY-tkg-userpatches 文件夹(如 linux65-tkg-userpatches),设置 _user_patches=true,把补丁以 .mypatch 扩展名放入,安装脚本会找到并逐个询问是否应用。
内核配置:默认基于 Arch 的完整 defconfig 并调整部分 CONFIG 项;可用 _configfile 覆盖基线配置,也可在编译开始前用 make xconfig/menuconfig 修改,并把改动保存为 .myfrag 片段文件放在克隆根目录。
安装与使用
所有支持的发行版都需要用 git 克隆仓库;建议只克隆一次,之后用 git pull 更新(仓库内会保留较大的内核源码副本,位于 linux-src-git)。
Arch 及衍生版:
git clone https://github.com/Frogging-Family/linux-tkg.git
cd linux-tkg
makepkg -si
需要已安装 base-devel 包组。构建时选择的选项会安装到 /usr/share/doc/$pkgbase/customization.cfg。
DEB / RPM 系发行版(Debian、Ubuntu、Fedora、RHEL、SUSE 等):
git clone https://github.com/Frogging-Family/linux-tkg.git
cd linux-tkg
./install.sh install
交互式脚本会生成 .deb 或 .rpm 包,放入 DEBS 或 RPMS 子目录,再询问是否用发行版包管理器安装。
Generic 通用安装:在提示中选择 Generic,或设置 _distro 选项,然后执行 ./install.sh install。脚本编译完成后会询问是否执行:
sudo cp -R . /usr/src/linux-tkg-${kernel_flavor}
cd /usr/src/linux-tkg-${kernel_flavor}
sudo make modules_install
sudo make install
若只想让脚本对 linux-src-git 中的源码打补丁,可用 ./install.sh config。
Gentoo:交互式 install.sh 按与 Generic 相同的流程支持,并有少量额外处理。
注意事项
- 非 pacman 发行版的支持属于实验性,欢迎反馈问题。
- 若发行版不使用 systemd,请设置
_configfile="running-kernel",否则可能得到无法启动的内核。 - 用 GCC 编译较新内核约需 20–25GB 磁盘空间;使用 llvm/clang、LTO、ccache 或在 defconfig 中启用更多驱动会更高。
- Nvidia 驱动可能需要打补丁才能在新内核上正常编译或工作,可参考 Frogging-Family nvidia-all。
- Generic 方式安装的文件不被包管理器追踪,卸载需手动处理,可用
./install.sh uninstall-help获取提示信息。 - 使用
make install会调用/sbin/installkernel放置内核并触发生成 initramfs(及 UKI),需按发行版文档配置。 - 自定义配置的优先级从低到高为:
customization.cfg、外部配置文件(_EXT_CONFIG_PATH,默认~/.config/frogminer/linux-tkg.cfg)、shell 环境变量。
本作品整理自 GitHub 开源项目 Frogging-Family/linux-tkg,原作者 @Frogging-Family,许可证 GPL-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。
更新记录
- v7.3.1当前版本
v7.3.1 是启用 `_kernel_on_diet` 选项构建的内核版本;若使用中遇到问题,建议在本地关闭该选项重新构建内核。
评论