วันอังคารที่ 28 กันยายน พ.ศ. 2553

การปรับแต่ง router : WL-500gp

วิธีการลง firmware
       สามารถลงได้  5  วิธี คือ
   1. การลง firmware โดยใช้ web interface ที่มากับอุปกรณ์
   2. การลง firmware โดยใช้โปรแกรมที่มากับผู้ผลิต
   3. การลง firmware โดยใช้คำสั่ง tftp
   4. การลง firmware โดยผ่านทาง Bootloader(serial port)
   5. การลง firmware โดยใช้ JTAG(hardware debugger)

Building และ Package

รายละเอียดของ package management โดยใช้คำสั่ง opkg
opkg update
opkg install
opkg upgrade
**การปรับแต่งการทำงานของ opkg โดยแก้ไขไฟล์ /etc/opkg.conf

รายการของซอฟต์แวร์ที่ใช้ได้กับ OpenWrt เฉพาะที่สำคัญ
  • alsa-utils และ alsa-lib สำหรับเป็นไดรเวอร์ของอุปกรณ์ประเภท audio
  • ctorrent สำหรับ download ไฟล์ประเภท bit torrent
  • fdisk สำหรับแบ่งและจัดการ partition
  • flite โปรแกรมเปลี่ยนข้อความเป็นเสียงพูด(text-to-speech)
  • lsusb/usbutils สำหรับตรวจสอบว่าบัส usb ของ router มีอุปกรณ์อะไรต่ออยู่บ้าง
  • madplay โปรแกรมสำหรับเล่นไฟล์เพลง(mp3, ogg, etc)
  • motion โปรแกรมบันทึกภาพจากอุปกรณ์วีดีโอ โดยจะเน้นบันทึกภาพเฉพาะเมื่อมีการเคลื่อนไหวเกิดขึ้น
  • mpg123 สำหรับเล่นไฟล์เพลง เช่น ไฟล์.mp3
  • ntpclient สำหรับเป็น ntp client เพื่ออ่านค่าเวลามาจาก ntp server
  • pciutils สำหรับตรวจสอบว่าบัส pci ของ router มีอุปกรณ์อะไรต่ออยู่บ้าง
  • vsftpd สำหรับเป็น ftp server เพื่อรับ-ส่งไฟล์ระหว่าง router กับ PC
  • kmod-usb2 สำหรับเป็นไดรเวอร์ของอุปกรณ์ usb ที่เป็นเวอร์ชั่น 2.0
  • kmod-usb-printer สำหรับเป็นไดรเวอร์ของอุปกรณ์ usb เป็น printer/parellel
  • kmod-usb-uhci สำหรับเป็นไดรเวอร์ของ usb host ที่เป็นแบบ UHCI
  • kmod-usb-storage สำหรับเป็นไดรเวอร์ของอุปกรณ์ usb ที่ใช้เก็บข้อมูล เช่น usb flashdrive
  • kmod-usb-serial สำหรับเป็นไดรเวอร์ของอุปกรณ์แปลงการสื่อสารแบบ usb เป็น rs232
  • kmod-vfat-fs สำหรับเป็นไดรเวอร์ของระบบไฟล์แบบ FAT16 และ FAT32
  • ser2net โปรแกรมสำหรับแปลงการเชื่อมต่อระหว่างพอร์ตอนุกรมกับ TCP
  • spca5xx_lite สำหรับเป็นไดรเวอร์สำหรับต่อกล้อง webcam ซึ่งรายการของกล้องที่รองรับดูได้จาก  http://mxhaard.free.fr/spca5xx.html
  • spcacat สำหรับถ่ายภาพจากกล้อง webcam
  • spcaserv สำหรับทำให้อุปกรณ์ router เป็น webcam server ซึ่งทางฝั่ง client ต้องใช้โปรแกรม spcaview เข้ามาดู
  • wl สำหรับเป็นโปรแกรมช่วยในการเชื่อมต่อกับอุปกรณ์ WIFI
  • wput สำหรับเป็น ftp client เพื่อส่งไฟล์ไปยัง ftp server

Wireless router WL-500gp

ที่มา :http://bt-box.awardspace.com/index.php?topic=3.0
Hardware information

Architecture MIPS
Vendor Broadcom
Bootloader CFE
System-On-Chip Broadcom BCM94704
CPU Speed 266 Mhz
Flash size 8MiB (Spansion S29GL064M90)
RAM 32MiB (2* HY50U281622ETP-5, some older units have only 16MiB enabled)
Wireless MiniPCI Broadcom 802.11b/g BCM4318 802.11 Wireless LAN Controller
Ethernet Robo switch BCM5325
USB 2x USB 2.0
Serial Yes
JTAG No

