Showing posts with label Embedded Linux. Show all posts
Showing posts with label Embedded Linux. Show all posts

Thursday, January 10

How to Install Arduino IDE on Debian

หากเพือนๆ สนใจที่จะพัฒนางานทางด้านไมโครคอนโทรลเลอร์เช่น Arduino บน Debian แล้วหล่ะก็ มีสิ่งที่น่าสนใจ เล็กๆ น้อยๆ ที่ผมได้ทดลอง และหาข้อมูล จะได้นำมาเขียนบันทึกไว้บน Blog แห่งนี้ วิธีการก็คือ

หลังจากที่เราได้เคยติดตั้ง Oracle VM VirtualBox และได้ติดตั้ง Debian ไปแล้ว เมื่อสั่งให้ระบบปฏิบัติการณ์เริ่มทำงาน เราจะเข้าสู่โหมด XWindows จากนั้น ให้ Logon ด้วย user ที่เราได้กำหนดไว้ ในที่นี้ ผมได้ Logon เข้าด้วย user: pi ที่ผมได้กำหนดไว้ จากนั้น ทำการเปลี่ยนตัวเองเป็น root เพื่อที่จะติดตั้ง arduino ide

su -
ใส่ password root ที่เราได้กำหนดไว้แล้ว
ต่อมาใช้คำสั่ง apt-get install arduino ตอบ y รอจนกว่าระบบติดตั้ง arduino เรียบร้อย

หากใครสงสัยว่า arduio คืออะไร สามารถศึกษาเพิ่มเติมได้ที่นี่ คลิก  

ทำการเสียบบอร์ด Arduino เข้ากับ PC หรือ  Notebook ของเรา แล้วทำการเลือกที่เมนูหน้าต่าง Oracle VM VirtualBox ไปที่
Device->USB Device แล้วทำการเลือก FTD FT232R  ตามรูป (ซึ่งน่าจะเป็นอย่างนั้น สำหรับบอร์ด arduino)

ที่หน้าต่าง console หากเราใช้คำสั่ง tail -f /var/log/message (สำหรับ root) เราจะเห็นข้อความสำหรับเจ้า FTDI USB Serial Device...... ttyUSB0 ด้วยเช่นกัน

USB to Serial Adapter on Debian

ทำการเช็คที่ ls -l /dev/ttyUSB0 จะเห็นไฟล์นี้ เกิดขึ้นเช่นกันที่ folder /dev/
crw-rw---- 1 root dialout 188, 0 Jan 10 23:11 /dev/ttyUSB0

ปัญหาของเจ้า arduino IDE มันอยู่ตรงนี้ครับ คือหลังจากที่เราติดตั้ง arduino IDE เรียบร้อยแล้ว เราจะยังไม่สามารถที่เลือกที่เมนู IDE
tool->Serial Port ได้ (ไม่เชื่อลองเปิด IDE ขึ้นมา ) เราจะไม่สามารถเลือก Serial port ที่จะติดต่อกับบอร์ด arduino ได้ครับ ถึงแม้ว่า Debian จะมองเห็น USB ที่ต่อเข้ามาแล้วก็ตามArduino IDE on Debian

เนื่องจากว่า ตอนนี้ เราเองเป็น user: pi แต่เจ้า ttyUSB0 นั่นอยู่ในกรุ๊บ dialout ครับ

crw-rw---- 1 root dialout 188, 0 Jan 10 23:11 /dev/ttyUSB0  (owner เป็น root แต่ group เป็นของ dialout ครับ ) 

วิธีแก้ไข ก็คือ ทำให้ pi นั้นสามารถเข้าใช้ group ของ dialout ได้ ด้วยคำสั่ง

root@raspberrypi:~#usermod -a -G dialout pi

หากเราใช้คำสั่ง pi@raspberrypi:~$ groups อีกครั้ง เราก็ยังพบว่า pi ยังไม่มีสิทธิใน dialout เหมือนเดิม อันนี้ ไม่ต้องตกใจครับ ให้เรา Logout แล้ว  Logon มาใหม่ครับ แล้วลองเช็คอีกที จะพบว่า

pi@raspberrypi:~$ groups
pi dialout cdrom floppy audio dip video plugdev netdev

มองเห็น dialout เรียบร้อยแล้ว ทดลองเปิด arduino ide อีกครั้ง ก็จะพบว่าที่เมนู tool->Serial Port สามารถเลือก /dev/ttyUSB0 ได้แล้วครับ

