LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
楼主: good02xaut

BLFS第一步mpg123

[复制链接]
 楼主| 发表于 2006-3-1 13:38:38 | 显示全部楼层
刚刚找到的。哈哈

What is linux-gate.so.1? (翻译)  
http://www.linuxsir.cn/bbs/showthread.php?t=216758

这么看mpg123什么依赖都不要,只要内核提供了dev/dsp..那几个设备的驱动就可以了。
http://www.mpg123.de/   mpg123的官方网站
带着问题去做LFS收获更大,我就喜欢先推导,再认证,好有成就感啊。哈哈哈哈
回复 支持 反对

使用道具 举报

发表于 2006-3-1 14:19:51 | 显示全部楼层
强,这个帖子也让你搜索出来了。。

我以前一直认为那个 gate 是一个统一的名字,并不存在,现在看来我想的是对的,不过实际上确是另外一个解释。

至于那个 mpg123,我是明白了 dsp 是oss的,不是alsa的。哈哈。。剩下的就让兄弟来研究啦。。
回复 支持 反对

使用道具 举报

发表于 2006-3-1 18:26:08 | 显示全部楼层
mp3blaster 是 ncurses 的, 有播放列表, 在 cce ,zhcon 里可以显示中文标签.

我觉得说这么多都是废话, 你把 mpg123 解开,
./configure --help
./configure
一下,要什么缺什么,一目了然.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 21:36:18 | 显示全部楼层
我什么也没有configure,直接就
make linux
干净的lfs上就通过了,激动啊
这和ldd的结果是相符的,程序本身没有使用任何其他库。
mpg123 as.mp3
程序正常运行了,没有提示任何错误

怪事也发生了,没有声音!
查看/dev/dsp,/dev/audio,/dev/mixer,都在啊

首先我确定这个mpg123的source没问题,因为我ubutun上也是这么几步,声音出来了。编译器用的是gcc-4.0,没问题

那问题一定是出在内核和ALSA上了。

mpg123难不成工作于C/S模式,和X11类似?只有这种方式才可以脱离库,而有依赖于别人。
任何一个使用socket的程序,如果运行时无法连接到server的,肯定不会执行。

ALSA安装后到底能够在系统上做什么手脚?一个库,又不是可运行的程序,除了能够让别人连接,实在想不出来怎么可以扩充内核对声音的支持的。

正在仔细阅读ALSA的部分,努力中。。。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 21:54:07 | 显示全部楼层
1。Mpg123 Dependencies
Required   ALSA OSS-1.0.9
看看OSS里面有什么:
Contents    Installed Program: aoss
aoss   is a simple wrapper script which facilitates the use of the ALSA OSS compatibility library. It just sets the appropriate LD_PRELOAD path and then runs the command.

Installed Libraries: libalsatoss.[so,a], libaoss.[so,a], and libossredir.a

2。ALSA OSS Dependencies
Required  ALSA Library-1.0.9
再看看ALSA提供了什么:
Installed Programs: alsalisp and aserver

Installed Libraries: libasound.[so,a]

Installed Directories: /usr/include/alsa and /usr/share/alsa

这里面涉及的库和mpg123没有任何关系,估计是他们自己需要吧。
ALSA里面提供了aserver,这个是突破口!

mp3blaster这个程序是基于ALSA的吗?如果是他和aserver是什么关系?
dyhml,你在LFS上可以正确运行mp3blaster吗?ALSA有没有特别的启动脚本辅助?
回复 支持 反对

使用道具 举报

发表于 2006-3-1 22:43:47 | 显示全部楼层
先用 alsaconf 配置 ,看看有没有声音.

如果是配置好后重启动的,装 alsautils 时,有一个 init 脚本, /etc/rc.d/init.d/alsasound
/etc/rc.d/init.d/alsasound start

alsamixer
调音量,用 m 键开关,方向键大小, 至少打开 master 和 pcm .

要启动时就用alsa,做一个链接到 /etc/rc.d/rc3.d 下,
ln -s ../init.d/alsasound /etc/rc.d/rc3.d/87alsasound


alsaconf
/etc/rc.d/init.d/alsasound start
alsamixer
只要用这3个,别的不用管.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 22:45:42 | 显示全部楼层
声音出来了,不过我很遗憾,没有找到结点所在。
Now adjust your soundcards volume levels. All mixer channels are muted by default. You must use a native mixer program to unmute appropriate channels, for example alsamixer from the alsa-utils package.
所有的linux内核默认是把声卡静音了,必须通过一个Mixer打开静音。

