Debian通过HDMI输出音频

注意:本文描述的内容仅限于Gnu/Linux操作系统,Windows系统的解决方案不在本文讨论范围之内。

笔记本带了Nvidia的独立显卡,支持HDMI输出,1080P的高清视频当然要输出到高清电视的大屏幕上才够过瘾。

Amazon上买了飞利浦的HDMI线,到手之后兴冲冲将笔记本接上电视,却发现只有画面,声音依旧从电脑的扬声器中发出,顿时就郁闷了,没有声音,再好的戏也出不来啊。

第一次用HDMI接口,之前都是通过VGA+音频输出的方式连接笔记本和电视的。音、视频各行其道,互不干扰,这很好理解。HDMI使用一根线传输所有的音、视频信号,而HDMI接口只从显卡接出,想必显卡也是带音频模块的,嗯,又长知识了。

放狗一阵乱搜,找到了解决方案,原文是英文,现将主要部分介绍如下,如想阅读原文,请移步这里

在开始之前,先安装Nvidia官方驱动,大致步骤呢,无非就是:

sudo aptitude install linux-headers-`uname -r` build-essential

然后停掉GDM运行驱动程序进行安装,完了之后,重启机器,然后开始设置HDMI。

首先,检查系统是不是能识别显卡自带的音频模块,执行:

aplay -l

在我的电脑上,执行结果输出如下:

yjsword@debian:~$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: Intel [HDA Intel], device 0: CONEXANT Analog [CONEXANT Analog]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 1: Conexant Digital [Conexant Digital]
  Subdevices: 1/1
  Subdevice #0: subdevice #0
card 0: Intel [HDA Intel], device 3: NVIDIA HDMI [NVIDIA HDMI]
  Subdevices: 1/1
  Subdevice #0: subdevice #0

结果显示,0号卡上的设备3是NVIDIA的HDMI声卡,0和1都不是,话说……2去哪了?
接着,运行:sudo alsamixer -c 0
-c 指定设备,我们是card 0,当然用0当参数了。
在AlsaMixer调节界面中,按左右方向键选择某一个选项,按“M”键来On/Off它,如果状态显示“MM”代表该项处于“Off”状态,“00”表示“On”状态。
需要特别关注的是:“S/PDIF”、“S/PDIF D”、“S/PDIF 1”这三项,我的做法是把它们都打开。
完了之后按“Esc”退出。
将电脑接上电视,用下面的命令测试刚刚的设置:

aplay -D plughw:0,3 /usr/share/sounds/alsa/Front_Center.wav

plughw:0,3的含义很明确了,就是刚才列出的card 0、device 3,后面这个wav文件可以是任意的wav格式的音频文件。
如果上面的操作步骤都OK的话,应该会从电视扬声器中有一个优美的女声说:Front Center
如果以上操作都顺利,那么我们离成功还剩下最后的步骤了。
编辑/etc/asound.conf文件,这个文件本来不存在的,没关系,新建一个就好。然后输入下面的内容保存:
pcm.!default {
type hw
card 0
device 3
}

重启电脑,开始你的高清之旅吧。

debian/squeeze上编译安装vim

本文写成时最新的vim版本是vim7.3。
vim是*nix平台著名的文本编辑器,它和提供了比vi更强大的功能,正如vim官网上描述的:Vim is an advanced text editor that seeks to provide the power of the de-facto Unix editor ‘Vi’, with a more complete feature set.

废话不多说,要编译最新版本的vim,首先要去官方网站下载vim的源码。最新的版本是7.3。然后通过以下命令安装编译环境:

sudo aptitude install build-essential libncurses-dev libgtk2.0-dev libxt-dev

假设我们想把vim安装到/use/local/vim这个目录,先解压缩源码,cd到源码根目录,执行以下配置脚本:

./configure –prefix=/usr/local/vim/ –with-features=huge –enable-multibyte –enable-fontset

