วันพฤหัสบดีที่ 10 พฤศจิกายน พ.ศ. 2559

วิธีทำ Raspberry Pi ให้เป็น Print Server

เตรียมตัว


  • Raspberry Pi 3 ลง Rasbian และเปิด ssh เรียบร้อยแล้ว (ในบล็อกนี้เป็น Jessie with PIXEL)
  • Printer เสียบปลั๊กจ่ายไฟเปิดเครื่องให้เรียบร้อย (ในบล็อกนี้เป็น HP Deskjet Ink Advantage 2060 K110)
  • ต่อ Printer กับ Raspberry Pi ให้เรียบร้อยก่อนแล้วค่อยเปิด Raspberry Pi ขึ้นมา
  • ssh เข้าไปที่ตัว Raspberry Pi
    • $ ssh pi@192.168.x.x
  • ลองตรวจสอบดูว่า Raspberry Pi เห็น Printer ที่เราเสียบผ่าน port USB แล้วหรือยัง
    • $ lsusb

Setup Printer บน Raspberry Pi


ตอนนี้เรา ssh เข้าไปทำงานที่ Raspberry Pi แล้วนะครับ ขั้นแรกต้องลง driver ของ printer ที่เราใช้อยู่ก่อน ในบล็อกนี้เป็น printer ของ HP มี package สามารถติดตั้งผ่าน apt-get ได้เลย

ติดตั้ง driver printer HP
  • $ sudo apt-get update
  • $ sudo apt-get install hplip
ติดตั้ง CUPS
  • $ sudo apt-get install cups
เพิ่ม user pi เข้าไปใน group lpadmin
  • $ sudo usermod -a -G lpadmin pi
เสร็จแล้วก็ restart Raspberry Pi ก่อนนะครับ
  • $ sudo reboot
รอซักพักค่อย ssh เข้าไปที่ Raspberry Pi ใหม่ แล้วลองตรวจสอบดูว่า เราเข้าไปอยู่ใน lpadmin group แล้วหรือยัง
  • $ groups
ถ้าเห็นมีชื่อ lpadmin โผล่ขึ้นมาก็แสดงว่า pi อยู่ใน lpadmin group แล้ว

แก้ไข CUPS configuration file

เข้าไปแก้ไขไฟล์ /etc/cups/cupsd.conf (อย่าลืม copy file ต้นฉบับ backup เอาไว้ก่อน)
  • $ sudo vim /etc/cups/cupsd.conf
