Skip to content

Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux

This is how I got a Bluetooth low energy (BLE) adapter to work on a Linux laptop running Ubuntu 12.04.

First, as suggested by several websites, I created the file /etc/modprobe.d/trust-btusb.conf with the following contents:
install usb:v0A5Cp21E8d*dc*dsc*dp*ic*isc*ip* /sbin/modprobe btusb; echo 0a5c 21e8 > /sys/bus/usb/drivers/btusb/new_id

After having restarted the computer and inserted the adapter, dmesg told me the following:
Bluetooth: can't load firmware, may not work correctly

To get the proper firmware, I downloaded the Windows 8 driver (18187_02.exe) from http://www.trust.com/18187. The driver files can be extracted from the .exe with "unrar x 18187_02.exe".

Then I looked for the vendor id (0x0a5c) and product id (0x21e8) in the various .inf files, and found this in 18187_02/Win32/bcbtums-win7x86-brcm.inf:
%BRCM20702.DeviceDesc%=RAMUSB21E8,      USB\VID_0A5C&PID_21E8                                   ; 20702A1 dongles

Further down in the inf file there is a RAMUSB21E8 section which contains the following line:
HKR,,%RAMPatchFileName%,0x00000, "BCM20702A1_001.002.014.0187.0188.hex"

The .hex "RAM Patch" file can be found in 18187_02/Win32/. Before it can be used with btusb, it needs to be converted to hcd format. This can be done with hex2hcd. Finally, the hcd file needs to be moved/copied to /lib/firmware/fw-0a5c_21e8.hcd. Here are the steps to get and compile hex2hcd:
$ git clone https://github.com/jessesung/hex2hcd.git
$ cd hex2hcd/
$ make

The resulting executable can be used to convert the .hex firmware file to .hcd, which is then copied to the right destination:
$ ./hex2hcd BCM20702A1_001.002.014.0187.0188.hex BCM20702A1_001.002.014.0187.0188.hcd
$ sudo cp -p BCM20702A1_001.002.014.0187.0188.hcd /lib/firmware/fw-0a5c_21e8.hcd
$ sudo chown root:root /lib/firmware/fw-0a5c_21e8.hcd

The adapter can now be used:
$ sudo hcitool -i hci1 lescan


Update, 2014-09-08:
  • The first step is no longer necessary with Ubuntu 14.04, I directly receive the "may not work" message.
  • I was able to extract the firmware from 18187_05.exe (latest W8 driver) using this command: "7z x 18187_05.exe"
  • The correct .hex file is BCM20702A1_001.002.014.0449.0515.hex
  • Twitter
  • Bookmark Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux at del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • Digg Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux
  • Mixx Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux
  • Bloglines Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux
  • Technorati Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux
  • Fark this: Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux
  • Bookmark Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux at YahooMyWeb
  • Bookmark Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux at Furl.net
  • Bookmark Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux at reddit.com
  • Bookmark Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux at blinklist.com
  • Bookmark Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux at Spurl.net
  • Bookmark Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux at NewsVine
  • Bookmark Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux at Simpy.com
  • Bookmark Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux at blogmarks
  • Bookmark Getting the Trust 18187 Bluetooth 4.0 USB adapter (0a5c:21e8) to work with Linux with wists
  • wong it!
  • Bookmark using any bookmark manager!
  • Stumble It!
  • Print this article!
  • E-mail this story to a friend!
  • Identi.ca

Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too)

According to the Wikipedia IPv6 article, Privacy extensions are, except for the Windows platform and Mac OS X since 10.7 as well as iOS since version 4.3, not enabled by default.

In theory, one can enable the IPv6 Privacy Extensions on all interfaces at once using sysctl like this:
sudo sysctl net.ipv6.conf.all.use_tempaddr=2

However, this currently doesn't work as expected, so I'm using this one-liner in /etc/rc.local:
for IF in `/bin/ls /proc/sys/net/ipv6/conf/*/use_tempaddr` ; do echo 2 > $IF ; done

This also sets "use_tempaddr" for "default", which means it should also apply to interfaces added to the system afterwards.

