Назад | Перейти на главную страницу

Добавление постоянного статического маршрута к защищенному встроенному устройству QNX Unix

Я начну с того, что прошу простить мое невежество, если это простая задача. У меня достаточно знаний о * nix, чтобы его настроить и обойти, но эта встроенная версия немного отличается (отсутствует более 90% стандартных команд), и я попал в затруднительное положение.

У меня есть устройство под управлением QNX 6.5.0 SP1. У меня есть доступ через его последовательный порт, а оттуда у меня есть доступ к оболочке с суперпользователем. Устройство имеет два физических сетевых интерфейса en0 и en1. При запуске устройство использует файл net.mgr для установки своей сетевой информации. Этот файл назначает IP-адреса каждому интерфейсу, но, похоже, поддерживает только один шлюз. Мы хотим добавить что-нибудь ко второму порту Ethernet, и нам нужна команда маршрута, поэтому я последовательно в поле и использовал стандартную команду маршрута, чтобы добавить маршрут. Это сработало, как и предполагалось, но изменение не было сохранено после перезагрузки.

Я пытаюсь понять, как заставить дополнительную команду маршрута сохраняться при перезагрузке, но большинство методов, которые я нашел, не работают. Там нет cron или чего-то подобного. Вещи, которые я пробовал:

Я думаю, что rc.local в папке / sys / bin доступен только для чтения? Я знаю, что одно из двух креплений - это / ffs0, а / sys / bin находится внутри него. Я попытался смонтировать его с помощью 'mount -uw / ffs0', внести свои изменения, затем перевернуть его обратно, чтобы он был доступен только для чтения, но это, похоже, не работает. Итак, у меня закончились идеи.

Первое, что нужно понять о QNX 6.X, это то, что существует запускаемый образ загрузки. Этот образ обычно содержит микроядро и базовые драйверы (диск и т. Д.). Однако он может быть полностью автономным (например, микроядро, драйверы, каждая команда, файлы конфигурации и т. Д.) Для случаев, когда есть только флэш-память. В этом случае будет невозможно что-либо изменить, даже если есть жесткий диск, содержащий файлы конфигурации (например, в /etc/rc.d) и другие каталоги.

Вы можете понять это, заглянув в / proc / boot. Все в / proc - это то, что находится в загрузочном образе, загруженном в оперативную память. Это буквально RAM-диск, так что вы видите то, что находится в загрузочном образе. Вам может повезти, заглянув в сценарий запуска (это скомпилированный сценарий), если вы сможете отключить его по ftp и выполнить на нем команду 'strings', чтобы увидеть, какие драйверы и скрипты выполняются.

В обычном загрузочном образе QNX (который вы видели в ссылках) сценарий запуска передаст управление /etc/rc.d/rc.sysinit и /etc/rc.d/rc.local после того, как он запустит драйвер диска и несколько других предметов первой необходимости. Но встраиваемые системы, подобные вашей, не обязаны этого делать. Вот почему ваши изменения в этих файлах не вступят в силу.

Я никогда не слышал о /sys/bin/rc.local. Это не является частью обычной установки QNX 6, так что это то, что добавил разработчик устройства. Каталог sys на самом деле может быть просто программной ссылкой обратно в область RAM загрузочного образа (вот почему вы не можете там ничего изменить, так как это RAM). Вы можете определить, так ли это, с помощью 'ls -lrt' в корневой файловой системе (то есть там, где находится sys) и посмотреть, является ли это мягкой ссылкой обратно в / proc или в другое место.

Тим