Serial Port on Arduino IDE (Linux Version)

ลองเลือกโค๊ดตัวอย่าง แล้วทำการ upload โค๊ดตัวอย่างที่ผ่านการ build แล้ว ใส่ไปที่บอร์ด arduino ของเราครับ ซึ่งน่าจะทำงานได้ตามปกติ จากนี้ไปเราก็สามารถที่จะพัฒนางาน arduino บน Debian ได้แล้วครับ ซึ่งสามารถนำหลักการนี้ไปใช้บน Raspian ของ Raspberry Pi ได้เช่นกันครับ ซึ่งต่อไป ผมอาจจะนำเอา piFirmata มาใช้ในการพัฒนา Raspberry Pi กับ Arduino ต่อไปครับ (คิดไว้ก่อนเฉยๆ ไม่รู้จะว่างหรือเปล่านะ :P )

ปล. ผมอาาจะอธิบายขั้นตอนการ Build / Upload Code สำหรับ Arduino เร็วไป แต่คิดว่า เพื่อน น่าจะหาข้อมูลอ่านได้ไม่ยาก หากสงสัยขั้นตอนไหนหน่ะครับ ซึ่งทั่วๆไป วิธีการก็จะคล้ายๆกัน

อ่านเพิ่มเติม...

Thursday, December 27

THE DEBIAN ADMINISTRATOR'S HANDBOOK

THE DEBIAN ADMINISTRATOR'S HANDBOOK

    อย่างที่เราทราบกันดีอยู่แล้วว่า เจ้าระบบปฏิบัติการ Raspbian นั้น แท้จริงแล้วก็คือ Debian ที่ถูกตัดแต่งพันธุกรรมให้เหมาะกับฮาร์ดแวร์บนบอร์ด Raspberry Pi นั่นเอง เพราะฉะนั้นแล้ว ความเข้าใจในระบบปฏิบัติการ Debian ย่อมนำไปสู่การปรับแต่งค่า และการใช้งานเจ้า Raspian ด้วยเช่นกัน

     ผมจะยกตัวอย่างให้ฟัง เดิมทีผมมักจะใช้ CentOS เมื่อเวลาที่จะต้องกำหนดค่าต่างๆ ให้กับ Apache นั้นเราต้องไปกำหนดที่ค่า httpd.conf ซึ่งอยู่ใน path  /etc/httpd/conf/httpd.conf แต่สำหรับเจ้า Debian แล้ว มันไม่ได้เก็บค่าไว้ตรงนั้น มันดันไปเก็บค่าไว้ที่ /etc/apache2/sites-enabled/000-default และบางค่า ก็ไปเก็บไว้ที่ /etc/apache2/apache2.conf นั่นหมายความว่า ไม่ใช่ว่าทุกๆ OS จะต้องปฏิบัติตามเหมือนกันหมด แต่ก็ใช่ว่าจะแตกต่างกันสิ้นเชิงเลยเสียทีเดียว

     ในส่วนของการปรับแต่งค่าที่เกี่ยวข้องกับระบบ network นั้น จริงๆ แล้ว เรากำลังทำหน้าที่เป็น administrator อยู่นั่นเอง วันนี้ ผมมีหนังสือแนะนำให้ไปอ่านกันนะครับ สำหรับใครที่กำลังเล่นอยู่กับ Raspberry Pi ที่ใช้ Raspian เป็น OS และกำลังเจอปัญหาอย่างที่ผมได้เกริ่นไว้ข้างต้น แนะนำให้มาอ่านเล่มนี้ครับ จะได้ไม่เจอปัญหาเหมือนผม ;P

THE DEBIAN ADMINISTRATOR'S HANDBOOK มีไฟล์ให้เราเลือกไปอ่านได้ 3 ประเภทไฟล์ครับ ต้องการรูปแบบไหน ก็เข้าไปเลือกดาวน์โหลดกันได้เลยครับ ..... คลิก

อ่านเพิ่มเติม...

Monday, December 24

How to find Raspbberry Pi’s IP Address when yon don’t know it.

      โดยปกติแล้ว หลังจากที่เราได้บอร์ด Raspbbery Pi มาแล้ว เมื่อทำการติดตั้ง Raspian ลงบน SD-Card เรียบร้อยแล้ว ในเวอร์ชั่นหลังๆ ของ Raspian
