SoC学习篇—Linux 系统搭建

一、制作.dtb与.rbf文件

1、编译硬件工程

打开黄金参考工程
在这里插入图片描述
全编译硬件工程
在这里插入图片描述
等待编译完成;编译结果
在这里插入图片描述

2、文件制作

打开【SoC EDS command shell】,进入工程所在目录
在这里插入图片描述
制作二进制格式的设备树文件【.dtb】

make dtb

在这里插入图片描述
查看生成的设备树文件【复制到桌面】
在这里插入图片描述
制作【.rbf文件,复制到桌面】
在这里插入图片描述
至此,文件制作完成。

二、启动操作系统内核

1、编译uboot

删除工程目录下【software】中的两个文件夹【没有就跳过此操作】
在这里插入图片描述
进入【software】目录,配置环境变量

export PATH=/bin:$PATH

![在这里插入图片描述](https://img-blog.csdnimg.cn/d94f7d0cb4bd4420a16325c6232d23d3.png
生成板机支持包【software目录下】

bsp-editor.exe

在这里插入图片描述
选择如示
在这里插入图片描述
打开后界面如示,点击OK
在这里插入图片描述
点击生成bps
在这里插入图片描述
查看生成文件
![在这里插入图片描述](https://img-blog.csdnimg.cn/d65f00b585bb4bf59ea41086816d2eb5.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5bCP5bCP5oCq4Ly7,size_20,color_FFFFFF,t_70,g_se,x_16

点击Exit,回到指令栏

编译uboot【回到黄金工程目录下】【编译需要约30min】
在这里插入图片描述
出现类似错误,一直【make uboot】即可
在这里插入图片描述
编译结果【此界面为成功编译】
在这里插入图片描述
可以看到生成文件
在这里插入图片描述
将文件【u-boot-sol.bin】文件复制到【preloader】目录下
在这里插入图片描述

2、生成preloader-mkpimage.bin文件

在【preloader】目录下运行指令

mkpimage -hv 0 -o preloader.img u-boot-spl.bin

在这里插入图片描述
生成文件
在这里插入图片描述
生成对应【.bin】文件

make

在这里插入图片描述
生成文件
在这里插入图片描述

3、生成u-boot.scr文件

在【software】目录下创建【boot.script】文件

echo --Programming FPGA --
fatload mmc 0:1 $fpgadata soc_system.rbf;
fpga load 0 $fpgadata $filesize;
run bridge_enable_handoff;
echo --Setting Env Variables --
setenv fdtimage soc_system.dtb;
setenv mmcroot /dev/mmcblk0p2;
setenv mmcload 'mmc rescan;${mmcloadcmd} mmc 0:${mmcloadpart} ${loadaddr} ${bootimage};${mmcloadcmd} mmc 0:${mmcloadpart} ${fdtaddr} ${fdtimage};';
setenv mmcboot 'setenv bootargs console=ttyS0,115200 root=${mmcroot} rw rootwait; bootz ${loadaddr} - ${fdtaddr}';
run mmcload;
run mmcboot;

文件如示
在这里插入图片描述
使用指令,生成文件

mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "Boot Script Name" -d boot.script u-boot.scr

在这里插入图片描述
查看生成文件
在这里插入图片描述

4、整合文件

将上述文件整合到一个文件夹(方便找到)
文件路径

C5CB_GHRD\software\preloader\uboot-socfpga
C5CB_GHRD\software
C5CB_GHRD\software\preloader

在这里插入图片描述
至此uboot文件制作完成。

三、内核编译,生成zImage

此版块为Ubuntu操作

1、切换4.9版本

进入内核目录

cd linux-socfpga

方式一:
在这里插入图片描述
方式二:
在这里插入图片描述
列出所有分支版本

git tag -l

在这里插入图片描述
版本切换

git checkout rel_socfpga-4.9.78-ltsi_18.02.01_pr

在这里插入图片描述
如示则正常
在这里插入图片描述

2、指定交叉编译工具链路径

指令如下

export CROSS_COMPILE=/home/z/WORK/inside_core/gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux/bin/arm-linux-gnueabihf-

在这里插入图片描述

3、修改内核为出厂设置

指令如下

make ARCH=arm socfpga_defconfig

在这里插入图片描述

4、修改自己的内核配置

指令如下

make ARCH=arm menuconfig

在这里插入图片描述
遇到错误
在这里插入图片描述
解决方法【终端最大化】,成功进入配置界面
在这里插入图片描述

修改配置操作说明:
y:选中;n:取消选中;
回车进入选项

选择支持大存储空间设备选项
在这里插入图片描述
选中最大存储空间
在这里插入图片描述

5、编译内核

指令

make ARCH=arm LOCALVERSION=zImage

在这里插入图片描述
编译完成
在这里插入图片描述

6、查看生成文件

指令

ls arch/arm/boot/

在这里插入图片描述
至此内核编译完成。

四、编译根文件系统

解压文件
解压buildboot;交叉编译工具链
在这里插入图片描述

1、切换版本到【2015.08】

该版本支持linaro的4.9-2014.09的交叉编译器

cd buildroot/
git checkout 2015.08

在这里插入图片描述

2、清空编译信息

make clean

在这里插入图片描述

3、配置buildroot

cd ..//退回上级目录
make -C buildroot ARCH=arm BR2_TOOLCHAIN_EXTERNAL_PATH=/home/z/WORK/inside_core/gcc-linux-gnueabihf-4.9-2014.09_linux menuconfig

①配置Target Options:
按图示操作即可
配置一:
在这里插入图片描述
在这里插入图片描述
配置二:
在这里插入图片描述
在这里插入图片描述
配置三:
在这里插入图片描述
在这里插入图片描述
配置四:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
②配置Toolchain:
配置一:
在这里插入图片描述
在这里插入图片描述
配置二:
在这里插入图片描述
配置三:
在这里插入图片描述
其他选项保持默认。
③配置System Configuration
设置主机用户名和密码
在这里插入图片描述
在这里插入图片描述
④配置Kernel
在这里插入图片描述
⑤配置Target packages
在这里插入图片描述
在这里插入图片描述
⑥配置ssh
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
⑦配置busybox【保存退出】

make -C buildroot busybox-menuconfig

在这里插入图片描述
进入如示界面
在这里插入图片描述
在这里插入图片描述

4、文件复制

注意看方框文件路径【原本样式】
在这里插入图片描述
复制后
在这里插入图片描述
再次配置,回到【inside_core】目录下

make -C buildroot busybox-menuconfig

配置完成
在这里插入图片描述

5、编译根文件系统

下载文件

make -C buildroot BR2_TOOLCHAIN_EXTERNAL_PATH=/home/z/WORK/inside_core/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux all

在这里插入图片描述
查看生成文件

ls buildroot/output/images/

在这里插入图片描述

五、制作SD卡镜像

猜你喜欢

转载自blog.csdn.net/QWERTYzxw/article/details/121869626