Я начну с того, что прошу простить мое невежество, если это простая задача. У меня достаточно знаний о * nix, чтобы настроить его и обойтись без него, но эта встроенная версия немного отличается (отсутствует более 90% стандартных команд), и я столкнулся с препятствием.
У меня есть устройство, на котором работает QNX 6.5.0 SP1. У меня есть доступ через его последовательный порт, а оттуда у меня есть доступ к оболочке с суперпользователем. Устройство имеет два физических сетевых интерфейса, en0 и en1. При запуске устройство использует файл net.mgr для установки своей сетевой информации. . Этот файл назначает IP-адреса каждому интерфейсу, но, похоже, поддерживает только один шлюз. Мы хотим добавить что-нибудь ко второму порту Ethernet, и нам нужна команда маршрута, поэтому я последовательно в поле и использовал стандартную команду маршрута, чтобы добавить маршрут. Это сработало, как и предполагалось, но изменение не было сохранено после перезагрузки.
Я пытаюсь выяснить, как заставить дополнительную команду маршрута сохраняться при перезагрузке, но большинство методов, которые я нашел, не работают. Крон и тому подобное нет. Что я пробовал:
Я думаю, что rc.local в папке / sys / bin доступен только для чтения? Я знаю, что одно из двух креплений - это / ffs0, а / sys / bin находится внутри него. Я попытался смонтировать его с помощью 'mount -uw / ffs0', внести свои изменения, затем перевернуть обратно, чтобы он был доступен только для чтения, но это, похоже, не работает. Итак, у меня закончились идеи.
Первое, что нужно понять о QNX 6.X, это то, что существует загружаемый образ, который запускается. Этот образ обычно содержит микроядро и базовые драйверы (диск и т. Д.). Однако он может быть полностью автономным (например, микроядро, драйверы, каждая команда, файлы конфигурации и т. Д.) Для случаев, когда есть только флэш-память. В этом случае будет невозможно что-либо изменить, даже если есть жесткий диск, содержащий файлы конфигурации (например, в /etc/rc.d) и другие каталоги.
Вы можете получить некоторое представление об этом, заглянув в / proc / boot. Все в / proc - это то, что находится в загрузочном образе, загруженном в оперативную память. Это буквально RAM-диск, так что вы видите то, что находится в загрузочном образе. Вам может повезти, если вы заглянете в сценарий запуска (это скомпилированный сценарий), если вы сможете отключить его по ftp и выполнить для него команду 'strings', чтобы увидеть, что такое драйверы и выполняются сценарии.
image (те, которые вы видели в ссылках), сценарий запуска передаст управление /etc/rc.d/rc.sysinit и /etc/rc.d/rc.local после запуска драйвера диска и некоторых других необходимых компонентов. Но встраиваемые системы, подобные вашей, не обязаны этого делать. Вот почему ваши изменения в этих файлах не вступают в силу.
Я никогда не слышал о /sys/bin/rc.local.Это не является частью обычной установки QNX 6, так что это то, что добавил разработчик устройства. Каталог sys на самом деле может быть просто программной ссылкой обратно в область RAM загрузочного образа (вот почему вы не можете там ничего изменить, так как это RAM). Вы можете определить это по 'ls -lrt' в корневой файловой системе (то есть там, где находится sys) и посмотреть, является ли это программной ссылкой обратно в / proc или в другое место.
Tim