แสดงบทความที่มีป้ายกำกับ ลินุกซ์ แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ ลินุกซ์ แสดงบทความทั้งหมด

วันศุกร์ที่ 19 กันยายน พ.ศ. 2551

Linux Virtualization

3-4 คืนมานี้สนุกกับการทดลองเล่นกับ virtualization เพราะมีโอกาสได้ลองกับ server ขนาด quadcore 2 CPU ก่อนนี้ใช้ Linux Vserver อยู่แล้ว และยังใช้งานจริงถึงปัจจุบัน และคิดว่าที่ดีกว่าคือ OpenVZ อย่างน้อยมันกำหนด quota ต่าง ๆ ได้ดีกว่า เช่น CPU, memory, disk quota สามารถสร้าง template ของ guest os ง่าย ดูแล้วเหมาะมากที่จะนำไปให้บริการ VPS

OpenVZ มีข้อดีแบบเดียวกับ Linux Vserver คือไม่ได้กันเนื้อที่ disk และ memory แยกออกมาจาก host OS แบบขาดเลยเหมือนอันอื่น แต่เป็นลักษณะการแชร์กัน เสมือนอยู่บนระบบเดียวกันนั่นแหละ disk image ก็ไม่ต้องสร้าง เก็บ quest OS ไว้ใน directory อันหนึ่ง ทำให้ disk space ก็แชร์กัน ซึ่งดู ๆ แล้วก็คล้าย ๆ กับการใช้ chroot เลย แต่มันมีอะไรลึกซื้งกว่านั้นเยอะ ข้อจำกัดของ Vserver กับ OpenVZ มีแค่ว่าต้องเป็น Linux ด้วยกันเท่านั้นเอง อาจจะต่าง distro กันได้ เรื่อง Vserver กับ OpenVZ ไว้จะเขียนโดยละเอียดอีกที

อีกอันที่สนุกมากคือ KVM ที่มีข้อดีตรงใช้ความสามารถของ virtualization technology ที่มีใน CPU รุ่นใหม่ ๆ ทั้ง Intel และ AMD ทำให้ทำงานได้เร็วมาก โดย KVM นั้นมีส่วนที่เป็น kernel module และส่วนที่เป็น user space ซึ่งอันหลักก็ต่อยอดมาจาก qemu ที่มีชื่อเสียงอยู่ก่อนแล้ว ถ้าใช้ qemu เป็น ก็ใช้ KVM ไม่ยากเลย ซึ่ง KVM ก็ทำให้เป็นไปได้ที่จะมี Windows Server รันอยู่ใน Linux Server อีกทีได้

เรื่องที่ยากหน่อยคือการทำ network interface bridge ซึ่งถึงตอนนี้ก็ยังทำไม่ได้ ลองอ่านจากในเน็ตหลาย ๆ ที่แล้ว เลยต้องเลี่ยงทำ network ภายใน แล้วใช้ iptables เปลี่ยนทางของข้อมูลแทน

ส่วน XEN นี่ยังไม่มีโอกาสได้ลองซักที ไว้ว่าง ๆ จะลองดูหน่อย

วันพุธที่ 2 กรกฎาคม พ.ศ. 2551

Installing Debian Etch with 256MB USB Memory Stick

มีครั้งหนึ่งผมได้รับโจทย์ให้ติดตั้ง server โดยที่ server ที่จะซื้อใหม่นั้นไม่มี cd-rom มาด้วย เข้าใจว่าเป็นเหตุผลด้านราคา ซึ่งในทางปฏิบัติก็คิดว่า server ทุกตัว คงได้ใช้ cd-rom เฉพาะตอนติดตั้ง และตอนอัพเกรด หรือแก้ไขปัญหาต่าง ๆ เท่านั้น นอกนั้นก็ไม่ได้ใช้เลย จึงไม่จำเป็นแล้วที่ server จะมี cd-rom ทีนี้ปัญหาจึงเป็นว่า จะติดตั้ง Debian โดยไม่ใช้ cd-rom ได้อย่างไร คิดแบบเร็ว ๆ ก็คือใช้ USB memory stick ไงล่ะ

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

  1. แน่นอนต้องมี USB memory stick ก่อน ส่วนความจุนั้น ขึ้นอยู่กับว่าเราอยากใส่ระบบติดตั้งแบบไหน ผมกะว่าจะติดตั้งแค่แบบ netinst ซึ่งตัว iso มันแค่ 150 MB เอง ดังนั้น USB memory stick ตัวเก่า ๆ 256MB ของผม น่าจะได้ใช้ประโยชน์ก็คราวนี้แหละ และก็ถ้ามีข้อมูลที่ต้องการใช้อยู่ ก็คัดลอกออกจาก USB memory stick เสียให้เรียบร้อย จากนั้นก็ลองเช็คนิดนึงว่า USB memory stick ของเราเสียบที่ช่อง usb แล้วจะเห็นเป็น device อะไร ปกติจะเห็นเป็น /dev/sda แต่หลัง ๆ ก็ไม่แน่ เพราะถ้าฮาร์ดดิสก์ใช้ SCSI (คงน้อย) หรือ S-ATA มันจะใช้ sda ไปแล้ว ซึ่งคงจะเห็น USB เป็น sdb หรือ sdc หรืออื่น ๆ แทน ดังนั้น ในขั้นตอนต่อ ๆ ไปผมจะใช้ /dev/sdX แทนนะครับ ให้เปลี่ยน X เป็นตัวที่ถูกต้องต่อไป

  2. แบ่งพาร์ทิชันใหม่ เนื่องจากเดิมนั้น เจ้า USB memory stick ของผมเป็นแบบ partitionless คือไม่มีการแบ่งพาร์ทิชัน แล้วใช้ทั้งตัวเป็นที่เก็บข้อมูลเลย เวลาใช้บนลินุกซ์ก็จะเมานท์ /dev/sdX มาใช้เลย ไม่ได้เป็น sdX1
    โดยการแบ่งจะใช้คำสั่ง dd เพื่อล้าง sector แรกก่อน และใช้ fdisk เพื่อสร้างพาร์ทิชัน โดย
    # dd if=/dev/zero of=/dev/sdX bs=512 count=1
    # fdisk /dev/sdX

    กด n (สร้าง partition)
    กด p (เลือก primary partition)
    กด 1 (เลือก partition ที่ 1)
    กด enter เฉย ๆ เพื่อเริ่มจาก cylinder แรก
    กด enter เฉย ๆ เพื่อสิ้นสุดที่ cylinder สุดท้าย
    กด a เพื่อกำหนดให้ partition บูตได้
    กด 1 กำหนดให้บูตจาก partition 1
    กด w เพื่อบันทึกและออกจาก fdisk

  3. สร้าง file system
    # mkdosfs /dev/sdX1

    คำสั่ง mkdosfs ถ้าไม่มี ให้ติดตั้ง dosfstools ก่อนโดย apt-get install dosfstools (ปกติคิดว่ามีอยู่แล้วนะ)

  4. ติดตั้ง syslinux สำหรับทำหน้าที่เป็น boot loader
    # apt-get install mtools syslinux
    # syslinux /dev/sdX1
  5. เมานท์ USB memory stick ไปที่ตำแหน่งชั่วคราวซักที่หนึ่งก่อน
    # mkdir /mnt/tmp
    # mount /dev/sdX1 /mnt/tmp

    จะเห็นแฟ้ม ldlinux.sys อยู่ในนี้แล้ว ไม่ต้องลบหรือทำอะไรกับมันนะครับ ตัวนี้เป็นส่วนหนึ่งของ boot loader

  6. ดาวน์โหลดไฟล์ vmlinuz และ initrd.gz จาก http://mirror.in.th/debian/dists/Debian4.0r3/main/installer-amd64/current/images/hd-media/ ไปเก็บใน /mnt/tmp (รุ่นอื่น ๆ ก็เลือกเอาตามความเหมาะสมนะครับ ณ ปัจจุบันรุ่นที่ stable คือ 4.0r3 และผมก็เลือกติดตั้งเป็นแบบ 64bit ซึ่ง processor ของ server ใหม่ ๆ ในปัจจุบันก็สนับสนุนหมดแล้ว ยกเว้นจะเก่า ๆ จริง ๆ ก็ใช้ i386 แทน)

  7. สร้างแฟ้ม syslinux.cfg ใน /mnt/tmp โดยมีเนื้อหาดังนี้
    default vmlinuz
    append initrd=initrd.gz
  8. ดาวน์โหลดไฟล์ ISO image ตัวติดตั้ง debian จาก http://mirror.in.th/debian_iso/4.0_r3/amd64/iso-cd/ ผมเลือกแบบ netinst ด้วยเหตุผลเรื่องขนาด ดังนั้นจึงเลือกไฟล์ debian-40r3-amd64-netinst.iso แล้วนำไปใส่ไว้ที่ /mnt/tmp เช่นกัน ถ้า USB memory stick ใหญ่กว่านี้เป็น 1GB ก็ดาวน์โหลดแผ่นติดตั้งแผ่นแรกมาลงก็ได้ หรือถ้าน้อยกว่านี้ เช่น 64MB ก็เลือกแบบ businesscard ก็ได้

  9. unmount แล้วนำไปทดลองบูตดูได้เลย
    # umount /mnt/tmp

