第三方库的安装配置

串口(minicom和ncurse)

ncurses (new curses)库是System V Release 4.0及curses更高版本中的免费软件仿真库。它使用terminfo格式,支持pads和color ,多种高亮显示,多形式字符和功能键映射,该库很容易移植到任何符合ANSI/ posix的类unix系统中运行。

下载地址Ncurses - Free Software

具体编译构建步骤如下:

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
2
3
4
sudo -s //切换到 root 
source /etc/profile //执行/etc/profile
make install //安装,此时已经工作在 root 下,因此不需要加“sudo”
su moss //编译完成以后回原来的用户

安装成功以后查看一下前面创建的“ncurses”文件夹,会发现里面多了一些东西,

我们需要将 include、 lib 和 share 这三个目录中存放的文件分别拷贝到开发板根文件系统中的/usr/include、 /usr/lib 和/usr/share 这三个目录中,如果哪个目录不存在的话请自行创建!!拷贝命令如下:

1
2
3
sudo cp lib/* /home/moss/linux/nfs/rootfs/usr/lib/ -rfa
sudo cp share/* /home/moss/linux/nfs/rootfs/usr/share/ -rfa
sudo cp include/* /home/moss/linux/nfs/rootfs/usr/include/ -rfa

然后在开发板根目录的/etc/profile(没有的话自己创建一个)文件中添加如下所示内容:

1
2
3
4
5
#!/bin/sh
LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
export TERM=vt100
export TERMINFO=/usr/share/terminfo

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
2
make
make install

装完后文件生成如图。将 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
2
cd /usr/share 
sudo mkdir arm-alsa

最后在开发板根文件系统中也创建一个/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
2
make 
sudo make install

可能会出现错误提示:


libatopology.la 编译失败, 这是因为 sudo 会切换到 root 用户下,但是此时 root 用户下的环境变量中没有交叉编译器路径,因此会提示找不到“arm-linux-gnueabihf-gcc”,从而导致 libatopology.la 编译失败。解决方法就是先切换到 root 用户,重新执行一下/etc/profile
文件,然后直接 make install 即可,命令如下:

1
2
3
4
sudo -s 
source /etc/profile
make install
su moss

编译完成以后前面创建的“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
2
3
4
cd alsa-lib //进入 alsa-lib
sudo cp lib/* /home/moss/linux/nfs/rootfs/lib/ -af
cd /usr/share/arm-alsa //进入 arm-alsa 目录,拷贝配置文件
sudo cp * /home/moss/linux/nfs/rootfs/usr/share/arm-alsa/ -raf

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
2
3
./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
make
sudo make install

编译完成以后就会在前面创建的“alsa-utils”目录下生成 bin、 sbin 和 share 三个文件夹,如


将图 中 bin、 sbin 和 share 这三个目录中的所有文件分别拷贝到开发板根目录下的
/bin、 /sbin 和/usr/share/alsa 目录下,命令如下:

1
2
3
4
cd alsa-utils
sudo cp bin/* /home/zuozhongkai/linux/nfs/rootfs/bin/ -rfa
sudo cp sbin/* /home/zuozhongkai/linux/nfs/rootfs/sbin/ -rfa
sudo cp share/* /home/zuozhongkai/linux/nfs/rootfs/usr/share/ -rfa

打开开发板根文件系统中的/etc/profile 文件,在里面加入如下所示内容:

1
export ALSA_CONFIG_PATH=/usr/share/arm-alsa/alsa.conf

ALSA_CONFIG_PATH 用于指定 alsa 的配置文件,这个配置文件是 alsa-lib 编译出来的。