Создайте и управляйте сценариями запуска в BusyBox

Я действительно никогда не наслаждался восьмеричным представлением, я всегда шел для прямого 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
11
20.12.2012, 18:19
2 ответа

Для 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 $?
9
27.01.2020, 19:58

Менять фс в "целевой" папке - плохая идея. Это связано с тем, что изменения в output / target / не сохраняются после выполнения команды make clean .

В руководстве по buildroot описано, как сделать это правильно

Вы должны где-нибудь создать каталог, который частично перекрывает файловую систему. Например, вы можете создать каталог "your-overlay" в каталоге buildroot, где вы создаете эту структуру

your-overlay / etc / init.d /

Затем вы должны указать путь к этому оверлей в defconfig

Конфигурация системы> Каталоги оверлея корневой файловой системы

(или найдите BR2_ROOTFS_OVERLAY)

Кроме того, рекомендуемый путь для этого оверлея - board / / / rootfs-overlay

5
27.01.2020, 19:58

Теги

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