PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : IrDA mit Acer Travelmate 4000



tht
30.01.05, 09:11
Hallo,

ich besitze ein Acer Travelmate 4000LMi und versuche zur Zeit, die Infrarotschnittstelle unter Linux zum Laufen zu kriegen. Zwar habe ich im Internet schon einige Berichte zur 4000er-Serie unter Linux gefunden, allerdings wird dort IrDA entweder nicht erwähnt oder die Autoren haben es selbst noch nicht getestet.

Durch modprobe irtty-sir irq=3 und anschließendem irattach /dev/ttyS1 -s konnte ich zwar irdadump dazu bewegen, etwas anzuzeigen, allerdings wurde mein Handy (Siemens S55) nicht gefunden. Unter Windows funktioniert es jedoch ohne Probleme, sodass ein Hardwaredefekt auszuschließen ist.

Außerdem habe ich es mit dem FIR-Treiber probiert. Zuerst habe ich die serielle Schnittstelle mittels setserial /dev/ttyS1 uart none, wie in verschiedenen Anleitungen beschrieben, deaktiviert. Beim Laden des Moduls nsc-ircc bekam ich jedoch nur die Meldung "No such device".

Der von der IrDA-Schnittstelle eingesetzte Chipsatz ist ein NSC6001. Weiterhin habe ich folgende Daten herausgefunden: IO: 0x2f8, IRQ: 3, DMA: 1. Ich verwende Ubuntu Warty, Kernelversion 2.6.10 aus Ubuntu Hoary.

Vielleicht hat ja hier jemand eine Idee?

tht
30.01.05, 17:37
Also ich habe nun folgenden Patch gefunden, mit dem der Chipsatz unterstützt werden sollte: http://www.hpl.hp.com/personal/Jean_Tourrilhes/IrDA/ir269_nsc_pnp.diff

Allerdings funktioniert er bei mir nicht. Ich kriege immer noch die Meldung "No such device". Beim ersten Laden zeigt dmesg folgendes:
nsc_ircc_pnp_probe() : Found cfg_base 0x000 ; firbase 0x2F8 ; irq 3 ; dma 1.

Bei jedem folgenden Laden gibts dann folgendes:
kobject_register failed for nsc-ircc (-17)
[<c01ad66d>] kobject_register+0x57/0x59
[<c02079c7>] bus_add_driver+0x57/0xc5
[<c0207f99>] driver_register+0x2f/0x33
[<c0149c1f>] vfree+0x27/0x35
[<c012f056>] load_module+0x84b/0xad1
[<c01dda79>] pnp_register_driver+0x2d/0x5b
[<df8e8027>] nsc_ircc_init+0x27/0x200 [nsc_ircc]
[<c012f444>] sys_init_module+0x168/0x20b
[<c0102e95>] sysenter_past_esp+0x52/0x75

Und sauber Herunterfahren lässt sich Linux dann auch nicht mehr:

Unable to handle kernel paging request at virtual address dfb342f4
printing eip:
c020a0f1
*pde = 1ea27067
*pte = 00000000
Oops: 0000 [#1]
PREEMPT
Modules linked in: af_packet button ehci_hcd uhci_hcd ipw2200 b44 sd_mod usb_storage scsi_mod i830 acpi_cpufreq proc_intf freq_table cpufreq_userspace cpufreq_ondemand cpufreq_powersave pcmcia irda crc_ccitt binfmt_misc ac battery ipv6 arc4 ieee80211_crypt_wep ohci1394 ieee1394 yenta_socket pcmcia_core firmware_class ieee80211 ieee80211_crypt mii slamr usbhid snd_intel8x0 snd_ac97_codec snd_pcm_oss snd_mixer_oss snd_pcm snd_timer snd soundcore snd_page_alloc i2c_i801 i2c_core shpchp pci_hotplug
usbcore intel_agp agpgart rtc nls_utf8 ntfs md capability commoncap parport_pc lp parport joydev evdev tsdev ide_cd cdrom mousedev psmouse ext3 jbd mbcache dm_mod ide_generic piix ide_disk ide_core unix thermal processor fan fbcon crc32 font bitblit vesafb cfbcopyarea cfbimgblt cfbfillrect
CPU: 0
EIP: 0060:[<c020a0f1>] Tainted: P VLI
EFLAGS: 00010282 (2.6.10-2-686)
EIP is at device_shutdown+0x37/0x73
eax: dfb34294 ebx: deb58c00 ecx: 2c31282a edx: deb58c40
esi: c030ec48 edi: b7fd9edc ebp: db4b2000 esp: db4b3e9c
ds: 007b es: 007b ss: 0068
Process reboot (pid: 12074, threadinfo=db4b2000 task=dd5f49e0)
Stack: dee68888 28121969 01234567 c0124a81 c0375248 00000001 00000000 00000000
c0144434 dd97c4c0 d2018c9c b7f73ed0 00000000 dd195dcc dba48b7c 00000002
dd97c4c0 dd97c4ec d2018c9c 00000004 c0113178 dd97c4c0 d2018c9c b7f73ed0
Call Trace:
[<c0124a81>] sys_reboot+0x13a/0x25d
[<c0144434>] handle_mm_fault+0xd6/0x171
[<c0113178>] do_page_fault+0x3a4/0x5c8
[<c0154ca2>] invalidate_inode_buffers+0x11/0x6b
[<c016b7ef>] clear_inode+0x11/0x112
[<c0220016>] sock_destroy_inode+0x1b/0x1f
[<c016b699>] destroy_inode+0x43/0x5e
[<c016c9d3>] iput+0x62/0x7c
[<c016988c>] dput+0x24/0x214
[<c0153a43>] __fput+0x114/0x17f
[<c0152108>] filp_close+0x59/0x86
[<c0152198>] sys_close+0x63/0x96
[<c0102e95>] sysenter_past_esp+0x52/0x75
Code: 89 f0 83 ec 04 0f c1 10 85 d2 75 5b 8b 15 0c ec 30 c0 8d 5a c0 8b 43 44 0f 18 00 90 81 fa 08 ec 30 c0 74 25 8b 43 70 85 c0 74 07 <8b> 48 60 85 c9 75 2d 8b 53 44 8d 42 c0 89 c3 8b 40 44 0f 18 00

Interessant ist übrigens wie in meinem recht modernen Notebook (und in vielen anderen auch) die Infrarotschnittstelle angebunden ist: Acer hat extra für IrDA einen ISA-Bus integriert. Verstehe nicht, wie man heute noch ISA verwenden kann, wenn doch z. B. auch USB (wie meistens bei Bluetooth) möglich wäre.