Является ли /usr/src допустимым местом для пользовательского ядра?

Является ли /usr/src допустимым местом для пользовательского ядра?

Изучая, как собрать и установить собственное ядро ​​(для взлома ядра), я наткнулся на противоречивое утверждение.

В этомОтвет StackExchange, автор утверждает:

В следующих инструкциях пути внутри исходного дерева имеют вид [src]/whatever, где [src] — это каталог, в который вы установили исходный код, например /usr/src/linux-3.13.3. Вероятно, вы захотите сделать это как root, поскольку исходное дерево должно оставаться защищенным с точки зрения прав записи (оно должно принадлежать root).

В справочнике он упомянул следующее:Ядро Linux в двух словахГрег Кроа-Хартман говорит:

Это предупреждение — самое важное, что нужно помнить при работе с шагами этой книги. Все в этой книге — загрузка исходного кода ядра, его распаковка, настройка ядра и его сборка — должно выполняться обычным пользователем на машине. Только две или три команды, необходимые для установки нового ядра, должны выполняться суперпользователем (root).

и

Исходный код ядра также никогда не должен размещаться в каталоге /usr/src/linux/, поскольку это местоположение ядра, для которого были построены системные библиотеки, а не вашего нового пользовательского ядра. Не выполняйте никакую разработку ядра в дереве /usr/src/directory вообще, а только в локальном каталоге пользователя, где с системой не может случиться ничего плохого.

Оба источника довольно старые, каков правильный подход к ним в настоящее время?

решение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.

Связанный контент