From owner-freebsd-mobile@FreeBSD.ORG Wed Nov 16 19:33:48 2005 Return-Path: X-Original-To: freebsd-mobile@freebsd.org Delivered-To: freebsd-mobile@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 618) id 009E516A420; Wed, 16 Nov 2005 19:33:47 +0000 (GMT) In-Reply-To: <437A6572.4060604@bitmap.net> from Graham Bakay at "Nov 15, 2005 10:47:14 pm" To: graham@bitmap.net (Graham Bakay) Date: Wed, 16 Nov 2005 19:33:47 +0000 (GMT) X-Mailer: ELM [version 2.4ME+ PL54 (25)] MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Message-Id: <20051116193347.009E516A420@hub.freebsd.org> From: wpaul@FreeBSD.ORG (Bill Paul) Cc: freebsd-mobile@freebsd.org Subject: Re: ndis 64-bit Broadcom 4318 on a Compaq R4125 X-BeenThere: freebsd-mobile@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Mobile computing with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 16 Nov 2005 19:33:48 -0000 > Hi there, > > I'm trying to get ndis working with a 64-bit wireless driver on FreeBSD > 6.0 amd64. The windows driver works using ndis on Ubuntu. > > I've used ndisgen to create the kernel module. When I try to load it, I > get the following: > > no match for RtlZeroMemory > no match for RtlCopyMemory > ntoskrnl dummy called... > ndis0: mem 0xb0204000-0xb0205fff irq > 21 at device 2.0 on pci3 > ndis0: NDIS API version: 5.1 > ntoskrnl dummy called... > ntoskrnl dummy called... > [repeats multiple times] > fpudna in kernel mode! > [repeats multiple times] > ntoskrnl dummy called... > ntoskrnl dummy called... > ndis0: NDIS ERROR: c000138d (unknown error) > ndis0: init handler failed > device_attach: ndis0 attach returned 6 > > Is there anything I can do to get this working in FreeBSD? Or is it just > an incompatibility that I'll have to live with? > > Thanks, > Graham. Get the latest copies of the files in src/sys/compat/ndis and src/sys/dev/if_ndis from the RELENG_6 branch. Note: you do _NOT_ have to update your entire system, just the files in these directories. The quickest way to do this is probably with anoncvs: % setenv CVSROOT anoncvs@anoncvs1.FreeBSD.org:/home/ncvs % cvs checkout -rRELENG_6 src/sys/compat/ndis src/sys/dev/if_ndis You can also use a mirror if you're outside the US. See http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/anoncvs.html for a list. Copy the files to src/sys/compat/ndis and src/sys/dev/if_ndis, then rebuild ndis.ko and if_ndis.ko: # cd /sys/modules/ndis # make; make install # cd /sus/modules/if_ndis # make; make install It should work then. I've been using the same driver on my dual Opteron amd64 box at home for the past week and it's been very stable (in SMP mode even): Nov 9 18:16:59 opteron kernel: ndis0: mem 0xe0210000-0xe0211fff irq 31 at device 1.0 on pci3 Nov 9 18:16:59 opteron kernel: ndis0: NDIS API version: 5.1 Nov 9 18:16:59 opteron kernel: fpudna in kernel mode! Nov 9 18:17:01 opteron kernel: ndis0: Ethernet address: 00:30:bd:f5:ea:26 [/var/log]:opteron.moo.com{41}% uname -srm FreeBSD 6.0-RELEASE amd64 [/var/log]:opteron.moo.com{42}% uptime 11:20AM up 6 days, 17:06, 14 users, load averages: 1.81, 1.52, 1.43 Note that the "fpudna in kernel mode!" message will still show up even after you fix ndis.ko and if_ndis.ko, but the interface will work anyway. The messages appear to be harmless for now. -Bill -- ============================================================================= -Bill Paul (510) 749-2329 | Senior Engineer, Master of Unix-Fu wpaul@windriver.com | Wind River Systems ============================================================================= you're just BEGGING to face the moose =============================================================================