Điểm:1

Hủy liên kết và liên kết trình điều khiển trong khi khởi động 20.04.3 LTS

lá cờ id

Hệ thống của tôi đang chạy 20.04.3 LTS và tôi đang sử dụng nó làm Máy chủ phương tiện Plex (trong số các dịch vụ khác). Tôi đang sử dụng mạng liên kết để cân bằng tải thích ứng trên hệ thống. Tôi đang gặp sự cố với hệ thống khi hệ thống nhận được bản cập nhật kernel mới.

Có 2 card mạng trong hệ thống. Một nằm trong khe cắm (Bộ điều khiển Ethernet Gigabit RTL8169) và một nằm trên bo mạch (Bộ điều khiển Ethernet Gigabit RTL8111/8168/8411 PCI Express). Vấn đề tôi gặp phải là RTL8111/8168/8411 không thích trình điều khiển r8169 (những điều không thể đoán trước sẽ xảy ra như không thể giao tiếp với internet) vì vậy tôi phải chạy các lệnh sau để hủy liên kết trình điều khiển r8169 và liên kết trình điều khiển r8168:

address=$(lspci | awk '/8168/ {print "0000:"$1}')
tiếng vang $ địa chỉ | sudo tee /sys/bus/pci/drivers/r8169/unbind
tiếng vang $ địa chỉ | sudo tee /sys/bus/pci/drivers/r8168/bind

Sau khi chạy các lệnh này, trình điều khiển sẽ hiển thị chính xác trong lshw lệnh và tôi không gặp bất kỳ sự cố nào khi trình điều khiển phù hợp được đặt cho đúng thẻ:

terrance@Intrepid:~$ Sudo lshw -C mạng
  *-mạng                 
       Mô tả: Giao diện Ethernet
       sản phẩm: Bộ điều khiển Gigabit Ethernet PCI Express RTL8111/8168/8411
       nhà cung cấp: Realtek Semiconductor Co., Ltd.
       id vật lý: 0
       thông tin xe buýt: pci@0000:02:00.0
       tên logic: eth0
       phiên bản: 03
       nối tiếp: c8:3a:35:d6:ec:a0
       kích thước: 1Gbit/s
       dung lượng: 1Gbit/s
       chiều rộng: 64 bit
       xung nhịp: 33MHz
       khả năng: pm msi pciexpress msix vpd bus_master cap_list ethernet vật lý tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd tự động đàm phán
       cấu hình: autonegotiation=on Broadcast=yes driver=r8168 driverversion=8.048.00-NAPI duplex=full Latency=0 link=yes multicast=yes port=twisted pair Slave=yes speed=1Gbit/s
       tài nguyên: irq:25 ioport:d800(size=256) bộ nhớ:fdfff000-fdffffff bộ nhớ:fdff8000-fdffbfff
  *-mạng
       Mô tả: Giao diện Ethernet
       sản phẩm: Bộ điều khiển Gigabit Ethernet RTL8169 PCI
       nhà cung cấp: Realtek Semiconductor Co., Ltd.
       id vật lý: 5
       thông tin xe buýt: pci@0000:03:05.0
       tên logic: eth1
       phiên bản: 10
       nối tiếp: bc:5f:f4:79:66:fe
       kích thước: 1Gbit/s
       dung lượng: 1Gbit/s
       chiều rộng: 32 bit
       xung nhịp: 66MHz
       khả năng: pm bus_master cap_list rom ethernet vật lý tp mii 10bt 10bt-fd 100bt 100bt-fd 1000bt 1000bt-fd autonegotiation
       cấu hình: autonegotiation=on Broadcast=yes driver=r8169 driverversion=5.13.0-30-generic duplex=full lag=64 link=yes maxlatency=64 mingnt=32 multicast=yes port=twisted pair Slave=yes speed=1Gbit/s
       tài nguyên: irq:20 ioport:e800(size=256) bộ nhớ:febffc00-febffcff bộ nhớ:febc0000-febdffff
  *-mạng
       Mô tả: Giao diện Ethernet
       id vật lý: 1
       tên logic: trái phiếu0
       nối tiếp: bc:5f:f4:79:66:fe
       khả năng: ethernet vật lý
       cấu hình: autonegotiation=off Broadcast=yes driver=bonding driverversion=5.13.0-30-generic duplex=full firmware=2 ip=10.0.0.220 link=yes master=yes multicast=yes

Điều này kéo dài thông qua khởi động lại tốt cho đến khi cập nhật kernel tiếp theo. Nhưng, nếu tôi chạy chính xác các lệnh đó trong một tập lệnh, nó sẽ cho tôi biết "Không có thiết bị như vậy"

terrance@Intrepid:~/bin$ sudo ./driver_fix.bsh 
0000:02:00.0
tee: /sys/bus/pci/drivers/r8169/unbind: Không có thiết bị nào như vậy
0000:02:00.0
tee: /sys/bus/pci/drivers/r8168/bind: Không có thiết bị như vậy

Cách tốt nhất để tôi có thể thực hiện điều này là vĩnh viễn để nó thực hiện thay đổi này trong khi khởi động hoặc nó chỉ thay đổi khi cập nhật kernel?

Cảm ơn!

Điểm:0
lá cờ id

Tôi đã có thể giải quyết vấn đề của mình bằng cách tạo tệp cho udev thực hiện hủy liên kết và liên kết trong khi khởi động.

Tôi đã tạo một tệp có tên /etc/udev/rules.d/99-mydriver.rules và tôi đã thêm các dòng sau vào tệp:

SUBSYSTEM=="net", ACTION=="unbind", KERNELS=="0000:02:00.0" RUN+="/bin/bash -c 'echo 0000:02:00.0 > /sys/bus/pci/drivers/ r8169/bỏ liên kết'"
SUBSYSTEM=="net", ACTION=="bind", KERNELS=="0000:02:00.0" RUN+="/bin/bash -c 'echo 0000:02:00.0 > /sys/bus/pci/drivers/ r8168/liên kết'"

Bây giờ, mỗi khi hệ thống khởi động, nó sẽ xuất hiện để đặt trình điều khiển thích hợp cho NIC thích hợp.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.