Making a broken ZyDAS zd1201 based USB Wireless work
It's amazing what kind of strange and broken USB devices there are. Here at
Linux Bangalore, they've got a bunch of 'combo USB WLAN and Flash Disk Sticks'
that turned out to be TwinMOS B241
devices. But let's forget about this for a moment and join me on my journey...
They ship with a Linux driver preinstalled onto the flash disk. Unfortunately
that driver consists of some hacked wlan-ng driver. For most people who've
worked with wlan-ng, they know that it's overly complex, and not really the standard Linux way of doing things.
That modified wlan-ng source code would only build for 2.4.x, the machines here are running Fedora Core 3.
Also, the machines would totally lock up their USB stack as soon as you would enable the WLAN part, even without any driver.
Since the wlan-ng was a modified prism2 USB driver, I though I could somehow merge the changes into the orinoco_usb driver that is in the standard kernel.
After some deeper look, it turned out that the device has no relation with
Intersil, and definitely doesn't have a Prism2 chip on the PCB, so my tries to get this working were useless.
Apparently, they didn't even do 'copy+paste', but they did 'edit and forget',
i.e. forget about prism2 devices and only support some totally different
chipset without actually changing file names or comments in the driver.
So I opened one of the devices and found a AU9254A21-CBS (4 port USB hub), a
K9F1G08UOM (the Flash memory for the USB drive), a IC1114-F48LQ (usb storage
controller for the flash), and some unknown chip labelled ZyDAS ARM. Also
there was a Cyprus semiconductor chip that I though of the EZ-USB controller
that connects the alleged prism2 to the USB bus. This fits the driver design,
since it has to download some 'bootup code' to the usb device before being able
to use it.
After some further analysis, the Cyprus CY62137CV30LL-70BVI turned out to be
some SRAM chip, and the ZyDAS ARM the real 802.11 MAC. And luckily, some
people are working on a very clean 2.6 style stand-alone driver.
And the driver even worked after just adding the USB device ID to it's list of known devices, at least on little endian platforms.
If the devices specs or documentation would have told us that it is a ZD1201,
the driver clearly indicated that it has no relation with prism2 or somebody
who wrote the driver actually had a clue how to do this, this would have saved me about four hours of time, at least.
Oh yes, and the usb stack lockup comes from violating the USB specification and
only supporting one particular flavour of USB bus enumeration. So nobody
actually ever tested it for USB spec compliance, even though there are
compliance tests available by the USB forum. *sigh*
[ /linux |
permanent link ]
Visiting Infosys
Today, the international speakers of LB/2004 were invited to visit the
sponsor Infosys, apparently India's
largest IT outsourcing company.
They've been growing from 7 to 35,000 engineers very rapidly, and their
Bangalore campus is certainly the most luxurious and westernized part of India
I've seen so far (not that I've seen much of India either).
Anyway, we were informed about their recent Linux and FOSS related activities,
met their internal InfyLUG (Infosys Linux User Group), met one of the seven
founders and Andi Kleen gave a lecture about the kernel development process,
that was attended by 300 employees and streamed to all the other Infosys
campuses.
[ /linux/conferences |
permanent link ]
Leaving for Linux-Bangalore/2004
I'm at the moment packing my suitcase, and I'll be sitting in the plane about
24 hours from now. Do not expect any fast email replies or IRC presence of me
before December 9th.
[ /linux/conferences |
permanent link ]
Make CyberJack drivers issue a key-press confirmation beep
This is a very useful feature, especially for blind people. Unfortunately
there is no unique way of issuing some beep sound on Linux-based systems, so
there needs to be some magic that determines whether running under X11 or not
and call the appropriate code for beeping.
[ /linux/cyberjack |
permanent link ]
Successful TomTom Visit
As indicated before, TomTom B.V. has invited Christian and me to visit them at
their offices. Apart from some consulting/training regarding Free Software
Licenses and the Free Software Community, they were particularly interested in
getting us involved with their Linux kernel related development.
I stressed the fact that it is very important to clean up all the drivers, make
them use standard interfaces and eventually get them merged to the mainline
kernel. As it seems, they agree and want to contract one or some of the
OpenTom developers to do so.
[ /linux/opentom |
permanent link ]
KNF Kongress: Meeting old friends
Today I've given my two gpl related presentations at the annual KNF Kongress.
Apparently it helped some people to understand legal requirements of dealing with various free software licenses, which is good.
Also, I was a the OpenTom presentation and could it actually see working with a
2.6.x kernel, sound, framebuffer, USB keyboard, USB CD-ROM and even playing
some low-res-movies with mplayer on the console. Great work.
Apart from that, I was just chatting with a lot of people. As a side-note, I've
also mentioned the CCCB's current search for a pc-based logic analyzer that
either comes with developer documentation or Linux software. People suggested
of building the logic analyzer on our own, by using available FPGA's, some SRAM
and a USB interface. If you think about it, this actually sounds quite
feasible. Now I'll do some research on FPGA's that ship with a free
development environment, unlike the proprietary stuff shipped by Altera & Co :(
[ /linux/conferences |
permanent link ]
Never ride trains on weekends
If I'm ever about to travel by train on a weekend, please somebody remind me
not to do so. All these crowds trying to find available seats, incredibly
busy, delayed trains, ...
Travelling during the week is just so much more convenient.
[ /personal |
permanent link ]
Two presentations at KNF Kongress coming up
I'll be giving two presentations at the upcoming KNF Kongress
2004, entitled "The GNU GPL Revisited" and "Copyright helps Copyleft".
Also, Christian Daniel from the OpenTom group is going to present on his re-engineering efforts.
If you happen to live in southern Germany, it's probably a good idea to check
out the yet small but great KNF Kongress. Looking forward to meeting you there.
[ /linux/conferences |
permanent link ]
I'm pleased to present at Linux Bangalore 2004
Following up my presence last year's Linux Bangalore 2003, I'm very pleased to again be invited to present at this year's incarnation.
Unfortunately I had to shift the main focus of my presentations a bit towards
political/legal issues, so there's one presentation about How to interact with
the Free Software Community, one about The GPL is not public domain, and for all the tech savvy guys, there's A tour through the Linux 2.6 network stack.
I'm happy to present on those political and legal issues, because I think this
is the opportunity to get this kind of knowledge into the Indian IT outsourcing
industry, before it is too late (like apparently happened with most of the
Taiwanese embedded Linux vendors).
I'm happy to see an increasing number of high profile speakers at Linux
Bangalore, and it's now becoming (to the best of my knowledge) a big
internationally recognized Linux event.
[ /linux/conferences |
permanent link ]
More work on the REINER SCT CyberJack drivers
I'm not sure if I did mention it on this blog, but I've been contracted by REINER SCT to work on a Linux driver for their CyberJack series of smart card readers for quite some time.
In the last days I've been spending quite an amount of time hunting down
user-reported bugs in the driver, which is good. Sometimes it's really
surprising to see in what kind of bugs stupid mistakes eventually result.
Also, I've now managed to make the driver work on x86_64, so it's working in
little-endian 32 and 64bit, big endian 32bit. I have to test it on my UltraSPARC box to see whether 64bit big endian also works.
[ /linux/cyberjack |
permanent link ]
Working on lots of Presentation Slides
I didn't even notice it before, but within two weeks I'm now scheduled to give
six presentations. Unfortunately, none of them is exactly the same subject on
which I've presented before, so the amount of recycling I can do is quite
limited.
I've always considered doing slides for a presentation as "necessary evil",
but it's OK if you do it once every so often. But preparing six presentations
in a row is no fun at all :(
You can follow the progress in the svn repository
I sometimes really feel the need for a secretary... or someone who does boring
small jobs like HTML/Postscript conversion of all my presentations, and makes
them more conveniently accessible on the net. *sigh*. Sorry guys..
[ /linux |
permanent link ]
No more time for OpenTom at the moment
Due to an increasing workload, I won't be able to work on the OpenTom project for at least some weeks. I've published the current state of the SD Card driver in my personal directory of the OpenTom Subversion repository. If you want to pick up, feel free. I'll answer questions by email.
[ /linux/opentom |
permanent link ]
wiki.opentom.org online
We've put together some information on our OpenTom efforts at wiki.opentom.org. Feel free to check it
out. Additions of content very welcome :)
[ /linux/opentom |
permanent link ]
More hacking on the SD Card driver
re-engineering the SD card stuff turns out to be more time consuming than
expected. Not that it's particularly fancy or complicated - just obfuscated.
Apparently there are some quite complex data structures involved, that are hard
to analyze by looking at the disassembly.
[ /linux/opentom |
permanent link ]
All GPL issues with TomTom B.V. settled
I'm very happy that the GPL issues with TomTom have now all been settled, and
despite some early disagreements we're now very happy with the way TomTom has
handled this case.
The TomTom GPL page contains the latest
source of their 4.42 firmware. Pretty much all of the drivers have been
released with their source code (touch-screen, framebuffer, USB device,
accelerometer, GPS). Only (obviously) the SD-Card driver is missing in the
source and provided as kernel module. This is due to the stupid SD Card
Alliance licensing agreement, which basically puts every recipient of the
Documentation under an NDA.
So at the moment you have to put all of the OS into the initrd, which is loaded by the bootloader.
We're working on a solution for the card reader, though. At least MMC Card
support should be available soon.
[ /linux/opentom |
permanent link ]
The OpenTom Project was founded
Our distributed efforts in opening up the TomTom GO have now found a common home, the
opentom.org domain. There's the OpenTom
website and the svn.opentom.org subversion server.
There's still a lot under construction, expect more news here in this blog and
in the subversion repository.
[ /linux/opentom |
permanent link ]
2.6.10-rc1 kernel for OpenTom
Christian Daniel has managed to get
2.6.10-rc1 running on the TomTom GO. This includes a 2.6.x-rewritten frame buffer driver, USB Host and Device support.
The kernel tree has been made available on svn.opentom.org.
[ /linux/opentom |
permanent link ]
Back blogging again
I had some severe hardware problems during last week, resulting in almost one
week of server outage. We had to change power supply, ram, mainboard and cpu
in order to get the machine back running again - basically a whole new machine.
Sorry for anybody trying to access www/ftp/.gnumonks.org over that time. Email was not affected, since email is dealt with on a totally different box.
Thanks to my Towersoft friends
who took care about the physical repairs of the machine (it's located some
500km from my place).
[ |
permanent link ]
|