Получение U-Boot для загрузки dtb из образа FIT

setfacl предназначен для приема вывода getfacl в качестве входных данных. Это означает, что вы можете запустить getfacl, сохранить вывод в файл, сделать свои дела, а затем восстановить ACL. Точная процедура может отличаться в зависимости от вашей платформы. В Linux:

  # Take a peek at the current ACL
[root@vlp-fuger ~]# getfacl newFile
# file: newFile
# owner: root
# group: root
user::rw-
group::r--
group:provisor:rwx
mask::rwx
other::r--

  # Backup ACL
[root@vlp-fuger ~]# getfacl newFile > newFile.acl

  # Remove the group permission, add another that we'll later want to get rid of
[root@vlp-fuger ~]# setfacl -x g:provisor newFile
[root@vlp-fuger ~]# setfacl -m g:ihtxadm:r-x newFile
[root@vlp-fuger ~]# getfacl newFile
# file: newFile
# owner: root
# group: root
user::rw-
group::r--
group:ihtxadm:r-x
mask::r-x
other::r--

  # Restore ACL to where it was
[root@vlp-fuger ~]# setfacl --restore=newFile.acl

  # Resulting ACL
[root@vlp-fuger ~]# getfacl newFile
# file: newFile
# owner: root
# group: root
user::rw-
group::r--
group:provisor:rwx
mask::rwx
other::r--

Вы также можете использовать --set-file на setfacl, который вы используете для восстановления, и установить его на -, если вы хотите передать старый ACL. Вы также можете использовать getfacl -R для резервного копирования ACL целых деревьев каталогов.

3
14.08.2017, 15:13
2 ответа

Ответ именно на эту проблему можно получить, если понять, что U -Boot пытается быть чрезвычайно гибким, что иногда может привести к некоторой путанице. Глядя на предоставленную среду, мы видим, что у нас есть bootcmd (, который выполняется, когда заканчивается задержка загрузки ), сводится к:

bootm ${loadaddr} - ${fdtaddr}

А это значит, что мы смотрим на ${loadaddr} для нашего образа, no where для ramdisk и ${fdtaddr} для дерева устройств использовать. В случае uImage в устаревшем -стиле это имеет смысл, так как (виртуальный диск и дерево устройств вряд ли )будут содержаться в файле. Однако FIT-изображение включает в себя все это и предлагает множество дополнительных полезных функций (, которые постер хочет использовать ). Что происходит, так это то, что после выбора дерева устройств, включенного в образ FIT, U -Boot затем анализирует остальные аргументы и ищет ${fdtaddr} для использования дерева устройств. Если bootm _cmd было установлено просто:

bootm ${loadaddr}

вместо этого он будет работать как положено.

5
27.01.2020, 21:13

добавить нагрузку в узел fdt

fdt@1 {
    description = "Flattened Device Tree blob";
    data = /incbin/("arch/arm/boot/dts/tx6.dtb");
    type = "flat_dt";
    arch = "arm";
    load = <0x18000000>
    compression = "none";
    hash@1 {
        algo = "sha1";
    };
};
3
27.01.2020, 21:13

Теги

Похожие вопросы