Welcome!

Welcome to the official BlackBerry Support Community Forums.

This is your resource to discuss support topics with your peers, and learn from each other.

inside custom component

Native Development

Reply
Contributor
Posts: 29
Registered: ‎11-14-2008
My Device: Not Specified

USB interface not working on opensuse 13.1 64 bit

usb_modeswitch -W -v 0x0fca -p 0x8020 -V 0x0fca -P 0x8012 -2 "BlackberryMode=1"
Take all parameters from the command line


 * usb_modeswitch: handle USB devices with multiple modes
 * Version 2.1.0 (C) Josua Dietze 2013
 * Based on libusb1/libusbx

 ! PLEASE REPORT NEW CONFIGURATIONS !

DefaultVendor=  0x0fca
DefaultProduct= 0x8020
TargetVendor=   0x0fca
TargetProduct=  0x8012
MessageContent2="BlackberryMode=1"
NeedResponse=0

Look for target devices ...
  found USB ID 8087:8008
  found USB ID 8087:8000
  found USB ID 0fca:8013
   vendor ID matched
  found USB ID 0409:005a
  found USB ID 4971:1013
  found USB ID 1d6b:0002
  found USB ID 1d6b:0002
  found USB ID 1d6b:0002
  found USB ID 1d6b:0003
  found USB ID 1d6b:0002
  found USB ID 1d6b:0003
  found USB ID 046d:c318
 No devices in target mode or class found
Look for default devices ...
  found USB ID 8087:8008
  found USB ID 8087:8000
  found USB ID 0fca:8013
   vendor ID matched
  found USB ID 0409:005a
  found USB ID 4971:1013
  found USB ID 1d6b:0002
  found USB ID 1d6b:0002
  found USB ID 1d6b:0002
  found USB ID 1d6b:0003
  found USB ID 1d6b:0002
  found USB ID 1d6b:0003
  found USB ID 046d:c318
 No devices in default mode found. Nothing to do. Bye!

 I've manged to get Momentics installed and running on opensuse 13.1 64 bit. But Momentics can't find the Z10 via usb. Reading about usb on smart phones, I learned that the phone attempts to install a driver per the OS. Since linux isn't one of the choices, this puts usb on linux in limbo.

 

I found a program called usb_modeswitch. I included the output of this command at the top of this post. It looks to me as if the z10 is being discovered just fine from the usb_switchmode program and nothing needs to be set. But this does establish at least one program can find the phone.

 

This is the output from lsusb:

lsusb
Bus 001 Device 002: ID 8087:8008 Intel Corp. 
Bus 002 Device 002: ID 8087:8000 Intel Corp. 
Bus 003 Device 014: ID 0fca:8013 Research In Motion, Ltd. 
Bus 003 Device 003: ID 0409:005a NEC Corp. HighSpeed Hub
Bus 006 Device 002: ID 4971:1013 SimpleTech 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 004: ID 046d:c318 Logitech, Inc. Illuminated Keyboard

 Here is the verbose output of lsusb specific to the Z10:

 lsusb -v -s 3:14

Bus 003 Device 014: ID 0fca:8013 Research In Motion, Ltd. 
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            2 Communications
  bDeviceSubClass         6 Ethernet Networking
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0fca Research In Motion, Ltd.
  idProduct          0x8013 
  bcdDevice            2.40
  iManufacturer           1 
  iProduct                2 
  iSerial                 3 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          145
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      6 Ethernet Networking
      bInterfaceProtocol      0 
      iInterface              0 
      CDC Header:
        bcdCDC               1.10
      CDC Union:
        bMasterInterface        0
        bSlaveInterface         1 
      CDC Ethernet:
        iMacAddress                      5 (??)
        bmEthernetStatistics    0x00000000
        wMaxSegmentSize               1514
        wNumberMCFilters            0x0000
        bNumberPowerFilters              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0010  1x 16 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           0
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x07  EP 7 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           8
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      1 
      bInterfaceProtocol    255 
      iInterface              4 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval   

 I have run wireshark and verified Momentics is not talking to the device.

 

Here is the relevant output of ifconfig:

enp0s20u8 Link encap:Ethernet  HWaddr 42:6F:2A:D4:23:F7  
          inet addr:192.254.0.1  Bcast:192.254.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:84 errors:0 dropped:0 overruns:0 frame:0
          TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:17763 (17.3 Kb)  TX bytes:4560 (4.4 Kb)

 I'm running low on diagnotiics!

 

 

 

