建立LINUX开发环境并编译LINUX和UBOOT以及生成设备树过程总结

简介: 建立LINUX开发环境并编译LINUX和UBOOT以及生成设备树过程总结

文件linux-digilent-3.6-digilent-13.01.zip 文件u-boot-digilent-digilent-v2012.04.zip /WORK/Linux_Digilent/linux-digilent-3.6-digilent-13.01/arch/arm


1 安装xilinx 编译工具链 进入Ubuntu系统,按Ctrl+Alt+T调出Terminal终端。输入sudo passwd root,会要求输入用户密码,然后重置root的密码,这里密码都不会显示。重置完后输入su root,再输入刚刚重置的root密码即可进入root 这里要说明很关键的一点,一定要把目录设置好。 在root目录下,输入mkdir /zed,在zed下创建tool,将下载的xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin拷贝到tool目录下。pan.baidu.com/s/1nvMWAHN输入cd /root/zed/tool 然后./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin 此时系统会提示权限不够,需要如下方式输入 chmod 777 xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin 之后再输入./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin 弹出安装界面,每次都点击next即可。但是需要记住下图中安装的路径。


2 设置环境变量(root用户下设置) export CROSS_COMPILE=arm-xilinx-linux-gnueabi- export PATH=/root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin:PATH(每次关闭终端再重新打开都需要设置)测试是否安装好:查看工具链的版本arm−xilinx−linux−gnueabi−gcc−v回显变量是否设置好echoPATH (每次关闭终端再重新打开都需要设置) 测试是否安装好:查看工具链的版本 arm-xilinx-linux-gnueabi-gcc -v  回显变量是否设置好 echo PATHarmxilinxlinuxgnueabigccvechoCROSS_COMPILE


3、编译uboot (1)解压缩uboot 解压缩命令是tar -zxvf (2)编译uboot make  CROSS_COMPILE=arm-xilinx-linux-gnueabi-  zynq_zed_config  [注1]

make

其中 "make <board_name>_config"  "include/configs/<board_name>.h" (新版本的uboot没有zynq_zed.h 需要下载旧的版本)


4、拷贝elf文件 cp u-boot  u-boot.elf


5、设定环境变量 export ARCH=arm


6、解压缩linux源码 tar  -zxvf linux-


7 (1)make  ARCH=arm  CROSS_COMPILE=arm-xilinx-linux-gnueabi- xilinx_zynq_defconfig 注意,当linux的版本不对的时候,会提示找不到 defconfig文件 正确的版本是linux-digilent-3.6-digilent-13.01.zip

(2)make  ARCH=arm  CROSS_COMPILE=arm_xilinx_linux_gnueabi-  menuconfig 但是一开始提示提示'make menuconfig' requires the ncurses libraries 要安装libncurses5-dev就可以了,执行如下命令: sudo apt-get install libncurses5-dev 然后再次make menuconfig

注意如果设置CROSS_COMPILE和ARCH 后,指令中就可以省略 export CROSS_COMPILE=arm-xilinx-linux-gnueabi- export ARCH=arm (3)make  ARCH=arm  CROSS_COMPILE=arm_xilinx_linux_gnueabi- 在ARCH/ARM/BOOT/下有 Image文件和ZIMAGE 文件。 ZIMAGE文件是我们所需要的。


9 DTB 文件生成.是U-BOOT用来传递给LINUX内核的参数的一种文件形式。 DTB:device tree blob 1,arch/arm/boot/dts/digilent_zed.dts 2,生成EXT3 文件系统的设备树 ./scripts/dtc/dtc -I dts -O dtb -o ../devicetree_ext3.dtb arch/arm/boot/dts/digilent-zed.dts 3, 生成RAMDISC的设备树文件。修改arch/arm/boot/dts/digilent_zed.dts 。 4,./scripts/dtc/dtc -I dts -O dtb -o ../devicetree_ram8m.dtb arch/arm/boot/dts/digilent-zed.dts


10 拷贝出zImage文件 在z@ubuntu:~/WORK/Linux_Digilent/linux-digilent-3.6-digilent-13.01/arch/arm/boot目录下 cp zImage ../../../../zImage 拷贝出需要的文件 从linux_digilent文件夹下拷贝出 dtb文件和boot.elf 和zimage 文件



相关文章
|
17天前
|
Linux
用clang编译Linux内核
用clang编译Linux内核
|
1月前
|
监控 机器人 Unix
GoLand——windows下如何编译Linux二进制文件
GoLand——windows下如何编译Linux二进制文件
29 1
GoLand——windows下如何编译Linux二进制文件
|
1月前
|
Linux SoC
Linux设备树(DTS)
Dts:DTS即Device Tree Source,是一个文本形式的文件,用于描述硬件信息。一般都是固定信息,无法变更,无法overlay。 设备树由来 linux内核源码中,之前充斥着大量的平台相关(platform Device)配置,而这些代码大多是杂乱且重复的,这使得ARM体系结构的代码维护者和内核维护者在发布一个新的版本的时候有大量的工作要做,以至于LinusTorvalds 在2011年3月17日的ARM Linux邮件列表中宣称“Gaah.Guys,this whole ARM thing is a f*cking pain in the ass”这使得整个ARM社区不得不
28 1
Linux设备树(DTS)
|
23天前
|
Linux C语言
深度探索Linux操作系统 —— 编译过程分析
深度探索Linux操作系统 —— 编译过程分析
14 2
|
1月前
|
Ubuntu Linux Windows
如何在WSL中的ubuntu编译Linux内核并且安装使用ebpf?
请注意,在WSL1中可能会由于内核架构限制而无法成功进行以上过程,WSL2对于Linux内核的完整支持更为合适。此外,部分步骤可能因不同的Linux发行版或内核版本而异。
39 4
|
2月前
|
应用服务中间件 Linux 网络安全
|
19天前
|
Linux
用QEMU模拟运行uboot从SD卡启动Linux
用QEMU模拟运行uboot从SD卡启动Linux
|
1月前
|
存储 Unix Linux
揭秘Linux硬件组成:从内核魔法到设备树桥梁,打造你的超级系统,让你的Linux之旅畅通无阻,震撼体验来袭!
【8月更文挑战第5天】Linux作为顶级开源操作系统,凭借其强大的功能和灵活的架构,在众多领域大放异彩。本文首先概述了Linux的四大核心组件:内核、Shell、文件系统及应用程序,并深入探讨了内核的功能模块,如存储、CPU及进程管理等。接着介绍了设备树(Device Tree),它是连接硬件与内核的桥梁,通过DTS/DTB文件描述硬件信息,实现了跨平台兼容。此外,还简要介绍了Linux如何通过本地总线高效管理硬件资源,并阐述了文件系统与磁盘管理机制。通过这些内容,读者可以全面了解Linux的硬件组成及其核心技术。
39 3
|
30天前
|
Linux SoC
【linux】【设备树】中断描述
【linux】【设备树】中断描述
19 0
|
1月前
|
Linux SoC
Linux设备树(DTS)
Dts:DTS即Device Tree Source,是一个文本形式的文件,用于描述硬件信息。一般都是固定信息,无法变更,无法overlay。 设备树由来 linux内核源码中,之前充斥着大量的平台相关(platform Device)配置,而这些代码大多是杂乱且重复的,这使得ARM体系结构的代码维护者和内核维护者在发布一个新的版本的时候有大量的工作要做,以至于LinusTorvalds 在2011年3月17日的ARM Linux邮件列表中宣称“Gaah.Guys,this whole ARM thing is a f*cking pain in the ass”这使得整个ARM社区不得不
34 0