Using Ubuntu 12.04 with systemd(default). I have a broadcom 4312 wireless card which needs "wl" driver and broadcom NIC which uses "b44" "ssb" modules. now, the problem is, at boot the wireless card is not functioning. for that, I have to remove all related modules viz. wl,b44,ssb etc. later, If I modprobe wl;modprobe b44 - both the devices(Wireless and NIC) works fine. So, How can I modify the kernel module loading sequence such that "wl" loads first followed by "b44"? Is it worth using /etc/modprobe.d/aliases.conf adding aliases to the modules? or run a shell script that essentially runs at the end of startup running commands:

modprobe -r wl b44 ssb
wait 5 (to complete)
modprobe wl 
wait 2
modprobe b44 

I have no idea to write a systemd or autostart script. if a script works, that is the best option.


From my friend Google who pointed to https://bbs.archlinux.org/viewtopic.php?id=148170:


Description=/etc/rc.local Compatibility



To enable, run

systemctl enable rc-local

To run it (not automatically done if you enable it)

systemctl start rc-local

You can add own scripts with the ExecStart-lines. And you can do your modprobe-magic in /etc/rc.local or your own script.

  • But, Ubuntu seems to not have the "rc-local" option. IIRC, Debian defaults into runlevel 2 so is the case with Ubuntu? which means rc2.d may be the option I need to try? – Number79 Aug 26 '14 at 2:18
  • Sorry - in fact, Ubuntu already has the rc.local executed at the end. So you just edit /etc/rc.local and you're done. – ineiti Aug 26 '14 at 7:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.