LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Red Hat (https://www.linuxquestions.org/questions/red-hat-31/)
-   -   Broadcom 4401 and Red Hat 9 - kernel headers? (https://www.linuxquestions.org/questions/red-hat-31/broadcom-4401-and-red-hat-9-kernel-headers-91814/)

LooseCanon 09-11-2003 07:36 PM

Broadcom 4401 and Red Hat 9 - kernel headers?
 
Hi everyone,

I'm resorting to using WinXP for the time being since I cannot use my newly-purchased Red Hat Linux to recognize my onboard LAN which happens to be a Broadcom 440 10/100.

Need to gripe a bit... please bear with me. If you don't want to read the rant just please take a look at the questions at the bottom of the post.

:mad: (gripe) I cannot comprehend why Red Hat would not support or provide a workaround for a LAN chipset that is not only popular but widely used by major mobo manufacturers like ASUS, Abit and MSI. For a new Linux user to deal with such a relatively small but very significant issue is enough to turn people away from using Linux - and judging by this and other forums, that actually does happen (which I find really sad, incidentally). Interestingly, not only does every other competitive major distro immediately recognize the card there's never even a question as to onboard LAN eth0 issues whatsoever. Why can't/doesn't Red Hat recognize this and deal with it accordingly???? (/gripe)
(I would really like to hear from Red Hat folks on this one) hee hee.


-------------

Whew. ok, now that I got that off my chest - I've got this problem with Red Hat recognizing the onboard Broadcom 440 10/100 LAN (MSI 648Max mobo with BCM 4401). I've already searched the forums on this topic and found that I'll need the source package - so I've downloaded the latest Linux source package (drivers?) for this chipset.

What I keep reading is that the kernel source (kernel headers) need to be installed properly in order for the home-made workaround to be successful. Ok, since I installed the Red Hat package, it doesn't "install" the kernel headers. I had SuSE on my system as well and I encountered a pack of troubles when I installed the source package...

In order to get Red Hat to have access to the internet using my onboard LAN I have two options:
1) install a second LAN card (not an option for me - no more PCI slots available)
2) install the kernel source and then go through the home-made workaround



Q1 - What are the benefits of having the source kernel installed separately from a "out of the box" Red Hat install?

Q2 - Will installing the source kernel cause any problems with my current installation? If I proceed later to "update" Red Hat using the conventional means (up2date), will the fact that I installed the source kernel hinder any future "updates"?

Q3 - Biggest question of all: How do I install the source kernel? I got 7 CDs in the box - 3 installation CDs, 1 Documentation CD and 3 "source code" CDs... Is that what I would install? How do I go about doing that?


Thanks for hearing me out on this long(ish) post. Looking forward to hearing from the pros!

//Canon

... shuffles back to reading about Broadcom/Red Hat issues... :study:

LooseCanon 09-12-2003 04:34 PM

hmm...

Ok, I took the plunge, downloaded "kernel-2.4.20-20.9.i686.rpm" and "kernel-2.4.20-20.9.src.rpm".

Until now the installed kernel was 2.4.20-20.6 ... I did have the kernel source installed and in it was found in /usr/src/ listed as a dir "linux-2.4.20-20.6" and had another dir "linux-2.4". Sry, I'd check for sure but I'm in Windows right now 'cuz I can't get on the net without RH recognizing my Broadcom onboard lan - so I have to keep rebooting every time I come here for advice....

ok, well, I installed the new kernel update (2.4.20-20.9) and it seems to have installed alright since the GRUB bootloader asks me whether I want to start Red Hat 2.4.20-20.9 or Red Hat 2.4.20-6 (which was the 2.4.20-20.6 kernel).

How do I install the kernel source now? in a terminal (bash) I ran

rpm - ihv kernel-2.4.20-20.9.src.rpm

and there are no errors or anything, but then when I did a uname -a it still shows up as 2.4.20-6 even after a reboot. When I check the /usr/src/ dir there is no new dir for the new source.

what am I doing wrong? :scratch:

LooseCanon 09-12-2003 04:51 PM

nevermind...

