สืบเนื่องจากได้ Router Linksys WRT54GL มา เลยอยากเอามาทำ auto login ให้เหมือน NanoStation M5 ก็เลยต้องพึ่งพา Firmware DD-WRT v24 SP2 mini build 12548M NEWD Eko แต่ทว่า มันไม่มี Station Mode ให้เลือก จากการหาข้อมูลถึงให้รู้ว่าต้องเลือกเป็น Client Mode
จากนั้นก็ตั้งค่าปกติ แต่ทำแล้วติด dns cannot resolve ต้องตั้งค่าปลด UseDNSMasq on DHCP ออก ก็สามารถใช้งาน DNS ได้
เริ่มใส่ script auto login แต่ติดที่ว่า DD-WRT ไม่มี persistence storage พอสร้างไฟล์ script เสร็จ มันก็หายตอนเครื่อง restart
ค้นหาข้อมูลก็เจอแนวทางให้ใช้ Startup Script สร้าง script file ตอนเริ่มบูตเครื่องเลย ดังภาพ
- script มีการเปลี่ยนนิดหน่อย เพราะ wget ใช้เหมือนเดิมไม่ได้
Startup Script มีดังนี้
จากนั้นก็ตั้งค่าปกติ แต่ทำแล้วติด dns cannot resolve ต้องตั้งค่าปลด UseDNSMasq on DHCP ออก ก็สามารถใช้งาน DNS ได้
เริ่มใส่ script auto login แต่ติดที่ว่า DD-WRT ไม่มี persistence storage พอสร้างไฟล์ script เสร็จ มันก็หายตอนเครื่อง restart
ค้นหาข้อมูลก็เจอแนวทางให้ใช้ Startup Script สร้าง script file ตอนเริ่มบูตเครื่องเลย ดังภาพ
- script มีการเปลี่ยนนิดหน่อย เพราะ wget ใช้เหมือนเดิมไม่ได้
Startup Script มีดังนี้
จากนั้นก็ใส่ cron ในหน้า Administrator Management (cron ก็ใช้ไม่เหมือนกัน)
echo '#!/bin/sh' > /tmp/autologin.sh
echo 'count=$(ping -c5 -w5 8.8.8.8 | grep "100% packet loss" | wc -l)' >>/tmp/autologin.sh
echo 'if [ "$count" -gt 0 ]; then' >> /tmp/autologin.sh
echo ' wget -O /dev/null "http://172.168.1.1/CheckValidUser.php?username=c4&password=xxxx"' >> /tmp/autologin.sh
echo ' echo "autologin start"' >> /tmp/autologin.sh
echo 'fi' >> /tmp/autologin.sh
echo '-------'
chmod +x /tmp/autologin.sh
echo '#!/bin/sh' > /tmp/check_autologin.sh
echo 'START=$(date +%s)' >> /tmp/check_autologin.sh
echo 'until [ $(ping -c5 -w5 8.8.8.8 | grep "100% packet loss" | wc -l) == 0 ]' >> /tmp/check_autologin.sh
echo 'do ' >> /tmp/check_autologin.sh
echo ' CURRENT=$(date +"%d-%m-%Y_%H:%M:%S")' >> /tmp/check_autologin.sh
echo ' echo current time = $CURRENT' >> /tmp/check_autologin.sh
echo ' sleep 1' >> /tmp/check_autologin.sh
echo 'done' >> /tmp/check_autologin.sh
echo 'STOP=$(date +%s)' >> /tmp/check_autologin.sh
echo 'EXECTIME=$(($STOP-$START))' >> /tmp/check_autologin.sh
echo 'echo "execution time = $EXECTIME second(s)"' >> /tmp/check_autologin.sh
chmod +x /tmp/check_autologin.sh
ความคิดเห็น
แสดงความคิดเห็น