ข้ามไปที่เนื้อหาหลัก

ทำ Linksys WRT54GL v1.1 ลง DD-WRT ให้เป็น auto login Hotspot (WISP Mode)

สืบเนื่องจากได้ 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 มีดังนี้

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
จากนั้นก็ใส่ cron ในหน้า Administrator Management (cron ก็ใช้ไม่เหมือนกัน)

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

C# Databinding เทคนิคกรอง combobox OrderNo ที่มีการ Invoice แล้ว (How to refresh OrderNo list in combobox binding after invoiced without left outer join method)

เขียนโปรแกรมรับ Order และจ่าย Invoice เงื่อนไขคือ OrderNo จะต้องแสดงเฉพาะ OrderNo ที่ยังไม่ได้ผูกกับ Invoice เท่านั้น วิธีการที่เคยทำได้แก่ 1. ทำ Orders Left Outer Join Invoice เอาเฉพาะ Order ที่ยังไม่มีเลข Invoice ออกมา (ตามตำรา) - ถ้าไม่เขียน sql query ตอนสั่ง sqlselect command ก็ต้องไปใช้ LINQ to Object แล้วเอามา rebinding combobox.datasource ใหม่ เพราะ datasource ที่ผูกไว้กับ combobox มันไม่ refresh เช่น cboOrderNo.datasource.Clear; cboOrderNo.datasource = newList(); 2. เพิ่ม flag field ที่ table Orders ถ้ามีรับ invoice แล้ว ให้ flag = 1 แล้วใช้ dtOrder.defaultview.rowfilter = "flag=1"; ข้อมูลใน combobox จะไม่ต้อง rebinding อันนี้เห็นมาจากระบบอื่น 3. ใช้ Rowfilter = "Child(relation).Order = null" แต่วิธีนี้ใช้ไม่ได้ เพราะ Rowfilter จำกัดให้ใช้ได้เฉพาะ Parent เพราะถ้าเป็น Child แล้วจะ return หลายตัว ตามข้อมูลจาก link นี้ แต่อ้างอิงเป็นกลุ่มเช่น Sumchild(relation).Qty >20 ได้ เห็นแล้วก็นึกถึงไอเดียบรรเจิด ใช้ Rowfilter = Count(Child(relation)) <0 แ...

เทคนิคการสอบใบขับขี่รถยนต์ ท่าจอดรถเทียบฟุตบาทห่างไม่เกิน 25cm ด้วย "Sticker"

วันนี้พาพี่ที่บ้านไปสอบใบขับขี่รถยนต์ครั้งที่ 3 ซึ่งสอบตกท่าจอดรถเทียบฟุตบาท โดยคนขับรถเป็นแล้วจะรู้สึกว่าไม่เห็นจะยากตรงไหน แต่สำหรับคนที่เพิ่งหัดขับรถ ประกอบกับได้จับรถป้ายแดงที่เพิ่งถอยออกมาขับได้ ไม่ถึง 5 ชม. นั้นเป็นเรื่องที่ยากจะทำได้ ผมคนหนึ่งที่ได้ใบขับขี่มานาน แต่พอให้มาขับจอดเทียบฟุตบาทด้วยรถป้ายแดงใหม่เอี่ยมของคนอื่นแล้ว มีอันต้องจอดห่างทุกที ด้วยเวลาในการซ้อมขับที่เหลือไม่ถึง 3 ชม. ก่อนสอบจริง ทำให้ต้องคิดหาเทคนิควิธีต่าง ๆ ที่จะทำได้ใบขับขี่มา (เพราะเหนื่อยกับความพยายามสอบมา 2 ครั้งแล้ว) จนทำให้คิดเทคนิค "Sticker" นี้ขึ้นได้ โดยปกติแล้วถ้าขับรถจอดเทียบฟุตบาทแล้วพยายามมองกระจกข้างให้ล้อหลังชิดเส้นขอบพอดี ผลออกมาจะทำให้ล้อหน้าปีนฟุตบาท ไอ้ครั้นจะให้พี่ที่เพิ่งหัดขับรถมาได้ไม่ถึง 8 ชม. กะขนาดตัวรถให้ได้ (ซึ่งขนาดผมเองยังคงกะลำบาก) ภายในสิบห้านาทีนั้นโอกาสเป็นไปได้ยากมาก ด้วยการทดลองเทคนิคต่าง ๆ หลาย ๆ แบบ ที่พอจะนึกออกจากประสบการณ์และเวลาอันสั้นรวบรัด ก็ทำให้เกิดแนวคิดที่ว่า ทำอย่างไรให้สามารถมองล้อหน้าว่าติดเส้นขอบหรือเปล่า ได้เหมือนกับที่ใช้กระจก...

เขียนโปรแกรม Visual Studio 2008(.NETCF3.5) กับ Windows Mobile 6 ติดต่อกับ Database MSSQL Server 2008 โดยตรง (ไม่ได้ใช้ SQLCE)

รับ Requirement ให้เขียนโปรแกรมบน Windows Mobile 6 ติดต่อกับ Database MSSQL Server 2008 โดยตรง ตอนแรกก็ลองใช้ SQLCE แต่เท่าที่ดูมันไม่ได้เชื่อมต่อ กับ Database Server แต่มันใช้ Database ในเครื่อง Pocket PC แทน ซึ่งไม่ตรงกับ Requirement นัก เลยลองเขียนโปรแกรมเชื่อมต่อไปยัง SQL Server ตรง ๆ กับปรากฏว่า import System.data.SqlClient ไม่ได้ หาไปหามา พบว่า SqlClient มันอยู่ในไฟล์ System.Data ใน VS2008 ซึ่งถ้าใช้ .NETCF 3.5 มันไม่มีให้ใช้ ลองถามอากู๋ดูก็พบว่ามีคนเขียนแล้วใช้ได้ เลยสงสัยว่าใช้ได้ยังไง หมดไป 1 วันก็พบว่าเขา Add Reference file "System.data.SqlClient.dll" มาใช้กัน ซึ่งเป็นของ "VS2005" ถ้าเป็น VS2008 มันเอาไปรวมใน System.Data.dll แล้ว หมดสิทธิ์ใช้งานนะจ๊ะ ครั้นลองเอา System.data.dll ของ .NET framework ตัวเต็มมา Add ใส่แทนที่ ผลปรากฏว่าพังไม่เป็นท่าเลย หลังจากถอดใจแล้วผลอยหลับไปงีบ ตื่นมาก็อาศํยสิ่งศักดิ์สิทธิ์เสียหน่อย ท่องคาถาให้งานราบรื่น ปรากฏว่า "สิ้งศักดิ์สิทธิ์มีจริง ไม่เชื่ออย่าลบหลู่" ไปเจอ Link (ลิงก์พังแล้ว) นี้   ซึ่งม...