@@ -14,7 +14,8 @@ import (
14
14
15
15
const (
16
16
virtualNetwork = "/boot/usb.rndis0"
17
- virtualDisk = "/boot/usb.disk0"
17
+ virtualMedia = "/boot/usb.disk0"
18
+ virtualDisk = "/boot/usb.disk1"
18
19
)
19
20
20
21
var (
@@ -31,28 +32,43 @@ var (
31
32
"/etc/init.d/S03usbdev start" ,
32
33
}
33
34
34
- mountDiskCommands = []string {
35
+ mountMediaCommands = []string {
35
36
"touch /boot/usb.disk0" ,
36
37
"/etc/init.d/S03usbdev stop" ,
37
38
"/etc/init.d/S03usbdev start" ,
38
39
}
39
40
40
- unmountDiskCommands = []string {
41
+ unmountMediaCommands = []string {
41
42
"/etc/init.d/S03usbdev stop" ,
42
43
"rm -rf /sys/kernel/config/usb_gadget/g0/configs/c.1/mass_storage.disk0" ,
43
44
"rm /boot/usb.disk0" ,
44
45
"/etc/init.d/S03usbdev start" ,
45
46
}
47
+
48
+ mountDiskCommands = []string {
49
+ "touch /boot/usb.disk1" ,
50
+ "/etc/init.d/S03usbdev stop" ,
51
+ "/etc/init.d/S03usbdev start" ,
52
+ }
53
+
54
+ unmountDiskCommands = []string {
55
+ "/etc/init.d/S03usbdev stop" ,
56
+ "rm -rf /sys/kernel/config/usb_gadget/g0/configs/c.1/mass_storage.disk1" ,
57
+ "rm /boot/usb.disk1" ,
58
+ "/etc/init.d/S03usbdev start" ,
59
+ }
46
60
)
47
61
48
62
func (s * Service ) GetVirtualDevice (c * gin.Context ) {
49
63
var rsp proto.Response
50
64
51
65
network , _ := isDeviceExist (virtualNetwork )
66
+ media , _ := isDeviceExist (virtualMedia )
52
67
disk , _ := isDeviceExist (virtualDisk )
53
68
54
69
rsp .OkRspWithData (c , & proto.GetVirtualDeviceRsp {
55
70
Network : network ,
71
+ Media : media ,
56
72
Disk : disk ,
57
73
})
58
74
log .Debugf ("get virtual device success" )
@@ -80,6 +96,15 @@ func (s *Service) UpdateVirtualDevice(c *gin.Context) {
80
96
} else {
81
97
commands = unmountNetworkCommands
82
98
}
99
+ case "media" :
100
+ device = virtualMedia
101
+
102
+ exist , _ := isDeviceExist (device )
103
+ if ! exist {
104
+ commands = mountMediaCommands
105
+ } else {
106
+ commands = unmountMediaCommands
107
+ }
83
108
case "disk" :
84
109
device = virtualDisk
85
110
0 commit comments