Novacom for Fedora

Novacom is a utility that allows you to connect to a WebOS device via it’s USB cable. It’s used by the WebOS Quick Installer and can also give you direct terminal access to the device’s OS. In many ways it’s is comparable to using adb with Android devices.

The one major technical problem novacom has had is that it only worked with libusb-0.x and did not work with libusb-compat. This meant that, to use novacom on Fedora 15+, you had to download Fedora 14’s libusb and do some funky library overrides. Since novacom was closed-source, there was no way for us to actually fix the problem.

Last week, HP open sourced novacom, and yesterday, I started looking into package novacom for Fedora. It turns out that the novacom daemon was using libusb to initialize the USB device, but was doing the actual reading and writing using a home-grown implementation. This implementation depended on some private information from libusb that, oddly enough, was completely different (and, as far as I could see, completely unavailable) in libusb-compat.

I wrote a patch to change novacom so it used the stock libusb read and write functions, and it now works perfectly with both the old libusb and the new libusb-compat. Yay!

I’ve created bugs 809114 and 809116 for the package reviews, and I’ve already got someone to review them (Thanks Mohamed!).

So, in the not so distant future, installing novacom on Fedora should be as easy as “yum install novacom”.

Advertisements

3 thoughts on “Novacom for Fedora

  1. lyonel

    You may want to add a systemd unit file for novacomd (/lib/systemd/system/novacomd.service):

    [Unit]
    Description=Novacom daemon for WebOS devices
    After=syslog.target

    [Service]
    Type=simple
    ExecStart=/usr/bin/novacomd

    [Install]
    WantedBy=multi-user.target

    You can then use:
    $ service novacomd enable
    $ service novacomd start
    $ service novacomd stop

    etc.

    Reply

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s