Android running on BBB with Linux 3.8

Have you tried using a computer that isn’t running Windows 8?

I know that I’ve had similar issues when writing images from Windows 8. Eventually I tried writing the same image to the same card using my Windows 7 laptop it worked.

Ryan Ramchandar,

I just wanted to make sure you aren’t expecting the Android image to flash to your eMMC.
This sentence,

Though the 4 user LEDS did not become solid and nothing happened.
made it seem like you are expecting it to flash to the eMMC. Just wanted to make sure that wasn’t the case.
I also wanted to say trying with a Windows 7 computer sounds like a better idea as well.

Tommy

I’m sorry that you’re having such a difficult time with this! For what it is worth, I have a class of graduate students that are using this Android image for their projects this semester, and they should all be writing this image to a microSD card prior to their lab session this Friday. I’ll be asking everyone how it went and what OS and tools everyone tried using. I know that we have a mix of Linux, Win7/8, and Macs in the class, so I can get a better idea of what platforms might be a problem by seeing who had trouble and who didn’t. Maybe this information will help you out. There are also a mix of rev A5A-C BBB’s in the class, as well.

I always use “dd” under Linux to write images to my microSD cards. I have not tried any other OSes or tools. Prior to uploading the Android image, I zeroed out a microSD card and then dd’d the image to the card. On my rev A5A BBB, it booted without any issue.

Andrew

Thanks guys for the feedback,

Duncan, I will try writing the image with Win 7 64bit tonight.
Tommy, sorry I meant to say ‘until the USER LEDs begin to flash’ per the instructions. (Though flashing the eMMC would be a great feature)
Andrew, thanks, I look forward to the results with your class (do you plan to make any material public?). I have a virtualbox of Ubuntu that I will try flashing the image using “dd”.

For those that are having difficulty with installing apps on the Android image, there are a few things that I’ve been fixing in the image. I’ll continue my work and upload a new image with these items addressed (I’ll post to this thread when I do), but until then, you can do the following:

  1. The mount device listed in the rootfs’s /fstab.am335xevm file is incorrect. The mount device should be /dev/block/mmcblk0p3, not /dev/block/platform/omap/omap_hsmmc.0/mmcblk0p3. If you change the path in that file, then the third partition of the SD card (usrdata) will mount to the directory /data in rootfs. This is what is giving people trouble with storing settings and downloading files: these items are saved to that partition. The mount will occur on the next system restart.

  2. Once you have gotten that changed, copy the .apk that you wish to install into the /media/0/Download directory of the usrdata filesystem. This directory is linked as the “/sdcard/Download” directory of the rootfs filesystem in the running Android system. To get that file copied, you have three options:

OPTION 1: Mount the SD card’s usrdata filesystem on a Linux system and use “sudo” to copy the file into /media/0/Download directory.

OPTION 2: Download the file via the web browser app while the system is running.

OPTION 3: Use a USB drive to copy the files over while the system is running. To do this, you need to have a shell into the running system via your FTDI cable to manually mount your USB drive and copy the files off. Use the following command:

mount -t FS_TYPE /dev/block/sdaX /usbdrive

… where X is the partition number of the USB drive that you wish to mount (usually you just want the first partition, sda1), and FS_TYPE is the type of filesystem (vfat, most likely, if you are using Windows). Once you have the USB drive mounted, copy the file from /usbdrive/wherever into /sdcard/Download.

Once the file is in place, launch the application “OI File Manager” and navigate to “sdcard → Download”. You will see any files that you have manually placed in that Download directory, and also any files that you have downloaded via the web browser (this is where they end up). Just double-click on the .apk file that want to install and it will install and appear with the rest of your apps. If you get a warning about not having the correct permissions set, make sure that you have checked the “Unknown Sources” checkbox in the Settings → Applications dialog.

It is the bad mount point that has been giving everyone trouble when installing apps.

Andrew

I just updated the uploaded image to address the issue of the usrdata partition not mounting. Also, I added a “consoleblank=0” to the kernel command line in uEnv.txt to keep the HDMI interface from shutting off after 10 minutes of operation.

Engineering samples of the LCD3, LCD4, and LCD7 capes arrived today, and I am starting to look at those for Android compatibility and integration.

Andrew

Let us know how Android looks on the LCD7. I want to know if it looks
blurry or not considering the resolution is 800 x 480. Also, does the
BeagleBone Black now support LCD7 cape?

If/when you look at the LCD7?, can you take a picture and put it on
here? I want to see how it looks...

