感谢支持
我们一直在努力

打造字符界面的多媒体Linux系统

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。这样播放的视频就不会挡住命令行了,一般工作在命令行下,一边看着电影,好不惬意!

上一图让大家看看:

打造字符界面的多媒体Linux系统

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.linuxidc.com

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

我们以c/c++说明。

8.1 编译器与make

Linux下就使用gcc吧,自动化编译别忘了make。yum安装方便无比。

8.2 编辑器

emacs和vim最流行,我本人习惯vim。yum安装之。vim实在太强大了,这里不说了,后面有个截图。

附录:系统运行的几个截图

图0 运行命令alsamixer测试调整声卡

打造字符界面的多媒体Linux系统

图一 运行命令mplayer -zoom -x 400 -y 300 影音文件.rmvb

打造字符界面的多媒体Linux系统

图二 运行命令为 mgaview 图片文件名

打造字符界面的多媒体Linux系统

图三 运行zhcon –utf8 进入中文终端, CTRL+ALT+SPACE启动中文输入法。

打造字符界面的多媒体Linux系统

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

打造字符界面的多媒体Linux系统

图五 vim进行代码编辑

打造字符界面的多媒体Linux系统

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 ? ?
赞(0) 打赏
转载请注明出处:服务器评测 » 打造字符界面的多媒体Linux系统
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