시작 스크립트 내에서 dhcpcd wlan0을 실행할 때 IP를 얻지 못했습니다.

시작 스크립트 내에서 dhcpcd wlan0을 실행할 때 IP를 얻지 못했습니다.

Rasberry PI Zero의 Rasbian.

부팅 시 네트워킹 및 dhcpcd 서비스를 비활성화했으며 네트워킹을 활성화하고 사용자 정의 systemd 서비스에서 시작된 내 스크립트에서 IP를 가져오고 싶습니다.

이것은 나를 혼란스럽게 만드는 스크립트 부분입니다.

wpa_passphrase ssid password > /etc/wpa_supplicant/wpa_supplicant.conf
systemctl start networking.service
dhcpcd wlan0

스크립트에서 dhcpcd wlan0을 실행하면 IP가 할당되지 않지만(로그인 후 ifconfig 사용) 부팅하고 로그인한 후 sudo dhcpcd wlan0을 실행하면 IP를 얻게 됩니다. 이것이 타이밍 문제(network.service를 기다리는 중)인지 아니면 스크립트에서 dhcpcd를 통해 IP를 얻기 위해 다른 작업을 수행해야 하는지 아는 사람이 있습니다.

또한 약간의 지연(sleep 100)을 추가하고 dhcpcd wlan0 대신 systemctl start dhcpcd를 실행해 보았습니다.

나는 이것이 이 작업을 수행하는 표준 방법이 아니라는 것을 알고 있지만 네트워크와 dhcpcd를 비활성화하고 내 스크립트에서 시작하면 부팅이 더 효율적이 됩니다(더 많은 부팅을 수행하기 전에 가동/중단이 줄어들고 네트워크 등을 기다리는 등). 나는 스크립트에서 많은 사용자 정의 구성과 인스턴스화를 수행합니다.

헨리크

답변1

내가 직접 해결했습니다.

/etc/network/interfaces 구성 파일을 변경해야 합니다. 나는 변했어:

auto wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

도착하다:

auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

이는 또한 스크립트에서 dhcpcd wlan0 행을 제거할 수 있음을 의미합니다. 이제 스크립트 내에서 네트워크 서비스를 시작하더라도 시작 시 IP를 얻습니다.

관련 정보