Developer
Posts: 6,152
Registered: ‎07-05-2012
My Device: Playbook, Dev Alpha C, Z10 LE, Z30
My Carrier: Orange

Re: USB interface not working on opensuse 13.1 64 bit

Use the Momentics Help -> Report BlackBerry Native SDK Bug to report this to BlackBerry.


If you've been helped click on Like Button, if you've been saved buy the app. Smiley Happy

Developer of stokLocker, Sympatico and Super Sentences.
New Developer
Posts: 14
Registered: ‎02-05-2014
My Device: Q10

Re: USB interface not working on opensuse 13.1 64 bit

[ Edited ]

Here is my quick write up for getting USB support.

 

 The devices works and appears as a network device. It looks like your IP isn't correct just from scanning your post.

 

Try setting your IP to 169.254.0.2

 

This short write up is how to connect your device to a linux Machine

1) Enable developer mode:
   To do this goto Settings -> Security and Privacy -> Development Mode
      From here  slide "Use Development Mode" to on
      You will be prompted for your password. If you haven't set up your
      password then enter one.

   You should be able to set an IP address (by default it is 169.254.0.1)

2) Set USB mode to Windows
   Goto Settings -> Storage and Access
     Under "Access to Storage" set the value to "Connect to Windows"

3) Bring up the USB network
   As root add the ifcfg-usb0 to your /etc/sysconfig/network/
      See Appendix A

   As root, bring the device up:
      ifup usb0

4) Test that you can ping the device: ping 169.254.0.1

Sources:
http://devblog.blackberry.com/2013/01/linux-setup-blackberry-10-development/

Appendix A: ifcfg-usb0 10 lines
-------------------------------
BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='169.254.0.2/24'
MTU=''
NAME='RIM Network Device'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='hotplug'
USERCONTROL='no'

EDIT: first post looked like garbage. This cleans it up with formatting.

Contributor
Posts: 29
Registered: ‎11-14-2008
My Device: Not Specified

Re: USB interface not working on opensuse 13.1 64 bit

Actually I now have less connectivety. Can you explain your use of IP address 192.254.0.2? For one thing, my phone only lets me pick for the last digit 1, 5, 9,13 etc.

 

When you say "Try setting your IP to 169.254.0.2", I assume that is on the phone, not my PC.

 

What I did is make the changes you suggested other than using the address 192.254.0.2. I did this through the Yast interface, only because sometimes opensuse gets cranky if certain files are edited directly.

 

I ran into one page where they suggested putting the phone in mac instead of automatic. Often when things aren't working well in linux, people write what they did to get it to work, but not everything they wrote is necessary. I am 100% guilty of that, except I warn people that maybe all my changes weren't needed.

 

In yast, I edited the file in /etc/sysconfig using the aptly named ./etc/sysconfig Editor.  Click on hardware, then network. then usb0. The parameters in ifcfg-usb0 can be edited there.  My file looks similar except for the way the tick marks are handled and my address is 169.254.0.1

BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='169.254.0.1/24'
MTU=''
NAME='RIM Network Device'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='hotplug'
USERCONTROL='no'
NETMASK=''

 the ifup command can also be started in yast in the services manager. Look for network@usb0 .

This yields a useful  (well to somebody) error message.

network@usb0.service - ifup managed network interface usb0
   Loaded: loaded (/usr/lib/systemd/system/network@.service; static)
   Active: failed (Result: exit-code) since Wed 2014-02-05 22:34:59 PST; 2min 57s ago
  Process: 16238 ExecStart=/sbin/ifup %i (code=exited, status=7)

Feb 05 22:34:59 linux-wh01 systemd[1]: Starting ifup managed network interface usb0...
Feb 05 22:34:59 linux-wh01 ifup[16238]: Interface usb0 is not available
Feb 05 22:34:59 linux-wh01 systemd[1]: network@usb0.service: control process exited, code=exited status=7
Feb 05 22:34:59 linux-wh01 systemd[1]: Failed to start ifup managed network interface usb0.
Feb 05 22:34:59 linux-wh01 systemd[1]: Unit network@usb0.service entered failed state.

 You can also do this old school with the ifup usb0  command line.

