gán số wlan


12

Làm thế nào hoặc ở đâu Linux xác định sự phân công của một thiết bị mạng? Cụ thể, wlan0hoặc wlan1cho các thiết bị USB không dây.

Tôi đã cắm vào TP USB không dây một lúc trước và nó đã được chỉ định wlan0. Tôi đã gỡ bỏ nó. Tuần này tôi đã cắm vào một thiết bị không dây USB Edimax và nó xuất hiện như một wlan1. Tôi đã gỡ bỏ nó ngay hôm nay để dùng thử thiết bị không dây Edimax USB thứ hai (tôi đã mua hai chiếc) và bây giờ nó đã xuất hiện wlan2.

Tôi biết đủ Unix / Linux để biết điều này đang được cấu hình ở đâu đó và nếu tôi xóa tệp cấu hình không sử dụng, tôi có thể biến Edimax mới nhất trở thành wlan0. Nhưng làm thế nào / ở đâu?

Câu trả lời:


15

Udev là thành phần hệ thống xác định tên của các thiết bị trong Linux - chủ yếu là tên tệp /dev, nhưng cũng là tên của giao diện mạng.

Các phiên bản của udev từ 099 đến 196 đi kèm với các quy tắc để ghi lại tên của các giao diện mạng và luôn sử dụng cùng một số cho cùng một thiết bị. Các quy tắc này bị tắt theo mặc định bắt đầu từ udev 174, nhưng dù sao cũng có thể được phân phối của bạn kích hoạt (ví dụ: Ubuntu giữ chúng). Một số bản phân phối cung cấp các bộ quy tắc khác nhau.

Kịch bản ghi và lưu trữ tên giao diện để sử dụng trong tương lai là /lib/udev/rules.d/75-persistent-net-generator.rules. Nó viết quy tắc trong /etc/udev/rules.d/70-persistent-net.rules. Vì vậy, loại bỏ các mục hiện có wlan0wlan1các mục từ của bạn /etc/udev/rules.d/70-persistent-net.rules, và thay đổi wlan2thành wlan0. Chạy udevadm --trigger --attr-match=vendor='Edimax'(hoặc bất kỳ --attr-matchtham số nào bạn tìm thấy phù hợp với thiết bị của bạn) để áp dụng lại các quy tắc cho thiết bị đã được cắm sẵn.


Cảm ơn rất nhiều. Đây là debian trên raspberry pi (raspbian) nên việc lưu trữ liên tục chỉ khác một chút.
Huntrods

Tệp nơi các bài tập wlan cụ thể được lưu trữ trên phiên bản (mới nhất, tôi nghĩ) của raspbian này là: /etc/udev/rules.d/70-persistent-net.rules. Tôi đã tìm thấy điều này bằng cách sử dụng thông tin của bạn ở trên và sau đó gõ "man udev" để xem tại sao tôi không thể tìm thấy 'wlan' trong thư mục /lib/udev/rules.d.
Huntrods

Đối với raspbian, số wlan được đặt dựa trên địa chỉ mac của thiết bị không dây (trong trường hợp này, bất kỳ ai được cắm vào cổng USB). Nó phân bổ số (wlan0, wlan1, v.v.) dựa trên thứ tự lần đầu tiên nhìn thấy địa chỉ mac mới khi nhận dạng và định cấu hình thiết bị không dây. Chỉnh sửa tệp này như bạn đề xuất cho phép bạn đặt bất kỳ thiết bị nào thành bất kỳ wlan # nào bởi IP tĩnh. - cảm ơn.
Huntrods

Một vài điểm cần làm rõ: 1) Gilles được phát hiện trong câu trả lời của anh ấy, rất thích xem một ví dụ về việc gán ID bởi hwaddr, 2) giao diện được gán theo thứ tự được xem - ví dụ: tôi có hai USB edimax, vị trí trong bốn khe cắm USB khả dụng có liên quan cao đến thứ tự chúng được quét. 3) bạn có thể sắp xếp lại các giao diện bằng cách rút phích cắm của chúng và chèn chúng theo cách thủ công theo thứ tự bạn muốn chúng được xác định.
CJ Steele

4

Vấn đề này đã được giải quyết kể từ systemdv197 với việc giới thiệu đặt tên liên tục cho các thiết bị mạng.

Theo trang Tên giao diện mạng dự đoán freedesktop , hạt nhân được gán tên đơn giản dựa trên thứ tự mà chúng được các trình điều khiển có liên quan thăm dò:

Lược đồ đặt tên cổ điển cho các giao diện mạng được áp dụng bởi kernel là chỉ cần gán các tên bắt đầu bằng "eth0", "eth1", ... cho tất cả các giao diện khi chúng được trình điều khiển dò tìm. Vì trình điều khiển trình điều khiển nói chung là không thể dự đoán được đối với công nghệ hiện đại, điều này có nghĩa là ngay khi có nhiều giao diện mạng có sẵn, việc gán tên "eth0", "eth1" và v.v. nói chung không được sửa nữa và điều đó rất có thể xảy ra " eth0 "trên một khởi động kết thúc là" eth1 "ở lần tiếp theo.

Nếu bản phân phối của bạn sử dụng systemd, bạn có thể sử dụng các tên được gán có thể dự đoán được nhưng có thể khó sử dụng wlp0s11hoặc bạn có thể viết udevquy tắc để đặt cho chúng một tên mà bạn thấy thoải mái hơn, như wifi1, dựa trên địa chỉ mac ...

Bao gồm một tệp trong /etc/udev/rules.d/được gọi là 10-network-device.rules:

SUBSYSTEM=="net", ACTION=="add", ATTR{address}=="22:bb:cc:33:44:dd", NAME="wifi1"

1
Bạn đang thiếu một bước ở đây. Huntrods rõ ràng không có udev sau 197 với sơ đồ đặt tên mới, và rõ ràng là có một sơ đồ đặt tên liên tục. Đây là kế hoạch đặt tên liên tục mà anh ta cần phải điều chỉnh.
Gilles 'SO- ngừng trở nên xấu xa'

Tôi có thể nói gì; Tôi đã
chơi khăm
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.