mirror of
https://github.com/archr-linux/Arch-R.git
synced 2026-03-31 14:41:55 -07:00
103 lines
2.7 KiB
Bash
103 lines
2.7 KiB
Bash
#!/bin/bash
|
|
|
|
#==============================================================================
|
|
# Arch R - Wi-Fi Connection Script
|
|
#==============================================================================
|
|
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
|
|
# Colors for output
|
|
RED='\033[0;31m'
|
|
GREEN='\033[0;32m'
|
|
YELLOW='\033[1;33m'
|
|
NC='\033[0m' # No Color
|
|
|
|
echo -e "${GREEN}=== Arch R Wi-Fi Setup ===${NC}"
|
|
echo ""
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Check for Wi-Fi interface
|
|
#------------------------------------------------------------------------------
|
|
echo "Checking for Wi-Fi interface..."
|
|
|
|
IFACE=""
|
|
for iface in wlan0 wlan1 wlp1s0; do
|
|
if [ -d "/sys/class/net/$iface" ]; then
|
|
IFACE="$iface"
|
|
break
|
|
fi
|
|
done
|
|
|
|
if [ -z "$IFACE" ]; then
|
|
echo -e "${RED}No Wi-Fi interface found!${NC}"
|
|
echo ""
|
|
echo "Troubleshooting:"
|
|
echo " 1. Make sure Wi-Fi adapter is connected"
|
|
echo " 2. Check if driver is loaded: lsmod | grep aic"
|
|
echo " 3. Check dmesg for errors: dmesg | grep -i wifi"
|
|
exit 1
|
|
fi
|
|
|
|
echo -e "${GREEN}Found interface: $IFACE${NC}"
|
|
echo ""
|
|
|
|
#------------------------------------------------------------------------------
|
|
# Check NetworkManager
|
|
#------------------------------------------------------------------------------
|
|
if command -v nmcli &> /dev/null; then
|
|
# Use NetworkManager
|
|
echo "Scanning for networks..."
|
|
echo ""
|
|
|
|
nmcli device wifi rescan 2>/dev/null
|
|
sleep 2
|
|
|
|
echo "Available networks:"
|
|
nmcli device wifi list
|
|
echo ""
|
|
|
|
read -p "Enter network name (SSID): " SSID
|
|
read -sp "Enter password: " PASSWORD
|
|
echo ""
|
|
|
|
echo "Connecting to $SSID..."
|
|
nmcli device wifi connect "$SSID" password "$PASSWORD"
|
|
|
|
if [ $? -eq 0 ]; then
|
|
echo -e "${GREEN}Connected successfully!${NC}"
|
|
echo ""
|
|
echo "IP Address:"
|
|
ip -4 addr show "$IFACE" | grep inet
|
|
else
|
|
echo -e "${RED}Connection failed!${NC}"
|
|
exit 1
|
|
fi
|
|
|
|
else
|
|
# Fallback to wpa_supplicant
|
|
echo "NetworkManager not available, using wpa_supplicant..."
|
|
|
|
read -p "Enter network name (SSID): " SSID
|
|
read -sp "Enter password: " PASSWORD
|
|
echo ""
|
|
|
|
# Create wpa_supplicant config
|
|
WPA_CONF="/tmp/wpa_temp.conf"
|
|
wpa_passphrase "$SSID" "$PASSWORD" > "$WPA_CONF"
|
|
|
|
# Stop any existing wpa_supplicant
|
|
killall wpa_supplicant 2>/dev/null
|
|
|
|
# Start wpa_supplicant
|
|
wpa_supplicant -B -i "$IFACE" -c "$WPA_CONF"
|
|
sleep 2
|
|
|
|
# Get IP via DHCP
|
|
dhcpcd "$IFACE"
|
|
|
|
echo -e "${GREEN}Connection attempted!${NC}"
|
|
echo ""
|
|
echo "IP Address:"
|
|
ip -4 addr show "$IFACE" | grep inet
|
|
fi
|