一、下载配置buildroot源文件
buildroot下载地址:
链接: https://pan.baidu.com/s/1NKMkyUfifO8CH-PQtsN5Fw 提取码: vvbq
【buildroot-2018.02/buildroot-2018.02.tar.gz】
将下载的buildroot压缩文件解压到ubuntu虚拟机的用户目录下,目录需要具备读写权限。
$ tar zxvf buildroot-2018.02.tar.gz
二、buildroot编译
在buildroot源文件configs目录下已添加IDO-EVB6Y09文件系统的配置文件,配置文件说明如下:
配置文件 | 功能说明 |
---|---|
ido_evb6y09_hf_defconfig | 配置编译硬浮点文件系统,不带Qt |
ido_evb6y09_hf_qt4_8_7_defconfig | 配置编译硬浮点文件系统,Qt版本为Qt4.8.7 |
ido_evb6y09_hf_qt5_9_4_defconfig | 配置编译硬浮点文件系统,Qt版本为Qt5.9.4 |
ido_evb6y09_sf_defconfig | 配置编译软浮点文件系统,不带Qt |
ido_evb6y09_sf_qt4_8_7_defconfig | 配置编译软浮点文件系统,Qt版本为Qt4.8.7 |
注:i.MX6ULL具有浮点运算单元,应用程序中的浮点运算可以借助浮点运算单元以更高的效率执行。
- 选择配置文件配置buildroot的编译选项
以编译硬浮点Qt4.8.7版本的文件系统为例,在buildroot的根目录下执行下方命令,使用“ido_evb6y09_hf_qt4_8_7_defconfig”配置buildroot编译选项。$ make ido_evb6y09_hf_qt4_8_7_defconfig
- 编译文件系统
编译buildroot需要用到root权限,在buildroot的根目录执行下方命令开始编译。buildroot构建文件系统需要从网络上下载软件源码,如果是首次编译则需要花费较长时间下载编译资源。
编译完成后,即可在output/images/目录下获得打包好的根文件系统rootfs.tar$ sudo make
- 制作编译工具包
执行以上命令后 buildroot*/output/host 目录即为用于编译其它用户应用程序或Qt应用的交叉编译工具包。$ sudo make sdk
4.打包编译工具包至别的PC使用
切换到 output 目录,将拷贝 host 目录并重名了
$ cd output
$ sudo cp host imx6ull_sdk
$ sudo tar -cjf imx6ull_sdk.tar.bz2 imx6ull_sdk
将打包好的文件 imx6ull_sdk.tar.bz2 拷贝至存放交叉编译工具的目录下,例如放置于 /opt/industio/ 目录
$ sudo tar -xjf imx6ull_sdk.tar.bz2 -C
$ cd /opt/industio/imx6ull_sdk
$ sudo relocate-sdk.sh
$ ln -sf $PWD/arm-buildroot-linux-gnueabihf/sysroot/usr/mkspecs mkspecs
三、buildroot配置修改
在buildroot根目录下执行下方命令即可打开图形化配置界面
$ make menuconfig
- Target options
配置硬件CPU的参数
- Build options
设置配置保存路径、下载路径等参数。 - Toolchain
编译链设置,此处设置为外部工具链,并指定已安装的交叉编译器的位置。 - System configuration
配置系统主机名和root密码等信息。 - Target packages
包管理,此目录下包含了第三方开源工具编译选项,根据功能需求选择所要编译的软件包。
四、配置busybox
busybox中集成了很多linux工具,ifconfig、cat、cp等命令都包含在busybox中。
在buildroot的Target packages目录下包含了busybox配置文件,编译时会按照busybox.config中的配置下载和编译busybox软件。在buildroot的根目录执行下方命令即可开启busybox的图形化配置界面。
$ make busybox-menuconfig
五、在文件系统中添加用户软件和服务
由buildroot编译构建的文件系统只包含一些常规的软件和服务,还要针对开发板的功能需求添加自定义的程序来完善系统。
IDO-EVB6Y09开发板的自定义服务和程序可以从下方地址中获取:
链接: https://pan.baidu.com/s/1NKMkyUfifO8CH-PQtsN5Fw 提取码: vvbq
【buildroot-2018.02/buildroot_patch】
5.1 添加开机自启动服务
开机自启动服务用于执行开机自动运行的应用程序。
文件位于:【buildroot_patch/app_wrapper】
将下载的app_wrapper目录拷贝至开发板中,进入app_wrapper目录执行拷贝脚本即可。
# ./add_invokeExe.sh
5.2 添加EC20服务
EC20服务实现了EC20模块检测和拨号上网等功能。
文件位于:【buildroot_patch/lte】
将下载的lte目录拷贝至开发板中,进入lte目录下,执行拷贝脚本添加。
# ./add_lte.sh
5.3 添加qt及声卡环境变量
用于指定Qt的触摸屏设备,以及声卡参数设置。
文件位于:【buildroot_patch/qt_env】
将下载的qt_env目录拷贝至开发板中,进入qt_env目录,执行拷贝脚本添加。
# ./add_qtenv.sh
5.4 添加sd卡和U盘热拔插服务
热拔插服务实现了SD卡U盘插入检测自动挂载,和拔出自动卸载删除挂载点的功能。
文件位于:【buildroot_patch/sd_usb_hotplug】
将下载的sd_usb_hotplug文件夹拷贝至开发板中,进入sd_usb_hotplug目录,执行拷贝脚本。
# ./add_hotplug.sh
5.5 添加wlan服务
wlan服务包含了Wlan开启和停止AP/STA服务的脚本。
文件位于:【buildroot_patch/wlan】
将下载的wlan文件夹拷贝至开发板中,进入wlan目录,执行脚本。
# ./add_wlan.sh