usb gadget 批量映射

#!/bin/bash

# 检查参数个数
if [ "$#" -lt 1 ]; then
    echo "用法: $0 <设备文件名1> [<设备文件名2> ... <设备文件名N>]"
    exit 1
fi

# 切换到 USB Gadget 配置目录
cd /sys/kernel/config/usb_gadget/g1/ || exit

# 判断 UDC 是否启用,如果启用了,则先关闭 UDC
if [ -e UDC ] && [ "$(cat UDC)" != "" ]; then
    echo "UDC 已启用,正在关闭..."
    echo "" > UDC
fi

# 获取现有的最大计数器值
MAX_COUNTER=-1
for DIR in functions/mass_storage.usb*; do
    if [ -d "$DIR" ]; then
        DIR_COUNTER=${DIR##*usb}
        if [ "$DIR_COUNTER" -gt "$MAX_COUNTER" ]; then
            MAX_COUNTER=$DIR_COUNTER
        fi
    fi
done
COUNTER=$((MAX_COUNTER + 1))

# 处理每个设备文件
for DEVICE_FILE in "$@"; do
    # 检查设备文件路径是否存在
    if [ ! -e "$DEVICE_FILE" ]; then
        echo "错误:设备文件路径不存在: $DEVICE_FILE"
        exit 1
    fi

    # 创建 USB 大容量存储设备功能
    FUNCTION_NAME="mass_storage.usb${COUNTER}"
    mkdir -p "functions/$FUNCTION_NAME"
    echo "$DEVICE_FILE" > "functions/$FUNCTION_NAME/lun.0/file"

    # 映射到配置 configs/c.1
    ln -s "functions/$FUNCTION_NAME" "configs/c.1/"

    # 增加计数器
    COUNTER=$((COUNTER + 1))
done

# 启用 UDC
echo fcc00000.dwc3 > UDC

echo "USB Gadget 配置完成。"
  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值