2007年6月14日 星期四
用strace定位totem不能播放rmvb的问题
其实开始装的是totem-gstreamer, 试验totme能否播放rmvb的时候totem会问是否要自动搜索解码器,选了是,它就给我搞了个安装gstreamer-ffmpeg,结果也如所料:放不了rmvb。
先是试着将debian上/usr/lib/win32目录进行符号链接过来(ln -s /mnt/debian/usr/lib/win32 /usr/lib/win32),还是不行。
再按一些网上帖子说的,到mplayer网站下载rp9codecs-200?????.tar.bz2,解压动态库到~/.gnome2/totem-addons,仍旧不行。又试验了w32codecs,不行。
再就直接去找realplayer了,http://www.real.com/linux 默认的那个已经很旧了,有很多依赖库都不好解决,点那个nightly build应该可以下载到最新的版本。不过我是找了个edgy的非官方包装在feisty上(从包索引可以看出, 那上面还没有feisty版本的realplayer,也许你看的时候已经有了)。
不过这个东西装上之后一运行realplay就segfault了,这很多帖子说过,是跟scim冲突的问题,修改/usr/bin/realplay,在里面添加一行"export GTK_IM_MODULE="就可以了。
然后很可能播放时画面或者声音会有些卡,装个alsa-oss可以解决: 仍旧修改/usr/bin/realplay,在它执行realplay.bin那行(目前是第73行)加上一个aoss就可以了。
综合前面两条,/usr/bin/realplay最后几行是这样
现在可以在realplayer里播放rmvb了,回到totem,还是不行(也许有朋友要问,为啥非得用totem不用realplayer放啊,这是因为totem有gnome-vfs支持,可以从网络共享上直接播放,:-)。我用strings /usr/bin/totem-xine | grep addons查过了,结果为空,所以觉得很多网友虽然说将codecs库放到~/.gnome2/totem-addons那样可以,但现在也许已经改掉了(刚下载了totem源代码,还没有来证实)。REALPLAYBIN=$HELIX_LIBS/realplay.bin
if [ -n "$DEBUG" -a -x "$CATCHSEGV" ]; then
$CATCHSEGV $REALPLAYBIN ${1+"$@"}
else
while /bin/true; do
export GTK_IM_MODULE=
export XMODIFIERS=
aoss $REALPLAYBIN "$@"# Restart the player if exit code is 10if [ $? -ne 10 ]; then
break
fi
done
fi
于是祭出strace,顺便打开totem的debug开关:
strace totem --debug > trace.out 2>&1
在totem中打开一个rmvb文件,它报告不能播放该格式文件,关闭退出totem.
然后用vi打开trace.out,查找open或者fstat/fstat64调用,或者codec字样,然后我看到如下内容:
这里可以看到它搜索了/usr/lib/RealPlayer10目录,但realplayer目前的安装目录是/usr/lib/realplayer-10.0.8,于是创建一个符号连接解决问题。stat64("/usr/local/RealPlayer8/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)
stat64("/usr/RealPlayer8/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/RealPlayer8/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)
stat64("/opt/RealPlayer8/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/RealPlayer9/users/Real/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/RealPlayer10/codecs/drvc.so", 0xbfe23b2c) = -1 ENOENT (No such file or directory)
stat64("/usr/lib64/RealPlayer8/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)
stat64("/usr/lib64/RealPlayer9/users/Real/Codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)
stat64("/usr/lib64/RealPlayer10/codecs/drvc.so", 0xbfe23b2c) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/codecs/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)
stat64("/usr/lib/win32/drv3.so.6.0", 0xbfe23b2c) = -1 ENOENT (No such file or directory)
总结一下: 从上面的strace输出可以看出,将drv3.so.6.0放到/usr/lib/win32或者/usr/lib/codecs应该也是可以的,我卸载realplay后重新用rp9codecs或者w32codecs试验,也的确可以,不知道原来哪里有问题 :-(
奇怪的是,它在/usr/lib/RealPlayer10目录搜索的是drvc.so,在其他目录搜的却是drv3.so.6.0.
P.S 请卸载libxine1-ffmpeg库,否则你用totem播放rmvb时,它会用ffmpeg里面提供的音频解码器(在"属性"中可以看到其编解码器名称),造成没有声音。
又: 刚才发现一个地方有realplay/w32codecs的包,写的是feisty版本,不知道是不是。不过偶尔找个老版本装也没有什么问题,尤其这几个对其他包依赖不太强的。
标签: gnome, mplayer, ubuntu, video
2007年6月9日 星期六
Ubuntu初步印象
- 中文字体基本上挺好(并且opera这类Qt程序默认字体也挺好的,俺在Debian下的那个比较难看,也不知道怎么配);
- 无线网卡也不需要我自己下载firmware就直接可以用了;
- SD卡什么的直接接上去就有窗口显示文件(俺的Debian上原来好的,后来不知道怎么就不能识别出来了);
- 中文输入法也配置好了;
- 主菜单上还有一个“添加/删除..."可以选一些常用软件装上,不用自己记录那么多软件包名了...
- 我在Debian上偷用Ubuntu的内核是为了能休眠,现在直接装了个ubuntu,它自己反倒不能休眠了
- gaim登录QQ登录不上,老报告密码不对
- 输入法SCIM不如小企鹅方便,至少使用小企鹅时,各个应用程序是否切换到中文输入是独立的,不会相互干扰
- totem/mplayer不能放rmvb文件,想找个直接能装realplayer和w32codecs的源没找到,得自己折腾了
- kmess装上其网站提供的1.5pre2版本autopackage包后运行不起来
- 鼠标中键不起作用,得同时按左右键,修改一下/etc/X11/xorg.conf,给Pointer添加Emulate3Buttons选项(其值为false)可以解决
2006年8月25日 星期五
再次偷装Ubuntu的内核
为了获得休眠(suspend to disk)功能,俺把ubuntu的内核包安装到了俺的Debian上 :-)
---------------------------------------------------------------------------------------
大约三周以前某天,用totem打开一集Doctor Who时黑屏了,重启后俺的GNOME里喇叭上就多了小红叉,怎么都没有声音。上次误打误撞的解决方法也被证明无效。
几乎打算重装了,但两年多的东西要备份下来还是挺麻烦。于是又没头苍蝇似地升级了udev和kernel, 嘿嘿,好了。
不过来了一个新问题,俺习惯性地敲echo 4 > /proc/acpi/sleep试图让系统休眠,但不起作用,系统报告/proc/acpi/sleep不存在。
apt-cache search hibernate告诉我有个hibernate包, 可以smartly puts your computer to sleep (suspend to RAM or disk),满怀希望地装上,结果告诉我:
Your kernel does not appear to have Software Suspend 2 support compiled in.
Please follow the HOWTO linked from http://www.suspend2.net/ for instructions
on how to compile Software Suspend into your kernel. 不能休眠可不爽,比没有声音还难忍受。俺又是个懒人,懒得自己去编译内核,于是从ubuntu网站上下载了linux-image-2.6.17-686,装上,嘿嘿,可以了。
(ubuntu 的linux-image-2.6.17-686包需要module-init-tools版本在3.2.2-3ubuntu2,而debianl里面还 是3.2.2-2版本,于是俺很邪恶地修改了/var/lib/dpkg/status,将其要求的版本号改掉,dpkg --configure就不报错了。)
2005年12月4日 星期日
To Ubuntu or not to Ubuntu
原来听说Ubuntu免费派送CD,就定了5张,没想到还真来了。
跑了一下Live CD,我的无线网卡什么都不用配置直接就上网了,挺爽。只是没有中文输入法,而且Ubuntu缺省的暗红色theme我不怎么喜欢。至于GNOME 2.12,倒也没怎么留意跟2.10的差别在哪些地方。
我又要不要把我的Debian换成Ubuntu呢?CD都已经送上门了,如果完全闲置了,有点对不住吧?
好的方法是先不覆盖目前用的还不错的Debian, 另外新装一个试用一段。但我现在本本上没有那么多空间啊。
头疼。
2005年9月15日 星期四
Ubuntu的休眠
最后总算在Ubuntu的论坛上问到了:
sudo sh -c "echo 4 > /proc/acpi/sleep"
2005年8月22日 星期一
sidegrade: from Ubuntu to Sarge
因为现在上网不方便,在朋友那里下载了一张sarge的DVD。同时,因为不太甘心,又试了一下,直接安装后重启就挂了。
然后换Ubuntu,原来打算用它的X.org和GNOME-2.10的(而且休眠也工作得很好!),但最后发现这样再装sarge的软件的话包依赖的问题几乎没法解决。只得重新来过,只装base system,然后换上sarge的DVD, aptitude install -r x-window-system gnome。启动X,GNOME出现,感觉不错。
当然包的兼容性会有不少问题),aptitude install常常会无法通过(比如安装gnome就需要synapitc,而synapic依赖于libapt-pkg-libc.....,后者是基本系统提供的,在ubuntu提供的基本系统中根本不是这个名字,就只好硬来了 从Knoppix邮件列表上学到三板斧(新手请勿乱用!):
1. aptitude -f install
2. 直接修改/var/lib/dpkg/status下的文件,反正dpkg安装新软件时总是先解压(unpack),然后检查依赖性后configure,直接修改包依赖关系后dpkg --configure --pending。
3. dpkg将deb包解开,修改control文件里面的包依赖,然后重新打包,再用dpkg安装
---------------------
而且如今我终于明白,对于我而言,选择哪个Linux版本最重要的因素是什么,那就是“可获得性”(availability),发行版要很容易地获得,众多软件要很容易地获得,开发过程中的进展、大家的心得、讨论,亦应如此。对懒人而言,这一点应该是第一位的。
2005年5月23日 星期一
Ubuntu + testing?
我新买的laptop装不上Debian(安装基本系统后重启时死在加载usb-uhci模块这个地方),为此苦恼了好久。在网上查过,没看见这个 型号的成功案例,一些类似的型号说是要先在BIOS里面禁用对legacy USB device的支持,我打开BIOS,只有时间、启动顺序这几个选项,其他的都没有。也试过用expert模式安装,或者用Knoppix光盘启动后修改 modules.conf等文件禁用usb-uhci等模块,都不好使。:-(
五一期间下载了一套Mandriva LE2005来用,安装、配置什么的也都挺顺利(尤其中文什么的不用自己动手),mcc这个系统管理工具也做得不错,suspend to disk也可用,也跟着linuxsir上的方法学会了urpmi的用法,但总是有些不爽: 安装盘里面devhelp, anjuta, xfce4, zhcon都没有; 带了mplayer却根本没法用; 装盘里所有的RPM都仍在一个目录下(后来下了DVD,用mcc配置urpmi时点了一下Browse,就死在那个目录了); 用户还分等级,普通用户先没有ISO下... 其实也都不是太大的事情,只是有些东西自己不太习惯而已。还是想念Debian。
晚上在QQ上网友Cedric说可以试试Ubuntu。也 不是没有想过这个,我在本本上试过Ubuntu的Live CD,感觉相当不错。但我担心它的软件少,我是懒得什么东西都来自己编译(本来KDE是可以不用的,但最近发现刻录光盘gnomebaker还是不如 k3b稳定)。而且原来在slashdot上看见一篇Is Ubuntu a Compatibility Nightmare for Debian,也就认定它跟Debian还是不怎么兼容,没有再去试。Cedric倒是说debian的源都可以用,看来还是要试试。
标签: debian, linux, mandrake, ubuntu
订阅 帖子 [Atom]