# ifup usb0
Job for network@usb0.service failed. See 'systemctl status network@usb0.service' and 'journalctl -xn' for details.

 # systemctl status network@usb0.service
network@usb0.service - ifup managed network interface usb0
   Loaded: loaded (/usr/lib/systemd/system/network@.service; static)
   Active: failed (Result: exit-code) since Wed 2014-02-05 22:40:16 PST; 38s ago
  Process: 16682 ExecStart=/sbin/ifup %i (code=exited, status=7)

Feb 05 22:40:16 linux-wh01 systemd[1]: Starting ifup managed network interface usb0...
Feb 05 22:40:16 linux-wh01 ifup[16682]: Interface usb0 is not available
Feb 05 22:40:16 linux-wh01 systemd[1]: network@usb0.service: control process exited, code=exited status=7
Feb 05 22:40:16 linux-wh01 systemd[1]: Failed to start ifup managed network interface usb0.
Feb 05 22:40:16 linux-wh01 systemd[1]: Unit network@usb0.service entered failed state.

 Now I'm running ifup as root and of course yast works the same way. Perhaps I need to chown something to the user account. I'll post this message, then follow up by connecting the Z10 to the PC while logged in as root.

 

 

 

Highlighted
Contributor
Posts: 29
Registered: ‎11-14-2008
My Device: Not Specified

Re: USB interface not working on opensuse 13.1 64 bit

Plugging in the phone as root didn't make a different. BTW, here is another diagonstic.

 # journalctl -xn
-- Logs begin at Wed 2014-02-05 22:00:28 PST, end at Wed 2014-02-05 22:45:01 PST. --
Feb 05 22:41:46 linux-wh01 systemd[1]: Job sys-subsystem-net-devices-usb0.device/start timed out.
Feb 05 22:41:46 linux-wh01 systemd[1]: Timed out waiting for device sys-subsystem-net-devices-usb0.device.
-- Subject: Unit sys-subsystem-net-devices-usb0.device has failed
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- Documentation: http://www.freedesktop.org/wiki/Software/systemd/catalog/be02cf6855d2428ba40df7e9d022f03d
-- 
-- Unit sys-subsystem-net-devices-usb0.device has failed.
-- 
-- The result is timeout.
Feb 05 22:43:57 linux-wh01 systemd[1]: [/usr/lib/systemd/system/klog.service:26] Unknown lvalue 'Names' in section 'Unit'
Feb 05 22:43:57 linux-wh01 systemd[1]: [/usr/lib/systemd/system/radvd.service:6] Unknown lvalue 'EnvironmentFile-' in section 'Service'
Feb 05 22:43:57 linux-wh01 systemd[1]: [/usr/lib/systemd/system/rtkit-daemon.service:32] Unknown lvalue 'ControlGroup' in section 'Servi
Feb 05 22:45:01 linux-wh01 /usr/sbin/cron[17008]: pam_unix(crond:session): session opened for user root by (uid=0)
Feb 05 22:45:01 linux-wh01 systemd[1]: Starting Session 4 of user root.
-- Subject: Unit session-4.scope has begun with start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit session-4.scope has begun starting up.
Feb 05 22:45:01 linux-wh01 systemd[1]: Started Session 4 of user root.
-- Subject: Unit session-4.scope has finished start-up
-- Defined-By: systemd
-- Support: http://lists.freedesktop.org/mailman/listinfo/systemd-devel
-- 
-- Unit session-4.scope has finished starting up.
-- 
-- The start-up result is done.

 I'm not a linux guru, but I really never got why systed was supposed to be better than init. All I know is I often have trouble with it. Much like Pulse Audio, a program wiich coincidentally shares the same author. At least in opensuse you can turn off pulse audio. You really need systemd.

 

 

 

Contributor
Posts: 29
Registered: ‎11-14-2008
My Device: Not Specified

Re: USB interface not working on opensuse 13.1 64 bit

It occurred to me that dmesg might provide some clues.

