0 環境與目標 硬體:ThinkPad R52筆記本一台。 目標:字元介面的LINUX系統,同時可以看圖片,聽音樂,看視頻,無線上網,重要的是可以聽著音樂編程了!
注意:本文打造的系統主要是供一個工程師使用,而不是普通網民。1 系統安裝1.1 最小安裝系統
官網下載CentOS 6.4-minimal鏡像,燒錄光碟片安裝系統,系統自身已經支援framebuffer。
1.2 啟動framebuffer支援
修改/boot/grub/grub.conf檔案,增加核心啟動參數 vga=791 ,以啟動framebuffer模式。
1.3 串連Internet,安裝工具
配置有線網卡IP,串連Internet。
yum安裝pciutils,usbutils以查看硬體裝置情況。
yum安裝wget以下載源碼包。
2 我們要聽音樂、看電影、看圖片了2.1 音效卡測試
yum安裝alsa-utils,用來測試音效卡工作情況,系統本身已經支援此筆記本的音效卡,lspci可以看到音效卡資訊。
運行alsamixer命令調整音量大小,運行aplay播放一個wav格式的音頻檔案,發出聲音說明音效卡工作正常了。
2.2 源碼安裝mplayer,支援大多數音視頻檔案
官網下載mplayer源碼以及編解碼庫,把編解碼庫解壓並把裡面的所有內容(注意不是檔案夾本身,而是解壓後檔案夾裡面的內容)放到/usr/local/lib/codecs/下。
下載yasm,這個東西編譯mplayer時需要使用,不知道為啥官網上就是下不了,最後從CSDN上下的。
解壓mplayer源碼,按照README的說明編譯安裝(不需要GUI),編譯時間較長,耐心等待。
2.3 讓mplayer發出聲音
mplayer使用的是OSS標準的聲音驅動介面,所以需要使用ALSA類比OSS,其實也很簡單,就是如下:
modprobe snd_pcm_oss
至此,mplayer已經可以正確播放大多數音視頻了,包括mp3, rmvb。
2.4 控制播放影片的位置和大小
mplayer -vo fbdev2 -geometry 500:10 -zoom -x 400 -y 300 somemovie.rmvb
-vo fbdev2的作用是播放視頻的同時,可以通過ALT+F2等切換終端,-vo fbdev則無法切換。
這樣播放視窗左上方的位置就是(500,10),視窗寬度為400, 高度為300。這樣播放的視頻就不會擋住命令列了,一般工作在命令列下,一邊看著電影,好不愜意!
上一圖讓大家看看:
2.5 看圖片首先yum安裝libpng和libjpg庫,這樣mgaview才支援png,jpg格式的圖片。然後下載mgaview源碼,編譯安裝即可。注意:編譯時間會出現2個Error,修改對應的源碼即可(加括弧修正)。3 我們要無線上網了3.1 安裝無線工具包
yum安裝wireless-tools,wpa_supplicant以設定無線網卡接入WIFI。
3.2 安裝無線網卡韌體
系統本身已經能正確載入無線網卡的驅動了,lspci 可以看裝置。但是需要下載ipw2200-bss.fw這個韌體檔案到/lib/firmware目錄下。
運行iwconfig 命令查看無線網卡情況,發現無線網卡名為eth1。
3.3 接入WIFI
運行iwlist scanning命令掃描當前可見的SSID,找到需要的那一個,記下ESSID名字備用。
建立/etc/my_wpa_supplicant.conf檔案,內容如下:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="上面記下的ESSID名字"
psk="WIFI密碼"
}
運行如下命令串連WIFI
wpa_supplicant -B -i eth1 -c /etc/my_wpa_supplicant.conf
運行如下命令擷取IP地址
dhclient eth1
此時,已經接入WIFI了,通過iwconfig命令查看是否正常。
4 我們要使用串口了(網路工程師需要)4.1 準備USB轉COM轉接頭
我使用的是Z-TEK,預設系統已經有其驅動,lsusb可以看裝置。插入後的裝置名稱是/dev/ttyUSB0.
4.2 安裝minicom超級終端
yum安裝即可。
4.3 設定minicom
運行minicom -s 設定裝置名稱、速率等參數並儲存。
5 截屏工具fbgrab5.1 安裝依賴庫
官網顯示fbgrab依賴與splint, libpng, zlib。其中的libpng,和zlib我們已經安裝了。
對於splint,其實是一個靜態檢測代碼的工具,可以不用的,方法是:
去掉fbgrab的Makefile中的splint行。
5.2 編譯安裝fbgrab
如上所述,解壓後,去掉Makefile中德splint行,直接make,make install。
如下命令就能完成截屏,並儲存為png檔案。 fbgrab 存放路徑/圖片名稱.png。
本文附近中的就是這樣完成的,為了不破壞映像顯示,可以使用fbgrab的-s參數,或者使用ssh遠程登陸操作。
6 我們要使用中文漢字
需要注意:在字元介面下,提倡多多使用英文,盡量少用甚至不用中文。
framebuffer下的漢字終端主要是zhcon和cce。我裝了zhcon,覺得已經夠用了,所以沒安裝cce。
6.1 下載zhcon,並打補丁
zhcon很久沒更新了,仍然停留在0.2.6版本。而且是在0.2.5打補丁升級的。
# tar zxvf zhcon-0.2.5.tar.gz
# gunzip zhcon-0.2.5-to-0.2.6.diff.gz
# cd zhcon-0.2.5/
# patch -p1 < ../zhcon-0.2.5-to-0.2.6.diff
6.2 煩人的編譯排錯過程
編譯過程不太順利,發現了很多錯誤,但好在都在網上找到瞭解決方法,大概有如下需要修改的地方:
(1)報memset,memcpy錯誤,則 #include <string.h>或#include <cstring>
(2)報abs,atoi,free錯誤,#include <stdlib.h> #include <algorithm>
(3)報term.h找不到,則需要安裝ncurses-devel庫
(4)報tgetent錯誤,則在./configure之前,export LIBS=" -lncurses"
(5)報IF_MASK錯誤,則
#define VIF_MASK 0x00080000
#define IF_MASK 0x00000200
#define IOPL_MASK 0x00003000
#define TF_MASK 0x00000100
(6)如果還有其他錯誤,就google吧,不要baidu,百度很難找到合適的答案。
6.3 UTF8編碼下使用zhcon
zhcon --utf8
7 我們要瀏覽網頁需要注意的是,字元模式下只能瀏覽簡單的網頁,主要目的是找到一些下載連結,複雜網頁請不要嘗試!字元介面瀏覽網頁主要是lynx和w3m。安裝lynx後感覺還可以,就沒有安裝w3m。7.1 yum安裝lynxyum install lynx7.2 lynx和zhcon合作瀏覽中文網頁
zhcon --utf8
lynx www.baidu.com8 幹點正事吧,我們要編程了我們以c/c++說明。8.1 編譯器與makeLinux下就使用gcc吧,自動化編譯別忘了make。yum安裝方便無比。8.2 編輯器emacs和vim最流行,我本人習慣vim。yum安裝之。vim實在太強大了,這裡不說了,後面有個。附錄:系統啟動並執行幾個
圖0 運行命令alsamixer測試調整音效卡
圖一 運行命令mplayer -zoom -x 400 -y 300 影音檔案.rmvb
圖二 運行命令為 mgaview 圖片檔案名稱
圖三 運行zhcon --utf8 進入中文終端, CTRL+ALT+SPACE啟動中文IME。
圖四 運行命令zhcon --utf8,然後lynx www.baidu.com
圖五 vim進行代碼編輯
vesa相容的模式:
Depth |
640x400 |
640x480 |
800x600 |
1024x768 |
1152x864 |
1280x1024 |
1600x1200 |
4 bits |
? |
? |
0x302 |
? |
? |
? |
? |
8 bits |
0x300 |
0x301 |
0x303 |
0x305 |
0x161 |
0x307 |
0x31C |
15 bits |
? |
0x310 |
0x313 |
0x316 |
0x162 |
0x319 |
0x31D |
16 bits |
? |
0x311 |
0x314 |
0x317 |
0x163 |
0x31A |
0x31E |
24 bits |
? |
0x312 |
0x315 |
0x318 |
? |
0x31B |
0x31F |
32 bits |
? |
? |
? |
? |
0x164 |
? |
? |