Преобразование последовательных портов в 14.04 с использованием правил udev не работает?

Итак, у меня есть файл правил udev для переназначения последовательных портов, так как они не в требуемом порядке. Правила работают нормально на SLES11 SP1, но, похоже, ничего не делают 14.04.

SUBSYSTEM=="platform", DRIVERS=="serial8250", KERNELS=="serial8250", KERNEL=="ttyS2", NAME="ttyS10"
SUBSYSTEM=="platform", DRIVERS=="serial8250", KERNELS=="serial8250", KERNEL=="ttyS3", NAME="ttyS11"
SUBSYSTEM=="tty", DRIVERS=="serial", ATTRS{id}=="PNP0501", KERNEL=="ttyS4", NAME="ttyS12"
SUBSYSTEM=="tty", DRIVERS=="serial", ATTRS{id}=="PNP0501", KERNEL=="ttyS5", NAME="ttyS13"
SUBSYSTEM=="tty", DRIVERS=="serial", ATTRS{subsystem_vendor}=="0x1415", KERNEL=="ttyS6", NAME="ttyS2"
SUBSYSTEM=="tty", DRIVERS=="serial", ATTRS{subsystem_vendor}=="0x1415", KERNEL=="ttyS7", NAME="ttyS3"
SUBSYSTEM=="tty", DRIVERS=="serial", ATTRS{subsystem_vendor}=="0x1415", KERNEL=="ttyS8", NAME="ttyS4"
SUBSYSTEM=="tty", DRIVERS=="serial", ATTRS{subsystem_vendor}=="0x1415", KERNEL=="ttyS9", NAME="ttyS5"
SUBSYSTEM=="tty", DRIVERS=="serial", ATTRS{subsystem_vendor}=="0x1415", KERNEL=="ttyS10", NAME="ttyS6"
SUBSYSTEM=="tty", DRIVERS=="serial", ATTRS{subsystem_vendor}=="0x1415", KERNEL=="ttyS11", NAME="ttyS7"
SUBSYSTEM=="tty", DRIVERS=="serial", ATTRS{subsystem_vendor}=="0x1415", KERNEL=="ttyS12", NAME="ttyS8"
SUBSYSTEM=="tty", DRIVERS=="serial", ATTRS{subsystem_vendor}=="0x1415", KERNEL=="ttyS13", NAME="ttyS9"

Я пробовал использовать setserial, но безуспешно.

1 ответ

Решение

udevбыл изменен, он поддерживает NAME только для сетевых интерфейсов больше ничего.

  • Из заметки о выпуске SLES11 SP1 является Версия 11.1.1.10 (2012-04-17), поэтому она должна быть такой же, как Ubuntu 12.04.

       NAME
           Match the name of the node or network interface. It can be used
           once the NAME key has been set in one of the preceding rules.
       ...
    
       NAME
           What a network interface should be named.
    
           Also, as a temporary workaround, this is what a device node should
           be named; usually the kernel provides the defined node name or
           creates and removes the node before udev even receives any event.
           Changing the node name from the kernel's default creates
           inconsistencies and is not supported. If the kernel and NAME
           specify different names, an error is logged. udev is only expected
           to handle device node permissions and to create additional
           symlinks, not to change kernel-provided device node names. Instead
           of renaming a device node, SYMLINK should be used. However, symlink
           names must never conflict with device node names, as that would
           result in unpredictable behavior.
    
  • Где в Ubuntu 14.04

       NAME
           Match the name of a network interface. It can be used once the NAME
           key has been set in one of the preceding rules.
       ...
       NAME
           The name to use for a network interface. The name of a device node
           cannot be changed by udev, only additional symlinks can be created.
    

Обратите внимание, что 1-е ИМЯ соответствует условию, а 2-е ИМЯ - действию. Вы можете сравнить обе страницы man на manpages.ubuntu.com

Для полного ответа, вы должны искать создание новых символических ссылок вместо SYMLINK Удев действие.

Другие вопросы по тегам