У меня есть сервер под управлением Debian Linux, который имеет встроенный последовательный порт, который обозначается как ttyS0. У меня есть подключаемая карта PCI с двумя последовательными портами, которые зарегистрированы в Linux как ttyS2 и ttyS3.
К сожалению, я пытаюсь запустить какое-то программное обеспечение, которое предполагает наличие ttyS0 и ttyS1. Можно ли переназначить имена устройств последовательного порта (с помощью правила udev?), Чтобы ttyS0 оставался таким, как есть, а ttyS2 стал ttyS1?
Вы можете использовать для этого udev. Создать файл /etc/udev/rules.d/90-rename-serial-ports.rule содержащий
ACTION=="add" KERNEL=="ttyS2" NAME="ttyS1"
должен это делать (не проверял). Обратите внимание на разницу между «==» и «=».
Не стоит возиться с такими именами. Использовать setserial
чтобы отменить отображение ttyS2 и сопоставить ttyS1 с его ресурсами. А затем вы должны найти того, кто написал этот код, и познакомить его с вашими пальцами. К настоящему времени они действительно должны знать лучше.
Как насчет равнины mv /dev/ttyS2 /dev/ttyS1
? В конце концов, большинство устройств - это просто файл, расположенный в /dev
.
ЛЭ: Вам нужно делать переименование при каждой загрузке.
попробуй это:
sudo ln -s /dev/ttys2 /dev/ttys1
Он связывает ttys1 с настоящим ttys2.
Протестировано для работы с такими приложениями, как minicom с адаптером USB-последовательный порт (/ dev / ttyUSB0) в Ubuntu Lucid.
Он не переживает перезагрузки, если вы не добавите его в сценарий (например: /etc/rc.local в большинстве дистрибутивов Linux)