เค้าจะเปิด SSH ไว้ให้เรียบร้อยแล้ว หน้าที่ของเราก็คือ หาช่อง PORT Network จาก Router ของเราเสียบเข้าไปที่ Port Network ที่บอร์ด Raspberry Pi เมื่อจ่ายไฟเข้าบอร์ดเรียบร้อยแล้ว หากไม่มีอะไรผิดพลาด เจ้าบอร์ด Raspberry Pi ก็อยู่ในวง LAN เดียวกันกับเครื่องคอมพิวเตอร์ ของเราแล้ว (ด้วยการจ่าย IP Address จาก Router) หน้าที่ของเราก็คือ ทำการ Login แล้วทำการติดตั้ง Package อืนๆ ที่ต้องการ

     ปัญหาจะเกิดขึ้นตอนนี้ ก็คือ อย่างที่เรารู้อยู่แล้วว่าช่อง Display Output ของ Raspberry Pi มีให้เลือก คือ AV out (default) และ ช่อง HDMI (ซึ่งต้องเข้าไปเซตค่าก่อนใช้งาน) แล้วถ้าเราไม่สามารถหา TV หรือ Monitor ที่มีช่อง AV IN มาต่อกับบอร์ด Raspberry Pi หล่ะ เราจะเริ่มต้นใช้งานบอร์ดได้อย่างไร ?

     ด้วยความรู้ เรื่อง Network และ Linux ที่มีอยู่นิดหน่อย เราน่าจะใช้โปรแกรม nmap ในการทำการ scan หา Port 22 ซึ่งเป็น  Port สำหรับ SSH ที่ Raspberry Pi ถูกเปิดใช้งาน และเมื่อ Raspberry Pi ถูกต่ออยู่ในวง LAN เดียวกันเครื่องคอมพิวเตอร์ของเราแล้ว ก็น่าจะไม่ใช่เรื่องยาก ที่จะหา IP Address ของ Raspberry Pi เพื่อที่เราจะได้ทำการ SSH เพื่อเข้าใช้งาน Raspbbery Pi ต่อไป

เอาหล่ะ เราก็โหลดโปรแกรม nmap มาใช้กันเลย ซึ่งสามารถเข้าไปโหลดเวอร์ชั่นสำหรับ windows ได้จากเว็บ http://nmap.org/download.html#windows แต่ วันนี้ ผมไม่ได้มาแนะนำสำหรับเวอร์ชั่น windows ครับ ผมจะแนะนำเวอร์ชั่นของ Debian ;P

ก่อนหน้านี้ ผมได้แนะนำให้เพื่อนลองติดตั้ง VirtualBox เพื่อจำลองพื้นที่บน Windows ให้สามารถติดตั้ง Debian ได้ ฉะนั้น เราก็มาลองกันเลย ว่าเราจะเอา Debian บน VirtualBox มาใช้งานได้อย่างไร

เปิด VirtualBox ขึ้นมาครับ แต่ก่อนที่เราจะเริ่ม Start Debian ให้เราทำการตั้งค่า Network ให้เป็น Bridged Adapter กันก่อน เพื่อให้เจ้า Debian ของเราต่อออกอินเตอร์เนต เพราะเราต้องไปโหลด package nmap มาก่อน  เมื่อตั้งค่าเรียบร้อยให้ทำการ Start Debian ขึ้นมาเลยครับ

Debian on VirtualBox

Login เข้าสู่ XWindows ตามปกติ เมื่อเรียบร้อยแล้ว ให้เปิด Terminal ขึ้นมาสักตัว จากเมนู  จากนั้นเปลี่ยนตัวเองเป็น root ซะ แล้วทำการโหลด nmap package ด้วยคำสั่ง  apt-get install nmap


เรียกใช้คำสั่ง nmap เพื่อให้ทำการแสดงหาเครื่องในเครือข่าย ที่เปิด port 22 พร้อมทั้งให้แสดง OS ที่ติดตั้งอยู่ด้วย โดยผมให้เริ่มทำการ scan ตั้งแต่ ip address 192.168.2.100 ถึง 192.168.2.255  (เพราะผมทราบอยู่ก่อนหน้าแล้วว่า router ผมเริ่มจ่าย IP อยู่ใน  range นี้) ด้วยคำสั่ง   nmap –sV –p 22 192.168.2.100-255
รอสักครู่ จะปรากฏข้อความรายงานผล 

nmap result

