Linuxカーネル構成を復元する方法は?

Linuxカーネル構成を復元する方法は?

現在、独自のデバイス用のカーネルを再構築しようとしています。これを行うには、デバイスのカーネル構成を作成する必要があります。試行錯誤を経てこれを実行できますが、実行中のホストから構成をインポートできることを確認することをお勧めします。

つまり、実行中のカーネルはコンパイルされませんCONFIG_IKCONFIG(したがってCONFIG_IKCONFIG_PROCコンパイルされません)。つまり/proc/config.gz、抽出するものがないという意味です。

また、構成をパッケージ化することには気を付けませんでした/boot。したがって、カーネル構成が一般的に保存される2つの一般的な場所は幸運ではありません。

ほとんどの内容はこのカーネルに静的にコンパイルされます。

 # 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これには少しのスクリプトが必要です。

おすすめ記事