Wednesday 23 January 2013

Setting up Broadcom 4312 with Fedora 18

This was a bit of a pain and felt like I had to jump through hoops to get this damn thing to work. In the end its not actually too much to do, you can either to try and follow the instructions in this link (I have had to do this recently) or mine.

First off, by using the command line rpm and yum commands I seemed to be more successful installing all the required packages.

So here goes...

Step 1:
Change user as root:
  • su -
Step 2:
You need to add a couple of repos, the rpmfusion free and nonfree repos.
  • rpm -Uvh http://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-stable.noarch.rpm
  • rpm -Uvh http://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-stable.noarch.rpm
Step 3:
You will probably then need to download and import the keys for these repos from rpmfusion-keys:
  • get [attachment:RPM-GPG-KEY-rpmfusion-free-fedora-18]
  • get [attachment:RPM-GPG-KEY-rpmfusion-nonfree-fedora-18]
Step 4:
Import the keys:
  • rpm --import <Directory where you downloaded the [attachment:RPM-GPG-KEY-rpmfusion-free-fedora-18] Key>
  • rpm --import <Directory where you downloaded the [attachment:RPM-GPG-KEY-rpmfusion-nonfree-fedora-18] Key>
Step 5:
Now with these keys imported, you should now be able to update:
  • yum update
Step 6:
Ok this got a bit weird when I tried to install kmod-wl but try it out it could work straight out for you, but I had issues with it failing to install due to "uname -r" not matching with build of kmod-wl not correct.
  • yum install kmod-wl
If the above fails then try:
  • yum install akmod-wl
I think all the akmod-wl will do is bring all the dependencies it requires, which will be the kmod-wl and the broadcom-wl packages and a few others. I think all the akmod does is to be able to build a new version of the kmod-wl module against your version of the kernel if there doesn't exist one on the repos. Also if/when you update your kernel this akmod should make sure that the kmod-wl is built correctly.

So at this point akmod-wl, kmod-wl and broadcom-wl should be installed, and a few others required dependencies by the akmod-wl package.

Step 7:
Ok now I found at this point that there was a module loaded called ssb which conflicts with the wl module. I am not sure what this module is and why it conflicts I didn't look into it too much, so I had to remove this module permanently by adding it to a blacklist. First of all I tried:
  • echo "blacklist ssb" >> /etc/modprobe.d/blacklist.conf
which didn't seem to work, so I added it directly to the grub.conf, but what I did was add it too the /etc/default/grub file so as the time comes when you may need to call grub-mkconfig then it will keep the default added in that file, so I did:
  • added "rd.driver.blacklist=ssb" to the end of the GRUB_CMDLINE_LINUX in the /etc/default/grub
  • then ran, "grub2-mkconfig -o /boot/grub2/grub.cfg" this regenerated the /etc/grub2.cfg file.
I am not sure why I had to blacklist like this and if anyone can explain or help out that would be much appreciated :-) So all should be prepared at this point, just one more step.

Step 8:
I removed the ssb module and added the wl module.
  • rmmod ssb
  • modprobe wl
Now that should be it, as far as I remember, on the network icon then should show up wireless. Try rebooting also to make sure it comes up after a reboot also. If you get any problems or some parts don't work please let me know and I will try to correct it and help.

Some useful links I found and used.
Hope this helps out :-)

11 comments:

  1. Thank you. The instructions are very helpful.

    ReplyDelete
  2. Thanks for your comment, I am glad they have helped :-). Currently I am trying to investigate if these drivers are causing me a kernel panic. I have removed them for now and seems my kernel panic has gone. Please let me know if you start getting kernel panics. I have a suspicion though its only when I use VirtualBox that I get these panics.

    ReplyDelete
    Replies
    1. I think I possibly found my issue here for the kernel panic, which was only occurring when I was using virtualbox of windows 7 and configuring it with the network, I think it was the combination of virtualbox and the wl driver.

      Delete
  3. Hi, thank for you post is very interested, only that now i have a new problem, when i restart my system the wifi device don't work, i have to do newly the steps for that come back to work.

    Can you help me with my problem?

    Thanks in advance.

    ReplyDelete
    Replies
    1. Hi there, I can try to help. I am not an expert in the area. They are more memories for me to remember how to get this to work, I could have an idea though. So when you run lsmod, do you still see ssb? and is the wl module loaded also?

      Delete
    2. Hi, i newly, when i run lsmod still i can see ssb module and i can't see wl module, i must run rmmod ssb and after modprobe wl for that my WiFi device work.

      Thanks in advance.

      Delete
    3. Possibly double check that that you have blacklisted the ssb module from the Step 7. Check /etc/modprobe.d/blacklist.conf

      Delete
    4. I checked the blacklist and i have added the ssb module but my WiFi device still don't work, i ran all the command of all the steps.

      Delete
    5. Hmm ok, and if you perform a "lspci | grep Network", you get the Broadcom BCM4312? This is quite difficult to see what is going on, and I know how frustrating it is also. Take a look at some of the other links that I have added they may give a clue for a different approach also. http://forums.fedoraforum.org/showthread.php?t=239922 there is a large write up by the user stoat, there is mention of also blacklisting the module b43 and b43legacy. Do you see these in your lsmod also?

      Also this link about the 5 post by termhidor seems to have a similar issue.
      Please let me know how it goes and what you find.

      Delete
    6. Did you get any further with this?

      Delete
  4. When i run lsmod i can see wl module but not ssb module, i need run modprobe wl for that my WiFi device continue working.

    ReplyDelete