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