Consistent Linux device enumerationIs pvcreate destructive? Attempting to recover an lvm2 volume groupHow to check if unmount of USB device is completed?Safely remove usb from linux deviceHow to make a USB device report as “device busy”?Consistent enumeration of a btattached controllerHow to safely insert USB stick/device to Linux computer?why doesn't lsusb list a deviceSpecify Function on USB DeviceLinux - Why are my core IDs not consistent?

When an imagined world resembles or has similarities with a famous world

Should I simplify my writing in a foreign country?

Need a little help Understanding how to build model's in Keras

Should I mention being denied entry to UK due to a confusion in my Visa and Ticket bookings?

Is there a word that describes the unjustified use of a more complex word?

Would a small hole in a Faraday cage drastically reduce its effectiveness at blocking interference?

Endgame puzzle: How to avoid stalemate and win?

Correct way of drawing empty, half-filled and fully filled circles?

Why would a military not separate its forces into different branches?

Is any special diet an effective treatment of autism?

Hostile Divisor Numbers

SOQL query WHERE filter by specific months

Why does sound not move through a wall?

Why did the Apollo 13 crew extend the LM landing gear?

How do LIGO and VIRGO know that a gravitational wave has its origin in a neutron star or a black hole?

Out of scope work duties and resignation

Why doesn't ever smooth vector bundle admits a line bundle?

Is the book wrong about the Nyquist Sampling Criterion?

Why did WWI include Japan?

As a GM, is it bad form to ask for a moment to think when improvising?

How to pass hash as password to ssh server

How should I tell my manager I'm not paying for an optional after work event I'm not going to?

Can there be a single technologically advanced nation, in a continent full of non-technologically advanced nations?

What was Bran's plan to kill the Night King?



Consistent Linux device enumeration


Is pvcreate destructive? Attempting to recover an lvm2 volume groupHow to check if unmount of USB device is completed?Safely remove usb from linux deviceHow to make a USB device report as “device busy”?Consistent enumeration of a btattached controllerHow to safely insert USB stick/device to Linux computer?why doesn't lsusb list a deviceSpecify Function on USB DeviceLinux - Why are my core IDs not consistent?






.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;








13















In our Linux box we have USB -> serial device which was always identified as
/dev/ttyACM0. So I've written an application and until yesterday, everything worked fine. But suddenly (yeah, during the remote presentation ...) the device stopped working. After quick research, I found that the connection changed to /dev/ttyACM1. It was a little untimely, but now I have a problem - how to unambiguously identify my device? Like, for example, the storage drive could be initialized using UUID although the /dev/sd** has changed. Is there some way to do that for serial devices?



Now I use a stupid workaround:



for(int i = 0; i < 10; i ++)
O_NDELAY);



The link to the device we use.