A simple check to verify that the new configuration is working: ipv6-test.com will print your MAC address when available...

See also: Linux Kernel Bug 11655

  • Twitter
  • Bookmark Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too) at del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • Digg Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too)
  • Mixx Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too)
  • Bloglines Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too)
  • Technorati Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too)
  • Fark this: Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too)
  • Bookmark Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too) at YahooMyWeb
  • Bookmark Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too) at Furl.net
  • Bookmark Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too) at reddit.com
  • Bookmark Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too) at blinklist.com
  • Bookmark Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too) at Spurl.net
  • Bookmark Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too) at NewsVine
  • Bookmark Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too) at Simpy.com
  • Bookmark Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too) at blogmarks
  • Bookmark Enabling IPv6 Privacy Extensions on all interfaces (Ubuntu Linux, may work for other distros too) with wists
  • wong it!
  • Bookmark using any bookmark manager!
  • Stumble It!
  • Print this article!
  • E-mail this story to a friend!
  • Identi.ca

Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN)

This is a copy of a post I made to the isdn4linux mailing-list.

The attached patch adds support to mISDN-1_1_9_2 for the Eicon DIVA USB ISDN adapter (071d:1005).

The bits I've added to hfcs_usb.c are from kernel 2.6.31. So far the adapter works fine for me (tested with 1 and 2 concurrent calls to asterisk 1.4.26.1 with chan_misdn).

You can get the patch here: misdn-1.1.9.2-Eicon-Diva-USB.patch.

Comments are set to "moderated" for this entry, please consider whether you should rather post to the list.
  • Twitter
  • Bookmark Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN) at del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • Digg Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN)
  • Mixx Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN)
  • Bloglines Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN)
  • Technorati Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN)
  • Fark this: Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN)
  • Bookmark Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN) at YahooMyWeb
  • Bookmark Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN) at Furl.net
  • Bookmark Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN) at reddit.com
  • Bookmark Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN) at blinklist.com
  • Bookmark Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN) at Spurl.net
  • Bookmark Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN) at NewsVine
  • Bookmark Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN) at Simpy.com
  • Bookmark Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN) at blogmarks
  • Bookmark Patch for mISDN-1_1_9_2 to support the Eicon DIVA USB ISDN adapter (071d:1005 mISDN) with wists
  • wong it!
  • Bookmark using any bookmark manager!
  • Stumble It!
  • Print this article!
  • E-mail this story to a friend!
  • Identi.ca

Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch)

This is a copy of a post I made to the isdn4linux mailing-list.

In the latest kernel, char bus_id[20] has been removed from struct device. To read or set the device name, dev_name(device) resp. dev_set_name(device) have to be used instead. The attached patch does exactly that. It allows me to run mISDN-1_1_9_2 with kernel 2.6.30.5, with no problem so far. My understanding is that dev_name and dev_set_name have been introduced in 2.6.27.x, hence the check for >= 2.6.28. I haven't tested the patch with kernels older than 2.6.30.5 though.

You can get the patch here: misdn-1.1.9.2-no-bus_id.patch.

Comments are set to "moderated" for this entry, please consider whether you should rather post to the list.
  • Twitter
  • Bookmark Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch) at del.icio.us
  • Facebook
  • Google Bookmarks
  • FriendFeed
  • Digg Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch)
  • Mixx Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch)
  • Bloglines Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch)
  • Technorati Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch)
  • Fark this: Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch)
  • Bookmark Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch) at YahooMyWeb
  • Bookmark Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch) at Furl.net
  • Bookmark Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch) at reddit.com
  • Bookmark Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch) at blinklist.com
  • Bookmark Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch) at Spurl.net
  • Bookmark Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch) at NewsVine
  • Bookmark Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch) at Simpy.com
  • Bookmark Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch) at blogmarks
  • Bookmark Patch for mISDN-1_1_9_2 and kernel 2.6.30 (mISDN 1.1 no bus_id patch) with wists
  • wong it!
  • Bookmark using any bookmark manager!
  • Stumble It!
  • Print this article!
  • E-mail this story to a friend!
  • Identi.ca