Otázka:
Jak v Linuxu identifikovat více Arduinos připojených přes USB?
vlad b.
2014-08-08 01:11:27 UTC
view on stackexchange narkive permalink

Pokud mám k počítači s Linuxem připojeno více Arduinos přes USB a zobrazují se jako

  • / tty / ACM0
  • / tty / ACM1
  • /tty/ACM2

Jak mohu zjistit, které Arduino je které bez připojení k nim přes sériové připojení ? Existuje na Arduinu sériové číslo nebo jedinečné ID?

Děkujeme za váš čas.

Situace: Uno R3, Mega, Leonardo s / ttyACM [1,2,3 ]

Výstup lsusb se zařízeními ve výše uvedeném pořadí:

 ... Bus 001 Device 011: ID 2341: 0043 Bus 001 Device 013: ID 2341: 8036 ... Bus 001 Device 014: ID 2341: 0042 

lsusb -d vendor: device -vvv shows for each one

Uno

 Bus 001 Device 014: ID 2341: 0042 Device deskriptor: bLength 18 bDescriptorType 1 bcdUSB 1,10 bDeviceClass 2 komunikace bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x2341 idProduct 0x0042 bcdDevice 0,01 iManufacturer 1 Arduino (www.arduino.cc) iProduct 2 iSerial 220 55330313735351910141 bNumConfigurations 1 Konfigurace popisovače: bLength 9 bDescriptorType 2 wTotalLength 62 bNumInterfaces 2 bConfigurationValue 1 iConfiguration 0 bmAttributes 0xc0 Self Powered MaxPower 100mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubCter 2 (rozhraní b) 10.01 CDC ACM: bmCapabilities 0x06 odesílá kódování přerušovacího vedení a sériový stav CDC Union: bMasterInterface 0
bSlaveInterface 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 255 Interface Descriptor: bLength 9 bDescriptorType bInescript 0 Nepoužito bInterfaceProtocol 0 iInterface 0 Deskriptor koncového bodu: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Typ přenosu Hromadná synchronizace Typ Žádný Typ použití Data wMaxPacketSize 0x0040 1x 64 bajtů bInterval 1 Deskriptor koncového bodu: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributy 2 Typ přenosu Hromadná synchronizace Typ Žádné Použití Typ dat wMaxPacketSize 0x0040 1x 64 bytů bInterval 1 Stav zařízení: 0 > Leonardo:  
 Bus 001 Device 013: ID 2341: 8036 Deskriptor zařízení: bLength 18 bDescriptorType 1 bcdUSB 2,00 bDeviceClass 0 (definováno na úrovni rozhraní) bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 1 64 idVendor 1 LLC iProduct 2 Arduino Leonardo iSerial 0
bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 100 bNumInterfaces 3 bConfigurationValue 1 iConfiguration 0 bmAttributes 0x80 (Bus Powered) MaxPower 500mA Interface Association: bLength 8 bDescriptorType 11 bFirstInterface 2 bFirstInterface 2 bFirstInterface 2 bFirstInterface 2 bFirstInterface (v.25ter) iFunction 0 Deskriptor rozhraní: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Communications bInterfaceSubClass 2 Abstract (modem) bInterfaceProtocol 0 None iInterface 0 CDC Header: b cdCDC 1.10 Správa hovorů CDC: bmCapabilities 0x01 správa hovorů bDataInterface 1 CDC ACM: bmCapabilities 0x06 odesílá kódování přerušeného vedení a sériový stav CDC Union: bMasterInterface 0 bSlaveInterface 1 Deskriptor koncového bodu: bLength 7 bDescriptorType 5 bEndpointAddress 0xttp EP1 Žádné Typ použití Data wMaxPacketSize 0x0040 1x 64 bajtů bInterval 0 Deskriptor koncového bodu: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Typ přenosu Hromadná synchronizace Typ Žádný Typ použití Data
wMaxPacketSize 0x0040 1x 64 bytes bInterval 0 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 3 Human Interface Device bInterfaceSubClass 0 Ne Subclass bInterfaceProtocol 0 Žádné iInterface 0 HID Device Descriptor: bLength 9 bDescriptorType 33 bcdHID 1.01 bCountryCode 0 Není podporováno bNumDescriptors 1 bDescriptorType 34 Report wDescriptorLength 101 Report Descriptor: (length is 101) Item (Global): Usage Page, data = [0x01] 1 Generic Desktop Controls Item (Local): Usage, data = [0x02] 2 Mouse Item (Main): Collection , data = [0x01] 1 Položka aplikace (místní): Použití, data = [0x01] 1 Položka ukazatele (hlavní): Sbírka, data = [0x00] 0 Fyzická položka (globální): ID sestavy, data = [0x01] 1 položka (globální): Stránka využití , data = [0x09] Položka 9 tlačítek (místní): minimální použití, data = [0x01] 1 tlačítko 1 (primární) položka (místní): maximální využití, data = [0x03] 3 tlačítko 3 (terciární) položka (globální) : Logické minimum, data = [0x00] 0 položek (globální): Logické maximum, data = [0x01] 1 položka (globální): počet zpráv, data = [0x03] 3 položka (globální): velikost zprávy, data = [0x01 ] 1 položka (hlavní): vstup, data = [0x02] 2 datová proměnná absolutní no_wrap lineární upřednostňovaný stav no_Null_Position ne_vlatilní bitfield
Položka (globální): Počet zpráv, data = [0x01] 1 položka (globální): Velikost zprávy, data = [0x05] 5 položek (hlavní): vstup, data = [0x03] 3 Konstantní proměnná Absolutní No_Wrap Lineární Preferred_State No_Null_Position Non_Volatile Bitfield Položka (globální): Stránka využití, data = [0x01] 1 Obecná položka ovládacích prvků plochy (místní): Použití, data = [0x30] 48 Položka Směr-X (místní): Použití, data = [0x31] 49 Položka směr Y (Local): Usage, data = [0x38] 56 Wheel Wheel (Global): Logical Minimum, data = [0x81] 129 Item (Global): Logical Maximum, data = [0x7f] 127 Item (Global): Report Size, data = [0x08] 8 položka (globální): počet zpráv, data = [0x03] 3 položka (hlavní): vstup, data = [0x06] 6 proměnná dat relativní N o_Wrap Linear Preferred_State No_Null_Position Non_Volatile Bitfield Item (Main): End Collection, data = none Item (Main): End Collection, data = none ...... Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 3 Transfer Type Typ synchronizace přerušení Žádný Typ použití Data wMaxPacketSize 0x0040 1x 64 bajtů bInterval 1 Stav zařízení: 0x0000 (napájení ze sběrnice) 

And Mega256:

 Bus 001 Device 014: ID 2341: 0042 Deskriptor zařízení: bLength 18 bDescriptorType 1 bcdUSB 1,10 bDeviceClass 2 Komunikace bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 8 idVendor 0x2341 idProduct 0x0042
bcdDevice 0,01 iManufacturer 1 Arduino (www.arduino.cc) iProduct 2 iSerial 220 55330313735351910141 bNumConfigurations 1 Konfigurace popisovače: bLength 9 bDescriptorType 2 wTotalLength 62 bNumInterfaces 2 bConfigurationValue 1 IConfiguration 0 bmAttributes 0xc0 samonapájecí MaxPower 100mA Rozhraní deskriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 1 bInterfaceClass 2 Komunikace bInterfaceSubClass 2 Abstrakt (modem) bInterfaceProtocol 1 AT-příkazy (v.25ter) iInterface 0 Záhlaví CDC: bcdCDC 10.01 CDC ACM: bmCapabilities 0x06 odesílá kódování zalomení linky a sériový stav CDC Union: bMa sterInterface 0 bSlaveInterface 1 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0008 1x 8 bytes bInterval 255 Interface Descriptor: bLength 9 bDescripte Data bInterfaceSubClass 0 Nepoužito bInterfaceProtocol 0 iInterface 0 Deskriptor koncového bodu: bLength 7 bDescriptorType 5 bEndpointAddress 0x04 EP 4 OUT bmAttributes 2 Typ přenosu Hromadná synchronizace Typ Žádný
Typ použití Data wMaxPacketSize 0x0040 1x 64 bajtů bInterval 1 Deskriptor koncového bodu: bDélka 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Typ přenosu Hromadná synchronizace Typ Žádný Typ použití Data wMaxPacketSize 0x0040 1x 64 bajtů Stav: Interval 1Device 0 Interval 1Device >
`lsusb -vvv` říká?
Můžete jeden odpojit a zjistit, který z nich zmizí?
Ne opravdu, chci to udělat pro vzdálené solární pole senzorů, které bude pro někoho daleko, když se restartuje.
Ignacio Vasquez-Abrams - jak mohu mapovat informace z lsusb -vvv na / dev / ttyACM ? JE něco ve výstupu lsusb, co mohu analyzovat? Děkuji za nápad!
Máte další Arduino, se kterým můžete porovnat výstup?
Přidány další dva typy arduina - všechny 3 připojené najednou.
Také si lámu hlavu, že leonardo má iSerial = 0, zatímco ostatní mají sériové číslo.
Pomáhá tento článek z mého osobního webu? http://wirespeed.xs4all.nl/mediawiki/index.php/Udev_rules_file_for_Arduino_boards Jsem zvědavý, jestli ostatní Leonardo mají stejné sériové číslo 0, zdá se mi to divné.
Co se stane, když použijete `sudo lsusb -s ............`?
Osm odpovědi:
user2973
2014-08-08 11:19:02 UTC
view on stackexchange narkive permalink

