Я не думаю, что вы можете заблокировать, но есть довольно простой способ сделать это. Вам нужно добавить кое-что в etc/devd.conf
, которое обрабатывает конкретное устройство, когда оно появляется. Вам нужно будет использовать что-то уникальное в устройстве (, например. его серийный номер ). Вот пример последовательного порта USB, который обслуживает мой дверной звонок:
# Set up symlink to doorbell serial port
attach 200 {
device-name "uftdi[0-9]";
match "vendor" "0x0403";
match "product" "0x6001";
match "sernum" "A10167K1";
action "/root/bin/cuaconfig $device-name doorbell $sernum";
};
Обратите внимание, что действие заключается в запуске скрипта. Это вычисляет истинный номер последовательного порта окольными способами, а затем добавляет символическую ссылку в /dev
. Ваши программы используют это для доступа к устройству. Вот мой скрипт, который, вероятно, больше, чем вам понадобится. Этот переводит имя USB-устройства в имя последовательного порта, потому что я использую последовательный чип USB-порта FTDI. У вас, вероятно, будет что-то намного проще, и, вероятно, вам не понадобится этот перевод.
#!/bin/sh
# configure cuaU? ports - called from devd.conf
# arg 1 - device name, of the form uftdi?
# arg 2 - symlink to create/delete in /dev (any existing one deleted)
# arg 3 - serial number
dev=$1
link=$2
sernum=$3
# get FTDI unit number
ftunit=${dev#uftdi}
# generate full tty name
ttyname="/dev/cua$(sysctl -n dev.uftdi.$ftunit.ttyname)"
# generate full symlink name
symlink="/dev/${link}"
# delete any existing symlink to the port, then create the new one
echo "creating symlink ${symlink} to ${ttyname} on serial ${sernum}" > /dev/console
rm -f ${symlink}
ln -s ${ttyname} ${symlink}`
Получение серийного номера устройства
Может быть достаточно использовать идентификаторы производителей в материале devd.conf
. Однако у вас может быть два таких же (, что и у меня, это последовательные USB-порты FT232 ). В этом случае вы можете отличить их по серийному номеру (. Будьте осторожны, некоторые клоны FT232 имеют одинаковый серийный номер!)
Существуют различные способы получения серийного номера. Один из них — установить порт sysutils/usbutils
. Он содержит команду lsusb
, которая выведет список всех устройств. Вы можете использовать:
lsusb -v -s 0403:6001 | grep serial
, чтобы получить серийный номер.
Команда sudo apt-mark hold package-name...
сохранит текущую версию одного или нескольких пакетов. Например, см. PinningHowTo -Введение в хранение пакетов и Как исключить пакеты из Apt -Получить обновление .
Предположительно,"^libreoffice*"
(включенные кавычки )будут выбирать все пакеты, начинающиеся с libreoffice
при использовании apt-mark
, как и с apt-get
, но я не смог найти явный пример на этот счет..