Linux OS/관리

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

서버엔지니어 2023. 3. 12.
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

끝!

댓글