-
-
Notifications
You must be signed in to change notification settings - Fork 279
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fix: fixes error unusable wpa_supplicant.txt (#142)
This is more a workaround as a fix. Raspberry Foundation changed handling of wpa_supplicant.conf. Also KlipperScreen uses wpa_cli which overrides softlink to txt. fixes #134 Signed-off-by: Stephan Wendel <me@stephanwe.de> Signed-off-by: Stephan Wendel <me@stephanwe.de>
- Loading branch information
Showing
9 changed files
with
499 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
# Network module setup | ||
# shellcheck disable=all | ||
|
||
# Use disable power save for wifi module | ||
[ -n "$NETWORK_DISABLE_PWRSAVE" ] || NETWORK_DISABLE_PWRSAVE=yes | ||
|
||
# Type of power save rclocal/service/udev | ||
# rclocal - backwards compatibility, runs via rc.local | ||
# service - will add an systemd.service to enable or disable behavior | ||
# on reboots | ||
# udev - creates a udev rules that should affect all wifi devices. | ||
|
||
[ -n "$NETWORK_PWRSAVE_TYPE" ] || NETWORK_PWRSAVE_TYPE=udev |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,163 @@ | ||
Wifi-README.txt | ||
############### | ||
|
||
|
||
Due to changes in Raspberry Pi OS, which is OS_NAME is based on, | ||
there is no longer a OS_NAME-wpa-supplicant.txt available. | ||
|
||
How do I setup a (new) network on my Pi ? | ||
----------------------------------------- | ||
|
||
As described in the original Raspberry Pi OS documentation. | ||
See https://www.raspberrypi.com/documentation/computers/configuration.html#setting-up-a-headless-raspberry-pi. | ||
|
||
|
||
Quote: | ||
You will need to define a wpa_supplicant.conf file for your particular wireless network. | ||
Put this file onto the boot folder of the SD card. | ||
When the Raspberry Pi boots for the first time, | ||
it will copy that file into the correct location in the Linux root file system | ||
and use those settings to start up wireless networking. | ||
|
||
The Raspberry Pi’s IP address will not be visible immediately after power on, | ||
so this step is crucial to connect to it headlessly. | ||
Depending on the OS and editor you are creating this on, | ||
the file could have incorrect newlines or the wrong file extension, | ||
so make sure you use an editor that accounts for this. | ||
Linux expects the line feed (LF) newline character. | ||
|
||
What does that all mean? What have I todo now? | ||
---------------------------------------------- | ||
|
||
For short, get a proper text editor of your choice. | ||
Recommendations are Notepad++, VSCode, Atom or SublimeText. | ||
|
||
################################################################################ | ||
#### IMPORTANT! ATTENTION! #### | ||
################################################################################ | ||
|
||
!!!!! HEADS-UP WINDOWS USERS !!!!! | ||
---------------------------------- | ||
|
||
Do not use Wordpad for editing this file, it will mangle it and your | ||
configuration won't work. Use a proper text editor instead. | ||
|
||
!!!!! HEADS-UP MACOSX USERS !!!!! | ||
--------------------------------- | ||
|
||
If you use Textedit to edit this file make sure to use "plain text format" | ||
and "disable smart quotes" in "Textedit > Preferences", otherwise Textedit | ||
will use none-compatible characters and your network configuration won't work! | ||
|
||
|
||
1.) Open your choosen Texteditor and create a new file called | ||
|
||
wpa_supplicant.conf | ||
|
||
2.) Create a some basic configuration. This has to be in place! | ||
|
||
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev | ||
country=<Insert 2 letter ISO 3166-1 country code here> | ||
update_config=1 | ||
|
||
Valid Country Codes are: | ||
|
||
GB (United Kingdom) | ||
FR (France) | ||
DE (Germany) | ||
US (United States) | ||
SE (Sweden) | ||
|
||
For a full list, please visit https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 | ||
|
||
2.1) If you plan to use multiple WiFi networks, also add | ||
|
||
ap_scan=1 | ||
|
||
to the mentioned basic configuration. | ||
|
||
|
||
3.) Setup your "network" block. | ||
|
||
For detailed information, please consult: | ||
https://linux.die.net/man/5/wpa_supplicant.conf | ||
or | ||
https://wiki.debian.org/WiFi/HowToUse#wpa_supplicant | ||
or | ||
https://man.archlinux.org/man/wpa_supplicant.conf.5 | ||
|
||
Examples: | ||
|
||
Open or unsecured WiFi network: | ||
------------------------------- | ||
|
||
# Open/unsecured | ||
network={ | ||
scan_ssid=1 # Used to find hidden SSID's | ||
ssid="put SSID here" | ||
key_mgmt=NONE | ||
} | ||
|
||
------------------------------- | ||
|
||
|
||
WEP "secured" network: | ||
------------------------------- | ||
|
||
NOTE: | ||
|
||
WEP can be cracked within minutes. If your network is still relying on this | ||
encryption scheme you should seriously consider to update your network ASAP. | ||
|
||
network={ | ||
ssid="put SSID here" | ||
key_mgmt=NONE | ||
wep_key0="put password here" | ||
wep_tx_keyidx=0 | ||
} | ||
-------------------------------- | ||
|
||
|
||
WPA2 Personal secured network: | ||
(Please don't use WPA secured networks, WPA isn't secure anymore) | ||
-------------------------------- | ||
|
||
# WPA/WPA2 secured | ||
network={ | ||
scan_ssid=1 # Used to find hidden SSID's | ||
ssid="<Name of your wireless LAN>" | ||
psk="<Password for your wireless LAN>" | ||
proto=RSN | ||
key_mgmt=WPA-PSK | ||
pairwise=CCMP | ||
auth_alg=OPEN | ||
} | ||
-------------------------------- | ||
|
||
For the WPA2 Enterprise setup, please use your google-foo. | ||
This is an advanced topic! | ||
|
||
4.) Put that file on to the "/boot" partition, | ||
this partition is FAT32 formatted and should be visible if you plug the SD Card into your computer. | ||
|
||
If you created a file while the Pi was running, copy that file to boot. | ||
Assuming you created the file in your users "home" directory use | ||
|
||
sudo cp -v wpa_supplicant.conf /boot/ | ||
|
||
5.) Almost done... Please reboot the pi and wait for it to connect. | ||
|
||
NOTE: | ||
|
||
Attach a screen and watch the console output to get its IP or | ||
consult your Router setup page to grab that information. | ||
|
||
You could also try to reach it by its hostname. | ||
|
||
http://<yourpisname>.local | ||
|
||
If you didnt change the hostname during initial flash, you could use | ||
|
||
http://OS_NAME.local | ||
|
||
6.) Enjoy OS_NAME :) |
15 changes: 15 additions & 0 deletions
15
src/modules/net/filesystem/boot/wpa_supplicant.conf.example
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
# Simple configuration for a typical WPA2 network | ||
|
||
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev | ||
update_config=1 | ||
country=US # US Country code | ||
|
||
network={ | ||
scan_ssid=1 | ||
ssid="<Name of your wireless LAN>" | ||
psk="<Password for your wireless LAN>" | ||
proto=RSN | ||
key_mgmt=WPA-PSK | ||
pairwise=CCMP | ||
auth_alg=OPEN | ||
} |
22 changes: 22 additions & 0 deletions
22
src/modules/net/filesystem/etc/systemd/system/disable-wifi-pwr-mgmt.service
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
#### Disable wifi power_save | ||
#### | ||
#### Written by Stephan Wendel aka KwadFan <me@stephanwe.de> | ||
#### Copyright 2022 | ||
#### https://github.com/mainsail-crew/MainsailOS | ||
#### | ||
#### This File is distributed under GPLv3 | ||
#### | ||
#### Note: This is based on: | ||
#### https://www.intel.com/content/www/us/en/support/articles/000006168/boards-and-kits.html | ||
|
||
[Unit] | ||
Description=Disable power management for wlan0 | ||
After=network.target | ||
|
||
[Service] | ||
Type=oneshot | ||
StandardOutput=tty | ||
ExecStart=/usr/local/bin/pwrsave off | ||
|
||
[Install] | ||
WantedBy=multi-user.target |
4 changes: 4 additions & 0 deletions
4
src/modules/net/filesystem/etc/udev/rules.d/070-wifi-powersave.rules
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,4 @@ | ||
ACTION=="add", \ | ||
SUBSYSTEM=="net", \ | ||
KERNEL=="wlan*" \ | ||
RUN+="/usr/sbin/iw %k set power_save off" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,90 @@ | ||
#!/bin/bash | ||
#### Disable wifi power_save | ||
#### | ||
#### Written by Stephan Wendel aka KwadFan <me@stephanwe.de> | ||
#### Copyright 2022 | ||
#### https://github.com/mainsail-crew/MainsailOS | ||
#### | ||
#### This File is distributed under GPLv3 | ||
#### | ||
#### Note: This is based on: | ||
#### https://www.intel.com/content/www/us/en/support/articles/000006168/boards-and-kits.html | ||
|
||
|
||
## Error handling | ||
set -eou pipefail | ||
|
||
## Debug Mode | ||
#set -x | ||
|
||
### Message func | ||
function help_msg { | ||
echo -e "Usage:\n" | ||
echo -e "\tpwrsave [ on | off ]" | ||
echo -e "\t\ton\tEnables Power Management of 'wlan0'" | ||
echo -e "\t\toff\tDisables Power Management of 'wlan0'\n" | ||
exit 1 | ||
} | ||
|
||
function has_wifi { | ||
LC_ALL=C iwconfig wlan0 &> /dev/null && echo "0" || echo "1" | ||
} | ||
|
||
function check_wifi_present { | ||
# make sure to exit if command missing | ||
if [ -z "$(command -v iwconfig)" ]; then | ||
echo -e "Command 'iwconfig' not found ... [EXITING]" | ||
exit 1 | ||
fi | ||
if [ "$(has_wifi)" != "0" ]; then | ||
echo -e "[ \e[33mWARN\e[0m ] No WiFi hardware present ... [SKIPPED]" | ||
exit 0 | ||
fi | ||
} | ||
|
||
function disable_pwr_save { | ||
iwconfig wlan0 power off | ||
echo -e "[ \e[32mOK\e[0m ] Disabled Power Management for wlan0" | ||
} | ||
|
||
|
||
function enable_pwr_save { | ||
iwconfig wlan0 power on | ||
echo -e "[ \e[32mOK\e[0m ] Enabled Power Management for wlan0" | ||
} | ||
|
||
|
||
### MAIN | ||
function main { | ||
local arg | ||
if [ "$(id -u)" != "0" ]; then | ||
echo -e "\n$(basename "${0}"): This script needs root priviledges!\n" | ||
exit 1 | ||
fi | ||
if [ "${#}" == "0" ]; then | ||
echo -e "$(basename "${0}"): No argument set!" | ||
help_msg | ||
fi | ||
if [ "${#}" -gt 1 ]; then | ||
echo -e "$(basename "${0}"): Too many arguments set!" | ||
help_msg | ||
fi | ||
arg="${1}" | ||
case "${arg}" in | ||
"on") | ||
check_wifi_present | ||
enable_pwr_save | ||
;; | ||
"off") | ||
check_wifi_present | ||
disable_pwr_save | ||
;; | ||
?|*) | ||
echo -e "$(basename "${0}"): Unknown argument '${arg}' !" | ||
help_msg | ||
;; | ||
esac | ||
} | ||
|
||
main "${@}" | ||
exit 0 |
Oops, something went wrong.