Busware CC1101-USB-Lite (CUL) Stick am UDOO betreiben

Zur Steuerung von FS20-Bauteilen via FHEM, wollte ich diese Woche einen Busware CC1101-USB-Lite (CUL) Stick am UDOO Board installieren. Leider ist das Linaro Ubuntu 12.04 LTS sehr abgespeckt und es fehlt der cdc_acm Treiber. Der Stick wird somit nicht als /dev/ttyACM0 geladen.

Nach einiger Recherche musste ich leider rausfinden, dass der wohl einzige Weg über die Erstellung eines neuen Kernels führt.

Hier eine kurze Anleitung, welche Schritte hierzu notwendig waren:

Install some packages

# apt-get install build-essential git libncurses5-dev screen

I had problems with an outdated version of uboot-mkimage, so i build it by myself

# wget ftp://ftp.denx.de/pub/u-boot/u-boot-2013.10.tar.bz2
# bzip2 -d u-boot-2013.10.tar.bz2
# tar xf u-boot-2013.10.tar
# cd u-boot-2013.10
# make -j5 tools
# cp tools/mkimage /usr/local/bin/

Download kernel sources and configure it

# cd /usr/src/
# git clone https://github.com/UDOOboard/Kernel_Unico kernel
# cd kernel
# make ARCH=arm UDOO_defconfig
# make ARCH=arm menuconfig

Enable cdc_acm module in …
Device Driver —> USB support –> USB Modem (CDC ACM) support

# make
# make modules_install
# make install
# make -j5 uImage

Make a backup of the original uImage and install the new version

# mv /boot/uImage /boot/uImage_original
# cp arch/arm/boot/uImage /boot/
# reboot

Check kernel version

# uname -r

Should print something like this 3.0.35-g1b8cd57

Load cdc_acm module

# modprobe cdc_acm

Check CUL USB stick

# screen /dev/ttyACM0

Type in V and ENTER should print stick version: V 1.55 CUL868

Optional:
You can load the cdc_acm module automatically by adding cdc_acm to /etc/module

# vim /etc/modules

Helpful links

6 Comments

  1. Great instructions. I’m having the same problem. One quick question…

    When I run „make -j5 tools“ (on the updated download from ftp://ftp.denx.de/pub/u-boot/u-boot-2014.04.tar.bz2) to build the u-boot tools, it says:
    „Makefile:479: *** ‚System not configured – see README‘. Stop.“
    I think I need to tell it that the board is udoo (which is listed in board folder), but I can’t decipher the README instructions regarding how you specify the board. Do you know how to make this part work?

    Maschine ins Deutsche übersetzt:
    Wenn ich „make-j5 tools“ (auf der aktualisierten Download ftp://ftp.denx.de/pub/u-boot/u-boot-2014.04.tar.bz2), um die U-Boot-Werkzeuge zu bauen, es sagt:
    „Makefile: 479: *** ‚System nicht konfiguriert – siehe README“ Schluss. „.
    Ich denke, ich muss es sagen, dass das Board ist udoo (die in Platte Ordner aufgeführt ist), aber ich kann es nicht entziffern die README-Anweisungen darüber, wie Sie die Baugruppe fest. Wissen Sie, wie man diesen Teil der Arbeit zu machen?

  2. I found a workaround for the same issue that Jeremy noted.

    I instead clone from a UDOO repo and then copy an existing mkimage file.

    # git clone https://github.com/UDOOboard/U-Boot_Unico-2013
    # sudo cp U-Boot_Unico-2013/tools/mkimage /usr/local/bin

    I was then able to complete the last make step and reboot. Seems I’ve got to dig some more, as the device I’m using that needs cdc_acm (a USB2AX) still isn’t showing up as a ttyACM0 device.

    Nonetheless, vielen Dank!

  3. I must have gotten confused the first time I did this. (Unsurprisingly) The mkimage binary does not come with the repository. I in fact had to do

    # make tools

    After cloning the U-Boot_Unico-2013 repository.

  4. Hello,

    I am using Ros 13.04 on UDOO. I have followed all the steps listed above but still unable to access my laser sensor, getting the same error „/dev/ttyACM0 no such file or directory exists“. Is it possible for me to manually assign an ACM port to this device by configuring udev rules?. I have looked everywhere online but to no avail. Any help would be appreciated.

Schreibe einen Kommentar.