Udev rule to match multiple node USB device
I have a 3G/GPS device that creates 5 tty nodes, although it's only one physical USB connection. Basically, a multi port usb-serial adapter.
I'm trying to create some udev
rules to make sure those nodes always have the same name, or at least a symlink to them.
I can indeed find the device at /sys/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/
. Inside are 1-2.2:1.0/
to 1-2.2:1.4/
, for the 5 nodes it creates.
I can also find it at /sys/bus/usb/devices/1-2.2
.
The udev info for the device is as follows:
udevadm info -a -p /sys/bus/usb/devices/1-2.2/1-2.2:1.0
looking at device '/bus/usb/devices/1-2.2/1-2.2:1.0':
KERNEL=="1-2.2:1.0"
SUBSYSTEM=="usb"
DRIVER=="option"
ATTR{bInterfaceNumber}=="00"
ATTR{bAlternateSetting}==" 0"
ATTR{bNumEndpoints}=="03"
ATTR{bInterfaceClass}=="ff"
ATTR{bInterfaceSubClass}=="01"
ATTR{bInterfaceProtocol}=="01"
ATTR{modalias}=="usb:v12D1p1506d0000dc00dsc00dp00icFFisc01ip01"
ATTR{supports_autosuspend}=="0"
From this point on, all the nodes have the same info. And the only thing varying between nodes is the bInterfaceNumber property, and the device path. So, I thought of writing a rule by dev path.
Now, for some reason, the following rule gets matched by all those nodes.
ACTION=="add", DEV="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.0" SYMLINK+="huawey0"
So basically, huawey0
points to the last node enumerated. The device created nodes from ttyUSB2 to 6, and this link points to USB6.
So, I tried by kernel node:
ACTION=="add", KERNEL=="1-2.2:1.0" SYMLINK+="huawey0"
Now, nothing appears on /dev.
After this, I tried using the bInterfaceNumber to separate them. I used the following rule
ACTION=="add", DEV="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.[0-4]" ATTR{bInterfaceNumber}=="00" SYMLINK+="huawey0"
And still, nothing happens. I even tried a trimmed down version of the rule..
ACTION=="add", ATTR{bInterfaceNumber}=="00" SYMLINK+="huawey0"
And still nothing happens. Why is it not matching?
linux devices udev
add a comment |
I have a 3G/GPS device that creates 5 tty nodes, although it's only one physical USB connection. Basically, a multi port usb-serial adapter.
I'm trying to create some udev
rules to make sure those nodes always have the same name, or at least a symlink to them.
I can indeed find the device at /sys/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/
. Inside are 1-2.2:1.0/
to 1-2.2:1.4/
, for the 5 nodes it creates.
I can also find it at /sys/bus/usb/devices/1-2.2
.
The udev info for the device is as follows:
udevadm info -a -p /sys/bus/usb/devices/1-2.2/1-2.2:1.0
looking at device '/bus/usb/devices/1-2.2/1-2.2:1.0':
KERNEL=="1-2.2:1.0"
SUBSYSTEM=="usb"
DRIVER=="option"
ATTR{bInterfaceNumber}=="00"
ATTR{bAlternateSetting}==" 0"
ATTR{bNumEndpoints}=="03"
ATTR{bInterfaceClass}=="ff"
ATTR{bInterfaceSubClass}=="01"
ATTR{bInterfaceProtocol}=="01"
ATTR{modalias}=="usb:v12D1p1506d0000dc00dsc00dp00icFFisc01ip01"
ATTR{supports_autosuspend}=="0"
From this point on, all the nodes have the same info. And the only thing varying between nodes is the bInterfaceNumber property, and the device path. So, I thought of writing a rule by dev path.
Now, for some reason, the following rule gets matched by all those nodes.
ACTION=="add", DEV="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.0" SYMLINK+="huawey0"
So basically, huawey0
points to the last node enumerated. The device created nodes from ttyUSB2 to 6, and this link points to USB6.
So, I tried by kernel node:
ACTION=="add", KERNEL=="1-2.2:1.0" SYMLINK+="huawey0"
Now, nothing appears on /dev.
After this, I tried using the bInterfaceNumber to separate them. I used the following rule
ACTION=="add", DEV="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.[0-4]" ATTR{bInterfaceNumber}=="00" SYMLINK+="huawey0"
And still, nothing happens. I even tried a trimmed down version of the rule..
ACTION=="add", ATTR{bInterfaceNumber}=="00" SYMLINK+="huawey0"
And still nothing happens. Why is it not matching?
linux devices udev
add a comment |
I have a 3G/GPS device that creates 5 tty nodes, although it's only one physical USB connection. Basically, a multi port usb-serial adapter.
I'm trying to create some udev
rules to make sure those nodes always have the same name, or at least a symlink to them.
I can indeed find the device at /sys/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/
. Inside are 1-2.2:1.0/
to 1-2.2:1.4/
, for the 5 nodes it creates.
I can also find it at /sys/bus/usb/devices/1-2.2
.
The udev info for the device is as follows:
udevadm info -a -p /sys/bus/usb/devices/1-2.2/1-2.2:1.0
looking at device '/bus/usb/devices/1-2.2/1-2.2:1.0':
KERNEL=="1-2.2:1.0"
SUBSYSTEM=="usb"
DRIVER=="option"
ATTR{bInterfaceNumber}=="00"
ATTR{bAlternateSetting}==" 0"
ATTR{bNumEndpoints}=="03"
ATTR{bInterfaceClass}=="ff"
ATTR{bInterfaceSubClass}=="01"
ATTR{bInterfaceProtocol}=="01"
ATTR{modalias}=="usb:v12D1p1506d0000dc00dsc00dp00icFFisc01ip01"
ATTR{supports_autosuspend}=="0"
From this point on, all the nodes have the same info. And the only thing varying between nodes is the bInterfaceNumber property, and the device path. So, I thought of writing a rule by dev path.
Now, for some reason, the following rule gets matched by all those nodes.
ACTION=="add", DEV="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.0" SYMLINK+="huawey0"
So basically, huawey0
points to the last node enumerated. The device created nodes from ttyUSB2 to 6, and this link points to USB6.
So, I tried by kernel node:
ACTION=="add", KERNEL=="1-2.2:1.0" SYMLINK+="huawey0"
Now, nothing appears on /dev.
After this, I tried using the bInterfaceNumber to separate them. I used the following rule
ACTION=="add", DEV="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.[0-4]" ATTR{bInterfaceNumber}=="00" SYMLINK+="huawey0"
And still, nothing happens. I even tried a trimmed down version of the rule..
ACTION=="add", ATTR{bInterfaceNumber}=="00" SYMLINK+="huawey0"
And still nothing happens. Why is it not matching?
linux devices udev
I have a 3G/GPS device that creates 5 tty nodes, although it's only one physical USB connection. Basically, a multi port usb-serial adapter.
I'm trying to create some udev
rules to make sure those nodes always have the same name, or at least a symlink to them.
I can indeed find the device at /sys/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/
. Inside are 1-2.2:1.0/
to 1-2.2:1.4/
, for the 5 nodes it creates.
I can also find it at /sys/bus/usb/devices/1-2.2
.
The udev info for the device is as follows:
udevadm info -a -p /sys/bus/usb/devices/1-2.2/1-2.2:1.0
looking at device '/bus/usb/devices/1-2.2/1-2.2:1.0':
KERNEL=="1-2.2:1.0"
SUBSYSTEM=="usb"
DRIVER=="option"
ATTR{bInterfaceNumber}=="00"
ATTR{bAlternateSetting}==" 0"
ATTR{bNumEndpoints}=="03"
ATTR{bInterfaceClass}=="ff"
ATTR{bInterfaceSubClass}=="01"
ATTR{bInterfaceProtocol}=="01"
ATTR{modalias}=="usb:v12D1p1506d0000dc00dsc00dp00icFFisc01ip01"
ATTR{supports_autosuspend}=="0"
From this point on, all the nodes have the same info. And the only thing varying between nodes is the bInterfaceNumber property, and the device path. So, I thought of writing a rule by dev path.
Now, for some reason, the following rule gets matched by all those nodes.
ACTION=="add", DEV="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.0" SYMLINK+="huawey0"
So basically, huawey0
points to the last node enumerated. The device created nodes from ttyUSB2 to 6, and this link points to USB6.
So, I tried by kernel node:
ACTION=="add", KERNEL=="1-2.2:1.0" SYMLINK+="huawey0"
Now, nothing appears on /dev.
After this, I tried using the bInterfaceNumber to separate them. I used the following rule
ACTION=="add", DEV="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.[0-4]" ATTR{bInterfaceNumber}=="00" SYMLINK+="huawey0"
And still, nothing happens. I even tried a trimmed down version of the rule..
ACTION=="add", ATTR{bInterfaceNumber}=="00" SYMLINK+="huawey0"
And still nothing happens. Why is it not matching?
linux devices udev
linux devices udev
edited Feb 21 '14 at 8:46
erch
1,995113461
1,995113461
asked Aug 14 '13 at 16:03
Joao Pincho
17818
17818
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
Your rules all have syntax errors in them:
=
is for assignment==
is for comparison, so you were not actually looking at whatDEV
equaled, you were assigning it.- You need
,
between all the statements, there were none beforeSYMLINK+=
.
Fist Rule
ACTION=="add", DEV=="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.0", SYMLINK+="huawey0"
Second Rule
ACTION=="add", KERNEL=="1-2.2:1.0", SYMLINK+="huawey0"
Third Rule
ACTION=="add", DEV=="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.[0-4]", ATTR{bInterfaceNumber}=="00", SYMLINK+="huawey0"
Fourth Rule
ACTION=="add", ATTR{bInterfaceNumber}=="00", SYMLINK+="huawey0"
All these rules should do what you want now (I would use the first one personally).
add a comment |
Although this post was asked three years ago, and this might not address the answer, I still want to share my successful experience here for the future reference.
According to Jens Reimann's Identify GSM modem devices using udev, "the device attribute “bInterfaceNumber” is not on the tty device, but on the usb device in the parent hierarchy", so I created two rules for my FTDI usb-to-4-port-serial adapter:
SUBSYSTEMS=="usb", ENV{.LOCAL_ifNum}="$attr{bInterfaceNumber}"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", SYMLINK+="ttyUSB_FTDI_4_PORT_%E{.LOCAL_ifNum}"
This stores the attribute “bInterfaceNumber” into the environment variable “.LOCAL_ifNum” (the prefixed dot is a notation for temporary or hidden variables). In the second rule the same variable is pulled on using the “%E” syntax. Newer udev versions also support “$env” instead of “%E”.
(by Jens Reimann)
where ttyUSB_FTDI_4_PORT_
is the symlink name.
These two rules will create symlinks as ttyUSB_FTDI_4_PORT_00
, ttyUSB_FTDI_4_PORT_01
, ttyUSB_FTDI_4_PORT_02
, ttyUSB_FTDI_4_PORT_03
.
You can add ATTRS{serial}
attribute to constrain the enumeration further.
Jens Reimann also acknowlegfed the contribution of Ketan Patel's U&L question, Udev rule file for modem not working, with accepted answer by derobert.
add a comment |
In addition to Alex's comments, there is another issue. It seems ATTR{bInterfaceNumber}
doesn't work for some reason. To quote the answer to a related question, you should use something along the lines of
SUBSYSTEM=="tty", ACTION=="add",
ENV{ID_VENDOR_ID}=="067b", ENV{ID_MODEL_ID}="2303",
ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="test_USB0"
add a comment |
I try to add ATTRS{serial} attribute to constrain the enumeration,
like,
SUBSYSTEMS=="usb", ENV{.Interface_Num}="$attr{bInterfaceNumber}"
SUBSYSTEMS=="usb", ENV{.Serial}="$attr{serial}"
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea70", SYMLINK+="ttyUSB_Lidar00$env{.Serial}_$env{.Interface_Num}"
but I fail.
New contributor
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f86728%2fudev-rule-to-match-multiple-node-usb-device%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
Your rules all have syntax errors in them:
=
is for assignment==
is for comparison, so you were not actually looking at whatDEV
equaled, you were assigning it.- You need
,
between all the statements, there were none beforeSYMLINK+=
.
Fist Rule
ACTION=="add", DEV=="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.0", SYMLINK+="huawey0"
Second Rule
ACTION=="add", KERNEL=="1-2.2:1.0", SYMLINK+="huawey0"
Third Rule
ACTION=="add", DEV=="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.[0-4]", ATTR{bInterfaceNumber}=="00", SYMLINK+="huawey0"
Fourth Rule
ACTION=="add", ATTR{bInterfaceNumber}=="00", SYMLINK+="huawey0"
All these rules should do what you want now (I would use the first one personally).
add a comment |
Your rules all have syntax errors in them:
=
is for assignment==
is for comparison, so you were not actually looking at whatDEV
equaled, you were assigning it.- You need
,
between all the statements, there were none beforeSYMLINK+=
.
Fist Rule
ACTION=="add", DEV=="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.0", SYMLINK+="huawey0"
Second Rule
ACTION=="add", KERNEL=="1-2.2:1.0", SYMLINK+="huawey0"
Third Rule
ACTION=="add", DEV=="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.[0-4]", ATTR{bInterfaceNumber}=="00", SYMLINK+="huawey0"
Fourth Rule
ACTION=="add", ATTR{bInterfaceNumber}=="00", SYMLINK+="huawey0"
All these rules should do what you want now (I would use the first one personally).
add a comment |
Your rules all have syntax errors in them:
=
is for assignment==
is for comparison, so you were not actually looking at whatDEV
equaled, you were assigning it.- You need
,
between all the statements, there were none beforeSYMLINK+=
.
Fist Rule
ACTION=="add", DEV=="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.0", SYMLINK+="huawey0"
Second Rule
ACTION=="add", KERNEL=="1-2.2:1.0", SYMLINK+="huawey0"
Third Rule
ACTION=="add", DEV=="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.[0-4]", ATTR{bInterfaceNumber}=="00", SYMLINK+="huawey0"
Fourth Rule
ACTION=="add", ATTR{bInterfaceNumber}=="00", SYMLINK+="huawey0"
All these rules should do what you want now (I would use the first one personally).
Your rules all have syntax errors in them:
=
is for assignment==
is for comparison, so you were not actually looking at whatDEV
equaled, you were assigning it.- You need
,
between all the statements, there were none beforeSYMLINK+=
.
Fist Rule
ACTION=="add", DEV=="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.0", SYMLINK+="huawey0"
Second Rule
ACTION=="add", KERNEL=="1-2.2:1.0", SYMLINK+="huawey0"
Third Rule
ACTION=="add", DEV=="/devices/platform/pxa27x-ohci/usb1/1-2/1-2.2/1-2.2:1.[0-4]", ATTR{bInterfaceNumber}=="00", SYMLINK+="huawey0"
Fourth Rule
ACTION=="add", ATTR{bInterfaceNumber}=="00", SYMLINK+="huawey0"
All these rules should do what you want now (I would use the first one personally).
answered Sep 1 '13 at 4:00
Alex Layton
1616
1616
add a comment |
add a comment |
Although this post was asked three years ago, and this might not address the answer, I still want to share my successful experience here for the future reference.
According to Jens Reimann's Identify GSM modem devices using udev, "the device attribute “bInterfaceNumber” is not on the tty device, but on the usb device in the parent hierarchy", so I created two rules for my FTDI usb-to-4-port-serial adapter:
SUBSYSTEMS=="usb", ENV{.LOCAL_ifNum}="$attr{bInterfaceNumber}"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", SYMLINK+="ttyUSB_FTDI_4_PORT_%E{.LOCAL_ifNum}"
This stores the attribute “bInterfaceNumber” into the environment variable “.LOCAL_ifNum” (the prefixed dot is a notation for temporary or hidden variables). In the second rule the same variable is pulled on using the “%E” syntax. Newer udev versions also support “$env” instead of “%E”.
(by Jens Reimann)
where ttyUSB_FTDI_4_PORT_
is the symlink name.
These two rules will create symlinks as ttyUSB_FTDI_4_PORT_00
, ttyUSB_FTDI_4_PORT_01
, ttyUSB_FTDI_4_PORT_02
, ttyUSB_FTDI_4_PORT_03
.
You can add ATTRS{serial}
attribute to constrain the enumeration further.
Jens Reimann also acknowlegfed the contribution of Ketan Patel's U&L question, Udev rule file for modem not working, with accepted answer by derobert.
add a comment |
Although this post was asked three years ago, and this might not address the answer, I still want to share my successful experience here for the future reference.
According to Jens Reimann's Identify GSM modem devices using udev, "the device attribute “bInterfaceNumber” is not on the tty device, but on the usb device in the parent hierarchy", so I created two rules for my FTDI usb-to-4-port-serial adapter:
SUBSYSTEMS=="usb", ENV{.LOCAL_ifNum}="$attr{bInterfaceNumber}"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", SYMLINK+="ttyUSB_FTDI_4_PORT_%E{.LOCAL_ifNum}"
This stores the attribute “bInterfaceNumber” into the environment variable “.LOCAL_ifNum” (the prefixed dot is a notation for temporary or hidden variables). In the second rule the same variable is pulled on using the “%E” syntax. Newer udev versions also support “$env” instead of “%E”.
(by Jens Reimann)
where ttyUSB_FTDI_4_PORT_
is the symlink name.
These two rules will create symlinks as ttyUSB_FTDI_4_PORT_00
, ttyUSB_FTDI_4_PORT_01
, ttyUSB_FTDI_4_PORT_02
, ttyUSB_FTDI_4_PORT_03
.
You can add ATTRS{serial}
attribute to constrain the enumeration further.
Jens Reimann also acknowlegfed the contribution of Ketan Patel's U&L question, Udev rule file for modem not working, with accepted answer by derobert.
add a comment |
Although this post was asked three years ago, and this might not address the answer, I still want to share my successful experience here for the future reference.
According to Jens Reimann's Identify GSM modem devices using udev, "the device attribute “bInterfaceNumber” is not on the tty device, but on the usb device in the parent hierarchy", so I created two rules for my FTDI usb-to-4-port-serial adapter:
SUBSYSTEMS=="usb", ENV{.LOCAL_ifNum}="$attr{bInterfaceNumber}"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", SYMLINK+="ttyUSB_FTDI_4_PORT_%E{.LOCAL_ifNum}"
This stores the attribute “bInterfaceNumber” into the environment variable “.LOCAL_ifNum” (the prefixed dot is a notation for temporary or hidden variables). In the second rule the same variable is pulled on using the “%E” syntax. Newer udev versions also support “$env” instead of “%E”.
(by Jens Reimann)
where ttyUSB_FTDI_4_PORT_
is the symlink name.
These two rules will create symlinks as ttyUSB_FTDI_4_PORT_00
, ttyUSB_FTDI_4_PORT_01
, ttyUSB_FTDI_4_PORT_02
, ttyUSB_FTDI_4_PORT_03
.
You can add ATTRS{serial}
attribute to constrain the enumeration further.
Jens Reimann also acknowlegfed the contribution of Ketan Patel's U&L question, Udev rule file for modem not working, with accepted answer by derobert.
Although this post was asked three years ago, and this might not address the answer, I still want to share my successful experience here for the future reference.
According to Jens Reimann's Identify GSM modem devices using udev, "the device attribute “bInterfaceNumber” is not on the tty device, but on the usb device in the parent hierarchy", so I created two rules for my FTDI usb-to-4-port-serial adapter:
SUBSYSTEMS=="usb", ENV{.LOCAL_ifNum}="$attr{bInterfaceNumber}"
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6011", SYMLINK+="ttyUSB_FTDI_4_PORT_%E{.LOCAL_ifNum}"
This stores the attribute “bInterfaceNumber” into the environment variable “.LOCAL_ifNum” (the prefixed dot is a notation for temporary or hidden variables). In the second rule the same variable is pulled on using the “%E” syntax. Newer udev versions also support “$env” instead of “%E”.
(by Jens Reimann)
where ttyUSB_FTDI_4_PORT_
is the symlink name.
These two rules will create symlinks as ttyUSB_FTDI_4_PORT_00
, ttyUSB_FTDI_4_PORT_01
, ttyUSB_FTDI_4_PORT_02
, ttyUSB_FTDI_4_PORT_03
.
You can add ATTRS{serial}
attribute to constrain the enumeration further.
Jens Reimann also acknowlegfed the contribution of Ketan Patel's U&L question, Udev rule file for modem not working, with accepted answer by derobert.
edited Jun 25 '17 at 8:59
G-Man
12.9k93264
12.9k93264
answered Jun 25 '17 at 2:34
Roice
211
211
add a comment |
add a comment |
In addition to Alex's comments, there is another issue. It seems ATTR{bInterfaceNumber}
doesn't work for some reason. To quote the answer to a related question, you should use something along the lines of
SUBSYSTEM=="tty", ACTION=="add",
ENV{ID_VENDOR_ID}=="067b", ENV{ID_MODEL_ID}="2303",
ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="test_USB0"
add a comment |
In addition to Alex's comments, there is another issue. It seems ATTR{bInterfaceNumber}
doesn't work for some reason. To quote the answer to a related question, you should use something along the lines of
SUBSYSTEM=="tty", ACTION=="add",
ENV{ID_VENDOR_ID}=="067b", ENV{ID_MODEL_ID}="2303",
ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="test_USB0"
add a comment |
In addition to Alex's comments, there is another issue. It seems ATTR{bInterfaceNumber}
doesn't work for some reason. To quote the answer to a related question, you should use something along the lines of
SUBSYSTEM=="tty", ACTION=="add",
ENV{ID_VENDOR_ID}=="067b", ENV{ID_MODEL_ID}="2303",
ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="test_USB0"
In addition to Alex's comments, there is another issue. It seems ATTR{bInterfaceNumber}
doesn't work for some reason. To quote the answer to a related question, you should use something along the lines of
SUBSYSTEM=="tty", ACTION=="add",
ENV{ID_VENDOR_ID}=="067b", ENV{ID_MODEL_ID}="2303",
ENV{ID_USB_INTERFACE_NUM}=="00", SYMLINK+="test_USB0"
edited May 23 '17 at 12:40
Community♦
1
1
answered Sep 21 '15 at 5:24
Dan Stahlke
1011
1011
add a comment |
add a comment |
I try to add ATTRS{serial} attribute to constrain the enumeration,
like,
SUBSYSTEMS=="usb", ENV{.Interface_Num}="$attr{bInterfaceNumber}"
SUBSYSTEMS=="usb", ENV{.Serial}="$attr{serial}"
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea70", SYMLINK+="ttyUSB_Lidar00$env{.Serial}_$env{.Interface_Num}"
but I fail.
New contributor
add a comment |
I try to add ATTRS{serial} attribute to constrain the enumeration,
like,
SUBSYSTEMS=="usb", ENV{.Interface_Num}="$attr{bInterfaceNumber}"
SUBSYSTEMS=="usb", ENV{.Serial}="$attr{serial}"
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea70", SYMLINK+="ttyUSB_Lidar00$env{.Serial}_$env{.Interface_Num}"
but I fail.
New contributor
add a comment |
I try to add ATTRS{serial} attribute to constrain the enumeration,
like,
SUBSYSTEMS=="usb", ENV{.Interface_Num}="$attr{bInterfaceNumber}"
SUBSYSTEMS=="usb", ENV{.Serial}="$attr{serial}"
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea70", SYMLINK+="ttyUSB_Lidar00$env{.Serial}_$env{.Interface_Num}"
but I fail.
New contributor
I try to add ATTRS{serial} attribute to constrain the enumeration,
like,
SUBSYSTEMS=="usb", ENV{.Interface_Num}="$attr{bInterfaceNumber}"
SUBSYSTEMS=="usb", ENV{.Serial}="$attr{serial}"
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea70", SYMLINK+="ttyUSB_Lidar00$env{.Serial}_$env{.Interface_Num}"
but I fail.
New contributor
New contributor
answered 10 mins ago
黄绵光
1
1
New contributor
New contributor
add a comment |
add a comment |
Thanks for contributing an answer to Unix & Linux Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f86728%2fudev-rule-to-match-multiple-node-usb-device%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown