Chroot環境下で、カーネルだけをインストールせずにカーネルモジュールを構築することは可能ですか?ヘッダーだけですか?
あなたがしたくないことのように聞こえますが、私の場合はそうします。 mkinitramfsによって作成され、後でtftpサーバーにコピーされたinitrd.imgを含む、ネットブート用の環境の作成を自動化するスクリプトがあります。
たとえば、ターゲットPCにradeonカードも含まれている場合、fglrxが必要です。 nvidiaの場合、nvidiaパッケージが必要です。ビルドスクリプトを実行/カスタマイズする人は、これらのカードが私のPCに物理的にインストールされていない場合があります。
はい。
Ubuntuの場合、本当に必要なのはlinux-headers-*
目的のターゲット用にインストールされたパッケージ。 KDIRをカスタムヘッダーの場所に設定するMakefileの例を次に示します。
obj-m := example.o
KDIR := /usr/src/linux-headers-4.2.0-18-generic
PWD := $(Shell pwd)
default:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules
clean:
$(MAKE) -C $(KDIR) SUBDIRS=$(PWD) clean
これは、chroot内でもまったく同じように機能するはずです。