I can do better than just a picture: https://www.youtube.com/watch?v=2MmWkt_7-y0

My camera is not that great, and there is a great deal of reflection off of the protective film on the screen, but you can see how it looks. The screen is actually quite sharp. There is a little unused space to the right of the screen, but the full 800x480 surface is visible. Touchscreen works OK in the center of the screen, but it gets progressively more and more skewed from its proper position once you touch around a centimeter or two away from the edge of the screen. My FTDI shell debug output showed that the cape was picked up and that the firmware was loaded out of the filesystem, so it should work for others as-is. You’ll only need to change the resolution from the current “video=720x480-16@60” to “video=800x480-16” on the kernel command line in the uEnv.txt.

As for the other capes, I saw the upper-left corner of the display being shown on the LCD3 cape (not surprising, since it is only 320x240), but I did not receive any touchscreen events from it. I’ll look into the touchscreen, but I might be able to change the DPI for the display in Android to get it running better. The screen was refreshing at about 0.5 Hz (I could see it changing scanline-by-scanline), so my configuration is clearly wrong for that particular cape. For the LCD4 cape, the backlight came on and the screen remained solid white. The touchscreen events went thorough, though. I was cat’ing out /dev/input/event1 and getting data when I poked the screen.

Andrew

Thanks man. Resolution looks decent according to your video, so I’ll probably get this screen.

Are you planning to do any SD card partitioning so Android can recognize SD card space, as well as the Wifi tutorial soon?

Not at the moment. I squeeze in my efforts with the BBB here and there when I can, and I have a list of things that I need to get working sooner rather than later. That stuff takes priority at the moment.

Andrew

Okay, I understand. Let us know when you can get a chance to work on it.

Thanks for the latest image, Andrew.

It does boot up fine and recognize my Samsung HP-T5064 720p TV, though the picture is grainy (using a HDMI 1.4 cable that works fine with an LG 1080p full HD TV). Made no changes to the resolution setting in the uEnv.txt file.

Also, in your image, the audio is not coming through - though the same Samsung TV works (video and audio) fine, using the same cable, with the latest Angstrom image. 'am presuming the audio in your youtube video is from an external source and not from the HDMI monitor.

Is anything special needed to get audio working with your latest android image…

Thanks,
/venkat

Dear . Andrew Henderson
I have downloaded file android .img in //circuitco.com/support/index.php?title=Androidhttp
I boot failed. But I boot angstrom and ubuntu successfully.
please help me show error.
thank for any idea.

