EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
6.1 获取 x Linux 源码 源码(基于迅为iTOP-399开发板)8 a; K" P+ `4 H' r3 J6 f
首先从网盘下载迅为提供的Linux源码,下载后得到的源码文件目录如下图:/ ?- q+ O! R8 n
4 X; ~: Z% a1 F4 X然后使用解压工具解压得到的源码,如下图:
/ v5 m& b, C$ C, S9 Y
+ }7 p' J6 J: K$ \
解压完生成 rk3399_linux_sdk_v2.0_191209.tar.gz 压缩包,如下图:( p; b. K7 u3 x5 J
拷贝解压生产的 rk3399_linux_sdk_v2.0_xxxxxxxx.tar.gz(xxxxxxxx 代表
' z. r* I) O& T; T源码的发布日期)文件到 Ubuntu 系统,然后在 Ubuntu 系统下解压,如下图:
3 u5 B! K. V4 W6 d( G7 o0 W
; N8 s: W, N( a9 D7 x; b解压完成后,得到文件夹:rk3399_linux_sdk_v2.0_191209,如下图:" [2 W# ?) H7 Y, M) T: I
; b8 {0 Z0 \) A4 p( U, r* U! g
6.2 安装 x Linux 源码依赖包 源码依赖包
! h) [0 s6 ^# o; z1 X: O1 m0 c& {& A使用如下命令安装所需的软件包:
. y8 i" d' q z \3 Q1、sudo apt-get update. B0 v7 n0 R+ Q. n4 }( w
2、安装 kernel 及 uboot 编译需要依赖的软件包+ q4 `& Q9 B1 N) P6 C. L3 r
sudo apt-get install git-core gnupg flex bison gpeRF
. x% e: I4 i- E( g7 lbuild-essential zip curl zlib1g-dev gcc-multilib g++-multilib# B) J$ m% u9 U) D, V% x
libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev5 p7 J$ q9 n! X6 }; K2 N$ v& \) g
lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
$ {: N0 x1 _" i4 X% [$ [device-tree-compiler liblz4-tool9 S# ` n* o: u
3、安装 Buildroot 编译需要依赖的软件包1 {1 D/ M! y6 s* l7 L/ n
sudo apt-get install libfile-which-perl sed make binutils gcc g++
9 f0 R6 Q" r; W3 e: ubash patch gzip bzip2 perl tar cpio python unzip rsync file bc libmpc39 d4 b* _& n9 Z
git repo texinfo pkg-config cmake tree texinfo
' b+ e2 C! t* T3 6.3 编译 x Linux 源码 源码& m8 U) }1 e4 s% k& T
6.3.1 整体编译
( K1 C( X5 M$ U( N使用 cd 命令进入到 rk3399_linux_sdk_v2.0_190805 文件夹。
3 \" D$ \" y. l0 w! z编译分四个命令
E" @% Z! Y2 b6 A1. ./build.sh BoardConfig.mk0 T, o$ U+ r* P8 m$ I
0 q7 y8 [2 W9 r2 Q1 r, Q% _2. ./build.sh all. B& g" |) r, p; ^1 ~
/ g, r n1 F, V) y$ Z3. ./build.sh firmware
) N: K8 Q1 G: H# D8 I
( j b; v$ x- |; H+ D' f
4. ./build.sh updateimg’
. i! q ?' @. f0 B. d
5 X ]4 ^9 G r6 L; p& x
最终在 rocdev 目录下生成镜像文件 update.img。3 ?# j5 n* f2 ~2 r6 J* x
6.3.2 单独编译+ @/ @% F1 N9 D; x" q# D8 C9 U
命令./build.sh -h 查看可选参数
5 \7 a1 I( e8 S% G, U- Q
单独编译 uboot: ./build.sh uboot 在 uboot 目录下生成 u-boot.bin。$ p- _/ a* [4 v3 v/ O
单独编译 kernel: ./build.sh kernel
8 k5 D+ {+ X% [/ m5 }在 kernel 目录下生成 boot.img/ a4 W( y: p/ e% x, C% Y
单独编译 rootfs:./build.sh rootfs$ w7 \6 f4 N* q. o5 l' X
在 buildroot/output/rockchip_rk3399/images 目录下生成 rootfs.ext4
: b2 D4 \4 P# ^& F/ W9 g |