|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Eugene Smirnoff 2:5066/314.314 09 Nov 2006 14:51:10 To : Alexey Vissarionov Subject : Fedora Core 6 -------------------------------------------------------------------------------- ES>> Разобрался теперь. Сообщаю для тех, кто может столкнуться с этой же ES>> проблемой (что маловероятно, ибо в инете про это ни слова, это ES>> специфика моей железки). Дело в том, что у меня глючная embedded ES>> ethernet card on Epox EP-8RDA3I mainboard. При загрузке системы ядро ES>> видит недопустимый MAC-адрес AV> Что значит "недопустимый"? Самого заинтересовало. Покопавшись в исходниках ядра выяснил, что с точки зрения ядра, невалидными являются мультикастовые и нулевые адреса ===[linux/etherdevice.h]=============== /** * is_valid_ether_addr - Determine if the given Ethernet address is valid * @addr: Pointer to a six-byte array containing the Ethernet address * * Check that the Ethernet address (MAC) is not 00:00:00:00:00:00, is not * a multicast address, and is not FF:FF:FF:FF:FF:FF. * * Return true if the address is valid. */ static inline int is_valid_ether_addr(const u8 *addr) { /* FF:FF:FF:FF:FF:FF is a multicast address so we don't need to * explicitly check for it here. */ return !is_multicast_ether_addr(addr) && !is_zero_ether_addr(addr); } ======================================= Участок кода самого драйвера: ===[linux/drivers/net/forcedeth.c]===== memcpy(dev->perm_addr, dev->dev_addr, dev->addr_len); 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_addr[0] = 0x00; dev_addr[1] = 0x00; dev_addr[2] = 0x6c; get_random_bytes(&dev->dev_addr[3], 3); } ======================================= AV> Что за карта, каким модулем поддерживается? Встроенная карта на материнке EP-8RDA3I. Поддерживается драйвером forcedeth.c: Reverse Engineered nForce ethernet driver. ES>> В Fedora Core используется программа kudzu (для определения и ES>> настройки оборудования). AV> Достаточно. Единственный правильный метод лечения: rpm -e kudzu С таким же успехом можно было посоветовать Slackware. В котором, кстати, проблем таких нет. Каждый сам решает как ему удобнее. Я решил поправить startup script и считаю, что это достойно линуксоида (в том понимании, что это человек, который способен и стремится к тому, чтобы самостоятельно разобраться в системе). It is now safe to turn off your computer --- Msged/LNX 6.1.2 * Origin: Речи великих не для простых ушей (2:5066/314.314) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/45784553397b.html, оценка из 5, голосов 10
|