現在、独自のデバイス用のカーネルを再構築しようとしています。これを行うには、デバイスのカーネル構成を作成する必要があります。試行錯誤を経てこれを実行できますが、実行中のホストから構成をインポートできることを確認することをお勧めします。
つまり、実行中のカーネルはコンパイルされません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
これには少しのスクリプトが必要です。
答え2
非技術的な答えですが、GPLv2に応じて、ソースコードとそれに対する修正はもちろん、実行中のバージョンを作成するために使用される設定に対する権限があります。
したがって、1つのアプローチは、「独自のデバイス」(まだ存在する場合)の製造元にGPLに従って使用可能なリソースを提供するように依頼することです。