วันอังคารที่ 13 พฤษภาคม พ.ศ. 2551

Thai Font Tuning in Hardy 1

ใน Ubuntu Hardy (8.04) มีฟอนต์ไทยใหม่มาให้ใช้ 3 ตัว คือ Waree, Umpush และ Sawasdee โดยเฉพาะ Waree นั้นถูกกำหนดให้เป็นฟอนต์ปริยายแทน Loma แล้ว ดังนั้นเมื่อติดตั้งครั้งแรกจะเป็นหน้าตาฟอนต์แปลกไปไม่คุ้นตา ก็ด้วยเหตุนี้นี่เอง

ในตอนแรกนี้จะปรับแต่งฟอนต์เพียงเล็กน้อย โดยยังคงใช้ Waree เหมือนเดิม ก่อนอื่นมาดูก่อนว่าปัญหาที่เราจะพบคืออะไร

1-default

ดูกันใกล้ ๆ

1-default-1 1-default-2

นี่คือปัญหาที่เราจะพบเมื่อติดตั้ง Hardy สังเกตว่าตัวอักษรขนาดเล็ก หัวจะหายบ้าง รูตรงหัวตันบ้าง รูปทรงผิดเพี้ยนค่อนข้างมาก ส่วนตัวอักษรที่ใหญ่ขึ้นกลับมีปัญหาที่แปลกไปอีกแบบคือเส้นที่บาง ๆ จะหายไป สังเกตตรงประโยคตัวอย่าง

ปัญหานี้เกิดจาก โดยปกติแล้ว Hardy จะกำหนดให้ใช้ font hinting แบบ native คือเป็น hint ที่ฝังมากับฟอนต์เลย เช่นฟอนต์ Bitstream Vera ซึ่งจะแสดงได้สวยงาม คมชัดไม่เบลอในทุกขนาดตัวอักษร ส่วนฟอนต์ที่ไม่มี hint จะยังคงแสดงเบลอ ๆ เหมือนเดิม แต่ฟอนต์ Waree นั้นมี hint อยู่ด้วย แต่อย่างที่ทราบการดีว่าการทำ hint ให้สมบูรณ์นั้นยากมาก ฟอนต์ Waree จึงแสดงออกมาดีที่สุดได้แบบที่เห็น

ทางแก้แบบง่ายคือ ลดระดับของ hint ลงเหลือแค่ระดับ slight หรือ "นิดหน่อย" โดยเลือกเมนู "ระบบ" --> "ปรับแต่งพื้นโต๊ะ" --> "รูปโฉม" แล้วเลือกแท็บ "แบบอักษร" แล้วคลิกปุ่ม "รายละเอียด..." จากนั้นตั้งค่า Hinting เป็น "นิดหน่อย" ตามภาพ

2-font-render-details

ผลคือ

3-screen2

3-screen2-1 3-screen2-2

การตั้งระดับ Hint เป็น slight จะทำให้การเรนเดอร์ฟอนต์เน้นที่รูปทรงของฟอนต์มากกว่าความคมชัด ทำให้เห็นได้อย่างชัดเจนว่ารูปทรงของฟอนต์ถูกต้องสวยงาม แต่ก็มีความเบลอมากเช่นกัน และยังทำให้ฟอนต์ภาษาอังกฤษเบลอไปด้วย

สำหรับท่านที่พอใจกับการตั้งฟอนต์แบบนี้ก็หยุดได้เลยครับ แต่สำหรับผมแล้ว ผมต้องการมากกว่านั้น ผมอยากให้ตัวอักษรภาษาอังกฤษชัดเท่าที่มันจะชัดได้ ในขณะที่ภาษาไทยก็ไม่เพี้ยนถึงขั้นเส้นหาย หัวหาย

