데비안 9에서 "eth0 : Detected Hardware Unit Hang"을 고치는 법?


3

나는 인터넷에 대한 게이트웨이 역할을하는 내 자신의 홈 서버를 가지고있다 (그것이 가장 좋은 이름인지는 모른다). 기본적으로 두 개의 이더넷 포트가 있는데, 하나는 ISP에 연결하고 다른 하나는 LAN 스위치에 연결합니다. 라우팅 및 NAT가 성공적으로 구성되었으며 다른 서비스가 많이 있습니다.

최근에는 Ubuntu 14.04에서 데비안 9 (새로운, 새로 설치)로 마이그레이션했고 이전 구성을 천천히 복원했습니다. 나는 다른 컴퓨터 / 전화 / TV / etc 액세스 인터넷을 허용하기 위해 단지 기본 네트워크 구성을 만들었으므로 꽤 일찍 붙어 있었지만 많은 패킷 손실과 연결이 몇 초 동안 멈춘 것처럼 보였다. 로그를 검사하면 다음과 같이 나타납니다.

        [  212.088208] e1000e 0000:00:19.0 eth0: Detected Hardware Unit Hang:
                     TDH                  <69>
                     TDT                  <aa>
                     next_to_use          <aa>
                     next_to_clean        <69>
                   buffer_info[next_to_clean]:
                     time_stamp           <ffffa7f6>
                     next_to_watch        <69>
                     jiffies              <ffffa9e8>
                     next_to_watch.status <0>
                   MAC Status             <80083>
                   PHY Status             <796d>
                   PHY 1000BASE-T Status  <3800>
                   PHY Extended Status    <3000>
                   PCI Status             <10>
    [  214.072275] e1000e 0000:00:19.0 eth0: Detected Hardware Unit Hang:
                     TDH                  <69>
                     TDT                  <aa>
                     next_to_use          <aa>
                     next_to_clean        <69>
                   buffer_info[next_to_clean]:
                     time_stamp           <ffffa7f6>
                     next_to_watch        <69>
                     jiffies              <ffffabd8>
                     next_to_watch.status <0>
                   MAC Status             <80083>
                   PHY Status             <796d>
                   PHY 1000BASE-T Status  <3800>
                   PHY Extended Status    <3000>
                   PCI Status             <10>
    [  216.088094] e1000e 0000:00:19.0 eth0: Detected Hardware Unit Hang:
                     TDH                  <69>
                     TDT                  <aa>
                     next_to_use          <aa>
                     next_to_clean        <69>
                   buffer_info[next_to_clean]:
                     time_stamp           <ffffa7f6>
                     next_to_watch        <69>
                     jiffies              <ffffadd0>
                     next_to_watch.status <0>
                   MAC Status             <80083>
                   PHY Status             <796d>
                   PHY 1000BASE-T Status  <3800>
                   PHY Extended Status    <3000>
                   PCI Status             <10>
    [  218.071082] ------------[ cut here ]------------
    [  218.072129] WARNING: CPU: 0 PID: 0 at /build/linux-EAZfyE/linux-4.9.51/net/sched/sch_generic.c:316 dev_watchdog+0x22d/0x230
    [  218.073249] NETDEV WATCHDOG: eth0 (e1000e): transmit queue 0 timed out
    [  218.074368] Modules linked in: xt_conntrack iptable_filter ipt_MASQUERADE nf_nat_masquerade_ipv4 iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack iptable_mangle intel_rapl x86_pkg_temp_thermal intel_powerclamp coretemp kvm_intel kvm irqbypass crct10dif_pclmul crc32_pclmul iTCO_wdt iTCO_vendor_support ghash_clmulni_intel intel_cstate intel_uncore intel_rapl_perf pcspkr i915 sg drm_kms_helper lpc_ich mei_me mfd_core drm ie31200_edac joydev evdev mei edac_core shpchp i2c_algo_bit battery video button ip_tables x_tables autofs4 ext4 crc16 jbd2 fscrypto ecb glue_helper lrw gf128mul ablk_helper cryptd aes_x86_64 mbcache raid10 raid456 async_raid6_recov async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c crc32c_generic raid0 multipath linear hid_generic usbhid hid
    [  218.078853]  raid1 md_mod sd_mod crc32c_intel i2c_i801 ahci i2c_smbus libahci libata scsi_mod ehci_pci ehci_hcd xhci_pci xhci_hcd e1000e ptp usbcore pps_core usb_common fan thermal
    [  218.082049] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 4.9.0-4-amd64 #1 Debian 4.9.51-1
    [  218.083772] Hardware name:                  /DQ77KB, BIOS KBQ7710H.86A.0051.2013.0329.1350 03/29/2013
    [  218.085468]  0000000000000000 ffffffffa7729974 ffff98909e203e20 0000000000000000
    [  218.087205]  ffffffffa7476eae 0000000000000000 ffff98909e203e78 ffff989094e28000
    [  218.088980]  0000000000000000 ffff989094fb9c80 0000000000000001 ffffffffa7476f2f
    [  218.090766] Call Trace:
    [  218.092579]  <IRQ>
    [  218.092597]  [<ffffffffa7729974>] ? dump_stack+0x5c/0x78
    [  218.094413]  [<ffffffffa7476eae>] ? __warn+0xbe/0xe0
    [  218.096268]  [<ffffffffa7476f2f>] ? warn_slowpath_fmt+0x5f/0x80
    [  218.098133]  [<ffffffffa74aed52>] ? enqueue_task_fair+0x82/0x940
    [  218.100024]  [<ffffffffa792cb2d>] ? dev_watchdog+0x22d/0x230
    [  218.101909]  [<ffffffffa792c900>] ? qdisc_rcu_free+0x40/0x40
    [  218.103860]  [<ffffffffa74e4020>] ? call_timer_fn+0x30/0x110
    [  218.105766]  [<ffffffffa74e4524>] ? run_timer_softirq+0x1d4/0x430
    [  218.107709]  [<ffffffffa74f4ca0>] ? tick_sched_handle.isra.12+0x20/0x50
    [  218.109654]  [<ffffffffa74f4d08>] ? tick_sched_timer+0x38/0x70
    [  218.111630]  [<ffffffffa7a0b0d5>] ? __do_softirq+0x105/0x290
    [  218.113594]  [<ffffffffa747cf8e>] ? irq_exit+0xae/0xb0
    [  218.115567]  [<ffffffffa7a0aeee>] ? smp_apic_timer_interrupt+0x3e/0x50
    [  218.117536]  [<ffffffffa7a0a202>] ? apic_timer_interrupt+0x82/0x90
    [  218.119509]  <EOI>
    [  218.119527]  [<ffffffffa78cd31a>] ? cpuidle_enter_state+0x11a/0x2b0
    [  218.121505]  [<ffffffffa74b9634>] ? cpu_startup_entry+0x154/0x240
    [  218.123486]  [<ffffffffa8138f57>] ? start_kernel+0x443/0x463
    [  218.125426]  [<ffffffffa8138120>] ? early_idt_handler_array+0x120/0x120
    [  218.127400]  [<ffffffffa8138408>] ? x86_64_start_kernel+0x14c/0x170
    [  218.129384] ---[ end trace 6cd1142bfcc66b87 ]---
    [  218.131367] e1000e 0000:00:19.0 eth0: Reset adapter unexpectedly
    [  222.052843] e1000e: eth0 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx

나는이 질문을 발견했다. e1000e 예기치 않게 어댑터 리셋 / 감지 된 하드웨어 장치 정지 이것은 같은 문제인 것처럼 보이지만 발견 된 수정본 중 어느 것도 작동하지 않습니다.

나는 시도했다 :

  • 커널을 이용한 부팅 pcie_aspm=off
  • 이상한 옵션 끄기 : ethtool -K eth0 gso off gro off tso off
  • BIOS에서 비활성화 된 ASPM
  • BIOS에서 절전 기능을 사용 중지했습니다.
  • 사용 된 스크립트 fixeep-82573-dspd.sh 그 말은 내 하드웨어가 그 고침이나 그런 것과 호환되지 않는다는 것입니다.
  • 인텔 웹 사이트의 최신 드라이버 컴파일

그 밖의 무엇을 시도 할 수 있습니까? 나는 이미 하루 종일 인터넷 연결을 사용할 수 없으며 모든 사람들이 LTE / 3G 인터넷을 사용하여 웹에 액세스해야합니다.

데비안은 그런 서버에 나쁜 선택입니까?


다른 옵션은 드라이버 / 펌웨어 버전을 변경합니다. Ubuntu 14.04에서 사용한 것을 찾을 수 있다면 설치해보십시오.
dirkt

