linux开发板安装第三方库
第三方库的安装配置
串口(minicom和ncurse)
ncurses (new curses)库是System V Release 4.0及curses更高版本中的免费软件仿真库。它使用terminfo格式,支持pads和color ,多种高亮显示,多形式字符和功能键映射,该库很容易移植到任何符合ANSI/ posix的类unix系统中运行。
具体编译构建步骤如下:
1、构建配置
1 | ./configure --prefix=/home/moss/linux/tool/ncurse --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf --with-shared --without-profile --disable-stripping --without-progs --with-manpages --without-tests |
- configure :配置脚本。(在命令行终端下运行)
- –prefix: 用于指定编译结果的保存目录。
- –host: 用于指定编译器前缀,这里设置为 “arm-linux-gnueabihf”。
- –target :用于指定目标,这里设置为“arm-linux-gnueabihf”。
配置结果:
1 | make #make进行编译 |
1 | make install #进行安装 |
可能会有报错,可能是找不到交叉编译位置,可以使用命令转到root的模式下进行安装。
1 | sudo -s //切换到 root |
安装成功以后查看一下前面创建的“ncurses”文件夹,会发现里面多了一些东西,
我们需要将 include、 lib 和 share 这三个目录中存放的文件分别拷贝到开发板根文件系统中的/usr/include、 /usr/lib 和/usr/share 这三个目录中,如果哪个目录不存在的话请自行创建!!拷贝命令如下:
1 | sudo cp lib/* /home/moss/linux/nfs/rootfs/usr/lib/ -rfa |
然后在开发板根目录的/etc/profile(没有的话自己创建一个)文件中添加如下所示内容:
1 | !/bin/sh |
minicom是一个命令行终端中由菜单驱动的串行通信调试程序。
下载地址minicom 2.8 - Download| Fossies Archive
1 | ./configure CC=arm-linux-gnueabihf-gcc --prefix=/home/moss/linux/tool/minicom --host=arm-linux-gnueabihf CPPFLAGS=-I/home/moss/linux/tool/ncurses/include LDFLAGS=-L/home/moss/linux/tool/ncurses/lib -enable-cfg-dir=/etc/minicom |
CC 表示要使用的 gcc 交叉编译器, –prefix 指定编译出来的文件存放目录,肯定要存放前面创建的 minicom 目录中。 –host 指定交叉编译器前缀, CPPFLAGS 指定 ncurses 的头文件路径,LDFLAGS 指定ncurses的库路径。配置成功后
1 | make |
装完后文件生成如图。将 minicom 目录中 bin 子目录下的所有文件拷贝到开发板根目录中的/usr/bin 目录下,命令如下:
1 | sudo cp bin/* /home/moss/linux/nfs/rootfs/usr/bin/ |
之后打开开发板的根文件系统,新建/etc/passwd 文件,然后在 passwd 文件里面输入如下所示内容:
1 | root:x:0:0:root:/root:/bin/sh |
音频声卡
alsa-lib 和 alsa-utils 源 码 , 下 载 地 址 为 : Advanced Linux Sound Architecture
alsa-lib 移植
注意 alsa-lib 编译过程中会生成一些配置文件,而这些配置信息的路径都是绝对路径,因此为了保证 ubuntu 和开发板根文件系统中的路径一致!在 ubuntu 和开发板中各创建一个路径和名字完全一样的目录,这里我们都创建一个/usr/share/arm-alsa 目录, ubuntu 中创建命令如下:
1 | cd /usr/share |
最后在开发板根文件系统中也创建一个/usr/share/arm-alsa 目录,命令如下:
1 | mkdir /usr/share/arm-alsa -p |
这样 ubuntu 和开发板根文件系统都有一个“/usr/share/arm-alsa”目录,交叉编译的时候就不怕存在引用绝对路径了,因为 ubuntu 和开发板中的配置文件路径都是一模一样的。由于 alsa-utils 要用到 alsa-lib 库,因此要先编译 alsa-lib 库。 alsa-lib 就是 ALSA 相关库文件,应用程序通过调用 ALSA 库来对 ALSA 框架下的声卡进行操作。先创建一个名为“alsa-lib”的目录用来保存 alsa-lib 的编译结果,然后将 alsa-lib-1.2.2.tar.bz2 拷贝到 ubuntu 中并解压,命令如下:
1 | tar -vxjf alsa-lib-1.2.9.tar.bz2 |
解压完成以后就会得到一个名为“alsa-lib-1.2.9”的文件夹,这个就是 alsa-lib 的源码。进入alsa-lib-1.2.9 目录,然后配置并编译,命令如下:
1 | ./configure --host=arm-linux-gnueabihf --prefix=/home/moss/linux/tool/alsalib --with-configdir=/usr/share/arm-alsa |
//配置注意, “–with-configdir”用于设置 alsa-lib 编译出来的配置文件存放位置,这里设置为前面创建的“/usr/share/arm-alsa”目录。
配置完成以后就可以编译了,命令如下:
1 | make |
可能会出现错误提示:
libatopology.la 编译失败, 这是因为 sudo 会切换到 root 用户下,但是此时 root 用户下的环境变量中没有交叉编译器路径,因此会提示找不到“arm-linux-gnueabihf-gcc”,从而导致 libatopology.la 编译失败。解决方法就是先切换到 root 用户,重新执行一下/etc/profile
文件,然后直接 make install 即可,命令如下:
1 | sudo -s |
编译完成以后前面创建的“alsa-lib”目录就会保存相应的编译结果,如图 65.4.1.2 所示:
图 65.4.1.2 alsa-lib 编译结果
ubuntu 中/usr/share/arm-alsa 目录下的内容如图 65.4.1.3 所示:
图 65.4.1.3 编译出来的配置文件。
将图 65.4.1.2 中 lib 目录下的所有文件拷贝到开发板根文件系统的/usr/lib 目录下,将图
65.4.1.3 中/usr/share/arm-alsa 目录下的所有文件拷贝到开发板的/usr/share/arm-alsa 目录下,命令如下:
1 | cd alsa-lib //进入 alsa-lib |
alsa-utils 移植
alsa-utils 是 ALSA 的一些小工具集合,我们可以通过这些小工具还测试我们的声卡。将 alsautils-1.2.2.tar.bz2 复制到 ubuntu 中并解压,命令如下:
1 | tar -vxjf alsa-utils-1.2.9.tar.bz2 |
解压成功以后会得到一个名为“alsa-utils-1.2.9”的文件夹,此文件夹就是 alsa-utils 源码。
重新创建一个名为“alsa-utils”的目录用于存放 alsa-utils-1.2.9 的编译结果。按照如下命令编译alsa-utils:
1 | ./configure --host=arm-linux-gnueabihf --prefix=/home/moss/linux/tool/alsautils --with-alsa-inc-prefix=/home/moss/linux/tool/alsa-lib/include/ --with-alsaprefix=/home/moss/linux/tool/alsa-lib/lib/ --disable-alsamixer --disable-xmlto |
编译完成以后就会在前面创建的“alsa-utils”目录下生成 bin、 sbin 和 share 三个文件夹,如
将图 中 bin、 sbin 和 share 这三个目录中的所有文件分别拷贝到开发板根目录下的
/bin、 /sbin 和/usr/share/alsa 目录下,命令如下:
1 | cd alsa-utils |
打开开发板根文件系统中的/etc/profile 文件,在里面加入如下所示内容:
1 | export ALSA_CONFIG_PATH=/usr/share/arm-alsa/alsa.conf |
ALSA_CONFIG_PATH 用于指定 alsa 的配置文件,这个配置文件是 alsa-lib 编译出来的。