usboot Posted April 29, 2016 Share Posted April 29, 2016 I made a funny project for trying to use the ARM single board as the USB disk or cdrom. I did a lot of optimizations for the size and speed. Releases: https://github.com/usboot/USBootPi/releases USBootPi supports NanoPi M1. It also supports OrangePi One/PC but we need more USB cables(one for power, another one for OTG). Sorry, there is no the English readme now. Link to comment Share on other sites More sharing options...
usboot Posted May 3, 2016 Author Share Posted May 3, 2016 The english readme is ready: https://github.com/usboot/USBootPi 1 Link to comment Share on other sites More sharing options...
tkaiser Posted May 3, 2016 Share Posted May 3, 2016 Wow, this is nice! Did you test performance? Using CrystalDiskInfo for example? Link to comment Share on other sites More sharing options...
usboot Posted May 4, 2016 Author Share Posted May 4, 2016 Wow, this is nice! Did you test performance? Using CrystalDiskInfo for example? 8G Class4 2 Link to comment Share on other sites More sharing options...
tkaiser Posted May 4, 2016 Share Posted May 4, 2016 Wow, that makes me nervous and I have to try this out with a board with fast eMMC!! Especially the huge random write difference with a queue depth of 32 and 1... Link to comment Share on other sites More sharing options...
usboot Posted June 11, 2016 Author Share Posted June 11, 2016 v1.3 is released, RAID0 is supported. I tested the maximum speeds of the OTG. The maximum speeds are the same as the above CrystalDiskMark's result. I did some tries for improving the speeds but they did not work. I think the speeds should be improved because the CPU utilization is still low when the maximum speeds reach. Who can tell me the actual reason about it? Link to comment Share on other sites More sharing options...
tkaiser Posted June 21, 2016 Share Posted June 21, 2016 Thx for the feedback about performance. I also don't know but would be happy to investigate a bit. Care to elaborate a bit how to set up things correctly with a normal Linux/Armbian build? Adding g_mass_storage to /etc/modules is the first step but how to proceed then? I tried to use your small image but since I'm using OS X and no Windows I fail already at the first step since adding another exFAT partition isn't possible (or let's better say: OS X' disk utility then wipes out the complete SD card including boot loader so I would assume in your setup g_mass_storage is simply providing access to the 'raw' /dev/mmcblk0 device in installation stage?) Link to comment Share on other sites More sharing options...
usboot Posted June 21, 2016 Author Share Posted June 21, 2016 Thx for the feedback about performance. I also don't know but would be happy to investigate a bit. Care to elaborate a bit how to set up things correctly with a normal Linux/Armbian build? Adding g_mass_storage to /etc/modules is the first step but how to proceed then? I tried to use your small image but since I'm using OS X and no Windows I fail already at the first step since adding another exFAT partition isn't possible (or let's better say: OS X' disk utility then wipes out the complete SD card including boot loader so I would assume in your setup g_mass_storage is simply providing access to the 'raw' /dev/mmcblk0 device in installation stage?) I did not use g_mass_storage because I found that the kernel would crash when unloading this module. I used the Android gadget and I recommend this gadget because it can be used with one more gadgets at the same time. You are right. I will upload the full sources during my spare time. The following are the core codes : if [ -b "/dev/mmcblk0p2" ]; then echo "$_disk" > /sys/class/android_usb/f_mass_storage/lun1/file echo "$_disk2" > /sys/class/android_usb/f_mass_storage/lun2/file else echo "0" > /sys/class/android_usb/f_mass_storage/lun2/ro echo "0" > /sys/class/android_usb/f_mass_storage/lun2/removable echo "/dev/mmcblk0" > /sys/class/android_usb/f_mass_storage/lun2/file fi echo "USBoot" > /sys/class/android_usb/android0/iManufacturer echo "USBootPi" > /sys/class/android_usb/android0/iProduct echo "f833" > /sys/class/android_usb/android0/idVendor echo "0001" > /sys/class/android_usb/android0/idProduct echo "mass_storage" > /sys/class/android_usb/android0/functions echo "2" > /sys/bus/platform/devices/sunxi_usb_udc/otg_role echo "1" > /sys/class/android_usb/android0/enable 1 Link to comment Share on other sites More sharing options...
tkaiser Posted June 21, 2016 Share Posted June 21, 2016 Looks good. I just tried to load the g_multi module which does not work and I'm not even sure whether that's the right one. So looking forward to more details provided by you Link to comment Share on other sites More sharing options...
cmirra Posted September 11, 2016 Share Posted September 11, 2016 Very nice project. I am also working on something similar. Looking forward to seeing more of your sourcecode released. Very impressed with how much you stripped the kernel down -- the device (orange pi pc) boots very fast. Link to comment Share on other sites More sharing options...
Nyctophilia Posted March 7, 2017 Share Posted March 7, 2017 @usboot Nice project! As there isn't any sourcecode which I could look into, would you may explain to me, how to make g_multi and/or the android gadget drivers working on current nanopi m1 or orange pi zero builds? I would love to have proper cd/dvd emulation and hid passthrough working! Here is my current thread, explaining my situation: Thank you very much in advance! Link to comment Share on other sites More sharing options...
Recommended Posts