share|improve this question






























    13















    In our Linux box we have USB -> serial device which was always identified as
    /dev/ttyACM0. So I've written an application and until yesterday, everything worked fine. But suddenly (yeah, during the remote presentation ...) the device stopped working. After quick research, I found that the connection changed to /dev/ttyACM1. It was a little untimely, but now I have a problem - how to unambiguously identify my device? Like, for example, the storage drive could be initialized using UUID although the /dev/sd** has changed. Is there some way to do that for serial devices?



    Now I use a stupid workaround:



    for(int i = 0; i < 10; i ++)
    O_NDELAY);



    The link to the device we use.










    share|improve this question


























      13












      13








      13


      3






      In our Linux box we have USB -> serial device which was always identified as
      /dev/ttyACM0. So I've written an application and until yesterday, everything worked fine. But suddenly (yeah, during the remote presentation ...) the device stopped working. After quick research, I found that the connection changed to /dev/ttyACM1. It was a little untimely, but now I have a problem - how to unambiguously identify my device? Like, for example, the storage drive could be initialized using UUID although the /dev/sd** has changed. Is there some way to do that for serial devices?



      Now I use a stupid workaround:



      for(int i = 0; i < 10; i ++)
      O_NDELAY);



      The link to the device we use.










      share|improve this question
















      In our Linux box we have USB -> serial device which was always identified as
      /dev/ttyACM0. So I've written an application and until yesterday, everything worked fine. But suddenly (yeah, during the remote presentation ...) the device stopped working. After quick research, I found that the connection changed to /dev/ttyACM1. It was a little untimely, but now I have a problem - how to unambiguously identify my device? Like, for example, the storage drive could be initialized using UUID although the /dev/sd** has changed. Is there some way to do that for serial devices?



      Now I use a stupid workaround:



      for(int i = 0; i < 10; i ++)
      O_NDELAY);



      The link to the device we use.







      linux usb-device






      share|improve this question















      share|improve this question













      share|improve this question




      share|improve this question








      edited Mar 20 at 11:03









      Anthony Geoghegan

      8,03154055




      8,03154055










      asked Mar 20 at 7:10









      folibisfolibis

      20229




      20229




















          1 Answer
          1






          active

          oldest

          votes


















          19














          Since we are talking USB devices and assuming you have udev, you could setup some udev rules.



          I guess, and this is just a wild guess, somebody or something unplugged/removed the device and plugged it back in/added the device again, which bumps up the number.



          Now, first you need vendor and product id's:



          $ lsusb
          Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
          Bus 001 Device 011: ID 0403:6001 FTDI FT232 USB-Serial (UART) IC


          Next, you need the serial number (in case you have several):



          # udevadm info -a -n /dev/ttyUSB1 | grep 'serial' | head -n1
          ATTRSserial=="A6008isP"


          Now, lets create a udev rule:



          UDEV rules are usually scattered into many files in /etc/udev/rules.d. Create a new file called 99-usb-serial.rules and put the following line in there, I have three devices, each with a a different serial number:



          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="A6008isP", SYMLINK+="MySerialDevice"
          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="A7004IXj", SYMLINK+="MyOtherSerialDevice"
          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="FTDIF46B", SYMLINK+="YetAnotherSerialDevice"

          ls -l /dev/MySerialDevice
          lrwxrwxrwx 1 root root 7 Nov 25 22:12 /dev/MySerialDevice -> ttyUSB1


          If you do not want the serial number, any device from vendor with same chip will then get the same symlink, only one can be plugged in at any given time.



          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", SYMLINK+="MySerialDevice"


          Taken from here






          share|improve this answer




















          • 3





            If you have a recent linux distribution, most likely it already automatically creates the device as /dev/serial/by-id/usb-XXXX_USB2.0-Serial-if00-port0. This might be enough for you without custom udev rules.

            – Josef
            Mar 20 at 10:07






          • 1





            Unfortunately, many no-name devices all have the serial number "0123456789abcdef". That's where it gets interesting.

            – mosvy
            Mar 20 at 11:03











          • @mosvy are serial numbers unchangable?

            – OganM
            Mar 20 at 20:05











          • @OganM they may be changed ... if you're able to root the devices.

            – mosvy
            Mar 20 at 20:24











          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
          );



          );













          draft saved

          draft discarded


















          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f507349%2fconsistent-linux-device-enumeration%23new-answer', 'question_page');

          );

          Post as a guest















          Required, but never shown

























          1 Answer
          1






          active

          oldest

          votes








          1 Answer
          1






          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes









          19














          Since we are talking USB devices and assuming you have udev, you could setup some udev rules.



          I guess, and this is just a wild guess, somebody or something unplugged/removed the device and plugged it back in/added the device again, which bumps up the number.



          Now, first you need vendor and product id's:



          $ lsusb
          Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
          Bus 001 Device 011: ID 0403:6001 FTDI FT232 USB-Serial (UART) IC


          Next, you need the serial number (in case you have several):



          # udevadm info -a -n /dev/ttyUSB1 | grep 'serial' | head -n1
          ATTRSserial=="A6008isP"


          Now, lets create a udev rule:



          UDEV rules are usually scattered into many files in /etc/udev/rules.d. Create a new file called 99-usb-serial.rules and put the following line in there, I have three devices, each with a a different serial number:



          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="A6008isP", SYMLINK+="MySerialDevice"
          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="A7004IXj", SYMLINK+="MyOtherSerialDevice"
          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="FTDIF46B", SYMLINK+="YetAnotherSerialDevice"

          ls -l /dev/MySerialDevice
          lrwxrwxrwx 1 root root 7 Nov 25 22:12 /dev/MySerialDevice -> ttyUSB1


          If you do not want the serial number, any device from vendor with same chip will then get the same symlink, only one can be plugged in at any given time.



          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", SYMLINK+="MySerialDevice"


          Taken from here






          share|improve this answer




















          • 3





            If you have a recent linux distribution, most likely it already automatically creates the device as /dev/serial/by-id/usb-XXXX_USB2.0-Serial-if00-port0. This might be enough for you without custom udev rules.

            – Josef
            Mar 20 at 10:07






          • 1





            Unfortunately, many no-name devices all have the serial number "0123456789abcdef". That's where it gets interesting.

            – mosvy
            Mar 20 at 11:03











          • @mosvy are serial numbers unchangable?

            – OganM
            Mar 20 at 20:05











          • @OganM they may be changed ... if you're able to root the devices.

            – mosvy
            Mar 20 at 20:24















          19














          Since we are talking USB devices and assuming you have udev, you could setup some udev rules.



          I guess, and this is just a wild guess, somebody or something unplugged/removed the device and plugged it back in/added the device again, which bumps up the number.



          Now, first you need vendor and product id's:



          $ lsusb
          Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
          Bus 001 Device 011: ID 0403:6001 FTDI FT232 USB-Serial (UART) IC


          Next, you need the serial number (in case you have several):



          # udevadm info -a -n /dev/ttyUSB1 | grep 'serial' | head -n1
          ATTRSserial=="A6008isP"


          Now, lets create a udev rule:



          UDEV rules are usually scattered into many files in /etc/udev/rules.d. Create a new file called 99-usb-serial.rules and put the following line in there, I have three devices, each with a a different serial number:



          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="A6008isP", SYMLINK+="MySerialDevice"
          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="A7004IXj", SYMLINK+="MyOtherSerialDevice"
          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="FTDIF46B", SYMLINK+="YetAnotherSerialDevice"

          ls -l /dev/MySerialDevice
          lrwxrwxrwx 1 root root 7 Nov 25 22:12 /dev/MySerialDevice -> ttyUSB1


          If you do not want the serial number, any device from vendor with same chip will then get the same symlink, only one can be plugged in at any given time.



          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", SYMLINK+="MySerialDevice"


          Taken from here






          share|improve this answer




















          • 3





            If you have a recent linux distribution, most likely it already automatically creates the device as /dev/serial/by-id/usb-XXXX_USB2.0-Serial-if00-port0. This might be enough for you without custom udev rules.

            – Josef
            Mar 20 at 10:07






          • 1





            Unfortunately, many no-name devices all have the serial number "0123456789abcdef". That's where it gets interesting.

            – mosvy
            Mar 20 at 11:03











          • @mosvy are serial numbers unchangable?

            – OganM
            Mar 20 at 20:05











          • @OganM they may be changed ... if you're able to root the devices.

            – mosvy
            Mar 20 at 20:24













          19












          19








          19







          Since we are talking USB devices and assuming you have udev, you could setup some udev rules.



          I guess, and this is just a wild guess, somebody or something unplugged/removed the device and plugged it back in/added the device again, which bumps up the number.



          Now, first you need vendor and product id's:



          $ lsusb
          Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
          Bus 001 Device 011: ID 0403:6001 FTDI FT232 USB-Serial (UART) IC


          Next, you need the serial number (in case you have several):



          # udevadm info -a -n /dev/ttyUSB1 | grep 'serial' | head -n1
          ATTRSserial=="A6008isP"


          Now, lets create a udev rule:



          UDEV rules are usually scattered into many files in /etc/udev/rules.d. Create a new file called 99-usb-serial.rules and put the following line in there, I have three devices, each with a a different serial number:



          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="A6008isP", SYMLINK+="MySerialDevice"
          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="A7004IXj", SYMLINK+="MyOtherSerialDevice"
          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="FTDIF46B", SYMLINK+="YetAnotherSerialDevice"

          ls -l /dev/MySerialDevice
          lrwxrwxrwx 1 root root 7 Nov 25 22:12 /dev/MySerialDevice -> ttyUSB1


          If you do not want the serial number, any device from vendor with same chip will then get the same symlink, only one can be plugged in at any given time.



          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", SYMLINK+="MySerialDevice"


          Taken from here






          share|improve this answer















          Since we are talking USB devices and assuming you have udev, you could setup some udev rules.



          I guess, and this is just a wild guess, somebody or something unplugged/removed the device and plugged it back in/added the device again, which bumps up the number.



          Now, first you need vendor and product id's:



          $ lsusb
          Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
          Bus 001 Device 011: ID 0403:6001 FTDI FT232 USB-Serial (UART) IC


          Next, you need the serial number (in case you have several):



          # udevadm info -a -n /dev/ttyUSB1 | grep 'serial' | head -n1
          ATTRSserial=="A6008isP"


          Now, lets create a udev rule:



          UDEV rules are usually scattered into many files in /etc/udev/rules.d. Create a new file called 99-usb-serial.rules and put the following line in there, I have three devices, each with a a different serial number:



          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="A6008isP", SYMLINK+="MySerialDevice"
          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="A7004IXj", SYMLINK+="MyOtherSerialDevice"
          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", ATTRSserial=="FTDIF46B", SYMLINK+="YetAnotherSerialDevice"

          ls -l /dev/MySerialDevice
          lrwxrwxrwx 1 root root 7 Nov 25 22:12 /dev/MySerialDevice -> ttyUSB1


          If you do not want the serial number, any device from vendor with same chip will then get the same symlink, only one can be plugged in at any given time.



          SUBSYSTEM=="tty", ATTRSidVendor=="0403", ATTRSidProduct=="6001", SYMLINK+="MySerialDevice"


          Taken from here







          share|improve this answer














          share|improve this answer



          share|improve this answer








          edited Mar 20 at 8:49

























          answered Mar 20 at 7:58









          thecarpythecarpy

          2,7391028




          2,7391028







          • 3





            If you have a recent linux distribution, most likely it already automatically creates the device as /dev/serial/by-id/usb-XXXX_USB2.0-Serial-if00-port0. This might be enough for you without custom udev rules.

            – Josef
            Mar 20 at 10:07






          • 1





            Unfortunately, many no-name devices all have the serial number "0123456789abcdef". That's where it gets interesting.

            – mosvy
            Mar 20 at 11:03











          • @mosvy are serial numbers unchangable?

            – OganM
            Mar 20 at 20:05











          • @OganM they may be changed ... if you're able to root the devices.

            – mosvy
            Mar 20 at 20:24












          • 3





            If you have a recent linux distribution, most likely it already automatically creates the device as /dev/serial/by-id/usb-XXXX_USB2.0-Serial-if00-port0. This might be enough for you without custom udev rules.

            – Josef
            Mar 20 at 10:07






          • 1





            Unfortunately, many no-name devices all have the serial number "0123456789abcdef". That's where it gets interesting.

            – mosvy
            Mar 20 at 11:03











          • @mosvy are serial numbers unchangable?

            – OganM
            Mar 20 at 20:05











          • @OganM they may be changed ... if you're able to root the devices.

            – mosvy
            Mar 20 at 20:24







          3




          3





          If you have a recent linux distribution, most likely it already automatically creates the device as /dev/serial/by-id/usb-XXXX_USB2.0-Serial-if00-port0. This might be enough for you without custom udev rules.

          – Josef
          Mar 20 at 10:07





          If you have a recent linux distribution, most likely it already automatically creates the device as /dev/serial/by-id/usb-XXXX_USB2.0-Serial-if00-port0. This might be enough for you without custom udev rules.

          – Josef
          Mar 20 at 10:07




          1




          1





          Unfortunately, many no-name devices all have the serial number "0123456789abcdef". That's where it gets interesting.

          – mosvy
          Mar 20 at 11:03





          Unfortunately, many no-name devices all have the serial number "0123456789abcdef". That's where it gets interesting.

          – mosvy
          Mar 20 at 11:03













          @mosvy are serial numbers unchangable?

          – OganM
          Mar 20 at 20:05





          @mosvy are serial numbers unchangable?

          – OganM
          Mar 20 at 20:05













          @OganM they may be changed ... if you're able to root the devices.

          – mosvy
          Mar 20 at 20:24





          @OganM they may be changed ... if you're able to root the devices.

          – mosvy
          Mar 20 at 20:24

















          draft saved

          draft discarded
















































          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.




          draft saved


          draft discarded














          StackExchange.ready(
          function ()
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f507349%2fconsistent-linux-device-enumeration%23new-answer', 'question_page');

          );

          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







          Popular posts from this blog

          Masuk log Menu navigasi

          Identifying “long and narrow” polygons in with PostGISlength and width of polygonWhy postgis st_overlaps reports Qgis' “avoid intersections” generated polygon as overlapping with others?Adjusting polygons to boundary and filling holesDrawing polygons with fixed area?How to remove spikes in Polygons with PostGISDeleting sliver polygons after difference operation in QGIS?Snapping boundaries in PostGISSplit polygon into parts adding attributes based on underlying polygon in QGISSplitting overlap between polygons and assign to nearest polygon using PostGIS?Expanding polygons and clipping at midpoint?Removing Intersection of Buffers in Same Layers

          Старые Смолеговицы Содержание История | География | Демография | Достопримечательности | Примечания | НавигацияHGЯOLHGЯOL41 206 832 01641 606 406 141Административно-территориальное деление Ленинградской области«Переписная оброчная книга Водской пятины 1500 года», С. 793«Карта Ингерманландии: Ивангорода, Яма, Копорья, Нотеборга», по материалам 1676 г.«Генеральная карта провинции Ингерманландии» Э. Белинга и А. Андерсина, 1704 г., составлена по материалам 1678 г.«Географический чертёж над Ижорскою землей со своими городами» Адриана Шонбека 1705 г.Новая и достоверная всей Ингерманландии ланткарта. Грав. А. Ростовцев. СПб., 1727 г.Топографическая карта Санкт-Петербургской губернии. 5-и верстка. Шуберт. 1834 г.Описание Санкт-Петербургской губернии по уездам и станамСпецкарта западной части России Ф. Ф. Шуберта. 1844 г.Алфавитный список селений по уездам и станам С.-Петербургской губернииСписки населённых мест Российской Империи, составленные и издаваемые центральным статистическим комитетом министерства внутренних дел. XXXVII. Санкт-Петербургская губерния. По состоянию на 1862 год. СПб. 1864. С. 203Материалы по статистике народного хозяйства в С.-Петербургской губернии. Вып. IX. Частновладельческое хозяйство в Ямбургском уезде. СПб, 1888, С. 146, С. 2, 7, 54Положение о гербе муниципального образования Курское сельское поселениеСправочник истории административно-территориального деления Ленинградской области.Топографическая карта Ленинградской области, квадрат О-35-23-В (Хотыницы), 1930 г.АрхивированоАдминистративно-территориальное деление Ленинградской области. — Л., 1933, С. 27, 198АрхивированоАдминистративно-экономический справочник по Ленинградской области. — Л., 1936, с. 219АрхивированоАдминистративно-территориальное деление Ленинградской области. — Л., 1966, с. 175АрхивированоАдминистративно-территориальное деление Ленинградской области. — Лениздат, 1973, С. 180АрхивированоАдминистративно-территориальное деление Ленинградской области. — Лениздат, 1990, ISBN 5-289-00612-5, С. 38АрхивированоАдминистративно-территориальное деление Ленинградской области. — СПб., 2007, с. 60АрхивированоКоряков Юрий База данных «Этно-языковой состав населённых пунктов России». Ленинградская область.Административно-территориальное деление Ленинградской области. — СПб, 1997, ISBN 5-86153-055-6, С. 41АрхивированоКультовый комплекс Старые Смолеговицы // Электронная энциклопедия ЭрмитажаПроблемы выявления, изучения и сохранения культовых комплексов с каменными крестами: по материалам работ 2016-2017 гг. в Ленинградской области