Za předpokladu, že vaše distribuce používá udev:

  udevadm info --query = all --name = / dev / ttyACM0  

K jeho spuštění možná budete potřebovat oprávnění root (sudo / su). Vytvoří seznam takových informací:

  P: /devices/pci0000:00/0000:00:1d.2/usb4/4-2/4-2:1.0/tty / ttyACM0N: ttyACM0S: serial / by-id / usb-Dean_Camera_LUFA_USB-RS232_Adapter_74133353537351403012-if00S: serial / by-path / pci-0000: 00: 1d.2-usb-0: 2: 1,0E: DEVLINKS = / dev / serial / by-id / usb-Dean_Camera_LUFA_USB-RS232_Adapter_74133353537351403012-if00 /dev/serial/by-path/pci-0000:00:1d.2-usb-0:2:1.0E: DEVNAME = / dev / ttyACM0E: DEVPATH = / zařízení / pci0000: 00/0000: 00: 1d.2 / usb4 / 4-2 / ​​4-2: 1,0 / tty / ttyACM0E: ID_BUS = usbE: ID_MM_CANDIDATE = 1E: ID_MODEL = LUFA_USB-RS232_AdapterE: ID_MODEL_ENC = LUFA \ x20US RS232 \ x20AdapterE: ID_MODEL_FROM_DATABASE = Uno R3 (CDC ACM) E: ID_MODEL_ID = 0043E: ID_PATH = pci-0000: 00: 1d.2-usb-0: 2: 1,0E: ID_PATH_TAG = pci-0000_00_1d_2_ usb-0 = 0001E: ID_SERIAL = Dean_Camera_LUFA_USB-RS232_Adapter_74133353537351403012E: ID_SERIAL_SHORT = 74133353537351403012E: ID_TYPE = genericE: ID_USB_DRIVER = cdc_acmE: ID_USB_00 = ID_USB_00_ID: 0 n_CameraE: ID_VENDOR_ENC = Dean \ x20CameraE: ID_VENDOR_FROM_DATABASE = Arduino SAE: ID_VENDOR_ID = 2341E: MAJOR = 166E: MINOR = 0E: SUBSYSTEM = ttyE: UDEV_LOG = 3E: USEC_INITIAL> Uno s upraveným firmwarem na atmega16u2 (USB na sériové). Zajímavé řádky jsou pravděpodobně ID_MODEL_ID a ID_MODEL_FROM_DATABASE. 
Děkuji. Ve výchozím nastavení používám OpenWrt s hotplug2, ale pokusím se přepnout na udev a otestovat to.
PhillyNJ
2014-11-08 06:32:49 UTC
view on stackexchange narkive permalink

Ke každému můžete přidat alias. Pak víte, který je který. Zde je pěkný návod, jak to nastavit.

Zde je úryvek, který jsem napsal na základě tohoto tutoriálu. V níže uvedeném příkladu používám adaptér FTDI RS232RL USB na sériový port, což podle mého názoru také používá Arduino.

  1. Aby bylo možné přiřadit alias zařízení USB-Serial, musíme najít nějaké informace o zařízení
  2. Připojte USB. Předpokládá se, že jste již nainstalovali ovladače pro toto použití be device a zařízení je viditelné při psaní:

