EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
6.1 获取 x Linux 源码 源码(基于迅为iTOP-399开发板)3 J3 Q* p: g; K2 x7 l1 e2 V
首先从网盘下载迅为提供的Linux源码,下载后得到的源码文件目录如下图:# v) a- C/ y9 n) X
: T- A0 N' V5 |; C然后使用解压工具解压得到的源码,如下图:
1 `4 E/ {& N( _8 c+ k
7 z9 A {1 K. K2 p* }解压完生成 rk3399_linux_sdk_v2.0_191209.tar.gz 压缩包,如下图:: r( z7 H R/ X/ n7 N8 d
拷贝解压生产的 rk3399_linux_sdk_v2.0_xxxxxxxx.tar.gz(xxxxxxxx 代表 m5 n4 B3 S8 Q0 [. L
源码的发布日期)文件到 Ubuntu 系统,然后在 Ubuntu 系统下解压,如下图:7 i- o( b- Z$ T- F) K1 F( D
; K$ c- Q; U8 V1 J解压完成后,得到文件夹:rk3399_linux_sdk_v2.0_191209,如下图:
$ {7 L; P1 {; S6 L0 e
3 ]3 j" ]1 }+ r( m# x- w: P M6.2 安装 x Linux 源码依赖包 源码依赖包
0 R, f; ~% M& T0 E. g0 R使用如下命令安装所需的软件包:
2 T$ H! J. S( H/ J5 I/ F1 U1、sudo apt-get update! L$ ]; a+ ?4 _0 ]9 w
2、安装 kernel 及 uboot 编译需要依赖的软件包
; ^& H% N0 x o/ Csudo apt-get install git-core gnupg flex bison gpeRF
. B+ C' M0 g* K% i$ M1 t/ ybuild-essential zip curl zlib1g-dev gcc-multilib g++-multilib2 `) x: G) y$ g8 U6 m1 E/ q
libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev0 b f% F6 k3 J* a% C2 p5 N( P
lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
/ O% E! [& R/ v1 \4 m. {, f& N* Rdevice-tree-compiler liblz4-tool0 j: t/ l) a, ?/ W( k, ?9 t5 L
3、安装 Buildroot 编译需要依赖的软件包6 o0 s' R6 s$ u: C
sudo apt-get install libfile-which-perl sed make binutils gcc g++" F* ?- h8 A7 l: R: x u9 l
bash patch gzip bzip2 perl tar cpio python unzip rsync file bc libmpc3
1 i9 @' s: T9 G3 Q: n Bgit repo texinfo pkg-config cmake tree texinfo" p+ O7 w- I2 v5 S1 F9 S
3 6.3 编译 x Linux 源码 源码
. X5 T p6 y' _5 o; O; s. W6.3.1 整体编译
0 v! z' B6 d" i/ ~0 S2 t. r使用 cd 命令进入到 rk3399_linux_sdk_v2.0_190805 文件夹。- y' G: u: W% F, I1 W# ^
编译分四个命令+ k# J( y8 m/ a6 J
1. ./build.sh BoardConfig.mk, d! G& U3 m+ K) E
9 D4 v7 G% F# `. d5 Q- B7 U! E
2. ./build.sh all
/ N* {2 F" m3 w0 k. V7 V
8 T3 u: w4 l: S6 |7 B' W; z* \3 @3. ./build.sh firmware
+ Z; d$ l) I$ M J4 ^! W
+ C# a7 b6 P$ [: X4 ]5 j
4. ./build.sh updateimg’# ~8 ~, S- x6 [0 `9 P) E7 c
2 [' {) C% w1 _: T% d* G
最终在 rocdev 目录下生成镜像文件 update.img。2 j/ F1 }0 X0 K" q: V p4 T: F$ _
6.3.2 单独编译8 v7 @2 H" Q# c1 Q* s* X
命令./build.sh -h 查看可选参数
* ^+ c- T" M, r9 D
单独编译 uboot: ./build.sh uboot 在 uboot 目录下生成 u-boot.bin。
: w: \6 G& p0 {+ B单独编译 kernel: ./build.sh kernel# i' r% G# u$ Z$ K3 j E6 u' R* Y
在 kernel 目录下生成 boot.img
5 k; s! y6 a# x4 Z- R; g8 K单独编译 rootfs:./build.sh rootfs
! G0 F9 k9 X1 V ~在 buildroot/output/rockchip_rk3399/images 目录下生成 rootfs.ext4
( p/ }, n- [4 C) B0 s0 x |