ทางออกคือ libfreetype ในปัจจุบันมี autohint ซึ่งเป็นวิธีการเรนเดอร์ฟอนต์โดยไม่ต้องพึ่ง hint ที่มาในตัวฟอนต์เอง แต่จะสร้าง hint อัตโนมัติ ซึ่งตัวหลัง ๆ นี่มันทำได้ดีมาก ๆ แต่เราจะใช้ autohint เฉพาะกับฟอนต์ที่เราต้องการ ในที่นี้คือฟอนต์ภาษาไทยเท่านั้น ฟอนต์ที่มี native hint ดี ๆ อย่าง Bitstream Vera เราจะไม่แตะ จะใช้ native hint เหมือนเดิม

ขั้นแรก สร้างแฟ้ม .fonts.conf ไว้ที่ home ของท่านเองโดยให้มีเนื้อหาดังนี้

<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
<match target="font">
<test name="family">
<string>Loma</string>
<string>Garuda</string>
<string>Norasi</string>
<string>Kinari</string>
<string>Purisa</string>
<string>TlwgMono</string>
<string>TlwgTypewriter</string>
<string>Waree</string>
<string>Umpush</string>
<string>Sawasdee</string>
</test>
<edit name="autohint" mode="assign"><bool>true</bool></edit>
</match>
</fontconfig>


จากนั้นให้ล็อกเอาท์ออกจากระบบ แล้วล็อกอินเข้ามาใหม่ แล้วตั้งค่าฟอนต์ให้เป็นตามภาพนี้

4-font-render-details-full

ผลลัพธ์สุดท้าย

5-screen3

5-screen3-1 5-screen3-2

จะเห็นว่าตัวอักษรภาษาอังกฤษมีความคมชัดเป็นปกติ ส่วนตัวไทยนั้นมีหัวหาง เส้นต่าง ๆ ครบถ้วน อ่านได้ชัดเจนดี มีเพี้ยนบ้างแต่น้อยมาก ๆ

เป็นอย่างไรครับ เห็นความงามของฟอนต์ Waree หรือยัง

วันเสาร์ที่ 26 เมษายน พ.ศ. 2551

เรื่องควรรู้ก่อนลง/อัพเกรดเป็น Hardy Heron

เมื่อวาน Ubuntu 8.04 Hardy Heron ออกอย่างเป็นทางการช่วงเย็น ๆ ในประเทศไทย ซึ่งอันที่จริง ผมก็ได้เอามาติดตั้งใช้งานจริง ตั้งแต่ออกเบต้าแล้ว และอัพเกรดมาเรื่อย ๆ

มีสิ่งที่คาดหวังไว้จำนวนหนึ่งกับ Hardy แต่ยังพบว่ายังไม่พร้อม อันเนื่องจาก Ubuntu กำหนดการออกรุ่นไว้ตามเวลาเป๊ะ ๆ ต่างจาก Debian ที่ออกเมื่อพร้อม จึงเป็นเรื่องปกติที่ Ubuntu รุ่น release อาจจะไม่ได้ทำงานได้ตามที่คาดหวังเสมอไป จึงขอเอาประสบการณ์ที่พบมาเล่าให้ฟัง
  1. Firefox รุ่นนี้ตั้งธงว่าจะใช้ Firefox 3.0 แต่ก็มีความล่าช้าที่โครงการ Mozilla เองซึ่งในที่สุดแล้วก็เสร็จไม่ทันแน่แล้ว ล่าสุด Firefox 3.0 กำหนดออกประมาณ มิ.ย. 51 ใน Hardy ตั้งใจจะใส่รุ่น 3.0pre แต่ก็ไม่ทัน ดังนั้นรุ่นที่ติดตั้งไปพร้อม Hardy คือ 3.0b5 ซึ่ง บอกตามตรงว่ายังไม่เสถียรพอ ใช้งานปกติ ยังมี crash ให้เห็นเป็นพัก ๆ วันละ 3-5 ครั้ง บางวันต้องถอยไปใช้ firefox-2 แทน แต่ก็อึดอัดกับข้อจำกัดบางอย่าง
    ทางออกทาง Hardy จะอัพเกรด Firefox ให้เรื่อย ๆ จนกระทั่งเป็น 3.0 ตัวเต็ม และอัพเกรด minor release ไปเรื่อย ๆ แต่นั่นก็ใช้เวลา อย่างเร็วก็รอรุ่น 3.0pre ซึ่งคงดีกว่านี้พอสมควร แต่ถ้าไม่ไหวจริง ๆ ก็ให้ติดตั้ง firefox-2 ใช้งานไปก่อนได้ ซึ่งเสถียรดีมาก ๆ
  2. Network Manager 0.6.6 ผมเจอปัญหาอันหนึ่งคือ ถ้าต่อเน็ตด้วย ppp ผ่านโทรศัพท์มือถือที่มี EDGE ไม่ว่าจะหมุนเองด้วยคำสั่ง pppd หรือผ่าน network manager applet สถานะของ network จะยังแสดงเป็น offline อยู่ ซึ่งคุณสมบัติหนึ่งของ network manager คือมันใช้ dbus ในการสื่อสารกับโปรแกรมอื่น ๆ ได้ ปัญหาคือ Firefox 3.0 ดันฉลาดเกิน ขอเช็คสถานะเน็ตเวิร์คกับ network manager ผ่านทาง dbus ทุกครั้งที่เปิดโปรแกรม ถ้าเน็ตเวิร์คไม่พร้อม มันจะปรับไปโหมด offline ให้อัตโนมัติ ทีนี้พอใช้ ppp ต่อเน็ต ก็ต้องคอยยกเลิก offline ทุกครั้งไป
    ปัญหานี้ Firefox ไม่รับว่าเป็นบั๊ก แต่โยนไปที่ network manager แทน ซึ่งการขยายขอบเขตการจัดการเน็ตเวิร์คไปถึง ppp นั้น จะอยู่ในแผนของรุ่น 0.7 ซึ่งก็ออกล่าช้าเช่นกัน คนพัฒนาอยู่ Red Hat ซึ่งจะออกมาให้ใช้ทัน Fedora 9 แต่กลับไม่ทันใช้ใน Hardy
    ทางออก มีวิธีเลี่ยงปัญหา โดยยกเลิกการ roaming การใช้ Lan แบบสาย แล้วตั้งให้ใช้ Lan แบบ manual ด้วย dhcp จะทำให้ network manager ไม่มีสถานะ offline อีกต่อไป (ผมใช้วิธีนี้อยู่) ส่วน network manager 0.7 จะไม่ถูกอัพเดทใน Hardy แต่คนดูแลแพกเกจรับรองว่า เมื่อรุ่น 0.7 ออก จะเตรียมไว้ให้ใช้ใน backports
  3. F-Spot ถูกใช้เป็นโปรแกรมหลักสำหรับจัดการรูปภาพในเครื่อง f-spot มีคุณสมบัติเด่น ๆ เรื่องการอัพโหลดรูปภาพไปยังบริการเก็บภาพบนอินเทอร์เน็ตหลายตัวเช่น flickr, picasaweb, gallery และอื่น ๆ อีก จำไม่ได้ละ ในด้านการใช้งานนั้น ดูจงใจให้เหมือน iPhotos ของ Mac ซึ่งก็ทำได้ดีทีเดียว แต่ปัญหาคือยังขาดคุณสมบัติอื่น ๆ ที่เคยมีใน gthumb ที่เป็นตัวหลักใน Ubuntu รุ่นก่อน ๆ เช่นการบราวซ์ดูภาพในโฟลเดอร์ที่ยังดูอืด ๆ แถมมันไม่เรียงลำดับมาให้ และเลือกให้เรียงไม่ได้ด้วย ทำให้เกือบจะไร้ประโยชน์ไปเลยทีเดียว ไม่มีการ prefetch ภาพต่อไปไว้ล่วงหน้า ทำให้ตอนดูภาพต่อไปต้องรอมันประมวลผลสักแป๊บนึงก่อน
    ทางออก ติดตั้งโปรแกรมตัวเก่งอย่าง gthumb หรือ gqview เถอะครับ สำหรับคนที่ชอบจัดภาพไว้ใน directory ด้วยตัวเองอย่างผม แล้วจะพบว่ามันสะดวกขึ้นเยอะเลย โดยส่วนตัวชอบ gqview มากกว่า เพราะเล็กและเร็วดี