Found out that kernel-source binaries are different than kernel-..src.rpm ... Kernel src.rpm are just a collection of patches etc. that need to be installed separately, while the kernel-source-xxx.rpm are all pre-made and ready for installation and that is what I need to install the kernel headers .

Hope this is right...

LooseCanon 09-12-2003 09:10 PM

hmmm... seems like I'm writing to myself .. LOL!

Anycase, just as an update - got things working with the LAN and figured out a whole bunch of things about linux in getting there. All this may sound really noobish to all you experts out there, but seems I've just discovered stuff for myself which makes me 1% more knowledgable in linux than I was a day or two ago.

Lesson #1:
you may have multiple "kernels" installed on your machine at any given point in time. Running "uname -a" will tell you what kernel source you're presently running on your machine.

Lesson #2: Kernel Sources (... or Kernel headers)
- Kernel sources are somewhat different than the actual kernel that's running your machine. Kernel sources are what you need to make drivers or programs so that they run at their peak efficiency on your machine. Your kernel sources and the kernel must be of the same version if you decide to make drivers or programs.
- Kernel sources are found in /usr/src/ directory.
- Aside from using the "update" or "up2date" feature to upgrade your kernel you may want to have "kernel sources" installed too. These are needed if you want to make drivers from source. What that means is that each system is different and because each system is different you get a chance to make drivers that will fit your configuration even better than some wholesale "pre-made" drivers.

Lesson #3:
There is a biiiig difference between
a) kernel-source-blablabla.rpm
b) kernel-blablabla.src.rpm
The "kernel-source" file is what you need to create the "kernel header" files (which are stored in /usr/src/ directory. The "kernel-source" rpm already comes with "pre-made" updates so you don't have to play around all day trying to figure out what to update and what to leave alone. The "kernel-source" rpm installs your kernel headers. Without these , you cannot make your own programs or drivers.
The "src.rpm" is a collection of various bits of either a kernel or other programs that are needed to make or compile your own kernel or programs. There are a huge number of options if you use these to make a kernel - not advised for anyone that's new to linux ...

-----------------------------------------------------------------------------------------------------------

How to install those pesky Broadcom drivers without errors??

This is how I made and installed the Broadcom 4401 (Broadcom 440 10/100) drivers on my machine under redhat 9:

Note: if you have limited internet access or if you have no internet access from redhat it's best to download all the components before proceeding.


***** STEPS 1-4 OPTIONAL ******
**** if you do not wish to install new or updated kernel go straight to step 5) ********
*****************************************************************************************

1 - to avoid hassles make your drivers for the newest kernel possible. This way you'll be up to date on your kernel and won't have to bother re-installing the drivers if you upgrade the kernel after installing the drivers in the first place. Really simple:

2 - Download and install the latest Red Hat Linux kernel and kernel source packages:
- get the kernel-<version>.i386.rpm
- get the kernel-source-<version>.i386.rpm
https://rhn.redhat.com/errata/RHBA-2003-263.html
(that URL may change, so go here: http://www.redhat.com/support/resources/howto/rhl9.html and select "bug fixes")

3 - Install each of those by opening a console (terminal), logging in as root and typing:
--> type: rpm -ihv kernel-<version>.i386.rpm
... and
--> type: rpm -ihv kernel-source-<version>.i386.rpm
(You will see a little progress bar in the console/terminal window)

4 - Reboot and select the new kernel version at boot-up.
... make sure you're running the right kernel before continuing or this won't work at all. Once you'ree all booted up and logged in, open a terminal/console and run "uname -a" --- this will tell you if you are running the same kernel sources as your actual installed kernel.

====: if you followed steps 1-4 then go straight to step 6) ====

*************************************************************************

5 - First it's time to make sure you have the kernel-source installed on your machine so that you can make the drivers for your Broadcom NIC.
Open a console and
--> type: uname -r (tells you kernel version - to compare with next result)
--> type: cd /usr/src/ and type "ls -l"

This will let you know if you have kernel headers installed - needed to make and install the Broadcom drivers and you can compare if you have the same kernel as your kernel headers. The output should read something like this:
This example shows the kernel headers for version 2.4.20-6 are installed. If you have nothing showing after giving the command "ls -l" then go to step 1 of this procedure and install the kernel headers (kernel source)
Code:

