MyWireless/IPWireless P1C USB Modem Drivers for Linux

November 19, 2006

I wrote a Linux device driver for the IPWireless USB modem that has been included since kernel 2.5 

These can now be found at http://www.neology.co.za/opensource/sentech-mywireless-ipwireless-p1c

I also have some old archives, and collections of tools, firwmare and an alternative driver which was written by some guys for Woosh in New Zealand over here.

The device driver was written by painstakingly reverse engineering the Windows driver using USBSnoopy.



 

 Linux Development – The pleasure and the pain

Developing software under Linux can be a pleasure. It can also be a real pain. The following are just *some* of my observations about it.

Why Linux, GNU, and GCC tools are great:

  • It’s the best standards-based compiler in the world:
    I mean it. Nothing beats it’s stability in terms of being able to gronk code written in ANSI, or ISO, or GNU’ish C.
  • Most cross platform toolchain:
    GCC, and tools are the most cross platform compiler, and from all compiler’s I’ve used, allows the most fine-grained control of code optimisation. Aside from that, the assembly code it produces is very optimal, regardless of the platform you code on. Hell, I can even cross-compile Windows code on Linux, and the resulting stuff runs better than what native compilers can produce.

Why Linux, GNU, and GCC tools suck

  • Newer versions of GCC suck:
    Specifically the 3.x series just plain suck. GCC 2.95.3+ are the most stable GNU compilers ever. I don’t know why they even bothered with the 3.x series. It just broke everything, and it’s speed/performance is atrocious. (update: GCC 4 again moved back to ‘stable’ predictable)
  • Lack of development IDE:
    I’m a vim, and grep man myself, but the fact is there are very few good IDE’s for the GCC collection. Sure, there are tools. I know, I’ve tried most of them. The fact is, that none of them come close to the INTEGRATED experience that is Microsoft’s Visual C++ (update: I refuse to Eclipse thank you)
  • Lack of integrated ASSEMBLY level debugger:
    Yes, I know about VGDB, and the myriad of other tools out there that front-end GDB, but let’s face it. They’re all still GDB, with a crappy shell. And GDB has never integrated well into any IDE. Hell, even free Windows debuggers (Assembly/source) such as OllyDbg kick the pants out of GDB.
    I know many would say that console level, command prompt driven debugging is the only way to go, but even Visual C++ is able to produce a _proper_ stack backtrace, and produce readable disassemblies from running code, even without debug information. OllyDbg’s code analysis takes it to the next level.Fact is, that even Visual C++’s debugging capabilities kicks GDB and any other available tool for Linux’s behind.
  • !MAN (manual pages) suck:
    Yes, I know that may sound weird. But manpages do suck. Sometimes the actual documentation is more damaging, than not having any documentation at all. Then, there’s the interface, and search capabilities, and just the arrangement of manual pages. Yes, I know there’s tools like apropos, and a myriad other to enhance the searching, but there’s still _nothing_ GNU tools can offer that matches the well maintained, and usable format of Microsoft’s MSDN library. It’s a pity.


 

 Legends – A spiritual successor to Tribes2

I’m one of the developers behind a game called Legends. Legends started out as a project to be what Tribes2, and Tribes1 never was, and then, it grew completely out of control. I’m officially the Linux port-monkey, and general “plumbing” coder for Legends.

Legends was made possible by the awesome people of Dynamix, who got shut down by Sierra. The lead developers then started a company called GarageGames, which licenses the Torque (ala Tribes2) game engine to developers for the meagre sum of $100.

That’s the best deal you can get for _any_ kind of game engine. Tribes1, and Tribes2 were well known for their excellent network code, and engine. Besides that, the engine has an open scripting interface, and runs on Linux, AppleMacintosh, and Win32.

To checkout, Legends go to http://www.legendsthegame.net/

Contributions are welcome. We need more sound specifically. The game is currently at no 9 on the HappyPenguin rankings, and is well known amongst the Gentoo crowd, and loved elsewhere.



 

 GarageGames

This is the company that the ex-developers of Dynamix went to, when [Vivendi] started firing all the talented people that made them rich. These guys rock, and are the next generation studio to be watching.



 

 GameSpy threatens litigation against developer

GameSpy has a bit of a monopoly around online services for multiplayer games, including server listings etc. They use a lame XOR encryption technique to ‘restrict’ third party access to these master servers. Fortunately, due to their monopoly they can’t really quickly change things without breaking it all, and thus the algorithm has been documented and became available for opensource developers thanks to the efforts of Luigi Auriemma of http://aluigi.altervista.org.

Unfortunately GameSpy then decided it would be good to threaten him with litigation.

Yay. Go Go GameSpy. Read about this pretty sad story at http://aluigi.altervista.org/papers.htm#distrust




Semi-organized

Business
Debian
Game Development
Hardware
Internet
Music
Reality Reversing
Reverse Engineering
Uncategorized
Unix Development