lsusb

  1. Budeme potřebovat následující. ID dodavatele. ID produktu Sériové číslo zařízení
  2. K tomu je potřeba trochu lovu. Všechna vaše zařízení zaznamenávají položky do '/ var / log / messages'.

Proto si můžeme tento soubor přečíst a najít správné USB:

  grep "ftdi" / var / log / messages  

Můžete také použít „usb“

  1. Toto jsou všechny zprávy označené pomocí ftdi:

  2. Vedle ftdi_sio existuje číslo jako 1-1.2. Toto je zařízení USB

grep "usb 1-1.2" / var / log / messages

Nebo můžete použijte:

  dmesg | grep "usb 1-1.3"  
  1. Tím získáte všechny potřebné informace:

USB Alias

  1. Nyní se seznamem sériových čísel v ruce vytvořme sadu pravidel UDEV, která vytvoří pěkný symbolický odkaz pro každé z těchto zařízení. Pravidla UDEV jsou obvykle rozptýlena do mnoha souborů v /etc/udev/rules.d. Vytvořte nový soubor s názvem 99-usb-serial.rules a vložte do něj následující řádky:

V tomto příkladu se můj alias nazývá „lcdbox“

  SUBSYSTEM == "tty", ATTRS {idVendor} == "0403", ATTRS {idProduct} == "6001", ATTRS {serial} == "A601ERJJ", SYMLINK + = "lcdbox"  
  1. SYMLINK je název vašeho aliasu. V tomto případě je můj alias lcdbox.
  2. Uložte soubor a zadejte

    sudo udevadm control --reload-rules

  3. Typ

    ls –l / dev / lcdbox

lrwxrwxrwx 1 kořenový kořen 7. ledna 1970 / dev / lcdbox -> ttyUSB0

  1. To ukazuje, že můj alcdbox alias je namapován na ttyUSB0
ansi_lumen
2016-03-26 14:21:37 UTC
view on stackexchange narkive permalink

To je docela snadné! Musíte přizpůsobit firmware čipů ftdi a přidat pravidlo udev:

Nejprve získejte ftdi_eeprom přes apt-get nebo ze zdrojů. Identifikujte své zařízení pomocí lsusb a získejte ID:

 lsusbBus 001 Zařízení 005: ID 0403: 6001 Future Technology Devices International, Ltd FT232 Serial (UART) IC .... 

Připravit konfigurace a ujistěte se, že vendor_id a product_id se shodují. Přizpůsobte řetězce v sekci Řetězce a získejte jedinečné ID pro vaše zařízení.

 vendor_id = 0x0403 # Vendor IDproduct_id = 0x6001 # ID produktumax_power = 50 # max. spotřeba energie: hodnota * 2 mA. Pokud je self_powered = true, použijte 0. ############# Strings ############## Manufacturer = "FTDI" # Manufacturerproduct = "Arduino Nano" # Productserial = "arduino1" # Serial ############# Options ############ self_powered = false # Vypnout toto pro bus poweredremote_wakeup = false # Zapnout toto pro funkci vzdáleného probuzení use_serial = true # Použijte řetězec sériového čísla # Normálně out nemusíte měnit jeden z těchto příznaků # BM_type_chip = true # Novější čipy jsou všechny BM typein_is_isochronous = false # In Endpoint is Isochronousout_is_isochronous = false # Out Endpoint is Isochronoussuspend_pull_downs = false # Povolit pozastavení stahování pro nižší výkonchange_usb_version = false # Change USB Versionusb_version = 0x0200 # Používá se, pouze když je change_usb_version povolen ########## Misc ########### název souboru = "eeprom.old" # název souboru, ponechejte prázdné přeskočit psaní souboru cbus0 = RXLED # cbus1 = TXLED # 

Vypsat aktuální ftdi-firmware:

ftdi_eeprom --read-eprom

Tento příkaz se objeví ates $ {pwd} /eeprom.old , který obsahuje aktuální firmware na ftdi. Zálohujte tento soubor před pokračováním , protože během flash-eeprom bude soubor přepsán. Po zálohování nahrajte soubor ftdi:

  ftdi_eeprom --flash-eeprom myconfig.conf  