@dirkt 이미 최신 드라이버를 사용해 보았습니다 - 도움이되지 않았지만 펌웨어는 무엇인지 모르십니까? 어떻게 업데이트 할 수 있습니까? 이전 시스템의 오래된 백업이 있는데 파일에서 드라이버 버전을 확인할 수 있습니까?
WombaT

답변:


4

ServerFault에는 두 가지 잠재적 인 수정 사항이있는 질문이 있습니다.

https://serverfault.com/questions/616485/e1000e-reset-adapter-nexpectedly-detected-hardware-unit-hang

여기서 언급했듯이 다음을 시도해 볼 수 있습니다.

  • BIOS 설정에서 향상된 C1 절전 상태 (C1E)를 비활성화하거나
  • TCP 체크섬 오프 로딩 비활성화 ethtool -K eth0 tx off rx off

당신이 e1000e.ko 커널 모듈을 백업에서 제거하면 modinfo 명령을 사용하여 드라이버 버전을 나열하십시오.

NIC 펌웨어 업데이트 가능성을 확인하려면 정확한 NIC 모델을 정확하게 식별해야합니다. 로그 출력에서 ​​NIC가 PCI 장치 00 : 19.0이고 네트워크 인터페이스의 이름이 eth0. root로 다음 명령을 실행하십시오.

# lspci -nn -s 00:19.0 -v
# ethtool -i eth0

첫 번째 명령은 NIC의 PCI ID 번호를 표시하고 두 번째 명령은 NIC 펌웨어 버전 번호를 출력합니다.

NIC가 Intel 82579V (PCI ID 8086 : 1503) 일 경우, 절전 상태와 관련된 알려진 버그가 있으며 Windows 8 이상에서 문제가 발생했습니다 (즉, Windows 8을 사용하기에 충분한 새 운영 체제 더 진보 된 절전 상태의 현대 하드웨어). Ubuntu 14.04에서 Debian 9로 업데이트하면 Linux의 절전 코드에서 동등한 업데이트가 발생하여 버그가 발생합니다.

인텔은 마더 보드에 통합 된 NIC와 함께 사용할 수있는 82579V 칩용 펌웨어 업데이트 도구를 제공합니다. 불행히도 업데이트 도구는 Windows에서 실행되어야한다고 생각합니다.


C1E와 ​​관련된 건 바이오스에서 볼 수 없어요. ethtool 명령은 아무 것도 변경하지 않았습니다. NIC는 82574L과 82574LM입니다. 어쨌든, 문제는 해결, 내 대답에 설명했다.
WombaT

체크섬 오프 로딩을 비활성화하면 잘 작동합니다.
Ceisc

0

문제는 ... NIC 사이의 케이블 및 구성을 전환하여 해결됩니다. 그래서 eth0는 LAN 쪽 장치이고 eth1은 인터넷 쪽 장치였습니다. 스위치 후 eth0은 인터넷 장치가되고 eth1 LAN은됩니다. 이유와 방법은 모르지만 간단하게 작동합니다. 심지어 두 시간 이후 무거운 짐의 아래에서 모든 것은 ok 다. 다시 초기 설정으로 전환하면 드라이버가 2 분 이상 지나면 충돌이 발생합니다.

나는 이런 일이 일어나는 이유를 전혀 발견 할 수 없지만, 음 ... 이제 좋다.


2
버그는 대개 고 대역폭 사용 (& gt; 500Mbit)에서만 트리거되기 때문에 가장 가능성이 높습니다. 인터넷 연결로 인해 대역폭이 제공되지 않는 것 같습니다.
Till Schäfer
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.