Google has made quite a stir by introducing Chromecast, and entering the HDMI TV Stick market. We already know the device is based on Marvell 88DE3005 SoC with 512 MB, and since the product are already been shipped to customers in the US, it was just a question of time before the release of the open source code, and everything you need appears to be available at https://code.google.com/p/chromecast-mirrored-source/
Let’s have a look at what we have in the different repositories:
- Wiki – Empty…
- Kernel – Linux 3.0.8 source code
- Prebuilt – Binary toolchain: arm-unknown-linux-gnueabi-4.5.3-glibc
- Toolchain – Source code for the toolchain above.
- External – Source code for alsa-libs, dnsmask, libexit and nss
- sdk – bootloader and DirecFB 1.6.1
- vendor – Looks like qt source used in some netflix app (not sure)
- Chromium – README explaining how you can download Chromecast Chromium source code: 1.8GB tarball + you need to contact Marvell to get some binary files.
I don’t have device, but I’ll try to build the Linux kernel anyway. I’m not sure it’s the correct method, but I believe it should work.
First let’s get the pre-built toolchain and the kernel source code:
1 2 3 4 |
mkdir ~/Chromecast cd ~/Chromecast git clone git clone https://code.google.com/p/chromecast-mirrored-source.prebuilt/ git clone https://code.google.com/p/chromecast-mirrored-source.kernel/ |
then I had to add the toolchain to my path, and install one missing dependency (lzop):
export PATH=$PATH:~/Chromecast/chromecast-mirrored-source.prebuilt/toolchain/arm-unknown-linux-gnueabi-4.5.3-glibc/bin/
sudo apt-get install lzop
Now we’re ready to build the kernel with build_kernel.sh script that is said to be for the “Eureka” platform, probably the codename for Chromecast or some Marvell devkit. You need to select the SoC with this script: either “berlin” (mv88de31xx) or “anchovy” (mv88de30xx). Since Chromecast is based on 88DE3005, we’ll go with anchovy:
1 |
./build_kernel.sh anchovy |
This command will build the kernel:
1 2 3 4 5 6 7 |
Image Name: Linux-3.0.8-g86f43ed Created: Sat Jul 27 15:29:44 2013 Image Type: ARM Linux Kernel Image (uncompressed) Data Size: 2487400 Bytes = 2429.10 kB = 2.37 MB Load Address: 01008000 Entry Point: 01008000 Image arch/arm/boot/uImage is ready |
As well as perf tool (used for profiling). Upon completion the script will create kernel.tgz with the following files:
1 2 3 4 |
kernel/uImage kernel/COPYING kernel/zImage sdk/bin/perf |
If you’ve got a Chromecast, and gave it a try (This may brick your device by the way), let me know how it went.
Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress
Yepp 🙂
And if you want to play,
Python program that emulates ChromeCast device:
https://github.com/dz0ny/leapcast
I wonder what’s different between this SoC and the 88DE3100 used on their GoogleTV platform. Hopefully it’s not a reduction to single-core CPU. The Armada line also has very impressive VPU capabilities.
http://www.gtvhacker.com/index.php/Google_Chromecast
https://twitter.com/gtvhacker/
@deets
So the processor is single core. I’m quite confused with the claim the OS is Android, as Google did release Chromium for the platform…
my understanding its chromium as it more lightweight would be nice to see if this software could be ported to the likes of the raspberry pi
Would be great to have XBMC for Android with HDMI CEC support on this device!
These old Armada single core SoC are fine for what they are and indeed have a dual SATA block,PCIE and fast Ethernet included (its unfortunate that these internal blocks are NOT brought out to the PCB thought as standard to make all these types of kit far more useful) unlike the more modern Arm Cortex SoC , however their missing functionality being lacking the now generic and far faster NEON SimD ,only having the far weaker old SSE mobile SIMD from Intel legacy inside and only have USB2.0 so not able to make anything close to that PCiE potentials speed… Read more »
@mj
Hackaday commenters have instructions on how to make the Leapcast work – http://hackaday.com/2013/08/02/leapcast-emulates-chromecast-in-your-chrome-browser/#comments
Is there anyway to run the binary inside a virtual machine like qemu so we can tinker around with the code? What is the kernel config screen at the top of this page. Looks like some sort of emulation of the software being run.