我有两个(可能将来会更多)相同的USB串行设备(不幸的是,序列号很低)-它们实际上是BTC矿机。当前,它们最终以ttyUSBX
X为0、1或2结束,因为还有另一个不相关的USB串行设备(这里不必担心)。
我想编写一个udev规则,它将在内为它们分配可预测的名称/dev
,例如/dev/miner0
零是递增的整数。我不在乎其中的哪个会最终结束,但是我确实需要它们处于可预测的范围内,并且不会改变。
目前我有这个:
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="miner%n"
这很接近,因为我最终得到的名字像我想要的。唯一的问题是,因为矿工和第三装置有时会出现在一个随机的顺序,我可能最终有两个的miner0
,miner1
和miner2
,但我从来不知道其中两个(无需手动寻找)。如果我添加更多非矿工USB串行设备(可能),则会加剧该问题。
我发现%e
对它的引用似乎确实符合我的要求,但是似乎不再存在。
如何给这些设备起可预测的名称?如果可能的话,我也不想将它们绑定到USB总线上的位置。
进一步的信息/背景
值得一提的是,我并没有为它们的名字而烦恼,只是即使它们被插入另一个USB插座,它们的名称也不会改变。我会简单地忘记整个udev并在中使用条目/dev/serial/by-id
,但是由于它们具有相同的序列号,所以其中只有一个!
还值得一提的是,这样做的原因是需要告知挖掘软件一系列要探测和查找的设备。我可以让它完成所有工作(它基本上只是找到ttyUSB*
范围内的所有有效矿工),但是这会惹恼非矿工设备。因此,我需要提前知道的矿工的名称,以便可以将其配置为仅使用那些名称。可悲的是它不会接受通配符(因此,仅告诉它使用/dev/miner*
似乎是不可能的),因此就出现了这个问题。
/dev/btcminer/*
)到这样的列表:-S /dev/btcminer/0 -S /dev/btcminer/1 <and so on if present>
这是软件需要的参数。