zynq7000 从github拉取linux源码进行编译,运行. 快速进行外设验证。全流程教程
zynq7000 编译
前言
使用SylixOS进行驱动开发, 需要快速验证板上的外设是否完好. 嫌弃官方的SDK占用磁盘空间巨大, 本教程直接使用 github 上的源码进行快速编译运行.
1. 资源获取
- Ubuntu 开发环境 (自行解决)
- 编译链工具 gcc-arm-linux-gnueabi , 版本自由, 从 xilinx SDK 获取, 也可从 Linaro GCC 获取
- Kernel镜像, 从 github 获取.
- initramfs 获取
2. 编译 kernel
交叉编译此 ARM 源代码,请导出环境变量
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
- 使用默认配置配置内核。ARM 处理器的配置文件位于 //arch/arm/configs/ 中。使用“xilinx_zynq_defconfig”配置内核。
make distclean
make xilinx_zynq_defconfig
- 如果要进一步更改内核配置,请启动menuconfig。
make menuconfig
- 使用如下所示的命令编译内核
make -j4 ARCH=arm UIMAGE_LOADADDR=0x8000 uImage CROSS_COMPILE=~/Downloads/zynq/gcc-arm-linux-gnueabi/bin/arm-linux-gnueabihf- dtbs
如果构建过程成功,则 Linux 内核映像zImage和uImage将在 /<Linux 内核源代码 Dir>/arch/arm/boot/ 中创建。同时会在 /<Linux 内核源代码 Dir>/arch/arm/boot/dts/中生成设备树文件.
3. 根文件系统
根文件系统映像
单独的Linux内核实际上没有用,因为它甚至没有用户界面。Shell,或使Linux内核有用的所有必要工具称为“发行版”。Shell 位于根文件系统中,并在挂载根文件系统时执行。
为了简单起见,我们将使用虚拟硬盘(initrd)作为根文件系统。initrd 被加载到
DRAM 中,然后作为根文件系统挂载。因此,重新启动设备时它将丢失。从 Xilinx wiki 下载.
这必须转换为 U-Boot 映像文件(添加包装器以使其可被 U-Boot 识别)。为此,请使用 U-Boot 源代码树中的“mkimage”实用程序。
export PATH=${PATH}:/<U-Boot source dir>/tools
mkimage -A arm -T ramdisk -C gzip -d arm_ramdisk.image.gz uramdisk.image.gz
然后,将生成U-Boot“uramdisk.image.gz”的虚拟硬盘映像。
4 引导 Linux
所以现在,所有必要的文件都准备好了,可以启动 Linux。将所有这些文件(BOOT.bin,uImage,zynq_zc706.dtb和uramdisk.image.gz)复制到SD卡的启动分区中。插入SD卡并打开电源,将串行控制台连接到USB-UART。
当U-Boot启动时,我们要做的是;
- 将这 3 个文件(内核映像、设备树和虚拟硬盘)加载到内存中
从SD卡中读取到内存
fatload mmc 0:1 0x8000 uImagefatload mmc 0:1 0x500000 zynq-zc706.dtbfatload mmc 0:1 0x600000 uramdisk.image.gz
从内存启动 Linux
要加载这些文件,请在 U-Boot 提示符下键入命令
bootm <Linux kernel address> <ramdisk address> <device tree address>
所以现在,通过键入以下内容来启动 Linux。bootm 0x8000 0x600000 0x500000
如果 Linux 内核被引导,它将显示 Linux shell。如果有一些错误,那么U-Boot或Linux内核会告诉你出了什么问题。
zynq7000 从github拉取linux源码进行编译,运行. 快速进行外设验证。全流程教程相关推荐
- jenkins 拉取git源码超时
由于项目使用自购服务器搭建的 gitea 管理源码,服务器带宽较小.试了几次后都没发现是构建任务的时间不足,原因就是10分钟也挺久的,谁会去等10分钟噻. 最后第二天再看之前构建的任务,发现报错如下 ...
- linux源码包编译安装与rpm安装方法介绍
linux下的软件包安装 linux下安装软件包有两种方法:源文件编译安装(source)和 rpm 安装. 1.源文件包安装的通用方法. 一般安装源代码的程序你得要看它的README,一般在它的目录 ...
- linux编译安装含义,linux源码包编译安装详解
linux下安装软件包有两种方法:源文件编译安装(source)和 rpm 安装. 1.源文件包安装的通用方法. 一般安装源代码的程序你得要看它的README,一般在它的目录下都有的. 01.配置: ...
- linux 源码包编译,源码包编译安装
程序包编译安装: Application-VERSION-release.src.rpm–> 安装后,使用rpmbuild命令制作成二进制格式的rpm包,而后再安装 源代码 –> 预处理 ...
- mingw编译linux源码,minGW编译cgminer源码
运行autogen.sh脚本后,出现错误日志如下: libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt ...
- 迅为3588开发板Linux源码包编译Buildroot
Buildroot 是一款集成的编译集合包,解决了以前交叉编译麻烦的问题,本小节将介绍 buildroot 镜像的编译流程,分为单独编译和完整全自动编译. 首先输入以下命令,选择 buildroot ...
- 抓取网络源码python_使用Python进行网络抓取的新手指南
抓取网络源码python 有很多很棒的书可以帮助您学习Python,但是谁真正读了这些A到Z? (剧透:不是我). 接下来是我的第一个Python抓取项目指南. 假定的Python和HTML知识很少. ...
- 如何在 GitHub 上高效阅读源码?
原文链接: 如何在 GitHub 上高效阅读源码? 之前听说过一个故事,一个领导为了提高团队战斗力,把团队成员集中起来,搞封闭开发,重点还是在没有网的条件下. 结果就是一个月过去了,产出基本为零. 我 ...
- android视频缓存框架 [AndroidVideoCache](https://github.com/danikula/AndroidVideoCache) 源码解析与评估
文章目录 android视频缓存框架 [AndroidVideoCache](https://github.com/danikula/AndroidVideoCache) 源码解析与评估 引言 使用方 ...
最新文章
- Android开发学习笔记:WebView 一
- Deformable ConvNets--Part2: Spatial Transfomer Networks(STN)
- 将SVN的代码推送到码云的步骤
- K8S的 Custom Resource Definition(CRD)之初体验
- 微信小程序的点击复制功能
- java Concurrent包学习笔记(一):ExecutorService
- hdu 3074 线段树 OR 树状数组
- pop!_os_Pop!幕后花絮_OS Linux
- 怎么才能成为一名PHP专家?
- leetcode_sql_1,176,177
- 格式化日期为xxxx-xx-xx hh:mm:ss
- 数据库面试题及优化手段
- 联想主板9针开关接线图_空气开关、断路器、漏电保护,汇总学习一下
- LED字体下载,可视化大屏,数据可视化必备
- mapbox/minemap 首屏固定比例尺为1:20
- hdu 2079 选课时间(题目已修改,注意读题)
- C++阶段03笔记03【文件操作(文本文件读写、二进制文件读写)】
- 联友科技软件测试,联友科技
- C语言进阶 之 字符串函数(4)
- 2020世界人工智能大会 -- 落地AI,赋能未来
热门文章
- Win11系统启动文件夹是空的怎么解决?
- 2021-2022下沉市场研究报告合集(共46份)
- promise获取所有文件路径_python使用os.listdir和os.walk获得文件的路径
- Instagram API平台文档
- 【论文阅读ACL2020】Leveraging Graph to Improve Abstractive Multi-Document Summarization
- 复习中国近现代史纲要--“政治编年史”
- 知物由学 | iOS AssetBundle资源保护
- Spring面试常问
- 处理Whitelabel Error Page
- 【报告分享】2021民宿行业数据报告-云掌柜(附下载)