ในที่นี้ ผมได้รับรายงาน มา  2 IP Address ที่เปิด Port 22 อยู่ในขณะนี้ แต่เนื่องจากเจ้า Debian virtual ของผมเป็นหมายเลขไอพี 192.168.2.109 อยู่แล้ว แสดงว่า เป้าหมายบอร์ด Raspberry Pi ที่เรากำลังหาอยู่นั้น เป็นหมายเลขไอพี 192.168.2.105 อย่างแน่นอน เราลอง เปิด putty ขึ้นมา เพื่อทำการเชื่อมต่อกับ SSH ที่ ไอพี 192.168.2.105  ผลปรากฏว่า ใช่เลย เราสามารถ login เข้าสู่ SSH ด้วย user pi แสดงว่า เราทำถูกแหละ

     นั่นก็เป็นแนวทางการใช้ nmap และการนำ Debian virtual มาช่วยในการทำงานของเรากับงาน Linux Embedded พวกนี้  น่าจะได้แนวทางไปประยุกต์ต่อไปนะครับ  ขอเสริมนิดหนึ่ง สำหรับโปรแกรม nmap เป็นโปรแกรมที่มีประโยชน์มาก สำหรับใครสนใจสามารถศึกษาได้เพิ่มเติม ผมรับรองว่ามีประโยชน์มาก โดยเฉพาะ linux network admin ครับ จำเป็นต้องใช้ และใช้บ่อยมาก 

    สุดท้าย ผมขอนำฉากๆ หนึ่งในหนังเรื่อง The matrix ครับ ในฉากนี้ ทรินิตี้ กำลังใช้คำสั่ง nmap ในการหา port ที่เปิดอยู่ แล้ว ทำการ hack เข้าไป เพื่อสั่งปิดแหล่งจ่ายไฟฟ้าทั้งหมดของโลก matrix หนังเรื่องนี้ สาระเยอะจริงๆ ถ้าตามเก็บรายละเอียดทั้งหมด จะพบว่า เราได้อะไรมากกว่า ฉากบู๊ที่ตื่นเต้น อีก

trinity uses nmap, shouldn't you?

อ่านเพิ่มเติม...

Friday, December 21

How to make crond service in linux

      ไม่ได้เข้ามาเขียนนานเหมือน ติดภาระกิจหลายอย่าง แต่ ก็ยังติดตามข่าวความก้าวหน้า และพัฒนาการของเจ้าบอร์ด Raspberry Pi อยู่เหมือนกัน ก่อนหน้านี้ ผมก็วุ่นวายอยู่กับการอัพเกรด Server ในแผนก เนื่องจาก CentOS ที่ใช้อยู่เก่าเกินกว่า จะอัพเกรด PHP จากเวอร์ชั่น 4 ไปเป็นเวอร์ชั่น 5 ก็เลยวุ่นวายพอสมควรที่ต้องโยกย้าย ถ่ายเทข้อมูลออก แล้วทำการติดตั้ง CentOS ใหม่ แล้วก็ลง PHP, MySQL ใหม่ด้วย ก็ดันมีปัญหากับข้อมูลอีก เวลาข้ามเวอร์ชั่นนี่ ต้องเช็คให้ดี ว่ามัน support กันใหม่ ทางทีดี ก็น่าจะลองบน VirtualBox ก่อนก็ได้นะครับ เผื่อความชัวร์

      โม้ซะเยอะ แลบลิ้น  มาเข้าเรื่องของเราดีกว่า วันนี้ก็ไม่มีอะไรมากครับ (ก็เลยโม้หน่อย)  แค่มาแนะนำเครื่องมือตัวหนึ่ง บน Linux ที่หลายๆ คนรู้จักดี บางทีเรามีความจำเป็นที่จะต้องให้ระบบของเรามีการทำงานอะไรบางอย่าง ที่ต้องทำสม่ำเสมอ และทำเป็นประจำเป็นเวลา ซึ่งอาจะเป็นประจำทุกชั่วโมง ทุกวัน ทุกวันอังคาร ทุกวันเสาร์สี่ทุ่ม อะไรประมาณนี้ ซึ่งเจ้าเครื่องมือ หรือบริการบน Linux ที่ผมจะแนะนำนี้ สามารถจัดการงานที่ต้องการ ที่ผมได้กล่าวไว้แล้วข้างต้นได้เป็นอย่างดี โปรแกรม หรือบริการที่ว่านี้ นี่ก็คือ Crontab

      ถ้าจะเปรียบเทียบง่ายๆ ก็คือ crontab ก็เหมือน scheduler หรือตัวจัดการงานตามเวลาที่เราได้ตั้งไว้นั่นเอง ซึ่งในระบบปฏิบัติการ Windows ก็มี ไม่รู้มีใครเคยใช้หรือเปล่า แต่ใน Linux แล้ว มันไม่ได้มีหน้าต่างให้ตั้งค่าอะไรสะดวกเหมือน windows ฉะนั้นเรามาศึกษาการตั้งค่าเจ้า crontab กันสักหน่อยครับ

