私はLinuxカーネルをコンパイルし、新しいシステムコールを追加する最初のステップを実行しています。正常に完了しましたが、まだいくつかの問題があります。
これを行うには、Debian 7 64ビットをゲストとして使用する仮想マシンを設定しました。私はこれを行う方法についてインターネットで見つけたチュートリアルに従っています(http://arvindsraj.wordpress.com/2012/10/05/adding-hello-world-system-call-to-linux/)全体的に文書としてマニュアルです。Debian GNU/Linux でカスタム Linux カーネルを作成する方法そしてmake-kpkgのマニュアルページです。
これまで、次のスクリプトを使用してコンパイルしています。
#!/bin/sh
make-kpkg clean
INSTALL_MOD_STRIP=1 CONCURRENCY_LEVEL=2 time make-kpkg --initrd --append-to-version=-$1 kernel_image
さらに、次の質問があります。
- これでkernel_imageのみをターゲットとして定義します。 kernel_headersも含める必要がありますか? kernel_headersをいつコンパイルしてインストールする必要がありますか?それらは何のために使用されますか?
- ターゲット:binary_archとして使用すると、kernel_imageとkernel_headersを使用するのとまったく同じですか?
- INSTALL_MOD_STRIP=1 に設定したのは、コンパイル速度が速く、出力がずっと小さいという内容を読んだからです。コンパイルされるモジュールの数が減ることを知っています。この減少は何ですか?マイコンピュータで最終的にカーネルを使用するには、最終コンパイルにこのフラグを使用する必要がありますか?
よろしくお願いします!