[ 5173.952847] usb 3-8: new high-speed USB device number 8 using xhci_hcd
[ 5173.966531] usb 3-8: New USB device found, idVendor=0fca, idProduct=8012
[ 5173.966541] usb 3-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 5173.966546] usb 3-8: Product: RIM Network Device
[ 5173.966550] usb 3-8: Manufacturer: Research In Motion, Ltd.
[ 5173.966554] usb 3-8: SerialNumber: "deleted"
[ 5173.975464] rndis_host 3-8:1.0: rndis media connect
[ 5173.998220] rndis_host 3-8:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-8, RNDIS device, "deleted"
[ 5174.026987] systemd-udevd[18834]: renamed network interface usb0 to enp0s20u8

 Note the last line. In the past I have set up the interface  enp0s20u8, but I have the device disabled. When I could ping the port, it was when I had set up networking to  enp0s20u8.

Also note the vendor and product code. Using the reference text from the page usb_modeswitch page:

http://www.draisberghof.de/usb_modeswitch/device_reference.txt/

# BlackBerry Q10 and Z10
#
# Contributor: Daniel Mende

DefaultVendor= 0x0fca
DefaultProduct=0x8020

TargetVendor=  0x0fca
TargetProduct= 0x8012

BlackberryMode=1

 It looks like the usb_modeswitch is working.

 

New Developer
Posts: 14
Registered: ‎02-05-2014
My Device: Q10

Re: USB interface not working on opensuse 13.1 64 bit


gariac wrote:

Actually I now have less connectivity. Can you explain your use of IP address 192.254.0.2? For one thing, my phone only lets me pick for the last digit 1, 5, 9,13 etc.

 

When you say "Try setting your IP to 169.254.0.2", I assume that is on the phone, not my PC.

 

 


168.254.0.2 should be on your computer, NOT phone.

 

I got that IP Address from:

 

Settings -> Security and Privacy -> Development Mode -> Development IP Address

 

On my phone it defaults to 168.254.0.1 so I picked an address on the same network.

 


gariac wrote:

What I did is make the changes you suggested other than using the address 192.254.0.2. I did this through the Yast interface, only because sometimes opensuse gets cranky if certain files are edited directly.

 

I ran into one page where they suggested putting the phone in mac instead of automatic. Often when things aren't working well in linux, people write what they did to get it to work, but not everything they wrote is necessary. I am 100% guilty of that, except I warn people that maybe all my changes weren't needed.

 

 




192.254.0.0/20 belongs to Group Health Cooperative so that won't get you too far Smiley Happy

 

Did you try it set to Windows like I recommended above?

 

I've been working on 12.3; I have a 13.1 device available so I'll give that a shot and respond to your lower post.

New Developer
Posts: 14
Registered: ‎02-05-2014
My Device: Q10

Re: USB interface not working on opensuse 13.1 64 bit


gariac wrote:

Here is the relevant output of ifconfig:

enp0s20u8 Link encap:Ethernet  HWaddr 42:6F:2A:D4:23:F7  
          inet addr:192.254.0.1  Bcast:192.254.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:84 errors:0 dropped:0 overruns:0 frame:0
          TX packets:23 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:17763 (17.3 Kb)  TX bytes:4560 (4.4 Kb)

 


After trying it on OpenSuSE 13.1 x86_64 I can verify that my above method no longer works.

 

I went through YaST and and configured the device to have an IP 169.254.0.2
 and can once again ping the device

New Developer
Posts: 14
Registered: ‎02-05-2014
My Device: Q10

Re: USB interface not working on opensuse 13.1 64 bit


sailorcire wrote:

   After trying it on OpenSuSE 13.1 x86_64 I can verify that my above method no longer works.

I went through YaST and and configured the device to have an IP 169.254.0.2
 and can once again ping the device


For those who want to not use YaST you need to monitor udev and capture some info.


As root run the following:

   udevadm monitor


Then plug in your phone. You should see a line that has something like

KERNEL[time] MOVE /devices/.../net/enp0s29f7u2 (net)


Then your device would be enp0s29f7 (omit the u2).

Contributor
Posts: 29
Registered: ‎11-14-2008
My Device: Not Specified

Re: USB interface not working on opensuse 13.1 64 bit

I got it working. The key was assigning 169.254.0.2 to the computer port.

 

I find it is best to let the much maligned Yast program set things up as much as possible. With that in mind, I put the phone in developer mode. I pluged it into the the computer. Going to yast -> network, it already shows up as a RIM device. The only thing not assigned is the address. For that, I put in 169.254.0.2. There were no services to start up, i.e. yast must have done that for me. Insuring wifi was off, I started Momentics and it found the phone. I didi the setup and it fed the phone another debug token.

 

