วันศุกร์ที่ 25 กุมภาพันธ์ พ.ศ. 2554

Bluetooth USB Adapter กับ FreeBSD 8.1 (ตอนที่ 3) ตอนจบ

     ผมคงจะท้องอืด อึดอัดมากๆอย่างแน่นอน หากไม่ได้เขียนตอนที่3 ให้จบเรื่องนี้ เลยต้องรีบมาจัดการซะให้เรียบร้อยซะเลย...
     จากตอนที่ 2 ที่ลองใช้ obexapp ในการ ล้วงไฟล์ใน Samsung Star GT-S5233S มาดูเล่น มาคราวนี้ เรามาจกไฟล์กันเลยดีก่า ^_^
     ก็เริ่มจากการเสียบ Bluetooth USB dongle ให้เรียบร้อย แล้วก็เปิด xterm ขึ้นมา พิมพ์คำสั่งดังนี้
%obexapp -a 00:35:77:8a:55:ee -c -C ftrn -f
     ก็จะเจอ prompt รับคำสั่ง obex> ลองสั่ง ls เพื่อ ดูรายชื่อfile แล้ว ลอง cd เพื่อเข้าสู่directoryที่ต้องการดู

รับไฟล์จากโทรศัพท์มายังcomputer โดย คำสั่ง get

     เมื่อพบรายชื่อไฟล์ที่ต้องการ ก็ใช้คำสั่ง get เพื่อรับไฟล์ที่ต้องการมาเก็บไว้ใน user directory บน Computer โดย สั่ง get แล้วตามด้วยชื่อที่ถูกต้อง เมื่อรับไฟล์มาเรียบร้อย ก็จะกลับมาที่ obex> อีกครั้ง
     เมื่อต้องการ เลิกการเชื่อมต่อ ก็พิมพ์ คำสั่ง di (คือ DIsconnect นั่นเอง) ก็จะกลับไปสู่ prompt หลักของ xterm (%) เหมือนเดิม

     ส่วนการส่งไฟล์ไปยังโทรศัพท์ ก็เชื่อมต่อเหมือนกัน เพียงแต่เปลี่ยนคำสั่ง จาก get ไปเป็น put เท่านั้น และ สามารถระบุ path ของไฟล์บนComputer ได้เลย

การส่งไฟล์จาก computer ไปยัง โทรศัพท์มือถือโดยคำสั่ง put

และสุดท้าย คือการ set ให้ Computer เป็น Obex server คือ สามารถจัดการ รับส่งไฟล์ โดยจัดการผ่านโทรศัพท์มือถือได้เองเลย ขั้นตอนก็มีเพิ่มเติมอีกเล็กน้อย คือ
     1.สร้าง directory ว่างๆขึ้นมา ใน root directory ของเรา เช่น /home/charan/bluetooth เพื่อเป็นที่เก็บfile สำหรับรับส่งผ่าน Bluetooth โดยเฉพาะ และให้แน่ใจว่า สามารถเขียนอ่านไฟล์ได้แน่ๆ ผมจึงตั้ง permission เป็น 777 ซะเลย
     2.พิมพ์คำสั่ง เพื่อให้ FreeBSD ทำหน้าที่ Obex Server โดยกำหนดให้ ทำงานใน account ของ user คือ charan ดังนี้
#obexapp -s -S -C 10 -u charan -r /home/charan/bluetooth
     เสร็จแล้ว ลองใช้ ps หาดูว่า มี process obexapp ทำงานแล้วหรือไม่ โดยสั่งดังนี้
%ps ax | grep obexapp
ก็จะพบว่า obexapp ทำงานแล้ว

การset obex server

     และเมื่อทดลอง ใช้มือถือรับส่งไฟล์ ก็จะใช้งานได้เหมือน การโอนไฟล์ระหว่างโทรศัพท์ 2 เครืองเลย เมื่อต้องการ เลิกทำงาน ก็สั่ง kill -9 process ของ obexapp นั้นได้เลย...

สามารถ เข้าไปอ่าน เอกสารอ้างอิง ได้ที่นี่
FreeBSD - Bluetooth

จบล่ะครับ ^_^

วันพฤหัสบดีที่ 24 กุมภาพันธ์ พ.ศ. 2554

