完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
FlexBuild使用请不要跳过这段话:
开发环境是开发人员在开发过程当中,所需的软硬件平台。开发环境并不是一个固定的样式,在这里,我们详细讲解一个嵌入式Linux开发环境搭建的方法。您已经对嵌入式开发非常了解的话,可以按照自己的需求来搭建环境。如果和本手册环境不一样而产生报错,您可以从国内一些大Linux论坛和网站搜索相关的信息来解决。本册介绍的环境经过飞凌的测试,如果对嵌入式开发不是非常熟悉的朋友,希望您按照飞凌提供的方法来搭建环境。 一、 版本说明及硬件平台操作系统:Ubuntu18.04 64位版 交叉工具链:aarch64-linux-gnu-gcc SDK版本:LSDK-20.04-V5.4.3 硬件平台:OK1028A-C开发板 ( 基于NXP Layerscape LS1028A CPU ) https://www.forlinx.com/product/127.html 二、 编译环境搭建1、编译环境说明flexbuild是NXP官方提供的QorIQ LS系列的编译环境,飞凌在NXP官方版本的flexbuild的基础上针对OK1028A-C平台进行了定制修改,更适合用户快速开发。flexbuild中提供了整个系统编译需要的所有源码,比如linux内核、uboot、firmware、app程序以及一个完整的文件系统。对于文件系统,用户可直接使用,当然您也可以选择从零编译一个文件系统,但是相比飞凌提供的文件系统会缺少一部分配置,不建议您这样做。 Flexbuild默认只支持ubuntu18,当然它也支持docker,由于大多数用户对docker并不熟悉,因此强烈建议您使用飞凌提供的ubuntu18虚拟机进行编译开发。注意:虚拟机用户名为forlinx,密码为forlinx。 LS1028系列 OK1028A-C开发板软件镜像编译整体分为两部分,第一部分为启动第一阶段相关内容,主要包含了rcw、u-boot、网络相关固件、安全相关固件,整体被编译为一个16M的firmware镜像。第二部分是ubuntu文件系统。 2、编译环境搭建2.1、下载flexbuild包并解压 路径:OK1028-C(Linux)用户资料Linux源码OK1028-linux-fs.tar.bz2 注意:编译过程中请全程使用root用户操作 root@ubuntu:~$ sudo -s (此时要求密码,密码为1) 将OK1028-linux-fs.tar.bz2放到虚拟机/home/forlinx/work目录 root@ubuntu:~$ mdkir -p /home/forlinx/work root@ubuntu:~$ tar xvf OK1028-linux-fs.tar.bz2 -C /home/forlinx/work root@ubuntu:~$ cd /home/forlinx/work/OK1028-linux-fs/flexbuild 2.2、主要目录/文件简介
注意:整个flexbuild环境以该操作为基础,如果您重启了虚拟机或者Shell终端都需要重新执行该操作。 三、 全部编译第一次进行编译时,建议您使用全部编译命令进行编译,好处是操作简单,只需要一条命令就可以编译出所有需要的文件。 root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -m ls1028ardb -r ubuntu:main 生成的文件位于build/images目录: 四、 打包烧写镜像root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ ./sdfuseIMG.sh 将在OK1028-linux-fs目录生成images.tar.bz2,后续可以直接解压到烧写U盘中。 五、 单独编译FirmwareLs系列的芯片在启动时需要加载一些固件,例如rcw(复位控制字),uboot等,在开发过程中如果您对上述文件进行了修改,就需要重新编译并将这些文件制打包成一个firmware镜像文件,烧写到启动设备中,编译firmware的命令为: 清除之前编译的文件: root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i clean-firmware 编译Firmware: EMMC启动: root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkfw -a arm64 -m ls1028ardb -b emmc TF卡启动: root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkfw -a arm64 -m ls1028ardb -b sd XSPI启动: root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkfw -a arm64 -m ls1028ardb -b xspi OK1028支持EMMC、TF卡、XSPI启动,需要将特定的Firmware烧写到对应的介质中。 六、 单独编译内核及模块 LS1028A平台默认的配置文件为:packages/linux/linux/arch/arm64/configs/ok1028_defconfig 清除之前编译文件: root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i clean-linux 编译内核: root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -c linux -a arm64 -m ls1028ardb 将编译好的内核、设备树文件更新到build/images目录: root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i mkboot -m ls1028ardb 注意:单独编译内核及模块时,务必执行mkboot操作,以便后续打包烧写镜像。 配置内核(如果使用默认配置可略过) root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -c linux:custom -m ls1028ardb -a arm64 生成的配置文件为:build/linux/linux/arm64/LS/output/.config 可以将改动过后的文件覆盖:packages/linux/linux/arch/arm64/configs/ok1028_defconfig 七、 单独编译app程序packages/apps包含了飞凌LS1028A平台相关的上层应用层工具例如OpenSSL如果您对这部分的源码有所改动,需要使用以下命令单独编译: 编译命令如下: root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -c apps -m ls1028ardb 注意:为了加快编译速度,默认飞凌已经将默认编译好的二进制程序集成到文件系统基础包中,默认编译文件系统时不再编译此类app程序,如果您对packages/apps/目录的代码有修改,可修改configs/build_lsdk.cfg开启对应软件的编译选项,例如CONFIG_APP_DPDK=y。 更新app到文件系统中: root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i merge-component -a arm64 -m ls1028ardb 重新生成ubuntu镜像:root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ flex-builder -i packrfs -r ubuntu:main -m ls1028ardb 此外,飞凌提供的命令行和Qt测试程序位于packages/rfs/ls1028_ubuntu_main_overlay/forlinx/apps目录,该目录的测试程序将在编译文件系统的过程中自动构建,您可以使用如下方式进行构建: 以qt can测试程序为例: root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ mount -o bind /dev build/rfs/rootfs_lsdk2004_ubuntu_main_arm64/dev root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ chroot build/rfs/rootfs_lsdk2004_ubuntu_main_arm64 /bin/bash root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ cd /forlinx/apps/forlinx-qt/can/ root@ubuntu:/forlinx/apps/forlinx-qt/can# qmake root@ubuntu:/forlinx/apps/forlinx-qt/can# make root@ubuntu:/forlinx/apps/forlinx-qt/can# make install 退出编译环境: root@ubuntu:/forlinx/apps/forlinx-qt/can# exit root@ubuntu:~/work/OK1028-linux-fs/flexbuild$ umount build/rfs/rootfs_lsdk2004_ubuntu_main_arm64/dev 原文链接:https://www.forlinx.com/article_view_572.html |
|
相关推荐
|
|
你正在撰写讨论
如果你是对讨论或其他讨论精选点评或询问,请使用“评论”功能。
AI模型部署边缘设备的奇妙之旅:边缘端设备的局域网视频流传输方案
1204 浏览 0 评论
1427 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
6046 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1831 浏览 0 评论
2876 浏览 0 评论
76931 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-11 10:23 , Processed in 0.309060 second(s), Total 33, Slave 27 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号