Luckfox Pico Ubuntu server 安装桌面环境
Luckfox Pico Ubuntu server 安装桌面环境
RV1103/RV1106 是一款专门用于人工智能相关应用的高度集成 IPC 视觉处理器 SoC。它基于单核 ARM Cortex-A7 32 位内核,集成了 NEON 和 FPU,并内置 NPU 支持 INT4 / INT8 / INT16 混合运算,计算能力高达 0.5TOPs。
https://wiki.luckfox.com/zh/Luckfox-Pico/Luckfox-Pico-quick-start
实验环境 | Luckfox Pico |
---|---|
CPU | RV1103 Cortex A7 1.2GHz |
RAM | SIP DDR2 64MB |
ROM | 32GB SDcard |
显示模组 | Pico_DM_QD3503728 |
64MB内存对于运行Ubuntu桌面有些吃力,但是并非不可以,我们只需要对工程稍作调整。
实验环境 | Luckfox Pico Max |
---|---|
CPU | RV1106 Cortex A7 1.2GHz |
RAM | SIP DDR3L 256MB |
ROM | 32GB SDcard |
显示模组 | Pico_DM_QD3503728 |
256MB内存运行Ubuntu应该没有太大问题 。
1.拉取并配置工程
我们需要自己编译工程,这样才能修改工程的配置,所以第一步,先下载工程。
修改SDK配置
Pico板子对应
project/cfg/BoardConfig_IPC/BoardConfig-EMMC-Ubuntu-RV1103_Luckfox_Pico-IPC.mk
Pico Max板子对应
具体名字忘了,就是EMMC Ubuntu RV1106 Luckfox Pico Pro MAX那个
修改CMA内存大小
RK_BOOTARGS_CMA_SIZE
给摄像头分配的内存,如果不使用摄像头可以将其修改为 1M
export RK_BOOTARGS_CMA_SIZE="1M"
修改rootfs大小
我是用的是一张32GB大小的SD卡,但是默认的配置rootfs分区只有6GB,所以修改RK_PARTITION_CMD_IN_ENV
变量,对分区大小进行增加。
export RK_PARTITION_CMD_IN_ENV="32K(env),512K@32K(idblock),256K(uboot),32M(boot),512M(oem),256M(userdata),6G(rootfs),-(media)"
# 修改为12GB
export RK_PARTITION_CMD_IN_ENV="32K(env),512K@32K(idblock),256K(uboot),32M(boot),512M(oem),256M(userdata),12G(rootfs),-(media)"
2.修改运行时配置
修改ubuntu内置软件源
参考中科大Ubuntu Ports 源使用帮助
https://mirrors.ustc.edu.cn/help/ubuntu-ports.html
vi /etc/apt/sources.list
我试了下,板子初始状态无法访问https,估计是没有安装帮助中所说的那个软件,所以这里直接修改为http协议。直接将原来内容清空,替换为下面内容。
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy main main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-backports main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse
# deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ jammy-security main restricted universe multiverse
resize2fs 根分区
系统启动的时候,root分区只有1GB大小,需要使用resize2fs工具拓展
查看/etc/fstab
,发现root分区挂载点为/dev/mmcblk1p7
resize2fs /dev/mmcblk1p7
开启swap
64MB的内存根本不够用,我们需要添加swap空间保证软件能正常运行,不会被oom杀掉。从经验的角度来看,256MB的swap空间对于本例来说,足够了。
dd if=/dev/zero of=/swapfile bs=1M count=256
mkswap /swapfile
chmod 0600 /swapfile
swapon /swapfile
查看内存使用情况
# free -h
total used free shared buff/cache available
Mem: 56Mi 28Mi 1.0Mi 0.0Ki 26Mi 23Mi
Swap: 255Mi 0B 255Mi
修改/etc/fstab,添加如下配置,使swap自动挂载
/swapfile swap swap defaults 0 0
网络配置
通过网络共享方式,使Pico访问主机网络
bash自动补全问题
暂时没有解决,推测是adb的问题
安装X fbdev驱动
apt install xserver-xorg-video-fbdev
apt install xserver-xorg-input-evdev
Section "InputClass"
Identifier "calibration"
MatchProduct "TSC2007 Touchscreen"
Option "Calibration" "0 4096 4096 0"
Option "SwapAxes" "1"
Driver "evdev"
EndSection
加载显示驱动
这是Pico_DM_QD3503728
这块拓展板的显示驱动,有关编译配置过程参考这篇文章:http://embeddedboys.com/Pico_DM_QD3503728/docs/porting/linux/
insmod ili9488_fb.ko
安装xfce桌面
apt --no-install-recommends install xorg lightdm xfce4
安装完成后,尝试启动xfce桌面
startxfce4
此时可以看到屏幕上弹窗报错如下:
CTRL+C
退出桌面,执行如下命令,安装dbus-x11
apt install dbus-x11 -y
安装额外所需的软件包
apt install lightdm-gtk-greeter -y
测试lightdm
为了测试,我们从命令行启动lightdm
lightdm -d
等待一会,屏幕显示出登录界面
跳过lightdm,直接启动桌面
这时候再执行startxfce4
已经不会出现报错了。可以看到桌面是这样的。
但是因为我们还没有适配触摸驱动,所以暂时无法通过电容屏操作。
安装firefox
这一步记得给ppa.launchpadcontent.net
走强制代理,要不然下载会非常慢。
apt-get install software-properties-common
add-apt-repository ppa:mozillateam/ppa
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' | tee /etc/apt/preferences.d/mozilla
apt install firefox -y
4.适配触摸屏
这个显示模组的触摸型号是FT6236U,驱动已经被合并到这个文件中了drivers/input/touchscreen/edt-ft5x06.c
,内核mailing list相关的记录如下:
https://patchwork.kernel.org/project/linux-input/patch/1470381871-4086-2-git-send-email-hdegoede@redhat.com/
因为显示模组上的 I2C 接口并没有对应到 luckfox pico 的 I2C 控制器上,所以我们使用i2c bitbang方式来进行通信。
重新配置内核
重新烧录内核
触摸屏方向设置
5. 整理Ubuntu配置
6. 打包文件系统,制作一键烧录固件
本文来自博客园,作者:IotaHydrae,转载请注明原文链接:https://www.cnblogs.com/hfwz/p/18136386