แก้ไขให้เครื่องอื่นๆ ภายใน network เดียวกันสามารถเข้าถึง CUPS ได้ก่อน
  • หาบรรทัด Listen localhost:631
  • แก้เป็น (ทำ comment ด้วย # ก็ได้)
  • Port 631
  • เพิ่ม 2 บรรทัดนี้เข้าไป
  • BrowseRemoteProtocals CUPS dnssd
  • BrowseAddress @LOCAL
ต่อมาหา # Restrict access to the server... แก้เป็น

<Location />
    Order allow, deny
    Allow all
</Location>

ต่อมา # Restrict access to the admin pages...

<Location /admin>
   # ลบออกให้หมดหรือ comment ไว้ก็ได้
</Location>

ต่อมาหา <Location /admin/conf> ให้ไปลบ (หรือ comment) บรรทัด Order allow, deny ออกไป หลังจากนั้น save file แล้วสั่ง reload service
  • $ sudo service cups reload
จบขั้นตอนบน ssh ต่อไปสามารถทำงานต่อผ่าน Browser ได้แล้วจะทำบนเครื่องหลักหรือจะ remote เข้าไปทำที่หน้าเครื่อง Raspberry Pi เลยก็ได้ 
  • เปิด Browser
  • ถ้าทำงานผ่านเครื่องอื่นๆ อยู่ก็ http://192.168.x.x:631
  • ถ้าทำงานอยู่หน้าเครื่อง Raspberry Pi หรือจะ VNC Remote เข้าไปก็ http://localhost:631
ถ้าขึ้นหน้านี้มาก็แสดงว่ามาถูกทางละ


ไปที่ tab Administration หน้าตาจะเป็นแบบนี้


ต่อไปกดปุ่ม Add Printer ครั้งแรกจะโดนถาม username, password (default คือ pi, raspberry) ในขั้นตอนนี้ถ้าเรากรอก username, password ถูกแล้วแต่ไม่ผ่าน ให้ไปลองเช็คขั้นตอนการ add user เข้า lpadmin ดูอีกครั้ง ถ้าผ่านจะมาพบหน้าเลือก printer ให้เลือกชื่อ printer ที่เราต้องการเพิ่มแล้วกด Continue


หน้าต่อไปให้ check เลือก Share This Printer แล้วกด Continue ต่อไป


ต่อไปสำคัญมากคือเลือก Model printer ให้ถูก แล้วกดปุ่ม Add Printer

(รูปนี้ cap มาตอน setup เสร็จแล้ว จริงๆ ปุ่ม Modify Printer ต้องเป็นปุ่ม Add Printer)
ขั้นตอนต่อไปขี้เกียจ cap รูปแล้วกดปุ่ม Set Default Options ให้มันจบๆ ไป เสร็จ....

ถ้าไม่มีอะไรผิดพลาดเราก็จะสามารถ Add Printer ได้ (ตอนพิมพ์ก็เลือก printer ให้ถูกก็พอ)



Tips การสั่งพิมพ์ผ่าน command line

  • ssh เข้าไปเครื่อง Raspberry Pi ก่อน
  • Print file (มี Printer เครื่องเดียว)
    • $ lp filename
    • หรือ
    • $ lpr filename
  • กรณีที่ Add Printer ไว้หลายตัว
    • $ lpstat -p -d  # ตรวจดูว่ามี printer ชื่ออะไรบ้างที่เชื่อมต่ออยู่
    • $ lp -d printer filename
    • หรือ
    • $ lpr -P printer filename
    • เช่น
    • $ lp -d HP_Deskjet_Ink_Adv_2060_K110 helloworld.c
    • $ lp -P HP_Deskjet_Ink_Adv_2060_K110 helloworld.c
  • Set Default Printer
    • $ lpoptions -d printer
    • เช่น
    • $ lpoptions -d HP_Deskjet_Ink_Adv_2060_K110
    • ต่อไปเวลาสั่ง $ lpr filename ก็จะเท่ากับ $ lpr -P printer filename แล้ว
  • เอา lp หรือ lpr ไปต่อ pipe ได้นะ
    • $ program | lp
    • $ program | lpr
    • $ program | lp -d printer
    • $ program | lpr -P printer

น่าจะหมดแล้วสำหรับการทำ Raspberry Pi ให้เป็น Print Server

สวัสดีครับ :)

วันอาทิตย์ที่ 6 พฤศจิกายน พ.ศ. 2559

ติดตั้ง Raspbian ด้วย Mac OS

ต้นเดือนได้ของเล่นมาใหม่เป็น Raspberry Pi 3 เลยมาบันทึกวิธีติดตั้งด้วย Mac OS เอาไว้ซักหน่อย

โพสท์นี้เขียนหลังจากติดตั้งเสร็จเรียบร้อย แล้วอยากทดสอบเขียนบล็อกบนเจ้า Raspberry Pi ซะหน่อย โดยรูปในส่วนของ Mac OS ทำการส่งเข้ามาลงไว้บน Raspberry Pi ด้วย scp

บน Mac OS

Download Raspbian Images แบบ ZIP file จาก https://www.raspberrypi.org/downloads/raspbian/ ผมเลือกตัว Images with PIXEL desktop หลังจาก Download เสร็จแล้วก็แตกไฟล์ images ออกมา ตอนแตกไฟล์แนะนำให้ใช้พวกโปรแกรมเช่น The Unarchiver เป็นตัวแตกไฟล์ จะได้ไฟล์ .img 

ต่อมาเป็นขั้นตอนการเขียน Images ลง Micro SD Card

ทำการ format Micro SD Card โดยเลือก Format: MS-DOS (FAT), Scheme: Master Boot Record


เสร็จจาก Format แล้วลองตรวจสอบดูว่าตัว Micro SD Card ชื่อ Disk อะไร



หลังจากนั้นให้ทำการ unmount partition disk2s1 (เลือกที่ชื่อ Micro SD Card ในขั้นตอนนี้ถ้าชื่อไม่ขึ้นให้ Eject ตัว Card ออกไปก่อนแล้วเสียบเข้าไปใหม่)