Bluetooth USB Adapter กับ FreeBSD 8.1 (ตอนที่ 2)

     จากตอนที่1 หลังจากที่เราได้ลง Driver ของ Bluetooth USB Dongle และทดสอบค้นหาอุปกรณ์กันไปแล้ว     ต่อไปก็เป็นการจับคู่(Pairing) ระหว่างComputerของเรา กับ โทรศัพท์มือถือกัน
     งานนี้ hcsecd daemon จะเป็นพระเอกจัดการเรื่องการยืนยันความถูกต้องของอุปกรณ์Bluetooth จึงต้องมีการกำหนดค่าของอุปกรณ์ให้รู้จักกันซะก่อน โดยแก้ไขไฟล์ /etc/bluetooth/hcsecd.conf เพื่อกำหนดชื่ออุปกรณ์ และค่า PIN code ดังนี้
#vi /etc/bluetooth/hcsecd.conf
แล้วเพิ่มค่าBD_ADDR ของอุปกรณ์ และ ชื่อ, PIN code ไปที่บรรทัดล่างสุด  ยกตัวอย่างดังนี้

device {
             bdaddr   00:35:77:8a:55:ee;
             name      "GT-S5233S";
             key          nokey;
             pin          "1234";
}

บันทึกแล้ว ก็ไปสู่ขั้นตอนต่อไป ก็คือ การให้ hcsecd daemon ทำงานทุกครั้งเมื่อเปิดเครื่อง โดยแก้ไขไฟล์ /etc/rc.conf
#vi /etc/rc.conf
เพิ่มข้อความดังนี้ ไปท้ายไฟล์ /etc/rc.conf
hcsecd_enable="YES"

     บันทึกไฟล์ แล้ว restart เครื่อง 1ครั้ง

เมื่อเสร็จขั้นตอนนี้แล้ว ก็จะเป็นการ Install โปรแกรม obexapp ซึ่งจะใช้จัดการเรื่องการย้ายไฟล์ผ่านทาง Bluetooth นั่นเอง โดย install ผ่าน ports ดังนี้
-เปิด xterm ขึ้นมา พิมพ์ su กด Enter ใส่password แล้วสั่ง
#cd /usr/ports/comms/obexapp && make install clean
     รอสักครู่ เสร็จแล้ว สั่ง
#rehash
เสร็จแล้ว พิมพ์ exit กด Enter เพื่อออกจาก root มาเป็น เรา แล้ว มาลองกันดูครับ โดยลองพิมพ์ใน xterm ดังนี้
%obexapp -a 00:35:77:8a:55:ee -c -C ftrn -f
     ถ้าไม่มีปัญหาอะไร ก็จะเจอ prompt ดังนี้

obex>

ลองสั่ง ls  แล้วกด Enter ก็จะเจอรายการชื่อ Directory และ File ของหน่วยความจำในโทรศัพท์กันล่ะ
obexapp client แบบ ftrn จากComputer ไปยัง มือถือ
     และเราสามารถใช้คำสั่ง cd , ls , get , put ได้ในการเคลื่อนย้ายไฟล์ผ่าน bluetooth ซึ่งคงต้องไปว่ากันต่อไป ในตอนสุดท้าย ซึ่งจะ set ให้ Computer เป็น Obex Server ด้วย
     พบกันใหม่ตอนที่ 3 นะครับ ^_^

วันพุธที่ 23 กุมภาพันธ์ พ.ศ. 2554

Bluetooth USB Adapter กับ FreeBSD 8.1 (ตอนที่ 1)

     ก็เนื่องมาจาก อยากลองใช้ Bluetooth USB Adapter กับ FreeBSD จริงๆสักที (เห็น Ubuntu มันทำได้ง่ายๆ)ก็ลองค้นหาวิธีจาก Google ก็ชักเข้าเค้า...
     อุปกรณ์ของผมคือ Bluetooth USB Adapter รุ่น HK-760 Version 2.0 และ NoteBook Compaq Presario M2000 เจ้าเก่า กับ Samsung Star GT-S5233S
Bluetooth USB รุ่น HK-760 Version 2.0
     ขั้นแรกสุด ก็ต้องLoad module Driver ของ bluetooth usb ก่อนดังนี้
-แก้ไข File /boot/loader.conf ด้วย vi
%sudo vi /boot/loader.conf
 เลื่อน cursor ไปบรรทัดล่างสุด กด "o" เพื่อเพิ่มบรรทัดนี้เพิ่มเข้าไป
