Zybo构建Linux Linaro系统

简介

借助米联客的虚拟机和scripts文件、Zybo官方dts文件和Xilinx官方u-boot及kernel源码,成功构建了基于linaro-precise-ubuntu-desktop-20120723-305的Linux系统。写入SD卡后能正常运行,上电后插入网线可以正常ping通外部网站。

开发环境

软件环境:Vivado 2017.4 Linux版本
系统环境:Ubuntu 16.04 amd64

准备材料

ARM端的linux内核源码:https://github.com/Xilinx/linux-xlnx,选择2017.4版本。
ARM端的uboot源代码:https://github.com/Xilinx/u-boot-xlnx,选择2017.4版本。
ARM端的Linaro文件系统:https://releases.linaro.org/archive/12.07/ubuntu/precise-images/ubuntu-desktop/linaro-precise-ubuntu-desktop-20120723-305.tar.gz

在linux-xlnx/arch/arm/boot/dts目录内新建zynq-7010.dts文件,文件内容:

dts-v1/;
/include/ "zynq-7000.dtsi"

/ {
    model = "HLF";
    compatible = "ALINX,zynq", "xlnx,zynq-7000";

    aliases {
        ethernet0 = &gem0;
        serial0 = &uart1;
        spi0 = &qspi;
        mmc0 = &sdhci0;
    };

    memory@0 {
        device_type = "memory";
        reg = <0x0 0x20000000>;
    };

    chosen {
        bootargs = "";
        stdout-path = "serial0:115200n8";
    };

    usb_phy0: phy0 {
        compatible = "usb-nop-xceiv";
        #phy-cells = <0>;
        reset-gpios = <&gpio0 46 1>;
    };
};

&clkc {
    ps-clk-frequency = <50000000>;
};

&gem0 {
    status = "okay";
    phy-mode = "rgmii-id";
    phy-handle = <&ethernet_phy>;

    ethernet_phy: ethernet-phy@0 {
        reg = <0>;
    };
};

&qspi {
    u-boot,dm-pre-reloc;
    status = "okay";
};

uEnv.txt 文件,文件内写入boot的配置信息:

uenvcmd=run linaro_sdboot

linaro_sdboot=echo Copying Linux from SD to RAM... && \
fatload mmc 0 0x3000000 ${kernel_image} && \
fatload mmc 0 0x2A00000 ${devicetree_image} && \
if fatload mmc 0 0x2000000 ${ramdisk_image}; \
then bootm 0x3000000 0x2000000 0x2A00000; \
else bootm 0x3000000 - 0x2A00000; fi

bootargs=console=ttyPS0,115200 root=/dev/mmcblk0p2 rw earlyprintk rootfstype=ext4 rootwait

相关shell命令

在编译u-boot和kernel时用到了如下命令,可以拷贝直接使用。

cd /mnt/workspace/osrc/scripts
source settings64.sh
echo $ZN_TOOLCHAIN_PREFIX
echo $CROSS_COMPILE #arm-linux-gnueabihf
echo $ARCH #arm

cd ~/Downloads/
unzip u-boot-xlnx-xilinx-v2017.4.zip
cd u-boot-xlnx-xilinx-v2017.4/
make clean
make zynq_zybo_defconfig
make menuconfig  #select Exit
make -j4

cp u-boot ~/Documents/prj_vivado/czybosys/u-boot.elf
cd ../linux-xlnx-xilinx-v2017.4/
make clean
make xilinx_zynq_defconfig
make menuconfig  #select Exit
make -j4
make uImage LOADADDR=0x00008000
cp arch/arm/boot/uImage ~/Desktop/
./scripts/dtc/dtc -I dts -O dtb -o ./arch/arm/boot/devicetree.dtb ./arch/arm/boot/dts/zynq-zybo.dts
cp ./arch/arm/boot/devicetree.dtb ~/Desktop/

生成BOOT.bin

在vivado SDK中生成BOOT.bin时,采用如下配置:

czybosys/czybosys.sdk/fsbl/Debug/fsbl.elf
czybosys/czybosys.sdk/system_wrapper_hw_platform_0/system_wrapper.bit
u-boot.elf

其他

SD烧写参考百度资料

参考文献

  1. 《ZYNQ的Linux Linaro系统镜像制作SD卡启动》
  2. 《Xilinx zynq-7000系列FPGA移植Linux操作系统详细教程》
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值