Nyní vytvořte podobné pravidlo udev

  SUBSYSTEMS == "usb", ATTRS {idProduct} == "6001", ATTRS {idVendor} == "0403", SYMLINK + = "$ attr {serial}", OWNER = "bananapi", GROUP = "pi", MODE = "0777"  

v /etc/udev/rules.d/ 90-arduino-usb.rules a restartujte udev.

  restartování služby udev  

odpojte a znovu připojte zařízení a zkuste

  ls -lah / dev / arduino1 

Kde arduino1 je řetězec definovaný v části serial ve výše uvedeném .conf .

Viz také: Rizika ftdi_eeprom? - TX je po blikání vždy vysoký

jfpoilpret
2016-07-25 01:53:12 UTC
view on stackexchange narkive permalink

V systému Ubuntu 16.04 (a možná i v předchozích verzích nebo jiných distribucích) můžete:

  > ls / dev / serial / by-id  

který se zobrazí (na mém boxu, kde je připojeno Arduino UNO):

  usb-Arduino__www.arduino.cc__0043_A4139363931351318241-if00  

Můžete snadno najít zde je ID zařízení 0043 (UNO).

Tento soubor je ve skutečnosti odkazem na / dev / ttyACM0 v mém poli.

Anders
2014-12-20 09:45:45 UTC
view on stackexchange narkive permalink

Použil bych skript k vytvoření aliasu pod / dev / a také na něj nastavil skupinu a práva pomocí udev jako ostatní odpovědi.

Ale pokud bych neměl udev , připojil bych lsusb do grep nebo awk , jako lsusb | grep -e "idProduct" .

Každopádně s pravidly udev nebo s lsusb a grep k identifikaci zařízení USB použijte idVendor , idProduct a iSerial v části Deskriptor zařízení části lsusb pro správnou identifikaci. idVendor vám řekne výrobce, idProduct by měl identifikovat produkt od výrobce, ale někdy používají stejné ID produktu pro více než jeden produkt. A konečně, v případě potřeby by iSerial mělo být jedinečné ID pro každý příklad tohoto produktu.

cyberbrain
2014-12-18 15:04:30 UTC
view on stackexchange narkive permalink

Nějaký druh identifikačního tisku můžete kdykoli provést pomocí seriálu ve void setup (). Jakmile je určitá deska připojena, pošle toto ID na vaše USB rozhraní (které posloucháte s nějakou aplikací démona ve vašem linuxovém boxu). Jakmile obdržíte ID, můžete jej namapovat na cestu 'Arduino1': '/ dev / ttyACM0', 'Arduino2': '/ dev / ttyACM1', 'Arduino3': '/dev/ttyACM2'...etc

Uvědomte si, že když je zařízení z nějakého důvodu odpojeno, může to změnit jeho fyzickou cestu, takže možná budete muset všechny přemapovat. V tomto případě by mohlo být dobré napsat samostatnou funkci ex: get_id (), kterou můžete kdykoli zavolat (nejen při spuštění).

EternityForest
2014-11-07 07:17:58 UTC
view on stackexchange narkive permalink

Byl bych mocně v pokušení identifikovat jiným způsobem, například nechat skicu reagovat na speciální příkaz k identifikaci, abych se vyhnul lichým způsobům identifikace zařízení USB.

Combinacijus
2020-01-02 21:23:24 UTC
view on stackexchange narkive permalink

Overview

  • Jedním ze způsobů, jak uvádí ansi_lumen ve své odpovědi, je flashování ftdichip EEPROM, aby mělo jedinečné sériové číslo, které by pak bylo možné identifikovat podle pravidel UDEV.

    Ukázalo se však, že nebude fungovat na levných čínských Arduinech , které místo toho FTDI mají čip CH340G, který nemá EEPROM k ukládání jedinečného ID ( CH340B by měl fungovat).

  • Tato odpověď navrhuje napsat pravidlo UDEV pomocí speciálního skriptu, který požádá Arduino o zaslání jeho jedinečného ID přes sériové číslo. Problém je v tom, že musíte upravit náčrt Arduina a obecně je to docela složité.

