博文

目前显示的是 八月, 2007的博文

深入linux斗天地!

今天干了一件了不起的事,深入linux,修改驱动程序,掩盖了(不是修复了)一个错误。 事情是这样的,新买的HP Pavilion电脑,装了Ubuntu Linux系统,但是不久系里的网管发来 信说,你的电脑出现随机MAC地址,会耗尽IP资源。一查log,发现如下的信息: /var/log/kern.log:Aug 10 14:06:35 xfliu-desktop kernel: [ 866.860000] Please complain to your hardware vendor. Switching to a random MAC. 网管不断的给我补充知识,说这是主板上nForce驱动有缺陷造成的。再后来知道,nForce由Nvidia公司提供支持,后来有黑客破解了驱动程序,因此Nvidia直接提供开源的程序,(linux就是这样走过来的?)但是,还是有缺陷,因此出现了我现在的情况: 电脑由Hibernate状态启动时,系统读取网卡的MAC地址有错误,便自动生成随即MAC地址。驱动程序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 ],