[name@localhost]$ ls -l
total 3
drwxr-xr-x    2 root    root          48 Jan 24  2003 debug
lrwxrwxrwx    1 root    root          14 Sep 22 17:42 linux-2.4 -> linux-2.4.20-6
drwxr-xr-x  16 root    root          656 Sep 22 17:42 linux-2.4.20-6
drwxr-xr-x    7 root    root          168 Apr  7 15:51 redhat



6 - download the latest "::BCM4401::"drivers from Broadcom - here --> http://www.broadcom.com/docs/driver-download.html

7 - Install the "Broadcom" source RPM package:
Open a terminal/console, log in as "root":
--> type: rpm -ivh bcm4400-<version>.src.rpm
(this makes a "spec" file which is a compilation of files that will build the final installation file!)

8 - Go to the location where the "spec" file you just made is stored:
--> type: cd /usr/src/redhat/SPEC
--> type: rpmbuild -bb bcm4400.spec
(if you get an error, type: rpm -bb bcm4400.spec)

9 - what you just did is create the FINAL installation file for your Broadcom driver! And the best part is it's taylor-made for your computer!! Now go to where that "compiled" rpm file is stored:
--> type: cd /usr/src/redhat/RPMS/i386
--> type: rpm -ihv bcm4400-<version>.i386.rpm

10 - FINISHED!!! reboot your computer and during the boot Redhat will immediately recognize that you have a new NIC called Broadcom 440 100baseT and ask you to configure it. Just put in your ISP's values like in Windows and continue booting.
(make sure you boot into your new kernelby selecting it at boot if you chose to update your kernel specified in steps 1-4)

----> Log in as yourself and get on the Net.


That's how I did it. Hope it helps whoever's reading this.

//Canon

drats77 09-24-2003 09:17 PM

:D Thanks for your rantings. I was lost until I found your post. Your instructions worked perfectly for me.

LooseCanon 09-24-2003 11:28 PM

hehe yeah... :D
I was was a bit upset there... until I finally figured out what needed to be done - end result was quite gratifying. Well, instead of just leaving the thread with no solution, I figured what I learned could/would help someone in the future so I wrote up those instructions.. it sure would be nice if others did that too for solutions they come by.

Glad it helped you. :)

KeTrueno 10-02-2003 12:24 AM

thanks loosecannon, i've been agonizing over this damned video card install for over a week now but i wouldn't give up on redhat yet! because of ur post i managed to fix everything and wowzers it runs fast now!!!

thanks again,
kevin

SonicMayhem 10-05-2003 12:22 AM

AHHHH MANNNN
 
duuuuuuude,

u have noo idead how much that forum helped.
even though im doing this for a video card
no one else had the balls to stick to it and find it through
u are not a linux newbie
the noobs go to every one else to find the answers
u my friend, are a pro

d-rec 10-05-2003 05:38 AM

Hi there loosecanon,

since i'm at work now i cannot test your solution, but it seems you had exactly the seem prob i'm dealing with.

gonne try the steps later when i come home, but i'm pretty sure i'll be able to get my nic working

thx in advance to a 'newby', yeah right;)

snype 10-05-2003 10:39 AM

mandrake worked outa the box :)

d-rec 10-05-2003 12:41 PM

Grrr, :(

still no succes

tried all the steps loosecanon gave.

1)
after installing the 2.4.20-20.9 kernel i rebooted,
i had no choice which kernel i wanted to load so took 2.4.20-8 again

2)
then in a terminal i got these results :
[root@localhost root]# uname -r
2.4.20-8
[root@localhost root]# rpm -qa | grep kernel
kernel-pcmcia-cs-3.1.31-13
kernel-2.4.20-8
kernel-source-2.4.20-20.9
kernel-2.4.20-20.9
[root@localhost root]#

3)
however, i tried installing the bcm-driver what returned :
make: *** [b44um.o] Error 1
error: Bad exit status from /var/tmp/rpm-tmp.60373 (%build)
RPM build errors:
Bad exit status from /var/tmp/rpm-tmp.60373 (%build)
-----------
1) could this be caused by the dualboot system ?

