“100ask roc-rk3399-pc”的版本间的差异
第240行: | 第240行: | ||
==编译u-boot== | ==编译u-boot== | ||
− | + | *准备工作 | |
+ | 安装TFTP NFS服务请参考[[Configuring_ubuntu#.E7.8E.AF.E5.A2.83.E9.85.8D.E7.BD.AE | Ubuntu环境配置]],设置如下参数让系统通过网络挂载方式启动,方便调试。<br> | ||
+ | 其中TFTP目录假设为<code> /home/book/tftpboot</code> NFS目录假设为<code> /home/book/nfs_rootfs</code><br> | ||
+ | '''注意:以下操作会破坏SD卡的数据,请先进行备份。''' | ||
+ | *编译Roc-rk3399-pc开发板uboot命令 | ||
book@100ask:~$ cd ~/100ask_roc-rk3399-pc/uboot2019.01 | book@100ask:~$ cd ~/100ask_roc-rk3399-pc/uboot2019.01 | ||
第249行: | 第253行: | ||
book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ ./make.sh uboot | book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ ./make.sh uboot | ||
book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ ./make.sh loader | book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ ./make.sh loader | ||
+ | |||
+ | *单独烧写uboot | ||
+ | 使用dd命令烧写img镜像文件到TF卡中。 | ||
+ | book@100ask:~/100ask_roc-rk3399-pc/uboot2019.01$ sudo dd if=idbloader.img of=/dev/sdb seek=64 | ||
+ | book@100ask:~/100ask_roc-rk3399-pc/uboot2019.01$ sudo dd if=uboot.img of=/dev/sdb seek=16384 | ||
+ | book@100ask:~/100ask_roc-rk3399-pc/uboot2019.01$ sudo dd if=trust.img of=/dev/sdb seek=24576 | ||
* nfs启动系统 | * nfs启动系统 | ||
+ | 注意: '''serverip'''为你的ubuntu IP 地址 '''ipaddr '''为你给开发板设置的IP地址,设置IP完成后可以通过 ping 命令来确认是否连通。 | ||
+ | 其中'''rootpath '''指定的是ubuntu下解压的Roc-rk3399-pc文件系统所在目录。 | ||
=> setenv serverip 192.168.1.132 | => setenv serverip 192.168.1.132 | ||
=> setenv ipaddr 192.168.1.112 | => setenv ipaddr 192.168.1.112 | ||
=> tftpboot 0x01f00000 rk3399-roc-pc.dtb; tftpboot 0x02080000 Image; setenv bootargs root=/dev/nfs nfsroot=192.168.1.132:/home/book/rootfs,vers=3 rw ip=192.168.1.120; booti 0x02080000 - 0x01f00000 | => tftpboot 0x01f00000 rk3399-roc-pc.dtb; tftpboot 0x02080000 Image; setenv bootargs root=/dev/nfs nfsroot=192.168.1.132:/home/book/rootfs,vers=3 rw ip=192.168.1.120; booti 0x02080000 - 0x01f00000 | ||
+ | 执行''' run netboot 命令后,uboot会自动根据设置的参数,下载复制到<code> /home/book/tftpboot</code>目录下的设备树文件和内核文件以及挂载nfs文件系统。 | ||
==编译linux kernel== | ==编译linux kernel== |
2019年8月9日 (五) 16:55的版本
- 开发板购买地址:
- 资料光盘下载地址:https://pan.baidu.com/s/1qGeSZKxCH7pFDZNgsIvczQ
目录
roc-rk3399-pc简介
SOC特征
|
开发板特征
roc-rk3399-pc 开发板参数列表 | |
---|---|
主控芯片 |
|
处理器 |
|
图形处理器 |
|
视频处理器 |
|
电源管理 |
|
内存 |
|
存储器 |
|
以太网 |
|
WiFi/蓝牙 |
|
显示 |
|
音频 |
|
摄像头 |
|
USB |
|
调试 |
|
按键 |
|
红外 |
|
RTC |
|
电源 |
|
双Type-C |
|
软件支持
模块支持
- adxl345
- dac
- dh11
- ds18b20
- eeprom
- gps
- irda
- oled
- 步进电机驱动模块
- 超声波
- 人体红外感应
快速使用
准备工作
要使用你的roc-rk3399-pc开发板,请提前准备好以下资源:
- 一台可以上网的windows电脑
- roc-rk3399-pc开发板
- microSD卡/TF卡: Class10或以上的 8GB SDHC卡
- 一个12v/2A的TYPE C接口电源适配器
- VMware-player-15.1.5.exe
- Vmware ubuntu 18.04 64位虚拟机镜像
- win32diskimager-1.0.0-install.exe
- MobaXterm_Portable_v11.0.zip
开发板连接示意图请参考右边的连接方式,连接后用MobaXterm
串口工具进行登录。
更新系统/烧写img镜像文件
请提前下载好配套的资料(本页最开头有下载链接),拷贝 02_images\
目录下的sdcard.img到下载目录,让后通过如下操作进行烧写更新系统。
sd卡启动
- 1.安装资料光盘下
01_tools\SD Card Formatter 5.0.1 Setup.exe
软件,安装完成后打开!
- 2.使用SdCardFormatter格式化SD卡,格式化步骤如下如所示!
(1)选择要格式化的SD卡,选中Quick format,点击Format | (2)在弹出的对话框中点击是(Y) | (3)等待格式化完成,在弹出的对话框中点击确定 |
- 3.安装资料光盘下
01_tools/ win32diskimager-1.0.0-install.exe
软件,安装完成后打开!
- 4.使用wind32diskimage烧写存放在下载目录的
sdcard.img
系统镜像文件,烧写步骤如下所示!
(1)选中需要烧写的SD卡设备,点击文件图标选择系统镜像文件,最后点击写入按钮开始烧写 | (2)此时弹出烧写对话框,点击Yes按钮,继续烧写, 等待任务进度执行到100%) | 烧写成功后,弹出写入成功,此时点击OK |
体验Arduino编程
在过去十年的教育培训中,遇到很多程序员、计算机软硬件爱好者。他们对硬件、驱动并不了解,希望通过简单的学习就能控制硬件,实现自己创意想法,而不是看硬件芯片手册、编写驱动、应用程序。
为此,我们在产品上编写了一套基于Arduino的应用程序库,让用户可以通过几行简单的代码,实现对各种硬件模块的控制。
介绍了LED灯、按键、红外遥控、温湿度传感器、人体红外检测、超声波测距、步进电机控制、OLED显示、三轴加速度计、实时时钟、数模/模数转换、GPS模块等的基本使用,最后再示例了两个实战项目供读者参考。
- 使用方法请参考,配套资料
00_UserManual
目录下Firefly-RK3288应用手册V1.1.pdf
pdf文档。
- 或者点击右侧文档在线下载 Firefly-RK3288应用手册V1.1.pdf ,下载后解压即可阅读。
编译100ask linux sdk系统
简介:以下资源仅限于在百问网官方购买及百问网授权店铺购买的开发板上使用,我们在官方的基础上做了大量的定制化修改,精简了系统,简化下载以及编译流程,更大的提升开发效率,系统不同于firefly官方。
如需为roc-rk3399-pc编译ubuntu 以及Android系统请参考参考页面 构建Linux-sdk 构建Android-7.1系统 构建Android-8.1系统。
获取源码
git邮箱账号和用户名配置
git config --global user.email "you@example.com" git config --global user.name "Your Name"
初次使用,需要配置用户名和密码才可以进行代码同步,用户名和密码根据自己情况设定,也可以随意设定
- repo工具配置
考虑到代码仓库过多,特使用repo工具管理代码
book@100ask:~$ git clone https://git.dev.tencent.com/codebug8/repo.git book@100ask:~$ mkdir -p 100ask_roc-rk3399-pc && cd 100ask_roc-rk3399-pc book@100ask:~/100ask_roc-rk3399-pc $ ../repo/repo init -u https://dev.tencent.com/u/weidongshan/p/manifests/git -b linux-sdk -m rk3399/roc-rk3399-pc_linux_release.xml --no-repo-verify book@100ask:~/100ask_roc-rk3399-pc $ ../repo/repo sync -j4
- 上面使用的repo管理文件xml为国内coding仓库 https://dev.tencent.com/u/weidongshan/p/manifests/git/tree/linux-sdk
- 如果使用Github仓库管理文件xml请查看 https://github.com/100askTeam/manifests/blob/linux-sdk/README.md
设置工具链
交叉编译工具链主要是用于在ubuntu主机上编译并声称可以在其它平台上运行的系统。设置交叉编译工具主要是设置PATH, ARCH和CROSS_COMPILE三个环境变量,下面介绍具体设置方法。
- 永久生效
如需永久修改,请修改用户配置文件, Ubuntu系统下,修改如下:
vim ~/.bashrc
在行尾添加或修改:
export ARCH=arm64 export CROSS_COMPILE=aarch64-linux-gnu- export PATH=$PATH:/home/book/100ask_roc-rk3399-pc/ToolChain-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin
- 临时生效
执行完“export”命令后,该设置只对当前终端有效
book@100ask:~$ export PATH=$PATH:/home/book/100ask_roc-rk3399-pc/ToolChain-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin book@100ask:~$ export ARCH=arm64 book@100ask:~$ export CROSS_COMPILE=aarch64-linux-gnu-
- 手动指定
Make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链
book@100ask:~$ export PATH=$PATH:/home/book/100ask_roc-rk3399-pc/ToolChain-6.3.1/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu/bin book@100ask:~$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- [命令]
编译u-boot
- 准备工作
安装TFTP NFS服务请参考 Ubuntu环境配置,设置如下参数让系统通过网络挂载方式启动,方便调试。
其中TFTP目录假设为 /home/book/tftpboot
NFS目录假设为 /home/book/nfs_rootfs
注意:以下操作会破坏SD卡的数据,请先进行备份。
- 编译Roc-rk3399-pc开发板uboot命令
book@100ask:~$ cd ~/100ask_roc-rk3399-pc/uboot2019.01 book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ make distclean book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ make 100ask_roc-rk3399-pc_defconfig book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ make book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ ./make.sh trust book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ ./make.sh uboot book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ ./make.sh loader
- 单独烧写uboot
使用dd命令烧写img镜像文件到TF卡中。
book@100ask:~/100ask_roc-rk3399-pc/uboot2019.01$ sudo dd if=idbloader.img of=/dev/sdb seek=64 book@100ask:~/100ask_roc-rk3399-pc/uboot2019.01$ sudo dd if=uboot.img of=/dev/sdb seek=16384 book@100ask:~/100ask_roc-rk3399-pc/uboot2019.01$ sudo dd if=trust.img of=/dev/sdb seek=24576
- nfs启动系统
注意: serverip为你的ubuntu IP 地址 ipaddr 为你给开发板设置的IP地址,设置IP完成后可以通过 ping 命令来确认是否连通。 其中rootpath 指定的是ubuntu下解压的Roc-rk3399-pc文件系统所在目录。
=> setenv serverip 192.168.1.132 => setenv ipaddr 192.168.1.112 => tftpboot 0x01f00000 rk3399-roc-pc.dtb; tftpboot 0x02080000 Image; setenv bootargs root=/dev/nfs nfsroot=192.168.1.132:/home/book/rootfs,vers=3 rw ip=192.168.1.120; booti 0x02080000 - 0x01f00000
执行 run netboot 命令后,uboot会自动根据设置的参数,下载复制到 /home/book/tftpboot
目录下的设备树文件和内核文件以及挂载nfs文件系统。
编译linux kernel
book@100ask:~/100ask_roc-rk3399-pc$ cd linux-4.4 book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ make mrproper book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ make 100ask_roc-rk3399-pc_defconfig book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ make Image book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ make dtbs
- 编译内核模块
book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- modules
- 安装内核模块到nfs根文件系统
book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ sudo make ARCH=arm64 INSTALL_MOD_PATH=/media/rootfs modules_install
编译根文件系统
配置文件 | 含义 |
---|---|
100ask_roc-rk3399-pc_defconfig | 默认文件系统版本 |
book@100ask:~/100ask_roc-rk3399-pc$ cd buildroot2018.02 book@100ask:~/100ask_roc-rk3399-pc/buildroot2018.02$ make clean book@100ask:~/100ask_roc-rk3399-pc/buildroot2018.02$ make 100ask_roc-rk3399-pc_defconfig book@100ask:~/100ask_roc-rk3399-pc/buildroot2018.02$ make menuconfig book@100ask:~/100ask_roc-rk3399-pc/buildroot2018.02$ make –jN /* N表示CPU的线程数,比如可以写4、8等以加快编译速度 */
编译后生成文件介绍
buildroot2018.02
├── output
├── images
├── idbloader.img <--u-boot镜像
├── nfs_rootfs <--打包并压缩的根文件系统,适用于NFSROOT启动
│ └── rootfs.tar.gz
├── rk3288-firefly.dtb <--设备树文件
├── rootfs.ext2
├── rootfs.ext4 -> rootfs.ext2 <--ext2格式根文件系统
├── rootfs.tar <--打包后的根文件系统
├── sdcard.img <--完整的SD卡系统镜像
├── trust.img <--u-boot镜像
├── u-boot.bin
├── u-boot-dtb.img
├── uboot.img <--u-boot镜像
└── zImage <--内核镜像