物理 SSD から実 PC で起動した Debian が Network に接続できなかった。仮想マシンだと仮想 network device があるので接続できる。実 PC の Network device は Realtek rtl8111e と取説には記載されていた。確か Realtek は鬼門だったと記憶している。鉄板は Intel chip。r8169.ko が insmod されているが eth0 がない。
Ubuntu だと繋がっていたはずなので、ググって調べてみた。
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 を使ってみる。