1d5ac70f0Sopenharmony_ci 2d5ac70f0Sopenharmony_ci ALSA library installation 3d5ac70f0Sopenharmony_ci ========================= 4d5ac70f0Sopenharmony_ci 5d5ac70f0Sopenharmony_ciInstallation from tarball 6d5ac70f0Sopenharmony_ci------------------------- 7d5ac70f0Sopenharmony_ci 8d5ac70f0Sopenharmony_ciFor installation you can use these commands: 9d5ac70f0Sopenharmony_ci 10d5ac70f0Sopenharmony_ci ./configure 11d5ac70f0Sopenharmony_ci make install 12d5ac70f0Sopenharmony_ci 13d5ac70f0Sopenharmony_ci 14d5ac70f0Sopenharmony_ciCompilation from Git-sources 15d5ac70f0Sopenharmony_ci--------------------------- 16d5ac70f0Sopenharmony_ci 17d5ac70f0Sopenharmony_ciRequirements: 18d5ac70f0Sopenharmony_ci * automake 19d5ac70f0Sopenharmony_ci * libtool 20d5ac70f0Sopenharmony_ci 21d5ac70f0Sopenharmony_ciTo compile alsa-lib from source: 22d5ac70f0Sopenharmony_ci 23d5ac70f0Sopenharmony_ci ./gitcompile 24d5ac70f0Sopenharmony_ci 25d5ac70f0Sopenharmony_ciIf you do not want to use the supplied gitcompile-script, you can 26d5ac70f0Sopenharmony_cicompile alsa-lib manually by using these steps: 27d5ac70f0Sopenharmony_ci 28d5ac70f0Sopenharmony_ci libtoolize --force --copy --automake 29d5ac70f0Sopenharmony_ci aclocal 30d5ac70f0Sopenharmony_ci autoheader 31d5ac70f0Sopenharmony_ci automake --foreign --copy --add-missing 32d5ac70f0Sopenharmony_ci autoconf 33d5ac70f0Sopenharmony_ci ./configure 34d5ac70f0Sopenharmony_ci make 35d5ac70f0Sopenharmony_ci 36d5ac70f0Sopenharmony_ci 37d5ac70f0Sopenharmony_ciNote: Some automake packages have missing aclocal program. Use newer version 38d5ac70f0Sopenharmony_ci in the case. 39d5ac70f0Sopenharmony_ci 40d5ac70f0Sopenharmony_ci 41d5ac70f0Sopenharmony_ciCompilation of static library 42d5ac70f0Sopenharmony_ci----------------------------- 43d5ac70f0Sopenharmony_ci 44d5ac70f0Sopenharmony_ciIf you would like to use the static ALSA library, you need to use these 45d5ac70f0Sopenharmony_cioptions for the configure script: 46d5ac70f0Sopenharmony_ci 47d5ac70f0Sopenharmony_ci ./configure --enable-shared=no --enable-static=yes 48d5ac70f0Sopenharmony_ci 49d5ac70f0Sopenharmony_ciUnfortunately, due to bug in the libtool script, the shared and static 50d5ac70f0Sopenharmony_cilibrary cannot be built together. 51d5ac70f0Sopenharmony_ci 52d5ac70f0Sopenharmony_ci 53d5ac70f0Sopenharmony_ciPartial Builds 54d5ac70f0Sopenharmony_ci-------------- 55d5ac70f0Sopenharmony_ci 56d5ac70f0Sopenharmony_ciYou can choose the core components to build via --enable-* or --disable-* 57d5ac70f0Sopenharmony_ciconfigure option for reducing the size of libasound. The selectable 58d5ac70f0Sopenharmony_cicomponents are: pcm, mixer, rawmidi, hwdep, seq and instr. 59d5ac70f0Sopenharmony_ciFor example, --disable-rawmidi will prevent to build the stuff related 60d5ac70f0Sopenharmony_ciwith raw MIDI. As default, all components are enabled. 61d5ac70f0Sopenharmony_ci 62d5ac70f0Sopenharmony_ciThe PCM plugins to build can be selected via --with-pcm-plugins 63d5ac70f0Sopenharmony_ciconfigure option. Multiple plugins can be passed by separation with 64d5ac70f0Sopenharmony_cicomma. For example, to select _only_ rate and linear plugins (and 65d5ac70f0Sopenharmony_cidisable other plugins), pass 66d5ac70f0Sopenharmony_ci --with-pcm-plugins=rate,linear 67d5ac70f0Sopenharmony_ciNote that "hw" plugin is always enabled. 68d5ac70f0Sopenharmony_ciPassing "all" will select all available plugins (which is the default 69d5ac70f0Sopenharmony_cibehavior). 70d5ac70f0Sopenharmony_ci 71d5ac70f0Sopenharmony_ciWhen you select "plug" plugin, copy and linear plugins will be 72d5ac70f0Sopenharmony_ciautomatically selected, too. That is, the linear-format and 73d5ac70f0Sopenharmony_ciaccess-type conversions are always available with plug layer. 74d5ac70f0Sopenharmony_ciThe other conversions of plug (channel shrink/expansion, rate, 75d5ac70f0Sopenharmony_cinon-linear and float conversions) are enabled when the corresponding 76d5ac70f0Sopenharmony_ciplugin is selected, too. 77d5ac70f0Sopenharmony_ci 78d5ac70f0Sopenharmony_ci 79d5ac70f0Sopenharmony_ciConfiguration for cross-compilation 80d5ac70f0Sopenharmony_ci----------------------------------- 81d5ac70f0Sopenharmony_ci 82d5ac70f0Sopenharmony_ciWhen you would like to cross-compile ALSA library (e.g. compile on 83d5ac70f0Sopenharmony_cii686 host but for arm architecture) you will need to call ./configure 84d5ac70f0Sopenharmony_ciscript with additional parameters: 85d5ac70f0Sopenharmony_ci 86d5ac70f0Sopenharmony_ciCC=arm-linux-gcc ./configure --host=arm-linux 87d5ac70f0Sopenharmony_ci 88d5ac70f0Sopenharmony_ciYou can omit setting 'CC' variable and cross-compiler will be guessed too. 89d5ac70f0Sopenharmony_ci 90d5ac70f0Sopenharmony_ciSo simplest version would be: 91d5ac70f0Sopenharmony_ci 92d5ac70f0Sopenharmony_ci./configure --host=arm-linux 93d5ac70f0Sopenharmony_ci 94d5ac70f0Sopenharmony_ciFor platform names in the form cpu-vendor-os (or aliases for this) 95d5ac70f0Sopenharmony_ciyou should look in 'config.guess' script. Target and all paths 96d5ac70f0Sopenharmony_ciused here are only examples and should not be directly applicable to 97d5ac70f0Sopenharmony_ciyour system. 98d5ac70f0Sopenharmony_ci 99d5ac70f0Sopenharmony_ciConfiguration for machines without FPU 100d5ac70f0Sopenharmony_ci-------------------------------------- 101d5ac70f0Sopenharmony_ci 102d5ac70f0Sopenharmony_ciIf your machine does not have FP unit, you should use '--with-softfloat' 103d5ac70f0Sopenharmony_cioption. This option disables usage of float numbers in PCM route plugin. 104d5ac70f0Sopenharmony_ciALSA could then leave much more CPU cycles for your applications, but you 105d5ac70f0Sopenharmony_cicould still need some floating point emulator. 106d5ac70f0Sopenharmony_ci 107d5ac70f0Sopenharmony_ciThread-safety option 108d5ac70f0Sopenharmony_ci-------------------- 109d5ac70f0Sopenharmony_ci 110d5ac70f0Sopenharmony_ciAs default, major PCM functions of alsa-lib are built to be 111d5ac70f0Sopenharmony_cithread-safe with pthread mutex (while this wasn't present in the 112d5ac70f0Sopenharmony_civersions earlier than 1.1.2). If you want to build without this 113d5ac70f0Sopenharmony_cithread-safety support but reduce the overhead, pass 114d5ac70f0Sopenharmony_ci--disable-thread-safety configure option. 115d5ac70f0Sopenharmony_ci 116d5ac70f0Sopenharmony_ciJack plugin 117d5ac70f0Sopenharmony_ci----------- 118d5ac70f0Sopenharmony_ci 119d5ac70f0Sopenharmony_ciJACK plugin is moved to alsa-plugins package. 120d5ac70f0Sopenharmony_ci 121d5ac70f0Sopenharmony_ciTrouble Shooting 122d5ac70f0Sopenharmony_ci---------------- 123d5ac70f0Sopenharmony_ci 124d5ac70f0Sopenharmony_ci* Install path on Fedora Core 3 125d5ac70f0Sopenharmony_ci 126d5ac70f0Sopenharmony_ci FC3 installs its system ALSA library to /lib instead of /usr/lib. 127d5ac70f0Sopenharmony_ci Specify --libdir=/lib to configure to overwrite it with the new library, 128d5ac70f0Sopenharmony_ci or run like 129d5ac70f0Sopenharmony_ci 130d5ac70f0Sopenharmony_ci # ln -sf /usr/lib/libasound.so.2.0.0 /lib/libasound.so.2.0.0 131d5ac70f0Sopenharmony_ci 132d5ac70f0Sopenharmony_ci to make symlink to the new path. 133d5ac70f0Sopenharmony_ci Note that /lib might be /lib64 on 64bit architecture. 134