This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revisionLast revisionBoth sides next revision | ||
toggle_radio [2023/08/06 20:40] – [Full Wireless operation] -formatting, change to "Force radio" hogwild | toggle_radio [2023/08/06 21:48] – [WiFi SSID-specific operation] hogwild | ||
---|---|---|---|
Line 1: | Line 1: | ||
- | ====== Turning on/off radio elements from a script ====== | + | ====== Turning on/ |
===== Full Wireless operation ===== | ===== Full Wireless operation ===== | ||
- | If you want to enable/ | + | If you want to enable/ |
+ | |||
+ | \\ | ||
**Toggle:** | **Toggle:** | ||
\\ ''/ | \\ ''/ | ||
+ | |||
+ | | ||
+ | |||
+ | **Force radio off:** | ||
+ | |||
+ | | ||
+ | |||
+ | | ||
+ | |||
+ | **Force radio on:** | ||
+ | |||
+ | | ||
+ | |||
+ | |||
+ | ===== Specific Wireless chipset (2.4/5GHz) operations ===== | ||
+ | |||
+ | Modern routers come with two or more chipsets/ | ||
+ | |||
+ | Once you've identified the name of the appropriate radio interface (via the [[advanced-wlanvifs|Virtual Wireless]] page): | ||
\\ | \\ | ||
- | **Force radio off:**\\ '' | + | {{: |
+ | |||
+ | Do not blindly use this table. It is only an example. Router interface names may vary. For full chipset operation, refer to the " | ||
+ | |||
+ | \\ | ||
+ | |||
+ | For example, using " | ||
+ | |||
+ | **Verify interface state** | ||
+ | |||
+ | \\ '' | ||
\\ | \\ | ||
- | **Force radio on:**\\ ''/ | + | \\ |
+ | **Toggle interface state** | ||
- | ===== Wireless chipset | + | \\ '' |
- | Modern routers come with 2 or more chipsets, there' | + | \\ |
- | {{: | + | \\ |
- | Do not blindly use this table. Check what it says on your router as it might be different. FOr full chipset operation we refer to the ethX name reference of the interface. Once you have the correct name (I'm using eth1 in my example here below), you can check the status of your wireless interface as follow: | + | |
- | **Verify**\\ | + | **Force interface off** |
- | '' | + | |
- | [ $(wl -i $int radio | grep -Eo [0-1]$) -eq 1 ] && echo "radio $int is off" || echo "radio $int is on"'' | + | |
- | **Toggle**\\ | + | \\ '' |
- | '' | + | |
- | [ $(wl -i $int radio | grep -Eo [0-1]$) -eq 1 ] && wl -i $int radio on || wl -i $int radio off'' | + | |
- | **Force off**\\ | + | \\ |
- | '' | + | |
- | wl -i $int radio off'' | + | |
- | **Force on**\\ | + | \\ |
- | '' | + | |
- | wl -i $int radio on'' | + | |
- | ===== Wireless SSID specific operation ===== | + | **Force interface on** |
- | There might be cases where you don't want to affect the full radio chipset but rather restrict access to a specific SSID. This is achieved as follow: | + | \\ \\ '' |
- | - Identify the SSID virtual interface you want to affect. Remember virtual interfaces are always defined as [ main wireless interface name ] + [.] + [a number 0-3] so e.g. " | + | |
- | {{: | + | |
- | Now let's assume you want to turn off wl1.3 which is associated to SSID " | ||
- | {{: | ||
- | Let's perform the following: | + | ===== WiFi SSID-specific operation ===== |
- | **Toggle**\\ | + | In some cases, you might want to just restrict access to only one specific SSID or change settings specific to only one WiFi interface. |
- | '' | + | This can be achieved as follows: |
- | [ $(wl -i $int radio | grep -Eo [0-1]$) -eq 1 ] && wl -i $int radio on || wl -i $int radio off'' | + | |
- | **Force Off**\\ | + | First, identify the SSID virtual interface you want to control. The full list of WiFi interfaces on your router and all its sub-interfaces can be found in the [[advanced-wireless|Virtual Wireless]] menu. |
- | '' | + | |
- | wl -i $int radio off'' | + | |
- | **Force On**\\ | + | Virtual interfaces are always defined as: '' |
- | '' | + | |
- | wl -i $int radio on'' | + | |
- | ==== Wireless | + | For example, on this router, in the Virtual |
- | Let' | + | \\ \\ {{: |
+ | |||
+ | \\ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | Now, let' | ||
+ | |||
+ | \\ \\ {{: | ||
+ | |||
+ | \\ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | You could perform the following tasks:\\ | ||
+ | |||
+ | **Toggle interface state**\\ | ||
+ | |||
+ | '' | ||
+ | |||
+ | \\ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | **Force Interface Off** | ||
+ | |||
+ | \\ \\ '' | ||
+ | |||
+ | \\ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | **Force Interface On** | ||
+ | |||
+ | \\ \\ '' | ||
+ | |||
+ | \\ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | |||
+ | ==== Wireless SSID-specific operation ==== | ||
+ | |||
+ | Often, a specific defined | ||
+ | |||
+ | You can disable | ||
+ | |||
+ | \\ | ||
+ | |||
+ | **Force Off** | ||
+ | |||
+ | \\ \\ '' | ||
+ | |||
+ | \\ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | **Force On** | ||
+ | |||
+ | \\ \\ '' | ||
+ | |||
+ | \\ | ||
+ | |||
+ | \\ | ||
+ | |||
+ | \\ | ||
- | **Force Off**\\ | ||
- | '' | ||
- | nvram show | grep ssid | grep $SSID | while read line; do wl -i $(echo $line | cut -d" | ||
- | **Force On**\\ | ||
- | '' | ||
- | nvram show | grep ssid | grep $SSID | while read line; do wl -i $(echo $line | cut -d" |