Re: forcedeth ?

From: Carl-Daniel Hailfinger
Date: Mon Jul 30 2007 - 21:36:38 EST


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
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/