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

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

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
文件linux-digilent-3.6-digilent-13.01.zip- C) j% F6 Q: @
文件u-boot-digilent-digilent-v2012.04.zip
9 l. @1 m0 t) L# _/WORK/Linux_Digilent/linux-digilent-3.6-digilent-13.01/arch/ARM6 I/ [; S0 h4 i% A
, [5 b4 a' T6 e/ }6 \/ T

; \" e+ S: A; v1 `1 `- Q" X) U1 安装xilinx 编译工具链
  G4 g! y: ^, G) b进入Ubuntu系统,按Ctrl+Alt+T调出Terminal终端。输入sudo passwd root,会要求输入用户密码,然后重置root的密码,这里密码都不会显示。重置完后输入su root,再输入刚刚重置的root密码即可进入root. h: ^# y# k8 X) t* Q$ S
这里要说明很关键的一点,一定要把目录设置好。
1 B$ U. B; h+ n* E$ \1 q$ K在root目录下,输入mkdir /zed,在zed下创建tool,将下载的xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin拷贝到tool目录下。6 W2 X* K8 z' t2 J% y0 M4 h( Q' D
输入cd /root/zed/tool
" A) e* K) e  B5 w1 L然后./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin3 @& U) c3 G7 m5 G4 e
此时系统会提示权限不够,需要如下方式输入
0 @' v% _! N1 Uchmod 777 xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin8 j4 j2 k6 k$ R; @* w/ L7 c/ g. H
之后再输入./xilinx-2011.09-50-arm-xilinx-linux-gnueabi.bin 弹出安装界面,每次都点击next即可。但是需要记住下图中安装的路径。
5 Y+ z0 I7 }4 c9 Z2 q" @6 {* U* n9 |, x

