Linux IR Project Leader Interviewed
Code Warrior writes
"If you use Linux on a laptop then you'll want to head
over to Mattshouse's interview
with Dag Brattli, leader of the Linux IR Project. He has
some neat insights about hardware vendor cooperation, and
the IrDA Group's animosity."
Cool.
http://www.cs.uit.no/~dagb/irda/irda.html
hmmm, that site is like, dead.
You're at work, surfing on your lunch break (nobody would actually waste *company* time, right?), when suddenly you remember... "Gilligan's Island: The Lost Episodes" is going to be shown at 7:00PM. What with the deadline you've got, and the snowstorm that'll snarl traffic 'till who knows when, you won't get home until after 10:00PM! What to do?!
Suddenly it hits you... Dial in to your machine at home. Fire up the IrDA Remote Control Emulator, and program your VCR.
Diamond Multimedia has a product called HomeFree
that looks to be affordable for home networking.
The only problem is that they don't have Linux
drivers. I asked a couple of months ago and they
said they had no plans to provide any but might
consider it if they received enough interest. They
even hinted that they would talk to competent
outside developers about writing the drivers.
Unfortunately, I ain't competent enuff to write
kernel modules. So if anyone is interested send
them an email.
This weeks Spotlight is an interview with the Pioneer behind the Linux IR project, Dag Brattli. His project has greatly improved the lives of those of us blessed with laptops, PDAs, and IR-enabled PCs such as the Netwinder. Dag is 29 years old and is working towards his Ph.D in computer science. His normal home address is in Tromsø, Norway, but he's studying at Lancaster University (UK) until August 1999. Dag Brattli
:-(
:-)
:-). The problem took nearly half a year to find :-)
:-) But I think that we now have the experience that is needed to make it work properly.
:-)
:-)
Mattshouse:
What gave you the idea to start the Linux IR project, and how long has it been around?
Dag:
According to my log-files, I started the project Sun Aug 3 13:49:59 1997. The reason was that I needed more wireless technology to play with for my Ph.D project. HP had donated some HP Netbeam IR (IrDA LAN) boxes to the institute that nobody seemed to use. I thought that it would be cool to have Linux support for these boxes and started coding. If I had known then how much work it would be, I would probably never have started! I'm using much more time on IrDA than I probably should, but then it has been my gateway to the Linux kernel and kernel/network level programming.
Mattshouse:
How much cooperation do you get from the hardware vendors? Who's the best, who's the worst.
Dag:
In the start none of the hardware vendors seemed to care. IrDA didn't even like that we used the word IrDA in the project's title so we had to change the name from "The Linux IrDA Project" to "The Linux/IR Project".
But the interest has been growing, and today most of the large vendors (Fujitsu, Extendsys, Sonycom, Nokia, Corelcomputer, Microsoft, Intel, Actisys, Canon, Hp, Ericsson) subscribe to the the linux-irda mailing-list.
The worst companies I have ever experienced (if I may say so), are Sharp, Toshiba, VLSI. They don't give out any documentation at all about their products. If you are a Linux user, then you should never buy equipment from such companies. I'm the unlucky owner of a Toshiba Tecra 740CDT, and have still not been able to get the documentation I need to write a device driver for the IrDA chip inside the machine.
But there are good companies too! ACTiSYS sent me a 4Mbps IrDA card and a infrared printer adapter, and gave me all the documentation I needed to write device drivers for their products. They even used one of their best developers, Lichen Wang, to help me get the thing working. Finally having 4Mbps support was just fantastic. It was really one of the most interesting moments I have had in the development of Linux/IR. Lichen Wang probably knows all there is to know about IrDA!
Corel Computers also needed help with getting 4 Mbps IrDA support for their NetWinder, and I said it would be much easier to help them if they could send me one unit. A couple of days later, I had the machine at my desk, but unfortunately I haven't been able to make the chip work properly yet. There seems to be some problems with the DMA which I cannot figure out. I haven't given up yet, so I'll give it another try once I have the machine upgraded to Linux-2.2.
Finally I must also mention that Tekram has also been nice and sent us the documentation we needed.
Mattshouse:
Has Irda changed it's position now that we have a working product?
Dag:
No they haven't! Well I haven't contacted them, but I haven't heard from them either. They have this silly rule about the use of the IrDA (R) name. I cannot call it Linux-IrDA, since IrDA is an organization/trademark, and not a product. The right use would probably be "An Implementation of the IrDA (R) Standard Specifications for the Linux Operating System"
Anyway, you have to be a lawyer to understand all the trademark rules. What I know is that if I call it Linux-IrDA, people will know what it's all about, try it out, and maybe buy IrDA equipment. If I call it some other stupid name, nobody would understand what this is all about, and that would be in nobody's interest.
I must mention that I know they have been sending some mail about Linux/IR on their internal mailing-list, but thats all. There was apparently some discussion about the compression protocol used by Linux/IR. Compression is not part of the IrDA protocol specifications, and it was something I came up with since I thought that my 115200 bps connection was way to slow. Linux/IR can negotiate deflate (gzip) compression (bzip2 on the way) and will use it if both parties agree to do so. I haven't done much work with it after I got my 4Mbps card, but I should have written a small paper describing it. I'll try to do it as soon as possible, even if IrDA doesn't like it
I would like Linux/IR to be a member of IrDA, but that would cost me about $1500 and thats way above my budget! I think that Linux could be a very important platform for IrDA (and others) these days, and ignoring it will turn out to be a big mistake!
Mattshouse:
Has the company that recently aquired the rights to the Netwinder contacted you yet?
Dag:
You must be talking about the HCC? Well, I haven't heard anything from them. Chris Herrnberger, Founder and Corp Liason (Corel Computers) posted an annoncement on the NetWinder developer mailing-list trying to ensure that this would not affect the open-source development for the NetWinder. The only problem is that the NetWinder is much more than a machine, it is like a movement or religion. People just liked the Corel NetWinder, and I'm not so sure they will like the HCC NetWinder even if it's the same machine. Lets hope that this goes well!
Mattshouse:
I'm the only one on the mailing list that spoke out against including the IR in the kernel releases. I got my clock cleaned, so to speak. How did that come about? Were you approached by Alan or Linus?
Dag:
Well, it actually started with that mail I sent to the mailing-list. I asked if we should declare a code-freeze and try to make the implementation good enough to be included in the major Linux distributions. In the discussion that followed various people started to discuss if we then should make the source patchable against the Linux kernel, or have its own configuration script like the PCMCIA package from David Hinds. Most people thought that a patch against the kernel would be the best, since having to rebuild both the PCMCIA and IRDA package every time you installed a new kernel on your laptop would just be to painful. The PCMCIA package usually breaks with every new kernel version, making it really frustrating to use.
I then mailed Alan Cox (which I ask for advice when I get really stuck) and asked what he would recommend. He answered that a kernel patch would be the best, and that I should send him a patch of the latest code. After working continuously for 24 hours, the code was converted from the CVS tree to a linux-kernel patch, with new makefiles and configuration stuff that was required. I didn't hear anything from Alan for a couple of days, and I got really happy when I suddenly discovered that the code had been included in Linux-1.1.131ac3 (I think it was). Making it into the ac (Alan Cox) series is not the same as making it into the "real" kernel (people said), and since Linus was on holiday in Finland, I would just have to wait and see. Anyway, Linus included the code in 2.1.132, even after feature-freeze, apparently since the only changes the code required to the rest of the Linux kernel was three lines of code where two of them was #ifdef/#endif.
Mattshouse:
I guess that my thinking was a little selfish. I saw the merger as the end of the fun days, and the start of real work. Did it ever hit you like that?
Dag:
Yes, I know what you mean. Suddenly everything got more serious. It's not that easy to send some patch away these days without testing it with all possible hardware, for all possible configurations. It really takes much more time than before. I feel that I use so much time testing, and not so much time programming anymore. But again, it is probably what's required to get it stable enough to really be used by people, and having developers write applications for it. I really want it to be used by the people!
Mattshouse:
What's next for the IRDA standard? Higher speeds, greater range?
Dag:
Well, its not good to say. RF and microwave seem to be the future, and I think IrDA is struggling a little bit. The market seems to go for technologies like Blue-Tooth, which gives you increased range and no need for line-of-sight.
The reason why IrDA has sort of failed, is that they have not been able to produce the killer application the users wanted. Most people have had laptops with IrDA support for many years now, but using it has been mostly painful. I think that the vendors concentrated too much on protocol-stacks and hardware, and forgot to make the applications that people really needed to be able to use it. The Palm III, however, is a really nice device that has made IrDA get back into the (red) light again. This is because IrDA beaming has been integrated in most of its applications, making it really easy to use.
But you asked about the future for the IrDA standards. The next thing for IrDA is VFIR, AIR, and IrBUS:
o With AIR you will get wider angle and longer distance (10M) but at a lower data-rate. AIR requires hardware and software changes that are costly, so its unlikely that you will see any products shipped with AIR.
o CIR (Control IR, previously IrBUS) is aimed at remote control, IR keyboard, etc., and not for data communication. Remote controls have been the killer app. for infrared communication in the past, so why not in the future
o With VFIR you get a higher data rate (16 Mbps). Unlike AIR and IrBUS, the software changes for VFIR are minimum since all changes are mainly in hardware.
Mattshouse:
I've been a member of the mailing list for a while now, and I've had the pleasure of getting to see the breakthoughs. Were you a little stunned at the rate of progress?
Dag:
Well most of the features in Linux/IR have been developed pretty quickly. One of the worst problems we had (I just have to tell), was that I had forgot to bytestuff the CRC bytes of the IrLAP frames. There are 2 CRC combinations of 256 that need to be bytestuffed which ment that the link would usually go down after a couple of minutes (no help in retransmitting a bad CRC
One more general problem is however that we working mostly by the breadth-first method. We have got most of the features in place, but we really need to make it stable enough to be used by normal deadly people. It's always very hard to get those last 5% in place
Mattshouse:
Now that your code is an 'official' part of the linux kernel, what changes have to be made to the development process?
Dag:
The main difference is that the CVS tree has gone. In the previous development model, all developers had direct access to a CVS repository. CVS worked very nice, but now it would just be a lot of work to keep it synchronized with the kernel.
Now the other Linux/IR developers have to send patches to me. So when I feel that the time is right, I will make a patch which I send to Alan Cox. If he likes it, he will then send it to Linus, and if he likes it, it goes into the kernel. It works much better than I thought it would, since I now see what the other developers are doing. The hardest part is to really get familiar with diff and patch
One problem with using CVS, was that the code was usually not that stable. It could be really painful to try and stay updated and be on the cutting edge. Now, the other developers can work against a normal Linux kernel which is quite stable these days.
Mattshouse:
Let's say that a hungry developer reads this and is inspired to help, what's an example of an application that would be usefull?
Dag:
I really hope that one day I will be able to have a GNOME panel applet where I could just drop the files I wanted to beam to my PDA. An IrOBEX daemon with CORBA/ORBit support would be just smashing! A KDE interface would also be great for those who use it
The Linux IR Project's web page is http://www.cs.uit.no/~dagb/irda/irda.html . Information about joining the development team or writing applications for Linux IR can be found there. How about giving them a hand? That Gnome applet sounded pretty cool, how 'bout it folks?
In my experience, there are three reasons that companies won't give out HW specs:
(1) the company doesn't want third parties to implement low-quality drivers for the hardware. I've only seen 3COM use this argument.
(2) the company's arm is being twisted, e.g. by Microsoft.
(3) the specifications are undocumented. As mind-boggling as it may seem, some hardware vendors basically don't have documentation for certain products that is readable by outsiders. And yes, this doesn't say flattering things about the company. I would avoid this type of vendor.
I suspect that in general, (3) is the primary reason.
The article has interesting comments on patches vs CVS. Apparently, patches work surprisingly well and CVS turns out to be more chaotic. q00l.
I have linux on my laptop, but how many uses are there really for an IR port?
Anyone got any recommendations? I've got a laptop on its way to me this week that has an IR port, but no IR on my PC ...
; -- the corruption of government starts with its secrets. a truly free people keep no secrets. --
You must have talked to someone other than the person I talked to. Robert Jacobson, marketing manager for the product, said that I was the first Linux user I'd heard from, and that Diamond was very hostile to outside developers since they'd had several bad experiences even WITH NDAs. However, they've got my name and phone number should they change their mind and decide they want a Linux driver.
-russ
See--- http://www.iscomplete.com/ for IrLink or IrSync, both should work... I'm thinking about doing this myself, I also have a tyan m/b.
--I hate people when they're not polite -"Psycho Killer", Talking Heads
I have an HP Omnibook 800CT running Linux. It would be nice to be able to use it now and again for useful things. For example, it'd be nice to be able to run PPP or SLIP over it, thereby allowing me to FTP in to the laptop across from me...
But, alas, the Omnibook 800 uses the VLSI part for IrDA, and they won't cough up the specs. I have an acquaintance who used to work at HP, who helped design the HP OB800. He says VLSI wouldn't even tell them how to program it. VLSI just supplied opaque Windoze drivers, and HP loaded them on to the disk.
Really, I have to wonder what all this digital balkanism is supposed to accomplish...
Schwab
Editor, A1-AAA AmeriCaptions
Actually, I'm willing to buy this. I've been working with $(GRAPHICS_CHIP_VENDOR), who don't hand out the specs to their chips (as a rule) because, in order to interpret them, you need several hours of training in their specific design methodologies. They provide this training to their OEM customers (because they pay for it), but don't have the resources to provide same to random hackers.
Not a particularly compelling excuse, but there it is.
Schwab
Editor, A1-AAA AmeriCaptions
Well, I recently got a Toshiba Libretto, and after struggling for about a week to get Linux installed on it I suppose that little IR port there at the back will never see any use. I was thinking about using it to send programs to one of the mobile robots we're developing at our lab, but alas... Looks like we're stuck to implementing a complete RF transciever or incompatible IR port from scratch. Getting workable IrDA hardware from a specific manufacturer is so difficult, with fickle computer parts importers and in a state-funded university in the third world to boot.
What do these tight-fisted hardware manufacturers gain anyway from concealing their drivers? Don't they get enough money from hardware sales? Licensing these closed drivers to third parties doesn't account for one hundredth of one percent of their income I guess. Are they afraid that the competition will be able to reverse-engineer them from knowledge of the interface? Granted, knowledge of the interface makes this slightly easier, but a really determined reverse engineer will be able to get them anyway, reverse engineers being what they are. Cracking the interface is only a small part of reverse engineering a system. It's like the argument against hiding cryptographic algorithms: it makes life difficult for people who'd like to use their hardware legitimately, but ultimately doesn't stop those who would abuse their hardware for malicious purposes.
--
Qu'on me donne six lignes écrites de la main du plus honnête homme, j'y trouverai de quoi le faire pendre.
it's probably sitting behind a IR link, so it got slashdotted quickly ;)
Has anyone gotten their machine to link with a
PalmPilot III? And if so what irda stuff did they
do I have a tyan MB, but donno where to get the
irda thingie to plug into the motherboard.
Thanks
-Ryan
Im using an IR reciever I built, with the help of a friend, to control winamp using a regular remote control. Does anyone know if there is a Linux project for this sort of thing?
The specs and winamp module can be found at
http://www.geociti es.com/SiliconValley/Sector/3863/infrared.html
The IR reciever/demodulator is not available anymore so I used a radioshack reciever.
Josh
Linux: The GNU is out there...