前言---
LuckFox Pico 是一款基于瑞芯微 RV1103 芯片的低成本微型 linux 开发板,上一章对开发板、传输文件方式等进行了初步介绍,接下来可以进行SDK环境搭建,使用幸狐对世界“helloworld”。
部署SDK 环境
LuckfoxPico-SDK是基于Ubuntu LTS 系统开发测试的,这里提供了Ubuntu 18.04版本。
1. 安装虚拟机软件
下载VirtualBox虚拟机软件和VBoxGuestAdditions(全屏工具)
先安装VirtualBox-7.0.8-156879-Win,双击setup文件,一路回车。
2. 创建新的虚拟机
- 下载配置好的虚拟机文件(戳我下载)。
- 单击 “新建” 以创建新的虚拟机,填写自定义名称,选择存储虚拟机的位置(建议虚拟机存储在固态硬盘上尽量不选择系统盘)。
- 内存设置4GB,处理器选择4个。
- 使用已有的虚拟硬盘文件,未找到vdi文件点击add添加。(此文件已提供)
进行正常配置后,界面如图。
3. 安装VBoxGuestAdditions
1.单击 “开始” 启动虚拟机。启动虚拟机后窗口的分辨率固定为 800x600,此时安装vboxguestadditions可以解决分辨率太低的问题,点击虚拟机,点击设置,选择存储,选择 choose a disk file... ,选择Virtualbox GuestAdditions加载成功点击OK。
2.安装完成后需要设置显存大小,改成128M。
3.进入虚拟机,打开终端执行如下命令,执行脚本文件:
cd /media/luckfox/VBoc_GAs_7.0.8
sudo ./VBoxLinuxAdditions.run
4.打开管理器,设置网络连接为桥接模式,设置启用USB3.0(注意虚拟机处于关闭状态才能变更)。
5.为了能在虚拟机与window之间复制文字方便,设置共享粘贴板。
4. 编译SDK
1.启动虚拟机,虚拟机的登录密码是:luckfox。
2.安装相关依赖包(提供的虚拟机镜像已默认安装)
sudo apt-get install repo git ssh make gcc gcc-multilib g++-multilib module-assistant expect g++ gawk texinfo libssl-dev bison flex fakeroot cmake unzip gperf autoconf device-tree-compiler libncurses5-dev pkg-config
3.SDK文件默认存放在 Luckfox-Pico 文件夹,交叉编译工具已默认安装。
运行./build.sh lunch选择编译分支,此次使用的是基础款,选择“0”如果是plus版本,请选择“1”。
4.输入./build.sh,编译全部镜像。
5.编译成功后,固件将存放在/home/Luckfox-Pico/luckfox-pico/output/image 目录下,如果修改配置文件需要输入./build.sh clean清除之前生成的文件,否则编译可能不生效。
5 . 修改设备树
1.基础款版本需要烧录SD卡镜像,从SD卡启动,需要手动修改设备树文件:
cd /luckfox/luckfox-pico/sysdrv/source/kernel/arch/arm/boot/dts
sudo gedit rv103g-luckfox-pico.dts
2.将status=“disable”中的“disable”改为“okay”,保存退出。
3.重新编译固件:
./build.sh clean
./build.sh
6. Linux下加载ko驱动模块
Linux系统中后缀为.ko的文件时内核模块文件,驱动可以进行模块化开发,增加或减少功能可以无需编译整个内核,为开发带来便利。
1.进入工程文件,执行以下命令:
export ARCH=arm
export CROSS_COMPILE=/home/luckfox/Luckfox-Pico/luckfox-pico/tools/linux/toolchain/arm-rockchip830-linux-uclibcgnueabihf/bin/arm-rockchip830-linux-uclibcgnueabihf-
Make
2.生成的helloworld.ko,通过ADB传输到开发板上,输入insmod helloworld.ko加载模块,输入rmmod helloworld.ko移除模块,输入dmesg查看日志。
# insmod helloworld.ko
[ 200.330884] helloworld!
# rmmod helloworld.ko
[ 218.624421] helloworld bye
# dmesg | grep hello
[ 200.330884] helloworld!
[ 218.624421] helloworld bye
参考资料
Luckfox-Pico官方参考资料