Hi!
Firstly, enough respect to the coders of this nifty set of LINUX IrDA
tools! I had thought such support would be years away... many thanks!
I have an IBM ThinkPad 760LD notebook and a Canon BJC-50 portable printer
(functionally identical to the BJC-70 and perhaps BJC-80, just portable).
Have also an Erricson CA-638 that an IR interface is available for, which
I'd have if I knew I could use it! Both have IR ports, and upon finding
IrDA support in the 2.2.10 kernel, I have resolved to get this very cool
stuff working.
All my kernel/module building goes fine. Everything gets installed in the
default location, and thus I begin to try printing "Hello, world!".
I first unload every running module, just to make sure nothing conflicts.
I fire up "irmanager -d 1", alleged to start the discovery process.
Ouch! None of the drivers seem to work! So, did some reading up of the
documentation available. IBM's marketing propoganda claims the ThinkPads
have real nice IR support. Apparently the IBM31T1100 chip is the one I've
got, which seems to be supported by the PC87108 driver. Reports from other
ThinkPad users indicate there is a slightly differing version of this
chip present leading to trouble in FIR modes, but that SIR works fine.
The PC87108 driver looked most promising (success reported by other
ThinkPad users), but loading it up gives a message, "invalid chip version
ff". I tried hacking out this error detection from
drivers/net/irda/pc87108.c and the module then loads, but of course
crashes.
The uircc driver also reports "invalid chip version".
HmMmM. irattach /dev/ttyS0 appears to work, just giving me the version
info but nothing else. Stuff piped to these devices goes nowhere, my cute
little printer just quietly sits there. I try loading up other IrDA
modules with no luck.
Nothing appears in my syslog of interest - the point of failure seems to
be the driver. Sounds like some small incompatibility used on the 760LD
chipset?
Just in case, my syslog:
IrDA (tm) Protocols for Linux-2.2 (Dag Brattli)
pc87108_open()
pc87108_probe(), Wrong chip version ff - work-around hacked in.
pc87108_read_dongle_id(), Dongle = 0xf
Unable to handle kernel paging request at virtual address 37386370
current->tss.cr3 = 0092d000, %cr3 = 0092d000
*pde = 00000000
Oops: 0000
CPU: 0
EIP: 0010:[<c01978a1>]
EFLAGS: 00010097
eax: 37386370 ebx: ffffffff ecx: 37386370 edx: fffffffe
esi: c01d9d65 edi: c0931ec4 ebp: 00000000 esp: c0931e5c
ds: 0018 es: 0018 ss: 0018
Process insmod (pid: 45, process nr: 18, stackpage=c0931000)
Stack: 000002f8 000000e0 ffffffff c1837009 781d9d46 00000000 c01d9d6d c1836f41
73000001 0000000a c01125f9 c01d9d43 c1836f43 c0931ec4 000002fb 000002fa
000002f8 000000e0 0000002a 00000282 c1836fe0 0000000f 000002fb c183555a
Call Trace: [<c1837009>] [<c1836f41>] [<c01125f9>] [<c1836f43>] [<c1836fe0>]
[<c183555a>] [<c1836f20>]
[<c18377d8>] [<c18377d8>] [<c1835135>] [<c18377d8>] [<c18377d8>] [<c18377d8>]
[<c0116e2c>] [<c18350a5>]
[<c1835000>] [<c1812000>] [<c1837888>] [<c1836a55>] [<c01146cf>] [<c1835000>]
[<c1837888>] [<c1812000>]
[<c1835048>] [<c01088d8>] [<c1835000>]
Code: 80 38 00 74 07 40 4a 83 fa ff 75 f4 29 c8 89 44 24 10 f7 c5
Serial driver version 4.27 with no serial options enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
IrDA: Registered device irda0
IrLPT client, v2 (Thomas Davis)
IrDA: Registered device irda0
uircc_probe(), Wrong chip version
This is about all the encouraging messages I can get generated. Yuck, must
be the DMA stuff that went splat!
So next I digest the LINUX-IrDA list archive. Looks like the problem isn't
just my imagination - apparently people have ThinkPads with 87338 and
87334.
So I check out the manufacturer info, and see that it's one of these
multi-purpose controllers... including floppy support... perhaps just like
my:
FDC 0 is a National Semiconductor PC87306
I'd trust that message over my other guesses, since it came from the
kernel!
HmMmM! Very interesting... http://www.national.com/pf/PC/PC87306.html has
the information on this controller, and it does indeed look like this is
the one in my ThinkPad.
Found a guy who claims the ThinkPad 701 uses /dev/cua1 for IrDA.
???
Argh, so I need 87338 or 87306 support, or to buy a supported dongle
(:<) ?!?
As you can see I'm rather clueless about hardware programming (did some
cel-phone stuff years ago, though - might be helpful a bit later), I've
always run from it I'm afraid... still I do offer any help I can to
advance the LINUX-IrDA project and help crush MS...
Anyone?