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

    Using LG G3 as 4G NDIS device ak USB Tethering

    Scheduled Pinned Locked Moved General pfSense Questions
    5 Posts 4 Posters 510 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.
    • I
      itvend
      last edited by itvend

      Can this device used as ndis network controler ? And do i need to modeswitch, and how ?

      usbconfig -d ugen4.3
      ugen4.3: <LG Electronics Inc. LGE Android Phone> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
      
      usbconfig -d ugen4.3  dump_all_config_desc
      ugen4.3: <LG Electronics Inc. LGE Android Phone> at usbus4, cfg=0 md=HOST spd=HIGH (480Mbps) pwr=ON (500mA)
      
      
       Configuration index 0
      
          bLength = 0x0009
          bDescriptorType = 0x0002
          wTotalLength = 0x00bb
          bNumInterfaces = 0x0006
          bConfigurationValue = 0x0001
          iConfiguration = 0x0000  <no string>
          bmAttributes = 0x0080
          bMaxPower = 0x00fa
      
          Additional Descriptor
      
          bLength = 0x08
          bDescriptorType = 0x0b
          bDescriptorSubType = 0x00
           RAW dump:
           0x00 | 0x08, 0x0b, 0x00, 0x02, 0xe0, 0x01, 0x03, 0x0c
      
      
          Interface 0
            bLength = 0x0009
            bDescriptorType = 0x0004
            bInterfaceNumber = 0x0000
            bAlternateSetting = 0x0000
            bNumEndpoints = 0x0001
            bInterfaceClass = 0x00e0  <Wireless controller>
            bInterfaceSubClass = 0x0001
            bInterfaceProtocol = 0x0003
            iInterface = 0x000a  <RNDIS Communications Control>
      
            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
      
      
           Endpoint 0
              bLength = 0x0007
              bDescriptorType = 0x0005
              bEndpointAddress = 0x0082  <IN>
              bmAttributes = 0x0003  <INTERRUPT>
              wMaxPacketSize = 0x0008
              bInterval = 0x0009
              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 = 0x000b  <RNDIS Ethernet Data>
      
           Endpoint 0
              bLength = 0x0007
              bDescriptorType = 0x0005
              bEndpointAddress = 0x0081  <IN>
              bmAttributes = 0x0002  <BULK>
              wMaxPacketSize = 0x0200
              bInterval = 0x0000
              bRefresh = 0x0000
              bSynchAddress = 0x0000
      
           Endpoint 1
              bLength = 0x0007
              bDescriptorType = 0x0005
              bEndpointAddress = 0x0001  <OUT>
              bmAttributes = 0x0002  <BULK>
              wMaxPacketSize = 0x0200
              bInterval = 0x0000
              bRefresh = 0x0000
              bSynchAddress = 0x0000
      
            Additional Descriptor
      
            bLength = 0x08
            bDescriptorType = 0x0b
            bDescriptorSubType = 0x02
             RAW dump:
             0x00 | 0x08, 0x0b, 0x02, 0x02, 0x02, 0x02, 0x01, 0x09
      
      
      
          Interface 2
            bLength = 0x0009
            bDescriptorType = 0x0004
            bInterfaceNumber = 0x0002
            bAlternateSetting = 0x0000
            bNumEndpoints = 0x0001
            bInterfaceClass = 0x00ff  <Vendor specific>
            bInterfaceSubClass = 0x0002
            bInterfaceProtocol = 0x0001
            iInterface = 0x0007  <CDC Abstract Control Model (ACM)>
      
            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, 0x03
      
      
            Additional Descriptor
      
            bLength = 0x04
            bDescriptorType = 0x24
            bDescriptorSubType = 0x02
             RAW dump:
             0x00 | 0x04, 0x24, 0x02, 0x02
      
      
            Additional Descriptor
      
            bLength = 0x05
            bDescriptorType = 0x24
            bDescriptorSubType = 0x06
             RAW dump:
             0x00 | 0x05, 0x24, 0x06, 0x02, 0x03
      
      
           Endpoint 0
              bLength = 0x0007
              bDescriptorType = 0x0005
              bEndpointAddress = 0x0084  <IN>
              bmAttributes = 0x0003  <INTERRUPT>
              wMaxPacketSize = 0x0040
              bInterval = 0x0009
              bRefresh = 0x0000
              bSynchAddress = 0x0000
      
      
          Interface 3
            bLength = 0x0009
            bDescriptorType = 0x0004
            bInterfaceNumber = 0x0003
            bAlternateSetting = 0x0000
            bNumEndpoints = 0x0002
            bInterfaceClass = 0x000a  <CDC-data>
            bInterfaceSubClass = 0x0000
            bInterfaceProtocol = 0x0000
            iInterface = 0x0008  <CDC ACM Data>
      
           Endpoint 0
              bLength = 0x0007
              bDescriptorType = 0x0005
              bEndpointAddress = 0x0083  <IN>
              bmAttributes = 0x0002  <BULK>
              wMaxPacketSize = 0x0200
              bInterval = 0x0000
              bRefresh = 0x0000
              bSynchAddress = 0x0000
      
           Endpoint 1
              bLength = 0x0007
              bDescriptorType = 0x0005
              bEndpointAddress = 0x0002  <OUT>
              bmAttributes = 0x0002  <BULK>
              wMaxPacketSize = 0x0200
              bInterval = 0x0000
              bRefresh = 0x0000
              bSynchAddress = 0x0000
      
      
          Interface 4
            bLength = 0x0009
            bDescriptorType = 0x0004
            bInterfaceNumber = 0x0004
            bAlternateSetting = 0x0000
            bNumEndpoints = 0x0002
            bInterfaceClass = 0x00ff  <Vendor specific>
            bInterfaceSubClass = 0x00ff
            bInterfaceProtocol = 0x00ff
            iInterface = 0x0000  <no string>
      
           Endpoint 0
              bLength = 0x0007
              bDescriptorType = 0x0005
              bEndpointAddress = 0x0085  <IN>
              bmAttributes = 0x0002  <BULK>
              wMaxPacketSize = 0x0200
              bInterval = 0x0000
              bRefresh = 0x0000
              bSynchAddress = 0x0000
      
           Endpoint 1
              bLength = 0x0007
              bDescriptorType = 0x0005
              bEndpointAddress = 0x0003  <OUT>
              bmAttributes = 0x0002  <BULK>
              wMaxPacketSize = 0x0200
              bInterval = 0x0000
              bRefresh = 0x0000
              bSynchAddress = 0x0000
      
      
          Interface 5
            bLength = 0x0009
            bDescriptorType = 0x0004
            bInterfaceNumber = 0x0005
            bAlternateSetting = 0x0000
            bNumEndpoints = 0x0002
            bInterfaceClass = 0x00ff  <Vendor specific>
            bInterfaceSubClass = 0x0042
            bInterfaceProtocol = 0x0001
            iInterface = 0x0000  <no string>
      
           Endpoint 0
              bLength = 0x0007
              bDescriptorType = 0x0005
              bEndpointAddress = 0x0086  <IN>
              bmAttributes = 0x0002  <BULK>
              wMaxPacketSize = 0x0200
              bInterval = 0x0000
              bRefresh = 0x0000
              bSynchAddress = 0x0000
      
           Endpoint 1
              bLength = 0x0007
              bDescriptorType = 0x0005
              bEndpointAddress = 0x0004  <OUT>
              bmAttributes = 0x0002  <BULK>
              wMaxPacketSize = 0x0200
              bInterval = 0x0000
              bRefresh = 0x0000
              bSynchAddress = 0x0000
      
      1 Reply Last reply Reply Quote 0
      • jimpJ
        jimp Rebel Alliance Developer Netgate
        last edited by

        If it doesn't show up as an interface already (e.g. ue0) then probably not.

        We don't include all of the necessary drivers for tethering: https://redmine.pfsense.org/issues/7467

        Remember: Upvote with the 👍 button for any user/post you find to be helpful, informative, or deserving of recognition!

        Need help fast? Netgate Global Support!

        Do not Chat/PM for help!

        1 Reply Last reply Reply Quote 1
        • I
          itvend
          last edited by

          Thanks for help

          i copied if_urndis.ko from freebsd 11 release 1 ISO to my pfsense /boot/modules and /boot/kernel folder and run command

          kldload if_urndis
          

          ref : https://forums.freebsd.org/threads/if_urndis-ko.61979/

          1 Reply Last reply Reply Quote 0
          • K
            kpa
            last edited by

            Most of the android phones should work that way, you just need to turn on the connection sharing via USB on the phone and the urndis driver will pick it up as an ethernet connection that uses standard DHCP for configuration.

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

              You can load that automatically at boot by including in /boot/loader.conf.local:
              if_urndis_load='yes'

              You will still hit the old issues of failing to boot if that interface is assigned and the phone gets disconnected though.

              Steve

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