На основе этого решения, предложенного VRR
, вы можете заменить все «undecorate», созданные внутри вашей conky-папки, «unecorated».
перейти в папку conky ~/.conky [ ! d4]
, затем выполните
find ./ -type f -exec sed -i "s/undecorate/undecorated/g" {} \;
find ./ -type f -exec sed -i "s/undecoratedd/undecorated/g" {} \;
Как решить проблему не знать имена устройств usb, когда несколько USB-устройств подключены к одному компьютеру? Самый простой способ - использовать имена устройств из папки / dev. После подключения USB-адаптеров он автоматически сгенерирует серийное имя, которое вы можете найти в каталоге / dev / serial / by-id, показанное ниже
/dev/serial/by-id/usb-US_Digital_USB__-__QSB_81658-if00-port0
QSB_81658 будет в конечном итоге уникальным именем для это USB-устройство.
Я попытался написать dev правила, которые были излишними, потому что каждое устройство имело свое собственное постоянное имя, как показано выше. Я также сталкивался с некоторыми проблемами, например, когда я применял правила dev.
Написание правил для назначения имен для отдельных лиц. Как мы знаем, каждый QSB-адаптер имеет свой собственный серийный номер, который вы можете найти на передней части черного адаптера. Для моего случая у меня есть два адаптера QSB0. У одного есть серийный номер 81830, другой - серийный номер 81658. Я буду использовать этот атрибут (ATTRS {serial}), чтобы назначить имена этим двум адмперам.
Сначала запустите udevadm, чтобы иметь Посмотрите на подробности устройств usb
$ udevadm info -a -n / dev / ttyUSB0
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '':
KERNEL=="ttyUSB0"
SUBSYSTEM=="tty"
DRIVER==""
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/ttyUSB0':
KERNELS=="ttyUSB0"
SUBSYSTEMS=="usb-serial"
DRIVERS=="ftdi_sio"
ATTRS{latency_timer}=="16"
ATTRS{port_number}=="0"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0':
KERNELS=="1-8:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="ftdi_sio"
ATTRS{authorized}=="1"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bInterfaceClass}=="ff"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bInterfaceProtocol}=="ff"
ATTRS{bInterfaceSubClass}=="ff"
ATTRS{bNumEndpoints}=="02"
ATTRS{interface}=="USB <-> QSB"
ATTRS{supports_autosuspend}=="1"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-8':
KERNELS=="1-8"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{authorized}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bConfigurationValue}=="1"
ATTRS{bDeviceClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{bMaxPower}=="500mA"
ATTRS{bNumConfigurations}=="1"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bcdDevice}=="0600"
ATTRS{bmAttributes}=="80"
ATTRS{busnum}=="1"
ATTRS{configuration}==""
ATTRS{devnum}=="5"
ATTRS{devpath}=="8"
ATTRS{idProduct}=="6001"
ATTRS{idVendor}=="0403"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="US Digital"
ATTRS{maxchild}=="0"
ATTRS{product}=="USB <-> QSB"
ATTRS{quirks}=="0x0"
ATTRS{removable}=="unknown"
ATTRS{serial}=="81830"
ATTRS{speed}=="12"
ATTRS{urbnum}=="72190"
ATTRS{version}==" 2.00"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{authorized}=="1"
ATTRS{authorized_default}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bConfigurationValue}=="1"
ATTRS{bDeviceClass}=="09"
ATTRS{bDeviceProtocol}=="01"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{bMaxPower}=="0mA"
ATTRS{bNumConfigurations}=="1"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bcdDevice}=="0404"
ATTRS{bmAttributes}=="e0"
ATTRS{busnum}=="1"
ATTRS{configuration}==""
ATTRS{devnum}=="1"
ATTRS{devpath}=="0"
ATTRS{idProduct}=="0002"
ATTRS{idVendor}=="1d6b"
ATTRS{interface_authorized_default}=="1"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="Linux 4.4.0-128-generic xhci-hcd"
ATTRS{maxchild}=="16"
ATTRS{product}=="xHCI Host Controller"
ATTRS{quirks}=="0x0"
ATTRS{removable}=="unknown"
ATTRS{serial}=="0000:00:14.0"
ATTRS{speed}=="480"
ATTRS{urbnum}=="129"
ATTRS{version}==" 2.00"
looking at parent device '/devices/pci0000:00/0000:00:14.0':
KERNELS=="0000:00:14.0"
SUBSYSTEMS=="pci"
DRIVERS=="xhci_hcd"
ATTRS{broken_parity_status}=="0"
ATTRS{class}=="0x0c0330"
ATTRS{consistent_dma_mask_bits}=="64"
ATTRS{d3cold_allowed}=="1"
ATTRS{device}=="0xa12f"
ATTRS{dma_mask_bits}=="64"
ATTRS{driver_override}=="(null)"
ATTRS{enable}=="1"
ATTRS{irq}=="120"
ATTRS{local_cpulist}=="0-3"
ATTRS{local_cpus}=="f"
ATTRS{msi_bus}=="1"
ATTRS{numa_node}=="-1"
ATTRS{subsystem_device}=="0x8694"
ATTRS{subsystem_vendor}=="0x1043"
ATTRS{vendor}=="0x8086"
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
Затем вы увидите одну строку ниже из распечатанных результатов.
ATTRS{serial}=="81830"
Перейти в каталог /etc/udev/rules.d/
Добавить 990-usdigital-qsbadapter.rules с помощью команды
sudo nano 990-usdigital-qsbadapter.rules
Затем поместите следующие в файл
#This rule file is used to assign names for qsb adapter from USdigital
KERNELS=="1-8",SUBSYSTEMS=="usb",ATTRS{serial}=="81830",NAME="qsb81830"
KERNELS=="1-8",SUBSYSTEMS=="usb",ATTRS{serial}=="81658",NAME="qsb81658"
проверьте свои правила, вы можете запустить
udevadm control --repload-rules
udevadm test /dev/serial/by-id/usb-US_Digital_USB__-__QSB_81658-if00-port0
Из-за проблем с разрешениями я не мог изменить NAME.Instead я использую SYMLINK.
(правила UDEV, переменная «NAME» не работает). Вы не можете переименовать узел устройства, присвоив ключу NAME правила udev. По крайней мере, не в systemd udev. Можно изменить только имя сетевого устройства. Из руководства udev:
NAME
The name to use for a network interface. See
systemd.link(5) for a higher-level mechanism
for setting the interface name. The name of a
device node cannot be changed by udev, only
additional symlinks can be created.
Так измените содержимое файла правил в # Этот файл правил используется для назначения имен для qsb-адаптера из USdigital
ATTRS{serial}=="81830",SYMLINK+="QSB830"
ATTRS{serial}=="81658",SYMLINK+="QSB658"
Пожалуйста, нажмите на картинку ниже, чтобы увидеть результат. Правила UDEV, & quot; NAME & quot; переменная не работает
Вы не можете переименовать узел устройства, назначив клавише NAME в правилах udev. По крайней мере, не в systemd udev. Можно изменить только имя сетевого устройства. Из руководства udev:
NAME
The name to use for a network interface. See
systemd.link(5) for a higher-level mechanism
for setting the interface name. The name of a
device node cannot be changed by udev, only
additional symlinks can be created.
Любая символическая ссылка udev для устройства не является особенной в нем. Это просто символическая ссылка файловой системы на узел устройства. Однако пример полезного использования правил символики udev заключается в том, что поскольку имена устройств зависят от порядка, в котором ядро обнаруживает устройства, имя устройства, в котором находится конкретная файловая система, непредсказуемо. В свое время флэш-накопитель может получить имя устройства /dev/sdf и другое /dev/sdg. Обычно устанавливаются правила Udev, которые добавляют предсказуемые имена симлинков, как это делается на моем ноутбуке Ubuntu в /dev/disk/by-uuid/, где uuid файловых систем на диске являются символическими ссылками, указывающими на имя устройства ядра.
Что касается вашего последнего вопроса, вы не можете иметь символическую ссылку udev на что угодно, кроме узла устройства, поэтому вы не можете указать точку монтирования:
SYMLINK
The name of a symlink targeting the node. Every
matching rule adds this value to the list of
symlinks to be created.
Чтобы достичь того, что вы хотите сделать, вы можете дать файловой системе метку и использовать программу, которую вы используете для монтирования ваших файловых систем (udisks2?), Используйте метку в имени точки монтирования.
Как решить проблему не знать имена устройств usb, когда несколько USB-устройств подключены к одному компьютеру? Самый простой способ - использовать имена устройств из папки / dev. После подключения USB-адаптеров он автоматически сгенерирует серийное имя, которое вы можете найти в каталоге / dev / serial / by-id, показанное ниже
/dev/serial/by-id/usb-US_Digital_USB__-__QSB_81658-if00-port0
QSB_81658 будет в конечном итоге уникальным именем для это USB-устройство.
Я попытался написать dev правила, которые были излишними, потому что каждое устройство имело свое собственное постоянное имя, как показано выше. Я также сталкивался с некоторыми проблемами, например, когда я применял правила dev.
Написание правил для назначения имен для отдельных лиц. Как мы знаем, каждый QSB-адаптер имеет свой собственный серийный номер, который вы можете найти на передней части черного адаптера. Для моего случая у меня есть два адаптера QSB0. У одного есть серийный номер 81830, другой - серийный номер 81658. Я буду использовать этот атрибут (ATTRS {serial}), чтобы назначить имена этим двум адмперам.
Сначала запустите udevadm, чтобы иметь Посмотрите на подробности устройств usb
$ udevadm info -a -n / dev / ttyUSB0
Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.
looking at device '':
KERNEL=="ttyUSB0"
SUBSYSTEM=="tty"
DRIVER==""
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/ttyUSB0':
KERNELS=="ttyUSB0"
SUBSYSTEMS=="usb-serial"
DRIVERS=="ftdi_sio"
ATTRS{latency_timer}=="16"
ATTRS{port_number}=="0"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0':
KERNELS=="1-8:1.0"
SUBSYSTEMS=="usb"
DRIVERS=="ftdi_sio"
ATTRS{authorized}=="1"
ATTRS{bAlternateSetting}==" 0"
ATTRS{bInterfaceClass}=="ff"
ATTRS{bInterfaceNumber}=="00"
ATTRS{bInterfaceProtocol}=="ff"
ATTRS{bInterfaceSubClass}=="ff"
ATTRS{bNumEndpoints}=="02"
ATTRS{interface}=="USB <-> QSB"
ATTRS{supports_autosuspend}=="1"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-8':
KERNELS=="1-8"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{authorized}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bConfigurationValue}=="1"
ATTRS{bDeviceClass}=="00"
ATTRS{bDeviceProtocol}=="00"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bMaxPacketSize0}=="8"
ATTRS{bMaxPower}=="500mA"
ATTRS{bNumConfigurations}=="1"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bcdDevice}=="0600"
ATTRS{bmAttributes}=="80"
ATTRS{busnum}=="1"
ATTRS{configuration}==""
ATTRS{devnum}=="5"
ATTRS{devpath}=="8"
ATTRS{idProduct}=="6001"
ATTRS{idVendor}=="0403"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="US Digital"
ATTRS{maxchild}=="0"
ATTRS{product}=="USB <-> QSB"
ATTRS{quirks}=="0x0"
ATTRS{removable}=="unknown"
ATTRS{serial}=="81830"
ATTRS{speed}=="12"
ATTRS{urbnum}=="72190"
ATTRS{version}==" 2.00"
looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1':
KERNELS=="usb1"
SUBSYSTEMS=="usb"
DRIVERS=="usb"
ATTRS{authorized}=="1"
ATTRS{authorized_default}=="1"
ATTRS{avoid_reset_quirk}=="0"
ATTRS{bConfigurationValue}=="1"
ATTRS{bDeviceClass}=="09"
ATTRS{bDeviceProtocol}=="01"
ATTRS{bDeviceSubClass}=="00"
ATTRS{bMaxPacketSize0}=="64"
ATTRS{bMaxPower}=="0mA"
ATTRS{bNumConfigurations}=="1"
ATTRS{bNumInterfaces}==" 1"
ATTRS{bcdDevice}=="0404"
ATTRS{bmAttributes}=="e0"
ATTRS{busnum}=="1"
ATTRS{configuration}==""
ATTRS{devnum}=="1"
ATTRS{devpath}=="0"
ATTRS{idProduct}=="0002"
ATTRS{idVendor}=="1d6b"
ATTRS{interface_authorized_default}=="1"
ATTRS{ltm_capable}=="no"
ATTRS{manufacturer}=="Linux 4.4.0-128-generic xhci-hcd"
ATTRS{maxchild}=="16"
ATTRS{product}=="xHCI Host Controller"
ATTRS{quirks}=="0x0"
ATTRS{removable}=="unknown"
ATTRS{serial}=="0000:00:14.0"
ATTRS{speed}=="480"
ATTRS{urbnum}=="129"
ATTRS{version}==" 2.00"
looking at parent device '/devices/pci0000:00/0000:00:14.0':
KERNELS=="0000:00:14.0"
SUBSYSTEMS=="pci"
DRIVERS=="xhci_hcd"
ATTRS{broken_parity_status}=="0"
ATTRS{class}=="0x0c0330"
ATTRS{consistent_dma_mask_bits}=="64"
ATTRS{d3cold_allowed}=="1"
ATTRS{device}=="0xa12f"
ATTRS{dma_mask_bits}=="64"
ATTRS{driver_override}=="(null)"
ATTRS{enable}=="1"
ATTRS{irq}=="120"
ATTRS{local_cpulist}=="0-3"
ATTRS{local_cpus}=="f"
ATTRS{msi_bus}=="1"
ATTRS{numa_node}=="-1"
ATTRS{subsystem_device}=="0x8694"
ATTRS{subsystem_vendor}=="0x1043"
ATTRS{vendor}=="0x8086"
looking at parent device '/devices/pci0000:00':
KERNELS=="pci0000:00"
SUBSYSTEMS==""
DRIVERS==""
Затем вы увидите одну строку ниже из распечатанных результатов.
ATTRS{serial}=="81830"
Перейти в каталог /etc/udev/rules.d/
Добавить 990-usdigital-qsbadapter.rules с помощью команды
sudo nano 990-usdigital-qsbadapter.rules
Затем поместите следующие в файл
#This rule file is used to assign names for qsb adapter from USdigital
KERNELS=="1-8",SUBSYSTEMS=="usb",ATTRS{serial}=="81830",NAME="qsb81830"
KERNELS=="1-8",SUBSYSTEMS=="usb",ATTRS{serial}=="81658",NAME="qsb81658"
проверьте свои правила, вы можете запустить
udevadm control --repload-rules
udevadm test /dev/serial/by-id/usb-US_Digital_USB__-__QSB_81658-if00-port0
Из-за проблем с разрешениями я не мог изменить NAME.Instead я использую SYMLINK.
(правила UDEV, переменная «NAME» не работает). Вы не можете переименовать узел устройства, присвоив ключу NAME правила udev. По крайней мере, не в systemd udev. Можно изменить только имя сетевого устройства. Из руководства udev:
NAME
The name to use for a network interface. See
systemd.link(5) for a higher-level mechanism
for setting the interface name. The name of a
device node cannot be changed by udev, only
additional symlinks can be created.
Так измените содержимое файла правил в # Этот файл правил используется для назначения имен для qsb-адаптера из USdigital
ATTRS{serial}=="81830",SYMLINK+="QSB830"
ATTRS{serial}=="81658",SYMLINK+="QSB658"
Пожалуйста, нажмите на картинку ниже, чтобы увидеть результат. Правила UDEV, & quot; NAME & quot; переменная не работает
Вы не можете переименовать узел устройства, назначив клавише NAME в правилах udev. По крайней мере, не в systemd udev. Можно изменить только имя сетевого устройства. Из руководства udev:
NAME
The name to use for a network interface. See
systemd.link(5) for a higher-level mechanism
for setting the interface name. The name of a
device node cannot be changed by udev, only
additional symlinks can be created.
Любая символическая ссылка udev для устройства не является особенной в нем. Это просто символическая ссылка файловой системы на узел устройства. Однако пример полезного использования правил символики udev заключается в том, что поскольку имена устройств зависят от порядка, в котором ядро обнаруживает устройства, имя устройства, в котором находится конкретная файловая система, непредсказуемо. В свое время флэш-накопитель может получить имя устройства /dev/sdf и другое /dev/sdg. Обычно устанавливаются правила Udev, которые добавляют предсказуемые имена симлинков, как это делается на моем ноутбуке Ubuntu в /dev/disk/by-uuid/, где uuid файловых систем на диске являются символическими ссылками, указывающими на имя устройства ядра.
Что касается вашего последнего вопроса, вы не можете иметь символическую ссылку udev на что угодно, кроме узла устройства, поэтому вы не можете указать точку монтирования:
SYMLINK
The name of a symlink targeting the node. Every
matching rule adds this value to the list of
symlinks to be created.
Чтобы достичь того, что вы хотите сделать, вы можете дать файловой системе метку и использовать программу, которую вы используете для монтирования ваших файловых систем (udisks2?), Используйте метку в имени точки монтирования.