Я действительно никогда не наслаждался восьмеричным представлением, я всегда шел для прямого rwxr-xr-x
нотация, поскольку это кажется более простым мне. Однако от того, что я собираю, восьмеричное представление существует, чтобы на самом деле помочь нам помнить (я не вижу, как это работает).
Единственное другое возможное преимущество я вижу восьмеричное обеспечение к таблице, является отсутствием неоднозначности. 8 различных конфигураций бита полномочий представлены единственным отличным числом, которое я уверен, помогает некоторым людям случайно поместить a w
где они не должны иметь.
К сожалению, хотя, я запомнил эту таблицу:
# r w x
0 0 0 0
1 0 0 1
2 0 1 0
3 0 1 1
4 1 0 0
5 1 0 1
6 1 1 0
7 1 1 1
Для buildroot все Ваши сценарии должны быть помещены в $path_to_buildroot/output/target/etc/init.d
перед изображением сборки. В моем случае этот каталог содержит rcS
и немного сценариев по имени S [0-99] script_name. Таким образом, можно создать собственный start\stop сценарий.
rcS:
#!/bin/sh
# Start all init scripts in /etc/init.d
# executing them in numerical order.
#
for i in /etc/init.d/S??* ;do
# Ignore dangling symlinks (if any).
[ ! -f "$i" ] && continue
case "$i" in
*.sh)
# Source shell script for speed.
(
trap - INT QUIT TSTP
set start
. $i
)
;;
*)
# No sh extension, so fork subprocess.
$i start
;;
esac
done
и например S40network:
#!/bin/sh
#
# Start the network....
#
case "$1" in
start)
echo "Starting network..."
/sbin/ifup -a
;;
stop)
echo -n "Stopping network..."
/sbin/ifdown -a
;;
restart|reload)
"$0" stop
"$0" start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
exit 1
esac
exit $?
Менять фс в "целевой" папке - плохая идея. Это связано с тем, что изменения в output / target /
не сохраняются после выполнения команды make clean
.
В руководстве по buildroot описано, как сделать это правильно
Вы должны где-нибудь создать каталог, который частично перекрывает файловую систему. Например, вы можете создать каталог "your-overlay" в каталоге buildroot, где вы создаете эту структуру
your-overlay / etc / init.d /
Затем вы должны указать путь к этому оверлей в defconfig
Конфигурация системы> Каталоги оверлея корневой файловой системы
(или найдите BR2_ROOTFS_OVERLAY)
Кроме того, рекомендуемый путь для этого оверлея -
board /