Chromecast Open Source Code: Linux Kernel, Toolchain, Bootloader, and More

Orange Pi Development Boards

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/

Chromecast_Menuconfig

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:


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:


This command will build the kernel:


As well as perf tool (used for profiling). Upon completion the script will create kernel.tgz with the following files:


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.

Support CNX Software - Donate via PayPal or become a Patron on Patreon

11
Leave a Reply

avatar
11 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
9 Comment authors
HHNoctacoreHarleyGoogle Chromecast code goes open-source | minipute.comAnthrox Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
pszab
Guest
pszab

Yepp 🙂

mj
Guest
mj

And if you want to play,
Python program that emulates ChromeCast device:
https://github.com/dz0ny/leapcast

Mark
Guest
Mark

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.

Anthrox
Guest
Anthrox

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

trackback

[…] Cnx-software.com found it and managed to compile it but didn’t have a Chromecast dongle to try it out. Still, it appears you need some kernel binary files direct from Marvell before you can completely recreate the dongle code build – libGAL.so, libPEAgent.so, libOSAL.so, libOpenCrypto.so, libGtvCa.so all need to be available before ‘content_shell’ can be compiled. […]

Harley
Guest
Harley

Would be great to have XBMC for Android with HDMI CEC support on this device!

octacore
Guest
octacore

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 for external Io or anyway to make use of that generic included SATA block and that as real shame….

OC the question remains when will the real Cortex also get a generic PCiE and SATA IP block to make those SoC usable for fast DIY NAS and the like beating today’s lame Intel SoC offering in all the lower cost Has today.

mj
Guest
mj

@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

HHN
Guest
HHN

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.