Contributed by tj on from the porting-wirelessly dept.
I spent the week before hackathon reviving a lingering work-in-progress implementation of a wireless driver for RTL8188CE devices. These are essentially urtwn(4) devices on the PCI bus instead of USB. The driver started out as a copy of urtwn(4) which I'm gradually moving over to PCI. With help from uwe@ I could clear some roadblocks that had prevented progress and got the driver up to the point where the firmware loading process completed successfully.
Upon my arrival in Exeter I immediately updated the Apache Subversion port in 5.6-stable to fix security issues fixed in Subversion 1.8.13.
With that out of the way I focused back on the wireless driver and implemented support for receiving frames. Once beacons appeared in tcpdump I was eager to look into fixing the transmit code path but ran into an annoying problem: The chip didn't reset properly after a transmit failure unless I power-cycled the system. So that problem had to be fixed first. It took a while to get the driver into a stable state while running ifconfig down/up in a loop. I got very useful hints from deraadt@ who happens to have intricate knowledge of the Intel 8051 chip which runs the RTL8188CE firmware. As usual, no hardware docs are available so adding support involves a lot of time wasted on trial and error. In the end, the final fix involved moving a single line of code (a tsleep(9) call) up by about 6 lines, but it took a few days to figure this out.
After that ordeal I had appetite for something more lightweight so I decided to work on some games in ports. I updated megaglest and stone-soup, and added fillets-ng (a puzzle game with fish -- unfortunately there are no puffy sprites but it's fish nonetheless).
Exeter is a lovely place to visit, the university campus was excellent, and our hosts (sthen@'s family) were very kind and supportive. Thanks!
(Comments are closed)