우리는 이더넷 포트에 LiDAR가 연결된 Raspberry Pi를 사용하고 있습니다. 문제는 mdns4_minimal이 $(hosname).local을 두 개의 IP로 해석한다는 것입니다. 하나의 IP는 이더넷 포트(Lidar에서)에서 가져오고 다른 IP는 WiFi에서 가져옵니다. 이로 인해 ROS에서 일부 노드가 WiFi IP 주소 대신 LiDAR IP 주소를 획득하여 노드 간 통신이 잘못되는 문제가 발생합니다.
해결책은 호스트 이름 확인 우선순위를 변경하여 Wi-Fi 연결의 우선순위를 지정하는 것이라고 생각했지만 인터넷에서 이 작업을 수행하는 방법에 대한 지침을 찾지 못했습니다.
아니면 이 문제를 해결하는 더 좋은 방법이 있습니까?
답변1
먼저, 이름 확인 우선순위를 지정할 수 있습니다(또는 오히려주문하다) 존재하다 /etc/nsswitch.conf
.
예를 들어 Raspbian 11(Bulls Eye) Pi에서 관련 부분 /etc/nsswitch.conf
은 다음과 같습니다.
hosts: files mdns4_minimal [NOTFOUND=return] dns
예를 들어, 이것을 mdns4_minimal 앞에 넣으면 dns
호스트 이름 확인은 mdns보다 dns를 선호합니다:
hosts: files dns mdns4_minimal [NOTFOUND=return]
바라보다맨페이지솔루션 순서를 자세히 설명하는 훌륭한 게시물도 있습니다.여기.
귀하의 의견을 읽은 후 mDNS 해상도를 유지하고 싶다는 점을 이해하지만 어떤 해상도를 지정해야 하는지상호 작용모두가 이 과정에 참여했습니다.
deny-interfaces
의 목록에 인터페이스를 추가하여 Avahi 데몬(mDNS 담당)에게 인터페이스를 무시하도록 지시할 수 있습니다 /etc/avahi/avahi-daemon.conf
. ~에서맨페이지:
deny-interfaces= Set a comma separated list of network interfaces that should be ignored by avahi-daemon. Other not specified interfaces will be used, unless allow-interfaces= is set.
This option takes precedence over allow-interfaces=.
그런 다음 재시작 데몬을 사용하십시오 systemctl restart avahi-daemon
.