Interfaces

Interface Name Description Default configuration
br-lan                LAN & WiFi 192.168.1.1/24
vlan0                             LAN ports (1 to 4)
vlan1         WAN port DHCP
wl0/ath0         WiFi Disabled by default

Buttons

 The ASUS WL-500g Premium จะมีปุ่มสองปุ่มคือ RESTORE และ EZSETUP.

BUTTON           Event
RESTORE           reset
EZSETUP           ses
ACTION: released or pressed


รูปที่ 1 WL-500gp



 (อ้างอิง : http://wiki.openwrt.org/oldwiki/openwrtdocs/hardware/asus/wl500gp)

Openwrt : ลินุกส์สำหรับอุปกรณ์สมองกลฝังตัว

       Openwrt เป็น Linux Distribution ที่ออกมาเพื่อใช้งานกับ wireless router เท่านั้นในระยะแรกซึงภายหลังได้มีการพัฒนาให้สามารถใช้ได้กับอุปกรณ์ได้หลากหลายมากขึ้น เช่น ADSL Modem, ADSL Router, Wireless Hard disk ไปจนถึงคอมพิวเตอร์ตระกูล X86 จนในปัจจุบันผู้พัฒนา Openwrt ได้ประกาศให้Openwrt เป็น Distribution ที่รองรับอุปกรร์สมองกลฝังตัว แต่มีเพียงบางรุ่นเท่านั้นที่รองรับ Openwrt ซึ่งรายการของอุปกรณ์ที่รองรับสามารถเช็คได้ที่  http://toh.openwrt.org  และอุปกรณ์ที่นิยมที่สุดจะเป็นของบริษัท Linksys  โดยเฉพาะรุ่น WRT54G และบริษัท ASUS รุ่น WL-500g
                   รูปที่ 1 wireless router ของ ASUS รุ่น WL-500 gp

รูปที่ 2 wireless router ของ linksys รุ่น WRT54G

หมายเหตุ นอกจาก Openwrt แล้ว ยังมี firmware ที่ทำงานในลักษณะเดียวกันคือ DD-WRT และ OLEG

        

Embedded Linux

         จากบทความข้างต้นซึ่งได้กล่าวถึงความหมายของ Embedded และ Linux ไปคร่าวๆจึงสรุปได้ว่า Embedded Linux ก็คือ ระบบปฏิบัติการลินุกส์แบบฝังตัวนั่นเอง โดยในอดีตนั้นระบบสมองกลฝังตัวมักเป็นไปในลักษณะเป็นการภายในและเป็นระบบปิด ซึ่งการเชื่อมต่ออุปกรณ์ต่างๆจะต้องมีการพัฒนา driver ขึ้นมาใช้เองทำให้การออกแบบผลิตภัณฑ์ใหม่ๆต้องใช้เวลาและต้นทุนในการพัฒนาสูง ต่อมาได้มีการนำ Linux Kernel  ไปพัฒนาบนซีพียูที่มีขนาดเล็กลงโดยมีขนาดประมาณ 2MB ซึ่งสามารถบรรจุลงในคอมพิวเตอร์ขนาดเล็กได้ ดังนั้นจึงมีประโยชน์คือประหยัดเวลาในการพัฒนา OS ของตัวเอง ลดต้นทุนและเวลาในการพัฒนา และเป็น Open Source สามารถใช้โปรแกรมที่มีได้หลากหลาย เช่น Openwrt ซึ่งจะกล่าวถึงในหัวข้อถัดไป

Linux (operating system) คืออะไร

          ลีนุกซ์(Linux) คือ โปรแกรมเคอร์เนล(kernel)ซึ่งทำหน้าที่เป็นศูนย์กลางของระบบปฏิบัติการ(Operating System)    ซึ่งก็จะเหมือนกับระบบปฏิบัติการ อื่นๆ เช่น Windows , Unix โดยที่ Linux ได้รับการพัฒนามาจากระบบปฏิบัติการ Unix ลินุกส์มีระบบปฏิบัติการแบบ 32 บิต มีระบบ X วินโดวส์ซึ่งเป็นระบบการติดต่อผู้ใช้แบบกราฟฟิก และเป็นระบบปฏิบัติการที่อยู่ภายใต้เงื่อนไขของGPL (GNU General Public Licence)หมายความว่า สามารถเปลี่ยนแปลงแก้ไข พัฒนาได้ และแจกจ่ายให้ใช้ฟรี 
         ส่วนประกอบที่สำคัญที่สุดภายในระบบปฏิบัติการก็คือตัวโปรแกรมเคอร์เนลนี้เอง โดยภายในเคอร์เนลจะมีส่วนโปรแกรมย่อยๆ เรียกว่า โมดูล รวมกันไว้ภายใน แต่ละโมดูลมีหน้าที่ และช่วยให้ระบบปฏิบัติการมีความสามารถต่างๆ จะมากหรือน้อยก็ขึ้นอยู่กับความสามารถ และจำนวนของโมดูลภายใน เคอร์เนล เพราะฉะนั้นระบบปฏิบัติการทุกระบบที่นิยมใช้งานกันในปัจจุบัน จึงล้วนมีเคอร์เนลเป็นศูนย์กลางของระบบ แต่อาจมีความแตกต่างกันได้เนื่องจากมีผู้พัฒนาเคอร์เนลขึ้นหลายรายนั่นเอง ได้แก่ ระบบปฏิบัติการวินโดวส์ก็มีเคอร์เนลของตนเอง แตกต่างจากระบบปฏิบัติการอื่นๆ เช่น FreeBSD ซึ่งเป็นระบบปฏิบัติการยูนิกซ์ชนิดหนึ่งก็มีเคอร์เนลเป็นของตนเองเช่นกัน ดังนั้นหากพิจารณาภายในระบบปฏิบัติการลีนุกซ์ย่อมพบเคอร์เนลลีนุกซ์อย่างแน่นอน

(อ้างอิงจาก http://www.itdestination.com/articles/linux/linux.php)

Embedded system คืออะไร

        Embedded system (ระบบสมองกลฝังตัว) คือ ระบบที่ช่วยเพิ่มความฉลาดให้กับอุปกรณ์ของเรา โดยการฝังชิป(chip)หรือไมโครโพรเซสเซอร์ที่ออกแบบมาเฉพาะ เข้าไปในอุปกรณ์เพื่อช่วยในการประมวลผลในการทำงาน ซึ่งต่างจากระบบประมวลผลโดยใช้กับเครื่องคอมพิวเตอร์ โน้ตบุ๊ค หรือ สถานีงาน ระบบฝังตัวนั้นถูกนำมาใช้กันอย่างแพร่หลายในรถยนต์ เครื่องบิน รถไฟ ยานอวกาศ กล้องถ่ายรูป อุปกรณ์เครื่องใช้ไฟฟ้าในบ้านหรือสำนักงาน และ โทรศัพท์มือถือ รวมถึงพวกพีดีเอ ตลอดจนของเล่นอิเล็กทรอนิกส์ต่างๆ  โดยหลักการทำงานของระบบสมองกลฝังตัว คือ จะมีสัญญาณข้อมูลเข้า (Input) จากอุปกรณ์ เซนเซอร์ (Sensor)เข้าสู่ระบบ และมีสัญญาณผลลัพธ์ (Output) ของระบบไปควบคุมบังคับสวิตซ์เครื่องควบคุมต่าง ๆ  เราสามารถแบ่งประเภทของ Embedded System ได้2ประเภทหลักๆคือ
      แบบไมโครโพรเซสเซอร์เดี่ยว เป็นระบบซึ่งใช้อยู่ในอุปกรณ์ขนาดเล็ก เช่นอุปกรณ์ไฟฟ้า วงจรไฟฟ้าต่าง ๆ เครื่องตรวจจับต่าง ๆ
     แบบไมโครโพรเซสเซอร์หลายตัวรวมกันในวงจร ซึ่งเป็นระบบซึ่งใช้อยู่ในอุปกรณ์ควบคุมที่ซับซ้อน เช่น อุปกรณ์ควบคุมการไหลของแก๊ส ของเหลว กระแสไฟฟ้า อุปกรณ์ขยายสัญญาณต่าง ๆ อุปกรณ์ปิดวาล์ว เครื่องควบคุมเครื่องจักรในโรงงาน ซึ่งจะมีทั้งที่ไม่ทำหน้าที่เกี่ยวกับเวลาและทำหน้าที่เกี่ยวกับเวลา


(อ้างอิงจาก http://pirun.ku.ac.th/~b4555226/Intro_Embedded%20System.htm)