瑞芯微Rockchip开发者社区
直播中

h1654155598.0450

12年用户 668经验值
私信 关注
[问答]

怎样去开发一种RK3399开发板呢?有哪些开发步骤

怎样去开发一种RK3399开发板呢?有哪些开发步骤?

回帖(1)

陈衍暖

2022-3-7 15:00:59
1 开发环境

ubuntu 1604 desktop

< >2 参考文档或网址


TW-AC3399-EVM评估板用户手册.pdf

Rockchip Linux软件开发指南.pdf

Android开发工具手册_v1.2.pdf

< >3 安装相关软件包

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

mkdir RK3399

将rk3399-linux-sdk-20200728.tar拷贝到RK3399目录

cd RK3399/

tar xvf rk3399-linux-sdk-20200728.tar

git reset --hard

git branch -a

git checkout master

ls -a

可以看到如下文件或文件夹

app  build_all.sh  buildroot  build.sh  debian  device  distro  docs  envsetup.sh  external  .git  .gitignore  kernel  Makefile  mkfirmware.sh  prebuilts  rk3399-linux-sdk-20200728.tar  rkbin  rkflash.sh  tools  u-boot  ubuntu

< >5 编译出可以在开发板上运行的一系列镜像并编译

mkdir rk3399-linux

cd rk3399-linux/

tar xvf rk3399-linux-sdk-20200728.tar

git reset --hard

git branch -a

git checkout master

./build.sh init,选择9. BoardConfig_rp3399_buildroot

修改toolslinuxLinux_Pack_Firmwarerockdevpackage-file为如下图所示



./build.sh,可以生成u-boot、kernel相关的img文件,但是生成rootfs.img时会报错。

./build.sh buildroot,在buildroot/output/rockchip_rk3399/images/下应该会生成一个400多M大小的ext2文件系统。

./build.sh,此时会在 rockdev/下生成例如update-rp3399-buildroot-20210507-225122.img的400多M大小的文件,使用烧录工具AndroidTool.exe烧录该文件即可。

< >6 修改kernel并编译


cd kernel

make menuconfig

cd ..

./build.sh

在rockdev目录生成update包。

< >7 支持telnetd


默认buildroot的配置支持ssh远程登录,登录账号:root,密码:rockchip

< >7.1 修改kernel并编译

cd kernel

make menuconfig,选中Device Drivers->Character devices->Legacy (BSD) PTY support,(256)Maximum number of legacy PTY in use

cd ..

./build.sh

在rockdev目录生成update包。

< >7.2 修改busybox并编译

cd buildroot

make busybox-menuconfig

确保选中Networking Utilities->telnet及其子选项、Networking Utilities->telnetd及其子选项。

make busybox-update-config

cd ..

./build.sh buildroot

./build.sh

在rockdev目录生成update包。

使用telnet登录

板端支持telnetd

远程端登录账号:root,密码:rockchip

< >7.3 使串口登录时需要密码

默认buildroot生成的系统不需要密码直接可以使用串口访问

需要修改/etc/inittab

注释掉::respawn:-/bin/sh,将出现/***in/getty的行注释掉

在::sysinit:/etc/init.d/rcS的后面添加::respawn:/***in/getty -L  ttyFIQ0 0 vt100

< >8 基本组件测试

< >8.1 网口测试

直接用网线接入路由器,打印如下,

[root@rk3399:/]# [  508.222449] rk_gmac-dwmac fe300000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx

可自动获取到IP地址,如果路由器可以上外网则可以直接ping通

可以执行ifconfig eth0 down禁用以太网功能,之后执行ifconfig eth0 up可启用以太网功能

< >8.2 USB3.0接口测试

插入U盘,自动识别到U盘并打印相关信息,且自动挂载U盘到/media/u***0。只支持FAT32文件系统,不支持exFAT和NTFS文件系统。

< >8.3 USB2.0接口测试

插入U盘,自动识别到U盘并打印相关信息,且自动挂载U盘到/media/u***0。只支持FAT32文件系统,不支持exFAT和NTFS文件系统。

< >8.4 SD卡接口测试

插入SD卡,自动识别到SD卡并打印相关信息,且自动挂载SD卡到/mnt/sdcard。只支持FAT32文件系统,不支持exFAT和NTFS文件系统。

< >9 应用程序开发


< >终端打印字符串

编写测试代码,调用printf函数简单打印几个字符。编译成可执行程序,通过挂载或者拷入板端运行。

cd /home/lijun/tmp_mount/

/home/lijun/rk3399-linux/buildroot/output/rockchip_rk3399/host/bin/aarch64-buildroot-linux-gnu-gcc testPrint.c -o testPrint

< >10 更改根文件系统

应用程序做好之后需要放入根文件系统,做成烧录文件烧到板端。比如做好wifi相关移植之后,相关的依赖程序放入/home/WIFI。

根文件系统路径为:buildroot/output/rockchip_rk3399_recovery/target,默认没有home目录,直接创建即可,其他文件依次拷贝进去。

./build.sh buildroot(这一步不能省略)

./build.sh

在rockdev目录生成update包。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分