Score:1

เลิกผูกและผูกไดรเวอร์ระหว่างการเริ่มต้น 20.04.3 LTS

ธง id

ระบบของฉันใช้ 20.04.3 LTS และฉันใช้มันเป็น Plex Media Server (ท่ามกลางบริการอื่นๆ) ฉันกำลังใช้เครือข่ายผูกมัดสำหรับการปรับโหลดบาลานซ์บนระบบ ฉันพบปัญหากับระบบเมื่อได้รับการอัปเดตเคอร์เนลใหม่

มีการ์ดเครือข่าย 2 ใบในระบบ ตัวหนึ่งอยู่ในช่องเสียบ (RTL8169 PCI Gigabit Ethernet Controller) และอีกตัวอยู่ในบอร์ด (RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller) ปัญหาที่ฉันพบคือ RTL8111/8168/8411 ไม่ชอบไดรเวอร์ r8169 (สิ่งที่คาดเดาไม่ได้จะเกิดขึ้นเช่นไม่สามารถสื่อสารกับอินเทอร์เน็ตได้) ดังนั้นฉันจึงต้องเรียกใช้คำสั่งต่อไปนี้เพื่อยกเลิกการผูกไดรเวอร์ r8169 และผูก ไดรเวอร์ r8168:

ที่อยู่=$(lspci | awk '/8168/ {พิมพ์ "0000:"$1}')
echo $ที่อยู่ | sudo ที /sys/bus/pci/drivers/r8169/unbind
echo $ที่อยู่ | sudo ที /sys/bus/pci/drivers/r8168/bind

หลังจากรันคำสั่งเหล่านี้แล้ว โปรแกรมควบคุมจะแสดงอย่างถูกต้องใน lshw คำสั่งและฉันไม่มีปัญหาใด ๆ เมื่อตั้งค่าไดรเวอร์ที่ถูกต้องสำหรับการ์ดที่ถูกต้อง:

terrance@Intrepid:~$ sudo lshw -C เครือข่าย
  *-เครือข่าย                 
       คำอธิบาย: อินเตอร์เฟสอีเธอร์เน็ต
       ผลิตภัณฑ์: RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
       ผู้จัดจำหน่าย: Realtek Semiconductor Co., Ltd.
       รหัสทางกายภาพ: 0
       ข้อมูลรถบัส: pci@0000:02:00.0
       ชื่อตรรกะ: eth0
       รุ่น: 03
       อนุกรม: c8:3a:35:d6:ec:a0
       ขนาด: 1Gbit/s
       ความจุ: 1Gbit/s
       ความกว้าง: 64 บิต
       นาฬิกา: 33MHz
       ความสามารถ: pm msi pciexpress msix vpd bus_master cap_list อีเธอร์เน็ตทางกายภาพ tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd การเจรจาอัตโนมัติ
       การกำหนดค่า: การเจรจาอัตโนมัติ=เปิดออกอากาศ=ใช่ ไดรเวอร์=r8168 ไดรเวอร์เวอร์ชัน=8.048.00-NAPI ดูเพล็กซ์=เวลาแฝงเต็ม=0 ลิงก์=ใช่ มัลติคาสต์=ใช่ พอร์ต=ทาสคู่บิด=ใช่ ความเร็ว=1Gbit/s
       ทรัพยากร: irq:25 ioport:d800(size=256) หน่วยความจำ:fdfff000-fdffffff หน่วยความจำ:fdff8000-fdffbfff
  *-เครือข่าย
       คำอธิบาย: อินเตอร์เฟสอีเธอร์เน็ต
       ผลิตภัณฑ์: RTL8169 PCI Gigabit Ethernet Controller
       ผู้จัดจำหน่าย: Realtek Semiconductor Co., Ltd.
       รหัสประจำตัว: 5
       ข้อมูลรถบัส: pci@0000:03:05.0
       ชื่อตรรกะ: eth1
       รุ่น: 10
       อนุกรม: bc:5f:f4:79:66:fe
       ขนาด: 1Gbit/s
       ความจุ: 1Gbit/s
       ความกว้าง: 32 บิต
       นาฬิกา: 66MHz
       ความสามารถ: pm bus_master cap_list rom อีเธอร์เน็ต ทางกายภาพ tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd การเจรจาอัตโนมัติ
       การกำหนดค่า: การเจรจาอัตโนมัติ=เปิดออกอากาศ=ใช่ ไดรเวอร์=r8169 เวอร์ชันไดรเวอร์=5.13.0-30-เพล็กซ์ทั่วไป=เวลาแฝงเต็ม=64 ลิงก์=ใช่ ความหน่วงสูงสุด=64 mingnt=32 มัลติคาสต์=ใช่ พอร์ต=คู่บิด ทาส=ใช่ ความเร็ว=1Gbit/s
       ทรัพยากร: irq:20 ioport:e800(ขนาด=256) หน่วยความจำ:febffc00-febffcff หน่วยความจำ:febc0000-febdffff
  *-เครือข่าย
       คำอธิบาย: อินเตอร์เฟสอีเธอร์เน็ต
       รหัสประจำตัว: 1
       ชื่อตรรกะ: bond0
       อนุกรม: bc:5f:f4:79:66:fe
       ความสามารถ: ทางกายภาพของอีเธอร์เน็ต
       การกำหนดค่า: การเจรจาอัตโนมัติ = ปิดการออกอากาศ = ใช่ ไดรเวอร์ = เวอร์ชันไดรเวอร์ที่เชื่อมโยง = 5.13.0-30-duplex ทั่วไป = เฟิร์มแวร์แบบเต็ม = 2 ip = 10.0.0.220 ลิงก์ = ใช่ มาสเตอร์ = ใช่ มัลติคาสต์ = ใช่

