Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Broadcom 94306 Wireless: Anyone get it working yet?
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Gentoo on AMD64
View previous topic :: View next topic  
Author Message
tejesh83
n00b
n00b


Joined: 14 Mar 2003
Posts: 7

PostPosted: Wed Mar 03, 2004 9:16 pm    Post subject: Broadcom 94306 Wireless: Anyone get it working yet? Reply with quote

Anyone have any luck getting Broadcom 94306 Wireless working yet?

I've tried ndiswrapper with no success. It doesn't appear to be 64 bit friendly. I commented out the dump stack routine (looks like a debug print statement), that relies on an ASM instruction to get the current stack pointer (not AMD64 compatible), which got the ndiswrapper module to compile and load.

But loadndisdriver fails with an illegal argument error when trying to load either the driver supplied with my eMachines M6807 and the one posted on the ndiswrapper website. It says to check dmesg for more info, but there's nothing useful there.

Any suggestions for what I should try next?
Back to top
View user's profile Send private message
gebner
Tux's lil' helper
Tux's lil' helper


Joined: 01 Jan 2004
Posts: 100
Location: Wien, EU

PostPosted: Wed Mar 03, 2004 10:51 pm    Post subject: Reply with quote

I don't think you will have any luck until there are native drivers for that since AFAIK you can't execute i386 code from an amd64 kernel.
_________________
clue = if 0 == 0 then clue else error "The poster didn't have any clue when he posted this."
Back to top
View user's profile Send private message
thither
n00b
n00b


Joined: 04 Feb 2004
Posts: 32

PostPosted: Thu Mar 04, 2004 12:47 am    Post subject: Reply with quote

gebner wrote:
I don't think you will have any luck until there are native drivers for that since AFAIK you can't execute i386 code from an amd64 kernel.

I've been wondering about this too. The 32-bit emulation libs are certainly able to run 32-bit code, but wrapping that emulation around a kernel module seems as if it would be complex at best.

Nonetheless, I've also been trying to get ndiswrapper working for this beastie. With version 0.4 I was able to compile it just by changing the getSp() function in driver/ndis.c to this:

Code:
int getSp(void)
{
        register volatile int i asm("%esp");
        return i;
}


...and everything seems to work just hunky-dory (the module loads fine). When I run the loadndiswrapper program, though, I get the mysterious error "Unable to prepare driver." Still trying to track down what this comes from.

I was also able to get the latest CVS version to compile and install by removing the (32-bit specific) divdi3.c and longlong.h files from the makefile (they're mysteriously copied out of gcc or glibc or somewhere). This gave me better results and didn't complain, but it didn't actually do anything when I told it to load the drivers (no new devices for iwconfig appeared).

This is all compiling against gentoo-dev-sources-2.6.3-r2, btw. I haven't experimented with drivers for the chip other than the eMachines ones, I might try that next (ie, the HP or Dell drivers).

ndiswrapper seems to make a lot of 32-bit assumptions which are probably not very correct for amd64, and getting it to work is most likely a challenge.
Back to top
View user's profile Send private message
tejesh83
n00b
n00b


Joined: 14 Mar 2003
Posts: 7

PostPosted: Sun Mar 07, 2004 7:05 pm    Post subject: Reply with quote

It's working on AMD64 FreeBSD using Project Evil:
http://groups.google.com/groups?q=freebsd+m6805&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=20040225161302.GB91049_chaos.fxp.org%40ns.sol.net&rnum=1

There are a couple CVS log entries that reference changes made to make the Project Evil source AMD64 friendly. Maybe someone can use this info to mod ndiswrapper.
Back to top
View user's profile Send private message
gebner
Tux's lil' helper
Tux's lil' helper


Joined: 01 Jan 2004
Posts: 100
Location: Wien, EU

PostPosted: Sat Apr 03, 2004 12:12 pm    Post subject: Reply with quote

tejesh83 wrote:
It's working on AMD64 FreeBSD using Project Evil:
http://groups.google.com/groups?q=freebsd+m6805&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=20040225161302.GB91049_chaos.fxp.org%40ns.sol.net&rnum=1


/me is seriously thinking about ditching gentoo and installing FreeBSD...
_________________
clue = if 0 == 0 then clue else error "The poster didn't have any clue when he posted this."
Back to top
View user's profile Send private message
tcma
Apprentice
Apprentice


Joined: 28 Jun 2004
Posts: 208

PostPosted: Fri Sep 03, 2004 2:08 am    Post subject: Reply with quote

Any success with Broadcom 94306 Wireless working on 64 bit AMD gentoo linux?
Using ndiswrapper or other methods?

thither wrote:
gebner wrote:
I don't think you will have any luck until there are native drivers for that since AFAIK you can't execute i386 code from an amd64 kernel.

I've been wondering about this too. The 32-bit emulation libs are certainly able to run 32-bit code, but wrapping that emulation around a kernel module seems as if it would be complex at best.

Nonetheless, I've also been trying to get ndiswrapper working for this beastie. With version 0.4 I was able to compile it just by changing the getSp() function in driver/ndis.c to this:

Code:
int getSp(void)
{
        register volatile int i asm("%esp");
        return i;
}


...and everything seems to work just hunky-dory (the module loads fine). When I run the loadndiswrapper program, though, I get the mysterious error "Unable to prepare driver." Still trying to track down what this comes from.

I was also able to get the latest CVS version to compile and install by removing the (32-bit specific) divdi3.c and longlong.h files from the makefile (they're mysteriously copied out of gcc or glibc or somewhere). This gave me better results and didn't complain, but it didn't actually do anything when I told it to load the drivers (no new devices for iwconfig appeared).

This is all compiling against gentoo-dev-sources-2.6.3-r2, btw. I haven't experimented with drivers for the chip other than the eMachines ones, I might try that next (ie, the HP or Dell drivers).

ndiswrapper seems to make a lot of 32-bit assumptions which are probably not very correct for amd64, and getting it to work is most likely a challenge.
Back to top
View user's profile Send private message
mindwarp
n00b
n00b


Joined: 23 Jan 2003
Posts: 22
Location: Detroit, MI

PostPosted: Fri Sep 03, 2004 4:31 am    Post subject: Reply with quote

gebner wrote:
tejesh83 wrote:
It's working on AMD64 FreeBSD using Project Evil:
http://groups.google.com/groups?q=freebsd+m6805&hl=en&lr=&ie=UTF-8&oe=UTF-8&selm=20040225161302.GB91049_chaos.fxp.org%40ns.sol.net&rnum=1


/me is seriously thinking about ditching gentoo and installing FreeBSD...


If you read the link he is running FreeBSD i386, not FreeBSD amd64. FreeBSD cannot use the wireless card any better in 64-bit mode than linux. And if you install gentoo i386, you will be able to run it just fine, same as freebsd.

~mindwarp
_________________
Mindwarp.net
Back to top
View user's profile Send private message
tcma
Apprentice
Apprentice


Joined: 28 Jun 2004
Posts: 208

PostPosted: Fri Sep 03, 2004 4:57 am    Post subject: Broadcom BCM94304 802.11g wifi on 64 bit AMD Reply with quote

I installed Linux version 2.6.7-gentoo-r11 AMD 64 bit on eMachines M6807.
I want to make the Broadcom BCM94304 chip work with 802.11g wireless on 64 bit AMD.
I know that Broadcom has only a 32 bit Windows driver. Therefore I need to use the ndiswrapper application.
Do I use the 32 bit Compatibility emulation mode to run ndiswrapper?

This is my approach, feel free to comment:
- install 32-bit emulation libraries.
- compile 32-bit ndiswrapper from a 64-bit environment using multilib.
- use 32-bit chroot environment to run the 32-bit ndiswrapper application
Back to top
View user's profile Send private message
ballyn
n00b
n00b


Joined: 14 Aug 2003
Posts: 73

PostPosted: Fri Sep 03, 2004 3:09 pm    Post subject: Reply with quote

This still won't work. Ndiswrapper is a kernel module, so to insert it into your running (64-bit) kernel you need a 64-bit module. A chroot doesn't change this.

Even though ndiswrapper will compile and run in a 64-bit kernel, it still can't use the 32-bit windows driver.

More info in this thread https://forums.gentoo.org/viewtopic.php?t=198443... I don't believe that anything has changed since then, but you might try the ndiswrapper mailing list.

Edit:
http://ndiswrapper.sourceforge.net/wiki/index.php/FAQ

Quote:
Can I use ndiswrapper in 64-bit mode (for AMD64)?

No. There are two problems. NDIS (Windows) drivers don't work in 64-bit mode. It is not possible to run 32-bit NDIS drivers in 64-bit mode (we run the Windows drivers natively on the processor). Second problem is that ndiswrapper itself assumes 32-bit word lengths. The second problem can be fixed easily once 64-bit NDIS drivers are available.

As of the newest WinXP 64bit beta (08/2004) there are still no wifi drivers. So no fix yet...


So, AFAIK, you can't use this radio in 64-bit mode. You'll have to run a 32-bit system if you want to use it.


Last edited by ballyn on Fri Sep 03, 2004 3:21 pm; edited 1 time in total
Back to top
View user's profile Send private message
tcma
Apprentice
Apprentice


Joined: 28 Jun 2004
Posts: 208

PostPosted: Fri Sep 03, 2004 3:21 pm    Post subject: Reply with quote

In that case, will running 32 bit Ndiswrapper on a 32 bit User-mode Linux Kernel under my existing 64 bit gentoo linux work?

User-mode Linux home page is
http://user-mode-linux.sourceforge.net/

I want to learn User-mode Linux anyway.

ballyn wrote:
This still won't work. Ndiswrapper is a kernel module, so to insert it into your running (64-bit) kernel you need a 64-bit module. A chroot doesn't change this.

Even though ndiswrapper will compile and run in a 64-bit kernel, it still can't use the 32-bit windows driver.

More info in this thread https://forums.gentoo.org/viewtopic.php?t=198443... I don't believe that anything has changed since then, but you might try the ndiswrapper mailing list.
Back to top
View user's profile Send private message
ballyn
n00b
n00b


Joined: 14 Aug 2003
Posts: 73

PostPosted: Fri Sep 03, 2004 3:25 pm    Post subject: Reply with quote

I don't think this will work, either. UML doesn't have a lot of control over low-level hardware. Networking through UML utilizes the network that is already in place and not the hardware itself. See http://user-mode-linux.sourceforge.net/networking.html
Back to top
View user's profile Send private message
tcma
Apprentice
Apprentice


Joined: 28 Jun 2004
Posts: 208

PostPosted: Fri Sep 03, 2004 4:32 pm    Post subject: Reply with quote

This means the only choice is to install 32 bit linux kernel on Emachines M6807.
Then run 32 bit Windows driver under 32-bit ndiswrapper under 32 bit linux kernel.

ballyn wrote:
I don't think this will work, either. UML doesn't have a lot of control over low-level hardware. Networking through UML utilizes the network that is already in place and not the hardware itself. See http://user-mode-linux.sourceforge.net/networking.html
Back to top
View user's profile Send private message
mindwarp
n00b
n00b


Joined: 23 Jan 2003
Posts: 22
Location: Detroit, MI

PostPosted: Fri Sep 03, 2004 9:03 pm    Post subject: Reply with quote

tcma wrote:
This means the only choice is to install 32 bit linux kernel on Emachines M6807.
Then run 32 bit Windows driver under 32-bit ndiswrapper under 32 bit linux kernel.

ballyn wrote:
I don't think this will work, either. UML doesn't have a lot of control over low-level hardware. Networking through UML utilizes the network that is already in place and not the hardware itself. See http://user-mode-linux.sourceforge.net/networking.html


Or just spend $40 and buy a prism54 card that will work perfect and you wont have to mess with it again.
_________________
Mindwarp.net
Back to top
View user's profile Send private message
topcat
n00b
n00b


Joined: 17 Nov 2003
Posts: 10

PostPosted: Mon Jan 24, 2005 5:04 am    Post subject: Reply with quote

Linuxant has support for the Broadcom chips under 64-bit Linux. Writing this to you using the new driver. :D No problem installing the 30-day trial.

In order to configure and make a part of my system I needed the Gentoo wireless configuration which is now in baselayout-1.11.0 or better.

Here is what I did:

Installed driver as described on Linuxant web site. Got the code for the 30-day trial. No particular problems.

Code:
ACCEPT_KEYWORDS="~amd64" emerge baselayout
emerge wireless-tools


Went through a whole bunch of configuration files. Lots of changes, for example /etc/hostname is now specified in /etc/conf.d/hostname, ....etc

Under this baselayout all /etc/init.d/net.* files are linked to /etc/init.d/net.lo. When baselayout finishes installing, it prints out the command to run.

Code:
/bin/ls /etc/init.d/net.eth*| xargs -n1 ln -sfvn net.lo


To check and make sure everything is running.

Code:
iwconfig


Found wireless is eth1 ...

Code:
ln -s /etc/init.d/net.eth1 /etc/init.d/net.lo


Added 'iface_eth1="dhcp"' to /etc/conf.d/net and everything worked.

Code:
/etc/init.d/net.eth1 start


Don't know what /etc/conf.d/wireless.example is all about. I have 'iface_eth1="dhcp"' in it anyway and copied to /etc/conf.d/wireless, but it wasn't doing anything. Had to edit /etc/conf.d/net as mentioned above.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Gentoo on AMD64 All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum