当前位置:首页 » 编程软件 » 编译alsa

编译alsa

发布时间: 2022-04-22 13:46:19

A. linux alsa可以做什么

好了言归正转。 1.下载驱动你可以到这里下载ALSA的驱动: 你需要下载以下几个包: alsa-driver-1.0.10.tar.bz2 alsa-lib-1.0.10.tar.bz2 alsa-utils-1.0.10.tar.bz2 2.分别解压: #tar jxvf alsa-driver-1.0.10.tar.bz2 #tar jxvf alsa-lib-1.0.10.tar.bz2 #tar jxvf alsa-utils-1.0.10.tar.bz2 3.先进入alsa-driver,然后是,alsa-lib,最后是alsa-utils文件夹进行编译: #./configure#make#make install 最后一步再次进入alsa-driver文件夹运行再编译请输入: #./snddevices 等几分钟后编译完成,到此驱动总算安装完了,但是如果你马上重启动的话你的声卡还是不能工作,why?很简单你还得修改你的模块文件/etc/moles.conf #vi /etc/moles.conf并在最后加入以入几行:

B. 新人求教,编译一个最简单的Android程序,提示下面的错误咋解决

1、32位系统下的编译

如果需要在32位系统中编译android系统,在编译前需要对部分makefile进行修改

首先修改build/core/main.mk,修改的内容如下所示:

-ifneq (64,$(findstring 64,$(build_arch)))

+ifneq
(i686,$(findstring i686,$(build_arch)))

$(warning
************************************************************) $(warning You are attempting to build on a 32-bit system.)

$(warning Only 64-bit build environments are supported beyond froyo/2.2.)

其次修改如下四个文件:

external/clearsilver/cgi/Android.mk
external/clearsilver/java-jni/Android.mk
external/clearsilver/util/Android.mk
external/clearsilver/cs/Android.mk # This forces a 64-bit build for Java6
-LOCAL_CFLAGS += -m64
-LOCAL_LDFLAGS += -m64
+LOCAL_CFLAGS += -m32
+LOCAL_LDFLAGS += -m32即将LOCAL_CFLAGS和LOCAL_LDFLAGS由-m64改为-m32,从而指定使用32位系统进行编译如果使用 64bit 的操作系统编译,这些就都不用修改,但记得需要安装:For 64-bit servers the following extra packages may be needed:
"sudo apt-get install libc6-dev-i386" (libc6-dev-amd64 if AMD CPU)
"sudo apt-get install g++-multilib lib32ncurses5-dev lib32z1-dev"
还有 jdk64bit 的版本编译2 、build/core/base_rules.mk:128:*** frameworks/opt/emoji/jni:
.... libgl2jni already defined by framwworks/base/opengl/tests/gl2_jni/jni 停止

从编译规则上看:
# Make sure that this IS_HOST/CLASS/MODULE combination is unique.
mole_id := MODULE.$(if \
$(LOCAL_IS_HOST_MODULE),HOST,TARGET).$(LOCAL_MODULE_CLASS).$(LOCAL_MODULE)
ifdef $(mole_id)
$(error $(LOCAL_PATH): $(mole_id) already defined by $($(mole_id)))
endif

在framwworks/base/opengl/tests/gl2_jni/下面定义的android.mk定义了:
LOCAL_MODULE := libgl2jni
include $(BUILD_SHARED_LIBRARY)
导致生成的动态库重复,这是不对的,修改tests这个目录不参与编译即可,最直接的办法删除掉framwworks/base/opengl/tests/gl2_jni这个文件夹

3、AIDL 编译报couldn't find import for class原因
“AIDL服务只支持有限的数据类型,因此,如果用AIDL服 务传递一些复杂的数据就需要做更一步处理。AIDL服务支持的数据类型如下:
Java的简单类 型(int、char、boolean等)。不需要导入(import)。String和 CharSequence。不需要导入(import)。
List和 Map。但要注意,List和Map对象的元素类型必须是AIDL服务支持的数据类型。不需要导入(import)。AIDL自动生成 的接口。需要导入(import)。
实现 android.os.Parcelable接口的类。需要导入(import)。
其中后两种数据类 型需要使用import进行导入,传递不需要 import的数据类型的值的方式相同。传递一个需要import的数据类型的值(例如,实现android.os.Parcelable 接口的类)的步 骤略显复杂。除了要建立一个实现android.os.Parcelable接口的类外,还需要为这个类单独建立一个aidl文件,并使用parcelable关键字进行定义。”
没有加LOCAL_AIDL_INCLUDES += xxx ,所以找不到我的parcelable aidl文件。

修改android源码根目录下的build/core/pathmap.mk把你的目录加进去,此时再make update-api

4、老是提示 @Override错误 方法未覆盖其父类的方法
使 用JDK1.6编译没有问题,使用JDK1.5编译,会报@Override方法未覆盖其父类的方法。实际上这个方法是类实现的接口中方法,
但是,这个语 法的jdk1.6的下面是可以通过的,也就是说jdk1.6认为类覆盖父类方法与实现接口方法都叫override,而jdk1.5不
是这样认为的,不知 道这是当初jdk1.5的bug,还是当初就是认为覆盖父类方法与实现接口方法是不一样的,不得而知。但是从
OO角度来看,覆盖父类方法与实现接口方法都 可以认为override,因为他们目的都是一样的,都是为了重用,都是多态的一种
表现方式。

更改jdk版本为1.6即可

5、编译alsa-lib库错误

android系统开发移植alsa-lib库的过程中编译的时候出现了如下的错误
/tmp/cckyaR40.s: Assembler messages:
/tmp/cckyaR40.s:2763: Error: selected processor does not support `mrs ip,cpsr'
/tmp/cckyaR40.s:2764: Error: unshifted register required -- `orr r2,ip,#128'
/tmp/cckyaR40.s:2765: Error: selected processor does not support `msr cpsr_c,r2
字面的意思报的是汇编错误,选择的处理器不支持mrs和msr指令。
原来的ARM指令有32位和16位两种指令模式,16位为thumb指令集,thumb指令集编译出的代码占用空间小,
而且效率也高,所以android的arm编译器默认用的是thumb模式编译,问题在于alsa的代码中有部分的内容

C. 3. 如何安装 ALSA 音效驱动程式

3.1 您需要什麽一套能动的 Linux 系统(如 Slackware 发行套件), 并有安装开发工具套件(像 gcc, make 等).)支援的声卡一些Linux 的知识(您总要晓得 "ls", "cd", "tar" 等怎麽用. )root 帐号 如果您有 PnP 卡, 您也需要: isapnptools 软体套件 在驱程式目录中的 INSTALL 档内文提到对有些卡驱动程式内已经能处理 PnP 的支援. 我也从 Jaroslav 那儿得到一样的论点. 如果我将来得到更多资讯, 我会将它们加进本 mini-HOWTO. (原文是 The INSTALL text in the driver directory suggests that for some cards, PnP support is native. I also received a suggestion from Jaroslav about this. When I get further information about this topic I will add it to this mini-HOWTO. }
请注意如果您想使用 ALSA 驱动程式, 那麽您不应该先载入任何其它音效驱动程式. 如果您的核心中内含音效驱动程式, 那麽有必要重编译核心. 如果您正在使用旧的 sound.o 模组, 您必须解除它. 如果您使用 kerneld, 这可能就是要您删去 /lib/moles//misc 目录下的 sound.o. 新的 RedHat 系统的音效驱动程式组织方式不太一样, 要载入好几个模组, 这种情况您需要解除全部的模组. 2.2 版核心对音效则采用了新的方式. 您应该要包含音效的支援! 是的, 没有说错, 您在核心中加入了对音效的支援, 但没有包含任何声卡的部份. 然后重编译及安装核心, 接着编译 ALSA 驱动程式. 3.2 取得驱动程式ALSA 驱动程式可在 ftp://ftp.alsa-project.org/pub 找到, 并且在 ftp://linux.a2000.nl/alsa 有一份镜射(mirror). 要安装 ALSA 的完整功能, 您需要驱动程式, 函式库及一些公用程式; 也就是说如果您由镜射站抓您应该 ftp://linux.a2000.nl/alsa/driver/alsa-driver-0.3.0-pre4.tar.gz, ftp://linux.a2000.nl/alsa/lib/alsa-lib-0.3.0pre4.tar.gz, 还有 ftp://linux.a2000.nl/alsa/utils/alsa-utils-0.3.0-pre4.tar.gz. (喔, 上面的不是完整的连结, 您最好到原地点看看有没有新版, 并抓最新的.) 3.3 解开驱动程式用合理的命令像 tar -zxf 解开驱动程式. 以下的是写给新手或常忘记的人: (You extract the drivers by some reasonable command, like the all-time tar -zxf . For newbies and for those with amnesia:) cd /usr/src tar -zxf ~/alsa-driver-0.3.0-pre4.tar.gz (如果成功了, 您可能一直使用 root 身份进系统, 这是不对的, 停下来并读一下 DOS/Win95-to-Linux-HOWTO. 不是这样的话, 您已经知道这是关于系统管理(administrative)的事, 您需要 superuser/root 权限. 所以, 您需要 root 权限, 输入 su 以及密码. tar -zxf ~/alsa-lib-0.3.0pre4.tar.gz tar -zxf ~/alsa-utils-0.3.0-pre4.tar.gz 下这样的命令也可以, 且更有趣: find ~ -name alsa* -exec tar -zxf {} \; (孩子, 不要在家试这个, 这只是个□例而已. )注意如果您使用 Netscape 下载驱动程式, 您可能抓下的是解开过的, 但延伸档名还是 .tgz. 如果 tar 抱怨档案格式不对, 把 tar 命令中的 "z" 选项去掉, 可以得到较好的结果. 3.4 编译在您可以编译及使用函式库以前, 您需要先有驱动程式. 而有了函式库后才可以编译使用公用程式. 所以我们开始吧: cd alsa-driver-0.3.0-pre4 (给那些不太有经验的: 在 "alsa-d" 后接着按 ("tab" 键). 这样就会叫出 命令列自动补完(command line completion).) (译注: 有更好的翻法吗?) ./configure make 现在您需要用 root 身份安装东东(可能您已经是 root 了) make install 如果它回应像 "version.h" 档找不到之类的, 您可能没有妥善安装核心原始码. 要编译 ALSA 驱动程式需要核心原始码中的一些档案, 所以您把想用的 linux-2.x.y.tar.gz 在 /usr/src 下解开, 并下 make menuconfig 命令. (实际上, make symlinks 可能就够了). 现在编译函式库: cd ../alsa-lib-0.3.0-pre4 ./configure make make install OK, 您已经成功了, 再来是公用程式: cd ../alsa-utils-0.3.0-pre4 ./configure make make install 注意: 在第一次编译公用程式时可先不打 "make install". 甚至您可以先不要动函式库及公用程式, 只检查一下确定驱动程式能不能用. 3.5 准备设备档在驱动程式目录下有个命令稿(script)可以把 ALSA 的音效设备档安装进 /dev 目录. 在驱动程式目录下打入 ./snddevices 如此应该有 /dev/snd 子目录了(先看看有没有. 如果您甚至连 "ls" 命令都不熟, 请考虑先读别的 HOWTO. 在安装本驱动程式前您应该有些基本的 Linux 知识才对.) 现在您可以安插驱动程式了. 请跳到下一段吧.

D. ubuntu 声卡加载问题 alsa都安装了 怎么没有alsaconf命令

我用的5.04
确实没有alsaconf
,不过一般机器都可以正确检测不会出问题。alsa不能用估计是缺省安装的是esd
我的解决办法是安装
libesd-alsa0
我还安装了
alsa-oss
重启,在首选项-多媒体系统选择器中选择ALSA。
(如果要自己编译alsa程序还要apt
alsa-headers)

E. 如何在android 中编译alsa-utils工具

首先我从ALSA 官方网上下载了alsa-utils-1.0.23版本的工具,因为我android 的alsa-lib
也是1.023版本的,防止版本不一样出现问题,我就选择了版本一样,我们的alsa-lib放的路径是在android_source/external/alsa-lib目录下面,我们下载的alsa-utils-1.023工具包也下载放在里面。

接下来我们需要完成以下几个动作:

1、在alsa-utils下面创建一个Android.mk写的内容是:

ifeq ($(strip $(BOARD_USES_ALSA_AUDIO)),true)

LOCAL_PATH:= $(call my-dir)

#

# Build aplay command

#

include $(CLEAR_VARS)

LOCAL_CFLAGS := \

-fPIC -D_POSIX_SOURCE \

-DALSA_CONFIG_DIR=\"/system/usr/share/alsa\" \

-DALSA_PLUGIN_DIR=\"/system/usr/lib/alsa-lib\" \

-DALSA_DEVICE_DIRECTORY=\"/dev/snd/\"

LOCAL_C_INCLUDES:= \

$(LOCAL_PATH)/include \

$(LOCAL_PATH)/android \

external/alsa-lib/include

LOCAL_SRC_FILES := \

aplay/aplay.c

LOCAL_MODULE_TAGS := debug

LOCAL_MODULE := alsa_aplay

LOCAL_SHARED_LIBRARIES := \

libasound \

libc

include $(BUILD_EXECUTABLE)

上面我只写了个编译aplay工具的代码,别的工具也是一样的写法

2、接下来进入alsa-utils工具包里面进行创建sys目录和aconfig.h文件,在aconfig.h文件里面编写以下内容

#define DATADIR "/system/usr/share/alsa"

#define rindex strrchr

#define open64 open

#undef __swab16

#define __swab16(x) __arch__swab16((x))

#undef __swab32

#define __swab32(x) __arch__swab32((x))

3、进入第2步中创建的sys目录,在sys目录中创建signal.h头文件,在这个头文件中写如以下内容

[plain] view plainprint?

01.#include <signal.h>

#include <signal.h>4、接下来你直接编译android 就可以了,在编译过程中可能出现以下 错误“

4.1:kernel/common/linux/un.h:18: error: expected specifier-qualifier-list
before 'sa_family_t

那是因为我们在alsa-utils/alsactl/init_parse.c里面在include un.h之前没有#include
<sys/socket.h>,你只要在这之前include这个头文件就解决了

4.2:还有可能遇到这个错误:在aplay.c里面会提示报错'S_IRGRP' undeclared (first use in this
function,你只要在在aplay.c里面添加一个头文件:#include <sys/stat.h>,这样就解决了

4.3:接下来可能语言到这样的错误:speaker-test.c里面报wav_file_dir没有定义,这个值是用来定义你的wav文件存放在pad中的位置的,你随便放在哪里,我定义的路径
就是在/sdcard目录下面

经过上面的种种修改,alsa-utils工具终于编译成功了

转载

F. Linux编译时报错fatal error: alsa/asoundlib.h: No such file or directory

你需要自己编译alsa-lib的arm版本,然后安装(make install)到预先定义的目标文件夹$prefix。编译music.c时在编译选项中加入-I$(prefix)/include -L$(prefix)/lib即可。

G. 如何安装ALSA驱动

1.下载驱动

你可以到这里下载ALSA的驱动:

你需要下载以下几个包:
alsa-driver-1.0.10.tar.bz2
alsa-lib-1.0.10.tar.bz2
alsa-utils-1.0.10.tar.bz2

2.分别解压:

#tar jxvf alsa-driver-1.0.10.tar.bz2
#tar jxvf alsa-lib-1.0.10.tar.bz2
#tar jxvf alsa-utils-1.0.10.tar.bz2

3.先进入alsa-driver,然后是,alsa-lib,最后是alsa-utils文件夹进行编译:

#./configure
#make
#make install

最后一步再次进入alsa-driver文件夹运行再编译请输入:
#./snddevices

等几分钟后编译完成,到此驱动总算安装完了,但是如果你马上重启动的话你的声卡还是不能工作,why?很简单你还得修改你的模块文件/etc/moles.conf
#vi /etc/moles.conf

并在最后加入以入几行:

#====== added those lines =============
alias char-major-116 snd
options snd major=116 cards_limit=1
#--- Intel 8x0 and SiS 7012 ----------
alias snd-card-0 snd-intel8x0
options snd-intel8x0 index=0 id="ICH"
alias char-major-14 soundcore
alias sound-slot-0 snd-card-0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
#====

然后保存退出重启。这就完成了,还不发声 ?不要紧我也遇到,打开音量控制器,你会发现所有的音量都是0, 接下来就不用我教了吧,调好音量后,先不要关控制器,直接测试声卡。能听到声音吗?还没有?那就把电脑砸了。

二、安装ALSA声卡驱动程序
1.到http://www.heihei.com/下载下面四个软件包:
alsa-driver-0.5.9.tar.bz2
alsaconf-0.4.3b.tar.gz
alsa-lib-0.5.9.tar.bz2
alsa-utils-0.5.9.tar.bz2
2.先安装alsa-driver-0.5.9.tar.bz2这个文件:
(1)cp alsa-driver-0.5.9.tar.bz2 /tmp
将alsa-driver-0.5.9.tar.bz2 拷到/tmp目录下。
(2)bunzip2 alsa-driver-0.5.9.tar.bz2
压缩这个文件,会在/tmp目录下生成一个文件叫做alsa-driver-0.5.9.tar。
(3)tar xvf alsa-driver-0.5.9.tar
将会在/tmp目录下产生一个子目录叫做alsa-driver-0.5.9,alsa的所有文件就存放在这个目录下。
(4)cd alsa-driver-0.5.9
进入alsa的驱动程序所存放的目录,准备配置和编译它。这时你可以看一下目录下的INSTALL文件来了解安装的步骤和注意事项。
(5)依次运行下面三个命令:
./configure
make install
./snddevices
3.编辑/etc/ moles.conf文件
这个文件的配置虽然比较麻烦,但用alsaconf-0.4.3b.tar.gz也可以配好它,运行命令:
(1)cp alsaconf-0.4.3b.tar.gz /tmp
将alsaconf-0.4.3b.tar.gz 拷到/tmp目录下。
(2)tar zxvf alsaconf-0.4.3b.tar.gz
解压缩这个文件,会在/tmp目录下生成一个子目录叫做alsaconf-0.4.3b。
(3)./alsaconf
会出现一个窗口叫你选择声卡,像SoundBlaster及ESS1868、S3_SonicVibes_PCI、Ensoniq_AudioPCI_ES1370 1371等,很多目前的kernel还不支持的声卡它都可以支持了。
选好声卡之后系统会问你一些问题,都回答OK,然后会回到第一个画面问你要不要继续设第二张声卡,选“No_more_cards”退出即可。完成这个步骤之后,/etc/moles.conf这个文件就基本上自动配置好了,重新启动电脑后声卡就可以发声了。
4.如果还不行,那么你就还需要安装alsa-lib和alsa-utils,安装方法和alsa-driver一样,注意要先安装alsa-lib,再安装alsa-utils。将文件拷到/tmp目录,解压缩,然后运行命令make和make install,具体请参照上面alsa-driver的安装步骤。
安装后到alsa-utils(解开alsa-utils-0.5.9.tar.bz2会产生该目录)目录下的alsamixer子目录执行
./alsamixer
好了,你的声卡应该能发声了。

H. Y450,ubuntu10.10,编译声卡(ALC269)驱动(alsa)之后无声音,aplay -l提示无声卡,lspci -v命令找到显卡

如果没有编译经验最好不好自己搞。ubuntu默认的驱动都是和系统匹配的,而你自己搞得就很有可能不匹配ubuntu的声音系统。

I. ALSA 编译问题~我用这个snd_pcm_close(handle)关闭声卡后,再打开声卡用于回放,可是实际上没有关闭

你是怎么做的 是录制成文件还是存在buf里? playback的handle与record的handle需要设成两个 他俩不是公用的 open的时候可以一起打开 都需要初始化,如果你只初始化了record没初始化playback当然没有声音

热点内容
testdisklinux 发布:2025-04-03 09:35:29 浏览:874
unity3d塔防游戏源码 发布:2025-04-03 09:27:37 浏览:830
源代码程序经过编译 发布:2025-04-03 09:23:35 浏览:685
symvers怎么编译出来 发布:2025-04-03 09:18:00 浏览:111
bp神经网络的学习算法 发布:2025-04-03 09:01:19 浏览:603
重播编程 发布:2025-04-03 08:47:36 浏览:852
汽车配置买的太低怎么办 发布:2025-04-03 08:34:31 浏览:281
shell脚本中执行shell 发布:2025-04-03 08:26:36 浏览:785
给期货账号转账为什么要银行密码 发布:2025-04-03 07:55:20 浏览:627
呼叫中心话术脚本 发布:2025-04-03 07:29:22 浏览:119