เสร็จแล้วเปิด Terminal ขึ้นมาพิมพ์ command line

$ sudo dd bs=1m if=path_of_your_image.img of=/dev/rdiskn
ตรง /dev/rdiskn ให้แทน n ด้วยเลข Disk ที่เราได้มาก่อนหน้านี้ ในรูปคือ disk2 หลังจากใส่ password กด enter แล้วก็รอ....เสร็จ


ref: https://www.raspberrypi.org/documentation/installation/installing-images/mac.md

บน Raspbian

เชื่อมต่อ internet ให้เรียบร้อย (จะ Lan หรือ Wifi ก็แล้วแต่) แล้วจัดการ update OS 
  • sudo apt-get update
  • sudo apt-get upgrade
ต่อมา Enable SSH และ VNC โดยเข้าไปที่เมนู Raspberry Pi Configuration


บนเครื่อง Mac ให้ Download และติดตั้งโปรแกรม VNC Viewer จาก https://www.realvnc.com/raspberrypi/
เอาไว้สำหรับ remote desktop ส่วน SSH ก็ทำผ่าน command ได้แล้ว

การส่งไฟล์ไปมาระหว่าง Mac กับ Raspberry Pi ใช้ scp ไปก่อน

ต่อไป ไปที่ tab Localisation ทำการ set ค่าต่างๆ ดังนี้
  • Locale:
    • Language: th(Thai) (จริงๆ เลือกภาษาได้ตามถนัด)
    • Country: TH(Thailand)
    • Character Set: UTF-8
  • Timezone:
    • Area: Asia
    • Location: Bangkok
  • Keybaord: English (US, with euro on 5) เพื่อให้ไม่มีปัญหากับปุ่ม # \ | (แต่ยังไงก็ขึ้นอยู่กับ keyboard layout ที่เราใช้กันด้วยนะครับ)
  • WiFi Country: TH (Thailand)
ส่วนการพิมพ์ภาษาไทย ให้เปิด Terminal แล้วใช้คำสั่ง
  • sudo raspi-config
    • เลือกหัวข้อ Internationalisation Options >> Change Keyboard Layout
    • แล้วค่อยเลือก keyboard layout ไทย หลังจากนั้นก็ option อื่นๆ ตามใจ
  • *** ต้อง set ใหม่ทุกครั้งที่เปิดตัว Raspberry Pi ใหม่ ยังหาวิธีทำให้พิมพ์ได้แบบถาวรไม่เจอ T^T
ต่อมาก็ลงโปรแกรมเสริมอื่นๆ ที่คิดว่าจำเป็น
  • sudo apt-get install vim  # ขาดเธอฉันตายดีกว่า
  • sudo apt-get install gimp  # เอาไว้แต่งรูป
  • sudo apt-get install scrot # เอาไว้ capture screen (ต้องทำผ่าน command line)
    • วิธีใช้
      • $ scrot  #capture ทั้งหน้าจอ ภาพจะ save ที่ home เป็น default
      • $ scrot -d 10 image.png  #รอ 10วิ แล้ว save ไฟล์ชื่อ image.png เอาไว้ซ่อนหน้าจอ Terminal ก่อน capture
      • $ scrot -cd 10 image.png #มีการนับถอยหลังให้ด้วย
      • $ scrot -s  #เลือกหน้าต่างที่จะ Capture 

การ Backup SD Card

หลังจากลงนู่นลงนี้ไปแล้วก็ต้องทำการ Backup SD Card เอาไว้ ครั้งหลังมาจะได้ไม่ต้องมานั้ง setup ใหม่อีก ก็ใช้ command dd เหมือนตอนเขียน img เลยแค่สลับ input , output เช่น จากด้านบน sd card เราอยู่ที่ disk2 คำสั่ง Backup บน Mac OS ก็ต้องเป็น
sudo dd bs=1m if=/dev/rdisk2 of=backup-file-name.img

ประสพการณ์การใช้งาน Raspberry Pi 3 Raspbian with PIXEL เป็น Desktop PC

