在《Ubuntu CTRL+ALT+F1~F6 進入命令模式后不支持中文顯示的解決辦法》一文中提到linux啟動在以后運行一個獨占顯示器的圖形程序的兩種辦法。
1、不啟動xserver,使用fb或者directfb圖形模式;
2、啟動xserver不啟動桌面系統。
第一種方法性能並不一定高,因為支持fb的顯卡驅動可能找不到,就是用上顯卡驅動了也需要CPU大量參與。另外如果用這種方式可供選擇的圖形程序開發技術就受限了。所以這種方法通常用在嵌入式環境下。
第二種方法只要顯卡驅動了,CPU就能得到解脫。另外可以使用各種開發技術,甚至java、C#。
下面就介紹一下第二種方法。
首先需要安裝有xserver,還需要配置linux啟動后進入文本環境,而不是圖形環境。這個就不詳細介紹了。
設置自動登錄
(內容來自http://blog.chinaunix.net/uid-94449-id-2002624.html,寫的很簡潔明了,直接借用。)
1.寫腳本autologin
/bin/login -f #你的用戶名
移動到/usr/bin/下,並且用chmod +x autologin設置可執行權限
2.修改/etc/init/tty1.conf
修改前:
# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
exec /sbin/getty -8 38400 tty1
修改后:
# tty1 - getty
#
# This service maintains a getty on tty1 from the point the system is
# started until it is shut down again.
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
respawn
exec /sbin/getty -n -l /usr/bin/autologin -8 38400 tty1
設置自動運行圖形界面程序
最初我的想法也是在啟動桌面系統的代碼中做手腳,修改相關的腳本,將啟動桌面系統的代碼修改為啟動自定義圖形界面程序的腳本。搜了一大圈沒有找到結果,然后開機自己摸索startx的過程,從入口摸索下去找到一堆腳本大概理清了。
startx的過程這里有一篇文章,比較詳細。http://blog.csdn.net/clozxy/article/details/5488699
繼續按這個路子搜索文章,終於找到ubuntu設置開機啟動圖形應用程序,替換默認圖形桌面一文。看了其中的做法,太野蠻,直接在中間劫持startx執行的客戶程序。這么做有個重要的缺陷——startx命令被廢了。切換到別的用戶也不能用startx啟動桌面系統了。
所以決定換思路。保留startx可用。僅僅在某個用戶的啟動腳本中加上啟動自定義圖形程序的代碼。
linux用戶的根目錄下有各種在啟動時設置環境變量,執行操作的腳本。這里在.bashrc中增加運行自定義圖形界面程序的代碼。
由於圖形界面程序需要xserver,所以使用xinit命令來啟動圖形界面程序。
這樣啟動的圖像界面程序沒有窗口邊框,因為沒有啟動窗口管理器。
補充一句最好不要直接修改.bashrc,.bashrc最后會有幾行代碼和注釋。提示將自定義的初始化過程放到另外一個指定名字的文件中,.bashrc會自動去執行它。
(linux圖形界面真不是linux的菜,啟兩個xserver之后簡直慢死了。無意搜到這么一篇姨媽貼http://tieba.baidu.com/p/804746720?pid=8612574579&see_lz=1,其中的談到的內容都沒錯。)
