Luckfox Pico Ubuntu server 安裝桌面環境

IotaHydrae發表於2024-05-01

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

載入顯示驅動

這是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

但是因為我們還沒有適配觸控驅動,所以暫時無法透過電容屏操作。

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. 打包檔案系統,製作一鍵燒錄韌體

相關文章