可是我,唉!
1.安装了alsa-lib
2.安装了alsa-oss,这是mpg123仍然无声。
3.安装了alsa-util,只有他能打开静音。
4.使用alsamixer打开了静音
5.mpg123声音出来了

错就错在第2步,甚至第1步。可惜我的系统不干净了,回不去。
有干净系统的朋友可以试试,直接走3.4.5看又没有声音。
alsa-util说是需要alsa-lib的支持,如果configure不过,再走1,3,4,5。
我就是感觉2是多余的。

mpg123就是用了alsamixer打开了静音,没有使用其他任何alsa的东西。1。2都多余。
可惜,这个想法不好验证了,不知道又没有卸载alsa-lib的办法。
用alsamixer打开静音后,怎么才能回到一个干净的系统啊?
回复 支持 反对

使用道具 举报

发表于 2006-3-1 22:47:50 | 显示全部楼层
声音出来了,不过我很遗憾,没有找到结点所在。
Now adjust your soundcards volume levels. All mixer channels are muted by default. You must use a native mixer program to unmute appropriate channels, for example alsamixer from the alsa-utils package.
所有的linux内核默认是把声卡静音了,必须通过一个Mixer打开静音。

可是我,唉!
1.安装了alsa-lib
2.安装了alsa-oss,这是mpg123仍然无声。
3.安装了alsa-util,只有他能打开静音。
4.使用alsamixer打开了静音
5.mpg123声音出来了

错就错在第2步,甚至第1步。可惜我的系统不干净了,回不去。
有干净系统的朋友可以试试,直接走3.4.5看又没有声音。
alsa-util说是需要alsa-lib的支持,如果configure不过,再走1,3,4,5。
我就是感觉2是多余的。

mpg123就是用了alsamixer打开了静音,没有使用其他任何alsa的东西。1。2都多余。
可惜,这个想法不好验证了,不知道又没有卸载alsa-lib的办法。
用alsamixer打开静音后,怎么才能回到一个干净的系统啊?


alsa-driver :核心,必须安装
alsa-lib : 用alsa 的程序,会用到里面的 *.h 和 *.so ,可以控制 驱动,比如音量之类
alsa-utils : 工具,使用 alsa-lib 控制alsa ,依赖于 lib
alsa-oss : 提供 oss 兼容库, 如果是用 oss 的程序,必须, 应该只依赖于 driver 和 lib

alsa-driver 是必须的, 但为了配置和控制,alsa-lib 和 alsa-utils 也要.
除非你没有 oss 程序, 才可以不装 alsa-oss

我记得 oss 的设备 是 /dev/dsp
mpg123 的原理应该是向 /dev/dsp 写 wave 数据流, 所以不要链接库.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 22:49:16 | 显示全部楼层
Post by dyhml
先用 alsaconf 配置 ,看看有没有声音.

如果是配置好后重启动的,装 alsautils 时,有一个 init 脚本, /etc/rc.d/init.d/alsasound
/etc/rc.d/init.d/alsasound start

alsamixer
调音量,用 m 键开关,方向键大小, 至少打开 master 和 pcm .

要启动时就用alsa,做一个链接到 /etc/rc.d/rc3.d 下,
ln -s ../init.d/alsasound /etc/rc.d/rc3.d/87alsasound


alsaconf
/etc/rc.d/init.d/alsasound start
alsamixer
只要用这3个,别的不用管.


我就是为了用mixer,现在都搞不清他们之间的依赖关系了。
个人观点,2.6以后的内核,ALSA没有存在的必要了,因为内核已经支持。
mpg123根本就不是基于ALSA,ldd的结果证明,坏在那个静音上。
最好就是静态编译一个alsamixer,拿到一个干净的LFS上,打开静音,mpg123准出声音

谁能试试啊?我提供静态的alsamixer.呵呵
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 22:51:44 | 显示全部楼层
Post by dyhml
mpg123 可能被你编译成输出 *.wav 了,当然不要用 alsa .

此话怎讲?
我什么也没有做啊,就是make了一下。然后mpg123就出来了。
mpg123 xx.mp3,这个过程应该是mpg123把mp3解码成pcm放到声卡驱动中的。不然还叫播放器吗?任何播放器都是解码左右的啊。。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表