แต่ละ user สามารถที่จะมี crontab หรือบางทีก็เรียก crond service ของแต่ละคน แยกจากกันได้ นั่นแปลว่า ถ้ามี user pi และ user root ก็สามารถที่จะตั้ง crontab แต่ละคนได้ ไม่ต้องใช้ crontab ร่วมกัน  โดยสามารถที่จะสร้าง หรือ ดู crontab ได้ด้วยคำสั่ง

crontab -e เพื่อสร้าง crontab ใหม่ หรือเข้าไปแก้ไข crontab ที่เราได้ตั้งไว้แล้ว
crontab -l เพื่อขอดูรายการ crontab ที่ตั้งไว้ (ดูเฉยๆ ไม่ได้ต้องการแก้ไข)

พอเราได้ลองใช้ คำสั่ง crontab -e แล้ว linux ก็จะทำการเลือก editor ตัวหนึ่งขึ้นมาให้เราทำการแก้ไข หน้าตา crontab เริ่มต้นจะประมาณนี้ (อาจจะแตกต่างกันไปบ้าง ตามแต่ linux แต่ละค่าย)

# Edit this file to introduce tasks to be run by cron.
#
# Each task to run has to be defined through a single line
# indicating with different fields when the task will be run
# and what command to run for the task
#
# To define the time you can provide concrete values for
# minute (m), hour (h), day of month (dom), month (mon),
# and day of week (dow) or use '*' in these fields (for 'any').#
# Notice that tasks will be started based on the cron's system
# daemon's notion of time and timezones.
#
# Output of the crontab jobs (including errors) is sent through
# email to the user the crontab file belongs to (unless redirected).
#
# For example, you can run a backup of all your user accounts
# at 5 a.m every week with:
# 0 5 * * 1 tar -zcf /var/backups/home.tgz /home/
#
# For more information see the manual pages of crontab(5) and cron(8)
#
# m h  dom mon dow   command

อันนี้เป็นข้อความ crontab ของ Raspian ใน Raspberry Pi ครับ

ต่อมาที่เราต้องทำความเข้าใจก็คือ ในการตั้งค่าให้ crontab ถูกกระตุ้นทำงาน ตามวัน เวลา นาที ชั่้วโมง ใดๆ ก็ได้ ดังต่อไปนี้

*     *     *     *     *  Command to be executed
-     -     -     -     -
|     |     |     |     |
|     |     |     |     +----- Day of week (0-7)
|     |     |     +------- Month (1 - 12)
|     |     +--------- Day of month (1 - 31)
|     +----------- Hour (0 - 23)
+------------- Min (0 - 59)

เราใช้การเว้น 1 ช่องว่าง เป็นการแยกแต่ละค่า และในทีนี้เครื่องหมาย * (ดอกจัน) หมายความว่า "ทุกๆ"  เช่น ผมตั้งว่า

5 * * * * Command to be executed
ความหมายก็คือ ผมให้ คำสั่งที่ถูกระบุในบรรทัดนี้ ถูกเรียกให้มาทำงาน ในนาที ที่ 5  ทุกๆชั่วโมง ทุกๆวันของเดือน ทุกๆสัปดาห์ ทุกๆวันของสัปดาห์

แล้วถ้าเป็นแบบนี้หล่ะ
* 1,2,3,4 * * * Command to be executed
ความหมายก็คือ ผมให้ คำสั่งที่ถูกระบุในบรรทัดนี้ ถูกเรียกให้มาทำงาน ใน ทุกๆนาที  ชั่วโมงที่ 1,2,3,4 ทุกๆวันของเดือน ทุกๆสัปดาห์ ทุกๆวันของสัปดาห์  ซึ่งในชั่วโมงที่ 1,2,3,4 นั่นคือ ตีหนึ่ง ถึง ตีสี่ นั่นเอง

     เอาหล่ะ ที่นี้ เรามาลองสร้าง crontab กันดูนะครับ สำหรับ user pi หลังจาก login แล้ว ให้เรียกคำสั่ง crontab -e จากนั้น เพิ่มบรรทัด ล่างสุด โดยไม่มีเครื่องหมาย # นำหน้านะครับ เพราะมันเป็นการ comment ในโปรแกรม

