Oops
Posted: Dicembre 16th, 2007 | Author: packz | Filed under: Life, Programmazione | Commenti disabilitati su OopsMi sono accattato una webcam da 9.90€ in un attimo di follia prenatalizia (ero partito per prendermi la chiavetta USB che permette il collegamento bluetooth ma l’unieuro è un pacco) con l’idea molto nalsana che se non avesse funzionato avrei potuto (tentare di) scrivermi il driver da me.
Bene, il driver in realtà esiste in quanto un fisico francese, dopo aver comprato una webcam del cazzo come la mia per i figli, era rimasto deluso del fatto che non esistessero i driver per il nostro simpatico sistema operativo e quindi ne ha scritto uno che va bene per circa 250 modelli diversi! l’unica pecca è che l’interfaccia del kernel usata è la video4linux prima versione, quindi tipo su skype non va… lo so che è un programma di merda (closed) però mi scazza e quindi sto cercando di usare la parte già scritta dal fisico precedente aggiungendo la parte del mio apparecchio; ovviamente non sono esente da errori e mi sono beccato il mio primo Oops
/usr/src/gspca-20060930/gspcav2/gspcaV2.c: [gspca_probe_camera:2451] Device found with vendor=0x93a product=0x2468
/usr/src/gspca-20060930/gspcav2/Pixart/pixart.h: [gspca_check_pixart:337] .
/usr/src/gspca-20060930/gspcav2/Pixart/pixart.h: USB GSPCA camera found.(PAC207)
/usr/src/gspca-20060930/gspcav2/gspcaV2.c: [gspca_probe:2531] Camera type JPEG
/usr/src/gspca-20060930/gspcav2/Pixart/pixart.h: [set_pac207SIF:260] .
BUG: unable to handle kernel NULL pointer dereference at virtual address 0000008d
printing eip:
f8fa12f1
*pde = 00000000
Oops: 0000 [#1]
SMP
Modules linked in: gspca usbvideo compat_ioctl32 videodev v4l2_common v4l1_compat rfcomm l2cap bluetooth nls_cp437 vfat fat usb_storage nls_iso8859_1 isofs udf fuse usbmouse ipt_MASQUERADE iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nfnetlink ip_tables x_tables i915 drm vboxdrv ppdev lp button ac battery ipv6 dm_snapshot dm_mirror dm_mod cpufreq_powersave cpufreq_conservative cpufreq_userspace cpufreq_ondemand acpi_cpufreq freq_table coretemp w83627ehf i2c_isa eeprom loop snd_hda_intel snd_pcm psmouse snd_timer snd intel_agp rtc_cmos rtc_core rtc_lib soundcore rt61 serio_raw iTCO_wdt parport_pc parport snd_page_alloc firmware_class atl1 tsdev intelfb i2c_i801 mii agpgart i2c_algo_bit i2c_core evdev ext3 jbd mbcache ide_disk sd_mod ide_cd cdrom ata_generic ata_piix libata usbhid hid floppy piix generic ide_core aic7xxx scsi_transport_spi scsi_mod ehci_hcd uhci_hcd usbcore thermal processor fan
CPU: 0
EIP: 0060:[<f8fa12f1>] Not tainted VLI
EFLAGS: 00210246 (2.6.22-3-686 #1)
EIP is at sonixRegWrite+0x83/0x19b [gspca]
eax: 0000008d ebx: 00000000 ecx: 00000000 edx: 00000000
esi: f8fb77d4 edi: 00000000 ebp: 00000000 esp: e674bd28
ds: 007b es: 007b fs: 00d8 gs: 0033 ss: 0068
Process insmod (pid: 8782, ti=e674a000 task=d8d48a50 task.ti=e674a000)
Stack: df9ea600 00200246 00000000 f88767c7 00000080 00000000 00000000 df9ea600
00200246 00000000 00410000 00000000 0000008d 00000041 00000000 f8871a46
e674bd82 dad70000 f8fb77d4 dad70108 f8fad294 f8fa142c 00000041 00000000
Call Trace:
[<f88767c7>] usb_get_status+0x81/0x8e [usbcore]
[<f8871a46>] finish_port_resume+0x29/0xac [usbcore]
[<f8fa142c>] pac207_reg_write+0x23/0x27 [gspca]
[<f8fa1582>] pac207_config+0x152/0x17b [gspca]
[<f8fa00e4>] gspca_probe+0x9ff/0xd85 [gspca]
[<f887688a>] usb_match_one_id+0x1c/0x71 [usbcore]
[<f88776e9>] usb_probe_interface+0x81/0xb2 [usbcore]
[<c022cf92>] driver_probe_device+0xe1/0x15f
[<c02a2ce5>] klist_next+0x4b/0x6c
[<c022d0a2>] __driver_attach+0x0/0x79
[<c022d0e8>] __driver_attach+0x46/0x79
[<c022c555>] bus_for_each_dev+0x37/0x59
[<c022cdf6>] driver_attach+0x16/0x18
[<c022d0a2>] __driver_attach+0x0/0x79
[<c022c839>] bus_add_driver+0x6d/0x16d
[<f8877234>] usb_register_driver+0x6d/0xd4 [usbcore]
[<f89e1017>] usb_gspca_init+0x17/0x42 [gspca]
[<c012db9b>] blocking_notifier_call_chain+0x17/0x1a
[<c0140748>] sys_init_module+0x161c/0x1755
[<c016ad65>] __fput+0x126/0x150
[<c017c20c>] mntput_no_expire+0x11/0x6a
[<c0103d0e>] sysenter_past_esp+0x6b/0xa1
=======================
Code: 83 e1 03 74 02 f3 a4 0f b7 44 24 2a 0f b7 7c 24 2c 0f b7 5c 24 28 0f b6 4c 24 2e 89 44 24 34 8b 44 24 30 89 7c 24 38 8b 7c 24 24 <8b> 10 8b 44 24 34 89 7c 24 0c 8b 7c 24 38 c7 44 24 14 e8 03 00
EIP: [<f8fa12f1>] sonixRegWrite+0x83/0x19b [gspca] SS:ESP 0068:e674bd28
Il problema è che rmmod non mi scarica più il modulo e mi tocca riavviare (qualcuno sa come ovviare a questo problema?)