Re: forcedeth ?

Carl-Daniel Hailfinger
2007-07-31T01:36:35Z

On 31.07.2007 00:17, Gabriel C wrote:
> Sasa Ostrouska wrote:
>
>> Gabriel, hmm, shouldnt udev be able to autoconfigure that ? But I need
>> to check that, thx for the tip.
>
> Yes udev does this based on the MAC address but AFAIK forcedeth is 'special' for some reason
> ( which I can really remember now and gets on each boot a new MAC address or alike )

Ah yes, that's a workaround for certain buggy boards to make sure you're
not left without networking even if the MAC address stored on the board
is bogus.

Basically, forcedeth checks if the MAC address supplied by your
mainboard is bogus and autogenerates a random MAC address from a private
range (prefix 00:00:6c) as workaround. However, it will complain loudly
if it has to do that.

Quoting from forcedeth.c:
> if (!is_valid_ether_addr(dev->perm_addr)) {
> /*
> * Bad mac address. At least one bios sets the mac address
> * to 01:23:45:67:89:ab
> */
> printk(KERN_ERR "%s: Invalid Mac address detected: %02x:%02x:%02x:%02x:%02x:%02x\n",
> pci_name(pci_dev),
> dev->dev_addr[0], dev->dev_addr[1], dev->dev_addr[2],
> dev->dev_addr[3], dev->dev_addr[4], dev->dev_addr[5]);
> printk(KERN_ERR "Please complain to your hardware vendor. Switching to a random MAC.\n");
> dev->dev_addr[0] = 0x00;
> dev->dev_addr[1] = 0x00;
> dev->dev_addr[2] = 0x6c;
> get_random_bytes(&dev->dev_addr[3], 3);
> }

Sometimes it helps to update the BIOS and/or set the MAC address which
is printed on the board as MAC address in the BIOS.

Regards,
Carl-Daniel