ผมเพิ่ม คำสั่งนี้ลงไป ใน crond service ของ pi

* * * * * /bin/date >> /home/pi/date.txt

crontab -e

ผมลองให้ shell เรียกคำสั่ง date ซึ่งถ้าเราลองเรียกคำสั่งนี้ ที่ console มันจะแสดงวัน เวลา ออกมาทางหน้าจอ

image

แต่เมื่อเรามาเขียนสั่งใน crontab มันไม่รู้ว่าจะไปแสดงหน้าจอไหน ผมก็เลย สั่งเปลี่ยนทิศทางการแสดงผล ให้ไปออกที่ text file ที่อยู่ใน /home/pi ชื่อ date.txt โดยให้เขียนต่อกันไปเรื่อยๆ ในไฟล์ date.txt สังเกต ผมใช้ >> แสดงว่าเป็นการเขียนต่อจากข้อความเก่า 

/bin/date >> /home/pi/date.txt

จากนั้นทำการบันทึก crond service ด้วยการออกจากโปรแกรม editor ซึ่งในที่นี้ เจ้า raspian ของเรามันใช้โปรแกรม nano ในการเป็น editor ซึ่งวิธีการออกจากโปรแกรมก็แค่ กด Ctrl+x แล้วกด y เพื่อยืนยันการเปลี่ยนแปลงสิ่งที่เราแก้ไข จากนั้น ไม่ต้องทำอะไรครับ รอดูผลที่เปลี่ยนแปลงใน /home/pi จะปรากฏไฟล์ date.txt เกิดขึ้น หลังจากเราได้บันทึกไปแล้ว ลองให้แสดงรายละเอียดข้างในไฟล์ด้วยคำสั่ง
cat /home/pi/date.txt ดูครับ จะเห็นว่า มีการเขียน วันเวลา ลงในไฟล์นี้

ถ้าเราอยากจะคอยตรวจดูว่า crond service เราได้ทำงานหรือเปล่า สามารถเช็คได้ด้วยคำสั่ง

tail -f /var/log/syslog ได้ครับ

raspberry pi crontab

      เราสามารถที่จะเขียนสคริปต์ด้วยภาษาใดก็ได้ ที่สามารถรัน ทำงานบน linux นี้ แล้วนำไปฝากไว้ที่ crond service ได้มากกว่า 1 คำสั่งได้ โดย 1 บรรทัด สามารถทำได้ 1 คำสั่ง หากต้องการเรียกหลายๆ คำสั่ง ก็เพิ่มจำนวนบรรทัด และเงื่อนไขเวลาการทำงานเข้าไปครับ

      คำถามก็คือ เราใช้ crontab ตอนไหน คำตอบก็คือ งานใดๆ ก็ตาม ที่ต้องทำเป็นประจำ เช่น backup ฐานข้อมูล, ลบไฟล์ที่ไม่จำเป็น, หรือแม้แต่สั่งเปิดปิด GPIO ตามเวลา ที่เรารู้อยู่แล้ว และต้องการให้เกิดเป็นประจำ เราก็ควรที่จะเอางานนั้นๆ เขียนลงไปในสคริปต์ แล้วมาฝากไว้ที่ crond service ครับ เพราะนอกจากเราไม่จำเป็นต้องเขียนโค๊ดให้วนรอบค้างไปเรื่อยๆ แล้วให้ทำงานตามที่เรากำหนดแล้ว ยังมั่นใจได้ว่า หากระบบเราถูกรีเซตแล้ว crond service จะกลับมาทำงานได้เหมือนเดิม และคำสั่งที่ถูกเขียนลงไป นั้น จะถูกเรียกทำงานได้ตามปกติอีกด้วย

      ในตอนต่อไป ผมจะให้เจ้า crontab ทำการเรียก script python เพื่อดูค่า ip router ที่เป็นระดับ WAN เพื่อที่เราจะได้ทราบว่า ip router ของเราหมายเลขอะไร เพื่อจะได้ทำการรีโมทจากภายนอกบ้าน เข้ามาจัดการบอร์ด Raspberry pi ของเรานะครับ คอยติดตามชมหล่ะกัน ว่าผมจะทำยังงัย ^_^ 

อ่านเพิ่มเติม...

Sunday, November 18

How to install Debian on Oracle VM VirtualBox Manager