Identifikace podle portu

Takže nejjednodušší způsob Zjistil jsem, že bylo použití pravidel UDEV a identifikace Arduinos podle portu USB (devpath), takže připojení Arduina ke stejnému portu (dokonce i ve vnořených rozbočovačích USB) vytvoří trvalé jméno.

Nastavení TLDR:

Upravená verze tohoto

  1. Najít Arduino idVendor a idProduct:
  2. ol>

    lsusb

    Získáte něco takového:

      ... Bus 004 Zařízení 001: ID 1d6b: 0003 Linux Kořenový rozbočovač Foundation 3.0 Bus 003 Zařízení 124: ID 1a86: 7523 Sériový adaptér USB QinHeng Electronics HL-340 Bus 003 Zařízení 123: ID 214b: 7000 Sběrnice 003 Zařízení 122: ID 1a86: 7523 QinHeng Electronics HL-340 USB-Sériový adaptér Bus 003 Zařízení 121 : ID 1a86: 7523 QinHeng Electronics HL-340 USB-Serial adapterBus 003 Device 120: ID 1a40: 0101 Terminus Technology Inc. Hub ...  

    Připojením / odpojením Arduino najděte whi ch one it is (I have 3 connected). Hledáme jeho ID. V mém případě „... ID 1a86: 7523 QinHeng ...“. Takže idVendor = 1a86, idProduct = 7523

    1. Vytvořit nový soubor pravidel UDEV:

    sudo nano / etc / udev / rules.d / 99-usb-serial.rules

    1. Upravte hodnoty idVendor a idProduct podle toho, co jste našli v předchozím kroku, při kopírování vložte do souboru pravidel vytvořili jsme:

    SUBSYSTEM == "tty", ATTRS {idVendor} == "1a86", ATTRS {idProduct} == "7523", SYMLINK + = "ttyUSB-arduino% s {/ devpath}"

    1. Znovu načíst pravidla UDEV

    sudo udevadm control --reload

    1. Znovu připojte Arduinos a nyní bude mít jedinečný název. Chcete-li jej otestovat, zadejte:

    ls / dev / ttyUSB *


    Který výstup:

    / dev / ttyUSB1 / dev / ttyUSB3 /dev/ttyUSB-arduino2.1 /dev/ttyUSB-arduino2.4 / dev / ttyUSB2 / dev / ttyUSB4 /dev/ttyUSB-arduino2.2 / dev / ttyUSB-arduino3

    Jak vidíte, stále dostáváme / dev / ttyUSBx jako dříve, které se vždy mění podle toho, který z nich byl připojen jako první. Ale teď máme také / dev / ttyUSB-arduino {port}, které jsou vždy stejné pro stejný port a pouze pro Arduinos. Chcete-li analyzovat, co znamená „..arduino2.4“: 2 odkazuje na druhý port notebooku a 4 na čtvrtý port na rozbočovači USB.

    Chcete-li to lépe vidět, zadejte:

      lsusb -t  

    Výstup:

      ... /: Bus 03. Port 1: Dev 1, Class = root_hub, Driver = xhci_hcd / 4p, 480M | __ Port 1: Dev 5, If 0, Class = Human Interface Device, Driver = usbhid, 12M | __ Port 1: Dev 5, If 1, Class = Human Interface Device, Driver = usbhid, 12M | __ Port 2: Dev 84, If 0, Class = Hub, Driver = hub / 4p, 480M | __ Port 1: Dev 85, If 0, Class = Vendor Specific Class, Driver = ch341, 12M | __ Port 2: Dev 86, If 0, Class = Vendor Specific Class, Driver = ch341, 12M | __ Port 3: Dev 87, If 0, Class = Hub, Driver = hub / 4p, 480M | __ Port 4: Dev 88, If 0, Class = Vendor Specifická třída, Driver = ch341, 12M | __ Port 3: Dev 89, If 0, Class = Vendor Specific Class, Driver = ch341, 12M /: Bus 02. Port 1: Dev 1, Class = root_hub, Driver = ehci-pci / 2p, 480M | __ Port 1: Dev 2, If 0, Class = Hub, Driver = hub / 6p, 480M ...  

    Připojením / odpojením můžete zjistit, která zařízení jsou na kterých portech



Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...