下面为将 AC820-安路飞龙开发板 配置为 “u盘“(usb从机 )操作流程
一、修改内核配置
CONFIG_USB_DWC2_DUAL_ROLE //重要,这里先到该选项路径下,修改为“ Gadget only mode”,可见下方 “CONFIG_USB_DWC2_DUAL_ROLE 提示”
CONFIG_USB_DWC2_PERIPHERAL=y
CONFIG_USB_CONFIGFS=y //先开启
CONFIG_CONFIGFS_FS=y
CONFIG_USB_GADGET=y
CONFIG_USB_LIBCOMPOSITE=y
CONFIG_USB_CONFIGFS_MASS_STORAGE=y
CONFIG_USB_F_MASS_STORAGE=y
CONFIG_USB_MASS_STORAGE = M
CONFIG_USB_DWC2_DUAL_ROLE 提示:
1、CONFIG_USB_DWC2_DUAL_ROLE中修改模式(发现这么奇葩的选项,还只允许host,所以要修改)

修改为

二、设备树修改
为什么还要修改设备树?因为给的 FIFO 配置值 不对 与 不全所以要修改
//修改 anlogic-dr1m90.dts 设备树,USB节点
&usb_otg0 {
//Yang,更改为从机
//下面修改为修改代码
dr_mode = "peripheral";
g-np-tx-fifo-size = <32>;
g-rx-fifo-size = <512>;
g-tx-fifo-size = <256 256 256 64 64 64 16 16 16 16 16 16 16 16 16 16>;//原始代码会造成 FIFO 问题
g-use-dma;
//下面为原始代码
//dr_mode = "host";
//g-np-tx-fifo-size = <32>;
//g-rx-fifo-size = <768>;
//g-tx-fifo-size = <768 512 512 32 16 16 16 16 16 16>;
//g-use-dma;
};
二、编译与移植
(1)编译
根据上面修改内核配置和设备树后,此时执行编译指令(./build.sh all)后,会生成 g_mass_storage.ko 文件;
(2)移植
根据下图,将该ko文件,移入到sd卡根文件 /lib/modules 中

(3)执行
开发板插上sd卡上电后,执行:
# 先到存放文件夹
cd /lib/modules
# 安装模块
insmod g_mass_storage.ko file=/dev/mmcblk0p1 removable=1
成功现象可见:

(4)用type-c线连接”USB slave“口 到电脑上,即可弹出:

|