找回密码
 注册
关于网站域名变更的通知
查看: 293|回复: 1
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2020-5-18 10:21 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
文件linux-digilent-3.6-digilent-13.01.zip
% W( N8 l- ]6 f文件u-boot-digilent-digilent-v2012.04.zip
! m1 A0 O7 M9 o  i- }/WORK/Linux_Digilent/linux-digilent-3.6-digilent-13.01/arch/ARM3 n1 o% ?( J' f* G8 x! N  T

2 ]- d) J/ W) x4 e4 A0 N/ z8 `& _% O' d1 x2 B  u
1 安装xilinx 编译工具链
1 l& {( e, Q0 K进入Ubuntu系统,按Ctrl+Alt+T调出Terminal终端。输入sudo passwd root,会要求输入用户密码,然后重置root的密码,这里密码都不会显示。重置完后输入su root,再输入刚刚重置的root密码即可进入root5 D# ]5 j& E3 h6 J/ l; q1 Y
这里要说明很关键的一点,一定要把目录设置好。
) k, b' N9 Z* i: A0 e在root目录下,输入mkdir /zed,在zed下创建tool,将下载的xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin拷贝到tool目录下。
# }3 t  r0 f4 k' N; T) e; I; }输入cd /root/zed/tool. D8 p: z" r8 ^8 e0 N. @9 o" M/ G
然后./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin
3 {9 u: n: O9 s9 K- g此时系统会提示权限不够,需要如下方式输入
0 t7 J0 ~: _" N+ g- Fchmod 777 xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin
7 @" c6 L0 U3 }/ z6 g% }# E之后再输入./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin 弹出安装界面,每次都点击next即可。但是需要记住下图中安装的路径。, ]+ |* }  o3 q/ w' ^' b
* }8 I. t7 t  f8 o+ y

8 J$ q# a$ R! B) A* g) M) F8 e+ C) p2 设置环境变量(root用户下设置)
. N1 y1 Y2 F1 O  oexport CROSS_COMPILE=arm-xilinx-linux-gnueabi-
  O  F6 D$ p0 q% m; @/ xexport PATH=/root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin: $PATH. p  A! Y+ m* N7 Z
(每次关闭终端再重新打开都需要设置)
  d' _% w9 c3 J/ g$ y1 j9 Y1 r测试是否安装好:查看工具链的版本
9 v' k9 Z" Q# b- w4 V' T2 harm-xilinx-linux-gnueabi-gcc -v ' \# ~5 S0 z0 J, n1 ^
回显变量是否设置好. V4 Y8 G1 g; g8 \5 S6 a, |4 n
echo $CROSS_COMPILE5 T* Q  Z8 \( i0 x0 Q- j. M

" R4 [6 E5 [/ _+ Y
1 c$ a  }0 O+ ~" m& g0 R
! c& g& ]8 y/ Q; G* N2 L, F: ~0 {7 W& A; l
3、编译uboot' W! I; y0 B! T* D) N
(1)解压缩uboot, P5 T5 t0 U  A+ f+ M$ L* G+ R: P
解压缩命令是tar -zxvf: D# f2 I' G" @" ^/ |& Y
(2)编译uboot
8 @+ `+ f+ s7 cmake  CROSS_COMPILE=arm-xilinx-linux-gnueabi-  zynq_zed_config  [注1]  
7 @. c. E' z2 F! M6 J% ^make  
4 h$ L+ a1 r* J' G' m其中3 U9 q. C9 g: z" f
"make <board_name>_config"  "include/configs/<board_name>.h" + A2 z3 ]0 H! n5 f5 f
(新版本的uboot没有zynq_zed.h 需要下载旧的版本)' o4 m% h3 ?9 H  l
: j5 h8 U: Z5 ?# n# p
; x/ D& C; [7 ^, N' j
4、拷贝elf文件6 u/ y/ T4 u3 D
cp u-boot  u-boot.elf" Z0 L+ X; m5 H4 S# G$ }" \
5、设定环境变量
( L4 m2 r7 v3 {& f  ~; Gexport ARCH=arm3 B; H) f6 P$ E/ U8 b/ N

  }- Y8 J0 Q2 b1 s& k3 n
* ?4 @8 g( x' ?6、解压缩linux源码) l8 P: A- k# f7 _) y% @% G% Q" k
tar  -zxvf linux-
0 s% [  |( P. p
' @$ w% z7 D' c. H& t- ~9 ]5 q; B; D$ s4 t) ~1 F0 F4 d" B
$ K8 O3 Z. M$ s
1 o7 R0 r% b& }! Z3 O  B
7
2 q5 r6 o" M5 |( W" B(1)make  ARCH=arm  CROSS_COMPILE=arm-xilinx-linux-gnueabi- xilinx_zynq_defconfig
6 E- x4 @7 ^4 N: R& u* X注意,当linux的版本不对的时候,会提示找不到 defconfig文件5 d0 h! p. J9 f8 B  }( ~8 a% ~
正确的版本是linux-digilent-3.6-digilent-13.01.zip- l0 I/ g/ Z5 L; I$ m7 A
: W$ j- |: S2 [  }+ F
: p4 l: c! ^  t) R6 A" r
(2)make  ARCH=arm  CROSS_COMPILE=arm_xilinx_linux_gnueabi-  menuconfig
+ e: ]$ t9 v" C但是一开始提示提示'make menuconfig' requires the ncurses libraries* {- I* C7 L5 Q% O: I( s1 U! y, E
要安装libncurses5-dev就可以了,执行如下命令:
$ m2 l% ~/ K3 \8 J- fsudo apt-get install libncurses5-dev1 s; |% v: X% m4 s, {, O, g
然后再次make menuconfig4 }& p3 O+ L4 B6 A0 W2 C
' M' ?  r4 p8 C