หนึ่งในคำแนะนำสำหรับการจะเป็น Geek ทางด้าน Linux นั่นก็คือ เราจะต้องหัดใช้คำสั่งของ Linux (ที่มีอยู่มากมาย) ให้จงได้ แต่สำหรับใครที่ยังไม่เคยจับ Linux มาก่อน ก็ยังอาจจะกล้าๆ กลัวๆ ที่จะติดตั้ง OS Linux แทน OS Windows แต่ ทุกวันนี้เรามีโปรแกรมประเภท Virtual Machine ซึ่งทำให้เราสามารถที่จะติดตั้งระบบปฏิบัติการที่สอง เข้าไปเพิ่มในระบบปฏิบัติการที่ติดตั้งอยู่ก่อนได้ และนั่นเป็นสิ่งที่ผมกำลังจะนำมาแนะนำให้เพื่อนๆ ให้หันมาใช้ Linux กันครับ

แน่นอนว่า Linux ตัวหนึ่งที่จะมาแนะนำก็ต้องเป็นเหมือน Linux ตระกูลเดียวกันกับที่ติดตั้งอยู่บนบอร์ด Raspberry Pi นั่นก็คือ Debian ครับ วันนี้เราจะมาติดตั้ง Debian บนโปรแกรม Virtual Machine สำหรับ Windows ครับ

Debian on VirtualBox Manager

