IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 另一种方式移植linux -> 正文阅读

[系统运维]另一种方式移植linux

概述

Linux系统移植中,设备树文件,FSBL,BOOT.BIN等文件的生成需要依赖Petalinux工具,本文将在不依赖Petalinux工具的情况下移植linux系统。

一、使用SDK生成设备树文件

Vivado SDK下即可生成设备树文件,而无需依赖Petalinux工具。

1.开发环境设置

1.首先下载device-tree-xlnx-xilinx-v2018.3.zip
2.将解压的device-tree-xlnx-xilinx-v2018.3文件夹拷贝到xilinx安装目录下的SDK\2018.3\data\embeddedsw\devicetree\bsp文件下,并重命名为device-tree-xlnx_v2018_3。
3.在SDK中打开Xilinx > Repositories,如下图所示:
在这里插入图片描述

4.按照如下步骤,在Local Repositories中添加刚才的SDK\2017.4\data\embeddedsw\devicetree\bsp\device-tree-xlnx_v2018_3
路径并点击OK。
在这里插入图片描述

2.生成设备树

1.点击菜单File > New > Board Support Package。
在这里插入图片描述
2.创建设备树工程。
在这里插入图片描述
3.新建工程后会自动编译。pcw.dtsi、pl.dtsi、system-top.dts、zynq-7000.dtsi这四个文件即需要的四个设备树文件。
在这里插入图片描述
4.修改system-top.dts为如下内容:

/dts-v1/;
#include "zynq-7000.dtsi"
#include "pl.dtsi"
#include "pcw.dtsi"
/ {
	chosen {
		bootargs = "earlycon";
		stdout-path = "serial0:115200n8";
	};
	aliases {
		ethernet0 = &gem0;
		serial0 = &uart1;
		spi0 = &qspi;
	};
	memory {
		device_type = "memory";
		reg = <0x00000000 0x40000000>;
	};
	usb_phy0: phy0@e0002000 {
 		compatible = "ulpi-phy";
 		#phy-cells = <0>;
 		reg = <0xe0002000 0x1000>;
 		view-port = <0x0170>;
		drv-vbus;
	};
};
&gem0 {
	local-mac-address = [00 0a 35 00 00 00];
};
&qspi {
	#address-cells = <1>;
	#size-cells = <0>;
	flash0: flash@0 {
		compatible = "n25q512a","micron,m25p80";
		reg = <0x0>;
		#address-cells = <1>;
		#size-cells = <1>;
		spi-max-frequency = <50000000>;
		partition@0x00000000 {
			label = "boot";
			reg = <0x00000000 0x00500000>;
		};
		partition@0x00500000 {
			label = "bootenv";
			reg = <0x00500000 0x00020000>;
		};
		partition@0x00520000 {
			label = "kernel";
			reg = <0x00520000 0x00a80000>;
		};
		partition@0x00fa0000 {
			label = "spare";
			reg = <0x00fa0000 0x00000000>;
		};
	};
};
&usb0 {
	dr_mode = "otg";
	usb-phy = <&usb_phy0>;
};

二、使用SDK生成FSBL文件

FSBL文件即zynq启动引导文件,Linux系统所需的FSBL文件与启动zynq裸机时相同,SDK即可创建。

1.点击菜单File > New > Application Project。
在这里插入图片描述
2.设置工程名称为FSBL。
在这里插入图片描述
3.选择Zynq FSBL。
在这里插入图片描述
4.等待工程编译完成后,在/FSBL/Debug目录下会生成FSBL.elf文件。
在这里插入图片描述

三、交叉编译环境搭建

Petalinux自带arm-linux-gnueabihf-gcc工具,不安装Petalinux则需要单独安装arm-linux-gnueabihf-gcc工具。

1.使用如下命令安装依赖的库:

sudo apt-get install gcc make libncurses5-dev libssl-dev flex bison gcc-multilib build-essential libsdl1.2-dev libglib2.0-dev

2.下载gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz
3.使用如下命令将gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz解压到/usr/lib/gcc目录下:

sudo tar -xf gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz -C /usr/lib/gcc

4.打开用户目录下的.bashrc,在文件最后添加如下内容:

export PATH=/usr/lib/gcc/gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf/bin:$PATH

5.打开新的终端或使用如下命令更新环境变量:

source .bashrc

6.使用如下命令查看arm-linux-gnueabihf-gcc是否安装成功:

arm-linux-gnueabihf-gcc -v

命令运行结果如下:
在这里插入图片描述

四、编译u-boot、kernel、device-tree

1.按照Linux系统移植中的步骤,添加设备树文件文件到u-boot与kernel源文件中,修改zynq-common.h和zynq_zc70x.h配置文件。
2.进入u-boot源文件目录下运行如下命令配置u-boot,编译源文件:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zynq_zed_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- all -j10

3.进入kernel源文件目录运行如下命令配置kernel,编译源文件、设备树文件:

make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xilinx_zynq_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage -j10
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- system-top.dtb

五、BOOT.BIN文件生成

1.安装bootgen-xlnx

使用如下命令安装bootgen-xlnx:

sudo apt-get install bootgen-xlnx

2.生成BOOT.BIN

1.新建bootgen.bif并输入如下内容:

//arch = zynq; split = false; format = BIN
the_ROM_image:
{
	[bootloader]/home/lgd/work/FSBL/FSBL.elf
	/home/lgd/work/u-boot/u-boot
}

2.使用如下命令创建BOOT.BIN文件:

bootgen -arch zynq -image bootgen.bif -o BOOT.BIN -w on

六、启动开发板

1.将生成的BOOT.BIN文件复制到SD分区1中。
2.将编译生成的zImage文件复制到tftpboot目录下。
3.将编译生成的system-top.dtb复制到tftpboot目录下,并更名为system.dtb。
4.将Vivado工程目录下project.runs\impl_1中的design_1_wrapper.bit文件复制到tftpboot中,并更名为system.bit。
5.继续使用Linux系统移植中解压到/home/lgd/nfs/linux目录下的根文件系统。
6.依据Linux系统移植中启动开发板的步骤即可启动开发板。

七、相关下载连接

device-tree-xlnx-xilinx-v2018.3.zip
gcc-linaro-7.5.0-2019.12-x86_64_arm-linux-gnueabihf.tar.xz

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2022-02-03 01:28:27  更:2022-02-03 01:29:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 8:21:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码