9 个版本
| 0.2.0 | 2023 年 2 月 12 日 |
|---|---|
| 0.1.7 | 2023 年 1 月 30 日 |
| 0.1.3 | 2022 年 12 月 21 日 |
#108 在 #linux-kernel
每月 32 次下载
30KB
585 行
ikconfig
这是 Linux 内核中的 extract-ikconfig 的 Rust 重新实现,用于从内核映像中提取 .config 文件。
这仅在内核使用 CONFIG_IKCONFIG 编译时才有效,在 Arch Linux 上默认启用,但在 Ubuntu 上未启用。
它支持 Linux 内核中的所有 7 种压缩算法
CONFIG_KERNEL_GZIPCONFIG_KERNEL_BZIP2CONFIG_KERNEL_LZMACONFIG_KERNEL_XZCONFIG_KERNEL_LZOCONFIG_KERNEL_LZ4CONFIG_KERNEL_ZSTD
先决条件
此软件包要求在安装前系统中有 liblzma,并且使用 pkg-config 在构建过程中查找 liblzma 和其他库。
Arch Linux
sudo pacman -S pkgconf xz
Ubuntu
sudo apt install pkg-config liblzma-dev
请参阅系统手册了解其他发行版的说明。您可以通过运行以下命令来检查是否已安装 liblzma
$ pkg-config --libs liblzma
并且如果 liblzma 正确安装,它应该输出 -llzma。
安装
此软件包已发布到 crates.io,因此您可以使用以下命令将 ikconfig 可执行文件安装到 ~/.cargo/bin 目录
cargo install ikconfig
用法
ikconfig <path_of_kernel_image>
提取的配置文件将像原始 shell 脚本一样打印到标准输出。如果需要,请使用输出重定向将其保存为文件,例如。
ikconfig /boot/vmlinuz-linux > .config
测试
此存储库中的集成测试将比较 ikconfig 和 extract-ikconfig shell 脚本的执行时间。后者使用系统命令来完成相应的解压缩,其中大多数都是预安装的,除了 lzop(1),因此您可能需要在运行 cargo test 之前安装它。
Arch Linux
sudo pacman -S lzop
Ubuntu
sudo apt install lzop
许可协议
依赖项
约8–19MB
约261K SLoC