web-dev-qa-db-ja.com

chrootの下でカーネルモジュールをコンパイルすることは可能ですか?

Chroot環境下で、カーネルだけをインストールせずにカーネルモジュールを構築することは可能ですか?ヘッダーだけですか?

あなたがしたくないことのように聞こえますが、私の場合はそうします。 mkinitramfsによって作成され、後でtftpサーバーにコピーされたinitrd.imgを含む、ネットブート用の環境の作成を自動化するスクリプトがあります。

たとえば、ターゲットPCにradeonカードも含まれている場合、fglrxが必要です。 nvidiaの場合、nvidiaパッケージが必要です。ビルドスクリプトを実行/カスタマイズする人は、これらのカードが私のPCに物理的にインストールされていない場合があります。

4
Matt H

はい。

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内でもまったく同じように機能するはずです。

1
Chris J Arges