This week I finished the Android app. All the work and instructions on how to use can be found at: https://github.com/ungureanuvladvictor/BeagleDroid.
The new thing this week is that I ported most of the code to Linux using libusb. So now you can hook up the BBB *USB Boot mode* to your LinuxBox and flash the eMMC/uSD card. The work for this side-project can be found at: https://github.com/ungureanuvladvictor/BBBlfs . Again full usage instructions are found in the README file. The only drawback is that only .xz and .zip images are supported. From now on I will focus mainly on maintaining these 2 repos with up to date code.
Future plans are to extend the USB boot to other boards like the BBxM. The only problem is that the SPL does not know how to do USB boot but I will look into making some changes here if time suits me.
I`m back with some great news. During the last week I have tweaked around with Android JellyBean on the BeagleBone Black to get it running with my project. I have worked with the prebuilt image from http://processors.wiki.ti.com/index.php/TI-Android-JB-4.2.2-DevKit-4.1.1_DeveloperGuide . Here there are 2 changes that need to be done in order the project to work. First one is to recompile the kernel disabling the OTG Usb support and activating RNDIS HOST Driver. The other change needs to be done to the filesystem. Permissions for the usb bus need to be give to Android. After the Android on BBB has booted one needs to add the following content http://pastebin.com/BQnCkUX6 to a file into system/etc/permissions/android.hardware.usb.host.xml . Then you install the app normaly and run it . Until now we have uSD images for all the main distros included in the app and recently we have eMMC image support for Angstrom and Ubuntu.
Everyday I push new fixes to the git repo but still would love to have some people to test my project.
This week was mainly trying to make Android on the BBB to like my project, but in the end I do not have good results. Tried 2 builds of Android for the BBB and they behave the same way.
The kernel sees the AM335x as a RNDIS interface but from the Java USB Host API I can’t see it at all. Also I tried putting an USB stick and the same behavior I see.
I posted the bug on the rowboat ML and currently waiting for some answers. https://groups.google.com/forum/#!topic/rowboat/Qc-eW2s7mkI
Hello! The Android app is getting to take shape. More and more bugs are removed from it everyday. I posted something like a How-To-Use tutorial here: http://beagleboot.vdev.ro/?p=209. Testers are really welcomed to check if the application is working well on new devices.
This week I worked on the UI and behind it solved some issues that will lead the BBB in an unknown state that needed reboot.
At the moment I am trying to get Android to work on the BBB and with it to flash another black bone. There are some problems because the kernel enumerates and activates the RNDIS driver for the BBB but from the Java API I can`t see any usb device plugged in. I also tested the API with a usb flash drive and same not found result. Will check the .config in the kernel and recompile it if it`s not good.
For the future I want to add more screens to the app, to make an intro on how to use it and for rooted phones to make a simple checker if the kernel is good to run the app. After GSoC ends I will try to port all the code to Linux and maybe Windows if my time permits so.
To run the project you need the following:
-an USB Host capable Android device that runs Android newer than 3.1.x
-the kernel of the Android device must be compiled without CONFIG_USB_OTG support in it. USB_NET_RNDIS_HOST needs to be activated in the kernel
After your device is running the kernel that meets the requirements install the .apk of the project from https://github.com/ungureanuvladvictor/BeagleDroid/blob/master/bin/BeagleDroid.apk . After you install the .apk on the device do the following:
-select image you want to download form the drop down menu
-when the download has finished mark “Make SD Card” *currently all the images from the drop down menu are meant to be ran from uSD card; eMMC images will be supplied soon*
-power up BBB/BBW in USB Boot mode *while having inserted a blank or a non working uSD in the BBB press the user button(the one near the uSD slot) and power on the BBB. this procedure can be made without a uSD inserted in the slot*
-connect to the Android device
A Toast notification will appear when you can disconnect your phone from the board. When the flashing is done only 2 LEDs will be lit.
I have some good news to share with you! At this moment using the Android app one can flash the internal eMMC of the BBB or create uSD cards for BBB/rPI with the latest images. The next step is to implement making uSD cards for Minnowboard. At this point some testers are gladly welcomed to check out the project.
The evaluation last week went really well and now we are back on track with the work. This week it was more of a testing season to make the process of transferring a .img faster from the host to the device. I have found new bugs in the kernel regarding gadgetFS. For now the transferring part will stick to g_serial.
New features have been added to the project:
- get the .img from beagleboard.org and flash it to the eMMC
- make custom SDcards for different boards like rPI, minnowboard and BBxM
Until now we have deviated a bit from the original goal of the project regarding the Android kernel hacks that need to be done.
This week is midterm evaluation week *hope things go well*. Regarding the project things are going great in my opinion. I have a working version of things that flash the eMMC. The Android app requires on the device`s sdcard to have a folder called BBB with the following content: http://beagleboot.vdev.ro/content.zip . Also in that folder please make sure to put a file called flash.img.xz which is the image you want to flash on the BBB.
Take the src code from https://github.com/ungureanuvladvictor/BeagleDroid, compile and run the app on the device. Just a simple press of the button will trigger the BBB to boot and start flashing the eMMC. When the .img is transferred on the board the textView will indicate 100% and you can disconnect the BBB from the Android device. Once the eMMC is flashed only 2 of the user leds will be lit up and the other 2 will be off. At that moment just reboot your BBB and enjoy your new img on the eMMC.
Sorry for being a bit offline this week *was mainly on the road, taking a break*. Now regarding the project:
- serial communication between Android and BBB is working
- sending files works but at a low speed *512 bytes chunk*, making the size bigger makes the communication instable
- the daemon that will run on the BBB at start has sources at https://github.com/ungureanuvladvictor/BBB-utils ; at this point it receives a single file but in 2 days will be final for reading and writing to eMMC.