From 5f0da1ae9908003ce2e60850eee2471fcc659f02 Mon Sep 17 00:00:00 2001 From: Frede Hundewadt Date: Wed, 3 Jan 2024 10:17:20 +0100 Subject: [PATCH] Add wifi-hack.sh --- wifi-hack.sh | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 wifi-hack.sh diff --git a/wifi-hack.sh b/wifi-hack.sh new file mode 100644 index 0000000..c88e861 --- /dev/null +++ b/wifi-hack.sh @@ -0,0 +1,82 @@ +#!/usr/bin/env bash +# +# Script to preconfigure Manjaro ARM installer for WiFi connection +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# @linux-aarhus - root.nix.dk +# + +set -e +scriptname=$0 +tmproot="/tmp/root" +usage(){ + echo "Run script as root using su or sudo" + echo "Usage: sudo ${scriptname} /dev/mmcblkX ssid passphrase [ ip.x.y.z/24 gw.x.y.z ns.x.y.x ]" + exit 1 +} + +# run as root +if ! [[ $(whoami) == "root" ]] ; then + usage +fi + +# check if arg1 is block device +if ! [[ -b $"$1" ]]; then + echo "'$1' is not a block devicce" + exit 1 +fi + +# mount partition +echo Mount sd-card root partition +mkdir -p "${tmproot}" +mount "$1"p2 "${tmproot}" + +# create wlan0 network +# if we have 3 arguments - use dhcp +if [[ $# -eq 3 ]] ; then +cat << EOF >> "${tmproot}/etc/systemd/network/wlan0.network" +[Match] +Name=wlan0 +[Network] +DHCP=yes +EOF +# if we have 6 arguments - static ip +elif [[ $# -eq 6 ]]; then +cat << EOF >> "${tmproot}/etc/systemd/network/wlan0.network" +[Match] +Name=wlan0 +[Network] +Address=$4 +Gateway=$5 +DNS=$6 +EOF +# argument count must be either 3 or 6 +else + usage +fi + +# create wpa_supplicant.conf +wpa_passphrase "$2" "$3" > "${tmproot}/etc/wpa_supplicant/wpa_supplicant-wlan0.conf" + +# create symlink for wlan0 service +ln -sf "/usr/lib/systemd/system/wpa_supplicant0.service" \ + "${tmproot}/etc/systemd/system/multi-user.target.wants/wpa_supplicant@wlan0.service" + +# unmount and clean up +echo Unmounting +umount ${tmproot} +echo Cleaning up +rmdir ${tmproot} +echo Done \ No newline at end of file