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

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
Advertisements
Subscribe
Notify of
guest
10 Comments
oldest
newest most voted
pszab
pszab
6 years ago

Yepp 🙂

mj
mj
6 years ago

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

Mark
Mark
6 years ago

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
Anthrox
6 years ago

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

Harley
Harley
6 years ago

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

octacore
octacore
6 years ago

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
mj
6 years ago

@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
HHN
6 years ago

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.

Advertisements