Now for those that want to set things up by command line, it is just a matter of me reporting back how yast set it up. [Potentially this may be useful information for other distributions since I think only Suse uses the much maligned Yast.]

 

This is /etc/sysconfig/network/ifcfg-enp0s20u8

BOOTPROTO='static'
BROADCAST=''
ETHTOOL_OPTIONS=''
IPADDR='169.254.0.2/24'
MTU=''
NAME='RIM Network Device'
NETWORK=''
REMOTE_IPADDR=''
STARTMODE='hotplug'
USERCONTROL='no'

 On the network page, yast indicates the modules rndis_wlan and rndir_host are used for the port. No options have to be set.

 

The services manager has a funny status. The service for the port is at network@enp0s20u8. It is active but disabled. Hitting start, you get this message:

network@enp0s20u8.service - ifup managed network interface enp0s20u8
   Loaded: loaded (/usr/lib/systemd/system/network@.service; static)
   Active: active (running) since Thu 2014-02-06 18:12:59 PST; 26s ago
  Process: 7325 ExecStart=/sbin/ifup %i (code=exited, status=0/SUCCESS)
 Main PID: 7569 (avahi-autoipd)
   CGroup: /system.slice/system-network.slice/network@enp0s20u8.service
           |-7569 avahi-autoipd: [enp0s20u8] sleeping  
           `-7570 avahi-autoipd: [enp0s20u8] callout dispatche

Feb 06 18:12:58 linux-wh01 systemd[1]: Starting ifup managed network interface enp0s20u8...
Feb 06 18:12:59 linux-wh01 ifup[7325]: enp0s20u8 name: RIM Network Device
Feb 06 18:12:59 linux-wh01 avahi-autoipd(enp0s20u8)[7569]: Found user 'avahi-autoipd' (UID 499) and group 'avahi-autoipd' (GID 499).
Feb 06 18:12:59 linux-wh01 avahi-autoipd(enp0s20u8)[7569]: Successfully called chroot().
Feb 06 18:12:59 linux-wh01 avahi-autoipd(enp0s20u8)[7569]: Successfully dropped root privileges.
Feb 06 18:12:59 linux-wh01 avahi-autoipd(enp0s20u8)[7569]: Starting with address 169.254.9.159
Feb 06 18:12:59 linux-wh01 avahi-autoipd(enp0s20u8)[7569]: Routable address already assigned, sleeping.
Feb 06 18:12:59 linux-wh01 systemd[1]: Started ifup managed network interface enp0s20u8.

From ifconfig:

enp0s20u8 Link encap:Ethernet  HWaddr deleted 
          inet addr:169.254.0.2  Bcast:169.254.0.255  Mask:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:45 errors:19 dropped:0 overruns:0 frame:0
          TX packets:139 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6922 (6.7 Kb)  TX bytes:53061 (51.8 Kb)

 This is the verbose lsusb output.

lsusb -v -s 3:2

Bus 003 Device 002: ID 0fca:8012 Research In Motion, Ltd. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x0fca Research In Motion, Ltd.
  idProduct          0x8012 
  bcdDevice            2.40
  iManufacturer           1 Research In Motion, Ltd.
  iProduct                2 RIM Network Device
  iSerial                 3 deleted
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength          135
    bNumInterfaces          3
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Association:
      bLength                 8
      bDescriptorType        11
      bFirstInterface         0
      bInterfaceCount         2
      bFunctionClass          2 Communications
      bFunctionSubClass       2 Abstract (modem)
      bFunctionProtocol     255 Vendor Specific (MSFT RNDIS?)
      iFunction               0 
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         2 Communications
      bInterfaceSubClass      2 Abstract (modem)
      bInterfaceProtocol    255 Vendor Specific (MSFT RNDIS?)
      iInterface              0 
      CDC Header:
        bcdCDC               10.01
      CDC Call Management:
        bmCapabilities       0x00
        bDataInterface          0
      CDC ACM:
        bmCapabilities       0x00
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x85  EP 5 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               4
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass        10 CDC Data
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x86  EP 6 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x07  EP 7 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        2
      bAlternateSetting       0
      bNumEndpoints           8
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      1 
      bInterfaceProtocol    255 
      iInterface              4 BlackBerry
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x04  EP 4 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      1
Device Status:     0x0000
  (Bus Powered)