internetuPalaikoma įranga: Asus WL-500 routeriai (t.y. WL-500gp, WL-500gpv2 arba WL-500W) arba D-Link DIR-320 ir Mezono Samsung SWC-U200 modemas.
Pagal modelį pasirenkame reikiamą versiją ir įdiegiame į ASUS'ą (WL500gp arba WL500gpv2). Kitiems modeliams, pvz. WL500W firmwarų ieškome čia. Taip pat verta pastebėti, kad tinka netgi D-Link DIR-320 (jį galima paversti ASUS WL-500gpv2).
Firmware pakeitimas atliekamas naršykle prisijungus prie routerio web sąsajos standartiniu IP adresu (dažniausiai http://192.168.1.1), suvedus standartinius prisijungimo duomenis (admin/admin) ir nuėjus į System setup -> Firmware upgrade.
mkdir /tmp/local/opt
mkdir -p /usr/local/sbin/
mount /tmp/local/opt /opt
mkdir -p /opt/etc/madwimax/
mkdir /opt/etc/udhcpc/
echo "#!/bin/sh" > /opt/etc/udhcpc/udhcpc.script
echo "RESOLV_CONF=/tmp/resolv.conf" >> /opt/etc/udhcpc/udhcpc.script
echo "case \"\$1\" in" >> /opt/etc/udhcpc/udhcpc.script
echo "bound|renew)" >> /opt/etc/udhcpc/udhcpc.script
echo "ifconfig \$interface up" >> /opt/etc/udhcpc/udhcpc.script
echo "ifconfig \$interface \$ip netmask \$subnet" >> /opt/etc/udhcpc/udhcpc.script
echo "route add default gw \$router" >> /opt/etc/udhcpc/udhcpc.script
echo "for ii in \$dns; do" >> /opt/etc/udhcpc/udhcpc.script
echo "echo nameserver \$ii >> \$RESOLV_CONF" >> /opt/etc/udhcpc/udhcpc.script
echo "done" >> /opt/etc/udhcpc/udhcpc.script
echo "kill -s SIGHUP `pidof dnsmasq`" >> /opt/etc/udhcpc/udhcpc.script
echo ";;" >> /opt/etc/udhcpc/udhcpc.script
echo "deconfig)" >> /opt/etc/udhcpc/udhcpc.script
echo "ifconfig \$interface 0.0.0.0" >> /opt/etc/udhcpc/udhcpc.script
echo "echo deleting \$RESOLV_CONF" >> /opt/etc/udhcpc/udhcpc.script
echo "echo -n > \$RESOLV_CONF" >> /opt/etc/udhcpc/udhcpc.script
echo "kill -s SIGHUP `pidof dnsmasq`" >> /opt/etc/udhcpc/udhcpc.script
echo ";;" >> /opt/etc/udhcpc/udhcpc.script
echo "esac" >> /opt/etc/udhcpc/udhcpc.script
echo "#!/bin/sh" > /opt/etc/madwimax/event.sh
echo "# Usage: event.sh " >> /opt/etc/madwimax/event.sh
echo "case \"\$1\" in" >> /opt/etc/madwimax/event.sh
echo "if-create)" >> /opt/etc/madwimax/event.sh
echo "iptables -I FORWARD -o \"\$2\" -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu" >> /opt/etc/madwimax/event.sh
echo ";;" >> /opt/etc/madwimax/event.sh
echo "if-up)" >> /opt/etc/madwimax/event.sh
echo "udhcpc -b -p /var/run/udhcpc.\"\$2\".pid -i \"\$2\" -s /opt/etc/udhcpc/udhcpc.script" >> /opt/etc/madwimax/event.sh
echo "iptables -t nat -A POSTROUTING -o \"\$2\" ! -s \$(ifconfig \"\$2\" | sed -n 's/^.*inet addr:\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\) .*\$/\1/p') -j MASQUERADE" >> /opt/etc/madwimax/event.sh
echo ";;" >> /opt/etc/madwimax/event.sh
echo "if-down)" >> /opt/etc/madwimax/event.sh
echo "iptables -t nat -D POSTROUTING -o \"\$2\" ! -s \$(ifconfig \"\$2\" | sed -n 's/^.*inet addr:\([0-9]*\.[0-9]*\.[0-9]*\.[0-9]*\) .*\$/\1/p') -j MASQUERADE" >> /opt/etc/madwimax/event.sh
echo "cat /var/run/udhcpc.\"\$2\".pid | xargs -i kill -TERM {}" >> /opt/etc/madwimax/event.sh
echo ";;" >> /opt/etc/madwimax/event.sh
echo "if-release)" >> /opt/etc/madwimax/event.sh
echo "iptables -D FORWARD -o \"\$2\" -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu" >> /opt/etc/madwimax/event.sh
echo ";;" >> /opt/etc/madwimax/event.sh
echo "*)" >> /opt/etc/madwimax/event.sh
echo "echo \"Usage: \$0 { if-create | if-up | if-down | if-release }\" >&2" >> /opt/etc/madwimax/event.sh
echo "exit 3" >> /opt/etc/madwimax/event.sh
echo ";;" >> /opt/etc/madwimax/event.sh
echo "esac" >> /opt/etc/madwimax/event.sh
echo "#!/bin/sh" > /usr/local/sbin/post-boot
echo "mount /tmp/local/opt /opt" >> /usr/local/sbin/post-boot
echo "insmod tun.o" >> /usr/local/sbin/post-boot
echo "/usr/sbin/madwimax -qfd --ssid=@mezon.lt --event-script=/opt/etc/madwimax/event.sh" >> /usr/local/sbin/post-boot
echo "#!/bin/sh" > /usr/local/sbin/post-mount
echo "insmod tun.o" >> /usr/local/sbin/post-mount
echo "/usr/sbin/madwimax -qfd --ssid=@mezon.lt --event-script=/opt/etc/madwimax/event.sh" >> /usr/local/sbin/post-mount
chmod +x /opt/etc/madwimax/event.sh
chmod +x /opt/etc/udhcpc/udhcpc.script
chmod +x /usr/local/sbin/post-*
echo "/opt/etc/udhcpc/udhcpc.script" > /usr/local/.files
echo "/opt/etc/madwimax/event.sh" >> /usr/local/.files
echo "/usr/local/sbin/post-boot" >> /usr/local/.files
echo "/usr/local/sbin/post-mount" >> /usr/local/.files
flashfs save
flashfs commit
flashfs enable
reboot