打造字符界面的多媒体Linux系统 – smstong的成长轨迹 – 博客频道 – CSDN.NET

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 截屏工具fbgrab

5.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安装lynx

yum install lynx

7.2 lynx和zhcon合作浏览中文网页

zhcon –utf8

lynx www.baidu.com

8 干点正事吧,我们要编程了

我们以c/c++说明。

8.1 编译器与make

Linux下就使用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启动中文输入法。

图四 运行命令zhcon –utf8,然后lynx www.baidu.com

图五 vim进行代码编辑

vesa兼容的模式:

Depth 640×400 640×480 800×600 1024×768 1152×864 1280×1024 1600×1200
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 ? ?

版权声明:本文为

来源URL:http://cache.baiducontent.com/c?m=9f65cb4a8c8507ed4fece7631046893b4c4380146d96864968d4e414c42246001827a5e67b770d57938327365ff8540abdb6652969423dbd9ec98a4adcbc866d72c8713b2e47da0658c418dfdc3724d654e14d98ac0e90cde733e3b9a4d1c82251dd52756df0869c2d0503bb6ee76335f4a7e95f645507cde827158c4e065e882230a1378df74268108086ca2c4bd45dd5766796b845b22913c504d56e0c5032b74dc11f2726279449308e462a7296&p=837bc116d9c11de908e2947d065fc6&newp=9e769a4786cc41ac53a4d7375c5f82231610db2151d4d21e&user=baidu&fm=sc&query=linux%C3%FC%C1%EE%D0%D0%BD%E7%C3%E6%C8%E7%BA%CE%BF%B4%B5%E7%D3%B0%CC%FD%D2%F4%C0%D6&qid=f27ca62a0003624d&p1=4