版主: 51FPGA

分享到:
共12条 1/2 1 2 »   

[原创]xilinx zynq zedboard开发板Linux系统构建概述

    [您是本帖的第3614位阅读者]
bluecd
我是GG
高级会员

最后登陆时间:2014-10-28 11:22:59

直达楼层
1# 发表于 2014-06-04 16:35:33

前段时间在zedboard上进行zynq平台的开发验证,发现这方面的文档讲的不太清楚,中间走过很多弯路。准备记录下来,对前段时间工作的整理。记录的内容主要是Linux部分的开发,不包括FSBL、U-boot、FPGA。包括开发环境构建、内核、devicetree编译等。本来想整理详细些,结果总没时间,概述一下吧。

1.主机操作系统
我选择了vbox虚机,在ubuntu 12.04,和centos6.5下都进行了测试,都可以正常使用。我的感觉是ubuntu运行的快一些。我使用的是32位系统,64位系统还需要额外的准备。
2.开发包选择

思路:最开始拿到zedboard开发板,我是到www.zedboard.org上找资料。这个网站资料大部分是关于这个开发板硬件的,没有开发包。后来发现SD卡release文件是digilent网站制作的,在http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,1028&Prod=ZEDBOARD页面下载了release包(http://www.digilentinc.com/Data/Products/ZEDBOARD/ZedBoard_OOB_Design.zip)。但我的最终目的不是只在开发板上玩玩,我需要自己能够编译内核,能够定制系统。后来在xilinx的wiki网站找到了xilinx linux源码包。一开始只看到内核是支持xilinx官方的zc702开发板,后来验证知道,zedboard可以与zc702使用同样的内核(后来发现microzed也可以使用这个内核)。到此,确定了开发的主要方向是依靠xilinx维护的源码进行。安装方法:

1)下载开发包
根据http://www.wiki.xilinx.com/Install+Xilinx+Tools的说明,到http://www.xilinx.com/support/download/index.htm页面,选择选择了2013.4下载All OS Vivado and SDK Full Installer (TAR/GZIP - 6.81 GB)。下载过程不是很方便,单个文件太大,无法上传到百度云盘,谁有云盘vip,分享一下最好。我最早开发时是2013.4,现在已有更新的版本。
2)在虚机中安装开发包
vbox虚机文件共享操作不在此描述。重点说明安装过程中的问题。
将下载的安装包解压后,直接运行xsetup默认安装会有问题。我的方法是在终端中运行:sudo chmod 777 /opt。然后再运行xsetup,按照默认选项安装即可。
疑问:不知道为什么,使用sudo xsetup安装不能成功。只好修改/opt目录权限。
3.安装软件:

1)根据需要安装开发过程需要的组件
安装组件:libncurses
sudo apt-get install libncurses5-dev
这个组件是make menuconfig时需要的。
2)svn

我使用的是subversion:

ubuntu12.04的源svn是1.6版本,这个不习惯,升级到1.7
svn1.6升级到1.7:
卸载原来的svn1.6:sudo apt-get remove subversion
添加PPA源
vim /etc/apt/sources.list 
deb http://ppa.launchpad.net/dominik-stadler/subversion-1.7/ubuntu precise main 
deb-src http://ppa.launchpad.net/dominik-stadler/subversion-1.7/ubuntu precise main 
sudo apt-get update
安装新版svn:sudo  apt-get install subversion
确认安装版本:svn --version
问题:

a)
提示:Password for '(null)' GNOME keyring:
解决:svn和gnome的一个key冲突了,只要删除就可以了:rm ~/.gnome2/keyrings/login.keyring
b)
删除svn记住的密码:删除 ~/.subversion/auth (命令:rm -rf ~/.subversion/auth


4.uboot
1)下载uboot
https://github.com/Xilinx/u-boot-xlnx/releases
下载xilinx-v14.7标签中tar.gz格式的文件(zip格式的文件好像有问题):
u-boot-xlnx-xilinx-v14.7.tar.gz
进入u-boot目录下tools目录,添加路径到环境变量:
u-boot-xlnx$ cd tools
tools$ export PATH=`pwd`:$PATH
不然编译内核生成uImage和制作ramdisk时会提示错误。
2)进入uboot所在目录,编译:
make ARCH=arm zynq_zed_config
make ARCH=arm 
编译后的u-boot为elf格式,u-boot.bin为二进制格式。
5.Linux
1)下载linux   --xilinx
https://github.com/Xilinx/linux-xlnx/releases
下载3.10版本内核:linux-xlnx-xilinx-v14.7.tar.gz
设置环境变量后:
make ARCH=arm xilinx_zynq_defconfig
make ARCH=arm menuconfig
make ARCH=arm UIMAGE_LOADADDR=0x8000 uImage

6.devicetree
下载zedboard开发包中的devicetree.dts到..../linux-xlnx/arch/arm/boot/dts
编译devicetree:
make ARCH=arm dtbs
zynq-zed.dtb是我们需要的文件,改名为devicetree.dtb
也可以只编译这一个文件:make ARCH=arm zynq-zed.dtb

编译模块(可选,用来替换rootfs中的内容):
make ARCH=arm modules

make modules_install ARCH=arm INSTALL_MOD_PATH=../rootfs







关键词:zynq    zedboard    linux    
此帖由bluecd于2014-06-05 08:02:59最后编辑

RE: [原创]xilinx zynq zedboard开发板Linux系统构建概述

jackwang
我是GG
管理员

最后登陆时间:2015-01-29 08:45:11

2# 发表于 2014-06-04 16:54:00
LZ要是把这些链接都加上超链接就好了

EEPW高校联络官群:327349274。

RE: [原创]xilinx zynq zedboard开发板Linux系统构建概述

bluecd
我是GG
高级会员

最后登陆时间:2014-10-28 11:22:59

3# 发表于 2014-06-05 08:01:30
jackwang的原帖
LZ要是把这些链接都加上超链接就好了

已经编辑超链接。

RE: [原创]xilinx zynq zedboard开发板Linux系统构建概述

zwj1234
我是GG
高级会员

最后登陆时间:2015-01-06 14:26:12

4# 发表于 2014-06-05 11:32:56
devicetree.dtbde 生成xilinx有对应的命令,为什么用make...?

RE: [原创]xilinx zynq zedboard开发板Linux系统构建概述

bluecd
我是GG
高级会员

最后登陆时间:2014-10-28 11:22:59

5# 发表于 2014-06-05 11:34:34
zwj1234的原帖
devicetree.dtbde 生成xilinx有对应的命令,为什么用make...?

make也是调用的那些脚本命令啊,这是更高层的封装。 统一使用make,可以少记些东西。

RE: [原创]xilinx zynq zedboard开发板Linux系统构建概述

bluecd
我是GG
高级会员

最后登陆时间:2014-10-28 11:22:59

6# 发表于 2014-06-05 17:02:49

再贴个ramdisk制作方法:

2)Initramfs
用root用户,执行sudo su

展开cpio:
mkdir current_ramdiskfs/
cd ./current_ramdiskfs; gunzip -c ../rootfs.cpio.gz | cpio -i ;cd ..
然后修改里面的文件

重新制作ramdisk映像:

cd current_ramdiskfs

find . | cpio -H newc -o | gzip -9 > ../rootfs.cpio.gz
cd ..
mkimage -A arm -T ramdisk -C gzip -d rootfs.cpio.gz uramdisk.image.gz

RE: [原创]xilinx zynq zedboard开发板Linux系统构建概述

Klaus
我是GG
高级会员

最后登陆时间:2014-10-10 17:31:03

7# 发表于 2014-06-30 14:15:04
zwj1234的原帖
devicetree.dtbde 生成xilinx有对应的命令,为什么用make...?

这个指令会编译所有的.dts文件在原有dts目录下生成对应的dtb文件

RE: [原创]xilinx zynq zedboard开发板Linux系统构建概述

zwj1234
我是GG
高级会员

最后登陆时间:2015-01-06 14:26:12

8# 发表于 2014-07-24 11:08:55

按照你的步奏,我在linux(虚拟机)下安装vivado,导入license不成功,请问什么原因?


RE: [原创]xilinx zynq zedboard开发板Linux系统构建概述

bluecd
我是GG
高级会员

最后登陆时间:2014-10-28 11:22:59

9# 发表于 2014-07-25 07:53:15
zwj1234的原帖

按照你的步奏,我在linux(虚拟机)下安装vivado,导入license不成功,请问什么原因?



我在linux下不用vivado,只用它的交叉编译工具链。

不过我觉得这部分应该和windows一致吧。

RE: [原创]xilinx zynq zedboard开发板Linux系统构建概述

zwj1234
我是GG
高级会员

最后登陆时间:2015-01-06 14:26:12

10# 发表于 2014-08-12 10:00:11
bluecd的原帖

前段时间在zedboard上进行zynq平台的开发验证,发现这方面的文档讲的不太清楚,中间走过很多弯路。准备记录下来,对前段时间工作的整理。记录的内容主要是Linux部分的开发,不包括FSBL、U-boot、FPGA。包括开发环境构建、内核、devicetree编译等。本来想整理详细些,结果总没时间,概述一下吧。

