XK-RTU980边缘计算物联网平台Linux程序编译方法

2022-06-01 18:01:58 矽控物联 291

4.1、编译UBOOT

1)进入u-boot-2016.11目录

$ls configs/nuc980*  检索nuc980编译文件

2)配置默认参数

$make nuc980_chili_defconfig

3)编译

$make

编译结束,会生成u-boot.bin spl/u-boot-spl.bin

                                              矽控物联

Make后,报错:arm-linux-gcc: 致命错误:-fuse-linker-plugin, but liblto_plugin.so not found

编译中断。

矽控物联

这个问题可以通过使用buildroot工具编译解决。

uboot-spl.bin说明:

uboot-spl.bin作用是把uboot.bin搬运到DRAM里面运行,这是NAND需要的,如果是其他启动方式,不需要这个东西。XK-RTU980SPI Flash启动,就不需要。

和它相关的有几个参数:

CONFIG_SPL_TEXT_BASESPL的启动位置,在烧录的时候使用的地址

CONFIG_SYS_TEXT_BASEUboot的连接地址

CONFIG_SYS_PHY_UBOOT_BASE:这个要和uboot链接地址在相同位置

4.2、编译kernel

XK-RTU980  Linux BSP安装之后会获取到最新的linux kernel

1)进入源码目录:

$cd linux-4.4.y/

矽控物联

2)查看配置文件

$ls arch/arm/configs/nuc980*

矽控物联

3)选择XK_RTU980的板子配置文件进行配置

$make nuc980_chili_defconfig

矽控物联

4)整合文件系统ROOTFS

现在还不能直接编译,会报错找不到文件系统。

到之前下载bsp目录下,将rootfs拷贝到kernel源码同级目录。

官方配置的ramdisk镜像,文件系统会和kernel一起被打包。

同时在kernel同级目录创建image文件夹

$mkdir ../image

安装软件

$sudo apt-get install u-boot-tools

矽控物联

5)编译内核镜像

$make uImage

编译完成,生成镜像文件

4.3、启动环境文件制作

nuc980支持直接下载.txt的环境变量文件。打开env.txt,修改2个参数

1BOOT参数

bootcmd=sf probe 0 18000000; sf read 0x7fc0 0x200000 0x220000; bootm 0x7fc0 sf readsize必须大于内核uImage镜像的大小,可以多读,不可以少。

2)默认分区

bootargs=noinitrd root=/dev/mtdblock1 rw rootfstype=cramfs console=ttyS0,115200n8 rdinit=/sbin/init mem=64M

默认分区表配置下,无Nand时候,SPI的第2个分区映射到了/dev/mtdblock1。有Nand情况则应该是root=/dev/mtdblock4

3XK-RTU980环境参数内容

      XK-RTU980可以按如下内容编辑一个evn.txt文件,烧录在0x80000地址。

//env.txt

baudrate=115200

bootdelay=1

stderr=serial

stdin=serial

stdout=serial

setspi=sf probe 0 30000000

loadkernel=sf read 0x7fc0 0x200000 0x800000

bootcmd=run setspi;run loadkernel;bootm 0x7fc0

4.4、编译buildroot

      在编译程序时,可以使用Buildroot方式进行整合编译。在安装完XK-RTU980 Linux BSP后,目录中会有一个Bulidroot目录,可以使用buildroot实现ubootlinux kernelrootfs的编译。操作方法如下:

1)进入buildroot目录

$cd  NUC980_Buildroot

Tips:更新Bulidroot工具:

【 以下动作只需要在更新 Buildroot 工具时使用 】

进入Buildroot 资料夹后请输入以下指令:

git reset –hard

git pull

更新完成后进入 dl 资料夹,先将既有的 linux   kernel 与 u-boot 删除,并输入以下指令:

sudo rm -rf   linux-master.tar.gz

输入密码 user,并输入以下指令:

sudo rm -rf   uboot-master.tar.gz

离开 dl 资料夹,进入 Builroot 资料夹下   make clean

2)清除编译输出文件

$make clean

3)导入XK-RTU980默认配置文件

$make nuvoton_nuc980_chili_defconfig

4)修改编译配置,可选,如果修改了配置文件,可以保存为自命名的新文件以备用。

$make menuconfig

5)编译,第一次编译时,会下载各种依赖库,大约需要1个小时,请耐心等待。

$make

编译成功后,NUC980 BSP出现在NUC970_Buildroot目录下面的output目录

/ Buildroot-master/output/images/uImage

/ Buildroot-master/output/build/uboot-master/u-boot.bin

如果编译的时候出现报错,可以尝试sudo ./install_nuc980_bsp.sh之后,重新make

Buildroot编译过程长,要下载很多东西,对磁盘空间有要求。如果是VMware虚拟机之前只有30G的话,建议扩容到50G。扩容方法见8.4章节。

      编译完成后。在~/xk_rtu980/nuc980bsp/buildroot/output/images目录中获取ubootkernel(文件系统),将这两个文件拷贝出共享目录。

矽控物联


上述教程适用于通用型AIoT物联网边缘计算平台XK-RTU980产品:

https://www.silicontrol.com/product/showproduct.php?id=95






矽控物联

矽控电子核心团队拥有十余年的硬件正向研发,生产制程,测试手法,品质控制经验。尤其擅长嵌入式ARM平台的工控物联网产品,以及海思平台的IPC视频类模组开发,为您的产品从创意到落地、批量市场化助力。公司可提供从硬件设计(原理开发及PCB Layout),PCB制板,SMT及接插件焊接,产品测试,产品老化全流程外包服务,收费合理,品质可靠。

垂询电话:0510-83488567-1     业务邮箱:wxdianzi#foxmail.com (#更换为@)