Added USB Gadget Mass Storage and CDC ACM

This commit is contained in:
Michel-FK 2018-03-05 07:56:33 +01:00
parent f1c81cc332
commit 0777af6a55
4 changed files with 148 additions and 31 deletions

View File

@ -1,7 +1,7 @@
# #
# Automatically generated make config: don't edit # Automatically generated make config: don't edit
# Busybox version: 1.27.2 # Busybox version: 1.27.2
# Sat Feb 24 11:11:49 2018 # Tue Mar 6 00:09:21 2018
# #
CONFIG_HAVE_DOT_CONFIG=y CONFIG_HAVE_DOT_CONFIG=y
@ -529,9 +529,9 @@ CONFIG_VLOCK=y
# #
# Linux Ext2 FS Progs # Linux Ext2 FS Progs
# #
CONFIG_CHATTR=y # CONFIG_CHATTR is not set
CONFIG_FSCK=y CONFIG_FSCK=y
CONFIG_LSATTR=y # CONFIG_LSATTR is not set
# CONFIG_TUNE2FS is not set # CONFIG_TUNE2FS is not set
# #
@ -571,13 +571,13 @@ CONFIG_DEFAULT_DEPMOD_FILE="modules.dep"
# CONFIG_ACPID is not set # CONFIG_ACPID is not set
# CONFIG_FEATURE_ACPID_COMPAT is not set # CONFIG_FEATURE_ACPID_COMPAT is not set
# CONFIG_BLKDISCARD is not set # CONFIG_BLKDISCARD is not set
CONFIG_BLKID=y # CONFIG_BLKID is not set
# CONFIG_FEATURE_BLKID_TYPE is not set # CONFIG_FEATURE_BLKID_TYPE is not set
# CONFIG_BLOCKDEV is not set # CONFIG_BLOCKDEV is not set
# CONFIG_CAL is not set # CONFIG_CAL is not set
CONFIG_CHRT=y CONFIG_CHRT=y
CONFIG_DMESG=y # CONFIG_DMESG is not set
CONFIG_FEATURE_DMESG_PRETTY=y # CONFIG_FEATURE_DMESG_PRETTY is not set
CONFIG_EJECT=y CONFIG_EJECT=y
# CONFIG_FEATURE_EJECT_SCSI is not set # CONFIG_FEATURE_EJECT_SCSI is not set
CONFIG_FALLOCATE=y CONFIG_FALLOCATE=y
@ -586,25 +586,25 @@ CONFIG_FBSET=y
CONFIG_FEATURE_FBSET_FANCY=y CONFIG_FEATURE_FBSET_FANCY=y
CONFIG_FEATURE_FBSET_READMODE=y CONFIG_FEATURE_FBSET_READMODE=y
CONFIG_FDFORMAT=y CONFIG_FDFORMAT=y
CONFIG_FDISK=y # CONFIG_FDISK is not set
# CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set # CONFIG_FDISK_SUPPORT_LARGE_DISKS is not set
CONFIG_FEATURE_FDISK_WRITABLE=y # CONFIG_FEATURE_FDISK_WRITABLE is not set
# CONFIG_FEATURE_AIX_LABEL is not set # CONFIG_FEATURE_AIX_LABEL is not set
# CONFIG_FEATURE_SGI_LABEL is not set # CONFIG_FEATURE_SGI_LABEL is not set
# CONFIG_FEATURE_SUN_LABEL is not set # CONFIG_FEATURE_SUN_LABEL is not set
# CONFIG_FEATURE_OSF_LABEL is not set # CONFIG_FEATURE_OSF_LABEL is not set
CONFIG_FEATURE_GPT_LABEL=y # CONFIG_FEATURE_GPT_LABEL is not set
CONFIG_FEATURE_FDISK_ADVANCED=y # CONFIG_FEATURE_FDISK_ADVANCED is not set
# CONFIG_FINDFS is not set # CONFIG_FINDFS is not set
CONFIG_FLOCK=y # CONFIG_FLOCK is not set
CONFIG_FDFLUSH=y CONFIG_FDFLUSH=y
CONFIG_FREERAMDISK=y CONFIG_FREERAMDISK=y
# CONFIG_FSCK_MINIX is not set # CONFIG_FSCK_MINIX is not set
CONFIG_FSFREEZE=y CONFIG_FSFREEZE=y
CONFIG_FSTRIM=y # CONFIG_FSTRIM is not set
CONFIG_GETOPT=y CONFIG_GETOPT=y
CONFIG_FEATURE_GETOPT_LONG=y CONFIG_FEATURE_GETOPT_LONG=y
CONFIG_HEXDUMP=y # CONFIG_HEXDUMP is not set
# CONFIG_FEATURE_HEXDUMP_REVERSE is not set # CONFIG_FEATURE_HEXDUMP_REVERSE is not set
# CONFIG_HD is not set # CONFIG_HD is not set
CONFIG_XXD=y CONFIG_XXD=y
@ -627,14 +627,14 @@ CONFIG_FEATURE_MDEV_EXEC=y
# CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set # CONFIG_FEATURE_MDEV_LOAD_FIRMWARE is not set
CONFIG_MESG=y CONFIG_MESG=y
CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y CONFIG_FEATURE_MESG_ENABLE_ONLY_GROUP=y
CONFIG_MKE2FS=y # CONFIG_MKE2FS is not set
# CONFIG_MKFS_EXT2 is not set # CONFIG_MKFS_EXT2 is not set
# CONFIG_MKFS_MINIX is not set # CONFIG_MKFS_MINIX is not set
# CONFIG_FEATURE_MINIX2 is not set # CONFIG_FEATURE_MINIX2 is not set
# CONFIG_MKFS_REISER is not set # CONFIG_MKFS_REISER is not set
CONFIG_MKDOSFS=y CONFIG_MKDOSFS=y
# CONFIG_MKFS_VFAT is not set # CONFIG_MKFS_VFAT is not set
CONFIG_MKSWAP=y # CONFIG_MKSWAP is not set
# CONFIG_FEATURE_MKSWAP_UUID is not set # CONFIG_FEATURE_MKSWAP_UUID is not set
CONFIG_MORE=y CONFIG_MORE=y
CONFIG_MOUNT=y CONFIG_MOUNT=y
@ -653,8 +653,8 @@ CONFIG_MOUNTPOINT=y
CONFIG_PIVOT_ROOT=y CONFIG_PIVOT_ROOT=y
CONFIG_RDATE=y CONFIG_RDATE=y
# CONFIG_RDEV is not set # CONFIG_RDEV is not set
CONFIG_READPROFILE=y # CONFIG_READPROFILE is not set
CONFIG_RENICE=y # CONFIG_RENICE is not set
# CONFIG_REV is not set # CONFIG_REV is not set
# CONFIG_RTCWAKE is not set # CONFIG_RTCWAKE is not set
# CONFIG_SCRIPT is not set # CONFIG_SCRIPT is not set
@ -663,11 +663,11 @@ CONFIG_SETARCH=y
CONFIG_LINUX32=y CONFIG_LINUX32=y
CONFIG_LINUX64=y CONFIG_LINUX64=y
CONFIG_SETPRIV=y CONFIG_SETPRIV=y
CONFIG_SETSID=y # CONFIG_SETSID is not set
CONFIG_SWAPON=y # CONFIG_SWAPON is not set
# CONFIG_FEATURE_SWAPON_DISCARD is not set # CONFIG_FEATURE_SWAPON_DISCARD is not set
# CONFIG_FEATURE_SWAPON_PRI is not set # CONFIG_FEATURE_SWAPON_PRI is not set
CONFIG_SWAPOFF=y # CONFIG_SWAPOFF is not set
CONFIG_SWITCH_ROOT=y CONFIG_SWITCH_ROOT=y
# CONFIG_TASKSET is not set # CONFIG_TASKSET is not set
# CONFIG_FEATURE_TASKSET_FANCY is not set # CONFIG_FEATURE_TASKSET_FANCY is not set
@ -683,18 +683,14 @@ CONFIG_FEATURE_UMOUNT_ALL=y
CONFIG_FEATURE_MOUNT_LOOP=y CONFIG_FEATURE_MOUNT_LOOP=y
CONFIG_FEATURE_MOUNT_LOOP_CREATE=y CONFIG_FEATURE_MOUNT_LOOP_CREATE=y
# CONFIG_FEATURE_MTAB_SUPPORT is not set # CONFIG_FEATURE_MTAB_SUPPORT is not set
CONFIG_VOLUMEID=y # CONFIG_VOLUMEID is not set
#
# Filesystem/Volume identification
#
# CONFIG_FEATURE_VOLUMEID_BCACHE is not set # CONFIG_FEATURE_VOLUMEID_BCACHE is not set
# CONFIG_FEATURE_VOLUMEID_BTRFS is not set # CONFIG_FEATURE_VOLUMEID_BTRFS is not set
# CONFIG_FEATURE_VOLUMEID_CRAMFS is not set # CONFIG_FEATURE_VOLUMEID_CRAMFS is not set
CONFIG_FEATURE_VOLUMEID_EXFAT=y # CONFIG_FEATURE_VOLUMEID_EXFAT is not set
CONFIG_FEATURE_VOLUMEID_EXT=y # CONFIG_FEATURE_VOLUMEID_EXT is not set
CONFIG_FEATURE_VOLUMEID_F2FS=y # CONFIG_FEATURE_VOLUMEID_F2FS is not set
CONFIG_FEATURE_VOLUMEID_FAT=y # CONFIG_FEATURE_VOLUMEID_FAT is not set
# CONFIG_FEATURE_VOLUMEID_HFS is not set # CONFIG_FEATURE_VOLUMEID_HFS is not set
# CONFIG_FEATURE_VOLUMEID_ISO9660 is not set # CONFIG_FEATURE_VOLUMEID_ISO9660 is not set
# CONFIG_FEATURE_VOLUMEID_JFS is not set # CONFIG_FEATURE_VOLUMEID_JFS is not set
@ -708,7 +704,7 @@ CONFIG_FEATURE_VOLUMEID_FAT=y
# CONFIG_FEATURE_VOLUMEID_ROMFS is not set # CONFIG_FEATURE_VOLUMEID_ROMFS is not set
# CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set # CONFIG_FEATURE_VOLUMEID_SQUASHFS is not set
# CONFIG_FEATURE_VOLUMEID_SYSV is not set # CONFIG_FEATURE_VOLUMEID_SYSV is not set
CONFIG_FEATURE_VOLUMEID_UBIFS=y # CONFIG_FEATURE_VOLUMEID_UBIFS is not set
# CONFIG_FEATURE_VOLUMEID_UDF is not set # CONFIG_FEATURE_VOLUMEID_UDF is not set
# CONFIG_FEATURE_VOLUMEID_XFS is not set # CONFIG_FEATURE_VOLUMEID_XFS is not set

View File

@ -46,6 +46,8 @@ CONFIG_DEVTMPFS_MOUNT=y
CONFIG_MTD=y CONFIG_MTD=y
CONFIG_MTD_M25P80=y CONFIG_MTD_M25P80=y
CONFIG_MTD_SPI_NOR=y CONFIG_MTD_SPI_NOR=y
CONFIG_BLK_DEV_LOOP=y
CONFIG_BLK_DEV_LOOP_MIN_COUNT=1
CONFIG_SCSI=y CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y CONFIG_BLK_DEV_SD=y
CONFIG_NETDEVICES=y CONFIG_NETDEVICES=y
@ -118,7 +120,9 @@ CONFIG_USB_MUSB_HDRC=y
CONFIG_USB_MUSB_SUNXI=y CONFIG_USB_MUSB_SUNXI=y
CONFIG_NOP_USB_XCEIV=y CONFIG_NOP_USB_XCEIV=y
CONFIG_USB_GADGET=y CONFIG_USB_GADGET=y
CONFIG_USB_CDC_COMPOSITE=y CONFIG_USB_MASS_STORAGE=m
CONFIG_USB_G_SERIAL=m
CONFIG_USB_G_ACM_MS=m
CONFIG_MMC=y CONFIG_MMC=y
CONFIG_MMC_SUNXI=y CONFIG_MMC_SUNXI=y
CONFIG_NEW_LEDS=y CONFIG_NEW_LEDS=y
@ -147,6 +151,7 @@ CONFIG_NVMEM_SUNXI_SID=y
CONFIG_EXT4_FS=y CONFIG_EXT4_FS=y
CONFIG_VFAT_FS=y CONFIG_VFAT_FS=y
CONFIG_TMPFS=y CONFIG_TMPFS=y
CONFIG_CONFIGFS_FS=y
# CONFIG_MISC_FILESYSTEMS is not set # CONFIG_MISC_FILESYSTEMS is not set
# CONFIG_NETWORK_FILESYSTEMS is not set # CONFIG_NETWORK_FILESYSTEMS is not set
CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_437=y

View File

@ -0,0 +1,115 @@
#!/bin/sh
#set -x
THIS=$(basename $0)
case "${1}" in
start)
if [ ! -f /mass_storage ]; then
echo "$THIS: no shared storage file, create it" | tee /dev/kmsg
dd if=/dev/zero of=/mass_storage bs=1M seek=1024 count=0 &&
cat <<EOF | sfdisk /mass_storage
,,C
EOF
if [ $? -ne 0 ]; then
echo "$THIS: cannot create shared storage file" | tee /dev/kmsg
exit 1
fi
UNIT_LINE=$(fdisk -l /mass_storage | egrep Units)
set $UNIT_LINE
UNIT=${8}
PART_LINE=$(fdisk -l /mass_storage | egrep /mass_storage1)
set $PART_LINE
let START="${2} * $UNIT"
if [ x"$START" = x -o $START -eq 0 ]; then
echo "$THIS: cannot find shared storage file start" | tee /dev/kmsg
exit 2
fi
losetup -o$START /dev/loop0 /mass_storage &&
mkdosfs /dev/loop0 &&
losetup -d /dev/loop0
if [ $? -ne 0 ]; then
echo "$THIS: cannot format shared storage file" | tee /dev/kmsg
exit 3
fi
fi
lsmod | egrep -q ^g_mass_storage
if [ $? -eq 0 ]; then
echo "$THIS; shared storage already started" | tee /dev/kmsg
exit 4
fi
echo "$THIS: start shared storage" | tee /dev/kmsg
modprobe g_mass_storage file=/mass_storage
if [ $? -ne 0 ]; then
echo "$THIS: cannot start shared storage" | tee /dev/kmsg
exit 5
fi
echo "$THIS: shared storage started" | tee /dev/kmsg
;;
stop)
echo "$THIS: stop shared storage" | tee /dev/kmsg
lsmod | egrep -q ^g_mass_storage
if [ $? -eq 0 ]; then
modprobe -r g_mass_storage
if [ $? -ne 0 ]; then
echo "$THIS: cannot stop shared storage" | tee /dev/kmsg
exit 6
fi
else
echo "$THIS: shared storage not started" | tee /dev/kmsg
exit 7
fi
echo "$THIS: shared storage stopped" | tee /dev/kmsg
;;
mount)
if [ ! -f /mass_storage ]; then
echo "$THIS: no shared storage file" | tee /dev/kmsg
exit 8
fi
echo "$THIS: mounting shared storage" | tee /dev/kmsg
UNIT_LINE=$(fdisk -l /mass_storage | egrep Units)
set $UNIT_LINE
UNIT=${8}
PART_LINE=$(fdisk -l /mass_storage | egrep /mass_storage1)
set $PART_LINE
let START="${2} * $UNIT"
if [ x"$START" = x -o $START -eq 0 ]; then
echo "$THIS: cannot find shared storage file start" | tee /dev/kmsg
exit 9
fi
losetup -o$START /dev/loop0 /mass_storage &&
mount -t vfat /dev/loop0 /mnt/
if [ $? -ne 0 ]; then
echo "$THIS: cannot mount shared storage file" | tee /dev/kmsg
exit 10
fi
echo "$THIS: shared storage mounted" | tee /dev/kmsg
;;
umount)
losetup -a | egrep -q /mass_storage
if [ $? -ne 0 ]; then
echo "$THIS: no mounted shared storage file" | tee /dev/kmsg
exit 11
fi
echo "unmounting shared storage"
umount /mnt &
losetup -d /dev/loop0
if [ $? -ne 0 ]; then
echo "$THIS: cannot unmount shared storage" | tee /dev/kmsg
exit 12
fi
echo "$THIS: shared storage unmounted" | tee //dev/kmsg
;;
*)
echo "Usage ${0} {start|stop|mount|umount}"
exit 13
;;
esac

View File

@ -49,6 +49,7 @@ BR2_PACKAGE_BUSYBOX_CONFIG="$(BR2_EXTERNAL_FUNKEY_PATH)/board/funkey/busybox.con
# E2fsprog package for e2fsck and resize2fs # E2fsprog package for e2fsck and resize2fs
BR2_PACKAGE_E2FSPROGS=y BR2_PACKAGE_E2FSPROGS=y
# BR2_PACKAGE_E2FSPROGS_FSCK is not set
BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y BR2_PACKAGE_E2FSPROGS_RESIZE2FS=y
# SDL package for Retro games # SDL package for Retro games