วันพฤหัสบดีที่ 17 เมษายน พ.ศ. 2551

Suspend/Hibernate with ATI proprietary driver on Ubuntu Gutsy/Hardy

แล็ปท็อปที่ใช้อยู่นี้ ใช้ชิปแสดงผลเป็น ATI Radeon Xpress 200M ตอนที่ใช้ Ubuntu 7.04 (Feisty) นั้น สามารถ suspend/hibernate ได้ทันทีโดยไม่ต้องตั้งค่าอะไรเพิ่มเติม น่าประทับใจมาก แต่ไปเสียตรงเรื่อง driver ของ wireless ที่ผมใช้นั้นยังไม่เก่ง ตอนนั้นต้องหันไปพึ่ง wifi-radar แทน NetworkManager (บล็อกเก่า) พออัพเกรดมาเป็น 7.10 (Gutsy) ปัญหาเรื่อง wireless + NetworkManager หมดไป แต่มาตายเอาตรง suspend/hibernate กลับไม่ทำงาน คือจริง ๆ แล้วมัน suspend/hibernate ได้ แต่พอเรียกกลับมาก มันค้างไปเลย หน้าจอดำสนิท ต้องปิดแล้วเปิดใหม่เท่านั้น

ตอนแรกไม่รู้วิธีแก้ เลยต้องปิดฟังก์ชันการ supend และ hibernate ไป และต้องปิดเครื่องทุกครั้งที่ไม่ได้ใช้งาน ซึ่งไม่สะดวกเอามาก ๆ

เมื่อราว ๆ 15 ก.พ. 51 เลยลองหาวิธีแก้ดูซักตั้ง มั่ว ๆ ดูใน /etc/default/acpi-support แล้วสำเร็จ แต่ยังไม่ชัดเจนนักว่าเพราะคอนฟิกบรรทัดไหนแน่ หรือรวม ๆ กัน

คราวนี้มาติดตั้ง 8.04 (Hardy) ก็พบปัญหาเดิมอีก วันนี้เลยมาลองค้นหาข้อมูลในเน็ตดูอีกที พบอันนี้เข้า http://wiki.cchtml.com/index.php/Ubuntu_Gutsy_Installation_Guide#Suspend.2FHibernation_work_with_7.12 ตรง ๆ เลย ทำตามแล้วได้ทันที สรุปว่าให้แก้แฟ้ม /etc/default/acpi-support ดังนี้

SAVE_VBE_STATE=false
POST_VIDEO=false

ซึ่งเดิมมันเป็น true ทั้งคู่ แล้ว reboot เครื่อง หรือ sudo /etc/init.d/acpi-support restart ต่อไปก็ใช้ได้เลย

สำหรับผู้ที่ใช้ Gutsy ต้องติดตั้ง radeontool เพิ่มด้วยนะครับ ส่วนใน Hardy นั้นติดตั้งมาพร้อมแล้ว


วันอาทิตย์ที่ 13 เมษายน พ.ศ. 2551

My History

kamthorn@atec:~$ history|awk '{a[$2]++} END{for(i in a){printf "%5d\t%s\n",a[i],i}}'|sort -rn|head
122 ls
70 cd
59 sudo
21 ps
19 ssh
13 wget
13 find
13 aptitude
12 pppd
11 dpkg


เอามั่ง ตาม pphetra

วันพฤหัสบดีที่ 20 มีนาคม พ.ศ. 2551

Installing Ubuntu 8.04 20080318.1 (hardy)

ขณะที่กำลังเขียนนี้ กำลังติดตั้ง Ubuntu 8.04 20080318.1 อยู่ครับ โดยติดตั้งลงอีกพาร์ทิชัน แต่ติดตั้งตัว 32bit ไปก่อน ไว้ออกตัวจริง ค่อยอัปเกรด 7.04 64bit เป็นตัวเต็มแล้วกัน ระหว่างรอเลยมานั่ง blog ที่เครื่องคนอื่นไปพลาง

พาร์ทิชันที่ติดตั้งนั้น เดิมเป็นพาร์ทิชันวินโดวส์ XP 64bit รุ่นทดลอง ขอไลเซนส์ได้จาก Microsoft ครับ ดาวน์โหลดฟรี ใช้ได้ประมาณ 4 เดือนมั๊ง ตอนนั้นเอามาลงเพราะพึ่งได้โน๊ตบุ๊คตัวนี้มาใหม่ ๆ เป็น AMD64 เลยบ้าหาอะไรที่เป็น 64bit มาลง ทั้ง Windowx XP x64 และ Ubuntu for amd64 ซึ่งจริง ๆ ก็ไม่ค่อยได้บูตเข้ามาใช้เท่าไหร่ พอไม่ค่อยได้บูตเข้าวินโดวส์ทำให้ทุกครั้งที่เข้า จะน่าเบื่อมาก เพราะมันจะต้องมีอะไรมาอัปเดตเยอะแยะไปหมดสิน่า ทั้งข้อมูลไวรัส ทั้งอัปเดตจากไมโครซอฟท์เอง สุดท้ายก็ปล่อยให้ไลเซนส์หมดอายุไป ทิ้งพาร์ทิชันขนาด 30G ไว้ไม่ได้ใช้งานมาตั้งนาน

