参考:SDK 环境部署 | LUCKFOX WIKI

在网上买了个开发板。很便宜。

1、下载源码:

git clone https://gitee.com/LuckfoxTECH/luckfox-pico.git
cd luckfox-pico
git submodule update --init

2.查看如何编译:

在根目录有个readme_cn.txt文件,指导我们如何编译。

./build.sh lunch

选择启动方式,uboot,kernel等配置

其实就是指定.BoardConfig.mk位置。.BoardConfig.mk是一个连接文件。

lxin@lxin-virtual-machine:$ ls -l .BoardConfig.mk 
lrwxrwxrwx 1 lxin lxin 93 1月  17 11:14 .BoardConfig.mk -> project/cfg/BoardConfig_IPC/BoardConfig-SPI_NAND-Buildroot-RV1106_Luckfox_Pico_Pro_Max-IPC.mk
我用的是spi nand flash。


分区:

export RK_PARTITION_CMD_IN_ENV="256K(env),256K@256K(idblock),512K(uboot),4M(boot),32M(rootfs),32M(oem),64M(a),120M(b)"
export RK_PARTITION_FS_TYPE_CFG=rootfs@IGNORE@squashfs,oem@/oem@ubifs,a@/mnt/a@ubifs,b@/mnt/b@ubifs
他是写入S20linkmount启动文件中挂载.

参考userdata,在build.sh修改,可以把自己的数据拷贝到自己分区先。

如果不需要相机:

RK_BOOTARGS_CMA_SIZE 调小一点。

UBI error: cannot attach

可能是因为我们打包文件的img是链接文件导致的。

其他根据需求配置一下dts即可。

编译的文件系统过大:把PYTHON与SMAB关掉

文件:./sysdrv/tools/board/buildroot/luckfox_pico_defconfig

#BR2_PACKAGE_PYTHON3=y
#BR2_PACKAGE_PYTHON3_SSL=y
#BR2_PACKAGE_PYTHON_AIOHTTP=y
#BR2_PACKAGE_PYTHON_CLICK=y
#BR2_PACKAGE_PYTHON_ITSDANGEROUS=y
#BR2_PACKAGE_PYTHON_JINJA2=y
#BR2_PACKAGE_PYTHON_PERIPHERY=y
#BR2_PACKAGE_PYTHON_PILLOW=y
#BR2_PACKAGE_PYTHON_SERIAL=y
#BR2_PACKAGE_PYTHON_SETUPTOOLS=y
#BR2_PACKAGE_PYTHON_SMBUS_CFFI=y
#BR2_PACKAGE_PYTHON_SPIDEV=y
#BR2_PACKAGE_PYTHON_WERKZEUG=y
BR2_PACKAGE_OPENSSH=y
#BR2_PACKAGE_SAMBA4=y

配置kernel:

cp ./arch/arm/configs/luckfox_rv1106_linux_defconfig .config

make ARCH=arm CROSS_COMPILE=arm-rockchip830-linux-uclibcgnueabihf- menuconfig

保存后:

cp .config ./arch/arm/configs/luckfox_rv1106_linux_defconfig

buildroot比busybox更好一点,集成了很多开源库。

登录功能,buildroot直接可以配置:busybox:

passwd root修改root的密码。

cat /etc/shadow

将shadow放到busybox输出文件。

修改:cat /etc/inittab 文件的:

::respawn:-/bin/sh 改为::respawn:-/bin/login

放到文件系统中即可。

部分gpio不能直接用,原因是GPIO被默认复用了,需要配置寄存器:

海思直接可以配置寄存器说明。

1106通过设备树文件配置:参考:GPIO | LUCKFOX WIKI

RK_FUNC_GPIO配置为GPIO功能。

    gpio3pa6:gpio3pa6 {
        compatible = "regulator-fixed";
        pinctrl-names = "default";
        pinctrl-0 = <&gpio3_pa6>;
        regulator-name = "gpio3_pa6";
        regulator-always-on;
    };
&pinctrl {
    gpio3-pa6 {
        gpio3_pa6:gpio3-pa6 {
            rockchip,pins = <3 RK_PA6 RK_FUNC_GPIO &pcfg_pull_none>;
        };
    };
};

gpio复用:还可以用iomux:需要启动CONFIG_ROCKCHIP_IOMUX

瑞芯微IOMUX工具支持及使用_瑞芯微 iomux工具-CSDN博客

配置USB口参考:

rv1106开发板配置TypeC接口USB Host并识别USB设备 - 国产芯片交流 -电子工程世界-论坛 -手机版

u盘配置

CONFIG_BLK_SCSI_REQUEST=y
CONFIG_CDROM=m

//磁盘,自动挂载U盘?没有配置这个,没有/dev/sdb文件
CONFIG_SCSI_MOD=y
CONFIG_SCSI=y
CONFIG_SCSI_DMA=y
CONFIG_SCSI_PROC_FS=y
CONFIG_SCSI_UFSHCD=y
CONFIG_BLK_DEV_SD=y
CONFIG_BLK_DEV_SR=m
CONFIG_CHR_DEV_SG=m
CONFIG_CHR_DEV_SCH=m
CONFIG_SCSI_LOWLEVEL=y
CONFIG_USB_EHCI_HCD=y
CONFIG_USB_EHCI_TT_NEWSCHED=y
CONFIG_USB_STORAGE=y
CONFIG_USB_F_MASS_STORAGE=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_SG_POOL=y
CONFIG_USB_MASS_STORAGE=y

屏:

参考:Linux MIPI DSI LCD设备驱动开发调试细节学习笔记(一)-腾讯云开发者社区-腾讯云

hfront-porch:(HFP)

hback-porch:(HBP)

hsync-len:(HSA)

hsync-active,官方文档描述是:hsync pulse is active low/high/ignored,也就是说,如果要配置的话要么就是0/1,要么就不配置,默认配置:

vfront-porch:(VFP)

vback-porch:(VBP)

vsync-len:(VSA)

(1)de-active:data-enable pulse is active low/high/ignored

(2)pixelclk-active:数据采样的方式

配置为1:上升沿驱动像素数据/下降沿采样数据

配置为0:下降沿驱动像素数据/上升沿采样数据

像素时钟的计算:(h+hbp+hfp+hsa)*(v+vbp+vfp+vsa)*60
panel-init-sequence

A byte stream formed by simple multiple dcs packets.

byte 0: dcs data type

byte 1: wait number of specified ms after dcs command transmitted

byte 2: packet payload length

byte 3 and beyond: number byte of payload

摄像头sc3336

参考配置:rv1106g-luckfox-pico-pro-max.dts
/oem/usr/ko/insmod_ko.sh安装各类驱动

驱动安装成功会有:

[   28.235709] sc3336 4-0030: driver version: 00.01.01
[   28.235911] sc3336 4-0030: Failed to get reset-gpios
[   28.235967] sc3336 4-0030: could not get default pinstate
[   28.235977] sc3336 4-0030: could not get sleep pinstate
[   28.236004] sc3336 4-0030: supply avdd not found, using dummy regulator
[   28.236621] sc3336 4-0030: supply dovdd not found, using dummy regulator
[   28.236709] sc3336 4-0030: supply dvdd not found, using dummy regulator
[   28.250312] sc3336 4-0030: Detected OV00cc41 sensor

 将media的样例程序放到开发板。

执行./sample_venc_stresstest -w 1920 -h 1080 -a /etc/iqfiles/

图像不对,是ISP配置不对,需要对应的IQ文件(还没研究,可能是通过RK工具标定图像并生成!)。

dts文件配置的

    sc3336: sc3336@30 {
        rockchip,camera-module-name = "CMK-OT2119-PC1";
        rockchip,camera-module-lens-name = "30IRC-F16";
 

在media中查找

media$ find . -name "*CMK-OT2119-PC1*"
./out/isp_iqfiles/sc3336_CMK-OT2119-PC1_30IRC-F16.bin
./out/isp_iqfiles/sc3336_CMK-OT2119-PC1_30IRC-F16.json
./isp/release_camera_engine_rkaiq_rv1106_arm-rockchip830-linux-uclibcgnueabihf/isp_iqfiles/sc3336_CMK-OT2119-PC1_30IRC-F16.bin
./isp/release_camera_engine_rkaiq_rv1106_arm-rockchip830-linux-uclibcgnueabihf/isp_iqfiles/sc3336_CMK-OT2119-PC1_30IRC-F16.json
./isp/out/isp_iqfiles/sc3336_CMK-OT2119-PC1_30IRC-F16.bin
./isp/out/isp_iqfiles/sc3336_CMK-OT2119-PC1_30IRC-F16.json

将sc3336_CMK-OT2119-PC1_30IRC-F16.json拷贝到/etc/iqfiles/即可。

图像正常了。

参考:

【RV1106的ISP使用记录之基础知识】IQfile文件的生成与加载_iqfiles-CSDN博客

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