“100ask roc-rk3399-pc”的版本间的差异
(→获取源码) |
|||
(未显示4个用户的136个中间版本) | |||
第1行: | 第1行: | ||
− | = | + | {{Template:DownloadMethod}} |
− | + | ||
− | + | =[[rk3399| rk3399 soc介绍]]= | |
− | + | <span style=" font-size:1.5rem;color:#ff0000; "> [[rk3399| rk3399soc特征介绍]]</span> | |
− | + | ||
− | + | =roc-rk3399-pc开发板简介= | |
− | + | ==开发板特征== | |
− | + | [[File:100ask_roc-rk3399-pc_02.png|thumb|right|frameless|700px|正面视图]] | |
− | + | [[File:100ask_roc-rk3399-pc_03.png|thumb|right|frameless|700px|背面视图]] | |
− | + | ||
− | + | {| border="0" cellpadding="1" cellspacing="1" class="wikitable" style="text-align: left; background-color: rgba(255,255,255,0.2); " | |
− | + | |- | |
− | + | !colspan="2"| roc-rk3399-pc 开发板参数列表 | |
− | + | |- | |
+ | | 主控芯片 || | ||
+ | *Rockchip RK3399 (28纳米HKMG制程) | ||
+ | |- | ||
+ | | 处理器 || | ||
+ | *六核ARM® 64位处理器,主频高达1.8GHz | ||
+ | *基于big.LITTLE大小核架构,双核Cortex-A72(大核)+四核Cortex-A53(小核) | ||
+ | |- | ||
+ | | 图形处理器|| | ||
+ | *ARM Mali-T860 MP4 四核GPU | ||
+ | *支持OpenGL ES1.1/2.0/3.0/3.1, OpenVG1.1, OpenCL, DX11 | ||
+ | *支持AFBC(帧缓冲压缩) | ||
+ | |- | ||
+ | | 视频处理器|| | ||
+ | *支持4K VP9 and 4K 10bits H265/H264 视频解码,高达60fps | ||
+ | *1080P 多格式视频解码 (WMV, MPEG-1/2/4, VP8) | ||
+ | *1080P 视频编码,支持H.264,VP8格式 | ||
+ | *视频后期处理器:反交错、去噪、边缘/细节/色彩优化 | ||
+ | |- | ||
+ | | 电源管理|| | ||
+ | *RK808-D PMU芯片 | ||
+ | |- | ||
+ | | 内存 || | ||
+ | *4GB LPDDR4 双通道64位RAM | ||
+ | |- | ||
+ | | 存储器|| | ||
+ | *板载SPI flash(16M Byte) | ||
+ | *16GB/32GB/128GB 高速eMMC(可选) | ||
+ | *支持MicroSD (TF) 卡、U盘扩展 | ||
+ | *支持扩展板M.2 M-Key 扩展SSD | ||
+ | |- | ||
+ | | 以太网|| | ||
+ | *千兆以太网(RJ45接口) | ||
+ | |- | ||
+ | | WiFi/蓝牙|| | ||
+ | *通过扩展板 M.2 E-Key接口(提供SDIO 3.0信号) | ||
+ | |- | ||
+ | | 显示|| | ||
+ | *HDMI2.0支持4K 60Hz显示,支持HDCP 1.4/2.2 | ||
+ | *DisplayPort 1.2(最高支持4K 60Hz) | ||
+ | *支持eDP 1.3 | ||
+ | *支持MIPI-DSI(双通道) | ||
+ | *支持双屏显示(Type-C + HDMI),支持 4K + 2K输出 | ||
+ | |- | ||
+ | | 音频|| | ||
+ | *1 x HDMI音频输出、DP音频输出 | ||
+ | |- | ||
+ | | 摄像头|| | ||
+ | *双路MIPI CSI接口(同时支持双路摄像头) | ||
+ | |- | ||
+ | | USB|| | ||
+ | *USB 2.0 Host × 3 | ||
+ | *Type-C × 2 | ||
+ | |- | ||
+ | | 调试|| | ||
+ | *调试串口 × 1,用于开发调试 | ||
+ | |- | ||
+ | | 按键 || | ||
+ | *Recovery × 1 | ||
+ | *Power × 1 | ||
+ | |- | ||
+ | | 红外|| | ||
+ | * 1路红外接收头,支持红外遥控功能 | ||
+ | |- | ||
+ | | RTC|| | ||
+ | *RTC实时时钟 x 1,板载电池座 | ||
+ | |- | ||
+ | | 电源|| | ||
+ | *POE+(802.3 AT,输出功率 30W) | ||
+ | *Type-C PD 2.0电源控制芯片、支持宽电压输入(5V-15V) | ||
+ | *双节电池供电(7.4V锂电) | ||
+ | |- | ||
+ | | 双Type-C|| | ||
+ | *支持 4K@60fps输出(不支持同时输出) | ||
+ | *TypeC0接口:支持 DisplayPort 1.2 + Power Delivery 2.0+ USB3.0 OTG +USB2.0 Host、 | ||
+ | *使用一根Type-C线,即可同时实现的板子供电和DP输出。 | ||
+ | *TypeC1 接口:支持DisplayPort 1.2 + USB3.0 HOST+ USB2.0 HOST, 支持对外供电 | ||
+ | |} | ||
− | = | + | ==软件支持== |
+ | ==模块支持== | ||
+ | *adxl345 | ||
+ | *dac | ||
+ | *dh11 | ||
+ | *ds18b20 | ||
+ | *eeprom | ||
+ | *gps | ||
+ | *irda | ||
+ | *oled | ||
+ | *步进电机驱动模块 | ||
+ | *超声波 | ||
+ | *人体红外感应 | ||
+ | =快速使用= | ||
==准备工作== | ==准备工作== | ||
− | + | [[File:100ask_roc-rk3399-pc_04.png|thumb|right|frameless|700px|开发板连接示意图{{Redtext|(注意:串口模块与开发板之间的红色线悬空,即不连接开发板)}}]] | |
要使用你的roc-rk3399-pc开发板,请提前准备好以下资源: | 要使用你的roc-rk3399-pc开发板,请提前准备好以下资源: | ||
* 一台可以上网的windows电脑 | * 一台可以上网的windows电脑 | ||
第27行: | 第117行: | ||
* win32diskimager-1.0.0-install.exe | * win32diskimager-1.0.0-install.exe | ||
* MobaXterm_Portable_v11.0.zip | * MobaXterm_Portable_v11.0.zip | ||
+ | 开发板连接示意图请参考右边的连接方式,连接后用<code>MobaXterm</code>串口工具进行登录。<br> | ||
+ | {{Redtext|注意开发板串口登录用户名为root没有密码。<br>百问网制作的镜像,波特率为:115200,如果烧写Firefly提供的Ubuntu等,波特率为:1500000}} | ||
+ | |||
+ | ==更新系统/烧写img镜像文件== | ||
+ | 请提前下载好配套的资料(本页最开头有下载链接),拷贝下列文件到到下载目录:<br> | ||
+ | <code>Firefly-Roc-rk3399-pc_board/roc-rk3399-pc_视频配套资料_2019.06.20_v1/02_Images/Sdcard_buildroot-image</code> | ||
+ | <br> | ||
+ | 然后通过如下操作进行烧写更新系统。<br> | ||
+ | ===sd卡启动=== | ||
+ | *1.安装资料光盘下<code>01_tools\SD Card Formatter 5.0.1 Setup.exe</code>软件,安装完成后打开!<br> | ||
+ | *2.使用'''SdCardFormatter'''格式化SD卡,格式化步骤如下如所示! | ||
+ | {| class="wikitable" style="text-align: center; background-color: rgba(255,255,255,0.2)" | ||
+ | |- | ||
+ | | [[image:100ask_am335x_SD_P_004.png | 300px ]] | ||
+ | | [[image:100ask_am335x_SD_P_005.png | 300px]] | ||
+ | | [[image:100ask_am335x_SD_P_006.png | 300px ]] | ||
+ | |- | ||
+ | | (1)选择要格式化的SD卡,选中Quick format,点击Format || (2)在弹出的对话框中点击是(Y) || (3)等待格式化完成,在弹出的对话框中点击确定 | ||
+ | |} | ||
+ | |||
+ | *3.安装资料光盘下<code>01_tools/ win32diskimager-1.0.0-install.exe</code>软件,安装完成后打开!<br> | ||
+ | *4.使用'''wind32diskimage'''烧写存放在百度网盘中RK3399配套资料目录中的系统镜像文件:<code> 02_Images/Sdcard_buildroot-image/sdcard.img</code> <br> | ||
+ | 烧写步骤如下所示: <br> | ||
− | + | {| class="wikitable" style="text-align: center; background-color: rgba(255,255,255,0.2)" | |
+ | |- | ||
+ | | [[image:100ask_am335x_SD_p_001.png | 400px ]] | ||
+ | | [[image:100ask_am335x_SD_p_002.png | 400px ]] | ||
+ | | [[image:100ask_am335x_SD_p_003.png ]] | ||
+ | |- | ||
+ | | (1)选中需要烧写的SD卡设备,点击文件图标选择系统镜像文件,最后点击写入按钮开始烧写 || (2)此时弹出烧写对话框,点击Yes按钮,继续烧写, 等待任务进度执行到100%) || 烧写成功后,弹出写入成功,此时点击OK | ||
+ | |} | ||
− | = | + | ==体验Arduino编程== |
+ | :在过去十年的教育培训中,遇到很多程序员、计算机软硬件爱好者。他们对硬件、驱动并不了解,<br> | ||
+ | :希望通过简单的学习就能控制硬件,实现自己创意想法,而不是看硬件芯片手册、编写驱动、应用程序。<br> | ||
+ | :为此,我们在产品上编写了一套基于Arduino的应用程序库,让用户可以通过几行简单的代码,实现对各种硬件模块的控制。<br> | ||
+ | :介绍了{{Redtext | LED灯、按键、红外遥控、温湿度传感器、人体红外检测、超声波测距、步进电机控制、OLED显示、三轴加速度计、实时时钟、数模/模数转换、GPS模块等}}的基本使用,最后再示例了两个实战项目供读者参考。<br> | ||
+ | *使用方法请参考该链接,使用GIT下载文档:[[ BeginnerLearningRoute | 初学者学习路线]] 。 | ||
+ | *使用GIT下载文档后,请参考 '''01_使用Arduino操作体验简单开发/ROC-RK3399-PC开发板Arduino使用手册.pdf''' | ||
+ | =编译100ask linux sdk系统= | ||
+ | <div style="color:#F00; font-size: 1.1em">注意:以下所有操作均在我们提供的资料光盘以及vmware ubuntu18.04进行过测试,确保其可用。如需自行安装配置vmware ubuntu开发环境请参考[[Configuring_ubuntu ]]</div> | ||
+ | 简介:以下资源仅限于在百问网官方购买及百问网授权店铺购买的开发板上使用,我们在官方的基础上做了大量的定制化修改,精简了系统,简化下载以及编译流程,更大的提升开发效率,系统不同于firefly官方。<br> | ||
+ | 如需为roc-rk3399-pc编译ubuntu 以及Android系统请参考参考页面[[roc-rk3399-pc_build_linux | 构建Linux-sdk]][[roc-rk3399-pc_build_Android-7.1 | 构建Android-7.1系统]] [[roc-rk3399-pc_build_Android-8.1 | 构建Android-8.1系统]]。 | ||
==获取源码== | ==获取源码== | ||
− | {| class="wikitable" | + | {| class="wikitable" style="text-align: left; background-color: rgba(255,255,255,0.2)" |
|- | |- | ||
! 类别 !! 国内coding仓库 !! 国外github仓库 | ! 类别 !! 国内coding仓库 !! 国外github仓库 | ||
|- | |- | ||
− | |u-boot|| https:// | + | |u-boot|| https://e.coding.net/weidongshan/100ask_roc-rk3399-pc_uboot || https://github.com/100askTeam/roc-rk3399-pc_uboot |
|- | |- | ||
− | |linux kernel|| https:// | + | |linux kernel|| https://e.coding.net/weidongshan/100ask_roc-rk3399-pc_kernel|| https://github.com/100askTeam/roc-rk3399-pc_kernel |
|- | |- | ||
− | |根文件系统|| https:// | + | |根文件系统|| https://e.coding.net/weidongshan/100ask_roc-rk3399-pc_buildroot|| https://github.com/100askTeam/roc-rk3399-pc_buildroot |
|} | |} | ||
git邮箱账号和用户名配置 | git邮箱账号和用户名配置 | ||
− | |||
git config --global user.email "you@example.com" | git config --global user.email "you@example.com" | ||
git config --global user.name "Your Name" | git config --global user.name "Your Name" | ||
− | |||
+ | 初次使用,需要配置用户名和密码才可以进行代码同步,用户名和密码根据自己情况设定,也可以随意设定 | ||
+ | |||
+ | *repo工具配置 | ||
考虑到代码仓库过多,特使用repo工具管理代码<br> | 考虑到代码仓库过多,特使用repo工具管理代码<br> | ||
− | |||
− | |||
− | |||
− | |||
+ | book@100ask:~$ git clone https://e.coding.net/codebug8/repo.git | ||
book@100ask:~$ mkdir -p 100ask_roc-rk3399-pc && cd 100ask_roc-rk3399-pc | book@100ask:~$ mkdir -p 100ask_roc-rk3399-pc && cd 100ask_roc-rk3399-pc | ||
− | book@100ask:~/ | + | book@100ask:~/100ask_roc-rk3399-pc $ ../repo/repo init -u https://e.coding.net/weidongshan/manifests.git -b linux-sdk -m rk3399/roc-rk3399-pc_linux_release.xml --no-repo-verify |
− | book@100ask:~/ | + | 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 | |
− | |||
==设置工具链== | ==设置工具链== | ||
第73行: | 第198行: | ||
vim ~/.bashrc | vim ~/.bashrc | ||
在行尾添加或修改: | 在行尾添加或修改: | ||
− | export ARCH= | + | export ARCH=arm64 |
− | export CROSS_COMPILE= | + | export CROSS_COMPILE=aarch64-linux-gnu- |
− | export PATH=$PATH: | + | 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 |
+ | 设置完成后执行<code> source ~/.bashrc </code> 才能使其生效 | ||
* 临时生效 | * 临时生效 | ||
执行完“export”命令后,该设置只对当前终端有效 | 执行完“export”命令后,该设置只对当前终端有效 | ||
− | book@100ask | + | 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 ARCH=arm64 | + | book@100ask:~$ export CROSS_COMPILE=aarch64-linux-gnu- |
− | book@100ask$ export CROSS_COMPILE=aarch64-linux-gnu- | ||
* 手动指定 | * 手动指定 | ||
Make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链 | Make编译时指定ARCH架构 CROSS_COMPILE交叉编译工具链 | ||
− | book@100ask$ make ARCH= | + | 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== |
− | book@100ask$ cd | + | *准备工作 |
− | book@100ask: | + | 安装TFTP NFS服务请参考[[Configuring_ubuntu#.E7.8E.AF.E5.A2.83.E9.85.8D.E7.BD.AE | Ubuntu环境配置]],设置如下参数让系统通过网络挂载方式启动,方便调试。<br> |
− | book@100ask: | + | 其中TFTP目录假设为<code> /home/book/tftpboot</code> NFS目录假设为<code> /home/book/nfs_rootfs</code><br> |
− | book@100ask: | + | '''注意:以下操作会破坏SD卡的数据,请先进行备份。''' |
− | * | + | *编译Roc-rk3399-pc开发板uboot命令 |
− | + | ||
− | + | book@100ask:~$ cd ~/100ask_roc-rk3399-pc/uboot2019.01 | |
− | + | book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ make distclean | |
− | setenv serverip | + | book@100ask: ~/100ask_roc-rk3399-pc/uboot2019.01$ make 100ask_roc-rk3399-pc_defconfig |
− | setenv | + | 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会自动根据设置的参数,下载复制到<code> /home/book/tftpboot</code>目录下的设备树文件和内核文件以及挂载nfs文件系统。 | ||
==编译linux kernel== | ==编译linux kernel== | ||
− | book@100ask$ cd linux- | + | *准备工作 |
− | book@100ask:linux- | + | 安装TFTP NFS服务请参考[[Configuring_ubuntu#.E7.8E.AF.E5.A2.83.E9.85.8D.E7.BD.AE | Ubuntu环境配置]],设置如下参数让系统通过网络挂载方式启动,方便调试。<br> |
− | book@100ask:linux- | + | 其中TFTP目录假设为<code> /home/book/tftpboot</code> NFS目录假设为<code> /home/book/nfs_rootfs</code><br> |
− | book@100ask:linux- | + | |
− | book@100ask:linux- | + | *编译roc-rk3399-pc开发板内核 |
− | 编译内核模块 | + | book@100ask:~/100ask_roc-rk3399-pc$ cd linux-4.4 |
− | book@100ask:linux- | + | book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ make mrproper |
− | 安装内核模块到nfs根文件系统 | + | book@100ask:~/100ask_roc-rk3399-pc/linux-4.4$ make 100ask_roc-rk3399-pc_defconfig |
− | book@100ask:linux- | + | 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 | ||
+ | *uboot通过tftp方式下载内核 | ||
+ | 将编译成功的'''Image'''文件和设备树'''rk3399-roc-pc.dtb'''文件,拷贝到ubuntu的<code>/home/book/tftpboot</code> 目录下,<br> | ||
+ | 用以uboot通过tftp 方式进行下载并启动系统。 | ||
==编译根文件系统== | ==编译根文件系统== | ||
+ | *使用buildroot-2018.02 lts版本 | ||
{| class="wikitable" | {| class="wikitable" | ||
|- | |- | ||
! 配置文件 !! 含义 | ! 配置文件 !! 含义 | ||
|- | |- | ||
− | | | + | | 100ask_roc-rk3399-pc_defconfig|| 默认文件系统版本 |
− | |||
− | |||
|} | |} | ||
− | book@100ask$ cd buildroot2018.02 | + | book@100ask:~/100ask_roc-rk3399-pc$ cd buildroot2018.02 |
− | book@100ask:buildroot2018.02$ make clean | + | book@100ask:~/100ask_roc-rk3399-pc/buildroot2018.02$ make clean |
− | book@100ask:buildroot2018.02$ make | + | book@100ask:~/100ask_roc-rk3399-pc/buildroot2018.02$ make 100ask_roc-rk3399-pc_defconfig |
− | book@100ask:buildroot2018.02$ make | + | book@100ask:~/100ask_roc-rk3399-pc/buildroot2018.02$ make all |
− | + | ||
− | 编译后生成文件介绍 | + | :编译后生成文件介绍 |
<syntaxhighlight lang="c" > | <syntaxhighlight lang="c" > | ||
buildroot2018.02 | buildroot2018.02 | ||
├── output | ├── output | ||
− | ├── | + | ├── images |
− | ├── idbloader.img | + | ├── idbloader.img <--u-boot镜像 |
− | ├── | + | ├── rootfs.tar.gz <--打包并压缩的根文件系统,适用于NFSROOT启动 |
− | ├── rk3399-roc-pc.dtb | + | ├── rk3399-roc-pc.dtb <--设备树文件 |
− | |||
− | |||
├── rootfs.ext2 | ├── rootfs.ext2 | ||
− | ├── rootfs.ext4 -> rootfs.ext2 <--ext2格式根文件系统 | + | ├── rootfs.ext4 -> rootfs.ext2 <--ext2格式根文件系统 |
− | |||
├── rootfs.tar <--打包后的根文件系统 | ├── rootfs.tar <--打包后的根文件系统 | ||
− | ├── sdcard.img | + | ├── sdcard.img <--完整的SD卡系统镜像 |
− | ├── trust.img | + | ├── trust.img <--u-boot镜像 |
− | ├── u-boot.bin | + | ├── u-boot.bin |
− | ├── u-boot.img | + | ├── u-boot-dtb.img |
− | + | ├── uboot.img <--u-boot镜像 | |
+ | └── Image <--内核镜像 | ||
+ | |||
</syntaxhighlight> | </syntaxhighlight> | ||
+ | :Buildroot 使用参考页面 [[Buildroot]] | ||
− | == | + | ==参考学习== |
− | + | *章辉学员提供的简单驱动示例 https://github.com/TJPUZhangHui/rk3399 | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | + | =获取帮助与建议= | |
− | + | *如果您有技术问题或错误报告,请访问bbs.100ask.org论坛查找搜索或发帖提问,相关工作人员看到后会及时回复您。<br> | |
− | { | + | *对于网上购买客户,如有问题请联系购买产品时的商家。<br> |
− | + | *如您发现Wiki网站有任何表达错误或者建议请发送邮件到 support@100ask.net ,我们会及时更改处理。<br> | |
− | + | {{TalkGroup}} | |
− | + | <div style="border: 1px solid #A7D7F9; "><comments /></div> | |
− | + | [[Category:ROCKCHIP]][[Category:Rk3399]] [[Category:LinuxKernel4.x]][[Category:Buildroot]] | |
− | |||
− | |||
− |
2020年9月11日 (五) 10:31的最新版本
- 初学者请从这里开始: 初学者学习路线
- 韦东山升级版全系列视频开发板BSP包
请根据自己购买的开发板下载相应的资料光盘
目录
roc-rk3399-pc开发板简介
开发板特征
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
串口工具进行登录。
注意开发板串口登录用户名为root没有密码。
百问网制作的镜像,波特率为:115200,如果烧写Firefly提供的Ubuntu等,波特率为:1500000
更新系统/烧写img镜像文件
请提前下载好配套的资料(本页最开头有下载链接),拷贝下列文件到到下载目录:
Firefly-Roc-rk3399-pc_board/roc-rk3399-pc_视频配套资料_2019.06.20_v1/02_Images/Sdcard_buildroot-image
然后通过如下操作进行烧写更新系统。
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烧写存放在百度网盘中RK3399配套资料目录中的系统镜像文件:
02_Images/Sdcard_buildroot-image/sdcard.img
烧写步骤如下所示:
(1)选中需要烧写的SD卡设备,点击文件图标选择系统镜像文件,最后点击写入按钮开始烧写 | (2)此时弹出烧写对话框,点击Yes按钮,继续烧写, 等待任务进度执行到100%) | 烧写成功后,弹出写入成功,此时点击OK |
体验Arduino编程
- 在过去十年的教育培训中,遇到很多程序员、计算机软硬件爱好者。他们对硬件、驱动并不了解,
- 希望通过简单的学习就能控制硬件,实现自己创意想法,而不是看硬件芯片手册、编写驱动、应用程序。
- 为此,我们在产品上编写了一套基于Arduino的应用程序库,让用户可以通过几行简单的代码,实现对各种硬件模块的控制。
- 介绍了 LED灯、按键、红外遥控、温湿度传感器、人体红外检测、超声波测距、步进电机控制、OLED显示、三轴加速度计、实时时钟、数模/模数转换、GPS模块等的基本使用,最后再示例了两个实战项目供读者参考。
- 使用方法请参考该链接,使用GIT下载文档: 初学者学习路线 。
- 使用GIT下载文档后,请参考 01_使用Arduino操作体验简单开发/ROC-RK3399-PC开发板Arduino使用手册.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://e.coding.net/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://e.coding.net/weidongshan/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
设置完成后执行 source ~/.bashrc
才能使其生效
- 临时生效
执行完“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
- 准备工作
安装TFTP NFS服务请参考 Ubuntu环境配置,设置如下参数让系统通过网络挂载方式启动,方便调试。
其中TFTP目录假设为 /home/book/tftpboot
NFS目录假设为 /home/book/nfs_rootfs
- 编译roc-rk3399-pc开发板内核
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
- uboot通过tftp方式下载内核
将编译成功的Image文件和设备树rk3399-roc-pc.dtb文件,拷贝到ubuntu的/home/book/tftpboot
目录下,
用以uboot通过tftp 方式进行下载并启动系统。
编译根文件系统
- 使用buildroot-2018.02 lts版本
配置文件 | 含义 |
---|---|
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 all
- 编译后生成文件介绍
buildroot2018.02
├── output
├── images
├── idbloader.img <--u-boot镜像
├── rootfs.tar.gz <--打包并压缩的根文件系统,适用于NFSROOT启动
├── rk3399-roc-pc.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镜像
└── Image <--内核镜像
- Buildroot 使用参考页面 Buildroot
参考学习
- 章辉学员提供的简单驱动示例 https://github.com/TJPUZhangHui/rk3399
获取帮助与建议
- 如果您有技术问题或错误报告,请访问bbs.100ask.org论坛查找搜索或发帖提问,相关工作人员看到后会及时回复您。
- 对于网上购买客户,如有问题请联系购买产品时的商家。
- 如您发现Wiki网站有任何表达错误或者建议请发送邮件到 support@100ask.net ,我们会及时更改处理。