ZYNQ Linux 移植:包含petalinux移植和手动移植debian9
- 建立BSP:
- SD卡分区:本次移植u-boot、kernel、rootfs都在SD上。
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">source</span> /home/kingstacker/petalinux2018.3/settings.sh</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>petalinux-<span style="color:#0000ff">create</span> -t <span style="color:#0000ff">project</span> -n demo1_linux <span style="color:#008000">--template zynq</span></code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">cd</span> demo1_linux/</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>petalinux-config --get-hw-description=/home/kingstacker/demo_linux/project_1.sdk</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">console</span>=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>petalinux-<span style="color:#0000ff">config</span> -c u-boot</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>petalinux-<span style="color:#0000ff">config</span> -c kernel</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>petalinux-<span style="color:#0000ff">config</span> -c rootfs</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>petalinux-build</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>petalinux-package --<span style="color:#0000ff">boot </span>--format <span style="color:#0000ff">BIN </span>--fsbl zynq_fsbl.elf --fpga system.<span style="color:#0000ff">bit </span>--u-<span style="color:#0000ff">boot</span></code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">cp</span> BOOT.BIN /media/kingstacker/BOOT/</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">cp</span> image.ub /media/kingstacker/BOOT/</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">sudo</span> tar xvf rootfs.tar.gz -C /media/kingstacker/RootFS/</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>petalinux-<span style="color:#0000ff">package</span> <span style="color:#008000">--prebuilt</span></code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">petalinux</span>-boot --qemu --prebuilt 3</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>petalinux-<span style="color:#0000ff">boot </span>--qemu --u-<span style="color:#0000ff">boot
</span>petalinux-<span style="color:#0000ff">boot </span>--qemu --kernel</code></span></span></span>
- 下载xilinx的u-boot、kernel:
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>git <span style="color:#0000ff">clone</span> https:<span style="color:#008000">//github.com/Xilinx/u-boot-xlnx.git</span>
git <span style="color:#0000ff">clone</span> https:<span style="color:#008000">//github.com/Xilinx/linux-xlnx.git</span></code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>git <span style="color:#0000ff">clone</span> https:<span style="color:#008000">//github.com/Xilinx/device-tree-xlnx</span></code></span></span></span>
- 工程导入SDK生成设备树:就是新建个设备树工程。
- 设备树信息导入linux中生成dtb文件:
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#0000ff">cpp</span> <span style="color:#0000ff">-nostdinc</span> <span style="color:#0000ff">-I</span> <span style="color:#0000ff">include</span> <span style="color:#0000ff">-I</span> <span style="color:#0000ff">arch</span> <span style="color:#0000ff">-undef</span> <span style="color:#0000ff">-x</span> <span style="color:#0000ff">assembler-with-cpp</span> <span style="color:#0000ff">system-top</span>.dts <span style="color:#0000ff">system-top</span>.dts.preprocessed</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#0000ff">dtc</span> <span style="color:#0000ff">-I</span> <span style="color:#0000ff">dts</span> <span style="color:#0000ff">-O</span> <span style="color:#0000ff">dtb</span> <span style="color:#0000ff">-i</span> . <span style="color:#0000ff">-o</span> <span style="color:#0000ff">devicetree</span>.dtb <span style="color:#0000ff">system-top</span>.dts.preprocessed</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#ff0000">CONFIG_ARM</span>=y
<span style="color:#ff0000">CONFIG_SYS_CONFIG_NAME</span>=<span style="color:#a31515">"zynq_zc70x"</span>
<span style="color:#ff0000">CONFIG_ARCH_ZYNQ</span>=y
<span style="color:#ff0000">CONFIG_SYS_TEXT_BASE</span>=0x4000000
<span style="color:#ff0000">CONFIG_SYS_MALLOC_F_LEN</span>=0x800
<span style="color:#ff0000">CONFIG_IDENT_STRING</span>=<span style="color:#a31515">" Xilinx Zynq ZC702"</span>
<span style="color:#ff0000">CONFIG_SPL_STACK_R_ADDR</span>=0x200000
<span style="color:#ff0000">CONFIG_DEFAULT_DEVICE_TREE</span>=<span style="color:#a31515">"zynq-zc702"</span>
<span style="color:#ff0000">CONFIG_DEBUG_UART</span>=y
<span style="color:#ff0000">CONFIG_DISTRO_DEFAULTS</span>=y
<span style="color:#ff0000">CONFIG_FIT</span>=y
<span style="color:#ff0000">CONFIG_FIT_SIGNATURE</span>=y
<span style="color:#ff0000">CONFIG_FIT_VERBOSE</span>=y
<span style="color:#ff0000">CONFIG_BOOTCOMMAND</span>=<span style="color:#a31515">"run $modeboot || run distro_bootcmd"</span>
<span style="color:#008000"># CONFIG_DISPLAY_CPUINFO is not set</span>
<span style="color:#ff0000">CONFIG_SPL</span>=y
<span style="color:#ff0000">CONFIG_SPL_STACK_R</span>=y
<span style="color:#ff0000">CONFIG_SPL_OS_BOOT</span>=y
<span style="color:#ff0000">CONFIG_SYS_PROMPT</span>=<span style="color:#a31515">"Zynq> "</span>
<span style="color:#ff0000">CONFIG_CMD_THOR_DOWNLOAD</span>=y
<span style="color:#ff0000">CONFIG_CMD_EEPROM</span>=y
<span style="color:#ff0000">CONFIG_CMD_MEMTEST</span>=y
<span style="color:#ff0000">CONFIG_CMD_DFU</span>=y
<span style="color:#008000"># CONFIG_CMD_FLASH is not set</span>
<span style="color:#ff0000">CONFIG_CMD_FPGA_LOADBP</span>=y
<span style="color:#ff0000">CONFIG_CMD_FPGA_LOADFS</span>=y
<span style="color:#ff0000">CONFIG_CMD_FPGA_LOADMK</span>=y
<span style="color:#ff0000">CONFIG_CMD_FPGA_LOADP</span>=y
<span style="color:#ff0000">CONFIG_CMD_GPIO</span>=y
<span style="color:#ff0000">CONFIG_CMD_I2C</span>=y
<span style="color:#ff0000">CONFIG_CMD_MMC</span>=y
<span style="color:#ff0000">CONFIG_CMD_SF</span>=y
<span style="color:#ff0000">CONFIG_CMD_USB</span>=y
<span style="color:#008000"># CONFIG_CMD_SETEXPR is not set</span>
<span style="color:#ff0000">CONFIG_CMD_TFTPPUT</span>=y
<span style="color:#ff0000">CONFIG_CMD_CACHE</span>=y
<span style="color:#ff0000">CONFIG_CMD_EXT4_WRITE</span>=y
<span style="color:#ff0000">CONFIG_OF_EMBED</span>=y
<span style="color:#008000">#CONFIG_ENV_IS_IN_SPI_FLASH=y</span>
<span style="color:#ff0000">CONFIG_NET_RANDOM_ETHADDR</span>=y
<span style="color:#ff0000">CONFIG_SPL_DM_SEQ_ALIAS</span>=y
<span style="color:#ff0000">CONFIG_DFU_MMC</span>=y
<span style="color:#ff0000">CONFIG_DFU_RAM</span>=y
<span style="color:#ff0000">CONFIG_FPGA_XILINX</span>=y
<span style="color:#ff0000">CONFIG_DM_GPIO</span>=y
<span style="color:#ff0000">CONFIG_MMC_SDHCI</span>=y
<span style="color:#ff0000">CONFIG_MMC_SDHCI_ZYNQ</span>=y
<span style="color:#ff0000">CONFIG_SPI_FLASH</span>=y
<span style="color:#ff0000">CONFIG_SPI_FLASH_BAR</span>=y
<span style="color:#ff0000">CONFIG_SF_DUAL_FLASH</span>=y
<span style="color:#ff0000">CONFIG_SPI_FLASH_ISSI</span>=y
<span style="color:#ff0000">CONFIG_SPI_FLASH_MACRONIX</span>=y
<span style="color:#ff0000">CONFIG_SPI_FLASH_SPANSION</span>=y
<span style="color:#ff0000">CONFIG_SPI_FLASH_STMICRO</span>=y
<span style="color:#ff0000">CONFIG_SPI_FLASH_WINBOND</span>=y
<span style="color:#ff0000">CONFIG_PHY_MARVELL</span>=y
<span style="color:#ff0000">CONFIG_PHY_REALTEK</span>=y
<span style="color:#ff0000">CONFIG_PHY_XILINX</span>=y
<span style="color:#ff0000">CONFIG_ZYNQ_GEM</span>=y
<span style="color:#ff0000">CONFIG_DEBUG_UART_ZYNQ</span>=y
<span style="color:#ff0000">CONFIG_DEBUG_UART_BASE</span>=0xe0001000
<span style="color:#ff0000">CONFIG_DEBUG_UART_CLOCK</span>=50000000
<span style="color:#ff0000">CONFIG_ZYNQ_SERIAL</span>=y
<span style="color:#ff0000">CONFIG_ZYNQ_QSPI</span>=y
<span style="color:#ff0000">CONFIG_USB</span>=y
<span style="color:#ff0000">CONFIG_USB_EHCI_HCD</span>=y
<span style="color:#ff0000">CONFIG_USB_ULPI_VIEWPORT</span>=y
<span style="color:#ff0000">CONFIG_USB_ULPI</span>=y
<span style="color:#ff0000">CONFIG_USB_STORAGE</span>=y
<span style="color:#ff0000">CONFIG_USB_GADGET</span>=y
<span style="color:#ff0000">CONFIG_USB_GADGET_MANUFACTURER</span>=<span style="color:#a31515">"Xilinx"</span>
<span style="color:#ff0000">CONFIG_USB_GADGET_VENDOR_NUM</span>=0x03fd
<span style="color:#ff0000">CONFIG_USB_GADGET_PRODUCT_NUM</span>=0x0300
<span style="color:#ff0000">CONFIG_CI_UDC</span>=y
<span style="color:#ff0000">CONFIG_USB_GADGET_DOWNLOAD</span>=y</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#0000ff">make</span> distclean</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">make</span> CROSS_COMPILE=arm-linux-gnueabihf- zynq_zc702_defconfig</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#0000ff">make</span> CROSS_COMPILE=arm-linux-gnueabihf- menuconfig</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#0000ff">make</span> CROSS_COMPILE=arm-linux-gnueabihf- tools</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#0000ff">make</span> CROSS_COMPILE=arm-linux-gnueabihf-</code></span></span></span>
- 在SDK中先生新建fsbl工程成FSBL,在src的h文件中添加debug属性,可以在控制台中打印FSBL阶段的启动信息:
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#2b91af">#define FSBL_DEBUG_INFO</span></code></span></span></span>
解决 "mkimage" command not found - U-Boot images will not be built
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>sudo apt-<span style="color:#0000ff">get</span> install u-boot-tools</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#008000">#make distclean</span></code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#008000">#make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xilinx_mz7x_defconfig </span></code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#008000">#make ARCH=arm menuconfig</span></code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#008000">#make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- prepare scripts </span></code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#008000">#make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- UIMAGE_LOADADDR=0x8000 uImage </span></code></span></span></span>
- 文件系统:
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>sudo apt-get <span style="color:#0000ff">install</span> binfmt-support qemu qemu-<span style="color:#0000ff">user</span>-<span style="color:#0000ff">static</span> debootstrap</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>sudo debootstrap --arch=armhf --foreign stretch rootfs http:<span style="color:#008000">//cdn.debian.net/debian</span></code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>cp /usr/<span style="color:#0000ff">bin</span>/qemu-arm-static {{刚刚rootfs目录}}/usr/<span style="color:#0000ff">bin</span></code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#ff0000">DEBIAN_FRONTEND</span>=noninteractive DEBCONF_NONINTERACTIVE_SEEN=<span style="color:#a31515">true</span> LC_ALL=C LANGUAGE=C LANG=C chroot rootfs debootstrap/debootstrap --second-stage</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">chroot</span> rootfs</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>echo deb <span style="color:#00b0e8">http:</span>//ftp.cn.debian.org/debian/ stretch main > /etc/apt/sources.list</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>apt-<span style="color:#0000ff">get</span> update</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code>apt-<span style="color:#0000ff">get</span> install vim sudo net-tools</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#2b91af">#!/bin/sh -e</span>
<span style="color:#008000">#</span>
<span style="color:#008000">#rc.local</span><span style="color:#008000">#sh in there</span>
/home/sh_boot.sh
<span style="color:#008000">#sh end </span>
<span style="color:#0000ff">exit</span> 0
EOF</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">echo</span> <span style="color:#a31515">"Welcome to use,powerd by kingstacker"</span>
<span style="color:#a31515">echo</span> <span style="color:#a31515">"config the eth......."</span><span style="color:#a31515">ifconfig</span> eth0 192.168.0.110 netmask 255.255.255.0 up<span style="color:#a31515">echo</span> <span style="color:#a31515">"config finish."</span></code></span></span></span>
- 打包rootfs备份:
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">tar</span> -zcvf debian9_rootfs.tar.gz ./</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">tar</span> zxvf debian9_rootfs.tar.gz -C /media/kingstacker/RootFS</code></span></span></span>
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">https</span>:<span style="color:#008000">//www.jianguoyun.com/p/DdhhnukQ15CBCBjvgrcD </span></code></span></span></span>
- SD卡BOOT分区内容如下:bin文件、设备树、txt、内核镜像。
<span style="color:#000000"><span style="background-color:#ffffff"><span style="background-color:#f5f5f5"><code><span style="color:#a31515">bootargs</span>=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait
<span style="color:#a31515">load_image</span>=fatload mmc 0 <span style="color:#008000">${kernel_load_address}</span> <span style="color:#008000">${kernel_image}</span> && fatload mmc 0 <span style="color:#008000">${devicetree_load_address}</span> <span style="color:#008000">${devicetree_image}</span>
<span style="color:#a31515">uenvcmd</span>=echo Copying Linux from SD to RAM... && mmcinfo && run load_image && bootm <span style="color:#008000">${kernel_load_address}</span> - <span style="color:#008000">${devicetree_load_address}</span></code></span></span></span>
ZYNQ Linux 移植:包含petalinux移植和手动移植debian9相关推荐
- Android x86的arm兼容库移植--初步分析及尝试手动移植houdini/ndk_translation
适用于x86架构的安卓5.0以上需要root,或者离线改文件,但并非全部适用:本文仅为个人经验,未涵盖的地方需要自行探索. 手动移植Android x86的arm兼容库(houdini/ndk_tra ...
- 基于STM32的实时操作系统FreeRTOS移植教程(手动移植)
前言:此文为笔者FreeRTOS专栏下的第一篇基础性教学文章,其主要目的为:帮助读者朋友快速搭建出属于自己的公版FreeRTOS系统,实现后续在实时操作系统FreeRTOS上的开发与运用.操作系统的学 ...
- 【FatFs】手动移植FatFs,将SRAM虚拟U盘
[FatFs]手动移植FatFs,将SRAM转化为文件系统 1. 实验环境 Keil5 MDK-ARM,编译器使用ARM Compiler V6.16 NUCLEO-H723ZG STM32CubeM ...
- STM32 HAL库详解 及 手动移植
源: STM32 HAL库详解 及 手动移植
- Linux系统移植:NXP 官板 uboot 移植
文章目录 Linux系统移植:NXP 官板 uboot 移植 一.获取官板 U-Boot 二.编译下载 U-Boot 源码 三.官方驱动验证 Linux系统移植:NXP 官板 uboot 移植 移植 ...
- ZYNQ + Linux
ZYNQ Linux操作系统移植说明文档 http://xilinx.eetrend.com/content/2019/100018437.html 1,组成 ZYNQ上面移植Linux操作系统包括四 ...
- ZYNQ Linux 添加I2C-RTC驱动
原文链接:ZYNQ:Linux添加I2C-RTC驱动 硬件情况 使用的是DS1338这款RTC时钟芯片,I2C总线对应到PS端的I2C1. 配置 内核 添加有关的驱动: 因为DS1338用的驱动与DS ...
- kernel移植——从三星官方内核开始移植
以下内容源于朱有鹏嵌入式课程的学习,如有侵权,请告知删除. 一.内核移植初体验 1.三星官方移植版内核获取 源码包来于三星的SMDKV210开发板附带的光盘资料,下载地址. 2.构建移植环境 (1)W ...
- Zynq Linux 使用 SPI ADC (ADS8332)
目录 参考文章 一.ADS8332介绍 1. ADS8332通道选择模式 2. ADS8332转换开始(CONVST)控制 3. ADS8332转换结束(EOC)状态 4. ADS8332 TAG模式 ...
最新文章
- Spring Boot 与DBunit 配合使用
- 构建Flex数据服务程序
- 架设自己的WebDAV服务器作为AutoCAD WS的数据存储
- 【Python入门】Python列表的11个方法全解
- wxWidgets:wxSplitterEvent类用法
- Java EE 6 VS Spring 3:Java EE已经杀死了Spring? 没门!
- Java时间类之间的转换案例——计算自己活了多少天
- java 百度副文本_spring boot 、springMVC环境集成百度ueditor富文本编辑器
- 浅析智慧消防巡检系统在高速公路隧道的应用
- GPU卡的主流调度平台
- 解决MAC launchpad顽固性图标无法删除问题。
- 软考(网络工程师)-必备网络知识(笔记一)
- 华东交通大学计算机全国排名,华东交通大学世界排名、中国排名、专业排名
- w8服务器dns修改,怎么修改DNS Win8修改DNS服务器地址的具体步骤图解
- 阿拉伯字母及阿拉伯文排版规则
- html 一键复制功能以及下载功能
- css 设置文字强制不换行
- 视频剪裁尺寸和裁剪时间
- 为什么今天要致敬屠呦呦?
- 番茄花园GhostXP SP3极速装机版V03