#!/bin/sh

UMS_EN=off
ADB_EN=off
MTP_EN=off

make_config_string()
{
tmp=CONFIGSTRINGif[−n"CONFIG_STRING if [ -n "CONFIGS​TRINGif[−n"CONFIG_STRING" ]; then
CONFIG_STRING=KaTeX parse error: Expected group after '_' at position 6: {tmp}_̲{1}
else
CONFIG_STRING=$1
fi
}

parameter_init()
{
while read line
do
case “$line” in
usb_mtp_en)
MTP_EN=on
make_config_string mtp
;;
usb_adb_en)
ADB_EN=on
make_config_string adb
;;
usb_ums_en)
UMS_EN=on
make_config_string ums
;;
esac
done < $DIR/.usb_config

    case "$CONFIG_STRING" inums)PID=0x0000;;mtp)PID=0x0001;;adb)PID=0x0006;;mtp_adb | adb_mtp)PID=0x0011;;ums_adb | adb_ums)PID=0x0018;;*)PID=0x0019esac

}

configfs_init()
{
mount -t configfs none /sys/kernel/config
mkdir /sys/kernel/config/usb_gadget/rockchip -m 0770
echo 0x2207 > /sys/kernel/config/usb_gadget/rockchip/idVendor
echo $PID > /sys/kernel/config/usb_gadget/rockchip/idProduct
mkdir /sys/kernel/config/usb_gadget/rockchip/strings/0x409 -m 0770
echo “0123456789ABCDEF” > /sys/kernel/config/usb_gadget/rockchip/strings/0x409/serialnumber
echo “rockchip” > /sys/kernel/config/usb_gadget/rockchip/strings/0x409/manufacturer
echo “rk3xxx” > /sys/kernel/config/usb_gadget/rockchip/strings/0x409/product
mkdir /sys/kernel/config/usb_gadget/rockchip/configs/b.1 -m 0770
mkdir /sys/kernel/config/usb_gadget/rockchip/configs/b.1/strings/0x409 -m 0770
echo 500 > /sys/kernel/config/usb_gadget/rockchip/configs/b.1/MaxPower
echo “$CONFIG_STRING” > /sys/kernel/config/usb_gadget/rockchip/configs/b.1/strings/0x409/configuration
}

function_init()
{
if [ $UMS_EN = on ];then
mkdir /sys/kernel/config/usb_gadget/rockchip/functions/mass_storage.0
echo /dev/disk/by-partlabel/userdata > /sys/kernel/config/usb_gadget/rockchip/functions/mass_storage.0/lun.0/file
ln -s /sys/kernel/config/usb_gadget/rockchip/functions/mass_storage.0 /sys/kernel/config/usb_gadget/rockchip/configs/b.1/mass_storage.0
fi

    if [ $ADB_EN = on ];then                                                                                                                       mkdir /sys/kernel/config/usb_gadget/rockchip/functions/mass_storage.usb0                                         mkfs.vfat /dev/ram0                                                                                                                    mount /dev/ram0 /media/usb0/                                                                                                           echo /dev/ram0 > /sys/kernel/config/usb_gadget/rockchip/functions/mass_storage.usb0/lun.0/file                                         ln -s /sys/kernel/config/usb_gadget/rockchip/functions/mass_storage.usb0 /sys/kernel/config/usb_gadget/rockchip/configs/b.1/fi                                                                                                                                             if [ $MTP_EN = on ];then                                                                                                                       mkdir /sys/kernel/config/usb_gadget/rockchip/functions/mtp.gs0                                                                         ln -s /sys/kernel/config/usb_gadget/rockchip/functions/mtp.gs0 /sys/kernel/config/usb_gadget/rockchip/configs/b.1/mtp.gs0              fi

}

case “$1” in
start)
DIR=$(cd dirname $0; pwd)
if [ ! -e “$DIR/.usb_config” ]; then
echo “$0: Cannot find .usb_config”
exit 0
fi

    parameter_init                                                                                                                      if [ -z $CONFIG_STRING ]; then                                                                                                      echo "$0: no function be selected"                                                                                          exit 0                                                                                                                      fi                                                                                                                                             configfs_init                                                                                                                       function_initUDC=`ls /sys/class/udc/ | awk '{print $1}'`                                                                                                    echo $UDC > /sys/kernel/config/usb_gadget/rockchip/UDC                                                                              ;;

stop)
echo “none” > /sys/kernel/config/usb_gadget/rockchip/UDC
;;
restart|reload)
;;
*)
echo “Usage: $0 {start|stop|restart}”
exit 1
esac

