Centos7 network 드라이버 설치 과정

변주한·2022년 7월 15일
0

일단... 이게 온프라미스 형태일때 network driver가 설치 안되어 있으면 상당히 골치 아프다.

ubuntu나 centos의 경우 apt-get 또는 yum 으로 원격 설치를 진행하는데 network driver가 없으면 이러한 네트워크 설치가 불가능하다.

모든 설치중에 가능하다면 네트워크는 무조건 일순위로 잡아서 설정하자!

본론으로 들어가자

장치확인(centos7)

sudo lshw -C network

이렇게 우리는 해당 명령어로 어떤 네트워크 장치를 사용하고 있는지 확인 했고

이를 통해 구글링하면 아래 링크를 쉽게 찾아볼수 있다.

ethernet driver download(windows11)

https://www.realtek.com/en/component/zoo/category/network-interface-controllers-10-100-1000m-gigabit-ethernet-pci-express-software

해당 링크로 이동해서 알맞는 압축파일을 다운받자!

내가 해당하는 OS 버전에 맞춰 드라이버 파일을 제공한다.

usb에 담자!

일단 zip파일은 아니고 tar.bz2 파일에 담긴다

압축풀기(centos7)

일단 usb를 꽂게 되면 문제는 윈도우처럼 화면이 없기에

usb 장치를 찾아야 한다.

fdisk -l

머라 솰라 살라 하는데 다 필요없고 빨간 동그라미를 보자

이것이 현재 연결된 usb이다

나는 해당 usb에 있는 파일을 /tmp/usb 라는 폴더에 mount 할건데

mount는 공유한다라고 지금은 생각하면 편할듯 하다.생각보다 공유한다보다 넓은 의미를 갖는다

mount -t vfat /dev/sdb1 /tmp/usb

-t fs_opt: 파일시스템의 유형을 지정하는 옵션, 지정하지 않으면 /etc/fstab 참조

** + 윈도우 파일시스템 마운트하여 윈도우 디스크 사용한다는 뜻이다.

해당 usb를 통째로 mount 시켰기 때문에 usb 안에 우리가 다운 받았던 압축파일을 찾아서 압축을 풀어보자

압축풀기

ls /tmp/usb

잘 마운트도 되었고 우리가 받은 파일을 압축을 해제 시켜보자

tar vjxf r8125-9.009.02.tar.bz2

그러면 이제 압축이 풀려서 폴더 하나가 생성되고 해당 폴더로 들어갈 수 있다

cd /tmp/usb/r8125-9.009.02

내부로 진입했고 확인하면 README 파일과 autorun.sh 쉘스크립트 파일이 보일텐데

./autorun.sh

하고 상황종료! 가 되었으면 굉장히 깔끔한 시나리오 였겠지만! 오류가 난다 ㅠㅠ

막 엄청 오류가 어마어마하게 뜬다..
정확히 내가 직면한 오류 세줄!

  • Error Tip: /src/r8125.h: 59: 20 Error: redefinition of 'ether_addr_copy' static inline void Ether_addr_copy

  • Error Tip: R8125_N.c: 10870: 9 error: unknown field 'ndo_change_mtu' Specified in Initializer

  • Error Tip: R8125_N.c: 13519: 28 Error 'STRUCT NET_DEVICE' HAS No Member Named 'last_rx'

이제부터 어떻게 해결 각각 해결했는지 살펴보면...


그전에!

(+) 커널 버전 확인

uname -srm


  1. Error Tip: /src/r8125.h: 59: 20 Error: redefinition of 'ether_addr_copy' static inline void Ether_addr_copy

    src/R8125.h

    #if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)
    
    //KERNEL_VERSION(3,14,0)를 KERNEL_VERSION(3,10,0)로 바꾸어주었다.
    
    #if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)
  2. Error Tip: R8125_N.c: 10870: 9 error: unknown field 'ndo_change_mtu' Specified in Initializer

    src/R8125_N.c

    (+) 해당 내용은 보통 vi를 통해서 바꿀텐데
    :/.ndo_change_mtu 로 찾거나 :10040 이 근처 어딘가에서 해당 코드를 바꿔주면 된다.

    .ndo_change_mtu     = rtl8125_change_mtu,
    
    //.ndo_change_mtu 에서 .ndo_change_mtu_rh74 로 바꾸어주었다.
    
    .ndo_change_mtu_rh74     = rtl8125_change_mtu,
  3. Error Tip: R8125_N.c: 13519: 28 Error 'STRUCT NET_DEVICE' HAS No Member Named 'last_rx'

    마찬가지로 :/last_rx 로 찾아서
    src/R8125_N.c

    dev->last_rx = jiffies;
    
    //주석처리해주자
    
    /*dev->last_rx - jiffies;*/

    해당 1,2,3 을 모두 처리한후 ./autorun.sh 실행을 하면 driver를 설치후

    ifconfig는 없을테고... ip addr 로 확인하면

이더넷을 자동으로 잡아서 hostname까지 확인 할수 있다!

profile
늦었지만 꾸준히

0개의 댓글