2) my guess is that there are 2 kernels installed, but i never had the chance to choose, so the old 1 is still in use

3) this will be solved automatically with 1 & 2

although it's been a frustrating from time to time it sure is a good way of getting :study: 'an introduction in linux-filesystem'

i'll start looking for a solution although :D if anyone could send me on the way it would be much appreciated :D

LooseCanon 10-05-2003 01:31 PM

Thanks for the kind words fellas, glad that the instructions helped out a bit. But I'm still a noob... hehe.. more questions than answers.. :D

@ d-rec

Quote:

Originally posted by d-rec

1)
after installing the 2.4.20-20.9 kernel i rebooted,
i had no choice which kernel i wanted to load so took 2.4.20-8 again
Hmm.. if you booted and had no choice over which kernel to boot from it means that the kernel wasn't installed or wasn't installed properly for some reason. By the way, you can go ahead and make the BCM drivers witout installing the newest kernel. A new kernel is not a prerequisite - it's only for convenience really.

Let's take a look further...

Quote:

2)
then in a terminal i got these results :
[root@localhost root]# uname -r
2.4.20-8
[root@localhost root]# rpm -qa | grep kernel
kernel-pcmcia-cs-3.1.31-13
kernel-2.4.20-8
kernel-source-2.4.20-20.9
kernel-2.4.20-20.9
[root@localhost root]#
AHA!

... well there seems to be your problem... You have both kernels on your machine, but only 1 kernel header (but not sure if it's installed properly). You are running kernel 2.4.20-8 (that's the result of uname -r), but your kernel headers may be running a different version -> 2.4.20-20.9!!! (that's if they are installed properly).

To check this situation out go to /usr/src and issue the command: "ls -l" (without the quotes, obviously). If you see nothing that relates to 2.4.20-8 then that's why you can't build your BCM drivers because you were trying trying to make drivers for your machine running "2.4.20-8" kernel but using "2.4.20-20.9" kernel headers! There's a mis-match... !

You need the SAME version kernel headers AND kernel to make drivers successfully. So the situation is a bit messed up right now and that's why you can't make your BCM drivers...

It's ok - we fix. :D Follow these steps:

1) Issue the command "uname -r". If the result is 2.4.20-8 then you're running kernel 2.4.20-8 ... you can get rid of kernel 2.4.20-20.9 (it seems to be a sore point and it's causing problems). Once you get the hang of making and installing drivers, then go back and install new kernels... Right now, you won't need the new kernel.

2) Uninstall kernel v2.4.20-20.9 and it's sources - login as root in a console and type:
--> rpm -e kernel-2.4.20-20.9.i386.rpm (if that's the filename)
--> rpm -e kernel-source-2.4.20-20.9.i386.rpm

3) reboot to make sure you're running only 2.4.20-8 ... do a "uname -r" again after rebooting to make sure the result is 2.4.20-8

4) Find the kernel headers (kernel-source-2.4.20-8.i386.rpm) on one of your RH9 CDs (I think it's CD2).

5) Open a console, login as root then install the file called "kernel-source-2.4.20-8.i386.rpm" using this command:
---> "rpm -ihv kernel-source-2.4.20-8.i386.rpm"

NOTE... If I were you and the "ls-l" in /usr/src shows that you HAVE the kernel headers installed (2.4.20-8) I'd install them again just to make sure the kernel headers are installed properly.
---> to reinstall and overwrite the existing headers type: rpm -Fhv kernel-source-2.4.20-8.i386.rpm (F = freshen)

6) Try following steps 5 -10 up in my post again after you install the kernel headers.

d-rec 10-05-2003 06:05 PM

:D :cool: :D

Many thx loosecanon.
Up to the next problem :D

saposmak 10-09-2003 12:53 PM

LooseCanon, the world needs more people like you... I had the same prob as d-rec... and your solution made it work flawlessly... thanks a bunch dude.


1337h4x 10-11-2003 10:19 AM

Further help
 
ADDITIONAL NOTES:: A follow-up to L00seCanon's post.

I used his help tip and it worked perfectly (like most of us found), however because I had already installed a working driver for my previous version of the kernel, I had this problem right at the end.


READ ON:

If you get an error while installing your new driver that a certain file in the /usr/man/blah blah blah is in conflict with another from a

previous install, just unistall the previous version first, and then install the one you just made.

This worked for me.

--> Command for uninstalling:
--> type: rpm -e [package]

Some toturials say you do not have to type the full name of what you wish to uninstall, well I had to. I suggest for this case you do too.

//1337h4x

ps.

Still need help with my wireless card anyone got ideas please let us know.

I am using the WLAN CARD that comes with the Intel Centrino chip.

LooseCanon 10-16-2003 06:46 PM

I'm glad this post is helping people out. Nothing worse than eagerly starting off with a new OS and then not being able to find lucid and detailed instructions. Of course, there's a certain satisfaction to learning something on one's own, but it helps to have a lead or two. ;)

dick471 10-19-2003 06:27 PM

Broadcom 4401
 
I'm done with RH. Can't get loosecanon's procedure to work.

NicNac 10-21-2003 12:18 PM

LooseCannon Rocks
 
Hey, LC, your post really helped me out. I'm amazed that this issue isn't discussed on Dell's web site, they ship the Dell Dimension 2400 with the Broadcom 440 ethernet card, and they're a big partner with Red Hat, so you'd think they'd work a little closer to ensure that their products work together out of the box.

And all it would take would be for RH to include the driver in their package.

Seems so easy.

But I guess this doesn't come up much, otherwise it would have been easier to resolve.

The only thing I'm miffed about is now I won't be forced to learn all the stuff you just learned! :study:

thanks again! - NN

LooseCanon 10-21-2003 04:19 PM

Re: Broadcom 4401
 
Quote:

Originally posted by dick471
I'm done with RH. Can't get loosecanon's procedure to work.
well don't give up just yet... heck if people gave up then there would be no linux. :cry:

Calab 10-22-2003 01:52 AM

Thanx!
 
Just wanted to say THANX to L00SE CANNON!

There definately needs to be more Linux users like you willing to help out by providing some details to us users who haven't clicked yet.

Definately a different experience here than what you find in the newsgroups... LOTS of attitude there and no help at all.

THANKS!!! :D

aee-ux 01-03-2004 01:28 PM

bcm4400 install
 
Thanks LooseCanon!
I have searched many message boards and printed numerous instructions, but yours ACTUALLY WORKED! Bravo...........Thanks to your new found knowledge, I have finished a two day project setting up a dual boot Windows XP/Red Hat 9.

allday 01-18-2004 10:30 PM

i386 with pentium 4?
 
Do these kernels designed for older chip architectures work with the new pentiums. I tried following your directions, but using the i686 files instead, but unfortunatly I couldn't find the kernel-source file with the i686 suffix. When I tried to use the i386 kernels I got a headerRead failed error. I'll try it some other ways. Im closer to getting this net card to work than I was before. Thanks for what you have up here.

dick471 01-18-2004 10:59 PM

Broadcom 4401 Fixed
 
I didn't give up on Linux because I couldn't get Loose Cannon's procedure to work. I GAVE UP on RED HAT!!!!
I loaded Fedora Core and it found the Asus Broadcom 4401 drivers and works perfect.

jumpinkiwi 01-22-2004 07:49 PM

Try apt-get.....or yum..
 
I recently installed RH9 and have never had to manually install the kernal-source. I have both yum and apt-get installed. Get from here http://k3b.org/ .K3b has great links to both.
Any way......I just added some extra repository's and ran apt-get update and apt-get upgrade and it installs everything.
Really nice instead of tearing out your hair trying to deal with all the dependencies.

if you need more info just em me

AJ

jumpinkiwi@hotmail.com

salara 01-30-2004 11:23 PM

