logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Karta sieciowa gubi połączenie po braku zasilania huba

k4be 17 Sty 2007 21:00 1685 7
REKLAMA
  • #1 3455150
    k4be
    Poziom 31  
    Posty: 2129
    Pomógł: 102
    Ocena: 333
    Jeśli na jakiś czas odłączy się zasilanie huba, często (ale nie zawsze) po ponownym podłaczeniu pakiety nie są przesyłane. Dioda na karcie świeci ciągle, a na hubie błyska co kilkanaście sekund. Pomaga reset karty 'ifconfig eth0 down && ifconfig eth0 up'. Czy można to jakoś rozwiązać bez użycia skryptu samoczynnie resetującego kartę? Karta to '3Com Corporation 3c900B-TPO Etherlink XL [Cyclone]'.
  • REKLAMA
  • #2 3455475
    gothye
    Poziom 33  
    Posty: 2421
    Pomógł: 183
    Ocena: 60
    masz moze podłaczone do HUB komputer lub inne urządzenie które możesz pingować ??

    jak tak rozwiązanie jest proste :
    dodajesz do cron skrypt który bedzie puszczał np. 4 pingi kontrolne co 1 min (nawet niezauwarzysz tego ),jesli oczekiwanie na ping przekroczy czas żądania nastąpi wyłączenie interfeisu i jego ponowne podniesienie

    podam ci mój skryp do podobnej próby (umnie następuje restart serwera po zaniku netu )

    #!/bin/bash 
    #skrypt odpalany jest s crona co 15 minut 
    #jezeli nie bedzie polaczenia komputer zostanie wylacznony 
    #co zostanie zalogowane 
    #HOST1=192.168.0.21  # dns tepsy 
    #HOST2=192.168.0.22    # dns tepsy 
    HOST1=195.187.245.44 #dns tpsa 
    HOST2=213.180.130.200 # onet 
    
    ping_host1 () { 
    ping  -c 4 $HOST1  >> /var/log/log_lacze.log 
    WYNIK=$? 
    
    } 
    
    ping_host2 () { 
    ping -c 4 $HOST2  >> /var/log/log_lacze.log 
    WYNIK=$? 
    } 
    
    logowanie () { 
    echo $1 >> /var/log/log_lacze.log 
    } 
    ping_host1 
       if [ $WYNIK -eq 0 ]; then 
            logowanie "Lacze dziala    - `date`" 
          exit 0 
       else 
         ping_host2 
           if [ $WYNIK -eq 0 ];  then 
            logowanie "Lacze dziala    - `date`" 
               exit 0 
    
    
            else 
               logowanie "Lacze nie dziala    - `date`" 
            echo wyloczam  komputer >> /var/log/log_lacze.log 
            poweroff 
    
          fi 
        fi
  • REKLAMA
  • #3 3455750
    k4be
    Poziom 31  
    Posty: 2129
    Pomógł: 102
    Ocena: 333
    Dzięki za skrypt - przyda się, ale mi bardziej chodzi o przyczynę zjawiska i inne rozwiązania.
  • REKLAMA
  • #4 3455817
    gothye
    Poziom 33  
    Posty: 2421
    Pomógł: 183
    Ocena: 60
    umnie ten skryp działa na oddzielnym serwerze http który ma akurat zintegorowaną sieciówke ;/

    ale cos podobnego miałem z kartą realtek ,po wymianie na tanichę (intel) wiecej mi sie to niezdarzyło ,sprawdz wlogach co sie dzieje tuż po rozłączeniu ,czy niewyrzyca czegoś ,po za tym masz skomipowaną karte w obsługę jądra na stałe czy jako modół ??
  • REKLAMA
  • #5 3455868
    k4be
    Poziom 31  
    Posty: 2129
    Pomógł: 102
    Ocena: 333
    ortografia...
    Znalazłem coś w dmesg
    eth0: Transmit error, Tx status register 82.
    Probably a duplex mismatch.  See Documentation/networking/vortex.txt
      Flags; bus-master 1, dirty 2797089(1) current 2797105(1)
      Transmit list 0fe38660 vs. cfe382a0.
      0: @cfe38200  length 00000022 status 80000182
      1: @cfe382a0  length 00000022 status 800105ea
      2: @cfe38340  length 00000022 status 000105ea
      3: @cfe383e0  length 00000022 status 000105ea
      4: @cfe38480  length 00000022 status 000105ea
      5: @cfe38520  length 00000022 status 000105ea
      6: @cfe385c0  length 00000022 status 000105ea
      7: @cfe38660  length 00000022 status 000005ea
      8: @cfe38700  length 00000022 status 000005ea
      9: @cfe387a0  length 00000022 status 000005ea
      10: @cfe38840  length 00000022 status 000005ea
      11: @cfe388e0  length 00000022 status 000005ea
      12: @cfe38980  length 00000022 status 000005ea
      13: @cfe38a20  length 00000022 status 000005ea
      14: @cfe38ac0  length 00000022 status 000005ea
      15: @cfe38b60  length 00000022 status 800005ea
    ale takie zdarzenia są tylko dwa, a podobnych 'awarii' było kilkanaście. Przejrzę jeszcze ten vortex.txt.
  • #6 3455901
    gothye
    Poziom 33  
    Posty: 2421
    Pomógł: 183
    Ocena: 60
    Probably a duplex mismatch 
    


    czyli karta probuje przejsc w tryb full-duplex ale cos mu sie krzaczy

    wymus na karcie trym w half-duplex moze nie bedzie bledu, ale wymien sieciowke i sprawdz kable

    zobacz jeszcze w logach kernel albo jesli masz włączone logi dla pakietów może tam coś bedzie


    ortografia ?? sorki juz późno :P

    jak znajedziesz puknij jutro może na gg postaram ci się pomuc
  • #7 3455914
    k4be
    Poziom 31  
    Posty: 2129
    Pomógł: 102
    Ocena: 333
    Karta kiedyś zachowywała się tak samo w innym komputerze. W którym miejscu się ustawia typ pracy karty? Sterownik jest wbudowany.
    Dodam, że nie mam zamiaru ruszać systemu przy 52 dniach up :)
  • #8 3457545
    mbo
    VIP Zasłużony dla elektroda
    Posty: 19691
    Pomógł: 2333
    Ocena: 845
    mii-tool zmieni ustawienia szybkości i duplex'u bez restartowania lub włączania sieci.

