Network & Routing & LoadBalance

r8169 -> r8168 네트워크 드라이브 변경

서버엔지니어 2023. 3. 10.
728x90

========================================================

https://community.hetzner.com/tutorials/installing-the-r8168-driver

 

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

 

yum install dkms-r8168

 

cd /usr/local/src

wget http://mirror.hetzner.de/tools/Realtek/drivers/r8168-8.046.00.tar.bz2

tar jxvf r8168-8.046.00.tar.bz2

 

 

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

 

r8168 bz2 다운로드 사이트 https://r8168dl.appspot.com/

 

r8168-8.046.00.tar.bz2 파일 rsync로 보내든 ftp로 보내든 서버에 usb 연결 해서 /usr/local/src 에 저장한다음

========================================================

1.

cd /usr/local/src

mkdir usb

mount /dev/sd?1 /usr/local/src/usb

cd /usr/local/src/usb

cp -arp r8168-8.046.00-networkdriver/   /usr/local/src/

 

===============================================

r8168 관련 알집 cp -arp ~.bz /usr/local/src                                 ///안해도됨

yum install -y bzip2                                       ///안해도됨

===========================================

 

2. /etc/default/grub

GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet net.ifnames=0 biosdevname=0 rd.driver.blacklist=r8169" 

 

3. 

echo "blacklist r8169" |tee -a /etc/modprobe.d/blacklist.conf

 

4.

grub2-mkconfig -o /boot/grub2/grub.cfg

블랙리스트 추가한다. 그래야 리부팅 후에 r8169가 안올라옴

 

5. r8168 설치

cd  /usr/local/src/r8168-8.046.00-networkdriver

make -j 4 && make install

 

################## make 시 에러 날때 해야함 ####################

 

커널 버전은 uname -r로 확인 버전 기억해야함 보통 CentOS7이면 3.10.0 임

 vi src/r8168.h

47 행 아니면   #if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)                ////이부분을 찾아라

#if LINUX_VERSION_CODE < KERNEL_VERSION(3,14,0)

#if LINUX_VERSION_CODE < KERNEL_VERSION(3,10,0)

:wq

이렇게 변경 후 다시 make -j 4

make가 오류 없이 된다면 make install

 

아래 부분은 안해도됨. 만약 오류가 난다면 아마 CentOS 6 버전일꺼임.

#################################################################

# vi src/r8168_n.c

27610 ~ 27612 행을 주석 처리 -> 행이 다를거임 검색해서 찾기

#if LINUX_VERSION_CODE

                        dev-> last_rx = jiffies;

#endif // LINUX_VERSION_CODE

// # if LINUX_VERSION_CODE

// dev-> last_rx = jiffies;

// # endif // LINUX_VERSION_CODE

-

24919 행 -> 행이 다를거임 검색해서 찾기

.ndo_change_mtu = rtl8168_change_mtu,

.ndo_change_mtu_rh74 = rtl8168_change_mtu,

###########################################################

 

아래 명령어를 하기전에 ssh 원격접속이시라면 서버실에 직접가서 로그인해서 아래 명령어를 실행하세요.

modprobe -rfv r8169

rmmod r8169

위 두개의 명령어로 r8169 지운다.

 

cd  /usr/local/src/r8168-8.046.00-networkdriver

sh autorun.sh 

reboot 하고선 다시 로그인해서

 

아래 명령어를 실행시킬때.

lsmod | grep "r8168"

r8168                 552063  0 

해당명령어는 결과가 나와야하고

lsmod | grep "r8169"

해당 명령어는 결과가 안나와야함. 그래야 삭제가된거임 r8169에서 r8168로 변경이 된거임.

 

ethtool -i eth0    //명령어를 치면

 

driver: r8168

version: 8.046.00-NAPI

firmware-version: 

expansion-rom-version: 

bus-info: 0000:1b:00.0

supports-statistics: yes

supports-test: no

supports-eeprom-access: no

supports-register-dump: yes

supports-priv-flags: no

 

핑때려보고 

ping 8.8.8.8

 

끝!

 

댓글