LinuxSir.cn,穿越时空的Linuxsir!

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

BLFS第一步mpg123

[复制链接]
发表于 2006-3-1 23:08:25 | 显示全部楼层
我前面错了, 已改.

现在编译声音的程序基本都要 lib ,理论上可以通过向 /sys/... 里面的alsa 驱动程序的接口写数据来控制驱动. 但既然已经用 lib 和 utils 写好了,为什么不用 lib 和 utils 呢?

看看 ldd alsamixer 是不是链接了 libalsa.so 之类.
试试把它静态链接, 这个 alsamixer 也许就可以不要 lib .

我劝你还是装 lib 和 utils 吧. lib 以后有很多程序会要.
utils 里 有图形的 alsamixer ,还有 alsactl  amix 这种命令行的.
开机时 ,/etc/rc.d/init.d/alsasound 会装入 ko ,然后调用 alsactl 和 amix 打开设备 ,恢复音量. 如果只装入 ko ,哪就要每次开机都手工调音量.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-1 23:24:12 | 显示全部楼层
ldd alsamixer 肯定是使用了alsa的库。所以我才说用个静态的嘛

我是想知道mpg123到底和ALSA又没有关系,在没有关系的情况下BLFS里面那么写不是错了?
还要我想知道ALSA在linux里起到了多大的作用,离开他是不是就不能使用soundcard?

只是研究用,正常使用当然还是装全了好:)

其他的都可以接受,还少了个alsa-tool。呵呵
alsa-driver :核心,必须安装。
[color="Red"]不同意。为什么呀?
内核里面明明提供了驱动,何必再次安装?而且还要声卡工作于模块方式?
ALSA的产生,是不是90年底的机子上没有声卡,属于奢侈品,所以Linux刚开始是不支持sound card的。而且曾经sound在kernel的src里面是个专用目录,没有归结到driver里面。现在为了结构化,把sound,video都独立出来了。看看2.4的src,sound很特殊的。
回复 支持 反对

使用道具 举报

发表于 2006-3-2 00:17:28 | 显示全部楼层
kernel 里面的 alsa 也算 alsa-driver .

alsa-tools 用处不大,完全可以不要.

oss 的 程序一定要 alsa-oss 才能正常输出. 有些程序还要特殊处理, 比如:
aoss realplay
回复 支持 反对

使用道具 举报

发表于 2006-3-2 00:28:42 | 显示全部楼层
mpg123 可以不用 alsa 可以直接 写 *.wav 或类似的 raw sound stream.
如果要发声,就必须向 /dev/pcm 写数据. 转到内核的处理模块,就是alsa-driver,alsa-driver直接与硬件通讯.

看来,mpg123,编译时可以不要alsa或oss,但如果要发声,就必须要.
回复 支持 反对

使用道具 举报

发表于 2006-3-2 02:07:59 | 显示全部楼层
  1. $ make linux-help

  2. There are several Linux flavours. Choose one:

  3. make linux            Linux (i386, Pentium or unlisted platform)
  4. make linux-i486       Linux (optimized for i486 ONLY)
  5. make linux-pentium    Linux with -mpentium
  6. make linux-mmx        Linux with MMX optimized code
  7. make linux-3dnow      Linux with 3DNow! optimized code
  8. make linux-alsa       Linux with ALSA sound driver
  9. make linux-esd        Linux with output to EsounD
  10. make linux-3dnow-alsa Linux 3dnow optimzed with ALSA audio
  11. make linux-3dnow-esd  Linux 3dnow optimzed with output to EsoundD
  12. make linux-nas        Linux with output to Network Audio System
  13. make linux-sajber     Linux, backend for Sajber Jukebox frontend
  14. make linux-alpha      Linux/Alpha (minor changes)
  15. make linux-alpha-alsa Linux/Alpha with ALSA audio
  16. make linux-alpha-esd  Linux/Alpha output to EsounD audio
  17. make linux-ppc        Linux/PPC or MkLinux for the PowerPC
  18. make linux-ppc-esd    Linux/PPC output to EsounD audio
  19. make linux-m68k       Linux/m68k (Amiga, Atari) using OSS
  20. make linux-arm      Linux on the StrongArm
  21. make linux-sparc      Linux/Sparc
  22. make linux-mips-alsa  Linux/MIPS with ALSA sound driver
复制代码


不是可以用 alsa 直接输出吗? 可以不要 alsa-oss 啊?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-2 10:21:45 | 显示全部楼层
兄弟最好带上后缀,比较容易讨论问题,比如alsa-lib等等:)

看来,mpg123,编译时可以不要alsa或oss,但如果要发声,就必须要.
不理解,mpg123既然编译时不用[color="Red"]alsa(不清楚具体指什么),为什么发声就需要了呢?
alsa-lib只是提供了库,对内核,对设备而言都没有任何用处。不可能make install alsa-lib后,/dev下面就多了设备,而且mpg123发声时,lsmod没有任何模块存在。
mpg123没有需要alsa-lib,运行时又会和alsa-lib有什么关系?

不是可以用 alsa 直接输出吗? 可以不要 alsa-oss 啊?
仍然不解。什么时候用alsa直接输出了?在哪里体现处理了。

从mpg123的过程看,内核提供了alsa-driver的支持后,alsa-lib兄弟几个都没什么用了。
soundcar的支持,内核已经可以独立胜任。
回复 支持 反对

使用道具 举报

发表于 2006-3-2 10:43:14 | 显示全部楼层
内核的支持,仅仅是提供一个输出服务。其他的很多程序还是需要 alisa-lib 这些库来支持的。:)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-2 11:00:43 | 显示全部楼层
斑竹啊,你怎么还是没有明白我的心意啊???
:!!
我关心的不是应用,而是如何在kernel上面提高对sound,net,video的支持。最最小的外围,而不是应用。里面的依赖和必要性。
之所以选择mpg123作为入口,
1。基于console的程序,不会和video,fb扯上关系。
2。不要其他lib的支持

这样描述吧,你知道如何在kernel提供对声卡的支持嘛?要求系统最小,能播放mp3?
答:安装ALSA,安装个mp3-console程序,就可以了。
评:错!这不是最小。从应用的角度没问题。从分析的角度呢?必须搞清出内核如何提供sound支持,ALSA是什么脚色,是否必须用,才能给出答案。

现在就是想和大家讨论这些东西,而不是怎么才好用,怎么才功能强大。
实现功能,系统最小,更有利于明白里面的机制
回复 支持 反对

使用道具 举报

发表于 2006-3-2 11:09:37 | 显示全部楼层
明白了,兄弟加油,别钻进牛角尖就好了。:)。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-3-2 11:21:14 | 显示全部楼层
放心,斑竹。
这些问题有了答案我就收工,有时候即使没有也得收:)
涉及到内核,点到为止,坚决打内核外围战:)

不过有时候为了答案,不得不把条件设定的相当苛刻,不然总是跑题呀。
不要误会成牛角尖了:)
回复 支持 反对

使用道具 举报

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

本版积分规则

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