จากการที่ทดลองใช้แทนคอมพิวเตอร์เครื่องหลักมาได้ 2 วันบนสภาพแวดล้อม PIXEL ถือว่า Raspberry Pi 3 สามารถทำงานทดแทนได้ดีในระดับใช้งานธรรมดาๆ เท่านั้น เช่น งานเอกสาร เล่นเน็ต เขียน Code แต่ถ้าทางด้านความบันเทิงอื่นๆ ยังคิดว่าไปไม่รอด  เช่น 
  • เรื่องเสียง ถ้าต่อผ่าน HDMI ออกลำโพงทีวี คุณภาพเสียงออกมาชัดแจ่มไม่มีปัญหาเลยครับ แต่ถ้าต่อลำโลงหรือหูฟังตรงๆ เสียงที่ออกมาจากช่อง 3.5mm audio jack คุณภาพเสียงต่ำมากๆ เอาแค่พอฟังได้ แต่ฟังให้เพราะ ไปหาวิธีอื่นฟังเอาดีกว่า อาจต้องหา DAC มาต่อเพิ่ม
  • การเล่นไฟล์ Video เรียกว่า มันไม่ใช่งานของมันเลยดีกว่าครับ แต่เห็นมีคนเอา Raspberry Pi ไปทำเป็น Media Center กันได้ อันนี้เดี๋ยวถ้าว่างจะลองไปศึกษาดูว่าเค้าทำกันยังไง
  • การเปิด youtube จะเจอกระตุกบ้างที่ความละเอียดเกิน 480p (อันนี้เชื่อมต่อผ่าน WiFi นะครับยังไม่ได้ลองต่อสาย LAN ตรงๆ จากตัว Router)
แต่ก็ว่าไม่ได้นะครับ เพราะ เจ้าตัว Raspberry Pi มันไม่ได้ออกแบบมาเพื่อจุดประสงค์เหล่านั้นซะหน่อย

สวัสดีครับ :)

วันพฤหัสบดีที่ 13 ตุลาคม พ.ศ. 2559

บล็อกแรกบนแผ่นดิน รัชกาลที่ ๑๐ ฉันเกิดในรัชกาลที่ ๙

วันพฤหัสบดีที่ ๑๓ ตุลาคม ๒๕๕๙

พระบาทสมเด็จพระปรมินทรมหาภูมิพลอดุลยเดช มหิตลาธิเบศ รามาธิบดี จักรีนฤบดินทร์ สยามมินทราธิราช บรมนาถบพิตร ( รัชกาลที่ ๙ )

ครองราชย์วันที่ ๙ มิถุนายน ปี ๒๔๘๙ เมื่อพระชนมายุ ๑๙ พรรษา
เสด็จสวรรคต เวลา ๑๕:๕๒ น. ณ โรงบาลศิริราช พระชนมพรรษา ๘๙ ปี
ทรงครองราชสมบัติได้ ๗๐ ปี

กราบถวายบังคมลา แทบเบื้องพระยุคลบาท
ด้วยสำนึกในพระมหากรุณาธิคุณ
ขอเป็นข้ารองพระบาททุกชาติไป

ด้วยเกล้าด้วยกระหม่อม ขอเดชะ

ส.ค.ส. พ.ศ. 2542

วันอังคารที่ 2 สิงหาคม พ.ศ. 2559

อ่าน : WARCRAFT วอร์คราฟต์ กำเนิดศึกสองพิภพ


วอร์คราฟต์ กำเนิดศึกสองพิภพ เล่มนี้ได้มาตั้งแต่เดือน พฤษภาคม แล้วแต่ตั้งใจไปดูหนังในโรงก่อนแล้วค่อยมาอ่านฉบับหนังสือทีหลัง สุดท้ายก็ดองยาวล่วงเลยมาจนเดือนสิงหาคมจนได้ :P

สรุปเลยละกัน

เนื้อหาภายในเรียกว่าแทบจะไม่แตกต่างจากในฉบับภาพยนต์เลยก็ว่าได้เรียกว่าความเป๊ะ อยู่ที่ 99% เลยทีเดียว แต่ฉบับหนังสือมีการอธิบายความรู้สึกของตัวละครได้ละเอียดกว่าในหนังอยู่พอสมควร (เอ๋ หรือเราเข้าไม่ถึงอารมณ์ในหนังก็ไม่รู้นะ)

