Dell Mini 10 and BCM4312

I’ve just been bought a Dell Mini 10 by my employer, Red Hat.

I’ve wiped Ubuntu, and installed Fedora 11 on the machine, as it’s what I’m familiar with, and the kernel seems to be a bit more up to date than what it came with. Kudos to Dell for shipping with any Linux, I’m sure most people don’t care that much what “version” of Linx they are using.

Now, the interesting part: most stuff “just works”. The screen is fantastic, the keyboard is pretty good considering it’s so small, and the backlight seems to DTRT. It also weighs about one thousandths of a gram, or something in that order or magnitude.

Now, what doesn’t work: the Broadcom BCM4312 network device. Now, somebody has reversed engineered the Broadcom hardware and has published really good specs about the 43xx hardware, and the 4312 is no exception. The 4312 seems to be a LP PHY, so a little different than what the kernel knows about already. There’s already enough code in the wireless-testing kernel tree thanks to Michael Buesch (but EXPERIMENTAL and BROKEN) to get the chip operational, and recognised by NetworkManager, by alas, 95% of the setup code is needs to be written.

Now, all it would take is for a couple of expert network hackers to take the spec, and implement the engine setup in a few days of hacking. Unfortunately for me, I’m no network hacker, and am crazy busy with PackageKit/DeviceKit/PolicyKit work. That said, if no-one steps up to the mark in the next few weeks, I’ll have a go and submit some patches.

There’s also the firmware issue. Using b43-fwcutter I can get working firmware, but this doesn’t feel very “Fedora” as you have to use the Windows non-free driver and cut the binary data from it. I’ve tried to push through the open firmware package into Fedora, but this only supports a few of the older Broadcom cards. It wouldn’t take much to add support for the newer cards, although that’s probably a task for someone very familiar with the hardware, like for instance, Broadcom.

Now, Broadcom, I’m sure the open source community would really appreciate an engineer-day per week (I guess circa $12,000pa plus some good PR) for the open drivers and firmware. If that were to happen, and Linux support for Broadcom networking goes from 10% done to 90% done, I’m sure a whole lot more vendors would ship with your hardware inside. Whether or not that would translate to greater than $12k’s extra profit is left as an exercise for the reader.

For me, so the notebook is at least useful, I’ve replaced the Broadcom card with an Intel 5100AGN mini PCIe half height card with free drivers and distributable firmware. It cost £10, brand new.

I’ll still be testing the Broadcom free b43 driver, and hopefully be hacking on b43 in a few weeks if nobody beats me to it and my TODO list reduces in size.

edit: I’ve been informed the specs are not by Broadcom, they are reversed engineered. Wow.

Published by


Richard has over 10 years of experience developing open source software. He is the maintainer of GNOME Software, PackageKit, GNOME Packagekit, GNOME Power Manager, GNOME Color Manager, colord, and UPower and also contributes to many other projects and opensource standards. Richard has three main areas of interest on the free desktop, color management, package management, and power management. Richard graduated a few years ago from the University of Surrey with a Masters in Electronics Engineering. He now works for Red Hat in the desktop group, and also manages a company selling open source calibration equipment. Richard's outside interests include taking photos and eating good food.

22 thoughts on “Dell Mini 10 and BCM4312”

  1. Those specs aren’t published by Broadcom, they’ve been painstakingly reverse engineered. So there’s no real reason to thank Broadcom for anything.

  2. How did you trick F11 to get the video drivers running? Are the poulsbo drivers also in the repos nowadays (rpmfusion?)? I for one cannot wait to wipe my mini 10 and replace the Ubuntu by Fedora…

      1. Ok so it is a 10v then, I was wondering if you were specifically given a Poulsbo on purpose (enemies in high places perhaps?)

        My brother just bought one of these and it’s a great little box, I am mulling snagging one myself.

  3. Not only is the spec reverse engineered, the free firmware (including the instruction set itself!) is reverse engineered as well. Amazing! And Broadcom thinks it is protecting itself from us by non-cooperation…

  4. So wait DELL sells a netbook with Linux that doesn’t have drivers in the kernel ? I guess the ubuntu was using some king of blob for the wifi then ?

    Quite sad I would expect when I but a machine with Linux to have good in kernel support for devices.

      1. By default ubuntu does not have any non-free blob … I think that for example upgrading the system on that ubuntu would bring trouble > new kernel > blob stops to work .

        Sure ubuntu provides a non free repo but that’s not on by default so IMHO it’s not much different then Fedora in this regard.

        1. I believe (judging my vague memories from the mini 9 I bought and returned) there are separate non-free repos that *are* turned on by default in the ubuntu netbook remix that ships with the dell minis. So it is different.

  5. So wait DELL sells a netbook with Linux that doesn’t have drivers in the kernel ? I guess the preloaded ubuntu was using some kind of blob for the wifi then ?

    Quite sad I would expect when I buy a machine with Linux to have good in kernel support for devices.

  6. You could try the Broadcom ‘wl’ driver. It works better than b43 or ndiswrapper, doesn’t require firmware wackiness.

  7. Broadcom BCM4312 network device, works in Fedora 11 doing this:

    First add repository RPMFusion:

    rpm -Uvh
    rpm -Uvh

    Install the driver for the graphic card and the wireless card:

    yum –enablerepo=rpmfusion-nonfree-updates-testing install xorg-x11-drv-psb
    yum install kmod-wl

    Restart the machine and that’s it !

    You need to get wired access to internet to do this, but once done, it works perfect !

  8. The instructions in my previous reply were a little bit wrong: to enable RPM fusion repositories type this:

    su -c ‘rpm -Uvh

    and then, install the graphic card driver (this will improve screen resolution):

    yum –enablerepo=rpmfusion-nonfree-updates-testing install xorg-x11-drv-psb

    and the wireless card driver:

    yum install kmod-wl

    and that’s it. It works.

Comments are closed.