LinuxQuestions.org
Review your favorite Linux distribution.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Red Hat
User Name
Password
Red Hat This forum is for the discussion of Red Hat Linux.

Notices


Reply
  Search this Thread
Old 09-11-2003, 07:36 PM   #1
LooseCanon
Member
 
Registered: Aug 2003
Location: Canada
Distribution: RH, Fedora, Debian
Posts: 128

Rep: Reputation: 15
Angry 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.

(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...
 
Old 09-12-2003, 04:34 PM   #2
LooseCanon
Member
 
Registered: Aug 2003
Location: Canada
Distribution: RH, Fedora, Debian
Posts: 128

Original Poster
Rep: Reputation: 15
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?

Last edited by LooseCanon; 09-12-2003 at 04:36 PM.
 
Old 09-12-2003, 04:51 PM   #3
LooseCanon
Member
 
Registered: Aug 2003
Location: Canada
Distribution: RH, Fedora, Debian
Posts: 128

Original Poster
Rep: Reputation: 15
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...
 
Old 09-12-2003, 09:10 PM   #4
LooseCanon
Member
 
Registered: Aug 2003
Location: Canada
Distribution: RH, Fedora, Debian
Posts: 128

Original Poster
Rep: Reputation: 15
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

Last edited by LooseCanon; 10-10-2003 at 09:53 PM.
 
Old 09-24-2003, 09:17 PM   #5
drats77
LQ Newbie
 
Registered: Sep 2003
Posts: 1

Rep: Reputation: 0
Thanks for your rantings. I was lost until I found your post. Your instructions worked perfectly for me.
 
Old 09-24-2003, 11:28 PM   #6
LooseCanon
Member
 
Registered: Aug 2003
Location: Canada
Distribution: RH, Fedora, Debian
Posts: 128

Original Poster
Rep: Reputation: 15
hehe yeah...
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.
 
Old 10-02-2003, 12:24 AM   #7
KeTrueno
LQ Newbie
 
Registered: Sep 2003
Location: ny
Distribution: redhat 9
Posts: 9

Rep: Reputation: 0
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
 
Old 10-05-2003, 12:22 AM   #8
SonicMayhem
LQ Newbie
 
Registered: Oct 2003
Posts: 16

Rep: Reputation: 0
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
 
Old 10-05-2003, 05:38 AM   #9
d-rec
LQ Newbie
 
Registered: Sep 2003
Distribution: Red Hat 9
Posts: 10

Rep: Reputation: 0
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
 
Old 10-05-2003, 10:39 AM   #10
snype
Member
 
Registered: Sep 2003
Distribution: Windows 2000(just for my ipaq), Mandrake, Knoppix(h/d install)
Posts: 57

Rep: Reputation: 15
mandrake worked outa the box
 
Old 10-05-2003, 12:41 PM   #11
d-rec
LQ Newbie
 
Registered: Sep 2003
Distribution: Red Hat 9
Posts: 10

Rep: Reputation: 0
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 'an introduction in linux-filesystem'

i'll start looking for a solution although if anyone could send me on the way it would be much appreciated
 
Old 10-05-2003, 01:31 PM   #12
LooseCanon
Member
 
Registered: Aug 2003
Location: Canada
Distribution: RH, Fedora, Debian
Posts: 128

Original Poster
Rep: Reputation: 15
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-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. 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.

Last edited by LooseCanon; 10-06-2003 at 02:27 PM.
 
Old 10-05-2003, 06:05 PM   #13
d-rec
LQ Newbie
 
Registered: Sep 2003
Distribution: Red Hat 9
Posts: 10

Rep: Reputation: 0


Many thx loosecanon.
Up to the next problem
 
Old 10-09-2003, 12:53 PM   #14
saposmak
Member
 
Registered: Sep 2003
Distribution: Redhat
Posts: 72

Rep: Reputation: 15
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.


Last edited by saposmak; 10-09-2003 at 12:56 PM.
 
Old 10-11-2003, 10:19 AM   #15
1337h4x
LQ Newbie
 
Registered: Oct 2003
Posts: 2

Rep: Reputation: 0
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.

Last edited by 1337h4x; 10-11-2003 at 10:25 AM.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Broadcom 4401 Nic problems diemorph Linux - Hardware 2 09-16-2004 08:00 AM
Broadcom 4401 Not working alexsh Linux - Hardware 2 08-26-2004 10:09 AM
Broadcom 4401 driver with 2.6.6 kernel multified Linux - Networking 0 08-03-2004 04:20 AM
broadcom 4401 net card w/ RH 9 kernel 2.4.20-6 allday Linux - Networking 1 01-18-2004 05:19 PM
Red Hat Kernel Headers traku Linux - Newbie 3 10-27-2003 11:20 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Red Hat

All times are GMT -5. The time now is 12:04 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration