RV1106移植心得
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。其实就是指定.BoardConfig.mk位置。.BoardConfig.mk是一个连接文件。在根目
在网上买了个开发板。很便宜。
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/即可。
图像正常了。
参考:
更多推荐



所有评论(0)