#linux-kernel #config-file #kernel #linux #config #command-line-tool

app ikconfig

一个从内核映像中提取 .config 文件的 CLI 工具

9 个版本

0.2.0 2023 年 2 月 12 日
0.1.7 2023 年 1 月 30 日
0.1.3 2022 年 12 月 21 日

#108#linux-kernel

每月 32 次下载

GPL-3.0-or-later OR MITGPL-3.0-or-later

30KB
585

ikconfig

这是 Linux 内核中的 extract-ikconfig 的 Rust 重新实现,用于从内核映像中提取 .config 文件。

这仅在内核使用 CONFIG_IKCONFIG 编译时才有效,在 Arch Linux 上默认启用,但在 Ubuntu 上未启用。

它支持 Linux 内核中的所有 7 种压缩算法

  • CONFIG_KERNEL_GZIP
  • CONFIG_KERNEL_BZIP2
  • CONFIG_KERNEL_LZMA
  • CONFIG_KERNEL_XZ
  • CONFIG_KERNEL_LZO
  • CONFIG_KERNEL_LZ4
  • CONFIG_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

测试

此存储库中的集成测试将比较 ikconfigextract-ikconfig shell 脚本的执行时间。后者使用系统命令来完成相应的解压缩,其中大多数都是预安装的,除了 lzop(1),因此您可能需要在运行 cargo test 之前安装它。

Arch Linux

sudo pacman -S lzop

Ubuntu

sudo apt install lzop

许可协议

本项目采用 GPL-3.0MIT 许可证 许可。

依赖项

约8–19MB
约261K SLoC