ตอนแรกไม่ได้คิดว่าจะเอามาลงเร็วขนาดนี้ แต่วันนี้เจอปัญหาใน Ubuntu ตัวเดิม เหมือนจะมีโปรแกรมบางตัว หรืออาจจะ kernel เอง ที่ถือครองหน่วยความจำเยอะเกินไป แบบบูตมาปุ๊บ RAM หายไป 700 กว่าเม็ก ซึ่งปกติมันจะใช้ประมาณ 300MB เมื่อบูตเสร็จ (แรม 1GB ครับ) แล้ว swap ก็จะทำงานตลอด ทำอะไรไม่ได้นอกจากบูตใหม่ อาการนี้จะเป็นบ่อย ถ้าปล่อยให้ notebook เข้าสู่ sleep mode อีกประการคือรู้สึกว่า Ubuntu 7.10 มันช้ากว่ารุ่นก่อน ๆ นี้อย่างเห็นได้ชัด ไม่ได้คิดไปเอง แต่ MrChoke ก็รู้สึกแบบเดียวกัน วันนี้ MrChoke ลง Debian (Lenny) บอกว่าเร็วกว่าเห็น ๆ (ชักติดใจละสิ) ประการสุดท้ายคือ Ubuntu รุ่นนี้ใกล้เป็นเบต้าแล้ว คิดว่าน่าจะเสถียรพอ อย่างน้อยเอามาใช้งานจริง เพื่อช่วยกันหาบั๊กก่อนจะออกตัวเต็ม

ตอนนี้ติดตั้งใกล้เสร็จแล้ว ไว้ลองเล่นแล้วคงมีอะไรมาเล่าเพิ่มเติมครับ

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

ลอง minefield 3.0a8pre บน Fedora 7.90

ตั้งแต่มีข่าวว่า minefield 3.0a8pre สนับสนุนการตัดคำบนแพลตฟอร์มต่าง ได้แก่ Linux, Windows และ Macintosh เลยอยากลองบน Fedora บ้าง เพราะตอนนี้กำลังรำคาญเวลาเปิดเว็บภาษาไทย แล้วบน Fedora ยังไม่ตัดคำ

วิธีติดตั้ง

$ su -
# cd /opt
# wget http://ftp.mozilla.org/pub/mozilla.org/firefox/nightly/latest-trunk/firefox-3.0a8pre.en-US.linux-i686.tar.bz2
# tar xjvf firefox-3.0a8pre.en-US.linux-i686.tar.bz2
# rm firefox-3.0a8pre.en-US.linux-i686.tar.bz2


สร้าง icon บน panel โดย

  1. คลิกขวาตรง panel ที่ต้องการวางไอคอน แล้วเลือก "Add to Panel ..."

  2. เลือก "Custom Application Launcher" แล้วกด "Add"

  3. จะปรากฎ dialog นี้ ให้กรอกข้อมูลต่างๆ ลงไปตามตัวอย่าง
    Firefox Launcher Dialog

  4. สำหรับ icon ปกติมันจะใส่โดยอัตโนมัติเป็น icon ของ firefox สามารถเปลี่ยนเป็น icon ของ minefield ได้โดยคลิกที่ปุ่ม icon แล้วบราวซ์ไปที่ /opt/firefox/icons จากนั้นก็เลือก mozicon128.png จะได้ icon ดังภาพ

  5. กดปุ่ม Close เป็นอันเสร็จ



เวลาจะใช้ ให้ปิด firefox เดิม ทั้งหมดก่อน แล้วค่อยคลิก icon ใหม่นี้ มิฉะนั้นมันจะเปิดเพจใหม่ของ firefox เก่า ถ้าอยากเปิดคู่กันได้ ให้เพิ่ม -no-remote ต่อท้ายในช่อง Command หรือจะเรียกด้วย command line ก็สั่ง
$ /opt/firefox/firefox -no-remote


ผลการทำงานคือ สามารถตัดคำได้จริงๆ แถมยังแก้ปัญหาเรื่อง justify สำหรับ CTL ไปแล้วด้วย ดังตัวอย่าง
Thai Justify

หรือจะทดสอบที่หน้านี้ก็ได้ http://kamthorn.org/test/justify

นอกจากนี้ ยังสามารถเลือกติดตั้ง Swiftfox Trunk หรือ Swiftweasel Trunk ก็ได้ สองตัวนี้ก็คือ firefox เวอร์ชันคอมไพล์ใหม่ ให้ optimize กับ CPU รุ่นต่างๆ นั่นเอง

วันจันทร์ที่ 27 สิงหาคม พ.ศ. 2550

ตามหา Virtual Host Control Panel แบบ Open Source

ช่วงนี้ ยามว่างๆ จะตามหา control panel เจ๋งๆ อยู่ ก็พวก panel สำหรับให้บริการเว็บโฮสติ้งแบบ virtual host นั่นแหละ ทำนองเดียวกับพวก cPanel แต่เน้นที่เป็น open source และใช้บน debian gnu/linux (โดยเฉพาะ etch) ได้ และต้องใช้กับโฮสต์ที่บริการ PHP5 ได้ด้วย

เคยลอง gnupanel ไปทีนึง ไม่ค่อยประทับใจ โดยเฉพาะโค้ดแกะยากมาก ตั้งชื่อไฟล์เป็นภาษา spain อ่านไม่เข้าใจ comment ก็ภาษา spain อีก สุดท้ายก็เลิกใช้ เปลี่ยนไปใช้ ispconfig ก็ดูดีนะ แต่ยังไม่ถูกใจผู้ใช้ บอกว่าใช้ยากไป ไม่เหมือน panel อื่นๆ

หลายคนแนะนำ VHCS เข้าไปดูเว็บเค้าละ แต่ห่วงว่าจะใช้กับ PHP5 ได้หรือไม่ และอีกอย่างที่ห่วงคือ ซอฟต์แวร์ตัวนี้ไม่มีอัพเดทมาปีครึ่งแล้ว ไม่แน่ใจว่าอนาคตยังดีอยู่หรือไม่ และก็พึ่งไปพบตัวที่เป็น fork ของ VHCS อีก 2 ตัว คือ VHCP และ ISPCP แต่ยังไม่ออกตัวจริงทั้งคู่ แล้วก็อื่นๆ ก็มี WEB-CP กับ SysCP ตัวหลังนี่หน้าตาธรรมดา แต่มีคนใช้เยอะดีเหมือนกัน ดูค่อนข้าง stable ดี

เดี๋ยวขอไปลองให้หมดก่อน ค่อยมาตัดสินใจอีกที

วันพฤหัสบดีที่ 9 สิงหาคม พ.ศ. 2550

Setting up apache2-mpm-worker, mod-fcgid, php5-cgi on Debian Etch

