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

此时可以看到屏幕上弹窗报错如下:
image

CTRL+C退出桌面,执行如下命令,安装dbus-x11

apt install dbus-x11 -y

安装额外所需的软件包

apt install lightdm-gtk-greeter -y

测试lightdm

为了测试,我们从命令行启动lightdm

lightdm -d

等待一会,屏幕显示出登录界面
image

跳过lightdm,直接启动桌面

这时候再执行startxfce4已经不会出现报错了。可以看到桌面是这样的。
image

但是因为我们还没有适配触摸驱动,所以暂时无法通过电容屏操作。

安装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. 打包文件系统,制作一键烧录固件

https://spotpear.cn/index/forum/detail/id/45.html#:~:text=您可以将设备树配置为 USB HOST 模式,以便通过 USB HUB 扩展多个接口。 温馨提示:,口,供电可以使用微雪Pico To HAT 上的Micro usb 供电或者是通过 GPIO 供电,供电需谨慎以免损坏开发板

posted @ 2024-05-01 09:08  IotaHydrae  阅读(403)  评论(0编辑  收藏  举报