Hello everybody,
I've been investigating different ways of implementing a change of MAC
address at bootup. Despite my take on this issue was/is quite simple,
the overall quest has taken me quite far.
First of all, I've discovered that when having a
BroadcomBCM4313,BCM43224,BCM43224 orBCM43225wireless network card, a
user-change of MAC address is not supported by the current version of
the Broadcom-sta binary driver nor the current version of the open
sourcebrcmsmac driver. This means that everybody using one of these
adapters will not be able to change the MAC address no matter what take
is chosen for the macchanger issue (these adapters are quite common!).
Together with the guys implementing the open sourcebrcmsmac driver I've
created a patch for the kernel used by tails allowing user-change of the
MAC address.
Of course, for it to work, it's needed to remove the Broadcom-sta driver
(wl) and insert the otherwise blacklistedbrcmsmac driver.
This leads me to my macchanger solution (which is already one of the
proposed solutions on the todo). Before describing it I'd like to
propose that the patch is added no matter what!
My solution is simple:
I've added an entry to the grub menu with an argument called
--change_mac_addresses (this is not a kernel argument and should pass
right through).
Then I've added a macchanger script in /etc/network/if-pre-up.d/ that
checks if the argument is present in /proc/cmdline.
If it's present it checks if one of the Broadcom wireless network
adapters above is present using lspci. If it's present it removes the
Broadcom-sta (wl) driver and inserts the open source (and patched)
brcmsmac driver.
Then it tries to change the MAC address of relevant devices found in
/proc/net/dev.
Please let me know what you think.
Best regards
Jesper