Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Netgate Device ID changing on power loss

    Scheduled Pinned Locked Moved Hardware
    25 Posts 5 Posters 1.8k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • stephenw10S
      stephenw10 Netgate Administrator @n1ck31
      last edited by

      You should disable the on-board audio, though I doubt it's connected to this issue:

      hdacc0: <ATI R6xx HDA CODEC> at cad 0 on hdac0
      hdaa0: <ATI R6xx Audio Function Group> at nid 1 on hdacc0
      pcm0: <ATI R6xx (HDMI)> at nid 3 on hdaa0
      pcm1: <ATI R6xx (HDMI)> at nid 5 on hdaa0
      pcm2: <ATI R6xx (HDMI)> at nid 7 on hdaa0
      pcm3: <ATI R6xx (HDMI)> at nid 9 on hdaa0
      

      Ok the actual driver attachment looks to have happened after the bootlog completes but it should be in the main system log.

      Yes, you could disable the usbus or root device completely but it would be better to disable just the Ethernet device if you can.

      N 1 Reply Last reply Reply Quote 0
      • stephenw10S
        stephenw10 Netgate Administrator
        last edited by

        Try running: usbconfig -d ugen0.3 dump_all_config_desc

        It looks like it has more than one config index, in which case we can force the other one which may make it fail to load.

        1 Reply Last reply Reply Quote 0
        • N
          n1ck31 @stephenw10
          last edited by

          @stephenw10 said in Netgate Device ID changing on power loss:

          You should disable the on-board audio, though I doubt it's connected to this issue:

          hdacc0: <ATI R6xx HDA CODEC> at cad 0 on hdac0
          hdaa0: <ATI R6xx Audio Function Group> at nid 1 on hdacc0
          pcm0: <ATI R6xx (HDMI)> at nid 3 on hdaa0
          pcm1: <ATI R6xx (HDMI)> at nid 5 on hdaa0
          pcm2: <ATI R6xx (HDMI)> at nid 7 on hdaa0
          pcm3: <ATI R6xx (HDMI)> at nid 9 on hdaa0
          

          Ok the actual driver attachment looks to have happened after the bootlog completes but it should be in the main system log.

          Yes, you could disable the usbus or root device completely but it would be better to disable just the Ethernet device if you can.

          I'll look into disabling the audio, agreed, makes no sense having that on.

          Here's the output of the command in your second comment:

          /root: usbconfig -d ugen0.3 dump_all_con                                                                                                                                                fig_desc
          ugen0.3: <American Megatrends Inc. Virtual Ethernet> at usbus0, cfg=0 md=HOST sp                                                                                                                                                d=HIGH (480Mbps) pwr=ON (0mA)
          
          
           Configuration index 0
          
              bLength = 0x0009
              bDescriptorType = 0x0002
              wTotalLength = 0x0050
              bNumInterfaces = 0x0002
              bConfigurationValue = 0x0001
              iConfiguration = 0x0000  <no string>
              bmAttributes = 0x00c0
              bMaxPower = 0x0000
          
              Interface 0
                bLength = 0x0009
                bDescriptorType = 0x0004
                bInterfaceNumber = 0x0000
                bAlternateSetting = 0x0000
                bNumEndpoints = 0x0001
                bInterfaceClass = 0x0002  <Communication device>
                bInterfaceSubClass = 0x0002
                bInterfaceProtocol = 0x00ff
                iInterface = 0x0004  <RNDIS Notification Interface>
          
                Additional Descriptor
          
                bLength = 0x05
                bDescriptorType = 0x24
                bDescriptorSubType = 0x00
                 RAW dump:
                 0x00 | 0x05, 0x24, 0x00, 0x10, 0x01
          
          
                Additional Descriptor
          
                bLength = 0x05
                bDescriptorType = 0x24
                bDescriptorSubType = 0x01
                 RAW dump:
                 0x00 | 0x05, 0x24, 0x01, 0x00, 0x01
          
          
                Additional Descriptor
          
                bLength = 0x04
                bDescriptorType = 0x24
                bDescriptorSubType = 0x02
                 RAW dump:
                 0x00 | 0x04, 0x24, 0x02, 0x00
          
          
                Additional Descriptor
          
                bLength = 0x05
                bDescriptorType = 0x24
                bDescriptorSubType = 0x06
                 RAW dump:
                 0x00 | 0x05, 0x24, 0x06, 0x00, 0x01
          
          
                Additional Descriptor
          
                bLength = 0x0d
                bDescriptorType = 0x24
                bDescriptorSubType = 0x0f
                 RAW dump:
                 0x00 | 0x0d, 0x24, 0x0f, 0x05, 0x00, 0x00, 0x00, 0x00,
                 0x08 | 0xea, 0x05, 0x00, 0x00, 0x00
          
          
               Endpoint 0
                  bLength = 0x0007
                  bDescriptorType = 0x0005
                  bEndpointAddress = 0x0081  <IN>
                  bmAttributes = 0x0003  <INTERRUPT>
                  wMaxPacketSize = 0x0400
                  bInterval = 0x0001
                  bRefresh = 0x0000
                  bSynchAddress = 0x0000
          
          
              Interface 1
                bLength = 0x0009
                bDescriptorType = 0x0004
                bInterfaceNumber = 0x0001
                bAlternateSetting = 0x0000
                bNumEndpoints = 0x0002
                bInterfaceClass = 0x000a  <CDC-data>
                bInterfaceSubClass = 0x0000
                bInterfaceProtocol = 0x0000
                iInterface = 0x0006  <RNDIS Data Interface>
          
               Endpoint 0
                  bLength = 0x0007
                  bDescriptorType = 0x0005
                  bEndpointAddress = 0x0002  <OUT>
                  bmAttributes = 0x0002  <BULK>
                  wMaxPacketSize = 0x0200
                  bInterval = 0x0000
                  bRefresh = 0x0000
                  bSynchAddress = 0x0000
          
               Endpoint 1
                  bLength = 0x0007
                  bDescriptorType = 0x0005
                  bEndpointAddress = 0x0083  <IN>
                  bmAttributes = 0x0002  <BULK>
                  wMaxPacketSize = 0x0200
                  bInterval = 0x0000
                  bRefresh = 0x0000
                  bSynchAddress = 0x0000
          
          
          
           Configuration index 1
          
              bLength = 0x0009
              bDescriptorType = 0x0002
              wTotalLength = 0x0050
              bNumInterfaces = 0x0002
              bConfigurationValue = 0x0002
              iConfiguration = 0x0000  <no string>
              bmAttributes = 0x00c0
              bMaxPower = 0x0000
          
              Interface 0
                bLength = 0x0009
                bDescriptorType = 0x0004
                bInterfaceNumber = 0x0000
                bAlternateSetting = 0x0000
                bNumEndpoints = 0x0001
                bInterfaceClass = 0x0002  <Communication device>
                bInterfaceSubClass = 0x0006
                bInterfaceProtocol = 0x0000
                iInterface = 0x0007  <CDC Notification Interface>
          
                Additional Descriptor
          
                bLength = 0x05
                bDescriptorType = 0x24
                bDescriptorSubType = 0x00
                 RAW dump:
                 0x00 | 0x05, 0x24, 0x00, 0x10, 0x01
          
          
                Additional Descriptor
          
                bLength = 0x05
                bDescriptorType = 0x24
                bDescriptorSubType = 0x01
                 RAW dump:
                 0x00 | 0x05, 0x24, 0x01, 0x00, 0x01
          
          
                Additional Descriptor
          
                bLength = 0x04
                bDescriptorType = 0x24
                bDescriptorSubType = 0x02
                 RAW dump:
                 0x00 | 0x04, 0x24, 0x02, 0x00
          
          
                Additional Descriptor
          
                bLength = 0x05
                bDescriptorType = 0x24
                bDescriptorSubType = 0x06
                 RAW dump:
                 0x00 | 0x05, 0x24, 0x06, 0x00, 0x01
          
          
                Additional Descriptor
          
                bLength = 0x0d
                bDescriptorType = 0x24
                bDescriptorSubType = 0x0f
                 RAW dump:
                 0x00 | 0x0d, 0x24, 0x0f, 0x08, 0x00, 0x00, 0x00, 0x00,
                 0x08 | 0xea, 0x05, 0x00, 0x00, 0x00
          
          
               Endpoint 0
                  bLength = 0x0007
                  bDescriptorType = 0x0005
                  bEndpointAddress = 0x0081  <IN>
                  bmAttributes = 0x0003  <INTERRUPT>
                  wMaxPacketSize = 0x0400
                  bInterval = 0x0001
                  bRefresh = 0x0000
                  bSynchAddress = 0x0000
          
          
              Interface 1
                bLength = 0x0009
                bDescriptorType = 0x0004
                bInterfaceNumber = 0x0001
                bAlternateSetting = 0x0000
                bNumEndpoints = 0x0002
                bInterfaceClass = 0x000a  <CDC-data>
                bInterfaceSubClass = 0x0000
                bInterfaceProtocol = 0x0000
                iInterface = 0x0009  <CDC Data Interface>
          
               Endpoint 0
                  bLength = 0x0007
                  bDescriptorType = 0x0005
                  bEndpointAddress = 0x0002  <OUT>
                  bmAttributes = 0x0002  <BULK>
                  wMaxPacketSize = 0x0200
                  bInterval = 0x0000
                  bRefresh = 0x0000
                  bSynchAddress = 0x0000
          
               Endpoint 1
                  bLength = 0x0007
                  bDescriptorType = 0x0005
                  bEndpointAddress = 0x0083  <IN>
                  bmAttributes = 0x0002  <BULK>
                  wMaxPacketSize = 0x0200
                  bInterval = 0x0000
                  bRefresh = 0x0000
                  bSynchAddress = 0x0000
          
          
          1 Reply Last reply Reply Quote 0
          • stephenw10S
            stephenw10 Netgate Administrator
            last edited by

            Hmm, both indexs include CDC data which will likely be the ue0 device. The logs just after boot should confirm that showing cdce though.

            It feels like it should be possible to add a USB quirk to just stop that loading but I don't see an option for that:
            https://man.freebsd.org/cgi/man.cgi?query=usb_quirk

            Otherwise disabling cdce0 or the USB bus or controller should be possible.

            1 Reply Last reply Reply Quote 0
            • w0wW
              w0w
              last edited by

              I have an older ASRock Rack motherboard, and I also had my share of struggles with their BMC port sharing. On this motherboard, from what I found in my research, this virtual AMD port appears when instead of using a dedicated BMC port, you share this port for other purposes, or when you only have one cable connected to a certain port.

              As far as I understand and remember, the settings for this behavior are not in the BIOS but in the BMC’s web interface. In the Configuration section, there should be several options for network, link configuration, and choosing between shared or dedicated. One of these options should disable this virtual interface, but I’m not entirely sure. The motherboard manual might provide more detailed descriptions of the BMC settings, but on my board, these settings are quite confusing, and the manual doesn’t cover all of them.

              Overall, I had a similar idea—to have access to both the BIOS and everything else. But as usual, since their BMC relies on Java, which can’t be updated, it’s impossible to use their applets because the board is no longer supported. In the end, I connected a PiKVM to this board.

              For anyone considering purchasing an ASRock Rack, I highly advise against it if you plan to use the board longer than its support period (typically 2-3 years), as the BMC might "turn into a pumpkin" after that.

              1 Reply Last reply Reply Quote 0
              • First post
                Last post
              Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.