ProxmoxVE에서 Realtek의 NIC를 연결할 수 없는 문제

6443 단어 proxmoxDKMSrealtek

개시하다


ASRock의 마더보드(AB 350 Pro4)를 통해 ProxmoxVE 서버를 구축합니다.보드에 설치된 Realtek Corporation의 NIC(RTL8111/8168/8411)의 드라이버에 문제가 있어 통신이 불가능합니다.처리 방법을 총결하다.
자체 시스템의 NIC가 맞는지 확인
lspci | grep RTL8
25:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 11)
8168이 표시되면 문제의 NIC가 표시됩니다.

문제점

  • 8168 NIC에서 8169 드라이버 자동 사용
  • 8169 드라이브의 통신 불가 문제
  • ProxmoxVE의 커널 버전 업그레이드 시 운전기사가 없음
  • 해결책


    질문


    모듈의 블랙리스트에 r8169를 기재하고 강제로 읽지 않습니다.
    우선 현재 r8169를 사용하고 있는지 확인하세요.grep에서 한 줄을 치면 사용 중인 것을 알 수 있습니다.
    lsmod | grep r8169
    r8169                 548864  0
    
    ProxmoxVE의 경우 모듈의 블랙리스트는 다음 파일을 편집합니다.
    vim /etc/modprobe.d/blacklist.conf
    # 以下を追記
    blacklist r8169
    
    이렇게 되면 기계가 작동할 때 r8169를 읽을 수 없지만 대신 r8168을 넣지 않으면 통신을 할 수 없다.

    r8168 설치 정보


    Reaktek의 공식 사이트에서 원본 코드를 다운로드하여 컴파일하여 사용하다.
    컴파일할 때 커널과 버전이 맞지 않으면 실행할 수 없기 때문에 업그레이드 후 자동으로 드라이버를 업그레이드해야 합니다.

    필요한 물건

    apt install build-essential # コンパイルに必要
    apt install pve-headers # ProxmoxVEのカーネルのヘッダー情報
    apt install dkms # カーネルのアップグレード時にドライバーをアップグレードする仕組み
    

    기사의 입수


    아래 사이트에서 얻습니다.wget과curl에서 다운로드를 허용하지 않는 모습입니다.
    다음 그림에서는 GBE 이더넷 LINUX driver 8168 for kernel up to 5.6 링크 대상의 파일에 해당합니다.

    scp 명령 등을 사용하여 가까스로 ProxmoxVE로 복사합니다.

    컴파일 시도


    드라이버를 자동으로 업데이트하기 전에, 먼저 수동으로 컴파일을 시도해 보십시오.
    # ファイルのバージョンは変化します。ディレクトリはどこでもいいです
    tar xf r8168-8.048.03.tar.bz2
    cd r8168-8.048.03/
    ./autorun.sh
    
    구축에 필요한 것이 모두 갖추어져 있다면 오류가 발생하지 않을 것입니다.모듈이 로드되었는지 확인합니다.
    lsmod |grep r8168
    r8168                 548864  0
    
    그리고 기계를 다시 작동시켜 통신이 가능한지 확인한다.

    드라이버 자동 업데이트


    이렇게 r8168이 설치되었지만 appt upgrade가 설치되면 커널의 업그레이드는 드라이버와 일치하지 않아 통신이 불가능합니다.
    appt upgrade에서도 드라이버를 자동으로 업데이트합니다.
    cp r8168-8.048.03 /usr/src/ # 解凍したさっきのフォルダを丸ごとコピー
    vim /usr/src/r8168-8.048.03/dkms.conf # dkmsファイルを作成
    
    dkms 파일의 내용은 다음과 같습니다.8.04.03은 운전자의 버전에 맞춰야 한다.
    PACKAGE_NAME="r8168"
    PACKAGE_VERSION="8.048.03"
    MAKE[0]="cd ${dkms_tree}/r8168/8.048.03/build; make KVER=${kernelver} modules"
    CLEAN[0]="cd ${dkms_tree}/r8168/8.048.03/build; make clean"
    BUILT_MODULE_NAME[0]="r8168"
    BUILT_MODULE_LOCATION[0]="src/"
    DEST_MODULE_LOCATION[0]="/kernel/drivers/net"
    AUTOINSTALL="YES"
    
    dkms 설정
    dkms -m r8168 -v 8.048.03 add
    dkms -m r8168 -v 8.048.03 build
    dkms -m r8168 -v 8.048.03 install
    
    오류 없이 재부팅 후에도 문제 없이 통신하면 OK.

    사은품(Intel NIC의 dkms)


    Intel NIC(82574L 사용)를 메모로 사전 저장
    게 NIC만으로도 불안해서 중고 Intel NIC를 우편으로 구매했습니다.
    2개의 NIC를 이중화하여 사용합니다.
    가격 코드
    https://kakaku.com/item/K0000157168/
    사용 여부를 확인하다
    lspci |grep 82574L
    22:00.0 Ethernet controller: Intel Corporation 82574L Gigabit Network Connection
    
    사이트 축소판 그림
    https://downloadcenter.intel.com/ja/download/15817/Intel-Network-Adapter-Driver-for-PCIe-Intel-Gigabit-Ethernet-Network-Connections-Under-Linux-
    tar zxfv e1000e-3.8.4.tar.gz
    cp -r e1000e-3.8.4 /usr/src
    vim /usr/src/e1000e-3.8.4/dkms.conf
    
    다음은 dkms.conf의 내용
    PACKAGE_NAME="e1000e"
    PACKAGE_VERSION="3.8.4"
    MAKE[0]="cd src/ && make KVERSION=$kernelver BUILD_KERNEL=$kernelver"
    CLEAN="cd src/ && make clean"
    BUILT_MODULE_NAME[0]="e1000e"
    BUILT_MODULE_LOCATION[0]="src/"
    DEST_MODULE_LOCATION[0]="/updates"
    REMAKE_INITRD="yes"
    AUTOINSTALL="yes"
    
    dkms 설정
    dkms -m e1000e -v 3.8.4 add
    dkms -m e1000e -v 3.8.4 build
    dkms -m e1000e -v 3.8.4 install
    

    좋은 웹페이지 즐겨찾기