增加ota文件系统编译方法;(注意每次swupdate_make_recovery_img需要删除根目录和./lichee/linux下的.config和.config.old)
This commit is contained in:
@@ -0,0 +1,42 @@
|
||||
#!/bin/sh
|
||||
: <<'COMMENTBLOCK'
|
||||
# remove
|
||||
if [ "${ACTION}" == "remove" ]; then
|
||||
MOUNTPOINT="$(grep -w "^/dev/${MDEV}" /proc/mounts | awk '{print $2}')"
|
||||
[ -n "${MOUNTPOINT}" ] \
|
||||
&& /bin/umount -l ${MOUNTPOINT} 2>/dev/null 1>/dev/null
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# add
|
||||
if [ "${ACTION}" == "add" ]; then
|
||||
case ${MDEV} in
|
||||
mmcblk[0-9])
|
||||
[ -d "/sys/block/${MDEV}/${MDEV}p1" ] && exit 0
|
||||
MOUNTPOINT=/mnt/SDCARD
|
||||
;;
|
||||
mmcblk[0-9]p[0-9])
|
||||
MOUNTPOINT=/mnt/SDCARD
|
||||
;;
|
||||
sd[a-z])
|
||||
[ -d "/sys/block/${MDEV}/${MDEV}1" ] && exit 0
|
||||
MOUNTPOINT=/mnt/exUDISK
|
||||
;;
|
||||
sd[a-z][0-9])
|
||||
MOUNTPOINT=/mnt/exUDISK
|
||||
;;
|
||||
*)
|
||||
exit 0
|
||||
;;
|
||||
esac
|
||||
for fstype in vfat ext4
|
||||
do
|
||||
[ "${fstype}" = "ext4" -a -x "/usr/sbin/e2fsck" ] \
|
||||
&& e2fsck -p /dev/${MDEV} >/dev/null
|
||||
/bin/mount -t ${fstype} -o utf8 /dev/${MDEV} ${MOUNTPOINT} && exit 0
|
||||
done
|
||||
[ ! -b "/dev/${MDEV}" -a -f "/sys/block/${MDEV%p*}/${MDEV}/uevent" ] \
|
||||
&& echo add > /sys/block/${MDEV%p*}/${MDEV}/uevent
|
||||
fi
|
||||
COMMENTBLOCK
|
||||
exit 0
|
||||
Binary file not shown.
@@ -0,0 +1,68 @@
|
||||
#!/bin/sh
|
||||
|
||||
MODULES_DIR="/lib/modules/`uname -r`"
|
||||
#insmod $MODULES_DIR/sunxi_usb_udc.ko
|
||||
#insmod $MODULES_DIR/sunxi_usbc.ko
|
||||
|
||||
mount -t configfs none /sys/kernel/config
|
||||
mkdir /sys/kernel/config/usb_gadget/g1
|
||||
echo "0x1f3a" > /sys/kernel/config/usb_gadget/g1/idVendor
|
||||
echo "0x100f" > /sys/kernel/config/usb_gadget/g1/idProduct
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/strings/0x409
|
||||
echo "20080411" > /sys/kernel/config/usb_gadget/g1/strings/0x409/serialnumber
|
||||
echo "Android" > /sys/kernel/config/usb_gadget/g1/strings/0x409/manufacturer
|
||||
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0
|
||||
mkdir -p /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/mjpeg/m/720p
|
||||
echo 1280 > /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/mjpeg/m/720p/wWidth
|
||||
echo 720 > /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/mjpeg/m/720p/wHeight
|
||||
echo 333333 > /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/mjpeg/m/720p/dwFrameInterval
|
||||
echo 333333 > /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/mjpeg/m/720p/dwDefaultFrameInterval
|
||||
echo 442368000 > /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/mjpeg/m/720p/dwMinBitRate
|
||||
echo 442368000 > /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/mjpeg/m/720p/dwMaxBitRate
|
||||
echo 1843200 > /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/mjpeg/m/720p/dwMaxVideoFrameBufferSize
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/header/h
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/mjpeg/m/ /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/header/h/
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/header/h/ /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/class/fs
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/header/h/ /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/class/hs
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/control/header/h
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/control/header/h/ /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/control/class/fs/
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/control/header/h/ /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/control/class/ss/
|
||||
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/ffs.adb
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/configs/c.1
|
||||
echo 0xc0 > /sys/kernel/config/usb_gadget/g1/configs/c.1/bmAttributes
|
||||
echo 500 > /sys/kernel/config/usb_gadget/g1/configs/c.1/MaxPower
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/configs/c.1/strings/0x409
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0/ /sys/kernel/config/usb_gadget/g1/configs/c.1/mass_storage.usb0
|
||||
mkdir /dev/usb-ffs
|
||||
mkdir /dev/usb-ffs/adb
|
||||
mount -o uid=2000,gid=2000 -t functionfs adb /dev/usb-ffs/adb/
|
||||
udc=`ls /sys/class/udc`
|
||||
isudc=0
|
||||
start(){
|
||||
while [ 1 ]
|
||||
do
|
||||
sleep 1
|
||||
otg_role=`cat /sys/devices/platform/soc/usbc0/otg_role`
|
||||
if [ "$otg_role" = "usb_device" ]
|
||||
then
|
||||
if [ $isudc == 0 ]
|
||||
then
|
||||
echo $udc > /sys/kernel/config/usb_gadget/g1/UDC
|
||||
isudc=1
|
||||
fi
|
||||
else
|
||||
isudc=0
|
||||
fi
|
||||
done
|
||||
}
|
||||
start &
|
||||
|
||||
echo > /sys/kernel/config/usb_gadget/g1/UDC
|
||||
echo 0x100d > /sys/kernel/config/usb_gadget/g1/idProduct
|
||||
rm /sys/kernel/config/usb_gadget/g1/configs/c.1/mass_storage.usb0
|
||||
rm /sys/kernel/config/usb_gadget/g1/configs/c.1/uvc.usb0
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/ /sys/kernel/config/usb_gadget/g1/configs/c.1/uvc.usb0
|
||||
ls /sys/class/udc | xargs echo > /sys/kernel/config/usb_gadget/g1/UDC
|
||||
@@ -0,0 +1,52 @@
|
||||
#!/bin/sh
|
||||
|
||||
MODULES_DIR="/lib/modules/`uname -r`"
|
||||
|
||||
insmod $MODULES_DIR/configfs.ko
|
||||
insmod $MODULES_DIR/videobuf2-vmalloc.ko
|
||||
insmod $MODULES_DIR/usb-common.ko
|
||||
insmod $MODULES_DIR/usbcore.ko
|
||||
insmod $MODULES_DIR/sunxi_hci.ko
|
||||
insmod $MODULES_DIR/ehci-hcd.ko
|
||||
insmod $MODULES_DIR/ohci-hcd.ko
|
||||
insmod $MODULES_DIR/udc-core.ko
|
||||
insmod $MODULES_DIR/libcomposite.ko
|
||||
insmod $MODULES_DIR/sunxi_usb_udc.ko
|
||||
insmod $MODULES_DIR/usb_f_fs.ko
|
||||
insmod $MODULES_DIR/usb_f_mass_storage.ko
|
||||
insmod $MODULES_DIR/usb_f_hid.ko
|
||||
insmod $MODULES_DIR/usb_f_uvc.ko
|
||||
insmod $MODULES_DIR/sunxi_usbc.ko
|
||||
|
||||
if [ -f /lib/modules/4.9.191/videobuf2-vmalloc.ko ];then
|
||||
insmod $MODULES_DIR/videobuf2-vmalloc.ko
|
||||
fi
|
||||
if [ -f /lib/modules/4.9.191/usb_f_uvc.ko ];then
|
||||
insmod $MODULES_DIR/usb_f_uvc.ko
|
||||
fi
|
||||
if [ -f /lib/modules/4.9.191/u_audio.ko ];then
|
||||
insmod $MODULES_DIR/u_audio.ko
|
||||
fi
|
||||
if [ -f /lib/modules/4.9.191/usb_f_uac1.ko ];then
|
||||
insmod $MODULES_DIR/usb_f_uac1.ko
|
||||
fi
|
||||
if [ -f /lib/modules/4.9.191/uvcvideo.ko ];then
|
||||
insmod $MODULES_DIR/uvcvideo.ko
|
||||
fi
|
||||
if [ -f /lib/modules/4.9.191/snd-hwdep.ko ];then
|
||||
insmod $MODULES_DIR/snd-hwdep.ko
|
||||
fi
|
||||
if [ -f /lib/modules/4.9.191/snd-rawmidi.ko ];then
|
||||
insmod $MODULES_DIR/snd-rawmidi.ko
|
||||
fi
|
||||
if [ -f /lib/modules/4.9.191/snd-usbmidi-lib.ko ];then
|
||||
insmod $MODULES_DIR/snd-usbmidi-lib.ko
|
||||
fi
|
||||
if [ -f /lib/modules/4.9.191/snd-usb-audio.ko ];then
|
||||
insmod $MODULES_DIR/snd-usb-audio.ko
|
||||
fi
|
||||
|
||||
cat /sys/devices/platform/soc/usbc0/usb_device
|
||||
setusbconfig adb
|
||||
adbd > /dev/null &
|
||||
|
||||
@@ -0,0 +1,37 @@
|
||||
#!/bin/sh
|
||||
|
||||
MODULES_DIR="/lib/modules/`uname -r`"
|
||||
|
||||
insmod $MODULES_DIR/configfs.ko
|
||||
insmod $MODULES_DIR/usb-common.ko
|
||||
insmod $MODULES_DIR/usbcore.ko
|
||||
insmod $MODULES_DIR/sunxi_hci.ko
|
||||
insmod $MODULES_DIR/ehci-hcd.ko
|
||||
insmod $MODULES_DIR/ohci-hcd.ko
|
||||
insmod $MODULES_DIR/udc-core.ko
|
||||
insmod $MODULES_DIR/libcomposite.ko
|
||||
insmod $MODULES_DIR/sunxi_usb_udc.ko
|
||||
insmod $MODULES_DIR/usb_f_fs.ko
|
||||
insmod $MODULES_DIR/usb_f_mass_storage.ko
|
||||
insmod $MODULES_DIR/usb_f_hid.ko
|
||||
insmod $MODULES_DIR/sunxi_usbc.ko
|
||||
|
||||
insmod $MODULES_DIR/scsi_mod.ko
|
||||
insmod $MODULES_DIR/sd_mod.ko
|
||||
insmod $MODULES_DIR/usb-storage.ko
|
||||
insmod $MODULES_DIR/uas.ko
|
||||
insmod $MODULES_DIR/ums-realtek.ko
|
||||
insmod $MODULES_DIR/ums-datafab.ko
|
||||
insmod $MODULES_DIR/ums-freecom.ko
|
||||
insmod $MODULES_DIR/ums-isd200.ko
|
||||
insmod $MODULES_DIR/ums-usbat.ko
|
||||
insmod $MODULES_DIR/ums-sddr09.ko
|
||||
insmod $MODULES_DIR/ums-sddr55.ko
|
||||
insmod $MODULES_DIR/ums-jumpshot.ko
|
||||
insmod $MODULES_DIR/ums-alauda.ko
|
||||
insmod $MODULES_DIR/ums-karma.ko
|
||||
insmod $MODULES_DIR/ums-cypress.ko
|
||||
insmod $MODULES_DIR/ums-eneub6250.ko
|
||||
|
||||
cat /sys/devices/platform/soc/usbc0/usb_host
|
||||
|
||||
@@ -0,0 +1,345 @@
|
||||
#!/bin/sh
|
||||
|
||||
name=`basename $0`
|
||||
|
||||
usage() {
|
||||
echo "$name Usage:"
|
||||
echo ""
|
||||
echo "$name [function]"
|
||||
echo "function: mtp, support MTP function"
|
||||
echo " adb, support adb function"
|
||||
echo " uvc, support uvc function"
|
||||
echo " uvc,uac1 support uvc and uac1 function"
|
||||
echo " rndis support rndis function"
|
||||
echo "example:"
|
||||
echo "$name uvc"
|
||||
echo ""
|
||||
}
|
||||
|
||||
enable_adb() {
|
||||
[ -d /sys/kernel/config/usb_gadget/g1/functions/ffs.adb ] || {
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/ffs.adb
|
||||
}
|
||||
echo "Tina ADB" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/ffs.adb/ /sys/kernel/config/usb_gadget/g1/configs/c.1/ffs.adb
|
||||
|
||||
[ -d /dev/usb-ffs/adb ] || {
|
||||
mkdir -p /dev/usb-ffs
|
||||
mkdir /dev/usb-ffs/adb
|
||||
mount -o uid=2000,gid=2000 -t functionfs adb /dev/usb-ffs/adb/
|
||||
}
|
||||
}
|
||||
|
||||
enable_mtp() {
|
||||
mtp_name=mtp.gs0
|
||||
mtp_ffs=false
|
||||
kv=`uname -r`
|
||||
kv=${kv:0:1}
|
||||
if [ "x$kv" = "x5" ]; then
|
||||
mtp_ffs=true
|
||||
mtp_name=ffs.mtp
|
||||
fi
|
||||
[ -d /sys/kernel/config/usb_gadget/g1/functions/$mtp_name ] || {
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/$mtp_name
|
||||
}
|
||||
if [ "x$mtp_ffs" = "xtrue" ]; then
|
||||
[ -d /dev/usb-ffs/mtp ] || {
|
||||
mkdir -p /dev/usb-ffs
|
||||
mkdir /dev/usb-ffs/mtp
|
||||
mount -o rmode=0770,fmode=0660,uid=1024,gid=1024,no_disconnect=1 -t functionfs mtp /dev/usb-ffs/mtp/
|
||||
}
|
||||
fi
|
||||
echo "Tina MTP" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
|
||||
echo 1 > /sys/kernel/config/usb_gadget/g1/os_desc/use
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/$mtp_name/ /sys/kernel/config/usb_gadget/g1/configs/c.1/$mtp_name
|
||||
if [ "x$mtp_ffs" = "xtrue" ]; then
|
||||
MtpTools -f connect
|
||||
sleep .500
|
||||
fi
|
||||
}
|
||||
|
||||
uvc_create_frame()
|
||||
{
|
||||
format=$1
|
||||
name=$2
|
||||
width=$3
|
||||
height=$4
|
||||
frameindex=$5
|
||||
|
||||
dir=streaming/$format/$name/${height}p
|
||||
mkdir -p $dir
|
||||
echo $width > $dir/wWidth
|
||||
echo $height > $dir/wHeight
|
||||
echo $(($width * $height * 2 )) > $dir/dwMaxVideoFrameBufferSize
|
||||
#20,30fps
|
||||
#cat <<EOF > $dir/dwFrameInterval
|
||||
#500000
|
||||
#333333
|
||||
#EOF
|
||||
|
||||
#30fps
|
||||
echo 333333 > $dir/dwFrameInterval
|
||||
echo 333333 > $dir/dwDefaultFrameInterval
|
||||
echo $(($width * $height * 2 * 30 * 8)) > $dir/dwMinBitRate
|
||||
echo $(($width * $height * 2 * 30 * 8)) > $dir/dwMaxBitRate
|
||||
echo $frameindex > $dir/bFrameIndex
|
||||
}
|
||||
|
||||
enable_uvc()
|
||||
{
|
||||
cd /sys/kernel/config/usb_gadget/g1/functions
|
||||
mkdir uvc.usb0
|
||||
cd uvc.usb0
|
||||
|
||||
uvc_create_frame mjpeg m 1920 1080 1
|
||||
uvc_create_frame mjpeg m 1280 720 2
|
||||
uvc_create_frame mjpeg m 640 480 3
|
||||
uvc_create_frame uncompressed u 320 240 1
|
||||
uvc_create_frame h264 h 1920 1080 1
|
||||
uvc_create_frame h264 h 1280 720 2
|
||||
|
||||
mkdir -p streaming/header/h
|
||||
|
||||
ln -s streaming/mjpeg/m/ streaming/header/h/
|
||||
ln -s streaming/uncompressed/u/ streaming/header/h/
|
||||
ln -s streaming/h264/h/ streaming/header/h/
|
||||
|
||||
ln -s streaming/header/h/ streaming/class/fs
|
||||
ln -s streaming/header/h/ streaming/class/hs
|
||||
|
||||
mkdir -p control/header/h
|
||||
|
||||
ln -s control/header/h/ control/class/fs/
|
||||
ln -s control/header/h/ control/class/ss/
|
||||
|
||||
#echo 3072 > streaming_maxpacket
|
||||
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/ /sys/kernel/config/usb_gadget/g1/configs/c.1/
|
||||
}
|
||||
|
||||
udc_controller=`ls /sys/class/udc`
|
||||
|
||||
set_usb_function() {
|
||||
# 1:function
|
||||
# 2:idVendor
|
||||
# 3:idProduct
|
||||
#
|
||||
|
||||
[ -d /sys/kernel/config/usb_gadget ] || {
|
||||
mount -t configfs none /sys/kernel/config
|
||||
mkdir /sys/kernel/config/usb_gadget/g1
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/strings/0x409
|
||||
echo "Allwinner Technology Inc." > /sys/kernel/config/usb_gadget/g1/strings/0x409/manufacturer
|
||||
echo "Tina" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
|
||||
}
|
||||
[ -d /sys/kernel/config/usb_gadget/g1/configs/c.1 ] || {
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/configs/c.1
|
||||
echo 0xc0 > /sys/kernel/config/usb_gadget/g1/configs/c.1/bmAttributes
|
||||
echo 500 > /sys/kernel/config/usb_gadget/g1/configs/c.1/MaxPower
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/configs/c.1/strings/0x409
|
||||
}
|
||||
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/ffs.adb
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/ffs.mtp
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/mtp.gs0
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/f1
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/rndis.usb0
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/uac1.usb0
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/accessory.usb0
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/hid.usb0
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/hid.usb1
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/loopback.usb0
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/gser.usb0
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/printer.usb0
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/uvc.usb0
|
||||
rm -f /sys/kernel/config/usb_gadget/g1/configs/c.1/mass_storage.usb0
|
||||
rm -rf /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/header/h/
|
||||
rm -rf /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/class/fs
|
||||
rm -rf /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/class/hs
|
||||
rm -rf /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/control/class/fs/
|
||||
rm -rf /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/control/class/ss/
|
||||
rm -rf /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/mjpeg/m
|
||||
rm -rf /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/mjpeg/
|
||||
rm -rf /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/streaming/uncompressed/
|
||||
|
||||
echo $2 > /sys/kernel/config/usb_gadget/g1/idVendor
|
||||
echo $3 > /sys/kernel/config/usb_gadget/g1/idProduct
|
||||
|
||||
if [ $1 == "none" ]; then
|
||||
return
|
||||
elif [ $1 == "mtp" ]; then
|
||||
enable_mtp
|
||||
elif [ $1 == "adb" ]; then
|
||||
enable_adb
|
||||
elif [ $1 == "mass_storage" ]; then
|
||||
[ -d /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0 ] || {
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0
|
||||
echo Tina > /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/inquiry_string
|
||||
}
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0/ /sys/kernel/config/usb_gadget/g1/configs/c.1/f1
|
||||
|
||||
#echo "/dev/by-name/UDISK" > /sys/kernel/config/usb_gadget/g1/functions/mass_storage.usb0/lun.0/file
|
||||
elif [ $1 == "uac1" ]; then
|
||||
[ -d /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0 ] || {
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0
|
||||
}
|
||||
echo 0x1 > /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/p_chmask
|
||||
echo 0x1 > /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/c_chmask
|
||||
echo 16000 > /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/p_srate
|
||||
echo 16000 > /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/c_srate
|
||||
echo "Tina UAC1" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/ /sys/kernel/config/usb_gadget/g1/configs/c.1/uac1.usb0
|
||||
elif [ $1 == "uvc" ]; then
|
||||
echo N > /sys/module/usb_f_uvc/parameters/bulk_streaming_ep
|
||||
[ $4 == "bulk" ] && {
|
||||
echo Y > /sys/module/usb_f_uvc/parameters/bulk_streaming_ep
|
||||
}
|
||||
echo 0xef > /sys/kernel/config/usb_gadget/g1/bDeviceClass
|
||||
echo 0x02 > /sys/kernel/config/usb_gadget/g1/bDeviceSubClass
|
||||
echo 0x01 > /sys/kernel/config/usb_gadget/g1/bDeviceProtocol
|
||||
echo "Tina UVC" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
|
||||
|
||||
#echo 0x150 > /sys/kernel/config/usb_gadget/g1/functions/uvc.usb0/control/header/h/bcdUVC
|
||||
|
||||
enable_uvc
|
||||
elif [ $1 == "uvc,uac1" ]; then
|
||||
echo Y > /sys/module/usb_f_uvc/parameters/bulk_streaming_ep
|
||||
echo 0xef > /sys/kernel/config/usb_gadget/g1/bDeviceClass
|
||||
echo 0x02 > /sys/kernel/config/usb_gadget/g1/bDeviceSubClass
|
||||
echo 0x01 > /sys/kernel/config/usb_gadget/g1/bDeviceProtocol
|
||||
echo "Tina UVC" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
|
||||
|
||||
enable_uvc
|
||||
[ -d /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0 ] || {
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0
|
||||
}
|
||||
# enable PC capture only ISOC(IN)
|
||||
echo 0x1 > /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/p_chmask
|
||||
echo 0x1 > /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/c_chmask
|
||||
echo 16000 > /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/p_srate
|
||||
echo 16000 > /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/c_srate
|
||||
echo "Tina UVC UAC1" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/ /sys/kernel/config/usb_gadget/g1/configs/c.1/uac1.usb0
|
||||
elif [ $1 == "adb,uvc" -o $1 == "uvc,adb" ]; then
|
||||
echo 0xef > /sys/kernel/config/usb_gadget/g1/bDeviceClass
|
||||
echo 0x02 > /sys/kernel/config/usb_gadget/g1/bDeviceSubClass
|
||||
echo 0x01 > /sys/kernel/config/usb_gadget/g1/bDeviceProtocol
|
||||
echo "Tina ADB&UVC" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
|
||||
|
||||
enable_uvc
|
||||
enable_adb
|
||||
elif [ $1 == "adb,uac1" -o $1 == "uac1,adb" ]; then
|
||||
echo 0xef > /sys/kernel/config/usb_gadget/g1/bDeviceClass
|
||||
echo 0x02 > /sys/kernel/config/usb_gadget/g1/bDeviceSubClass
|
||||
echo 0x01 > /sys/kernel/config/usb_gadget/g1/bDeviceProtocol
|
||||
[ -d /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0 ] || {
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0
|
||||
}
|
||||
echo 0x1 > /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/p_chmask
|
||||
echo 0x1 > /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/c_chmask
|
||||
echo 16000 > /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/p_srate
|
||||
echo 16000 > /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/c_srate
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/uac1.usb0/ /sys/kernel/config/usb_gadget/g1/configs/c.1/uac1.usb0
|
||||
|
||||
enable_adb
|
||||
echo "Tina ADB&UAC1" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
|
||||
elif [ $1 == "rndis" ]; then
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/rndis.usb0
|
||||
echo "Tina RNDIS" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/rndis.usb0/ /sys/kernel/config/usb_gadget/g1/configs/c.1/rndis.usb0
|
||||
ls /sys/class/udc/ | xargs echo > /sys/kernel/config/usb_gadget/g1/UDC
|
||||
elif [ $1 == "adb,rndis" ]; then
|
||||
[ -d /sys/kernel/config/usb_gadget/g1/functions/rndis.usb0] || {
|
||||
mkdir /sys/kernel/config/usb_gadget/g1/functions/rndis.usb0
|
||||
}
|
||||
ln -s /sys/kernel/config/usb_gadget/g1/functions/rndis.usb0/ /sys/kernel/config/usb_gadget/g1/configs/c.1/rndis.usb0
|
||||
ls /sys/class/udc/ | xargs echo > /sys/kernel/config/usb_gadget/g1/UDC
|
||||
enable_adb
|
||||
echo 0xef > /sys/kernel/config/usb_gadget/g1/bDeviceClass
|
||||
echo 0x02 > /sys/kernel/config/usb_gadget/g1/bDeviceSubClass
|
||||
echo 0x01 > /sys/kernel/config/usb_gadget/g1/bDeviceProtocol
|
||||
echo "Tina ADB,RNDIS" > /sys/kernel/config/usb_gadget/g1/strings/0x409/product
|
||||
fi
|
||||
|
||||
echo $udc_controller > /sys/kernel/config/usb_gadget/g1/UDC
|
||||
}
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
echo "Lack of arg!"
|
||||
usage
|
||||
exit
|
||||
fi
|
||||
|
||||
# idVendor, idProduct only for test
|
||||
if [ $1 == "none" ]; then
|
||||
set_usb_function none 0x1f3a 0x1001
|
||||
return
|
||||
fi
|
||||
if [ $1 == "adb" ]; then
|
||||
set_usb_function adb 0x18d1 0xD002
|
||||
return
|
||||
fi
|
||||
if [ $1 == "mtp" ]; then
|
||||
set_usb_function mtp 0x045E 0x00C9
|
||||
return
|
||||
fi
|
||||
if [ $1 == "uac1" ]; then
|
||||
if [ $# == 3 ]; then
|
||||
set_usb_function uac1 $2 $3
|
||||
else
|
||||
set_usb_function uac1 0x1d61 0x0101
|
||||
fi
|
||||
return
|
||||
fi
|
||||
if [ $1 == "mass_storage" ]; then
|
||||
set_usb_function mass_storage 0x1f3a 0x1000
|
||||
return
|
||||
fi
|
||||
if [ $1 == "uvc" ]; then
|
||||
if [ $2 == "bulk" ]; then
|
||||
set_usb_function uvc 0x09a1 0x0026 bulk
|
||||
else
|
||||
set_usb_function uvc 0x09a1 0x0026
|
||||
fi
|
||||
return
|
||||
fi
|
||||
if [ $1 == "uac1,uvc" -o $1 == "uvc,uac1" ]; then
|
||||
#set_usb_function uvc,uac1 0x1943 0x2263
|
||||
#set_usb_function uvc,uac1 0x09a1 0x0026
|
||||
if [ $# == 3 ]; then
|
||||
set_usb_function uvc,uac1 $2 $3
|
||||
else
|
||||
set_usb_function uvc,uac1 0x09a1 0x002A
|
||||
fi
|
||||
return
|
||||
fi
|
||||
if [ $1 == "adb,uvc" -o $1 == "uvc,adb" ]; then
|
||||
set_usb_function adb,uvc 0x18d1 0xD002
|
||||
return
|
||||
fi
|
||||
if [ $1 == "adb,uac1" -o $1 == "uac1,adb" ]; then
|
||||
if [ $# == 3 ];then
|
||||
set_usb_function adb,uac1 $2 $3
|
||||
else
|
||||
set_usb_function adb,uac1 0x18d1 0xD002
|
||||
fi
|
||||
return
|
||||
fi
|
||||
if [ $1 == "rndis" ]; then
|
||||
# MODULES_DIR="/lib/modules/`uname -r`"
|
||||
# insmod $MODULES_DIR/sunxi_usb_udc.ko
|
||||
if [ $# == 3 ]; then
|
||||
set_usb_function rndis $2 $3
|
||||
else
|
||||
set_usb_function rndis 0x0525 0xa4a2
|
||||
fi
|
||||
fi
|
||||
if [ $1 == "adb,rndis" ]; then
|
||||
# MODULES_DIR="/lib/modules/`uname -r`"
|
||||
# insmod $MODULES_DIR/sunxi_usb_udc.ko
|
||||
if [ $# == 3 ]; then
|
||||
set_usb_function adb,rndis $2 $3
|
||||
else
|
||||
set_usb_function adb,rndis 0x0525 0xa4a2
|
||||
fi
|
||||
fi
|
||||
Reference in New Issue
Block a user