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:

23 ธันวาคม, 2557

22 ธันวาคม, 2557

Resolving Stale NFS

ถ้าเจอเหตการณ์ Stale file blah blah blah อะไรสักอย่างนี่แหละใน NFS บน Linux ให้ใช้คำสั่งนี้ก่อนเลย
# exportfs -f
ได้ผลรึเปล่า ค่อยว่ากัน! 

REF:
http://blogs.opusvl.com/technical/resolving-stale-nfs-file-handle-issues-on-linux

21 พฤศจิกายน, 2557

Fixing: Create USB Linux installer Unetbootin in OS X

ปกติเวลาจะทำตัว Linux installer usb ก็จะใช้ Unetbootin เคยใช้แต่อยู่ในลินุกซ์ มันก็เวิร์กมาตลอด
จนมาใช้ Mac ก็ยังใช้ Unetbootin แต่มันดันทำแล้วเอาไปเสียบบูตไม่ได้ ก็ไม่ได้หาสาเหตุหรือวิธีแก้จริงๆ จนไปเจอวิธีแก้อันนึงเข้าลองแล้วใช้ได้ เลยเอามาแบ่งปันกันในคราวนี้

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

  • โหลด syslinux มาไว้ที่เครื่องแล้วแตกไฟล์ออกมา มองหา mbr.bin แล้วจำไว้ (ตอนนี้ลองไฟล์ mbr.bin ที่อยู่ใน bios/mbr/ แล้วใช้ได้) 
  • ISO image ในที่นี้ใช้ Debian netins 

วิธีทำ

  1. ใช้ Disk Utilities สร้าง Partition ให้ USB Flash drive โดยให้เลือก Option เป็น Master Boot Record (MBR) พอทำเสร็จ disk util จะ mount ให้อัตโนมัติ ให้ใช้คำสั่ง mount ดูว่า flash drive เราเป็น device อะไร เช่น /dev/disk2
  2. ใช้คำสั่งดังนี้ในสิทธิ์ rootdd conv=notrunc bs=440 count=1 if=/path/to/syslinux/bios/mbr/mbr.bin of=/dev/disk2 
  3. จากนั้นใช้ Unetbootin ตามปกติ ก็จะสามารถบูตจาก USB Flash drive ได้แล้ว

REF:
 



20 มีนาคม, 2557

Recover failed HDD using Open Source tools

This will show how to recover failed hard disk using Linux and open source tools

Failed hard disk in this case means:

  • S.M.A.R.T. not healthy.
  • Hard disk have some bad sector
  • Some data cannot read and make system slow
  • The disk are still available in /dev/

The tools

  • Ubuntu Linux or other GNU Linux
  • GNU ddrescue

Process:

  • install the tools
  • # apt-get install gddrescue smartmontools
  • Plug your failed hdd to linux system, use dmsg | tail to determine what device name were shown in this case is sdb ( /dev/sdb )
  • If you want to recovery whole drive to another new healthy disk (disk to disk), 
    • # ddrescue -f -n /dev/sdb /dev/sdX logfile.log # where X is your new healthy disk
      • The option -f and -n said force dump "only" the good parts from your failed hdd to new one, this will skip the error parts and make this activity faster than the dd command.
      •  ddrescue use logfile.log file next time for recover the error parts.
    • Now the error parts.
    • # ddrescue -d -f -r3 /dev/sdb /dev/sdX logfile.log # where X is your new healthy disk
      •  The option -r3 said try 3 times to read error parts, you can change the desire value depends on your hdd health.
    • You may or may not check your  new disk (fsck) when finish.
Summary and suggestion:
  • Always monitor your hard disk health, use smartmontools and setup the daemon will help.

06 กุมภาพันธ์, 2557

การคอนฟิค apt ไม่ให้ติดตั้งแพคเกจที่ apt recommend (รวมถึง suggest)

ปกติเวลาจะ apt-get install แพคเกจที่ต้องการ ใน Ubuntu มันจะติดตั้งแพคเกจส่วนที่เพิ่มเข้ามาคือ แพคเกจที่เป็น dependency (ถ้ามี) และ แพคเกจที่ recommend ซึ่ง recommend เนี่ย ไม่ต้องติดตั้ง เพิ่มเข้าไปก็ได้แต่ apt ใน Ubuntu มันทำให้(เปลือง space) 

การคอนฟิคไม่ให้ apt มันติดตั้ง recommend แพคเกจมาด้วย ทำได้ดังนี้

แก้ไขไฟล์คอนฟิค (ถ้าไม่มีก็สร้างใหม่เลย)  


/etc/apt/apt.conf

เพิ่มบรรทัดต่อไปนี้ลงไป


APT::Install-Recommends "0";
APT::Install-Suggests "0";
เป็นการบอกว่า ไม่ต้องติดตั้งทั้ง Recommend และ Suggest แพคเกจ