Вы поместили свой модуль в дерево каталогов /lib/modules/<your kernel version>
и после этого запустили depmod
?
Если это так, то в файле /lib/modules/<your kernel version>/modules.alias
должна быть такая строка:
alias usb:v0483p5750d*dc*dsc*dp*ic*isc*ip*in* ledbadge
Когда ядро видит новое USB-устройство,он считывает идентификаторы своего поставщика и продукта, а также ряд других атрибутов и использует их в качестве компонентов для систематически -создаваемого псевдонима модуля, как указано выше. Затем ядро вызывает выполнение команды modprobe
(фактический механизм, который несколько менялся в истории Linux 2.6 и выше )с этим псевдонимом. Если modprobe
находит определение псевдонима, соответствующее ему, то загружается модуль, указанный в этом определении псевдонима.
Я думаю, что сопоставление происходит таким образом, что выигрывает наиболее точное совпадение. В настоящее время похоже, что модуль hid-generic
может побеждать ваш модуль (, предполагая, что вы запустили depmod
после установки модуля ), поэтому ваше устройство ledbadge может быть устройством класса USB HID. Таким образом, вам может потребоваться также/вместо этого объявить псевдоним устройства USB HID. Что-то вроде этого:
static const struct hid_device_id ledbadge_hid_table[] = {
{HID_USB_DEVICE(LEDBADGE_VENDOR_ID,LEDBADGE_PRODUCT_ID)},
{ } // terminating entry
};
MODULE_DEVICE_TABLE(hid, ledbadge_hid_table);
Результирующая строка в файле modules.alias
должна иметь вид:
alias hid:b0003g*v00000483p00005750 ledbadge
Я бы использовал для этого awk
, предполагая, что ни одно из значений не содержит=
awk -F'=' '
{ h[$1]=$2 } # Save the key/value
END { for (k in h) { printf "%s=%s\n", k, h[k] } } # Output all key/value pairs
' file2.txt file1.txt
Но можно использоватьsort
sort -t'=' -u -k1,1 file2.txt file1.txt # Sort by first field discarding duplicates
Выход (с любого из)
Country=mycounty
Name=myname
Occupation=my_occupation