Thread: [Ndiswrapper-general] ndiswrapper 1.22 problems with DISABLE_USB=1
Status: Beta
Brought to you by:
pgiri
From: hggdh <hg...@gm...> - 2006-08-05 21:47:36
|
Hi Giri, I see that the ./driver/Makefile has changed from 1.21 to now. When=20 I make DISABLE_USB=3D1 on 1.22 I get the old failures we had back on,=20 I guess, 1.16 or so. win2lin is getting compiled, and since USB support has been=20 disabled, we get a series of unresolvable references at load time. I will have a look to find out what was changed, & send out a patch=20 ASAP. Regards, |
From: Pavel R. <pr...@gn...> - 2006-08-06 02:54:16
|
On Sat, 2006-08-05 at 16:47 -0500, hggdh wrote: > Hi Giri, > > I see that the ./driver/Makefile has changed from 1.21 to now. When > I make DISABLE_USB=1 on 1.22 I get the old failures we had back on, > I guess, 1.16 or so. > > win2lin is getting compiled, and since USB support has been > disabled, we get a series of unresolvable references at load time. Next time please show the exact error messages, not your interpretation of what you have seen. Even if you understand everything (which is probably not the case), it's better to give others a chance to see that you are seeing. I can reproduce the problem, and the fix is trivial. ChangeLog: Rename last instance of x86_64_stubs.h to win2lin_stubs.h Index: driver/Makefile =================================================================== --- driver/Makefile (revision 1981) +++ driver/Makefile (working copy) @@ -162,7 +162,7 @@ win2lin_stubs: win2lin_stubs.h ifdef DISABLE_USB -x86_64_stubs.h: hal.c misc_funcs.c ndis.c ntoskernel.c ntoskernel_io.c \ +win2lin_stubs.h: hal.c misc_funcs.c ndis.c ntoskernel.c ntoskernel_io.c \ pnp.c wrapndis.c else win2lin_stubs.h: hal.c misc_funcs.c ndis.c ntoskernel.c ntoskernel_io.c \ -- Regards, Pavel Roskin |
From: hggdh <hg...@gm...> - 2006-08-06 04:06:49
|
On Saturday 05 August 2006 21:54, Pavel Roskin wrote: > On Sat, 2006-08-05 at 16:47 -0500, hggdh wrote: > Next time please show the exact error messages, not your=20 interpretation > of what you have seen. Even if you understand everything (which=20 is > probably not the case), it's better to give others a chance to see=20 that > you are seeing. I can reproduce the problem, and the fix is=20 trivial. Oh thank you Pavel, the light now shines here. Unfortunately for you, it was already shining before your most=20 unhelpful comment. I had already seen it, and corrected it. Sorry. It also seems that I am one of the few that does not use USB for=20 Windows drivers. But, alas, it still does not work... Can you enlighten us all a bit more? Or, perhaps, be a little more=20 civil next time? =2D---- cut here for exact error mesages ---- ndiswrapper version 1.22 loaded (preempt=3Dno,smp=3Dno) ndiswrapper (load_pe_images:573): fixing KI_USER_SHARED_DATA address=20 in the driver ndiswrapper: driver bcmwl5 (Broadcom,02/11/2005, 3.100.64.0) loaded ACPI: PCI Interrupt 0000:03:07.0[A] -> GSI 22 (level, low) -> IRQ=20 177 Unable to handle kernel NULL pointer dereference at 0000000000000030=20 RIP: <ffffffff883c8c94>{:ndiswrapper:win2lin9+50} PGD efcd067 PUD ecf0067 PMD 0 Oops: 0000 [1] last sysfs file: /class/net/eth0/carrier CPU 0 Modules linked in: ndiswrapper fglrx ppp_generic slhc xt_tcpudp=20 ip6table_filter ip6_tables xt_state cpufreq_ondemand=20 cpufreq_userspace cpufreq_powersave powernow_k8 freq_table=20 xt_pkttype iptable_raw xt_CLASSIFY xt_CONNMARK xt_connmark=20 af_packet xt_physdev xt_conntrack iptable_mangle ipv6 ipt_ULOG=20 ipt_TTL ipt_ttl ipt_TOS ipt_tos ipt_TCPMSS ipt_SAME ipt_REJECT=20 ipt_REDIRECT ipt_recent ipt_policy ipt_owner ipt_NETMAP=20 ipt_multiport ipt_MASQUERADE ipt_LOG ipt_iprange ipt_hashlimit=20 ipt_esp ipt_ECN ipt_ecn ipt_DSCP ipt_dscp ipt_CLUSTERIP ipt_ah=20 ipt_addrtype ip_nat_irc ip_nat_tftp ip_nat_ftp ip_conntrack_irc=20 ip_conntrack_tftp ip_conntrack_ftp iptable_nat ip_nat ip_conntrack=20 nfnetlink iptable_filter ip_tables x_tables vmnet parport_pc=20 parport vmmon snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device edd=20 button battery ac apparmor aamatch_pcre nls_utf8 ntfs loop usbhid=20 dm_mod pcmcia firmware_class ohci1394 ieee1394 ehci_hcd snd_atiixp=20 snd_ac97_codec snd_ac97_bus sky2 snd_pcm snd_timer snd soundcore=20 snd_page_alloc ide_cd cdrom ohci_hcd usbcore yenta_socket=20 rsrc_nonstatic pcmcia_core reiserfs fan thermal processor atiixp=20 ide_disk ide_core Pid: 6673, comm: loadndisdriver Tainted: P U=20 2.6.16.21-0.13-default-airprime #1 RIP: 0010:[<ffffffff883c8c94>]=20 <ffffffff883c8c94>{:ndiswrapper:win2lin9+50} RSP: 0018:ffff81000b2d5648 EFLAGS: 00010286 RAX: ffff81002072c000 RBX: ffffc20010708000 RCX: ffffc20011aeb1d0 RDX: 0000000000000002 RSI: ffff81000b2d56c0 RDI: ffff81000b2d5648 RBP: ffff81000a4990e0 R08: 0000000000000001 R09: 0000000000000084 R10: ffffffff883b84ad R11: ffffc20011aeb1d0 R12: 000000000000c202 R13: ffff81002072c000 R14: ffff81000c7698a0 R15: ffff81000a4990e8 =46S: 00002ba9bce486d0(0000) GS:ffffffff803f7000(0000)=20 knlGS:00000000f7d426b0 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000000000000030 CR3: 000000000feef000 CR4: 00000000000006e0 Process loadndisdriver (pid: 6673, threadinfo ffff81000b2d4000, task=20 ffff810011296750) Stack: ffffc20010708000 ffff81000a4990e0 ffffc20011a7fcba=20 ffffc20010706000 0000000000000004 ffff81000b2d5768 00000000ffffffff=20 0000000000000001 0000000000000084 ffffffff18001000 Call Trace:=20 <ffffffff883ba02b>{:ndiswrapper:NdisAllocateMemoryWithTag+13} <ffffffff883c8b8b>{:ndiswrapper:win2lin3+17}=20 <ffffffff883ba02b>{:ndiswrapper:NdisAllocateMemoryWithTag+13} <ffffffff883c8b8b>{:ndiswrapper:win2lin3+17}=20 <ffffffff883c275a>{:ndiswrapper:IofCompleteRequest+125} <ffffffff883c65cb>{:ndiswrapper:miniport_init+162}=20 <ffffffff883c34d9>{:ndiswrapper:IoSyncForwardIrp+98} <ffffffff883c66f2>{:ndiswrapper:NdisDispatchPnp+115} <ffffffff883c8b77>{:ndiswrapper:win2lin2+14}=20 <ffffffff883c1ce4>{:ndiswrapper:IofCallDriver+61} <ffffffff883c4095>{:ndiswrapper:IoSendIrpTopDev+76} <ffffffff883c40de>{:ndiswrapper:IoSendIrpTopDev+149} <ffffffff883c42e1>{:ndiswrapper:pnp_start_device+66} =20 <ffffffff883c450f>{:ndiswrapper:wrap_pnp_start_pci_device+491} <ffffffff801d515d>{pci_device_probe+76}=20 <ffffffff80231d7c>{driver_probe_device+82} <ffffffff80231ea7>{__driver_attach+107}=20 <ffffffff80231e3c>{__driver_attach+0} <ffffffff802317a1>{bus_for_each_dev+67}=20 <ffffffff8023140f>{bus_add_driver+126} <ffffffff801d52f8>{__pci_register_driver+110}=20 <ffffffff883b6af3>{:ndiswrapper:wrapper_ioctl+809} <ffffffff801708a0>{do_path_lookup+525}=20 <ffffffff8012a499>{current_fs_time+53} <ffffffff8017251d>{do_ioctl+69}=20 <ffffffff80172733>{vfs_ioctl+523} <ffffffff80179f78>{mntput_no_expire+25}=20 <ffffffff801727a7>{sys_ioctl+98} <ffffffff8010a3be>{system_call+126} Code: 48 2b 24 25 30 00 00 00 48 31 c0 41 ff d2 48 03 24 25 30 00 RIP <ffffffff883c8c94>{:ndiswrapper:win2lin9+50} RSP=20 <ffff81000b2d5648> CR2: 0000000000000030 <3>ndiswrapper (wrapper_init:129): loadndiswrapper failed (9);=20 check system log for messages from 'loadndisdriver' Unable to handle kernel NULL pointer dereference at 0000000000000000=20 RIP: <ffffffff802aadce>{wait_for_completion+98} PGD 11b0e067 PUD 1c1c3067 PMD 0 Oops: 0002 [2] last sysfs file: /class/net/eth0/carrier CPU 0 Modules linked in: ndiswrapper fglrx ppp_generic slhc xt_tcpudp=20 ip6table_filter ip6_tables xt_state cpufreq_ondemand=20 cpufreq_userspace cpufreq_powersave powernow_k8 freq_table=20 xt_pkttype iptable_raw xt_CLASSIFY xt_CONNMARK xt_connmark=20 af_packet xt_physdev xt_conntrack iptable_mangle ipv6 ipt_ULOG=20 ipt_TTL ipt_ttl ipt_TOS ipt_tos ipt_TCPMSS ipt_SAME ipt_REJECT=20 ipt_REDIRECT ipt_recent ipt_policy ipt_owner ipt_NETMAP=20 ipt_multiport ipt_MASQUERADE ipt_LOG ipt_iprange ipt_hashlimit=20 ipt_esp ipt_ECN ipt_ecn ipt_DSCP ipt_dscp ipt_CLUSTERIP ipt_ah=20 ipt_addrtype ip_nat_irc ip_nat_tftp ip_nat_ftp ip_conntrack_irc=20 ip_conntrack_tftp ip_conntrack_ftp iptable_nat ip_nat ip_conntrack=20 nfnetlink iptable_filter ip_tables x_tables vmnet parport_pc=20 parport vmmon snd_pcm_oss snd_mixer_oss snd_seq snd_seq_device edd=20 button battery ac apparmor aamatch_pcre nls_utf8 ntfs loop usbhid=20 dm_mod pcmcia firmware_class ohci1394 ieee1394 ehci_hcd snd_atiixp=20 snd_ac97_codec snd_ac97_bus sky2 snd_pcm snd_timer snd soundcore=20 snd_page_alloc ide_cd cdrom ohci_hcd usbcore yenta_socket=20 rsrc_nonstatic pcmcia_core reiserfs fan thermal processor atiixp=20 ide_disk ide_core Pid: 6665, comm: modprobe Tainted: P U=20 2.6.16.21-0.13-default-airprime #1 RIP: 0010:[<ffffffff802aadce>]=20 <ffffffff802aadce>{wait_for_completion+98} RSP: 0018:ffff810011261d48 EFLAGS: 00010002 RAX: ffffffff883e39d8 RBX: ffffffff883e39d0 RCX: 0000000000000000 RDX: ffff810011261d90 RSI: ffff810011261d70 RDI: ffff810011261da0 RBP: ffff810011261db8 R08: ffffffff801c8c57 R09: ffff81000dc9ff20 R10: ffff81000dca2f70 R11: ffffffff80232496 R12: ffffffff8032a1c0 R13: ffffffff883e3640 R14: ffff81003d4544f0 R15: ffffc20010843900 =46S: 00002aba375fe6d0(0000) GS:ffffffff803f7000(0000)=20 knlGS:00000000f7d426b0 CS: 0010 DS: 0000 ES: 0000 CR0: 000000008005003b CR2: 0000000000000000 CR3: 000000000a252000 CR4: 00000000000006e0 Process modprobe (pid: 6665, threadinfo ffff810011260000, task=20 ffff810011b0c790) Stack: 0000000000000000 0000000000000000 0000000000000000=20 0000000000000000 0000000000000000 ffffffff8019bf27 0000000000000001=20 ffff810011b0c790 ffffffff80122c8f ffffffff883e39d8 Call Trace: <ffffffff8019bf27>{sysfs_hash_and_remove+55} <ffffffff80122c8f>{default_wake_function+0}=20 <ffffffff80231346>{bus_remove_driver+101} <ffffffff802320a5>{driver_unregister+13}=20 <ffffffff801d5197>{pci_unregister_driver+18} <ffffffff883b6724>{:ndiswrapper:loader_exit+78}=20 <ffffffff883c8b25>{:ndiswrapper:module_cleanup+9} <ffffffff883e60cc>{:ndiswrapper:wrapper_init+204}=20 <ffffffff8013c2dc>{sys_init_module+4837} <ffffffff8010a3be>{system_call+126} Code: 48 89 11 48 89 4d e0 65 48 8b 04 25 00 00 00 00 48 c7 00 02 RIP <ffffffff802aadce>{wait_for_completion+98} RSP=20 <ffff810011261d48> CR2: 0000000000000000 =2D---- cut here for exact error mesages ---- |
From: Giridhar P. <gi...@lm...> - 2006-08-06 10:39:48
|
I need (more) information about your configuration. Which gcc? Is it using optimization flag? If so, what level? (You can find it by compiling make with 'make V=1'.) Does everything work with the same setup if you use ndiswrapper version 1.21? Quite a bit of changes between 1.21 and 1.22 are to how ndiswrapper instruments calls to Windows functions. In essence, ndiswrapper puts function arguments in registers and stack as Windows function would expect (just as a compiler would do). A few people have tested before 1.22 was released, but I don't remember seeing any reports about Broadcom driver. Try 1.22-rc1 and 1.22-rc2 and see if you can isolate when it broke. -- Giri |
From: Pavel R. <pr...@gn...> - 2006-08-06 06:20:42
|
Hello! On Sat, 2006-08-05 at 23:06 -0500, hggdh wrote: > Unfortunately for you, it was already shining before your most > unhelpful comment. I had already seen it, and corrected it. Sorry. Unfortunately? It would be "unfortunately" if I wasted hours on something that had been fixed already. I spent a few minutes. I didn't intend to offend you. Actually, I think my comment was helpful, considering that you posted more information this time. > Unable to handle kernel NULL pointer dereference at 0000000000000030 > RIP: 0010:[<ffffffff883c8c94>] > <ffffffff883c8c94>{:ndiswrapper:win2lin9+50} [skip] > Code: 48 2b 24 25 30 00 00 00 48 31 c0 41 ff d2 48 03 24 25 30 00 This instruction is: sub 0x30,%rsp "NULL pointer dereference at 0000000000000030" means that the processor is trying to read at the address 0x30. The intention was apparently to decrease the stack pointer by 0x30. As I understand it, "$" for immediate argument is not optional, even in arithmetic expressions. Please try this patch: Use "$" for immediate arguments in call_lin_func_args --- driver/win2lin_stubs.S +++ driver/win2lin_stubs.S @@ -178,9 +178,9 @@ # The arguments should have been copied onto stack already. #define call_lin_func_args(n) \ - sub (n-6)*8, %rsp ;\ + sub $(n-6)*8, %rsp ;\ call_lin_func ;\ - add (n-6)*8, %rsp + add $(n-6)*8, %rsp # m is index of Linux arg required, n is total number of args to function # After stack frame is allocated, Linux arg 7 should be at 0(%rsp), -- Regards, Pavel Roskin |
From: Giridhar P. <gi...@lm...> - 2006-08-06 10:37:49
|
On Sat, 05 Aug 2006 22:54:07 -0400, Pavel Roskin <pr...@gn...> said: Pavel> Rename last instance of x86_64_stubs.h to win2lin_stubs.h Thanks for the patch. Committed to svn. -- Giri |
From: Pavel R. <pr...@gn...> - 2006-08-06 21:19:41
|
On Sun, 2006-08-06 at 05:53 -0400, Giridhar Pemmasani wrote: > On Sun, 06 Aug 2006 02:20:30 -0400, Pavel Roskin <pr...@gn...> said: > > Pavel> Use "$" for immediate arguments in call_lin_func_args > > Thank you very much! Nice catch. Committed to svn. > > This issue should not be there with 1.22 release, though - there '$' > is used. I don't know if the original poster was using release or > svn. If the issue was with svn, then your patch definitely addresses > it. Otherwise (hopefully not), something else needs fixing, too. I compiled the 1.22 tarball from SourceForge and disassembled win2lin_stubs.o - it looks sane to me: 134: 48 83 ec 30 sub $0x30,%rsp 138: 48 31 c0 xor %rax,%rax 13b: 41 ff d2 callq *%r10 13e: 48 83 c4 30 add $0x30,%rsp That's on Fedora development. $ as --version GNU assembler 2.17.50.0.3-2 20060715 On the other hand, the driver in Subversion still identifies itself as 1.22. I know that other projects have some facilities to prevent this confusion. For example, the release script sets the release version, such as 1.22, commits and tags the repository and then changes the version to e.g. 1.22dev and makes another commit. This way, only the tagged versions would have version numbers without "dev". -- Regards, Pavel Roskin |
From: Giridhar P. <pg...@ya...> - 2006-08-07 00:12:17
|
--- Pavel Roskin <pr...@gn...> wrote: > I compiled the 1.22 tarball from SourceForge and disassembled > win2lin_stubs.o - it looks sane to me: If only the original poster clarified if he was using release or svn, all this confusion could've been avoided. Yes, the release should work fine, as it uses '$' for constants. > confusion. For example, the release script sets the release version, > such as 1.22, commits and tags the repository and then changes the > version to e.g. 1.22dev and makes another commit. This way, only the > tagged versions would have version numbers without "dev". I marked svn as 1.23pre1. Thanks, Giri __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com |
From: hggdh <hg...@gm...> - 2006-08-07 00:40:32
|
On Sunday 06 August 2006 19:12, Giridhar Pemmasani wrote: > If only the original poster clarified if he was using release or=20 svn, all > this confusion could've been avoided. Yes, the release should work=20 fine, as > it uses '$' for constants. Sorry, Giri, I was unavailable. I was using svn. I will update my svn image, and try again. |
From: hggdh <hg...@gm...> - 2006-08-07 00:53:46
|
On Sunday 06 August 2006 19:12, Giridhar Pemmasani wrote: Just tried current svn -- revision 1990. ./driver/Makefile is=20 incorrect -- it has in it what looks like diff output intermixed. I=20 will try to load it now, and will report what I get. hggdh@xango:/usr/src/Download/ndiswrapper> diff driver/Makefile=20 driver/Makefile.r1990 97a98 > 98a100 > <<<<<<< .mine 100a103,104 > =3D=3D=3D=3D=3D=3D=3D > else 101a106,108 > > ifeq ($(CONFIG_USB),y) > >>>>>>> .r1988 102a110 > <<<<<<< .mine 105c113,116 < usb_exports.h: usb.c =2D-- > =3D=3D=3D=3D=3D=3D=3D > endif > ifeq ($(CONFIG_USB),m) > >>>>>>> .r1988 107a119,120 > <<<<<<< .mine > endif 108a122 > =3D=3D=3D=3D=3D=3D=3D 109a124 > >>>>>>> .r1988 |
From: hggdh <hg...@gm...> - 2006-08-07 01:00:38
|
1.23rc1 fails to load. I will recompile it with debug & try again. I=20 know 1.21 did work (I just verified it), so now I guess one option=20 is to find out when it got broken (1.22.rc1|2, or 1.22). Output of dmesg (no debug): ndiswrapper version 1.23pre1 loaded (preempt=3Dno,smp=3Dno) ndiswrapper (load_pe_images:573): fixing KI_USER_SHARED_DATA address=20 in the driver ndiswrapper: driver bcmwl5 (Broadcom,02/11/2005, 3.100.64.0) loaded ACPI: PCI Interrupt 0000:03:07.0[A] -> GSI 22 (level, low) -> IRQ=20 177 ndiswrapper (NdisWriteErrorLogEntry:241): log: 229C7A50, count: 1,=20 return_address: ffffffff8808cb8a ndiswrapper (NdisWriteErrorLogEntry:244): code: 267 ndiswrapper (miniport_init:264): couldn't initialize device:=20 C0000001 ndiswrapper (pnp_start_device:428): Windows driver couldn't=20 initialize the device (C0000001) ndiswrapper (miniport_halt:327): device ffff8100384963e0 is not=20 initialized - not halting ndiswrapper: device eth%d removed unregister_netdevice: device eth%d/ffff810038496000 never was=20 registered ndiswrapper: probe of 0000:03:07.0 failed with error -22 hggdh@xango:/usr/src/Download/ndiswrapper> uname -a Linux xango 2.6.16.21-0.13-default-airprime #1 Sun Jul 23 22:39:18=20 CDT 2006 x86_64 x86_64 x86_64 GNU/Linux hggdh@xango:/usr/src/Download/ndiswrapper>=20 sudo /usr/sbin/ndiswrapper -l Installed drivers: bcmwl5 driver installed, hardware present |
From: Pavel R. <pr...@gn...> - 2006-08-07 01:02:22
|
Hello! On Sun, 2006-08-06 at 19:53 -0500, hggdh wrote: > On Sunday 06 August 2006 19:12, Giridhar Pemmasani wrote: > > Just tried current svn -- revision 1990. ./driver/Makefile is > incorrect -- it has in it what looks like diff output intermixed. I > will try to load it now, and will report what I get. > > hggdh@xango:/usr/src/Download/ndiswrapper> diff driver/Makefile > driver/Makefile.r1990 > 97a98 > > > 98a100 > > <<<<<<< .mine It's a product of merging. If you don't want to keep your changes, then revert them: svn revert -R . -- Regards, Pavel Roskin |
From: hggdh <hg...@gm...> - 2006-08-07 02:02:37
|
Cheers, Pavel. On Sunday 06 August 2006 20:02, Pavel Roskin wrote: >=20 > It's a product of merging. If you don't want to keep your=20 changes, then > revert them: OK, and thanks -- I am not a subversion user. Cleaned up, and now I=20 am back to a fully-kosher revision 1990. I wonder if part (or all!) of my issues are due to this :-( |