" `4 U. t2 m& k) y: {; {" [8 x2 设置环境变量(root用户下设置)3 t; y! g& T# ]( ?8 K1 |8 n6 G
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-
7 u4 i9 w0 X$ ]% c. cexport PATH=/root/CodeSourcery/Sourcery_CodeBench_Lite_for_Xilinx_GNU_Linux/bin: $PATH7 y0 m' y; i) @" Q! K
(每次关闭终端再重新打开都需要设置)
$ G/ F2 P( N4 Y+ [2 X测试是否安装好:查看工具链的版本
; A: V0 U6 k% F& `& Sarm-xilinx-linux-gnueabi-gcc -v
( m' N8 R4 [% Q- I( Y- n' A! L6 H回显变量是否设置好$ w2 M  i$ M& P! h: O
echo $CROSS_COMPILE
: ?2 R4 y2 m! m8 |" R' ]$ a# j
# n. a/ K; T- Z* c% i3 N% R' P' O+ y0 S; b& R+ f% \

% R' ~$ M5 b3 k1 @  Z4 i% A) V) g( F0 _* {/ ^3 h
3、编译uboot
0 [# V9 u: Q$ G; t1 D) O- {* j(1)解压缩uboot$ A, q4 v5 F4 a3 ]
解压缩命令是tar -zxvf
( w* M+ F( x3 z/ a1 N(2)编译uboot
3 z: B4 V) k$ rmake  CROSS_COMPILE=arm-xilinx-linux-gnueabi-  zynq_zed_config  [注1]  . \0 B& h) _8 F4 Y  T
make  5 p& W5 k' @' t! G. j" R
其中
# c5 }. T0 _9 q, [( f, C"make <board_name>_config"  "include/configs/<board_name>.h"
6 O' k+ t  }( w/ n(新版本的uboot没有zynq_zed.h 需要下载旧的版本)% M# U0 H$ f7 ^1 I
5 U3 `4 G3 b) h, L! U/ k9 g

% w  T1 ^# Q! N; `( _  N8 [( l# V0 |4、拷贝elf文件- Z' t% O8 C# o# X$ e
cp u-boot  u-boot.elf
% p# U3 ^/ I$ y6 A: z1 ?8 d0 y5、设定环境变量
$ P& [9 G# m2 Texport ARCH=arm
# H( ?! k& P2 K" F0 Z7 u! r( j! j: \" t* d2 R
" q7 Z5 c8 |3 k8 o
6、解压缩linux源码6 z: q; I* {/ a! X; y1 B
tar  -zxvf linux-
! z+ y* [# b3 i* f
1 `! Z  Z% {- X0 I0 E+ x
+ _  v3 n8 X% z. Z, t1 z& n
) I2 a% U. a0 B* Z5 j4 g6 o0 J: h3 x8 m
7& F* ?7 k" T3 w- x$ h2 b
(1)make  ARCH=arm  CROSS_COMPILE=arm-xilinx-linux-gnueabi- xilinx_zynq_defconfig! H2 F1 b3 Q6 j4 d
注意,当linux的版本不对的时候,会提示找不到 defconfig文件
. ~  Y  Q! U: u0 y: c. q' K/ L正确的版本是linux-digilent-3.6-digilent-13.01.zip! W  E: y, z( {2 t+ q

4 ^  {( q& O9 h. j  q! U% ?3 G  B5 P
(2)make  ARCH=arm  CROSS_COMPILE=arm_xilinx_linux_gnueabi-  menuconfig
; j- X8 C) L0 u8 ?但是一开始提示提示'make menuconfig' requires the ncurses libraries1 x# w: M+ K! E8 n) n
要安装libncurses5-dev就可以了,执行如下命令:- b4 O' H3 C: x! |1 Q5 L; d8 Y
sudo apt-get install libncurses5-dev
3 L" c- C; s3 w1 b2 n5 L然后再次make menuconfig! H9 j4 `0 j" o* T! I5 y# i, b

4 m" T" M4 Y. `5 i
+ z0 c/ j1 x* Y; `7 a注意如果设置CROSS_COMPILE和ARCH 后,指令中就可以省略7 ?; h4 D* e- P& M" ?  L
export CROSS_COMPILE=arm-xilinx-linux-gnueabi-: V  N% D" L' e9 g! S% ]
export ARCH=arm
. P" k4 ]! Q; X" k' r+ z* a! F) S1 U (3)make  ARCH=arm  CROSS_COMPILE=arm_xilinx_linux_gnueabi-; {/ {8 X# o6 ~2 y/ q* z$ P0 |3 a
在ARCH/ARM/BOOT/下有 Image文件和ZIMAGE 文件。5 H. B2 s) g/ E6 o2 N
ZIMAGE文件是我们所需要的。9 I. C+ `6 y! I- c% }

$ N6 K" P  _/ _8 X9 a- J0 j4 s4 B
93 q( R3 q) W6 {7 Z0 }+ [$ w
DTB 文件生成.是U-BOOT用来传递给LINUX内核的参数的一种文件形式。 DTB:device tree blob
( h# \. |6 ?+ H1 Z" K1,arch/arm/boot/dts/digilent_zed.dts: u! U2 f) Q) p2 P. ^' R
2,生成EXT3 文件系统的设备树 ./scripts/dtc/dtc -I dts -O dtb -o ../devicetree_ext3.dtb arch/arm/boot/dts/digilent-zed.dts
  ~$ `2 a+ B! R4 p: |* V3, 生成RAMDISC的设备树文件。修改arch/arm/boot/dts/digilent_zed.dts 。# s$ I* P9 Y4 p% T; J+ Q/ K
4,./scripts/dtc/dtc -I dts -O dtb -o ../devicetree_ram8m.dtb arch/arm/boot/dts/digilent-zed.dts   O9 M  ^. Z0 B7 S) P( O
; W3 H% @8 J3 ?
) j% L4 w  U1 G% T
8 I6 Y; r$ `) A' ~3 W$ E

0 ~+ Z9 t% ?* w, @  s$ p10 拷贝出zImage文件
6 R- v# a- P( G" ^$ S0 O6 A在z@ubuntu:~/WORK/Linux_Digilent/linux-digilent-3.6-digilent-13.01/arch/arm/boot目录下
$ {$ `1 E0 n- k8 j" D) N( _cp zImage ../../../../zImage
. o$ L# w. ]" y  拷贝出需要的文件/ O( v8 p, B* z: \9 R9 K. Q! X
从linux_digilent文件夹下拷贝出 dtb文件和boot.elf 和zimage 文件
4 {  f8 m- G  N/ a' ]6 Y. R' B# m( [# u0 L; w9 d
9 _6 j( S% i. E

- K, I* ]( n6 J

该用户从未签到

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

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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