pull/1/head
Jordan Sokolic 2020-02-13 23:41:33 +02:00
commit cc7b1c7542
4 changed files with 88 additions and 0 deletions

14
Dockerfile 100644
View File

@ -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" ]

13
network 100644
View File

@ -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'

47
run.sh 100755
View File

@ -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

14
wireless 100644
View File

@ -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'