How to connect your Blackberry z10 with Sachesi running on openSUSE 13.1

Sachesi and openSUSE’s Qt5 packages

First of all download Sachesi for Linux.

Note For me, the current version 1.3.0 did not work with the Qt5 packages from the openSUSE 13.1 repositories, but 1.2.1 did.

With 1.3.0 the start-up failed with the following error message:

./Sachesi: /lib64/libcrypto.so.1.0.0: no version information available (required by ./Sachesi)
This application failed to start because it could not find or load the Qt platform plugin „xcb“.

Available platform plugins are: linuxfb, minimal, offscreen, xcb.

Reinstalling the application may fix this problem.

I have installed the complete set of Qt5 packages, but that did not change anything. If you search for the „xcb“ and „Qt5“, you will find some articles about that. It looks as a newer build of Qt5 would have fixed it, but I was too lazy to do that.

So I downloaded Sachesi 1.2.1 from the download archive.

In short: The following was only tested with Sachesi 1.2.1 on openSUSE 13.1.

Phone settings

At first Sachesi failed to find the USB device representing the z10 connected to my PC.

After some fiddeling with the settings, the following did the trick.

  1. If not already done, set a deivce password under Settings > Security and Privacy > Device Password > Change Device Password
  2. If enabled, disable the USB Mass Storage mode under Settings > Storage and Access.
  3. Disable the Development Mode under Settings > Security and Privacy
  4. Set the access method to the device’s memory explicitly to MS Windows mode under Settings > Storage and Access. The automatic mode did not work for me.

PC settings

Connect the z10 to your PC via a USB cable.

In the system logs you should see something like the following (Tip: Enter dmesg on the commandline to see the output):

[ 2528.510081] usb 2-2: new high-speed USB device number 7 using xhci_hcd
[ 2528.523906] usb 2-2: New USB device found, idVendor=0fca, idProduct=8012
[ 2528.523912] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2528.523915] usb 2-2: Product: RIM Network Device
[ 2528.523918] usb 2-2: Manufacturer: Research In Motion, Ltd.
[ 2528.523920] usb 2-2: SerialNumber: ???????????????????????????????? < ----- here you should see the S/N of your device [ 2528.544672] usbcore: registered new interface driver cdc_ether [ 2528.552948] rndis_host 2-2:1.0: rndis media connect [ 2528.576139] rndis_host 2-2:1.0 usb0: register 'rndis_host' at usb-0000:00:14.0-2, RNDIS device, 42:6f:??:??:??:?? <----- that is the MAC of your device [ 2528.576194] usbcore: registered new interface driver rndis_host [ 2528.584145] cfg80211: Calling CRDA to update world regulatory domain [ 2528.586039] usbcore: registered new interface driver rndis_wlan [ 2528.586668] cfg80211: World regulatory domain updated: [ 2528.586671] cfg80211: (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp) [ 2528.586673] cfg80211: (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 2528.586676] cfg80211: (2457000 KHz - 2482000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 2528.586677] cfg80211: (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm) [ 2528.586679] cfg80211: (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 2528.586681] cfg80211: (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm) [ 2528.599262] systemd-udevd[27128]: renamed network interface usb0 to enp0s20u2 [ 2529.178247] xhci_queue_intr_tx: 84 callbacks suppressed [ 2529.178661] IPv4: martian source 169.254.77.251 from 169.254.77.249, on dev enp0s20u2 [ 2529.178684] ll header: 00000000: ff ff ff ff ff ff 42 6f 2a ef ea 39 08 00 45 00 ......Bo*..9..E. [ 2529.178693] ll header: 00000010: 00 60 cc 3d 00 00 40 11 be 5e a9 fe 4d f9 a9 fe .`.=..@..^

There are two line, that are of special interest for us. The first one is the one stating a rename of the USB device: renamed network interface usb0 to enp0s20u2.

The second one is the IPv4 martian source log line. It shows the IPv4 address of the device. Sadly this changes everytime I am reconnecting the device.

Now open yast2 as root and configure the network device settings (Network Devices > Network Settings) for the new device called enp0s20u2. The following must be set for that device:

  1. For the device itself DHCP4 only is mandatory; all other modes did not work for me.
  2. The device should only be activated On Hotplug.
  3. Under the non-device specific settings, open the Routing tab and enable the Enable IP Forwarding option. Without that, Sachesi will not be able to communicate with the network the phone’s USB-network device is a member of. At least for me, that was the hidden feature to get things going.

Leave yast2 by applying the above changes.

From the second log line, we now the IPv4 address of the device, so as root enter the following – insert the first IPv4 address shown in your log – on the command line:

ifconfig 169.254.77.251 enp0s20u2 up

Again: You must use the first IPv4 from your log output; the IP address used here is only an example based upon the log shown above.

Now e.g. switch to the Backup tab of Sachesi and enter your phones password in the password fiedl. After a short time, Sachesi should be able to connect to your phone.

What worked for me

With the above method, openSUSE 13.1 (x64) and Sachesi 1.2.1, I have