1.Detección de controlador de wifi
https://oldwiki.archive.openwrt.org/doc/howto/wireless.overview
/package/base-files/files/etc/init.d/boot
/sbin/wifi detect > /tmp/wireless.tmp
[ -s /tmp/wireless.tmp ] && {
cat /tmp/wireless.tmp >> /etc/config/wireless
}
rm -f /tmp/wireless.tmp
No hay tal párrafo en la versión LEDE, no hay interfaz de detección wifi, pero la interfaz de configuración wifi, pero no sé por qué
wifi_detect_notice() {
>&2 echo "WARNING: Wifi detect is deprecated. Use wifi config instead"
>&2 echo "For more information, see commit 5f8f8a366136a07df661e31decce2458357c167a"
exit 1
}
wifi_config() {
[ ! -f /etc/config/wireless ] && touch /etc/config/wireless
for driver in $DRIVERS; do (
if eval "type detect_$driver" 2>/dev/null >/dev/null; then
eval "detect_$driver" || echo "$driver: Detect failed" >&2
else
echo "$driver: Hardware detection not supported" >&2
fi
); done
}
Si no hay forma de detectarlo, significa que hay un problema con el controlador wifi. En openwrt, el controlador wifi es de código abierto y de código cerrado proporcionado por el fabricante. Generalmente, el código cerrado es relativamente estable, pero la función se recortará y el código abierto puede ser inestable. Fácil de colgar.
La unidad debe estar habilitada en dts.
&wmac {
status = "okay";
};
Debajo de la plataforma, aparecerá un dispositivo de 10300000.wmac.
root@LEDE:/sys/devices/platform# ls
10000000.palmbus 101c1000.ohci gpio-keys-polled rstctrl
10100000.ethernet 10300000.wmac gpio-leds serial8250
10110000.esw alarmtimer gpio_export uevent
10120000.usbphy clkctrl pinctrl
101c0000.ehci cpuintc@0 regulatory.0
/ package / base-files / files / sbin / wifi
wifi_detect() {
for driver in ${2:-$DRIVERS}; do (
if eval "type detect_$driver" 2>/dev/null >/dev/null; then
eval "detect_$driver" || echo "$driver: Detect failed" >&2
else
echo "$driver: Hardware detection not supported" >&2
fi
); done
}
paquete / kernel / mac80211 / files / lib / wifi / mac80211.sh
detect_mac80211() {
set wireless.radio${devidx}.hwmode=11${mode_band}
${dev_id}
${ht_capab}
set wireless.radio${devidx}.disabled=1
set wireless.default_radio${devidx}=wifi-iface
set wireless.default_radio${devidx}.device=radio${devidx}
set wireless.default_radio${devidx}.network=lan
set wireless.default_radio${devidx}.mode=ap
set wireless.default_radio${devidx}.ssid=LEDE
set wireless.default_radio${devidx}.encryption=none
}
Configuración 2.Wifi
https://oldwiki.archive.openwrt.org/doc/uci/wireless
El script sobre wifi se encuentra en / sbin / wifi, y la información de configuración sobre wifi se encuentra en / etc / config / wireless.
root@OpenWrt:/# cat etc/config/wireless
config wifi-device 'mt7628'
option type 'mt7628'
option vendor 'ralink'
option band '2.4G'
option channel 0
option auotch '2'
config wifi-iface
option device 'mt7628'
option ifname 'ra0'
option network 'lan'
option mode 'ap'
option ssid NiuFi-1000AA
option key 12345678
option encryption 'psk2'
uci set wireless.@wifi-device[0].channel=%d && uci commit
uci set wireless.@wifi-iface[0].ssid=%s && uci commit
uci set wireless.@wifi-iface[0].key=%s && uci commit
uci set wireless.@wifi-iface[0].hidden=1 && uci commit
Después de modificar los parámetros de configuración, volverá a tener efecto a través de wifi down && wifi up o wifi reload
Obtener información de usuario conectado wifi
root@OpenWrt:/# cat /proc/net/arp
IP address HW type Flags HW address Mask Device
192.168.1.136 0x1 0x2 58:44:98:b9:94:44 * br-lan
192.168.1.230 0x1 0x2 30:b4:9e:1d:da:76 * br-lan
192.168.1.100 0x1 0x2 20:ab:37:8d:c2:f6 * br-lan
filtro wifi, solo permite ciertos enlaces mac
config wifi-iface
option device 'radio0'
option mode 'ap'
option ssid 'OpenWrt'
option network 'lan'
option encryption 'psk'
option key '12345678'
option macfilter 'allow'
list maclist '20:AB:37:8D:C2:F6'
list maclist 'A8:02:C4:00:75:3D'
No permitir ciertos enlaces mac
config wifi-iface
option device 'radio0'
option mode 'ap'
option ssid 'OpenWrt'
option network 'lan'
option encryption 'psk'
option key '12345678'
option macfilter 'deny'
list maclist '00:05:15:0B:02:11'
list maclist 'A8:02:C4:00:75:3D'
vi /etc/firewall.user, luego agregue en este formato, reemplace la dirección mac con la dirección real.
iptables -I FORWARD -m mac --mac-source 11:22:33:44:55:66 -j DROP
iptables -D forwarding_rule -m mac --mac-source 78:d7:5f:20:e2:9c -j ACCEPT
iptables -t nat -D prerouting_rule -p tcp -m mac --mac-source 78:d7:5f:20:e2:9c --dport 80 -j ACCEPT