diff --git a/operator_setup.sh b/operator_setup.sh index 708ba8e..550e8be 100755 --- a/operator_setup.sh +++ b/operator_setup.sh @@ -478,42 +478,63 @@ info "Mounted at ${MOUNT_POINT} ($(blkid -o value -s TYPE "${_ROOTFS_PART:-/dev/ # ══════════════════════════════════════════════════════════════════════════════ section "Applying Configuration" -# WiFi profile +# WiFi profile — Armbian uses Netplan + wpa_supplicant (not NetworkManager) if [[ -n "$WIFI_SSID" ]]; then step "Writing WiFi profile..." - NM_DIR="${MOUNT_POINT}/etc/NetworkManager/system-connections" - NM_FILE="${NM_DIR}/wifi-bb.nmconnection" - mkdir -p "$NM_DIR" - WIFI_UUID=$(cat /proc/sys/kernel/random/uuid) - cat > "$NM_FILE" << EOF -[connection] -id=wifi-bb -uuid=${WIFI_UUID} -type=wifi -autoconnect=true -autoconnect-priority=10 + # Netplan config (primary — renderer: networkd) + mkdir -p "${MOUNT_POINT}/etc/netplan" + cat > "${MOUNT_POINT}/etc/netplan/20-wifi.yaml" << EOF +network: + version: 2 + renderer: networkd + wifis: + wlan0: + dhcp4: yes + dhcp6: no + access-points: + "${WIFI_SSID}": + password: "${WIFI_PASS}" +EOF + chmod 600 "${MOUNT_POINT}/etc/netplan/20-wifi.yaml" -[wifi] -mode=infrastructure -ssid=${WIFI_SSID} + # wpa_supplicant direct config (backup — used by wpa_supplicant@wlan0.service) + mkdir -p "${MOUNT_POINT}/etc/wpa_supplicant" + cat > "${MOUNT_POINT}/etc/wpa_supplicant/wpa_supplicant-wlan0.conf" << EOF +ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev +update_config=1 +country=US -[wifi-security] -auth-alg=open -key-mgmt=wpa-psk -psk=${WIFI_PASS} +network={ + ssid="${WIFI_SSID}" + psk="${WIFI_PASS}" + key_mgmt=WPA-PSK + scan_ssid=1 +} +EOF + chmod 600 "${MOUNT_POINT}/etc/wpa_supplicant/wpa_supplicant-wlan0.conf" -[ipv4] -method=auto + # systemd-networkd config for wlan0 DHCP + mkdir -p "${MOUNT_POINT}/etc/systemd/network" + cat > "${MOUNT_POINT}/etc/systemd/network/10-wifi-wlan0.network" << EOF +[Match] +Name=wlan0 -[ipv6] -addr-gen-mode=stable-privacy -method=auto +[Network] +DHCP=yes +IPv6PrivacyExtensions=yes EOF - chmod 600 "$NM_FILE" - chown root:root "$NM_FILE" - info "WiFi profile written (SSID: ${WIFI_SSID}, UUID: ${WIFI_UUID})" + # Enable wpa_supplicant@wlan0 if the template service exists + WPA_TEMPLATE="${MOUNT_POINT}/lib/systemd/system/wpa_supplicant@.service" + WPA_WANTS="${MOUNT_POINT}/etc/systemd/system/multi-user.target.wants" + if [[ -f "$WPA_TEMPLATE" ]]; then + mkdir -p "$WPA_WANTS" + ln -sf /lib/systemd/system/wpa_supplicant@.service \ + "${WPA_WANTS}/wpa_supplicant@wlan0.service" + fi + + info "WiFi profile written (SSID: ${WIFI_SSID})" fi # Root password