OK, here are a few general tips to help people out with some of the issues that I have been receiving messages about:

  1. If you see debug output over your FTDI cable that shows a message like “warning: `zygote’ uses 32-bit capabilities (legacy support in use)”, you have actually successfully booted Android. This means that your kernel has completely bootstrapped and you are well into the “init” start-up sequence for the rest of the OS. If you aren’t seeing anything on your screen at that point, it is because you are trying to use a resolution that is not supported by your display. So don’t worry… if you’ve gotten this far in the system setup, you’ve written the microSD card image properly and your system IS actually running!

  2. There are two lists of resolutions that the kernel pulls from when initializing the framebuffer. One list is for CEA video modes. These modes support both audio and video data, and are used by HDMI devices. The other list are for VGA modes. These modes are for video-only (DVI monitors, or DVI monitors with an HDMI connection). The default 720x480 is a CEA mode, which is intended for HDMI displays. This mode will not work with most DVI/VGA monitors because it is not a standard VGA mode. If you are using a DVI/VGA monitor (no audio), you can only set a standard VGA mode: 640x480, 800x600, 1024x768, etc. If you are using HDMI, you can set a CEA mode, like 720x480.

  3. You can try completely removing the “video=720x480-16@60” option from the kernel command line in your uEnv.txt. This option is an override that forces a particular resolution. If that resolution doesn’t work with your particular display, you won’t get any video signal. Your DVI and HDMI devices will report an EDID block to the BBB that tells the kernel what resolutions it supports. The kernel will, by default, pick the highest resolution mode in the EDID block that matches an entry in its resolution lists. DVI monitors automatically pick from the non-CEA list (since they don’t report any CEA modes), and HDMI devices pick from the CEA list. If no display is plugged into the BBB when the kernel bootstraps and sets up the video subsystem, or if you are using an exotic adapter or HDMI cable that prevents the EDID block from being sent to the kernel (like an HDMI-to-VGA cable), the kernel will default to a resolution of 1024x768. The 1024x768 resolution is a non-CEA mode, so it will not give you audio.

  4. While there is theoretically audio support for the CEA mode resolutions that support both video and audio, I haven’t tested it. I don’t have any audio media loaded onto the system image, so there are no sound effects. I always stick some background music on my YouTube clips that show the BBB system running, because otherwise they would be far more boring! If someone wants to test this a bit, try downloading some audio clips and setting them as the sound effects for the various system events. I think that you should be able to just download something via the web browser and then play it by clicking it in either the completed downloads or the /sdcard/Download directory (browse to it using the OI File Manager app). I believe the default audio samples are in .ogg format.

As for anyone that has sent me mail, hang in there for a bit and be patient. I’m working through the backlog to answer everyone as best as I can!

Andrew

that is a really good news! I have already running android on my beaglebone black! Thank you!

在 2013年6月18日星期二UTC+8上午8时00分07秒,Andrew Henderson写道:

Ok.thank you Andrew Henderson .
Right .my beaglebone black was boot successfull.I can console it through serial .
I cannot out HDMI to TV sony 40EX650 with any OS ( angstrom,unbuntu,android) .I checked with TV sharp and TOSHIBA.it is same result.
TV detected HDMI but no picture.I wake up it (click mouse) . when I connect HDMI to board.serial deug doesn’t have any info EDID.
I tried with 2 type cable
http://www.ebay.com/bhp/mini-hdmi-to-hdmi-connector

and
http://www.amazon.com/Fosmon-HDMI-Micro-Cable-Feet/dp/B003UH0Z9Q

I think that driver HDMI cannot load or hardware
how to get EDID in android?
please tell me any idea to test. I don;t have any idea
Thanks.
phuong le

Andrew, thanks for this image, got it working after fiddling with the
video resolution. More precisely, I could *see* that it was working
when I found the right res. Here's what I found:

1. Android doesn't ask to be Google-activated. When I got my Android
phone, I couldn't use it until I signed in with my Google account. No
big deal, I don't really intend to lug it around. However...

2. I did manage to side-load the Google Play app, along with the GMail
app. They won't run however, probably because I hadn't activated the
device. (I'm supposed to supply a one-time device-specific password
but couldn't find anything in the Settings. I tried the Accounts item
under Settings, got email and one other that I don't remember at the
moment. I entered my Google credentials, and Android told me that I
needed a device-specific password (or something like that).

3. The browser hangs now and then and asks me whether I want to wait
or force-close.

4. The entire environment is slow, my mouse laggy. Wondering if my
monitor has anything to do with it. I've posted a photo of the back of
my monitor in another thread, but for your reference: dick smith LCT
TV with DVD Player, MODEL: GE6607. Other markings: DSE11080793, N19
GE6607, for whatever they may be worth. I don't remember at the moment
what res I entered in uEnv.txt

5. Again, I don't know if it's my monitor and/or its resolution, but I
don't get sound off the HDMI cable. For whatever it may be worth, I
don't get sound either from my ThinkPad running FreeBSD 9.x. Never did
have the chance to test it with Windows (Vista Home Basic).

6. Just for reference, I tried it with a lower res (480x???) and parts
of the output didn't make it to the screen. E.g., I don't see the
Back+Home+Task button at the bottom of the screen. Changing it to a
higher res fixed that some. And now it occurs to me that maybe I can
see the hidden parts of the output by scrolling?

I don't expect to spend a lot of time in Android on the 'bone, but
thought you might want to know how things went.

I believe that sound isn’t enabled yet, but I’m not exactly sure.

  1. Android doesn’t ask to be Google-activated. When I got my Android
    phone, I couldn’t use it until I signed in with my Google account. No
    big deal, I don’t really intend to lug it around. However…

Obviously the BBB is not a ‘Google experience’ device, so Google
accounts, etc. are not supported. Especially when you load an AOSP
build.

  1. I did manage to side-load the Google Play app, along with the GMail
    app.

There is quite a bit of related infrastructure needed to get Google accounts
and Google Play to work, just the Play Store app is not enough. That said it
does work, however doing it is not exactly in line with Google’s terms of
service.

The real problem with this build is that it doesn’t seem to support ADB
debugging. I’ve tried starting adbd from init.rc, but it looks like the mini
USB port is not detected at all. I will try to see if there are any hints
in the console log, but any ideas? The ‘vanilla’ rowboat build does
support adbd, so it is definitely doable.