Podsumowanie tematu

✨ Problem dotyczy karty sieciowej 3Com Corporation 3c900B-TPO Etherlink XL [Cyclone], która po zaniku zasilania huba często traci połączenie i przestaje przesyłać pakiety, mimo że dioda na karcie świeci, a na hubie miga co kilkanaście sekund. Tymczasowym rozwiązaniem jest reset interfejsu sieciowego poleceniem 'ifconfig eth0 down && ifconfig eth0 up'. W dyskusji zasugerowano, że przyczyną może być niezgodność duplexu (duplex mismatch), co potwierdzają komunikaty z dmesg wskazujące na błędy transmisji i problemy z trybem full-duplex. Proponowano wymuszenie trybu half-duplex na karcie sieciowej za pomocą narzędzia mii-tool, które pozwala zmieniać ustawienia szybkości i duplexu bez restartu systemu. Wskazano również na możliwość problemów z kablami lub konieczność wymiany karty sieciowej na inną, np. z chipsetem Intela, co w jednym przypadku rozwiązało problem. Jako alternatywę zaproponowano skrypt monitorujący połączenie sieciowe i automatycznie resetujący interfejs w przypadku braku odpowiedzi na ping, jednak autor preferuje rozwiązanie bez skryptów.
Podsumowanie wygenerowane przez AI na podstawie treści dyskusji.
REKLAMA