Я спрашиваю себя, почему нет способа разместить дерево устройств, как описание оборудования, вместе с загрузчиком на каком-то чипе ROM и построить ОС Linux независимо от каких-либо технических характеристик оборудования, по крайней мере, в определенных пределах.
Ответ: Дешевизна. Никто не хочет платить за микросхему ПЗУ. В SoC есть загрузочное ПЗУ, но дерево устройств зависит от схемы, в которой находится SoC, так что это бесполезно. Вам понадобится отдельная «микросхема BIOS», как для плат x86, чтобы это работало.
Вы можете как бы заставить его работать, рассматривая SD-карту, с которой загружается большинство плат ARM, как микросхему BIOS; просто поместите U-Boot и дерево устройств на него, а U-Boot загрузит ядро с USB-накопителя. Тогда USB-накопитель будет (довольно) переносимым с платы ARM на плату ARM.
С точки зрения оптимизации, хотя вы можете компилировать для ARM в целом, действительно выгодно ориентироваться на конкретный процессор (гораздо больше, чем на x86_64).
Параметр разрешений игнорируется и автоматически изменяется на default_permissions всякий раз, когда в него также включается любой из следующих параметров:
uid
, gid
, umask
, dmask
или fmask
Чтобы исправить это, вы можете использовать user_id
и group_id
вместо uid
и gid
.
Но вы не должны использовать umask
, dmask
или fmask
с разрешениями
.
Вы поймете, что это работает, когда получите следующий статус от mount:
Использование сопоставления пользователей по умолчанию
Обратите внимание, что изначально все файлы принадлежат пользователю root. Возможно, вы захотите изменить их рекурсивно, чтобы они принадлежали вам.