4 o5 Q5 `3 s4 A0 W7 ~% e0 l注意如果设置CROSS_COMPILE和ARCH 后,指令中就可以省略
5 Q2 ]1 g# M% Gexport CROSS_COMPILE=arm-xilinx-linux-gnueabi-
" C" Q4 O9 T, a! G" x0 U  ]! texport ARCH=arm
3 a6 R  a! B8 a* n2 g (3)make  ARCH=arm  CROSS_COMPILE=arm_xilinx_linux_gnueabi-
7 x2 g) Q' K8 T9 s# a, v: H- [( T在ARCH/ARM/BOOT/下有 Image文件和ZIMAGE 文件。! d/ O- u  U5 m: [% s7 c
ZIMAGE文件是我们所需要的。, G. n1 A/ d4 M% l# ]; I; j
/ }% }2 V3 N9 V8 b6 e
6 K( T0 R3 `8 }* u- o
9% t  ]& [2 C2 B6 `, _+ y# n% d1 D
DTB 文件生成.是U-BOOT用来传递给LINUX内核的参数的一种文件形式。 DTB:device tree blob ' A) Y& Z0 P  u& }, v
1,arch/arm/boot/dts/digilent_zed.dts
( B! `. Z0 q6 u$ V/ a2,生成EXT3 文件系统的设备树 ./scripts/dtc/dtc -I dts -O dtb -o ../devicetree_ext3.dtb arch/arm/boot/dts/digilent-zed.dts
3 \  I& {: m- x3, 生成RAMDISC的设备树文件。修改arch/arm/boot/dts/digilent_zed.dts 。
/ r% o2 D: L$ ^# D& p3 G2 Q4,./scripts/dtc/dtc -I dts -O dtb -o ../devicetree_ram8m.dtb arch/arm/boot/dts/digilent-zed.dts " ~* z+ z4 p& q8 |: l& {

  s3 h- X+ j  e/ ]! U/ v' u! i8 c( N0 [5 M! [+ w* D: i

3 y% Z+ q' p0 F  F
6 ^% X# N- O& s3 c10 拷贝出zImage文件
, ^9 C& S# p* P% d  u7 ^8 Y( D在z@ubuntu:~/WORK/Linux_Digilent/linux-digilent-3.6-digilent-13.01/arch/arm/boot目录下9 Y" g$ N2 ?0 Z# t! B( [) P9 w
cp zImage ../../../../zImage' J; A# M; x  j8 Y8 x) L- ~
  拷贝出需要的文件
! p! G4 h6 S2 }7 Z5 V从linux_digilent文件夹下拷贝出 dtb文件和boot.elf 和zimage 文件+ E+ k0 Z4 _8 @* t) Y) I
+ a7 f5 J3 g- z* b' u

  ]5 V+ n0 K0 \  ~  ]7 S8 n, b" `- H

该用户从未签到

2#
发表于 2020-5-18 11:10 | 只看该作者
LINUX开发环境并编译LINUX和UBOOT以及生成设备树过程总结
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-26 03:24 , Processed in 0.140625 second(s), 23 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表