I followed the steps and installed the kernel-2.4.20-28.9 but how do I tell this thing to boot the new kernel? it is still loading the old one,
I use the boot disk with lilo and it does not let me choose anything. thanks god I still have winxp to type this message, I have looked everywhere for an answer and I am so close to getting the stupid drivers to work for the net card, so I can start another threat for the modem, sound card, TV tuner card since they don't work iether, but I CANNOT LOAD THE NEW KERNEL. and all the post that I read no one seems to give an example with the lilo boot disk option, should I reinstall again? this would be the 12th time though and I don't want to screw up with the XP on the other drive. I started the whole thing using virtual machine software to try it out and it actually worked better there than with the real thing. please someone help me!! if I need to post some more info let me know.
oh, my printer works!! uhmm scanner? nah don't need it :)

salara 01-31-2004 02:18 PM

unless someone answer my question about whay can't I choose the newly installed kernel to load am done with this ps.
thank you for nothing forum

salara 01-31-2004 02:25 PM

I think is going to work.... stand by

salara 01-31-2004 02:37 PM

It worked!!!!
I tell you I guess you got to get pissed at this thing so it understands you
I started from scratch again and installed everything there is to install. then I had problems with the video no pro I got pissed at it and it started to work by changing the driver in XF86 to "nv" got over that one then I installed to new kernel and was back to square 1 it would not let me choose the new kernel will not give me the option. thats when I got pissed and posted #26 then I tried just for the heck of it installing the driver for the bcm4400 and oddly enough I did not get the error messages and it now works, I now can go on and deal with the other issues like sound card, modem and others but at least I can do all that straight from RH9 thanks for nothing anyways cuz noone answered me when I needed it the most but the good part is I did not give up, now I ran the update and it asks me if I want to install the new kernel which to my knowledge is already installed, the linux stuff needs a lot of work. but am the net now see ya suckers

salara 02-02-2004 03:24 PM

Re: Broadcom 4401 Fixed
 
Quote:

Originally posted by dick471
I didn't give up on Linux because I couldn't get Loose Cannon's procedure to work. I GAVE UP on RED HAT!!!!
I loaded Fedora Core and it found the Asus Broadcom 4401 drivers and works perfect.

did it find your built in sound too?

I can't get my sound to work on RH9, and am considering to use Fedora too.
by the way I think am going to dedicate a box for linux, cuz somehow when I reboot to windows my net card is shutdown, and I have to disconnect the power cable from the box then wait, turn it back on, go into windows, and yet still some usb device has problems according to windows I still don't know which one that is. any ideas

SuperMotard 02-18-2004 01:43 PM

THX...

That work just great... U da man :D

-=CORPSMAN=- 02-18-2004 04:14 PM

THANK YOU THANK YOU THANK YOU!!!!

It's folks like you that make all the difference.

I was lost until I found you post.

again,

THANK YOU THANK YOU THANK YOU!!!!

kahn 03-15-2004 01:22 AM

I know a lot of you were having some problems... but hang in there... I had some problems too, I had ot do a couple more steps...


Install the newly built package (driver and man page):

rpm -ivh RPMS/i386/bcm4400-<version>.i386.rpm

The driver will be installed in the following path:

2.2.x kernels:

/lib/modules/<kernel_version>/net/bcm4400.o

2.4.x kernels:

/lib/modules/<kernel_version>/kernel/drivers/net/bcm4400.o

Load the driver:

insmod bcm4400

At no point did it just recognize it. What I did was went into network settings and after I ran the insmod bcm4400 command I went to add a new ethernet controller. Just activated it and reboot and voila!


Martin Seidl
A7V8X
XP1700 @ 2.25GHZ
1GB DDR266
2 X 120 SATA RAID 0
GEFORCE FX5900
LIAN-LI CASE
4X DVD +/- RW

COMING SOON - ATHLON 64, ASUS K8V DELUX AND DUAL 10,000RPM SATA 76GB RAPTORS!!!

TPupAZ 09-28-2004 10:00 PM

after working on this on my own for 5 hours.

i did a search on linuxquestions.org

you are a stud...no jokes

Kilahchris 09-29-2004 05:04 PM

Its a good thing the Broadcom drivers are binary rpm
I have realtek wireless controller and compiling those drivers are a pain in the rear.


All times are GMT -5. The time now is 06:52 AM.