Improve mouse tracking in a Virtual Machine Manager (virt-manager)

ปัญหาการเคลื่อนที่ของ Mouse บน virtual machine ใน Linux มีความผิดเพี้ยนไปจากความเป็นจริงนี้เราสามารถแก้ไขปัญหานี้ได้ด้วยกัน 2 วิธี คือ

  1. ย้ายการใช้งานจาก VNC console ไปเป็น SDL console แต่การทำงาน SDL console บนโปรแกรม virt-manager ไม่ค่อย work เนื่องจากว่าถ้าเราปิด SDL console ระบบจะทำการปิด virtual machine ไปด้วย -*-
  2. แก้ไข config จาก virtual mouse ไปเป็น virtual tablet ซึ่งวิธีการจะพูดถึงในบทความนี้

การแก้ไขผ่านทาง GUI Mode

  1. เปิดโปรแกรม Virtual Machine Manager (virt-manager) และถ้ามี virtual machine รันอยู่ให้ shutdown virtual machine นั้นไปก่อน
  2. ในโปรแกรม virt-manager ให้คลิกที่ details ในส่วนของ hardware tab
  3. คลิก add เพื่อเพิ่ม hardware เข้าไปใหม่ โดยเลือกที่ Input Device คลิก Forward
  4. เลือก EvTouch USB Graphics Tablet คลิก Forward
  5. คลิก Finish

การแก้ไขผ่านทาง Text Mode

สำหรับผู้ที่ชื่นชอบการแก้ไขแบบ text mode สามารถทำได้ดังนี้

  1. แก้ไขไฟล์ /etc/xen/virtual-machine-name ทำการเพิ่ม usbdevice = 'tablet' เข้าไปในไฟล์ /etc/xen/virtual-machine-name
  2. เปิด virtual machine
  3. เมื่อเครื่อง boot เรียบร้อยแล้ว กด CTRL-ALT-F1 เพื่อทำการย้ายหน้า console เป็น text mode
  4. พิมพ์ init 3 เพื่อทำการย้ายโหมดการทำงานไปเป็น text mode โดยสมบูรณ์
  5. พิมพ์ command ข้างล่างนี้เพื่อหาว่ามีชื่อของ tablet ที่ต้องการอยู่หรือปล่าว
  6. [root@ezylinux ~]# egrep 'Name|Handlers' /proc/bus/input/devices | grep -i -A 1 tablet
    N: Name="QEMU 0.8.2 QEMU USB Tablet"
    H: Handlers=mouse1 event2 js0
  7. แก้ไขไฟล์ /etc/X11/xorg.conf และค้นหาบรรทัด ServerLayout section และเพิ่มบรรทัด InputDevice เข้าไปดังตัวอย่างข้างล่าง เพื่อทำการเพิ่ม InputDevice เข้าสู่ระบบ โดย InputDevice ตัวนี้ชื่อว่า Mouse1
  8. Section "ServerLayout"
            ...
            ...
            InputDevice   "Mouse1" "CorePointer"
    EndSection
  9. จากนั้นทำการเพิ่ม InputDevice section ด้านล่างเข้าไปในไฟล์เดียวกันนี้ เพื่อสร้าง config ในส่วนของ InputDevice ของ Mouse1
  10. Section "InputDevice"
            Identifier  "Mouse1"
            Driver      "evdev"
            Option      "Device" "/dev/input/event2"
            Option      "Name" "QEMU 0.8.2 QEMU USB Tablet"
            Option      "Mode" "Absolute"
    EndSection
  11. เมื่อทำการแก้ไขเสร็จเรียบร้อยแล้วให้เข้าสู่ GUI Mode โดยพิมพ์
  12. [root@ezylinux ~]# init 5; exit

ลองทดสอบการทำงานของ mouse ดูครับว่าเคลื่อนที่ได้ถูกต้องหรือไม่ 🙂

You May Have Missed