目地:
Display xwindow on remote machine by ssh using Debian 5.0
簡單的架構圖
電腦A (server)
1. 現在的linux安裝好X server後,好像為了安全會把遠端的功能預設上鎖(?!)
( Xserver 預設是不會聽監聽 tcp的連線 )
要開啟監聽(listen)的功能:
# vim /etc/X11/xinit/xserverrc
有一行:
exec /usr/bin/X11/X -nolisten tcp,
把 -nolisten tcp 拿掉
但...這一個步驟可以不用作也可遠端@@
2. xhost
# xhost + remote(電腦B) IP or #xhost +
電腦B (client / remote)
3. 用ssh連線:
# ssh -X server IP
# echo $DISPLAY
localhost:10.0 (我的環境)
4. 測試:
# xeyes -display localhost:10.0
xeyes跑起來,表示:
xserver在電腦B
xclient在電腦A
注意:
連上server後不用作
export DISPLAY=server ip:0.0
用ssh連線後,export DISPLAY後,
用xeyes測試會出現 can't not open display
(看這字串看了3天3夜)
因為ssh -X 這個參數會自動幫忙把 Display 設定好
ex:
echo $DISPLAY
localhost:10.0
大部份的X程序都支持這個參數,
gtk的程序參數為
--display
[轉貼] GTK 编程基本示例
gtk_init(&argc, &argv)
是gtk應用程式的初始化部分,它使gtk 應用程式可以接受某些命令行的參數:
--gtk-module //載入另外的GTK模組
--g-fatal-warnings //使所有警告是致命錯誤
--gtk-debug //調試gtk
--gtk-no-debug //不調試gtk
--gdk-debug //調試gdk
--gdk-no-debug //不調試gdk
--display //指定display
--sync //使X調用按順序方式
--no-xshm //不使用X共用記憶體
--name //指定視窗管理器使用的程式名
--class //指定視窗管理器使用的程式類型
[轉貼]xhost 和 DISPLAY
DISPLAY HostName:0.0 的意思:
(echo $DISPLAY,如果沒有看到HostName,就代表在本機)
HostName 是我目前近端這台電腦, 在 HostName 後加一個冒號(:)再加上 0.0。
gtk程序,要加個空格
第一個數字 0,代表我現在近端這台電腦的第一張顯示卡,
如果有多張顯示卡,則按照順序加上去。
第二個數字 0,代表我現在近端這台電腦的這張顯示卡的第一個螢幕;
同理,如果同張顯示卡可以接多個螢幕,其數字依序往上加。
ref:
1. 解决本地linux 作為x server的問题
2. xhost 和 DISPLAY
3. GTK 编程基本示例
沒有留言:
張貼留言