其中–with-features用来开启更多特性,后面两个参数用开开启多字符支持,编辑中文的时候能用得着。执行完之后只要简单地make && make install就可以了。

默认情况下如果完全按照上述步骤安装了gtk库,会同时编译生成vim的gtk版本——gvim。在debian系统中,运行gvim启动之后窗口中无法正确显示菜单中的中文,这个和系统的locale有关。解决方法有两种:

  • 在运行gvim之前,先设置系统环境变量:export LANG=’zh_CN.UTF-8′
  • 修改gvim的配置文件(~/.gvimrc或者/usr/local/vim/share/vim/gvimrc),加入以下内容:

set encoding=utf8

set langmenu=zh_CN.UTF-8

set imcmdline

source $VIMRUNTIME/delmenu.vim

source $VIMRUNTIME/menu.vim

debian/squeeze安装compiz

随着debian的易用性不断向Ubuntu、Fedora等发行版看齐,软件的安装和配置也越来越简单了,今天在squeeze上安装了compiz,发现居然不需要对xorg.conf做任何的手动修改,只需简单的两个命令就轻松搞定。

sudo aptitude install compiz compizconfig-settings-manager compiz-fusion-plugins-main

以上命令安装了compiz核心组件、fusion插件以及CCSM管理前端。执行完以上命令就算是安装完了吗?是的,就是这么简单。接下来运行以下命令:

compiz –replace

如果出现“Failed to manage screen: 0”之类的提示,请检查显卡设置或者重新安装一遍显卡驱动。由于我用的NVIDIA显卡安装的是官方驱动,所以理论上每次升级完内核都要重新安装一遍驱动。如果没有出现错误提示,那么这时候就可以通过Ctrl+ALt+方向键”来转动你的桌面了^_^。

如何把compiz设置为默认的窗口管理器呢?使用如下命令即可轻松搞定:

gconftool-2 –type string –set /desktop/gnome/session/required_components/windowmanager compiz

等等……就这么改掉了么?原来的值是什么?万一哪天想用回默认的窗口管理器怎么办?所以,在改之前看下默认值是什么总是个比较稳妥的办法。怎么看?

gconftool-2 –get /desktop/gnome/session/required_components/windowmanager

得到的结果是:gnome-wm。这下放心了,如果哪天想还原这个设置,只要执行:

gconftool-2 –type string –set /desktop/gnome/session/required_components/windowmanager gnome-wm

即可。OK现在重启你的gdm或者重启电脑感受compiz带来的桌面体验吧。

squeeze配置技巧三则

当前squeeze还处于debian项目的testing分支下,但是代码已经冻结很久了,很可能在明年初就能正式发布了。以下是squeeze安装配置过程中遇到的几个问题,解决方法如下:

  • 安装了network-manager-gnome之后网络配置无法编辑,在“网络连接”窗口中选中网卡,“编辑”按钮是灰色的,解决方法很简单,编辑”/etc/network/interfaces”,除了包含“lo”的行以外的行全部删掉,再重启network-manager服务即可。
  • 为系统增加虚拟pdf打印机,可以将文档打印成pdf文件:

aptitude install cups-pdf cups-bsd

打印时如果遇到“Unable to execute /usr/lib/cups/backend/cups-pdf: insecure file permissions”和“Stopping job because the sheduler could not execute the backend.”报错的话,解决方法是

sudo chmod 700 /usr/lib/cups/backend/cups-pdf

sudo chmod 700 /usr/lib/cups/backend”

PS:cups-pdf这个包在公司的Ubuntu上并没有安装,不清楚是不是必须的。

  • 笔记本的触摸板,可以移动指针,右侧的滚动条也正常,就是无法单击双击,解决方法是在“系统-首选项-鼠标”中点“触摸板”选项卡,默认情况下,“Enable mouse clicks with touchpad”居然没有勾选,实在是匪夷所思啊!