A year ago, I brought a Enttec Pro USB/DMX widget. Since then, a new firmware was released. If it doesn’t fix any critical bug to me, I still have to upgrade it (don’t mind asking why…
). And to make things fun (read “dangerous”), I choose to do it with Qemu.
This article explains how I upgraded the firmware of my Enttec DMX/USB widget under linux thanks to Qemu.
First, plug your device in one of your computer’s USB port. We need to get the hardware UID of the widget. We can do so as root in a linux terminal:
cat /proc/bus/usb/devices
This command output a big mess in which you should find a block of lines separated by two blank lines (one above and one below) corresponding to your USB device. It’s easy to spot, as it contain the ENTTEC string. Mine look like this:
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 2 Spd=12 MxCh= 0 D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1 P: Vendor=0403 ProdID=6001 Rev= 6.00 S: Manufacturer=ENTTEC S: Product=DMX USB PRO S: SerialNumber=ENQXXXXX C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=300mA I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=ftdi_sio E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
What we are looking for is the vendor’s ID and the product’s ID, that’s all Qemu needs to talk to the device. This is found on the line starting with P:. For me:
- Vendor ID:
0403 - Products ID:
6001
With this information, we can launch Qemu and bind it to the device. Assuming you already have a Qemu image containing a working version of windows XP, the command looks like this:
qemu -m 512 -usb -usbdevice host:0403:6001 -hda ./qemu-win-xp-with-freestyler.qcow
Alternatively, you can “hotplug” the USB device once inside Qemu. This can be done by calling the Qemu interactive shell by pressing Ctrl + Alt + 2 simultaneously. Then, to hotplug the USB device, type:
usb_add host:0403:6001
If you’re as unlucky as I am, you’ll get this error message:
Could not add USB device 'host:0403:6001'
Which is doubled by the following message from your legacy console:
/proc/bus/usb/002/002: Permission denied
The latter point to the restrictive access rights on our device, which can be fixed by:
chmod -R a+rw /proc/bus/usb/002/002
Instead, if you get the following error message:
usb_host: device already grabbed
It probably mean that your linux kernel has already identified the device when you plugged in and has loaded some drivers. To unload them and free the device, I had to do:
lsmod rmmod dmx_usb rmmod ftdi_sio
At last, you can check under the emulated Windows that your Enttec widget is recognized by windows:
And finally you’re free to upgrade (at your own risks) your widget’s firmware with the tools available on Enttec’s official website:
FYI, all these operations where performed on a Mandriva 2008.1, Qemu 0.9.0 and linux kernel 2.6.24.



There is a tool for linux that will do this:
Any reason why you didn’t just use the Unified Plone Installer, or the Mac Plone installer, both of which take care of this for you? Just curious.
This comment was originally posted on Coolkevmen
@Alexander: You’re right, my little story need a bit of context.
My goal was to test a big buildout config (the one I use for my current customer) that create a full-featured and heavily-customized Plone. That’s why I wanted to start from a bare Python 2.4 environment.
In the mean time I discovered “fat python”, which saves me time and effort. So I decided to extend my post and include the part showing the Plone setup, as I think Plone deserve a little bit of publicity…
But you are right. From a marketing point of view, it’s bad to advertise this as a good way to install Plone: it add excessive complexity and can unnecessarily afraid newcomers, while there is official out-of-box installers available.
This comment was originally posted on Coolkevmen
Cool, that makes sense — which is why I was curious.
Maybe adding a sentence at the start of your how-to mentioning that the installers exist, and why you didn’t want to use them would make it clearer.
Thanks for the update!
This comment was originally posted on Coolkevmen
@Alexander: Good suggestion ! I’ve updated my post accordingly. Thanks !
This comment was originally posted on Coolkevmen
Excellent articleI must say that the article is excellent. Now I’m working in establishing a developer community for a project and I was considering Plone and Drupal as options for the project’s website. They both are very good tools for this purpose but by analyzing my needs, I think I am going to use Drupal this time. I hope to find a good opportunity to try Plone in the future.
http://bygsoft.wordpress.com/2010/01/18/howto-argouml-and-archgenxml/
This comment was originally posted on Coolkevmen
Hi Kev,
There’s a Python 2.4 .dmg regular installer available from here http://www.python.org/download/releases/2.4.4/
If MacPorts is installed (a “must have” for any developer on Mac) you just need to “sudo port install python24″.
In addition, using the PasteScript + ZopeSkel eggs makes things easier to create a Zope + Plone instance:
$ [sudo] easy_install ZopeSkel
$ paster create -t plone3_buildout myinstance
Answer to the wizard and you’re done. Note that ZopeSkel comes with other interresting code templates for Plone (portlet, PAS plugin, theme, …)
This comment was originally posted on Coolkevmen