hiroの長い冒険日記

主にコンピュータ周辺の興味を持った内容を綴ります

debian で Realtek rtl8111e 用 Network driver を使う

当日記ではアフィリエイト広告を利用しています

物理 SSD から実 PC で起動した Debian が Network に接続できなかった。仮想マシンだと仮想 network device があるので接続できる。実 PC の Network device は Realtek rtl8111e と取説には記載されていた。確か Realtek は鬼門だったと記憶している。鉄板は Intel chip。r8169.ko が insmod されているが eth0 がない。

Ubuntu だと繋がっていたはずなので、ググって調べてみた。

www.unixblogger.com

rtl8111e 用の rtl8168 は debian なら non-free、Ubuntu なら universe にあるんだね。

繋がらない状態:

# lspci -v
... 略 ...
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 06)
        Subsystem: ASUSTeK Computer Inc. P8P67 and other motherboards
        Flags: bus master, fast devsel, latency 0, IRQ 29
        I/O ports at e800 [size=256]
        Memory at f2fff000 (64-bit, prefetchable) [size=4K]
        Memory at f2ff8000 (64-bit, prefetchable) [size=16K]
        Capabilities: [40] Power Management version 3
        Capabilities: [50] MSI: Enable+ Count=1/1 Maskable- 64bit+
        Capabilities: [70] Express Endpoint, MSI 01
        Capabilities: [b0] MSI-X: Enable- Count=4 Masked-
        Capabilities: [d0] Vital Product Data
        Capabilities: [100] Advanced Error Reporting
        Capabilities: [140] Virtual Channel
        Capabilities: [160] Device Serial Number 01-00-00-00-68-4c-e0-00
        Kernel driver in use: r8169
        Kernel modules: r8169
... 略 ...
# ifconfig -a
enp3s0: flags=4098<BROADCAST,MULTICAST>  mtu 1500
        ether 20:cf:30:87:7f:51  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

dhclient で enp3s0 に ip address 割り当てると通信できるようになった。

# dhclient enp3s0
# ifconfig
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.n.n  netmask 255.255.255.0  broadcast 192.168.n.255
        inet6 fe80::0000:0000:0000:0000  prefixlen 64  scopeid 0x20<link>
        inet6 2nnn:00:0000:1:0000:0000:0000:0000  prefixlen 64  scopeid 0x0<global>
        ether 20:00:00:00:00:00  txqueuelen 1000  (Ethernet)
        RX packets 117  bytes 8858 (8.6 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 23  bytes 2352 (2.2 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
        device interrupt 29  base 0x9000

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1  (Local Loopback)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

通信できたようだけど、折角なので apt line 変更し update、install:

# cat /etc/apt/sources.list | grep ^deb
deb http://ftp.jp.debian.org/debian/ stretch main contrib non-free
deb http://security.debian.org/debian-security stretch/updates main contrib non-free
deb http://ftp.jp.debian.org/debian stretch-updates main contrib non-free

# apt update
# apt upgrade
# apt install r8168-dkms

module 作って initramfs 等を作り直し。再起動すると r8168 を読み込むようになった。でも eth0 は現れず。何か設定が足りないだけ?

結果

結局、r8169 でも r8168 でも、どちらでも通信できた。上のリンク先では速度が落ちると書かれているので、r8169 は安定性に欠けるのかも知れない。とりあえず、r8168 を使ってみる。