ดังนั้น ถ้าดูฉบับภาพยนต์มาแล้ว มาอ่านฉบับหนังสือก็จะเข้าใจอารมณ์หรือเหตุผลต่างๆ ของตัวละครมากขึ้น ส่วนถ้าใครอ่านหนังสือไปก่อนดูภาพยนต์ ก็เรียกว่ารู้เนื้อเรื่องหมดแล้ว เข้าไปเติมเต็มจินตนาการแฟนตาซีได้อย่างเต็มตากันไป

วันศุกร์ที่ 24 มิถุนายน พ.ศ. 2559

ติดตั้ง Windows 3.1 ใน DOSBox พร้อมติดตั้ง Driver สำหรับเล่นเกม

ติดตั้ง Windows 3.1 ใน DOSBox


เริ่มแรกเราต้องมีไฟล์ติดตั้ง Windows 3.1 กันก่อนนะครับ ลอง Google ดูครับหาไม่ยาก เมื่อได้มาแล้วแตก zip ดูจะเห็นว่ามันแบ่งไฟล์ติดตั้งออกเป็น disk (แน่ละ สมัยนั้นมันต้องติดตั้งผ่าน disk drive)


ต่อมาเราต้องเตรียม Folder สำหรับติดตั้ง Windows 3.1 ใน C:\ ของ DOSBox ครับ ให้ copy ไฟล์ทั้งหมดของ DISK1 ถึง DISK7 ลงไปใน Folder นั้นเลย ตามรูปด้านล่างผมตั้งชื่อ Folder ว่า WINSETUP



ต่อมาก็ถึงขั้นตอนติดตั้งซะที เปิด DOSBox ขึ้นมาแล้วจัดการติดตั้ง Windows 3.1 ตามรูปด้านล่าง





เสร็จเรียบร้อยสำหรับการติดตั้ง Windows 3.1 บน DOSBox จะเห็นว่าตัว Windows 3.1 แสดงผลที่ 16 สีเท่านั้น แถมยังส่งเสียงอะไรออกมาก็มิได้ ต่อไปเราจะติดตั้ง Drivers สำหรับ การแสดงผล และ เสียงกัน

เตรียมการติดตั้ง Video/Sound Drivers