firefly-rk3288使用USB GADGET实现大容量存储脚本相关推荐

  1. linux 开发板模拟u盘,ARM-Linux开发 - USB Gadget Storage 制作模拟U盘

    -------------转载-------------- 作者:yimiyangguang1314 来源:CSDN 原文:https://blog.csdn.net/yimiyangguang131 ...

  2. USB Gadget iMX6U LL开发板模拟U盘

    IMX6ULL开发板模拟U盘 Linux版本:4.1.15 使用开发板:IMX6ULL 编译环境:Ubuntu 14.04 步骤如下: 1. 首先配置内核 进入 Device Drivers ---& ...

  3. linux 开发板模拟u盘,linux 开发板(Linux USB Gadget) 模拟u盘

    前几天,搞了 hid设备,通过usb hid设备和windows进行通信.现在开始搞这个 mass storge 首先说明 环境:linux版本:3.15        使用开发板:SAMa5d3   ...

  4. USB总线-Linux内核USB3.0设备控制器复合设备之USB gadget configfs分析(七)

    1.简介 configfs是基于ram的文件系统,与sysfs的功能有所不同.sysfs是基于文件系统的kernel对象视图,虽然某些属性允许用户读写,但对象是在kernel中创建.注册.销毁,由ke ...

  5. linux usb gadget驱动详解(二)

    在上篇<linux usb gadget驱动详解(一)>中,我们了解到gadget的测试方法,但在最后,我们留下一个问题,就是怎样使用新的方法进行usb gadget驱动测试. 我们发现l ...

  6. USB Gadget Storage功能调试

    由于工作的需要,实现板卡通过Micro USB线与PC连接,作为PC的 外设存储,PC拷贝数据到板卡中,或者把板卡中的数据通过USB线拷贝到PC端,实现数据的交互,板卡采用Linux操作系统,笔者采用 ...

  7. Android 8.1 usb gadget configuration

    Android 8.1 usb gadget configuration Android的usb gadget配置流程 开机过程中usb gadget配置 第一种:rc脚本 第二种:UsbDevice ...

  8. linux选择usb功能,USB gadget设备驱动解析(1)——功能体验

    利用Linux USB gadget设备驱动可以实现一些比较有意思的功能,举两个例子: 1.一个嵌入式产品中的某个存储设备,或是一个存储设备的某个分区,可以作为一个U盘被PC:设别,从而非常方便的完成 ...

  9. 继续写usb gadget驱动(解决枚举失败问题)

    上个小patch吧... 关于昨天的usb枚举失败(获取配置描述符失败) 简要描述下: 1. 我的gadget配置成了usb3.2版本,  (设置成1.0, 2.0也遇到一些问题, 暂表不论) Pro ...

  10. 【随笔记】linux usb gadget ncm wrong ndp sign 问题修复

    一.模拟网卡简介 在 Linux 通过 usb 模拟网卡时,有四种方式: 1. 使用 usb gadget rndis 2. 使用 usb gadget ecm 3. 使用 usb gadget nc ...

最新文章

  1. rust拆自己家门_非常“掉价”的四大汽车装潢,豪车装上也难看,车主:回去拆了...
  2. 腾讯笔试题 如下代码,result变量的输出结果是多少
  3. Quartz.NET和Log4Net三种输出[转]
  4. 笔记-项目进度管理-估算活动顺序-依赖关系
  5. 别人给你网盘分享东西怎么搞到电脑上看呢?
  6. Yearning v1.4.2 发布,SQL审核平台
  7. bzoj 3668 数位DP
  8. 汉仪尚巍手书可以商用吗_【商用车维修】夏天修空调可以撑起全年修车收入的一半,你会了吗?...
  9. sql中in和exist语句的区别?
  10. CentOS新增硬盘系统不能自动进行识别。
  11. 创新创业名词解释_(完整word版)“大众创业万众创新”相关名词解释总汇
  12. 【云周刊】第148期:“盲人摸象、感而不动、雾里看花”,阿里闵万里谈城市大脑三大挑战...
  13. SCVMM2008测试手册
  14. nfine框架 上传文件_NFine快速开发框架
  15. 先定个小目标,免费360度评价(评估)反馈系统上线,开放部分源码
  16. 去除xp系统计算机多余的系统,WinXP电脑如何清理垃圾?
  17. R语言:Newton法、似然函数
  18. 计算机网络线接法,电脑网线插座接法图文详解
  19. 广东外语外贸大学第16届程序设计竞赛-C 井大师的码魂
  20. Python实现轮盘抽奖小程序(带界面)

热门文章

  1. trackmaker翻译_体育翻译滑雪中英对照翻译
  2. SpringCloud狂神说学习笔记(一)
  3. 较为安全快捷的更改C盘用户文件夹名称的方式!(2022.8.22)windows10和11均可用
  4. bzoj 3162: 独钓寒江雪 树形dphash
  5. 帆软(FineReport)主子报表(报表联动)
  6. SyntaxError: Non-UTF-8 code starting with ‘\xd5‘ in file
  7. c语言实现小球跳动的效果
  8. 【案例4-8】模拟物流快递系统
  9. 网线水晶头 RJ45 接法
  10. 0712-插曲-对拍