เคยเจอปัญหาเว็บเซิร์ฟเวอร์เมื่อมีคนเข้าใช้เยอะๆ แล้วช้าลงมากๆ ไหม ทั้งๆ ที่ซีพียูก็แรง แรมก็มีไม่น้อย ปัญหามักจะเกิดขึ้นเมื่อเว็บเซิร์ฟเวอร์นั้นมี mod-php และบางครั้งมีไฟล์ static ใหญ่ๆ เช่นภาพถ่าย วิดีโอ ไฟล์พรีเซนต์ ไฟล์ดาวน์โหลดต่างๆ ให้ดาวน์โหลดผ่าน http

ปัญหามักเกิดจาก เมื่อเราใช้ mod-php ก็ต้องใช้ apache ที่ใช้ mpm-prefork ด้วย นั่นคือเมื่อมี connection เข้ามา apache ต้อง fork process เพื่อให้บริการ connection นั้นเป็นรายๆ ไป ปัญหาคือว่า mod-php ทำให้แต่ละ process มีขนาดใหญ่มาก ยิ่งเว็บแอ็พที่ใช้มีขนาดใหญ่ ยิ่งทำให้แต่ละ process ใหญ่เข้าไปอีก ปัญหาจะหนักขึ้น เมื่อต้องให้บริการดาวน์โหลดไฟล์ หรือมีรูปภาพจำนวนมากบนเว็บไซต์ด้วย เพราะแม้ว่าพวกนี้จะไม่ต้องการซีพียูในการประมวลผลมากนัก แต่การที่ apache ต้อง fork process มาเพื่อให้บริการไฟล์พวกนี้ ก็ทำให้ต้องเสีย memory มากขึ้นไปอีก ยิ่งเน็ตเวิร์คของไคลเอนต์ช้า ยิ่งทำให้ต้องใช้เวลาดาวน์โหลดนาน จะพบว่า จำนวน connection มีมากขึ้นเรื่อยๆ

วันพุธที่ 30 พฤษภาคม พ.ศ. 2550

ปัญหา ID3 tag ภาษาไทย

ปัญหาหนึ่งของการใช้ระบบปฏิบัติการลินุกซ์ที่ใช้เอ็นโค้ดดิ้งแบบยูนิโค้ด เช่นในดิสโตรทั่วไปในปัจจุบันก็คือ การถอดรหัสข้อมูลใน ID3 tag ในแฟ้ม mp3 โดยปัญหาคือ ซอฟต์แวร์ (เช่น totem, banshee ซึ่งล้วนแล้วแต่ใช้ gstreamer) อ่านข้อมูล ID3 tag ออกมาโดยเข้าใจว่าข้อมูลในนั้นเข้ารหัสด้วย ISO-8859-1 แล้วแปลงมาเป็น UTF-8 เพื่อแสดงผล ซึ่งทำให้แสดงเป็นรหัสที่ไม่ใช่ภาษาไทย

ปัญหานี้ไม่พบในแฟ้มประเภท ogg และ mp4 เนื่องจาก tag ในแฟ้ม ogg และ mp4 เป็นยูนิโค้ดอยู่แล้ว เพราะเกิดในยุคใหม่ ในขณะที่แฟ้ม mp3 เกิดนานแล้ว แรกๆ เลยต้องเลี่ยง ไปใช้ซอฟต์แวร์ที่กำหนดให้ระบุเอ็นโค้ดดิ้งได้ เช่น beep media player ไปก่อน

อย่างไรก็ตาม

วันพุธที่ 9 พฤษภาคม พ.ศ. 2550

TLE-Live

ช่วงนี้กระแส Live กำลังมาแรง ประกอบกับราคา usb drive ถูกลงมากๆ ล่าสุด ซื้อ 4 GB มาในราคา 1,1xx บาท เท่านั้น แม้ว่าจะไม่ใช่รุ่นที่อ่านเขียนได้เร็วนักก็เหอะ ได้มาวันแรกๆ ก็ลองกับ LinuxTLE 8.0 บนนั้นดู ก็ติดตั้งได้ บูตได้เหมือนฮาร์ดดิสก์ปกติ ติดที่ช้าหน่อยเท่านั้น โดยรวม ก็ยังไม่น่าประทับใจนัก

ทางแก้ก็คือ ใช้เทคโนโลยีของ embeded ช่วย คือการบีบอัด file system เพื่อให้ขนาดรวมเล็กลง ทำให้อัตราการอ่านข้อมูลดีขึ้น ก็เลยค้นหาดูว่ามีใครใช้เทคนิคอะไรใหม่ๆ บ้าง ก็ไปเจอ http://www.linux-live.org/ ซึ่งเค้าทำเพื่อใช้กับ slax โดยเฉพาะ แต่ก็มีความเป็นไปได้ที่จะใช้ได้กับดิสโตรใดๆ ด้วย เลยเอาสคริปต์นี้เป็นจุดเริ่มต้น

วันศุกร์ที่ 27 เมษายน พ.ศ. 2550

ใช้ flash plugin บน Ubuntu 64bit ด้วย nspluginwrapper

เคยกล่าวไปในครั้งที่แล้วว่า ลินุกซ์ 64bit ไม่สามารถเล่นแฟลชได้ตรงๆ เพราะไม่มี plugin flash แบบ 64bit สำหรับ firefox 64bit โดยทางออกแรกที่รู้ๆ กันคือ ติดตั้ง firefox 32bit คู่ขนานไปกับ firefox 64bit ด้วย แต่ยังมีทางออกอื่น ที่ผมก็พึ่งรู้ นั่นคือใช้ nspluginwrapper เพื่อทำให้ plugin 32bit ใช้กับ browser 64bit ได้

ดูวิธีการได้ที่นี่ http://plugindoc.mozdev.org/linux-amd64.html#nswrapper

ขอสรุปขั้นตอน ซึ่งปรับและลัดขั้นตอนมา ดังนี้

วันอาทิตย์ที่ 22 เมษายน พ.ศ. 2550

ลง Feisty ตัวเต็ม 64bit

ครั้งแรกที่ได้ notebook ATEC Vegus 285 มา เคยลง Ubuntu Dapper 64bit ไปแล้วครั้งหนึ่ง แต่ครั้งนั้นเฉยๆ ไม่รู้สึกว่าจะเร็วกว่าตรงไหน แถมใช้ java applet กับ flash ไม่ได้ด้วย เลยถอยกลับไปใช้ 32bit เหมือนเดิม และใช้มาจน feisty ออกนี่แหละ เลยคิดว่าจะลองใจแข็งใช้ 64bit อีกสักที เพราะตอนนี้ java ก็ใช้ 64bit ได้แล้ว เหลือแต่ flash นี่แหละ ก็กะว่าจะใช้ gnash ไปก่อน

