(カーネルハッキングのための)カスタムカーネルを構築してインストールする方法を学びながら、私はパラドックスを見つけました。
これにスタック交換の回答、著者は次のように指摘します。
以下の手順では、ソースツリー内のパスは[src] / whatever形式を取ります。ここで、[src]はソースコードがインストールされているディレクトリです(例:/usr/src/linux-3.13.3)。書き込み権限の観点からソースツリーを安全に保つ必要があるため(ルートが所有する必要があるため)、このsuルートを実行できます。
彼は参考書でこう述べた。Linuxカーネルの簡単な紹介、Greg Krohartmanは次のように述べています。
この警告は、この本の手順に従うときに覚えておくべき最も重要なことです。カーネルのソースコードのダウンロード、解凍、カーネルの設定、ビルドなど、この本のすべての作業はコンピュータ上の一般ユーザーとして実行する必要があります。新しいカーネルをインストールするために必要な2〜3個のコマンドのみをスーパーユーザー(root)として実行する必要があります。
そして
カーネルソースコードは/usr/src/linux/ディレクトリに置かないでください。これは、新しいカスタムカーネルの場所ではなく、システムライブラリが構築されるカーネルの場所であるためです。 /usr/src/ ディレクトリツリーの下では、カーネルの開発をまったく実行せず、ローカルユーザーディレクトリでのみ実行して、システムに悪いことがないようにしてください。
どちらのソースもかなり古いです。現在、正しいアプローチは何ですか?
答え1
/usr
「カスタム」が間違っている場合:
男性:
/usr/src
Source files for different parts of the system, included with some packages for reference purposes. Don't work
here with your own projects, as files below /usr should be read-only except when installing software (optional).
/usr/src/linux
This was the traditional place for the kernel source. Some distributions put here the source for the default
kernel they ship. You should probably use another directory when building your own kernel.
manファイル階層:
/usr/
Vendor-supplied operating system resources. Usually read-only, but this is not required. Possibly shared between
multiple hosts. This directory should not be modified by the administrator, except when installing or removing
vendor-supplied packages.
/usr/include
以前の依存関係は次のとおりです/usr/src/linux
。
/usr/include/linux
This contains information which may change from system release to system release and used to be a symbolic link
to /usr/src/linux/include/linux to get at operating-system-specific information.
したがって、カーネルソースコードは/usr/src
修正ではなく参照にすぎません。
ビルドを読み取り専用イベントに切り替えるためのDocumentation/admin-guide/README.rst
オプションが表示されます。O=
/usr/src/linux-VERSION
cd /usr/src/linux-4.X
make O=/home/name/build/kernel menuconfig
make O=/home/name/build/kernel
同様に、.configファイルは/ homeの下に作成されます。