ACTION=="add", DRIVER=="r8152", ATTR{idVendor}=="2357", ATTR{idProduct}=="0601", ATTR{bConfigurationValue}!="$env{REALTEK_NIC_MODE}", ATTR{bConfigurationValue}="$env{REALTEK_NIC_MODE}"
Ý nghĩa của quy tắc udev này như sau: "Khi một thiết bị có idVendorgiá trị 2357 và idProductgiá trị 0601 (và được quản lý bởi trình điều khiển" r8152 ") được thêm vào hệ thống, nếu đó bConfigurationValuekhông phải là bất kỳ giá trị nào được xác định trong biến môi trường REALTEK_NIC_MODE, hãy đặt bConfigurationValuethành giá trị đó. "
Nói cách khác, quy tắc udev này không tải trình điều khiển r8152, nó sẽ chuyển thiết bị sang chế độ chính xác cho trình điều khiển đó nếu cần.
Khi một thiết bị mới được thêm vào, nhân Linux về cơ bản chạy modprobevới ID phần cứng (và một số thứ khác) của thiết bị được mã hóa trong "tên" của mô-đun mà nó yêu cầu. "Tên" này sau đó được so sánh bằng các modprobechuỗi ký tự đại diện được nhúng vào mỗi mô-đun dưới dạng bí danh mô-đun. Các depmodlệnh tập hợp lên các tên bí danh và lưu trữ chúng vào /lib/modules/<kernel version>/modules.alias[.bin]để tìm kiếm nhanh chóng. Bạn có thể xem các chuỗi bí danh được nhúng vào các mô-đun hạt nhân bằng modinfolệnh.
Đối với bộ điều hợp ethernet USB của bạn, "tên" là một cái gì đó giống như usb:v2357p0601d.... Thật không may, cdc_ethermô-đun có một bí danh ký tự đại diện cũng sẽ phù hợp với nó.
Bất kỳ bí danh nào được xác định trong /etc/modprobe.dsẽ được ưu tiên hơn các bí danh được nhúng vào chính các mô-đun. Vì vậy, bạn có thể chỉ định một bí danh sẽ khớp với bộ điều hợp ethernet của bạn và khiến r8152mô-đun được tải thay thế.
Hãy thử thêm nó dưới dạng /etc/modprobe.d/usbnic.conf:
alias usb:v2357p0601d*dc*dsc*dp*ic*isc*ip*in* r8152
Sau đó chạy depmod -abằng root, rút bộ điều hợp ethernet USB, rút cả hai r8152và cdc_ethercác mô-đun, cắm lại bộ điều hợp ethernet và xem điều gì xảy ra. Nếu chỉ có mô-đun r8152 được tải, tốt.
Nếu cdc_ethervẫn được tải, bí danh có thể cần phải cụ thể hơn (nghĩa là một hoặc nhiều dấu sao trong đó cần phải được thay thế bằng các giá trị thực tế, bất kể chúng có thể là gì) để bí danh này là cụ thể nhất và do đó trận đấu "hay nhất".
Cập nhật: Dưới đây là mô tả về định dạng bí danh mô-đun: http://people.skolelinux.org/pere/blog/Modalias_strings___a_prreal_way_to_map__ ware__to_hardware.html