Российский производитель и разработчик сертифицированного измерительного оборудования с 1987 года


Linux ошибка в драйвере ldevusb

Вы не вошли.

 Поиск | Регистрация | Вход 

Роман
27.02.2012 08:32:42
#1

Гость

Linux ошибка в драйвере ldevusb

вот лог е-440 

Feb 27 09:21:58 biuk kernel: [25283.419644] ldevice: disagrees about version of symbol __register_chrdev
Feb 27 09:21:58 biuk kernel: [25283.419654] ldevice: Unknown symbol __register_chrdev (err -22)
Feb 27 09:21:58 biuk kernel: [25283.440965] ldevusb: disagrees about version of symbol usb_alloc_urb
Feb 27 09:21:58 biuk kernel: [25283.440969] ldevusb: Unknown symbol usb_alloc_urb (err -22)
Feb 27 09:21:58 biuk kernel: [25283.440972] ldevusb: disagrees about version of symbol usb_free_urb
Feb 27 09:21:58 biuk kernel: [25283.440973] ldevusb: Unknown symbol usb_free_urb (err -22)
Feb 27 09:21:58 biuk kernel: [25283.441009] ldevusb: Unknown symbol ldev_register (err 0)
Feb 27 09:21:58 biuk kernel: [25283.441014] ldevusb: disagrees about version of symbol remap_pfn_range
Feb 27 09:21:58 biuk kernel: [25283.441016] ldevusb: Unknown symbol remap_pfn_range (err -22)
Feb 27 09:21:58 biuk kernel: [25283.441028] ldevusb: Unknown symbol ldev_add (err 0)
Feb 27 09:21:58 biuk kernel: [25283.441037] ldevusb: disagrees about version of symbol usb_submit_urb
Feb 27 09:21:58 biuk kernel: [25283.441039] ldevusb: Unknown symbol usb_submit_urb (err -22)
Feb 27 09:21:58 biuk kernel: [25283.441049] ldevusb: Unknown symbol ldev_remove (err 0)
Feb 27 09:21:58 biuk kernel: [25283.441057] ldevusb: disagrees about version of symbol usb_kill_urb
Feb 27 09:21:58 biuk kernel: [25283.441059] ldevusb: Unknown symbol usb_kill_urb (err -22)
Feb 27 09:22:05 biuk kernel: [25290.836116] usb 1-1.2: new full speed USB device number 6 using ehci_hcd
Feb 27 09:25:00 biuk kernel: [25464.886598] lcard: Staring LDev driver...
Feb 27 09:25:00 biuk kernel: [25464.895603] lcard: Alloc
Feb 27 09:25:00 biuk kernel: [25464.895615] lcard: ldevusb device now attached to ldev0
Feb 27 09:25:00 biuk kernel: [25464.895685] usbcore: registered new interface driver ldevusb
Feb 27 09:25:45 biuk kernel: [25510.257833] usb 1-1.2: USB disconnect, device number 6
Feb 27 09:25:45 biuk kernel: [25510.257970] lcard: in delete
Feb 27 09:25:45 biuk kernel: [25510.257976] lcard: ldev0 now disconnected
Feb 27 09:25:50 biuk kernel: [25515.328762] usb 1-1.2: new full speed USB device number 7 using ehci_hcd
Feb 27 09:25:52 biuk kernel: [25517.440155] lcard: Alloc
Feb 27 09:25:52 biuk kernel: [25517.440166] lcard: ldevusb device now attached to ldev0
Feb 27 09:28:19 biuk kernel: [25663.635155] lcard: LDev_Open call
Feb 27 09:28:19 biuk kernel: [25663.635161] lcard: subminor 0
Feb 27 09:28:19 biuk kernel: [25663.635207] BUG: unable to handle kernel paging request at 00000000e00897b7
Feb 27 09:28:19 biuk kernel: [25663.635213] IP: [<ffffffffa0f2d82a>] ldevusb_ioctl+0x29/0xf97 [ldevusb]
Feb 27 09:28:19 biuk kernel: [25663.635221] PGD d2114067 PUD 0
Feb 27 09:28:19 biuk kernel: [25663.635225] Oops: 0000 [#1] SMP
Feb 27 09:28:19 biuk kernel: [25663.635228] CPU 0
Feb 27 09:28:19 biuk kernel: [25663.635229] Modules linked in: ldevusb ldevice nls_iso8859_1 nls_cp437 vfat fat usb_storage uas bnep rfcomm bluetooth parport_pc ppdev vesafb nvidia(P) snd_hda_codec_hdmi arc4 snd_hda_codec_conexant snd_seq_midi joydev snd_hda_intel snd_hda_codec snd_hwdep snd_rawmidi snd_seq_midi_event thinkpad_acpi nvram snd_seq uvcvideo videodev v4l2_compat_ioctl32 snd_pcm video snd_timer snd_seq_device wmi snd rtl8192ce rtl8192c_common rtlwifi mac80211 cfg80211 soundcore snd_page_alloc coretemp psmouse serio_raw mei(C) lp parport usbhid hid ahci libahci firewire_ohci firewire_core crc_itu_t sdhci_pci sdhci e1000e
Feb 27 09:28:19 biuk kernel: [25663.635278]
Feb 27 09:28:19 biuk kernel: [25663.635282] Pid: 6247, comm: test Tainted: P         C  3.0.0-16-generic #28-Ubuntu LENOVO 42403EG/42403EG
Feb 27 09:28:19 biuk kernel: [25663.635287] RIP: 0010:[<ffffffffa0f2d82a>]  [<ffffffffa0f2d82a>] ldevusb_ioctl+0x29/0xf97 [ldevusb]
Feb 27 09:28:19 biuk kernel: [25663.635293] RSP: 0018:ffff8800b292be18  EFLAGS: 00010286
Feb 27 09:28:19 biuk kernel: [25663.635295] RAX: 00000000ffffffe7 RBX: 000000008672cda0 RCX: 00007fff8672cda0
Feb 27 09:28:19 biuk kernel: [25663.635298] RDX: 00007fff8672cda0 RSI: 00000000e0089717 RDI: ffff880112efbcc0
Feb 27 09:28:19 biuk kernel: [25663.635300] RBP: ffff8800b292bed8 R08: ffffffffa0f2d801 R09: ffff880112c4fd18
Feb 27 09:28:19 biuk kernel: [25663.635303] R10: 00007fff8672cb20 R11: 0000000000000206 R12: ffff880112efbcc0
Feb 27 09:28:19 biuk kernel: [25663.635305] R13: ffff8800d111c478 R14: 00007fff8672cda0 R15: 00007fff8672cda0
Feb 27 09:28:19 biuk kernel: [25663.635308] FS:  00007f6c1e4ca740(0000) GS:ffff88011dc00000(0000) knlGS:0000000000000000
Feb 27 09:28:19 biuk kernel: [25663.635311] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
Feb 27 09:28:19 biuk kernel: [25663.635313] CR2: 00000000e00897b7 CR3: 00000000bfcdd000 CR4: 00000000000406f0
Feb 27 09:28:19 biuk kernel: [25663.635316] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
Feb 27 09:28:19 biuk kernel: [25663.635318] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Feb 27 09:28:19 biuk kernel: [25663.635321] Process test (pid: 6247, threadinfo ffff8800b292a000, task ffff880102881720)
Feb 27 09:28:19 biuk kernel: [25663.635324] Stack:
Feb 27 09:28:19 biuk kernel: [25663.635325]  ffff8800b292be58 ffff88010ab90ed0 0000000000000282 00007f6c1e4f1000
Feb 27 09:28:19 biuk kernel: [25663.635330]  ffff880102881720 000000000000000e ffff8800b292bef8 ffffffff811a2ef2
Feb 27 09:28:19 biuk kernel: [25663.635334]  ffff8801165bd068 ffff8800d20a9000 ffff8800b292be78 ffffffff8139d19e
Feb 27 09:28:19 biuk kernel: [25663.635338] Call Trace:
Feb 27 09:28:19 biuk kernel: [25663.635345]  [<ffffffff811a2ef2>] ? fsnotify+0x1c2/0x2a0
Feb 27 09:28:19 biuk kernel: [25663.635351]  [<ffffffff8139d19e>] ? tty_ldisc_deref+0xe/0x10
Feb 27 09:28:19 biuk kernel: [25663.635355]  [<ffffffff8117a13a>] do_vfs_ioctl+0x8a/0x340
Feb 27 09:28:19 biuk kernel: [25663.635361]  [<ffffffff811683d0>] ? vfs_write+0x110/0x180
Feb 27 09:28:19 biuk kernel: [25663.635364]  [<ffffffff8117a481>] sys_ioctl+0x91/0xa0
Feb 27 09:28:19 biuk kernel: [25663.635369]  [<ffffffff815faac2>] system_call_fastpath+0x16/0x1b
Feb 27 09:28:19 biuk kernel: [25663.635371] Code: 5d c3 55 48 89 e5 48 81 ec c0 00 00 00 48 89 5d d8 4c 89 65 e0 4c 89 6d e8 4c 89 75 f0 4c 89 7d f8 66 66 66 66 90 89 d3 49 89 cf <4c> 8b ae a0 00 00 00 ba 02 00 00 00 be d0 00 00 00 bf 08 20 00
Feb 27 09:28:19 biuk kernel: [25663.635406] RIP  [<ffffffffa0f2d82a>] ldevusb_ioctl+0x29/0xf97 [ldevusb]
Feb 27 09:28:19 biuk kernel: [25663.635411]  RSP <ffff8800b292be18>
Feb 27 09:28:19 biuk kernel: [25663.635413] CR2: 00000000e00897b7
Feb 27 09:28:19 biuk kernel: [25663.635524] ---[ end trace 8217b098d98660a2 ]---
Feb 27 09:28:19 biuk kernel: [25663.635631] lcard: in close

27.02.2012 11:04:16
#2

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux ошибка в драйвере ldevusb

это не ошибка а наверное ядро слишком свежее...

Роман
27.02.2012 12:00:18
#3

Гость

Re: Linux ошибка в драйвере ldevusb

Да но вываливается в stubs.c в строке
102  if(ioctl((int)hDevice, dwIoControlCode, &ibuf)) break;
протестировано и в 64 бита и в 32 битной.
теперь вместо .ioctl надо использовать либо unlock_ioctl либо compat_ioctl. Если не сложно посмотрите в последней ubuntu 11.10 -ведь на сайте есть же livecd - необязательно ведь ставить на диск а можно же с флешки работать.

27.02.2012 12:33:46
#4

Сотрудник "Л Кард"
Откуда: Москва
Здесь с 23.04.2014
Сообщений: 3,727

Re: Linux ошибка в драйвере ldevusb

Судя поначалу лога там ного изменений.... с ioctl я так понимаю compat_ioctl использоватьможно... я посмотрю но не так быстро...

Роман
28.02.2012 17:26:56
#5

Гость

Re: Linux ошибка в драйвере ldevusb

в lcomp loade440.cpp в 3.0.0.16 х64
надо поменять
for(i=0; i < LCBios[0]/2; i++) Buffer[i] = ((Buffer[i] & 0x0000FFFF) << 8) | ((Buffer[i] & 0x00FF0000) >> 16);
на
PULONG BiosBuffer = new ULONG[LCBios[0]/2];
      for(i=0; i < LCBios[0]/2; i++)
      {
          BiosBuffer[i]=((Buffer[i] & 0x0000FFFF) << 8) | ((Buffer[i] & 0x00FF0000) >> 16);
      }
иначе не работает

Mrak
12.01.2013 18:09:00
#6

Гость

Re: Linux ошибка в драйвере ldevusb

В файле ldevusbu.c в строке вызова функции

usb_submit_urb(dev->urb, GFP_KERNEL);

исправить GFP_KERNEL на GFP_ATOMIC

У меня таже трабла была когда я пересел с 2.6 на 3.2 ядро. Во здесь нашел ответ.

http://ubuntuforums.org/showthread.php?t=1718667

Честно говоря я не понял в чем дело, но это помогло.