อันดับแรก ให้ไปดาวน์โหลด
-  VirtualBox 4.2.4 for Windows hosts  x86/amd64 เพื่อทำสร้าง Virtual Machine
- ต่อมาก็ให้ไปดาวน์โหลดไฟล์ image จาก http://www.debian.org/ แล้วเลือก network install
จากนั้นมองหา Smaller CDs แล้วเลือก i386 (สำหรับ CPU intel) หรือจะเลือกจากลิ้งค์ตรงก็ได้ครับ i386
(http://cdimage.debian.org/debian-cd/6.0.6/i386/iso-cd/debian-6.0.6-i386-businesscard.iso)


เมื่อดาวน์โหลดมาเสร็จแล้ว ให้ติดตั้งไฟล์ VirtualBox 4.2.4 for Windows ก่อน เสร็จแล้วกำหนดค่า กำหนดพื้นที่ ที่จะจำลองเครื่องเสมือน แล้วก็ทำการ mount ไฟล์ image ของ debian เข้าไป แล้วก็เข้าสู่ขั้นตอนการติดตั้งเหมือนติดตั้ง linux ตัวอื่นๆ ทำตามขั้นตอน VDO เลยครับ

แต่ที่จะแนะนำอย่างหนึ่งก็คือ ตอนที่เลือก server สำหรับที่จะเอาไว้ดึงไฟล์อื่นๆ ผมแนะนำให้เลือก server http://mirror.kku.ac.th/ เวลาติดตั้ง package อื่นๆ จะได้เร็วหน่อย ไม่ต้องไปดึงไฟล์จาก server เมืองนอก

อย่าลืม username / password ที่เราสร้างไว้ที่ขั้นตอนการติดตั้ง Debian ด้วยนะครับ เพราะเราต้องใช้มัน login

โดยปกติแล้วโปรแกรม Virtual Machine จะตั้งค่า network ไว้เป็นแบบ NAT ซึ่งจะทำให้ Debian บน Virutal Machine ของเราสามารถต่อออก internet ได้เหมือนกับ windows ของเราครับ ถ้าหาก Debian ใครต่อออกอินเตอร์เนตไม่ได้ก็ให้ลองเช็คตัวนี้ดูครับ สำหรบข้อมูลการปรับแต่ Virtual Machine สามารถหาอ่านได้ตามอินเตอร์เนตครับ ข้อมูลค่อนข้างเยอะอยู่

ทีนี้ก็เหลือแต่ การทดลองใช้งาน แล้วก็ค้นคว้าหาความรู้เพิ่มเติมแล้วครับ ขอให้สนุกกับ Debian ครับ ^^’

ปล. ขอขอบคุณ Liam สำหรับขั้นตอนการติดตั้ง Debian บน Oracle VirtualBox Manager

อ่านเพิ่มเติม...

Wednesday, November 14

Tips : change title bar terminal linux

วันนี้ มากันแบบสั้นๆ ได้น้ำได้เนื้อ ปกติเวลาเรารีโมทไปเครื่อง Linux ผ่านโปรแกรมพวก Putty ซึ่งถ้าหากเราต้องเปิดหน้า terminal หลายๆ หน้าต่าง และแต่ละหน้าต่าง ก็คนละ Server มันคง งง ไม่น้อย เพราะแต่ละ terminal ก็มีแต่ตัวหนังสือเต็มไปหมด ยิ่งถ้าเดินไปกินข้าว หรือกลับมาจากห้องน้ำ มีหวังได้ลืมกันแน่ ว่าหน้าต่างไหน เป็นของ Server ไหน

วันนี้ ผมได้นำเอาเทคนิคดีๆ มาฝากจากอินเตอร์เนตครับ เค้าใช้วิธีรัน shell script แล้วส่งค่า Process, runtime , user login มาแสดงที่ title bar ของโปรแกรม putty เรามาดูกัน

เริ่มแรกก็เปิด terminal ขึ้นมา แล้วพิมพ์คำสั่งนี้ (หรือจะก๊อปปี้ แล้ววางก็ได้ครับ)

while sleep 1;do echo -ne '\033]2;'$USER@$HOSTNAME' '$(uptime)'\007';done &

linux bash tip : change title bar terminal windows

ดูผลลัพธ์ที่ title bar ของ Putty ครับ แล้วลองเทียบค่าที่ปรากฏ กับค่าจากใช้งานคำสั่ง top ดูครับ

ง่ายๆ และมีประโยชน์ด้วยครับ วันนี้ มาสั้นๆ แค่นี้หล่ะ ไปศึกษา Linux ต่อ :P

เครดิต http://www.cyberciti.biz/

อ่านเพิ่มเติม...

Friday, November 2

minicom - friendly serial communication program

ถ้าหากเราจะมองว่า Hyper Terminal คือโปรแกรมสำหรับ รับ-ส่งค่า ทาง Serial Port คอมพิวเตอร์ ของ Windows แล้วหล่ะก็ โปรแกรม minicom คือโปรแกรมที่ทำหน้าที่คล้ายกันกับ Hyper Terminal ที่สามารถรับส่งค่าผ่านทาง Serial Port ของ Raspberry Pi ที่รันผ่าน Console ของ Linux ได้เช่นกัน

ก่อนอื่น ทำการติดตั้งโปรแกรม minicom ผ่านทาง Console Linux ของเราเสียก่อนครับ ด้วยคำสั่ง

sudo apt-get install minicom

ตอบ y เพื่อยืนยัน รอสักครู่จนติดตั้งโปรแกรมเสร็จ จากนั้น ทดลอง เรียกโปรแกรม โดยเราจะอาศัย UCON-UART ที่ผมได้สาธิตไว้ครั้งก่อนหน้านี้ (ดูวงจรการต่อ) ต่อวงจรเหมือนเดิม แล้วทดลองกับโปรแกรม Serial Port ของ Arduino ครับ ตั้งค่า BaudRate ของ Serial Port ของ Arduino เท่ากับ 115200

จากนั้น พิมพคำสั่ง  minicom -b 115200 -o -D /dev/ttyAMA0  โดยเราจะติดต่อกับ Serial Port ของ Raspberry Pi ซึ่งมองเห็น Device อันนี้เป็น ttyAMA0

หลังจากพิมพคำสั่งแล้ว หน้าต่าง cosole linux ของเราจะเข้าสู่โหมดของ minicom เราสามารถส่งค่าจาก windows ของเรามาที่บอร์ด Raspberry Pi ได้เลย จะปรากฏข้อมูลที่ส่งมาทาง console linux ดังรูปครับ

minicom program

สนใจ parameter เพิ่มเติมของ minicom เราสามารถใช้คำสั่ง man minicom เพื่อดูรายละเอียดเพิ่มเติมได้

ปล. ผมไม่สามารถออกจากหน้าต่าง minicom ได้ แม้ว่าจะได้ทดลองกด Ctrl-A ถึง Z แล้วก็ตาม ในที่นี้ ผมก็เลยต้องเปิดหน้าต่าง putty ขึ้นมาอีกอัน แล้วมองหา process ของ minicom ด้วยคำสั่ง ps aux | grep minicom แล้วทำการ kill -9 process_id_minicom ซะเลย ถึงจะออกจากโหมด minicom ได้

kill process minicom

อ่านเพิ่มเติม...
 

แจกฟรี พื้นที่ฝากไฟล์ 15 GB

ติดตามข่าวสารผ่าน Twitter

ติดตาม Blog นี้

Blog อื่นๆของฉัน

Microcontroller Electronics update

สถิติเยี่ยมชมบล๊อก