ตอนลงก็เรียบร้อยดี notebook รุ่นนี้ใช้ ATI radeon xpress 200m ใช้ driver แบบ open source แล้วจะใช้ 3D ไม่ได้ เลยติดตั้ง restricted driver ด้วย restricted driver manager ก็ง่ายดี ไม่ต้องออกแรงเยอะเหมือนรุ่นก่อน รีบูตใหม่ก็ใช้ได้ทันที สามารถทดสอบความสามารถ 3D ได้ด้วยคำสั่ง glxgears และ fgl_glxgears

วันจันทร์ที่ 2 เมษายน พ.ศ. 2550

ลง Ubuntu 7.04 BETA (Feisty Fawn)

วันศุกร์ที่ 30 มี.ค. 50 ที่ผ่านมา ไปงานสัมนา จันทร์เอ๋ย Chantra ที่การบินไทย สุวรรณภูมิ ได้คุยกับมะระ ว่าอยากให้ feisty มันติดตั้งปุ๊บ ใช้ไทยได้พริ้วทันที ไม่อยากให้ติดขัดแบบ edgy ที่ผ่านมา อ่านบล็อกพี่เทพ แล้วคาดว่ารุ่นนี้น่าจะพริ้วอยากที่มะระต้องการ พอดีกับเปลี่ยนฮาร์ดดิสก์โน๊ตบุ๊กใหม่ เลยมาลง feisty ทดสอบเรื่องภาษาไทยเล่นๆ ดีกว่า

ไหนๆ ก็ลงแล้ว ก็ขอบันทึกไว้หน่อย ว่าทำอะไรไปบ้าง

วันอาทิตย์ที่ 18 มีนาคม พ.ศ. 2550

จะสลับ keyboard layout ด้วยแป้นไหนดี?

ในบอร์ด opentle มีการถกกันเรื่องการใช้แป้น accent grave สลับภาษาในลินุกซ์ทะเลกัน มองในแง่ดี นั่นคือเริ่มมีผู้ใช้หลายคนสนใจใช้ระบบปฏิบัติการลินุกซ์กันมากขึ้น โดยเฉพาะผู้ใช้ที่ใช้วินโดวส์อยู่ในปัจจุบัน แสดงว่าผู้ใช้ลินุกซ์เริ่มขยายจำนวน สุดท้ายลงเอยด้วยการที่ทีมพัฒนา ยอมเผยแพร่วิธีการตั้งให้ลินุกซ์ทะเล 8.0 และ Ubuntu สามารถเลือกแป้นสลับภาษาเป็นแป้น accent grave ได้ โดยสามารถทำได้โดยผู้ใช้ทั่วไปเพราะมร.โชคเตรียมแพ็กเกจและเขียนอธิบายขั้นตอนไว้อย่างละเอียด และยังอธิบายแบบลึกซึ้งหน่อยเผื่อใครจะเอาไปประยุกต์ใช้กับดิสโตรอื่น

อย่างไรก็ตามทีมพัฒนายังยืนยันว่า ไม่เห็นด้วยที่จะใช้แป้น accent grave ในการสลับภาษา

วันศุกร์ที่ 19 มกราคม พ.ศ. 2550

ปรับแต่ง OLPC ภาษาไทย (image-build-236)

ปรับปรุงจากของเดิม ปรับแต่ง OLPC ภาษาไทย (image-build-193)

  1. เพิ่มโลแคลภาษาไทย (th_TH.utf8), ตั้ง timezone โดยต่างจากของเดิมคือเพิ่ม --no-archive ตอน localedef เพราะเมื่อติดตั้งบน nand flash แล้วไม่สามารถเพิ่มโลแคลไทยลงใน archive ได้

    localedef --no-archive -f UTF-8 -i th_TH th_TH.utf8
    echo "LANG=th_TH.utf8" > /etc/sysconfig/i18n
    rm /etc/localtime
    ln -s /usr/share/zoneinfo/Asia/Bangkok /etc/localtime
    echo "CLOCKMODE=GMT" > /etc/sysconfig/clock


  2. เพิ่มบรรทัดต่อไปนี้เข้าไปที่แฟ้ม /usr/lib/xulrunner-1.8.0.4/defaults/pref/xulrunner.js

    pref("font.minimum-size.th", 11);
    pref("font.default.th", "sans-serif");
    pref("intl.accept_languages", "th,en-us,en");
    pref("intl.charset.default","TIS-620");

    สิ่งที่แก้จากเดิมคือลดขนาดฟอนต์ไทยลง จาก 13 เหลือ 11

  3. ปรับคอนฟิกแป้นพิมพ์ในแฟ้ม /etc/X11/xorg.conf ดังนี้

    Option "XkbLayout" "us,th"
    Option "XkbVariant" "olpc2,olpc,tis"
    Option "XkbOptions" "grp:rctrl_toggle"

    สิ่งที่เปลี่ยนไปจากเดิมคือ เปลี่ยนการสลับแป้นพิมพ์เป็น right control ซึ่งจริงๆ บนแป้นของแล็ปท็อปไม่มี แต่เราจะ map ปุ่มสลับภาษาให้เป็นปุ่ม right ctrl แทน ซึ่งจะในข้อต่อไป

  4. แก้ไขแฟ้ม /usr/share/olpc/keycodes/olpc-evdev ดังนี้
    หาบรรทัด

    <RCTL> = 105;

    แก้เป็น

    alias <RCTL> = <AB11>;

    โดยทุกครั้งที่บูตเครื่อง แฟ้มนี้จะถูกคัดลอกไปทับแฟ้ม /usr/share/X11/xkb/keycodes/evdev คงเพราะยังต้องการใช้แพกเกจเดียวกับ Fedora แต่ต้องการปรับแก้เพียงบางส่วน
    ผลที่เกิดจากการแก้ไขตรงนี้คือ AB11 หมายถึงปุ่มสลับไทยอังกฤษที่อยู่ใต้แป้น enter ถูก alias จาก RCTL ซึ่งก็คือปุ่ม right ctrl ทำให้การกดแป้นนี้ มีผลเท่ากับกดแป้น right ctrl ซึ่งในที่นี้จะทำให้สลับแป้นไทย-อังกฤษได้
    ถ้ามีการอัพเดทแพกเกจแล้วสลับแป้นไทยอังกฤษไม่ได้ แสดงว่าแฟ้มที่เราแก้ไข ถูกอัพเดททับ ให้แก้ไขโดยแก้แฟ้มนี้ใหม่อีกครั้ง

  5. ปรับลดค่า DPI เพื่อให้ฟอนต์มีขนาดเล็กลง โดยจากการทดลอง คิดว่าค่านี้ น่าจะลงตัวที่สุด โดยแก้แฟ้ม /etc/X11/xorg.conf
    หาบรรทัด

    DisplaySize 152 114

    แก้เป็น

    DisplaySize 240 180



