EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
6.1 获取 x Linux 源码 源码(基于迅为iTOP-399开发板)
' i; h2 s& L. M( ]. _0 q1 ?首先从网盘下载迅为提供的Linux源码,下载后得到的源码文件目录如下图:, J' B) a: _7 o# n
$ |5 B+ p8 K' m* d5 T4 ]; e
然后使用解压工具解压得到的源码,如下图:+ a$ Z+ ?; D: ?; q
. ^3 }" x9 x7 B9 c. l) Q2 T I& {+ |解压完生成 rk3399_linux_sdk_v2.0_191209.tar.gz 压缩包,如下图: j8 O' F: _. z+ K( T
拷贝解压生产的 rk3399_linux_sdk_v2.0_xxxxxxxx.tar.gz(xxxxxxxx 代表
$ f# W; N- T5 f! y& Z- j' V) O* y源码的发布日期)文件到 Ubuntu 系统,然后在 Ubuntu 系统下解压,如下图:6 ]; F7 G6 R: w6 m; t( ^1 S& R+ y3 }
( z9 a! |9 M; c/ V. m3 K0 _解压完成后,得到文件夹:rk3399_linux_sdk_v2.0_191209,如下图:' n- e* @; q) `9 W/ e
' P+ J- j. e7 r6.2 安装 x Linux 源码依赖包 源码依赖包+ c6 Y/ r. q( E7 r |/ e
使用如下命令安装所需的软件包:9 a) @2 p! u5 }9 h
1、sudo apt-get update
5 g3 n' e3 b5 _; D+ Z) b/ h2、安装 kernel 及 uboot 编译需要依赖的软件包# l' R6 \& }8 ]
sudo apt-get install git-core gnupg flex bison gpeRF3 G6 {3 V4 z* ^
build-essential zip curl zlib1g-dev gcc-multilib g++-multilib( @% `+ I3 ~8 }% A
libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev
% T$ R' @8 G7 r4 O- qlib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip
/ f* d& P$ g2 Y: P. K) ddevice-tree-compiler liblz4-tool) w4 I3 }1 I0 v) N/ x% k
3、安装 Buildroot 编译需要依赖的软件包, B$ p2 @+ Y9 _
sudo apt-get install libfile-which-perl sed make binutils gcc g++
& @" ^( A2 V8 a: kbash patch gzip bzip2 perl tar cpio python unzip rsync file bc libmpc3
& e1 W8 v f1 m* h7 Xgit repo texinfo pkg-config cmake tree texinfo* \1 c0 d/ \. B# }
3 6.3 编译 x Linux 源码 源码
% N5 `& T; p/ F) @4 m, R6.3.1 整体编译
" ]% X, o( P+ D/ Z3 h8 x使用 cd 命令进入到 rk3399_linux_sdk_v2.0_190805 文件夹。" n# G7 _. _/ ]% [. P4 v; i
编译分四个命令2 v3 ]! P1 _- X& Z7 D+ M5 D5 N+ w+ \
1. ./build.sh BoardConfig.mk
- L; d, o" L3 m4 K8 k/ o
/ X" M+ |6 u3 U$ a2. ./build.sh all3 N/ n: ^8 N6 n% W# k% e
5 _9 ~" ~' s. o! ~9 Z
3. ./build.sh firmware. n$ c! ~9 a" F4 h+ g- o4 D4 y# [
/ l' X' C" }4 l6 C. m! \
4. ./build.sh updateimg’8 i% r8 K f& ?% H1 w0 z9 n; }
! m- L$ I! F/ o) @+ @
最终在 rocdev 目录下生成镜像文件 update.img。( S( _( Z7 v+ L( E
6.3.2 单独编译
|% _ Z9 R T( p命令./build.sh -h 查看可选参数+ q# S, H! m! `9 ^1 m( a
单独编译 uboot: ./build.sh uboot 在 uboot 目录下生成 u-boot.bin。4 I; v* X2 r5 X4 F1 c0 I
单独编译 kernel: ./build.sh kernel2 ^. v2 i( }! H6 q
在 kernel 目录下生成 boot.img
- C, V* P6 j; x+ z单独编译 rootfs:./build.sh rootfs) l- k" ]" |2 y8 i/ M
在 buildroot/output/rockchip_rk3399/images 目录下生成 rootfs.ext4 5 w& L9 x+ E( H3 p. Z6 S$ X& C+ ~
|