6个版本 (3个重大更新)
0.4.2 | 2023年3月6日 |
---|---|
0.4.1 | 2022年9月19日 |
0.4.0 | 2022年5月15日 |
0.3.0 | 2022年4月22日 |
0.1.0 | 2022年4月15日 |
#370 in Unix API
每月 64 次下载
94KB
683 代码行
NixModule
一个简单的qemu包装器,用于自动测试多个内核版本下的树外Linux内核模块。提供的镜像都包含KASAN
,以帮助您开发。
cargo install nixmodule
以下示例运行单个内核,不带参数运行时测试您nixmodule-config.toml
预构建内核
查看nixmodule-config.toml
以获取使用所有这些镜像的示例配置。
版本 | BzImage | 头文件 | LTS? |
---|---|---|---|
5.17.2 | bZimage | 头文件 | |
5.15.33 | bZimage | 头文件 | 是 |
5.10.110 | bZimage | 头文件 | 是 |
5.8.9 | bZimage | 头文件 | |
5.4.188 | bZimage | 头文件 | 是 |
4.19.237 | bZimage | 头文件 | 是 |
4.14.275 | bZimage | 头文件 | 是 |
4.9.309 | bZimage | 头文件 | 是 |
4.4.302 | bZimage | 头文件 | 是 |
预构建磁盘镜像
ImgName | 链接 | SSH密钥 |
---|---|---|
角石 | 镜像 | 密钥 |
Syzkaller Debian Buster | 镜像 | 密钥 |
Syzkaller Debian Stretch | 镜像 | 密钥 |
使用其他内核
使用打包脚本
KERNEL=4.14.275 ./scripts/package.sh
此脚本将构建所需的bzImage
以及一个包含构建树外内核模块所需的头文件/模块信息的归档linux-$VERSION-headers.tar.gz
。
然后,将新内核添加到您的配置文件nixmodule-config.toml
[[kernels]]
version = "4.19.237"
url_base = "https://files.sboc.dev"
headers = "linux-headers/linux-4.19.237-headers.tar.gz"
kernel = "linux-kernels/bzImage-linux-4.19.237"
runner = "qemu-system-x86_64"
[kernels.disk]
name = "stretch"
url_base = "https://files.sboc.dev"
path = "images/stretch/stretch.img"
sshkey = "images/stretch/stretch.id_rsa"
boot = "/dev/sda"
您可以选择禁用kvm
kvm = false
并增加启动超时时间
timeout = 600
没有kvm,您可能需要增加默认超时时间。
使用其他磁盘镜像
填写您想要使用新磁盘的内核的[kernels.disk]
条目
[kernels.disk]
name = "stretch"
url_base = "https://files.sboc.dev"
path = "images/stretch/stretch.img"
sshkey = "images/stretch/stretch.id_rsa"
boot = "/dev/sda"
引导应包含用于引导的分区。这将传递给qemu作为内核参数
-append "console=ttyS0 root=$BOOT earlyprintk=serial net.ifnames=0 nokaslr"
依赖关系
~10–24MB
~371K SLoC