บล็อกนี้จบเฉพาะส่วนที่เกี่ยวกับภาษาไทยและการแสดงผลก่อน เดี๋ยวมาต่อตอนหน้าครับ
กว่าจะคอนฟิกเสร็จ และเขียนบล็อกเสร็จ เค้าก็ออก image 239 มาซะแล้ว แต่คิดว่าคงยังไม่เปลี่ยนแปลงอะไรมากนักหรอกนะ รอนิ่งๆ เดี๋ยวโหลดมาทดสอบอีกสักรอบ

วันศุกร์ที่ 5 มกราคม พ.ศ. 2550

เดสก์ท็อปของฉัน

Kamthorn's Desktopอันเนื่องมาจาก Blognone Desktop Showcase 2007 เลยขอประเดิมบล็อกแรกของปี 2007 ด้วยภาพเดสก์ท็อปที่ใช้อยู่ทุกวันบน Ubuntu Edgy (6.10) ละกัน



ระบบปฏิบัติการ: Ubuntu Edgy (6.10)
ธีม: default
ฟอนต์: Dejavu + Loma (ซึ่งปรับแต่งด้วยวิธีการใน การปรับแต่งฟอนต์ไทยบน Ubuntu และ ปรับแต่งฟอนต์ไทยบน Ubuntu Part II

ดู SS คนอื่นแล้วอายๆ ชอบกล ของเราไม่ได้ปรับแต่งอะไรเลย แต่ก็โอเคแล้วละ ชอบสีน้ำตาลแบบนี้อยู่แล้ว (ใครจะว่าไม่สวยก็ตามเหอะ)

วันเสาร์ที่ 9 ธันวาคม พ.ศ. 2549

ปรับแต่ง OLPC ภาษาไทย (image-build-193)

จากที่เคยเขียนไว้ที่ บล็อกเดิม เกี่ยวกับการคอนฟิกให้แล็ปท็อป OLPC ให้สนับสนุนภาษาไทย ปัจจุบันใน build image หลังๆ ได้มีการนำแพกเกจไทยใส่ไว้แล้ว ขั้นตอนต่างๆ จึงสั้นลง เหลือเฉพาะที่จำเป็นต้องตั้งสำหรับประเทศไทยเท่านั้น ขอสรุปเป็น script คำสั่งสั้นๆ ดังนี้

localedef -f UTF-8 -i th_TH th_TH.utf8
echo "LANG=th_TH.utf8" > /etc/sysconfig/i18n
rm /etc/localtime
ln -s /usr/share/zoneinfo/Asia/Bangkok /etc/localtime
echo "CLOCKMODE=GMT" > /etc/sysconfig/clock


เพิ่มบรรทัดต่อไปนี้เข้าไปที่แฟ้ม /usr/lib/xulrunner-1.8.0.4/defaults/pref/xulrunner.js

pref("font.minimum-size.th", 13);
pref("font.default.th", "sans-serif");
pref("intl.accept_languages", "th,en-us,en");
pref("intl.charset.default","TIS-620");


อีกที่หนึ่งที่ต้องเข้าไปแก้ไขคือคอนฟิกของ xorg ซึ่งถ้าเป็นบอร์ด A-test จะใช้ geode-xorg.conf ซึ่งจะถูกใช้โดยปริยายอยู่แล้ว แต่ถ้าใช้บอร์ด B-test หรือเครื่องต้นแบบ B1 จะใช้ dcon-xorg.conf ซึ่งระบบจะเลือกให้อัตโนมัติตอนบูตครั้งแรก แต่ยังไม่สมบูรณ์ ให้เพิ่มคอนฟิกให้ใช้แป้นพิมพ์ภาษาไทยโดยแก้ไขใน section ของ InputDevice ที่เป็น keyboard ถ้าเป็น dcon-xorg.conf จะเป็น device ที่มี identifier เป็น "ATKbd" ส่วน geode-xorg.conf จะเป็น device ที่มี identifier เป็น "Keyboard0" โดยเพิ่มบรรทัดดังนี้

Option "XkbVariant" "olpc,tis"
Option "XkbLayout" "us,th"
Option "XkbOptions" "grp:alt_shift_toggle,grp_led:scroll"


จุดสุดท้าย เพื่อแก้ปัญหาเรื่องขนาดฟอนต์ที่ใหญ่โตผิดปกติ อันเนื่องมากจากการตั้งค่า DPI ตามความเป็นจริง คือ 200 dpi ทำให้ฟอนต์โตขึ้นกว่า 2 เท่าของปกติ ซึ่งเมื่อลองใช้งานจริงแล้วมันไม่ลงตัว เลยลดลงมาหน่อย ให้แก้ที่ dcon-xorg.conf ใน section "Monitor" แก้บรรทัด DisplaySize 152 114 เป็น

DisplaySize 240 180


ตอนนี้ยังคอนฟิกให้ใช้ปุ่มสลับแป้นเป็น alt+shift อยู่ครับ ส่วนปุ่มสลับไทยอังกฤษที่มีเป็นปุ่มพิเศษบนเครื่อง B1 นั้น ยังไม่ทราบวิธีคอนฟิกครับ ขอเวลาศึกษาก่อน แล้วจะมาบอกอีกที

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

Ubuntu 6.10 - gtk-im-xim Bug

ราวๆ ต้นเดือน พ.ย. มีผู้ใช้ Ubuntu 6.10 แจ้งมาว่า เมื่อใช้ OOo บน Ubuntu ตัวนี้ เมื่อพิมพ์เครื่องหมาย double quote ที่บรรทัดใด บรรทัดนั้นจะมีปัญหาการพิมพ์สระบนล่างของภาษาไทยไม่ได้ ก็ได้ทดสอบกันดูพบว่าเป็นจริงๆ คิดว่าเป็นที่ Input Method เพราะ OOo เองก็พยายามจะจัดการเอง รวมไปถึงอินพุทภาษาไทยด้วย ในขณะที่ GTK ก็มี gtk-im ซึ่งก็มีตัวที่จัดการอินพุทภาษาไทยด้วย ก็คือ gtk-im-libthai ในระดับ X ก็มี XIM เช่นกัน ซึ่งมีส่วนที่จัดการกับข้อมูลอินพุทภาษาไทยด้วยเช่นกัน

ต่อไปนี้เป็นกรณีทดสอบต่างๆ เพื่อคลำหาสาเหตุ