28.01.2011

Ethernet kartının arızasının tespiti

Bilgisayarın birinde ethernet kartı çalışmıyordu. Nedeni incelemek istedim. Önce ethernet kartının MAC adresi bana biraz garip göründü. Daha önce hiçbir MAC adresinin FF:FF ile başladığını görmemiştim. MAC adresi üreticisini sorgulamak için kullandığım şu sayfa da bana böyle bir şey olamayacağını söyledi. Sonra elimdeki kayıtlara bakarak bu bilgisayarın ağ kartının MAC adresinin ilk zamanlarda FF:FF ile başlamadığını gördüm. Eskiden 00:03 ile başlıyormuş. Windows'un ayarlarında bu değişime sebep olacak birşey bulamadım. Ama bir de bir linux dağıtımı ile duruma göz atmak istedim.

Elime geçen ilk live CD Lubuntu ile bilgisayarı açtım. İlk olarak
ifconfig -a
ile bilgisayardaki ağ arayüzlerini listeledim. Bilgisayarda iki ethernet kartı vardı ama ifconfig çıktısında arızalı kartla ilgili birşey listelenmedi. Arından lspci ile PCI veriyolundaki cihazları listeledim. Burada iki ethernet kartı için çıkş vardı, ama sorunun kaynağına götürcek önemli bir bilgiye rastlamadım.

$ sudo lspci -s 01:08.0 -v
01:08.0 Ethernet controller: Intel Corporation 82801BA/BAM/CA/CAM Ethernet Controller (rev 03)
    Subsystem: Intel Corporation Device 3013
    Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV+ VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
    Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
    Interrupt: pin A routed to IRQ 11
    Region 0: Memory at fe9ee000 (32-bit, non-prefetchable) [size=4K]
    Region 1: I/O ports at de80 [size=64]
    Capabilities: [dc] Power Management version 2
        Flags: PMEClk- DSI+ D1+ D2+ AuxCurrent=0mA PME(D0+,D1+,D2+,D3hot+,D3cold+)
        Status: D0 PME-Enable- DSel=0 DScale=2 PME-
    Kernel modules: e100

Bundan sonra da dmesg ile çekirdek mesajlarına baktım. İlk kullandığım filtre eth ile birşey bulamadım. Daha sonra ethernet kart(lar)ının kullandığı kernel modülü (driver) adı e100'ü kullandım.
$ dmesg | grep -i e100
[    0.147376] pci 0000:01:08.0: Firmware left e100 interrupts enabled; disabling
[    0.147414] pci 0000:01:0a.0: Firmware left e100 interrupts enabled; disabling
[    2.453617] e100: Intel(R) PRO/100 Network Driver, 3.5.24-k2-NAPI
[    2.453630] e100: Copyright(c) 1999-2006 Intel Corporation
[    2.454160] e100 0000:01:08.0: PCI INT A -> Link[LNKE] -> GSI 11 (level, low) -> IRQ 11
[    2.475976] e100: 0000:01:08.0: e100_eeprom_load: EEPROM corrupted
[    2.499144] e100 0000:01:08.0: PCI INT A disabled
[    2.499187] e100: probe of 0000:01:08.0 failed with error -11
[    2.499663] e100 0000:01:0a.0: PCI INT A -> Link[LNKG] -> GSI 11 (level, low) -> IRQ 11
[    2.523051] e100 0000:01:0a.0: PME# disabled
[    2.567253] e100: eth0: e100_probe: addr 0xfe9ef000, irq 11, MAC addr 00:02:b3:98:7f:08
Ve burada anahtar bilgiye ulaştım! Yukarıda kırmızı ile işaretlediğim yerde bir EEPROM bozulmasından bahsediyor. Demek ki MAC adresinin FF:FF ile başlamasının sebebi de buymuş. Böyle bir bilgiye Windows ile (üçüncü parti araç kullanmadan) asla ulaşamazdım. Bu, daha önce de başıma gelmişti. Bazen önemli bir donanım bileşeninin arızası bilgisayarın düzgün çalışmasını engelliyor. Ancak Windows bunu doğru bir şekilde haber vermiyor. Ama linux dmesg kayıtları bu iş için süper!

Bu ethernet kartı on-board olduğu için değiştirme şansım yok. EEPROM'u tekrar programlama şansım var mıdır acaba? Google amca'ya sormak gerek...

Ek (22.08.2011)
Denemedim ama Linux tarafında bir yarabandı çözümü varmış.
/etc/modprobe.d/options
dosyasına
options e100 eeprom_bad_csum_allow=1
satırını ekleyince ve ardından
sudo update-initramfs -u
yapınca çalışacakmış.

Hiç yorum yok: