Ubuntu 6.10

ตามแผน Ubuntu 6.06 จะรีลีสวันที่ 1 มิถุนายน 2549 …ก็อีกไม่กี่วันแล้ว .. Mark Shuttleworth วางไว้ว่า Dapper + 1 จะรีลีสราวๆ ตุลาคมปีนี้ และใช้เวอร์ชัน 6.10 โดยมี codename ว่า Edgy Eft .. บอกเป็นนัยๆ ว่าจะ Edgy – ติดขอบพอสมควรในแง่ของเทคโนโลยี และ Eft ก็เป็นนัยอีกว่าจะไม่อยู่ในกรอบ แต่จะค้นหาทดลองเอาไอเดียใหม่ๆ เพิ่มเข้ามาด้วย .. Xen, Xgl/AIGLX + compiz น่าจะมาแน่ (จริงๆ ใน Dapper เองก็มีให้ใช้กันอยู่แล้ว) ..

Shuttleworth ว่าถ้าจะติดขอบ Edgy น่าจะเหมาะ เพราะระยะเวลาห่าง Dapper ไม่เยอะ ใครยังอยากเสถียรก็อยู่กับ Dapper ไปก่อนได้ .. อีกอย่าง Dapper กำหนดให้เป็น Long-Term Support (LTS) 3 ปีสำหรับ desktop และ 5 ปีสำหรับ server อยู่กันได้ยาวๆ อยู่แล้ว

ที่น่าสนใจอีกอย่างคือ Shuttleworth ไม่ได้กำหนดกรอบของ Edgy เอาไว้ และเขาเองก็บอกว่าพยายามจะไม่เข้าไปก้าวก่ายเรื่องทิศทางการพัฒนาหรือเลือกเทคโนโลยี ปล่อยให้เป็นไปตามผู้พัฒนาหรือชุมชนขับเคลื่อนกัน ชุมชนก็น่าจะและควรจะมีส่วนร่วมกับ Edgy ได้มากพอสมควร :)

/me .. หวังว่าจะไม่เลื่อนอีกนะ :P

Migrate to UTF-8

วันนี้เว็บ kitty.in.th ย้ายไปใช้ UTF-8 เป็นที่เรียบร้อยแล้ว .. ยุ่งๆ กับฐานข้อมูลพอสมควร MySQL เห็นข้อมูลในฐานข้อมูลเป็น Latin1 เลยต้องเอาออกมาโดยตั้ง charset เป็น Latin1 ก่อน (ซึ่งจริงๆ มันเป็น TIS-620) แล้วค่อย iconv แปลงเป็น UTF-8 อีกที …

นอกจากฐานข้อมูลแล้วก็มีข้อมูลอื่นๆ รวมถึงหน้าเว็บ และสคริปต์ก็ต้องเปลี่ยนด้วย

หลังจากทำเสร็จหมดก็ sync ขึ้นทั้ง Yggdrasil และ Skuld .. ถือโอกาสเปลี่ยนหน้าตานิดหน่อยด้วย :)

Kitty Repository for Dapper Drake

เพิ่มเข้าไปใน /etc/apt/sources.list ได้เลยครับ

# Kitty Repository
deb ftp://ftp.kitty.in.th/pub/ubuntu/kitty dapper unstable

ถ้าเครือข่ายอยู่ใกล้ๆ มข. ใช้ mirror จะเร็วกว่า

# Kitty Repository - mirror
deb ftp://skuld.kitty.in.th/pub/ubuntu/kitty dapper unstable

กุญแจสาธารณะใช้ตัวเดิมนะครับ โหลดได้ที่ ftp://ftp.kitty.in.th/pub/ubuntu/kitty/kitty.in.th.gpg..

ก็ถือเอาโอกาสนี้ประกาศหยุดอัปเดต Breezy และ Hoary เลยละกันเน้อะ :P .. แพ็คเกจยังไม่เยอะเท่าไหร่ บางอันก็ซ้ำกับ official repository แต่เวอร์ชันสดใหม่กว่าแน่นอน :)

  • em-panel-applet
  • gdictthai
  • gruler
  • leafpad
  • libimage-exiftool-perl
  • rrs
  • ufraw

เครดิตมรณะ

เสะคิเนะ โชโกะ หายตัวไปอย่างไร้ร่องรอย คู่หมั้นหมาดๆ ของเธอขอให้ ฮมมะ ชุนสึเกะ ซึ่งเป็นญาติห่างๆ ช่วยตามหา ฮมมะเป็นตำรวจกองปราบ ถึงแม้ตอนนี้จะอยู่ระหว่างพักฟื้นจากการถูกยิงขณะจับกุมคนร้าย แต่ก็ยากที่เขาจะปฏิเสธ โชโกะหายตัวไปหลังจากคู่หมั้นของเธอพบว่าเธอเป็นบุคคลล้มละลาย หลักฐานเบื้องต้นเพียงอย่างเดียวที่มีอยู่คือจดหมายจากสำนักงานทนายความแจ้งเจ้าหนี้ของโชโกะว่าเธอเป็นบุคคลล้มละลาย .. เป็นเพราะคู่หมั้นเธอรู้ว่าเธอล้มละลายงั้นหรือที่ทำให้เธอหายตัวไป ? เธอหายไปไหน ทำไมแทบไม่มีใครรู้ข้อมูลส่วนตัวของเธอเลย ฮมมะพบว่าการหาข้อมูลของโชโกะนั้นยากเย็นเสียเหลือเกิน จริงๆ แล้วเธอเป็นใครกันแน่ ?

‘เครดิตมรณะ’ แปลมาจากเรื่อง Ka Sha (火車 – 火 = ไฟ, 車 = รถ พาหนะ ล้อ) ของมิยาเบะ มิยูกิ เป็นหนังสือของ Nation Books ออกวางขายก่อน ‘เหตุที่ฆ่า’ เล็กน้อย มีคุณ ฤทัยวรรณ เกษสกุล เป็นผู้แปล สองเรื่องนี้มีอะไรบางอย่างคล้ายคลึงกันอยู่ เหมือนจะย้ำคำถามที่ว่าจริงๆ แล้ว ‘อดีต’ หรือ ‘ตัวตน’ ของคนๆ หนึ่งนั้นคืออะไร ?

เล่มนี้อ่านจบต่อจาก เหตุที่ฆ่า ช่วงไป สิกขิม ภูฏาน .. เช่นเคย มิยาเบะ มิยูกิ ยังคงเสนองานในแบบฉบับของเธออันเป็นเอกลักษณ์เฉพาะตัว สำหรับเรื่องนี้ใช้โครงของการสืบหาตัวละครที่สาบสูญ และอาศัยข้อมูลในการสืบหาในการเผยตัวตนของโชโกะทีละน้อยๆ ชวนให้พลิกหน้าติดตามไปจนจบเล่มนั่นแหละถึงจะวางได้ :)

Ayuthaya + Bangkok

ไปเที่ยวอยุธยาช่วงวันหยุดต้นเดือน เอารูปลงห้องภาพตั้งนานแล้วล่ะ แต่ไม่ได้ blog ไว้ ..

[nggallery id=10]
สองวันต่อมา เที่ยวกรุงเทพฯ .. เกาะรัตนโกสินทร์

[nggallery id=60]
ไปแล้วก็อยากไปอีก .. :D

QEMU Virtualization

Full virtualization

ในที่สุด QEMU ก็ทำ full virtualization เสียที เร็วขึ้นเป็นกองเลย .. โหลด โหลด qemu >= 0.8.1 + kqemu >= 1.3.0pre7 มาก่อน จากนั้นก็มา build กัน สำหรับบน debian/ubuntu ลง build-essential + gcc 3.x + libsdl-dev ไว้ก่อน ขาดเหลืออะไรก็หามาใส่ให้ครบๆ ละกัน จากนั้นก็

tar -xzf  qemu-0.8.1.tar.gz
cd qemu-0.8.1
./configure --cc=gcc-3.4
make
sudo make install

ใส่ออปชันนิดหน่อย ให้ใช้ gcc 3.x คอมไพล์ เพราะ QEMU คอมไพล์กับ gcc 4 แล้วมีปัญหา (QEMU จะเตือนถ้าพยายามใช้ gcc 4.x)

เสร็จเรียบร้อย ทีนี้ก็เป็นคิวของ kqemu .. อ่อมันเป็นเคอร์เนลมอดูล อาจจะต้องลง kernel-header ด้วยนะ

tar -xzf kqemu-1.3.0pre7.tar.gz
cd kqemu-1.3.0pre7
./configure
make
sudo make install

อ่อ ไม่ต้องแปลกใจว่าทำไมไม่ใช้ --cc=gcc-3.x เพราะ keqmu จะคอมไพล์เป็นเคอร์เนลมอดูล เวลาจะคอมไพล์ควรจะใช้ gcc ตัวเดียวกับเคอร์เนล ไม่ใช่ตัวเดียวกับ qemu .. ทีนี้ก็

$ sudo modprobe kqemu major=0

อาจจะต้อง chmod เล็กน้อย

$ sudo chmod 666 /dev/kqemu

ทีนี้ก็ใช้ virtualization ได้แล้ว โดยใส่ -kernel-kqemu

$ qemu -kernel-kqemu -hda winxp.img

แน่นอนพอเป็น virtualization host OS กับ guest OS จะต้องรันบนแพล็ตฟอร์มเดียวกัน และตอนนี้ QEMU virtualization ไม่ได้สนับสนุน OS ทุกตัว โดยเฉพาะตัวเก่าๆ .. ที่ลองใช้งานผ่าน virtualization ได้ก็มี Windows 2000/XP, Ubuntu 5.10, Fedora Core 2, FreeBSD 4.11 OS ที่ใหม่กว่านี้น่าจะใช้ virtualization ได้ทุกตัว

ทดสอบหยาบๆ บูต OS หลายๆ ตัวบน peorth (Pentium III Mobile 1 GHz) เทียบระหว่างใช้ kqemu เฉยๆ (native memory management) กับ virtualization ก็ได้ผลตามตาราง (หน่วยเป็นวินาที)

Guest OS kqemu virtualization
Windows 2000 63 39
Windows XP 100+ 40
Ubuntu 5.10 204 80
FreeBSD 4.11 10 8

มีข้อสังเกตว่าเวลารัน qemu ปกติจะเห็น CPUID เป็น Pentium II ส่วน virtualization จะเห็น CPUID เป็น CPU ของเครื่องเลย .. ที่พบอีกอย่างคือผลของการปรับ real-time clock frequency .. qemu แนะนำว่าให้ใช้เคอร์เนล 2.6 หรือตั้ง max-user-freq = 1024 พอลองตั้งดูปรากฏว่าลินุกซ์กับบีเอสดีทำงานเร็วขึ้น ในขณะที่ Windows ช้าลงไปมาก โดยเฉพาะ Windows 2000 นั่นแทบบูตไม่ขึ้น และในทางตรงข้าม ถ้าใช้ max-user-freq เป็นค่า default (64) ลินุกซ์ช้าลงเล็กน้อย ส่วน Windows ทำงานเร็วกว่าเดิมเยอะจนเห็นได้ชัด … YMMV

Overlay Image

QEMU ทำ overlay image ได้ด้วยนะ .. หมายความว่าใช้ image ตัวนึงเป็น base ขณะทำงานถ้ามีการบันทึกข้อมูลที่ต่างไปจาก base จะบันทึกเก็บลง overlay image แทน เหมาะมากสำหรับใครที่ต้องการทดลองอะไรแผลงๆ (e.g. penetration test, virus/malware test) เพราะ base image จะคงเดิมไปตลอด ถ้าใช้จนระบบเละเทะก็ลบ overlay image ทิ้งแล้วสร้างใหม่ก็จะได้ระบบเฟรชๆ กลับมาโดยไม่ต้องติดตั้งกันใหม่ หรือจะทำ overlay image หลายๆ สำเนาจะได้จำลองเครื่องหลายๆ เครื่องพร้อมกันโดยไม่ต้องใช้ image โตๆ ก็ได้ .. แจ่มแมวมั่กๆ :D … วิธีสร้าง overlay image ก็ไม่มีอะไรยาก

$ qemu-img create -b winxp.img -f qcow winxp.ovl

ทีนี้เวลาทำงานก็โหลด overlay image แทน

$ qemu -kernel-kqemu -hda winxp.ovl

Networking

เมื่อเทียบกับเวอร์ชัน 0.7 กว่าๆ แล้ว QEMU รุ่นปัจจุบันจัดการระบบเครือข่ายได้ง่ายขึ้นและหลากหลายขึ้นเยอะ .. โดยปริยาย QEMU จะจำลอง DHCP, DNS, SMB server ให้ในตัวพร้อมกับ Firewall/NAT ให้เรียบร้อย guest OS บูตมาก็ใช้งานอินเทอร์เน็ตได้เลย โดย QEMU กำหนดให้ Firewall/NAT/DHCP ใช้ไอพีแอดเดรส 10.0.2.2 ส่วน DNS กับ SMB ใช้ไอพีแอดเดรส 10.0.2.3 และ 10.0.2.4 ตามลำดับ

กรณีที่ต้องการให้ host OS สามารถสื่อสารกับ guest OS ก็มี TAP interface เชื่อมได้

$ sudo modprobe tun
$ sudo chmod 666 /dev/net/tun
$ qemu -kernel-kqemu -net nic -net tap -hda freebsd6.ovl

บรรทัดแรกโหลดเคอร์เนลมอดูล tun สำหรับอินเทอร์เฟซ TUN/TAP จากนั้นก็ตั้ง permission เพื่อให้ user ใช้งาน TUN/TAP ได้ สุดท้าย เรียก qemu โดยใช้ -net nic (emulate NIC) และ -net tap .. อินเทอร์เฟซ tap0 บน host OS จะเชื่อมอยู่บน VLAN เดียวกันกับ emulated NIC ใน guest OS ตั้ง IP ให้อยู่ในเครือข่ายเดียวกันก็ติดต่อกันได้ .. QEMU ใช้สคริปต์ /etc/qemu-ifup คอนฟิก tap0 โหลดสคริปต์ได้จาก linux-test-x.x.x.tar.gz ถ้าไม่อยากโหลดไฟล์ใหญ่ๆ จะเขียนสคริปต์เองก็ได้

#!/bin/sh
sudo /sbin/ifconfig $1 192.168.0.1

สคริปต์นี้จะสร้างอินเทอร์เฟซ tapN และกำหนดไอพีแอดเดรส เป็น 192.168.0.1/24 ส่วนใน guest OS ตั้งไอพีแอดเดรสเป็น 192.168.0.x/24 ไอพีแอดเดรส 192.168.0.1 และ .2 ก็จะรับส่งข้อมูลหากันได้ .. เรื่อง network ของ QEMU ค่อนข้างยาว ถ้ามีโอกาสไว้ค่อยลงรายละเอียดกัน

ทิปเล็กน้อย

เวลาติดตั้ง Windows 2000 บน qemu ต้องใส่ออปชัน -win2k-hack ไปด้วย และถ้าจะติดตั้ง Windows 2000 หรือ XP ห้ามใช้ -kernel-kqemu ตอนที่ติดตั้งเพราะมันจะ BSOD (ติดตั้งให้เสร็จแล้วค่อยใช้ได้) ทั้ง Windows 2000 และ XP ขณะติดตั้งให้ขยับเมาส์ไปๆ มาๆ เรื่อยๆ หรือถ้ามีหน้าต่างแสดงผลก็ให้ลาก ไปๆ มาๆ ไม่งั้นเวลาติดตั้งไปเรื่อยๆ สักพักมันจะนิ่งไปเลย ไม่แฮงค์ ไม่แครช ไม่กินซีพียู หน้าจออัปเดตเรื่อยๆ แต่ไม่ติดตั้งต่อซะงั้น (ประหลาด :P) ..

ถ้าขี้เกียจ chmod 666 /dev/kqemu ทุกครั้ง เดิมใน Ubuntu จะเพิ่ม rule ใน /etc/udev/permission.d/ ตอนนี้มันไม่มีแล้ว ให้สร้างไฟล์ /etc/udev/rules.d/50-kqemu.rules แทน ตามนี้

# kqemu
KERNEL="kqemu", NAME="%k", MODE="0666"

ทีนี้เวลา modprobe kqemu udev จะตั้ง permission เป็น 666 ให้อัตโนมัติ ไม่ต้อง chmod เอง

QEMU เฉพาะเวอร์ชัน 0.8.1 ที่ทดสอบก็เร็วกว่า 0.7 ที่เคยใช้พอสมควรแล้ว พอทำ full virtualization เข้าไปอีกก็ทำงานได้เร็วใกล้ native มากขึ้นไปอีก น่าใช้ขึ้นอีกเยอะ :)

Scanning AP and Orinoco-based WIFI

WiFi ที่ใช้ชิป Orinoco/Hermes หลังจาก monitor mode ได้ ก็ทำ scanning หา access point ได้พักนึงแล้ว (น่าจะราวๆ kernel >= 2.6.14 หรือ 2.6.15) โดยใช้คำสั่ง

# iwlist eth1 scanning
eth1      Scan completed :
          Cell 01 - Address: 00:80:C8:AD:1A:8D
                    ESSID:"CoE_Office"
                    Mode:Master
                    Frequency:2.437 GHz (Channel 6)
                    Signal level:-36 dBm  Noise level:-92 dBm
                    Encryption key:off
          Cell 02 - Address: 00:0B:0E:1D:82:00
                    ESSID:"kku-wifi"
                    Mode:Master
                    Frequency:2.462 GHz (Channel 11)
                    Signal level:-63 dBm  Noise level:-85 dBm
                    Encryption key:off
          Cell 03 - Address: 00:0B:0E:1D:82:02
                    ESSID:"kku-wifi-s"
                    Mode:Master
                    Frequency:2.462 GHz (Channel 11)
                    Signal level:-63 dBm  Noise level:-85 dBm
                    Encryption key:on
...

ก่อนจะ scan อาจจะต้อง

# iwconfig eth1 essid off

ซะก่อน .. ไม่งั้นอาจจะ scan ไม่เจอ หรือเจอแค่ตัวที่ associate อยู่ตัวเดียว

ผีหลอก!

แก๊งค์แมวๆ โดนผี(เสื้อ)หลอกไปถ่ายรูป ที่ สวนผีเสื้อ-สวนรถไฟ เมื่อปลายเดือนที่แล้ว เป็นที่สนุกสนาน :D

[nggallery id=59]

/me .. รูปลงไว้นานแล้วแหละแต่เพิ่งจะมา blog .. :P

V-Gear TalkCam

ที่บ้านมี v-gear talkcam อยู่ตัวนึง เลยเอามาลองใช้กับลินุกซ์ซักหน่อย .. เสียบสาย USB ปุ๊บ .. เงียบ .. สงสัยต้องออกแรงสักหน่อย เริ่มจาก lsusb ก็เห็นว่า

Bus 001 Device 003: ID 0ac8:0302 Z-Star Microelectronics Corp. ...

เอา ID ไปกูเกิ้ล ตามด้วยคำว่า linux .. เจอแวบๆ ว่าใช้ spca5xx ได้ อะฮ้า โหลดเลยครับ.. spca5xx คอมไพล์เป็นเคอร์เนลมอดูลได้เลย ลง kernel-header น่าจะพอ ไม่ต้องลงเคอร์เนลซอร์สมาแพตช์

เอาล่ะ ลงมือได้

$ tar -xzf spca5xx-20060501.tar.gz
$ make
$ sudo make install

เรียบร้อยแล้วก็ทดลองใช้งานกัน

$ sudo modprobe spca5xx

ไฟ V-Gear TalkCam ติดแล้ว … เปิด ekiga คลิกที่กล้อง ภาพก็ปรากฏ :D .. ใครจะซื้อกล้องรุ่นนี้มาใช้ก็อุ่นใจได้ละ :)

Good Bye Apache !

อัปเดตพอร์ตบน FreeBSD วันนี้ ปรากฏว่า mod_php4/5 มันหายไปแล้ว .. เช็ค /usr/ports/UPDATING ก็พบว่า มันโดน remove ออกไปจากพอร์ตจริงๆ เพราะ maintainer ต้องการ unify php4/5 ที่แตกไปหลายแพ็คเกจให้เหลือ แค่ php4/5 เพื่อตัดปัญหาทางเทคนิคบางอย่าง และลดภาระการดูแล

เลยได้ pkg_delete mod_php5 และ php5-extensions อีกกระบุงใหญ่ออกไป แล้วค่อยไปติดตั้ง lang/php5 แทน .. จริงๆ ใน make config ของ php5 สามารถเลือกคอมไพล์ apache module ก็ได้ แต่เห็นค่าปริยายมี cli + cgi และสนับสนุน fast-cgi ก็น่าจะลองดูสักหน่อย .. หลังจากติดตั้ง php5 แล้วค่อยมาติดตั้ง lang/php5-extensions ตาม

มาคิดอีกที ถ้าใช้ fast-cgi ทำไมต้องใช้ apache ด้วยล่ะเนี่ยะ (- -)a .. โรคชอบ mini ก็กลับมาอีก เว็บเซิร์ฟเวอร์เบาๆ มีให้ใช้หลายตัว e.g. thttpd, boa, lighttpd .. เห็น lighttpd โฆษณาว่า เล็ก เร็ว ปลอดภัย ฟีเจอร์ก็พอดีๆ กับที่ต้องการใช้ (e.g. userdir, vhost, fast-cgi, IPv6) กูเกิ้ลดูแล้วเรื่อง troubleshoot ก็พอจะอุ่นใจได้ .. ตัดสินใจ portinstall lighttpd ซะ .. คอนฟิกไม่ค่อยคุ้นแต่ก็ไม่ยากอะไร เสร็จสรรพก็ pkd_delete apache ออก .. ช่วงนี้ก็ลองใช้ lighttpd ดูสักพัก อย่างน้อยเวลาอัปเกรดพอร์ตก็ไม่ต้องคอมไพล์ apache ใหม่ครั้งละนานๆ :P