ng_ubt_load="YES"
 เสร็จแล้ว กด Esc 1ครั้ง แล้วบันทึกโดย พิมพ์ :wq ก็เป็นอันเรียบร้อย แต่ต้องสั่ง Rebootก่อนจึงจะมีผล ถ้าต้องการให้มีผลทันที ต้องสั่ง Load module ของ Driver นี้โดยสั่งดังนี้
#kldload ng_ubt
     จากนั้น ก็เสียบ Bluetooth USB Dongle เพื่อทดสอบกันเลย ซึ่งปกติเมื่อเสียบอุปกรณ์ก็มักจะมีข้อความบางอย่างขึ้นมาในxterm เพื่อบอกว่า FreeBSD รู้จักอุปกรณ์นี้นะ แต่ของผมไม่ยักมีแฮะ แต่ไม่เป็นไร ลองทำขั้นตอนถัดไป...
     ขั้นต่อไปคือ สั่ง run script สำหรับ start bluetooth ดังนี้(เป็น root ก่อนนะครับ)
#/etc/rc.d/bluetooth start ubt0
      ก็จะพบข้อความแจ้งรายระเอียดของอุปกรณ์อีกครั้ง เช่น BD_ADDR และอื่นๆอีกมากมาย แต่ของผมก็ไม่มีข้อความอะไรแจ้งเลยเหมือนเดิม (เฮ้อ... ชักถอดใจซะแล้ว..)
     ขั้นต่อไปคือ ลองเปิดBluetooth ในโทรศัพท์มือถือดู(Bluetooth On)เพื่อใช้ทดสอบว่าอุปกรณ์ของเราทำงานจริงหรือไม่ จากนั้น ก็ลองใช้คำสั่งทดสอบหาดูว่าพบโทรศัพท์รึปล่าว ดังนี้...
%hccontrol -n ubt0hci inquiry
 ถ้าเจอ ก็จะพบข้อความคล้ายๆอย่างนี้...
 
% hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
       BD_ADDR: 00:35:77:8a:55:ee
       Page Scan Rep. Mode: 0x1
       Page Scan Period Mode: 00
       Page Scan Mode: 00
       Class: 52:02:04
       Clock offset: 0x78ef
Inquiry complete. Status: No error [00]

      แต่จะใช่โทรศัพท์เราอ๊ะป่าว ก็ต้องลองถามดูต่ออีก โดยเอาค่า BD_ADDR: ไปถามอีก ดังนี้...
%hccontrol -n ubt0hci remote_name_request 00:35:77:8a:55:ee
 ก็จะเจอคำตอบคล้ายๆยังงี้...
BD_ADDR: 00:35:77:8a:55:ee
Name: GT-S5233S

     นั่นคือ ชื่อของโทรศัพท์ของเรานั่นเอง อย่างงี้ แสดงว่า Work!!
และเมื่อลองใช้โทรศัพท์ค้นหา Computer ของเรา ก็จะเจอรายชื่ออุปกรณ์ ชื่อ hostname(ubt0) ของเรา เช่น m2000.rspg (ubt0)

     คงต้องไปต่อกัน ตอนที่ 2 กันต่อนะครับ จะได้ไม่ยาวเกินไป แล้วมาลุยกันต่อนะครับ

วันพฤหัสบดีที่ 17 กุมภาพันธ์ พ.ศ. 2554

กู้ไฟล์ที่เผลอลบไปบน FreeBSD ด้วย testdisk (Data Recovery On FreeBSD with testdisk)

     2-3วันก่อน เผลอลบไฟล์ผิดตัวไป ก็เลยนั่งเหงื่อตก เพราะไม่รู้จะกู้กลับมายังไงดี ไม่เคยทำซะด้วย เลยตั้งสติ แล้วรีบถามพี่google เพื่อนเก่าโดยด่วน ก็พบคำตอบน่าสนใจ นั่นคือ TestDisk นั่นเอง
     สำหรับ TestDisk นั้น มีทั้ง version บน dos, windows , linux, FreeBSD, Sun OS , Mac OSX และอีกหลายระบบ และยังมีความสามารถมากมาย กับ หลายๆ File System อีกด้วย
     และเนื่องจาก ใน FreeBSD ก็มี TestDisk มาให้แล้ว ใน ports(/usr/ports/sysutils/testdisk) งั้นมา install กันเลย ใน xterm หรือ terminal แล้วแต่ถนัด
#cd /usr/ports/sysutils/testdisk && make install clean
     รอสักพัก เมื่อ install เรียบร้อยแล้ว สั่ง rehash อีกครั้ง เพื่อจะได้เรียกใช้ TestDisk ได้โดยไม่ต้อง reboot ใหม่
#rehash
สั่งใน xterm ดังนี้
#testdisk 
ก็จะเจอกับ interface ดังรูป

จากนั้นก็ดูตามตัวอย่าง ก็ละกันครับ
เลือกPartitionที่ต้องการกู้ไฟล์

เลือกชนิดของ partition

เลือก Advance

เลือก Partition ที่ต้องการกู้ไฟล์คืน และเลือก Undelete


ใช้cursor เลื่อนขึ้นลงหาไฟล์ที่ต้องการกู้คืน(บรรทัดสีแดง)แล้วกด C (copy)

จะมีคำถามให้เลือกว่าจะcopy ไฟล์นั้นมาไว้ที่ใด

เมื่อcopyเสร็จ ก็กลับมาหน้าเดิม กด Q เพื่อออกจากโปรแกรม

     หวังว่า คงเป็นประโยชน์สำหรับผู้ที่ชอบเผลอลบไฟล์แบบไม่ดูตาม้าตาเรือแบบผมนะครับ ;-p

วันจันทร์ที่ 14 กุมภาพันธ์ พ.ศ. 2554

Screen Capture By Using Import (Member Of ImageMagick)

     ว่าจะเขียน เรื่องนี้ไว้กันลืม ก็ดันลืมซะงั้น วันนี้นึกขึ้นได้ ต้องรีบเขียน ไม่งั้นเดี๋ยวลืมอีกแน่ๆ
เนื่องจากผมใช้ IceWM เป็น Desktop บน FreeBSD ก็เลยต้องหาโปรแกรม CommandLine ง่ายๆ เอาไว้ บันทึกภาพหน้าจอ(Screen Capture) เวลาเขียนBlog ก็ได้โปรแกรมสารพัดประโยชน์ อย่าง ImageMagick นี่ละครับ เป็นผู้ช่วยของผม...

     ขั้นแรก ก็ต้อง Install ImageMagick ก่อน ผ่านทาง ports โดย สั่งใน xterm ดังนี้
#cd /usr/ports/graphics/ImageMagick && make install clean
อย่าลืมต้องเป็น root ก่อนนะครับ จากนั้นรอครับ เมื่อ install เสร็จ ก็สั่ง rehash เพื่อจะได้เรียกใช้ Program ได้โดยไม่ต้อง reboot ใหม่อีก
#rehash
     คราวนี้เราลอง capture หน้าจอ กันเลย ลองสั่ง ใน xterm ดังนี้
%import fullwindow.jpg
ผลคือ cursor จะเปลี่ยนจาก arrow ชี้ กลายเป็น รูปเครื่องหมาย "+" เพื่อให้เรา click ลอง click ลงไปบน พื้นที่ว่างบน Desktop ก็จะได้ผลคือ fileภาพ jpg ชื่อ fullwindow.jpg ใน home 's user directory ดังรูป
fullwindow.jpg



     คราวนี้ลองสั่งคำสั่งใหม่อีกครั้ง
%import croparea.jpg
ทีนี้ลองใช้ cursor ที่เปลี่ยนเป็น "+" ลากไปรอบ หน้าต่างของ xterm ที่สั่งคำสั่งนี้ เมื่อ crop บริเวณหน้าต่างแล้ว ก็ปล่อย mouse ก็จะได้ภาพ croparea.jpg ดังรูปล่างนี้
croparea.jpg

     ก็คือการ เลือกอาณาเขตของภาพที่จะ crop ออกมานั่นเอง...

     ต่อไป ก็คือ การใช้คำสั่ง import ที่มีการตั้งเวลา delay 5 วินาที ก่อนจะ จับภาพหน้าจอ main window
ให้สั่งดังนี้
%import -window root -pause 5 _screen.jpg
 แล้วลองclick menu ของ desktop manager หรือ ลองเปิดหน้าต่าง xterm ดู ก็จะได้ file ภาพชื่อ _screen.jpg ดังรูป...

_screen.jpg
     ก็คิดว่าคงมีประโยชน์กับหลายคน ที่ชอบใช้ commandline ที่สะดวก รวดเร็ว เหมือนๆผม

     จบละครับ...^_^