initial
commit
cc7b1c7542
|
@ -0,0 +1,14 @@
|
|||
FROM scratch
|
||||
# ADD https://downloads.openwrt.org/releases/19.07.1/targets/x86/64/openwrt-19.07.1-x86-64-generic-rootfs.tar.gz \
|
||||
ADD openwrt-19.07.1-x86-64-generic-rootfs.tar.gz /
|
||||
RUN mkdir -p /var/lock
|
||||
RUN opkg update && \
|
||||
opkg install luci \
|
||||
wpa-supplicant \
|
||||
hostapd \
|
||||
iw-full \
|
||||
kmod-mac80211 \
|
||||
iperf3
|
||||
ADD network /etc/config/network
|
||||
ADD wireless /etc/config/wireless
|
||||
CMD [ "/sbin/init" ]
|
|
@ -0,0 +1,13 @@
|
|||
config interface 'loopback'
|
||||
option ifname 'lo'
|
||||
option proto 'static'
|
||||
option ipaddr '127.0.0.1'
|
||||
option netmask '255.0.0.0'
|
||||
|
||||
config interface 'lan'
|
||||
option type 'bridge'
|
||||
option ifname 'eth0 wlan0'
|
||||
option proto 'static'
|
||||
option ipaddr '172.17.0.2'
|
||||
option gateway '172.17.0.1'
|
||||
option netmask '255.255.0.0'
|
|
@ -0,0 +1,47 @@
|
|||
#!/bin/bash
|
||||
set -ex
|
||||
|
||||
CONTAINER='openwrt_1'
|
||||
IFACE=$1
|
||||
PHY=$(cat /sys/class/net/$IFACE/phy80211/name) || { echo "interface $IFACE not found"; exit 1; }
|
||||
|
||||
function _get_dev_from_phy {
|
||||
for dev in /sys/class/net/*; do
|
||||
test -f $dev/phy80211/name && phy=$(cat $dev/phy80211/name 2>/dev/null)
|
||||
if [[ "$phy" = "$1" ]]; then
|
||||
IFACE_NEW=$(basename $dev)
|
||||
break
|
||||
else
|
||||
IFACE_NEW=''
|
||||
fi
|
||||
done
|
||||
}
|
||||
|
||||
function _cleanup {
|
||||
docker stop openwrt_1
|
||||
while [[ -z $IFACE_NEW ]]; do
|
||||
_get_dev_from_phy $PHY
|
||||
sleep 1
|
||||
done
|
||||
sudo ip link set dev $IFACE_NEW down
|
||||
sudo ip link set dev $IFACE_NEW name $IFACE
|
||||
}
|
||||
|
||||
|
||||
nmcli dev set $IFACE managed no
|
||||
# sudo iw phy $PHY interface add $IFACE_AP type managed
|
||||
|
||||
docker run --rm -it \
|
||||
--network=bridge \
|
||||
-p8080:80 -d \
|
||||
--cap-add NET_ADMIN \
|
||||
--cap-add NET_RAW \
|
||||
--name $CONTAINER openwrt
|
||||
|
||||
pid=$(docker inspect -f '{{.State.Pid}}' $CONTAINER)
|
||||
|
||||
sudo iw phy "$PHY" set netns $pid
|
||||
|
||||
|
||||
trap "_cleanup" EXIT
|
||||
cat
|
|
@ -0,0 +1,14 @@
|
|||
config 'wifi-device' 'wlan0'
|
||||
option 'type' 'mac80211'
|
||||
option 'macaddr' '18:d6:c7:1b:dc:95'
|
||||
option 'hwmode' '11a'
|
||||
option 'channel' '36'
|
||||
option 'vhtmode' 'VHT20'
|
||||
|
||||
config 'wifi-iface' 'wl0'
|
||||
option 'device' 'wlan0'
|
||||
option 'network' 'lan'
|
||||
option 'mode' 'ap'
|
||||
option 'ssid' 'test123'
|
||||
option 'encryption' 'psk2'
|
||||
option 'key' '12345678'
|
Loading…
Reference in New Issue