MY-RK3399-EK314 Linux-4.4 编译手册

来自明远智睿的wiki
跳转至: 导航搜索

配置编译环境


ubuntu14.04(64bit),已经真机编译验证过

搭建编译环境

  • 下载安装ubuntu固件所需要的库

$sudo apt-get install git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler \
gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools \
linaro-image-tools gcc-4.8-multilib-arm-linux-gnueabihf gcc-arm-linux-gnueabihf libssl-dev \
gcc-aarch64-linux-gnu g+conf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make \
binutils build-essential gcc g++ bash patch gzip bzip2 perl tar cpio python unzip rsync file bc wget \
libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev libglade2-dev cvs git mercurial rsync openssh-client \
subversion asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 libssl-dev texinfo \
liblz4-tool genext2fs lib32stdc++6

  • 下载安装buildroot固件所需要的库

$sudo apt-get install git-core gitk git-gui gcc-arm-linux-gnueabihf u-boot-tools device-tree-compiler \
gcc-aarch64-linux-gnu mtools parted libudev-dev libusb-1.0-0-dev python-linaro-image-tools \
linaro-image-tools autoconf autotools-dev libsigsegv2 m4 intltool libdrm-dev curl sed make \
binutils build-essential gcc g++ bash patch gzip bzip2 perl tar cpio python unzip rsync file bc wget \
libncurses5 libqt4-dev libglib2.0-dev libgtk2.0-dev libglade2-dev cvs git mercurial rsync openssh-client \
subversion asciidoc w3m dblatex graphviz python-matplotlib libc6:i386 libssl-dev texinfo \
liblz4-tool genext2fs lib32stdc++6 realpath

下载源码并解压

   cat myrk3399_linux.tar.bz2.a* >> myrk3399_linux.tar.bz2
   sudo tar -xjvf myrk3399_linux.tar.bz2
   sudo chown myzr:myzr linux -R       (myzr是我的用户名,按实际修改)

配置文件介绍

配置文件在device/rockchip/rk3399目录下
myzr-rk3399.mk编译ubuntu镜像
myzr-rk3399-buildroot.mk编译buildroot镜像

配置文件有几个重要属性:

  • 编译u-boot的配置文件

export RK_UBOOT_DEFCONFIG=myzr-rk3399

  • 编译kernel配置文件

export RK_KERNEL_DEFCONFIG=myzr_linux_defconfig

  • 编译kernel的设备树

export RK_KERNEL_DTS=rk3399-myzr-hdmi

  • 分区信息

export RK_PARAMETER=parameter-ubuntu.txt

  • 根文件系统镜像路径

export RK_ROOTFS_IMG=system/system.img

编译ubuntu镜像

  • 设置配置文件

$./build.sh myzr-rk3399.mk
可以能过查看device/rockchip/.BoardConfig.mk文件确认是否正确设置配置文件

  • 编译kernel

$./build.sh kernel
或者
$cd kernel
$make ARCH=arm64 rk3399-myzr-hdmi.img -j8

  • 编译u-boot

$./build.sh uboot
或者
$cd u-boot
$./make.sh myzr-rk3399

  • 整理镜像文件

$./mkfirmware.sh
可以在rockdev目录下查看

  • 打包统一固件

$./build.sh updateimg
可以在rockdev目录下查看update.img文件

编译buildroot镜像

  • 设置配置文件

$./build.sh myzr-rk3399-buildroot.mk

  • 编译内核

$./build.sh kernel
或者
$cd kernel
$make ARCH=arm64 rk3399-myzr-hdmi.img -j8

  • 编译u-boot

$./build.sh uboot
或者
$cd u-boot
$./make.sh myzr-rk3399

  • 编译buildroot

$./build.sh rootfs

  • 整理镜像文件

$./build.sh recovery

$./mkfirmware.sh
可以在rockdev目录下查看

  • 打包统一固件

$./build.sh updateimg
可以在rockdev目录下查看update.img文件