coLinux ตอนที่ 4 - X Windows
www.tanabutr.co.th/photobook
คราวนี้มาถึงตอนสำคัญของ coLinux คือการใช้ X window โดยให้แสดงผลมาที่เครื่องวินโดวส์. ใน coLinux Wiki ก็มีเขียนไว้แล้วว่าใช้ VNC หรือ X เซิร์ฟเวอร์ก็ได้. ในกรณีจะใช้ X เซิร์ฟเวอร์ของ cygwin ที่เรียกว่า XWin ครับ. ก็เคยแนะนำวิธีการรัน XWin ให้เป็น service ของวินโดวส์ไปแล้วก็จะเอามาใช้กับ coLinux. ส่วนที่จะต้องเตรียมในครั้งนี้คือส่วนของ coLinux เองว่าต้องติดตั้งแพ็กเกจอะไรบ้าง.
แพ็กเกจที่ต้องติดตั้งใน coLinux ก็ต้องติดตั้ง x-window-system หรือ x-window-system-core ตามที่ Wiki เขียนบอกไว้. ถ้าอยากรับโปรแกรมพวก gnome ด้วยติดตั้งแพ็กเกจ gnome-desktop-environment.
# apt-get install x-window-system gnome-desktop-environment
ตอนติดตั้ง x-window-system อาจจะโดนถามคำถามให้ตั้งค่าต่างของ X เซิร์ฟเวอร์. ให้ตอบไปมั่วๆก็ได้เพราะไม่มีความจำเป็นต้องรัน X เซิร์ฟเวอรืใน coLinux. สิ่งที่เราต้องการคือพวกไคลเอ็นต์ซึ่งจะให้ไปแสดงผลที่ X เซิร์ฟเวอร์ที่รันอยู่บนวินโดวส์ (XWin).
ติดตั้งเสร็จแล้วก็ลองตรวจสอบให้แน่ใจก่อนว่า XWin ในฝั่งวินโดวส์รันเรียบร้อยแล้วหรือเป็นเซอร์วิสให้บริการอยู่. แล้วไปที่คอนโซลของ coLinux ลองสั่งคำสั่ง
# export DISPLAY=192.168.0.1:0 # xlogo &
เสร็จแล้วก็จะเห็นหน้าจอของ xlogo โผล่มาเป็นหน้าต่างหนึ่งของวินโดวส์เหมือนเป็นโปรแกรมที่รันจากวินโดวส์เลย.
คราวนี้ก็แล้วแต่ไอเดียจะไปเซ็ตตัวแปรสภาพแวดล้อม DISPLAY ไว้ในไฟล์ตั้งค่าเริ่มต้นของเชลล์แล้วก็พอสั่งโปรแกรมที่ต้องใช้ X วินโดว์มันก็มาขึ้นที่วินโดวส์.
หรืออยากได้หน้าจอล็อกอินแบบกราฟฟิกเต็มๆก็เลยลองใช้ Xnest ดู. อันนี้ต้องติดตั้งแพ็กเกจ gdm ใน coLinux ก่อน.
# apt-get install gdm
เสร็จแล้วต้องไปแก้ /etc/gdm/gdm.conf ให้มันยอมรับคอนเน็คชันที่จะมาจากเครื่องวินโดวส์. ตรงช่วงของ [xdmcp] แก้ให้บรรทัด Enable=false เป็น true. ตรง [security] ยอมให้ root ล็อกอินได้ไปก่อนเพื่อความสะดวก.
... [security] AllowRoot=true AllowRemoteRoot=true ... [xdmcp] Enable=true ...
แล้วก็ลองรัน /etc/init.d/gdm start ก็จะมีหน้าจอสีฟ้าๆเตืิอนว่าไม่สามารถรัน X เซิร์ฟเวอร์ได้. ก็ตอบคำถามตกลงไปเรื่อยๆเอาแบบไม่ต้องดูล็อกเพื่อจะได้ให้มันจบๆไป.
จากหน้าจอคอนโซลของ coLinux ใช้คำสั่ง ps ตรวจดูโปรเซสของ gdm มันก็ยังรันอยู่ ก็ไปเืทอร์มินอลของ cygwin แล้วสั่งคำสั่ง Xnest.
$ Xnest.exe -query colinux :1
แล้ว Xnest ของ cygwin ก็พยายามติดต่อกับ gdm ของ coLinux ผ่านทางเน็ตเวิร์ก. ถ้าสำเร็จก็จะได้หน้าจอล็อกอิน.
ตัวอย่างหน้าจอที่แสดงเป็นแบบปรับให้สวยแล้วครับโดยเพิ่มแพ็กเกจ gdm-themes และสั่งคำสั่ง gdmconfig เลือกธีมของ gdm ที่ชอบ. พอล็อกอินเข้าไปก็ได้ใช้ GNOME เลย.
ลองดูในไฟล์ gdm.conf ก็เลยรู้ว่าเวลาเกิดปัญหา X เซิร์ฟเวอร์รันไม่ได้นี่มันจะเรียกสคริปต์ /etc/gdm/XKeepCrashing ซึ่งเป็นหน้าจอ dialog สีฟ้าๆที่เราตอบคำถามไปนั่นแหละ. ไม่อยากให้มันแสดงก็เลยไปแก้ gdm.conf เป็นแบบนี้ครับ.
XKeepCrashing=/bin/true
คือลองให้มันไปรันคำสั่ง /bin/true แทน /etc/gdm/XKeepCrashing ซึ่งมันก็ได้ผล, ไม่แสดงหน้าจอ dialog ให้รำคาญอีกต่อไป.
เขียนเรื่อง coLinux มาหลายครั้งแล้วก็เห็นได้ว่ามันเจ๋งดี, ฟรี, ใช้ Debian ได้, ยังใช้วินโดวส์อยู่, ใช้กับ cygwin ยิ่งดี. น่าสนใจไหมครับ.
Comments: blogger


