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
此時可以看到螢幕上彈窗報錯如下:
CTRL+C
退出桌面,執行如下命令,安裝dbus-x11
apt install dbus-x11 -y
安裝額外所需的軟體包
apt install lightdm-gtk-greeter -y
測試lightdm
為了測試,我們從命令列啟動lightdm
lightdm -d
等待一會,螢幕顯示出登入介面
跳過lightdm,直接啟動桌面
這時候再執行startxfce4
已經不會出現報錯了。可以看到桌面是這樣的。
但是因為我們還沒有適配觸控驅動,所以暫時無法透過電容屏操作。
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方式來進行通訊。