在网上买了个开发板。很便宜。
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