1.主机操作系统
我选择了vbox虚机,在ubuntu 12.04,和centos6.5下都进行了测试,都可以正常使用。我的感觉是ubuntu运行的快一些。我使用的是32位系统,64位系统还需要额外的准备。
2.开发包选择

思路:最开始拿到zedboard开发板,我是到www.zedboard.org上找资料。这个网站资料大部分是关于这个开发板硬件的,没有开发包。后来发现SD卡release文件是digilent网站制作的,在http://www.digilentinc.com/Products/Detail.cfm?NavPath=2,400,1028&Prod=ZEDBOARD页面下载了release包(http://www.digilentinc.com/Data/Products/ZEDBOARD/ZedBoard_OOB_Design.zip)。但我的最终目的不是只在开发板上玩玩,我需要自己能够编译内核,能够定制系统。后来在xilinx的wiki网站找到了xilinx linux源码包。一开始只看到内核是支持xilinx官方的zc702开发板,后来验证知道,zedboard可以与zc702使用同样的内核(后来发现microzed也可以使用这个内核)。到此,确定了开发的主要方向是依靠xilinx维护的源码进行。安装方法:

1)下载开发包
根据http://www.wiki.xilinx.com/Install+Xilinx+Tools的说明,到http://www.xilinx.com/support/download/index.htm页面,选择选择了2013.4下载All OS Vivado and SDK Full Installer (TAR/GZIP - 6.81 GB)。下载过程不是很方便,单个文件太大,无法上传到百度云盘,谁有云盘vip,分享一下最好。我最早开发时是2013.4,现在已有更新的版本。
2)在虚机中安装开发包
vbox虚机文件共享操作不在此描述。重点说明安装过程中的问题。
将下载的安装包解压后,直接运行xsetup默认安装会有问题。我的方法是在终端中运行:sudo chmod 777 /opt。然后再运行xsetup,按照默认选项安装即可。
疑问:不知道为什么,使用sudo xsetup安装不能成功。只好修改/opt目录权限。
3.安装软件:

1)根据需要安装开发过程需要的组件
安装组件:libncurses
sudo apt-get install libncurses5-dev
这个组件是make menuconfig时需要的。
2)svn

我使用的是subversion:

ubuntu12.04的源svn是1.6版本,这个不习惯,升级到1.7
svn1.6升级到1.7:
卸载原来的svn1.6:sudo apt-get remove subversion
添加PPA源
vim /etc/apt/sources.list 
deb http://ppa.launchpad.net/dominik-stadler/subversion-1.7/ubuntu precise main 
deb-src http://ppa.launchpad.net/dominik-stadler/subversion-1.7/ubuntu precise main 
sudo apt-get update
安装新版svn:sudo  apt-get install subversion
确认安装版本:svn --version
问题:

a)
提示:Password for '(null)' GNOME keyring:
解决:svn和gnome的一个key冲突了,只要删除就可以了:rm ~/.gnome2/keyrings/login.keyring
b)
删除svn记住的密码:删除 ~/.subversion/auth (命令:rm -rf ~/.subversion/auth


4.uboot
1)下载uboot
https://github.com/Xilinx/u-boot-xlnx/releases
下载xilinx-v14.7标签中tar.gz格式的文件(zip格式的文件好像有问题):
u-boot-xlnx-xilinx-v14.7.tar.gz
进入u-boot目录下tools目录,添加路径到环境变量:
u-boot-xlnx$ cd tools
tools$ export PATH=`pwd`:$PATH
不然编译内核生成uImage和制作ramdisk时会提示错误。
2)进入uboot所在目录,编译:
make ARCH=arm zynq_zed_config
make ARCH=arm 
编译后的u-boot为elf格式,u-boot.bin为二进制格式。
5.Linux
1)下载linux   --xilinx
https://github.com/Xilinx/linux-xlnx/releases
下载3.10版本内核:linux-xlnx-xilinx-v14.7.tar.gz
设置环境变量后:
make ARCH=arm xilinx_zynq_defconfig
make ARCH=arm menuconfig
make ARCH=arm UIMAGE_LOADADDR=0x8000 uImage

6.devicetree
下载zedboard开发包中的devicetree.dts到..../linux-xlnx/arch/arm/boot/dts
编译devicetree:
make ARCH=arm dtbs
zynq-zed.dtb是我们需要的文件,改名为devicetree.dtb
也可以只编译这一个文件:make ARCH=arm zynq-zed.dtb

编译模块(可选,用来替换rootfs中的内容):
make ARCH=arm modules

make modules_install ARCH=arm INSTALL_MOD_PATH=../rootfs





后续可以再写个linux系统移植和u-boot移植的技术贴,期待!
共12条 1/2 1 2 »   
快速回复主题
  • 匿名不能发帖!请先 [ 登陆 注册 ]