08 เมษายน, 2560

แก้ไขปัญหา เสียงไม่ออกไปที่ลำโพง bluetooth บน Debian

ปัญหาคือ สามารถ pair กับลำโพงได้ แต่ไม่มี device, audio profile ใหม่ขึ้นมาในระบบให้เลือก

search ไปมาก็เจอวิธีแก้ใน wiki ของ Debian เอง วิธีการมีดังนี้

  • ติดตั้ง package เหล่านี้
    • apt-get install pulseaudio pulseaudio-module-bluetooth pavucontrol bluez-firmware
  • จากนั้น restart service bluetooth และ pulseaudio
    • service bluetooth restart
    • killall pulseaudio
  • ใช้โปรแกรมจัดการ bluetooth ตัวไหนก็ได้ pair กับอุปกรณ์ตามปกติ
  • เปิดตัวจัดการเสียงของ pulseaudio โดยใช้โปรแกรมเช่น pavucontrol ก็จะเห็น device ของลำโพงปรากฏขึ้นมาแล้ว

REF:

05 ตุลาคม, 2559

Supervisord : Adding new program

ต้องการเพิ่ม program เข้าไปใน supervisord และ start เพื่อเริ่มใช้งาน สามารถทำได้ดังนี้


  1. เพิ่ิมไฟล์ .conf เข้าไปที่ /etc/supervisor/conf.d/
  2. ใช้คำสั่ง sudo supervisorclt reread
    • ตรงนี้จะบอกว่า มีโปรแกรมใหม่ขึ้นมาให้ใช้ (แต่จะยังเพิ่มเข้าไปจริงๆ)
  3. ใช้คำสั่ง sudo supervisorclt update
    • หลังจากคำสั่งนี้ supervisord จะ add เข้าไป และเริ่มใช้งาน program ใหม่ทันที เช็คโดยใช้ sudo supervisorctl status
REF:

15 เมษายน, 2559

[Ubuntu/Debian] วิธี downgrade package

เนื่องจากต้องการติดตั้งระบบตัวนึง ซึ่งใน ansible จะรัน playbook เริ่มต้นตัวที่เป็น bootstrap เพื่อเตรียมติดตั้งจริงต่อไป พบว่า ต้องมีการเพิ่ม repository และ ติดตั้งแพคเกจเพิ่มเติม ดูเหมือนไม่มีอะไรใช่ไหม?

ปัญหาคือ แพคเกจที่ต้องการจะลง ดันบังคับต้องเป็นเวอร์ชั่นที่ต่ำกว่าที่อยู่ในระบบ ซึ่งก็คือ python2.7
ปัญหาถัดมาคือ ถ้าจะลบออกมันจะลากญาติโยมที่พึ่งพา(depend) python2.7 ลงไปด้วย เพราะงั้นทำไงดี

วิธีแก้ง่ายๆ หลังจากหาดูมาตั้งนานนมคือ ใช้ aptitude !

ใช้ยังไง? แบบนี้เลย บอกมันไปว่าจะลบทิ้งนะ

$ sudo aptitude remove python2.7

เท่านั้นล่ะ มันจะร่ายยาวมาเลยว่าอะไรจะเกิดขึ้นบ้าง สิ่งที่ต้องทำคือ กด n ไปเรื่อยๆ คือให้มัน resolve ให้ใหม่นั่นล่ะ จนกว่าจะเจอว่าให้มัน downgrade ไปยังเวอร์ชั่นที่ต้องการ
แค่นี้ก็เรียบร้อย ไม่กระทบกับแพคเกจใดๆ

07 มีนาคม, 2559

Unattended security update in Debian

ในระบบ package ปกติเช่น apt ของ Debian, Ubuntu เราสามารถติดตั้ง software ใหม่ๆ หรือ security update ได้อยู่แล้วไม่ว่าจะผ่าน command line หรือ GUI

ทีนี้หากเราได้ดูแล server อยู่เป็นจำนวนนึง การรีโมทเข้าไปติดตั้งทีละเครื่องคงไม่สนุกแน่

ในบทความนี้จะมาทำให้ server เรา security update อย่างสม่ำเสมอแบบอัตโนมัติกัน

สิ่งที่ต้องเตรียม

- ติดตั้งแพคเกจที่จำเป็น
# apt-get install unattended-upgrades apt-listchanges
- คอนฟิคไฟล์

  • ไฟล์แรกจะอยู่ที่ /etc/apt/apt.conf.d/50unattended-upgrades ซึ่งค่าที่ตั้งมา ก็สามารถนำมาใช้ได้เลย
  •  อีกไฟล์คือ /etc/apt/apt.conf.d/20auto-upgrades ถ้าไม่มีไฟล์นี้ สามารถสร้างขึ้นมาใหม่ได้เลย หรือใช้คำสั่ง  sudo dpkg-reconfigure -plow unattended-upgrades ก็ได้เช่นกัน จากนั้นให้ไขไฟล์ดังนี้

