恢复 Linux 内核配置的方法有哪些?

恢复 Linux 内核配置的方法有哪些?

我目前正在尝试为专有设备重建内核。为了做到这一点,我需要为设备生成一个内核配置。虽然我可以通过反复试验来做到这一点,但最好看看是否可以从正在运行的主机中提取配置。

话虽这么说,正在运行的内核没有被编译CONFIG_IKCONFIG(因此CONFIG_IKCONFIG_PROC也没有)。这意味着没有/proc/config.gz可提取的。

此外,他们也懒得将配置打包进去/boot。因此,通常存储内核配置的两个常见位置并不走运。

大多数内容都静态编译到该内核中:

 # cat /proc/modules
 linux_user_bde           12327 0                         - Live 0xf8536000 (PO)
 linux_kernel_bde         29225 1           linux_user_bde, Live 0xf8524000 (PO)
 pciDrv                    1448 0                         - Live 0xf8510000 (O)
 iTCO_wdt                  4456 0                         - Live 0xf83fb000 
 iTCO_vendor_support       2003 1                 iTCO_wdt, Live 0xf83f7000 
 i2c_dev                   5443 0                         - Live 0xf83f2000 
 i2c_i801                  9421 0                         - Live 0xf83eb000 
 i2c_core                 20859 3 i2cscan,i2c_dev,i2c_i801, Live 0xf83e0000 
 igb                     148294 0                         - Live 0xf83ae000 (O)
 dca                       4665 0                         - Live 0xf804c000 
 # ls -l /proc/conf*
 ls: /proc/conf*: No such file or directory
 # find /boot/ -name "conf*"
 # modprobe configs
 modprobe: module 'configs' not found
 #

答案1

想到的一个可以说是愚蠢的想法是,看看是否可以从映像或/proc/kallsyms某处提取内核的符号表,并基于此至少对所包含的驱动程序进行逆向工程。尽管在股票发行内核上显示了 35000 个符号kallsyms,但这需要一些脚本。

答案2

非技术性答案,但根据 GPLv2,您有权获得源代码及其任何修改,以及用于创建运行版本的配置。

因此,一种方法是要求“专有设备”的制造商(如果它们仍然存在)向您提供您根据 GPL 有权获得的资源。

相关内容