android 脚本 gitk,Buildroot for RK3399/zh

Buildroot是Linux平台上一个构建嵌入式Linux系统的框架,由Makefile脚本和Kconfig配置文件构成,旨在简化系统制作步骤,可实现一站式生成可烧写的系统固件,最终的固件包含boot-loader、kernel和rootfs,以及rootfs中的各种库和应用程序 (例如qt, gstreamer, busybox等)。

由 FriendlyELEC 提供的 Buildroot 项目是基于Rockchip原厂的 linux-sdk 制作, 项目使用 git 管理,与原厂的linux sdk更新保持同步;

Buildroot for RK3399运行界面如下:

fc48f13ca97e39163b6795e096af0339.png

9734f785afe3d72118719e7a0c896ec3.png

d79ecfaff563e665e6f996301e1f3dfa.png

d4936389628651fcd59006908ed888cd.png

Image Files

rk3399-sd-buildroot-linux-4.4-arm64-YYYYMMDD.img.zip

从SD卡启动的固件

rk3399-eflasher-buildroot-YYYYMMDD.img.zip

用于烧写到eMMC运行

解压后用 dd 或者 win32image 烧写到 SD 卡。

用户名: root

密码: rockchip

首先需要安装 repo 工具:

git clone https://github.com/friendlyarm/repo

cp repo/repo /usr/bin/

有以下两种途径获取项目源代码,中国大陆用户建议使用方法1的途径下载:

网盘下载地址: 点击进入

文件位于网盘的以下路径:sources/linuxsdk-friendlyelec-YYYYMMDD.tar (YYYYMMDD表示打包的日期)

从网盘中获取的 repo 压缩包在解压之后,需要执行一下以下命令做一次解包动作:

tar xvf /path/to/netdisk/sources/linuxsdk-friendlyelec-YYYYMMDD.tar

cd linuxsdk-friendlyelec

repo sync -l

用此方法得到的源代码版本是repo打包时的版本,如果想拉取到官方最新的版本,可以去掉 -l 参数,执行一次 repo sync, 例如:

cd linuxsdk-friendlyelec

repo sync --no-clone-bundle

mkdir linuxsdk-friendlyelec

cd linuxsdk-friendlyelec

repo init -u https://github.com/friendlyarm/buildroot_manifests -b master -m rk3399_linux_release.xml --repo-url=https://github.com/rockchip-linux/repo --no-clone-bundle

repo sync -c --no-clone-bundle

repo sync kernel

repo sync u-boot

repo sync buildroot-device-custom_rk3399

repo sync buildroot-scripts_rk3399

repo sync sd-fuse_rk3399

cd linuxsdk-friendlyelec

repo sync -c --no-clone-bundle

同步过程中,由于网络原因出现中断,可以使用下面脚本同步代码:

#! /bin/bash

repo sync -c --no-clone-bundle

while [ $? -ne 0 ];

do

repo sync -c --no-clone-bundle

done

在PC的Ubuntu系统下,执下以下命令安装所需的软件:

sudo apt-get install repo 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

./build.sh

./build.sh kernel

./build.sh uboot

./build.sh rootfs

sudo ./build.sh sd-img

或者直接将固件烧写到sd卡:

./friendlyelec/rk3399/sd-fuse_rk3399/fusing.sh /dev/sdX buildroot

其中,/dev/sdX请替换为真实的SD卡设备文件名。

sudo ./build.sh emmc-img

# ./build.sh help

====USAGE: build.sh modules====

uboot -build uboot

kernel -build kernel

rootfs -build default rootfs, currently build buildroot as default

buildroot -build buildroot rootfs

ramboot -build ramboot image

yocto -build yocto rootfs, currently build ros as default

ros -build ros rootfs

debian -build debian rootfs

pcba -build pcba

recovery -build recovery

all -build uboot, kernel, rootfs, recovery image

cleanall -clean uboot, kernel, rootfs, recovery

firmware -pack all the image we need to boot up system

updateimg -pack update image

sd-img -pack sd-card image, used to create bootable SD card

emmc-img -pack sd-card image, used to install buildroot to emmc

save -save images, patches, commands used to debug

default -build all module

重点参数说明:

uboot -单独编译uboot

kernel -单独编译kernel

rootfs -单独编译buildroot

buildroot -同上

sdimg -生成用于dd到sd卡的image文件,以及用于eFlasher工具使用的eMMC烧写文件

├── linuxsdk-friendlyelec

│ ├── app

│ ├── buildroot buildroot根文件系统的编译目录

│ ├── build.sh -> device/rockchip/common/build.sh 全自动编译脚本

│ ├── device 编译相关配置文件

│ ├── distro debian根文件系统生成目录

│ ├── docs 文档

│ ├── envsetup.sh -> buildroot/build/envsetup.sh

│ ├── external

│ ├── friendlyelec 用于适配友善电子RK3399开发板的文件

│ ├── kernel 内核

│ ├── Makefile -> buildroot/build/Makefile

│ ├── mkfirmware.sh -> device/rockchip/common/mkfirmware.sh rockdev链接更新脚本

│ ├── prebuilts

│ ├── rkbin

│ ├── rkflash.sh -> device/rockchip/common/rkflash.sh 烧写脚本

│ ├── rootfs debian根文件系统编译目录

│ ├── tools 烧写、打包工具

│ └── u-boot u-boot

列出当前可用的配置

cd buildroot

make list-defconfigs

显示所下:

rockchip_rk3399_defconfig - Build for rockchip_rk3399

使用menuconfig更改配置

make rockchip_rk3399_defconfig

make menuconfig

make savedefconfig

diff .defconfig configs/rockchip_rk3399_defconfig

cp .defconfig configs/rockchip_rk3399_defconfig

重新编译

cd ../

./build.sh rootfs

将文件放在 friendlyelec/rk3399/fs-overlay-64,然后重新编译 rootfs。

直接修改u-boot和kernel目录下的文件即可。

export PATH=$PWD/buildroot/output/rockchip_rk3399/host/bin/:$PATH

aarch64-buildroot-linux-gnu-g++ -v

显示版本如下:

gcc 版本 6.4.0 (Buildroot 2018.02-rc3-g4f000a0797)

git clone https://github.com/friendlyarm/QtE-Demo.git

cd QtE-Demo

../buildroot/output/rockchip_rk3399/host/bin/qmake QtE-Demo.pro

make

要实现开机自动运行你的Qt程序,可将QtE-Demo拷贝到开发板上,然后修改 /etc/init.d/下的S50launcher,将/usr/local/QLauncher/QLauncher &这一行改为QtE-Demo的文件路径即可。

执行 build.sh emmc-img 之后,在 friendlyelec/rk3399/sd-fuse_rk3399 下面会有一个 buildroot 目录,使用android_tools工具加载这个目录下的文件即可。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值