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