
저는 각각 두 개의 서로 다른 무선 카드(서로 다른 칩셋 사용/다른 모듈 사용, 하나는 rtl8187이고 다른 하나는 rt2800usb)가 있는 일련의 Raspberry Pi를 사용하여 프로젝트를 진행하고 있습니다.
현재는 각 Pi에 대해 지속적인 명명 규칙을 설정했기 때문에 새 Pi를 설정하거나 Pi 간에 무선 카드를 교체할 때 새 rtl8187 카드가 여전히 wlan0이고 새 rt2800usb 카드는 여전히 wlan1입니다.
사용하는 모듈 등을 기반으로 인터페이스 이름을 지정하도록 영구 규칙을 수정할 수 있는 방법이 있습니까? 이상적으로는 내가 연결하는 rtl8187 카드가 wlan0이어야 하고 rt2800usb 카드가 wlan1이어야 한다는 것을 알 수 있게 하고 싶습니다.
아니면 해결 방법으로 MAC 주소 일치에 부분 와일드카드를 사용하는 방법이 있습니까? 동일한 칩셋을 사용하는 모든 카드에는 동일한 공급업체 MAC 접두사가 있습니다.
답변1
가장 먼저 시도해 볼 것은
ATTR{address}=="12:34:56:78:9A:AB"
에게
ATTR{address}=="12:34:56:*"
( RaspPi /etc/udev/rules.d/70-persistent-net.rules
의 같은 위치에 있다고 가정).
테스트하지는 않았지만 일반적인 매칭이 작동하는 방식입니다.
작동한다면 이 파일을 각각의 새로운 RaspPi에 복사하세요.
답변2
장치 이름을 지정하는 것이 장치가 wan0인지 또는 wan1인지에 대한 결정 요인을 확인했으므로 장치 이름을 지정하는 것이 도움이 될 것이라고 생각하지 않습니다.
내가 생각할 수 있는 유일한 해결책은 매우 더러운 것입니다. 네트워크 구성의 복사본 두 개를 갖고 udev 규칙을 사용하여 원하는 네트워크 구성을 제자리에 복사하는 것입니다. (이것은 효과가 있지만 매우 더러워요...)
아마도 누군가가 더 나은 솔루션을 생각할 수 있지만 이 방법을 선택하면 udev 규칙에서 장치를 일치시키고 udev 규칙 끝에 +RUN=/usr/local/bin/bashscript.sh(make 권한을 잠그십시오).
내가 가진 유일한 질문은 하나의 nic을 wlan1로 사용하면 어떤 문제가 있는지 이해하지 못합니다.
나는 귀하의 문제에 대한 답이 wlan1에서 wlan0으로 변경되는 것이 아니라 왜 필요한지 알아내는 것이라고 믿습니다.
다음은 bash 스크립트에 사용된 udev 규칙의 예입니다.
ATTRS{idVendor}=="1050", ATTRS{idProduct}=="0010|0110|0111|0114|0116|0401|0403|0405|0407|0410", ACTION=="remove", RUN+="/usr/local/bin/secdev_lock.sh"
(보안 키를 뽑으면 노트북 화면이 잠깁니다.)
업데이트:
사용 가능한 카드 속성을 디버깅하려면 다음을 수행하세요.
SUBSYSTEM=="net", ACTION=="add", RUN+="/usr/local/bin/addnic.sh"
addnic.sh에서;
#!/bin/bash
env > /home/user/udev_$RANDOM.txt
나는 당신이 거기에서 일치하는 모든 관련 정보를 찾을 것이라고 확신합니다