EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
6.1 获取 x Linux 源码 源码(基于迅为iTOP-399开发板)
: P' X9 k' x9 W3 `$ I首先从网盘下载迅为提供的Linux源码,下载后得到的源码文件目录如下图:
7 u% {' k% [2 v7 W- {
5 x% A1 b% r* y) z. k, X+ i+ h! F4 @然后使用解压工具解压得到的源码,如下图:
6 t/ `( P. a, h
# V4 s' V/ Q Y0 t3 B
解压完生成 rk3399_linux_sdk_v2.0_191209.tar.gz 压缩包,如下图:" f$ n# Z( O& I0 {0 [
拷贝解压生产的 rk3399_linux_sdk_v2.0_xxxxxxxx.tar.gz(xxxxxxxx 代表
w. y I! c) U: Q8 ~3 `0 V4 R源码的发布日期)文件到 Ubuntu 系统,然后在 Ubuntu 系统下解压,如下图:
0 e+ e2 R' v# L3 ^( a! W" _
! Q3 t7 w" F" }
解压完成后,得到文件夹:rk3399_linux_sdk_v2.0_191209,如下图:/ A# u" U& P3 e5 h
( q* T6 b4 g D6.2 安装 x Linux 源码依赖包 源码依赖包
G: V+ ~ t7 k使用如下命令安装所需的软件包:9 |) `' ~! {' M5 M% `& d1 G
1、sudo apt-get update$ F4 U" j: @7 J, i
2、安装 kernel 及 uboot 编译需要依赖的软件包0 C: r# Z& [9 m6 j+ R
sudo apt-get install git-core gnupg flex bison gpeRF1 [9 d; R \$ q
build-essential zip curl zlib1g-dev gcc-multilib g++-multilib
6 O( `' _/ r3 r2 k* ^) q: Tlibc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev8 D8 R6 W' c- A7 w- o
lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
; _5 ], | Z; @" o7 i' Cdevice-tree-compiler liblz4-tool1 S+ m' ]0 J$ Y
3、安装 Buildroot 编译需要依赖的软件包
: J# F* r) n+ a2 @! s+ V* r2 jsudo apt-get install libfile-which-perl sed make binutils gcc g++0 r4 }9 z4 a& s; w! p
bash patch gzip bzip2 perl tar cpio python unzip rsync file bc libmpc3
4 s3 Z' l" {; r- i5 |# I8 ?; Bgit repo texinfo pkg-config cmake tree texinfo: Y0 P. ^- g+ v0 R# B! E
3 6.3 编译 x Linux 源码 源码$ V& J! e4 a. Q) e& s( {7 h
6.3.1 整体编译# M& L4 E; S0 s2 L( j
使用 cd 命令进入到 rk3399_linux_sdk_v2.0_190805 文件夹。& k" g4 [, Y) V7 R6 p8 D" }
编译分四个命令
6 M6 P6 W" P, l; |) v4 A4 H- p1. ./build.sh BoardConfig.mk
5 `2 P. G8 D, s N. V4 g2 J
9 U; m7 B" `& i% C6 _9 Y
2. ./build.sh all
6 o9 r6 U4 }1 L) A1 _6 Y
5 H/ `; Q& C/ t3. ./build.sh firmware' D' {9 D% H8 Z- Z! L3 M
2 Z. O8 h$ e7 x; R$ P* b* c/ S
4. ./build.sh updateimg’
9 K. o* }/ a4 Y/ r3 {
: x( D w# R# h最终在 rocdev 目录下生成镜像文件 update.img。
7 k& y& z) t2 P# K6 u' O g/ v
6.3.2 单独编译
; H: I% D. t* S" \; |命令./build.sh -h 查看可选参数
" ]$ M) K. W! N9 I+ o6 p
单独编译 uboot: ./build.sh uboot 在 uboot 目录下生成 u-boot.bin。
' E, n, s# r& f单独编译 kernel: ./build.sh kernel+ n# Q' n7 D+ H2 u: O
在 kernel 目录下生成 boot.img1 J( t- m# l1 u4 w; w2 \
单独编译 rootfs:./build.sh rootfs. M4 y* f: r1 }$ `0 @
在 buildroot/output/rockchip_rk3399/images 目录下生成 rootfs.ext4
' c) ^8 Z- Z: E$ v' C |