Download ไฟล์ Drivers จากเว็บนี้ (http://www.classicdosgames.com/drivers.html) ก่อนนะครับ สำหรับ Video Drivers ให้เลือกตัว S3 (ถ้าเลือกตัวอื่นก็ได้แต่จะยุ่งยากไปแก่ไขไฟล์ config ของ DOSBox อีก)
เสร็จแล้วแตกไฟล์ zip แล้ว copy folders ที่ได้ไปที่ C:\ ของ DOSBox (ในรูปด้านล่างได้สร้าง Folders DRIVERS เอาไว้เพื่อความเป็นระเบียบ)



ติดตั้ง Video Drivers ของ Windows 3.1 ใน DOSBox


ใน Windows 3.1 เปิด Main Group แล้วคลิก Windows Setup ไอคอน หลังจากนั้น ตรง menu bar เลือก Options >> Change System Settings...


ช่อง Display: เลือก Other display (Requires disk from OEM)...


พิมพ์ PATH ที่เก็บ DRIVERS ของเราเข้าไป


เลือกความละเอียดหน้าจอและจำนวนสีที่ต้องการ แนะนำ 800x600 ที่ 256 สี ก็พอครับ เพราะเกมสมัยนั้นส่วนใหญ่ความละเอียดและสีไม่เกินนี้ เสร็จแล้วก็ กด OK และรอติดตั้งจนเสร็จ


หลังจากเปิด DOSBox และ เข้า Windows 3.1 เข้ามาใหม่จะเห็นว่าความละเอียดเปลี่ยนไป สวยปิ๊ง

ติดตั้ง Sound Drivers ของ Windows 3.1 ใน DOSBox


ออกจาก Windows 3.1 ไปที่ DOS แล้วเข้าไป folder drivers ของ Sound Blaster ที่เราเตรียมเอาไว้ แล้ว run ไฟล์ INSTALL.EXE

เลือก Full Installation


หน้าต่อมาตรง Microsoft Windows 3.1 path : None ให้กดปุ่มลูกศรลงมาเลือกแล้วกด Enter


พิมพ์ PATH Windows 3.1 ณ ปัจจุบันลงไป แล้วกด Enter


เมื่อทุกอย่างเรียบร้อยก็กด Enter ต่อไปได้เลย


หน้าต่อมาตรง Interrupt setting : 5 ให้กดปุ่มลูกศรลงมาเลือกแล้วกด Enter


ปรับค่า Interrupt Setting ให้เป็น 7 (ค่า default ของ DOSBox เป็น 7)


เสร็จแล้วก็กด Enter ต่อไป ๆ ๆ รอจนติดตั้งเสร็จ เมื่อ reboot (ปิดแล้วเปิด DOSBox ใหม่) แล้วเข้า Windows 3.1 จะได้ยินเสียงดังขึ้น ก็เป็นอันเสร็จสิ้นกระบวนการแล้วครับผม


ทดสอบติดตั้งเกม


ลองติดตั้งเกม Civilization for Windows 3.1 ได้ภาพและเสียงชัดแจ่มแจ๋วตามยุคสมัยของมันครับ






วันอาทิตย์ที่ 29 พฤษภาคม พ.ศ. 2559

ปรับแต่ง DOSBox สำหรับจอคอมพิวเตอร์สมัยใหม่

วันนี้ได้มีโอกาสลงเกม Warcraft ภาค 1 อีกครั้ง เป็นเกมที่ต้องเล่นบนดอส เลยต้องลง DOSBox ก่อน ปัญหาที่พบหลังจากกดเล่นแบบ Full Screen คือการแสดงผลมันผิด scale ดูแล้วมันขัดๆ ลูกตา

สาเหตุเป็นเพราะ ณ ปัจจุบันมาตรฐานจอคอมพิวเตอร์จะเป็นจอแบบ Wide Screen 16:9 กันหมดแล้ว เวลาเอามาเล่นเกมดอสที่ตอนนั้นมาตฐานจอจะเป็น 4:3 ทำให้เวลาเล่นแบบ full screen การแสดงผลมันจะออกมายืดๆ บานๆ

เลยมาจดเอาไว้กันลืมซักหน่อย เผื่อได้มีโอกาส setup อีก


  1. เปิดไฟล์ Config ของ DOSBox (Dosbox.conf)
    • Windows : หา "DOSBox 0.74 Options"
    • Mac OS X : แก้ไขไฟล์ "~/Library/Preferences/DOSBox 0.74 Preferences"
  2. แก้ไขค่าต่างๆ ดังนี้
    • ถ้าต้องการให้เปิด DOSBox มาแล้วเข้า Full Screen เลย ให้แก้ไขค่า fullscreen=false เป็น
      • fullscreen=true
    • แก้ไขค่า fullresolution=original เป็น
      • fullresolution=ขนาดความละเอียดของหน้าจอที่ใช้งานอยู่
      • เช่น fullresolution=1600x900
    • แก้ไขค่า windowresolution=original เป็นค่าที่ต้องการ (แต่ต้องอยู่ใน scale 4:3 นะ)
      • เช่น windowresolution=800x600
    • แก้ไขค่า output=surface เป็น
      • output=openglnb
      • openglnb จะเป็นการใช้ความสามารถของการ์ดจอที่เรามีอยู่ (ต้อง support OpenGL ด้วยนะ) 
      • note: ถ้าต้องการให้การแสดงผลออกมาภาพแบบ pixel นวล (ดูกลืนๆ) ก็ใช้ output=opengl ก็ได้ แต่ถ้าชอบแบบเดิมๆ เม็ด pixel ชัดๆ ก็ openglnb ดีกว่า
    • แก้ไขค่า aspect=false เป็น
      • aspect=true
  3. Save file เป็นอันเสร็จพิธี เปิด DOSBox ขึ้นมาใหม่ได้เลย
จะเห็นว่าเมื่อเล่นที่ Full Screen จอภาพด้านซ้ายและขวาจะดำมืดไป แต่ก็ได้การแสดงผลที่ scale ถูกต้อง






Ref:

  • http://www.dosbox.com/wiki/dosbox.conf
  • http://www.vogons.org/viewtopic.php?=&p=102291