สิ่งนี้คงอยู่ผ่านการรีบูตได้จนกว่าจะมีการอัปเดตเคอร์เนลครั้งต่อไป แต่ถ้าฉันรันคำสั่งเดียวกันในสคริปต์ มันจะบอกฉันว่า "ไม่มีอุปกรณ์ดังกล่าว"

terrance@Intrepid:~/bin$ sudo ./driver_fix.bsh 
0000:02:00.0
tee: /sys/bus/pci/drivers/r8169/unbind: ไม่มีอุปกรณ์ดังกล่าว
0000:02:00.0
tee: /sys/bus/pci/drivers/r8168/bind: ไม่มีอุปกรณ์ดังกล่าว

อะไรจะเป็นวิธีที่ดีที่สุดที่ฉันจะทำสิ่งนี้อย่างถาวร ดังนั้นมันจึงทำการเปลี่ยนแปลงนี้ระหว่างการเริ่มต้นหรือเปลี่ยนแปลงเฉพาะเมื่อมีการอัปเดตเคอร์เนลเท่านั้น

ขอบคุณ!

Score:0
ธง id

ฉันสามารถแก้ไขปัญหาของฉันได้โดยสร้างไฟล์สำหรับ udev ที่ทำการเลิกผูกและผูกระหว่างการเริ่มต้น

ฉันสร้างไฟล์ชื่อ /etc/udev/rules.d/99-mydriver.rules และฉันเพิ่มบรรทัดต่อไปนี้ในไฟล์:

SUBSYSTEM=="net", ACTION="unbind", KERNELS="0000:02:00.0" RUN+="/bin/bash -c 'echo 0000:02:00.0 > /sys/bus/pci/drivers/ r8169/ยกเลิกการผูก'"
SUBSYSTEM=="net", ACTION=="bind", KERNELS="0000:02:00.0" RUN+="/bin/bash -c 'echo 0000:02:00.0 > /sys/bus/pci/drivers/ r8168/ผูก'"

ตอนนี้ ทุกครั้งที่ระบบบูทขึ้น ดูเหมือนว่าจะตั้งค่าไดรเวอร์ที่เหมาะสมเป็น NIC ที่เหมาะสม

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา