2025-07-16 10:19:00 +02:00

48 lines
1.9 KiB
BlitzBasic

SUMMARY = "WiFi Auto-Connect Configuration"
DESCRIPTION = "systemd-networkd and wpa_supplicant configuration for automatic WiFi connection"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302"
SRC_URI = "file://25-wireless.network \
file://wpa_supplicant-wlp2s0.conf"
S = "${WORKDIR}"
do_install() {
# Install systemd-networkd configuration
install -d ${D}${sysconfdir}/systemd/network
install -m 0644 ${WORKDIR}/25-wireless.network ${D}${sysconfdir}/systemd/network/
# Install wpa_supplicant configuration
install -d ${D}${sysconfdir}/wpa_supplicant
install -m 0600 ${WORKDIR}/wpa_supplicant-wlp2s0.conf ${D}${sysconfdir}/wpa_supplicant/
# Create systemd service for generic WiFi interface discovery
install -d ${D}${sysconfdir}/systemd/system
cat > ${D}${sysconfdir}/systemd/system/wifi-connect.service << EOF
[Unit]
Description=WiFi Auto-Connect Service
After=network.target
Wants=network.target
[Service]
Type=oneshot
RemainAfterExit=yes
ExecStart=/bin/sh -c 'for iface in /sys/class/net/wlp*; do [ -e "\$iface" ] && systemctl start wpa_supplicant@\$(basename \$iface).service; done'
ExecStop=/bin/sh -c 'for iface in /sys/class/net/wlp*; do [ -e "\$iface" ] && systemctl stop wpa_supplicant@\$(basename \$iface).service; done'
[Install]
WantedBy=multi-user.target
EOF
# Enable the generic WiFi service
install -d ${D}${sysconfdir}/systemd/system/multi-user.target.wants
ln -sf ${sysconfdir}/systemd/system/wifi-connect.service ${D}${sysconfdir}/systemd/system/multi-user.target.wants/wifi-connect.service
}
FILES:${PN} = "${sysconfdir}/systemd/network/* \
${sysconfdir}/wpa_supplicant/* \
${sysconfdir}/systemd/system/wifi-connect.service \
${sysconfdir}/systemd/system/multi-user.target.wants/*"
RDEPENDS:${PN} = "systemd wpa-supplicant"