APT::Periodic::Update-Package-Lists "1";

APT::Periodic::Unattended-Upgrade "1";



REF:

28 กุมภาพันธ์, 2559

ls command with color in black-background terminal in Mac OSX

ตอนนี้ Terminal ใน Mac ที่ใช้อยู่คือ iTerm2 
ทีนี้สีพื้นหลังที่ใช้อยู่เนี่ยมันเป็นสีดำ เวลาสั่ง ls มันจะมีบางประเภทที่กลืนไปกับสีพื้นหลัง คือมันไม่เด่น

วิธีแก้คือ ให้เพิ่มค่าต่างๆ เหล่านี้ไปที่ไฟล์ ~/.profile หรือ ~/.bash_profile (ใช้อันนี้ล่ะ)

alias ls="ls -G" # อันนี้คือทำให้มันแสดงผลเป็นสีทุกครั้งที่ ls#export LSCOLORS=gxBxhxDxfxhxhxhxhxcxcx # สีนี้ก็ใช้ได้export LSCOLORS=ExGxBxDxCxEgEdxbxgxcxd # อันนี้โฟลเดอร์จะสีน้ำเงินเข้ม
สั่ง source ~/.bash_profile แล้วลอง ls ดู ก็จะโอเคขึ้นละ

ref:

23 สิงหาคม, 2558

Flashing NodeMCU firmware on Mac OS X

เรื่องของเรื่องคือได้ยินชื่อเสียงของ NodeMCU มานาน เลยสั่งมาลองเล่นบ้าง แต่ไม่เคยมีประสบการณ์กับการเล่นกับ IoT มาก่อน ค่อนข้างจะมั่วอยู่มากเหมือนกัน 

ปัญหาที่เจอคือแฟลชแล้ว ไม่มี lua prompt ขึ้นมา แต่ใช้ Arduino IDE ต่อเข้าแล้ว upload script (ที่ไม่ใช่ lua) แล้วดันรันได้ งมไปงมมาเลยได้วิธีมาแชร์นี้ล่ะ

ตัวที่สั่งมา หน้าตาเป็นอย่างนี้


ที่เคยอ่านๆ มาคือ Windows ก็จะมีเครื่องมือช่วยในการแฟลชง่ายๆ เลย 
ในแมคก็มีเหมือนกันแต่ใช้ผ่าน command line แทน 
แต่ก่อนจะแฟลช ต้องเตรียมเครื่องมือก่อน ดังนี้
  • ติดตั้ง CP2102 USB to UART bridge เหมือนเป็น driver เวลาเสียบเข้าเครื่องแล้วจะมองเห็นเป็น device ชนิดนึง โหลดได้ ที่นี่
  • ESPTool เป็น command line tool สำหรับแฟลช firmware ลง esp8266 วิธีติดตั้ง ใช้คำสั่งดังนี้ใน terminal
    • git clone https://github.com/themadinventor/esptool.git
    • cd esptool
    • sudo python setup.py install
  • nodemcu-firmware โหลดตัวล่าสุดมาเลยก็ได้ (ในขณะนี้คือ 0.9.6-dev ) สมมติว่าไฟล์ชื่อ nodemcu_float_0.9.6-dev_20150704.bin
เมื่อเตรียมพร้อมแล้ว มาเริ่มแฟลชกัน โดยวิธีการมีดังนี้
  • เสียบสาย micro usb เข้ากับ esp8266 แล้วเช็คดูว่ามองเห็น device รึเปล่า แบบในรูป
  •  เช็คว่าเมื่อเสียบแล้วได้ device ชื่ออะไร อย่างที่ใช้อยู่จะเป็น device อยู่ที่ /dev/tty.SLAB_USBtoUART
  •  ถ้าได้ device ขึ้นมาแล้ว สามารถใช้คำสั่งนี้ใน terminal ได้เลย
    • esptool.py -b 115200 -p /dev/tty.SLAB_USBtoUART write_flash --flash_mode dio 0x00000 nodemcu_float_0.9.6-dev_20150704.bin (spec baud rate ของตัวนี้เขียนไว้ที่ 9600 เท่าที่ลองคือสำหรับตอนที่ใช้โปรแกรมอย่าง minicom, ESPlorer ต่อเข้าไป แต่เวลาแฟลชใช้ buad rate นี้ได้ ลองแล้ว เร็วด้วยนะ)
      ขึ้นแบบนี้ถือว่าถูก
    • แล้วก็รอจนเสร็จ ก็จะสามารถใช้งาน NodeMCU พร้อมกับเขียนสคริปต์โดยใช้ภาษา lua ได้ มี lua prompt ขึ้นมาให้เสร็จสรรพ
REF: