Getting Started with MultiArch (armel / armhf) in Ubuntu

Until now, I used xapt and dpkg-cross to install cross libraries for armel, but since I’ve upgraded to Ubuntu 12.04, it appears to be broken. I’ve contacted Linaro about this issue, and the “cross-building” expert at Linaro (wookey) recommended me to use multiarch instead, as xapt/dpkg-cross will be eventually deprecated. He provided me an example showing how-to use multiarch to build Chromium. I’ve been looking for a “How-to multiarch”, but haven’t been able to find something really clear and simple, so I thought I would post it here. In the example, they used a chroot for cross-building, which is probably a good idea to avoid messing up with the system. It’s also possible multiarch is not 100% reliable, and I’ve read stories where people messed up their system when using multiarch with i386 (32-bit) and amd64 (64-bit). Preparing a chroot for cross-building I’ll use a 32-bit Ubuntu precise chroot, but you can use an older distribution (e.g. oneric) and 64-bit […]

Google Releases Chrome for Android (Beta)

Google has introduced the beta version of Chrome for Android, bringing Chrome’s capabilities to smartphones and tablets running Android 4.0 (but not earlier versions). The key features of Chrome for Android: View open tabs: Access the tabs you left open on your computer (also signed into Chrome)—picking up exactly where you left off.  Swipe on your mobile device to switch between tabs. Get smarter suggestions: If you visit a site often on your computer, you’ll also get an auto-complete suggestion for it on your mobile device, so you can spend less time typing. Sync bookmarks: Access your favorite sites no matter which device you are using. You can watch the teaser video below. On the technical side, Chrome for Android brings support for many of the latest HTML5 features to the Android platform including hardware-accelerated canvas, overflow scroll support, HTML5 video. Chrome for Android also brings new capabilities such as Indexed DB, WebWorkers and Web Sockets. Google added remote debugging […]

Cross-compiling Berkelium for ARMv6 with Emdebian Toolchain

Berkelium is a BSD licensed library that provides off-screen browser rendering via Google’s open source Chromium web browser. This library is used by Xibo Digital Signage Player python client and I already cross-compiled it using Ubuntu/Linaro  toolchain. Since I need it to run on ARMv6 for the Raspberry Pi, I have cross-compiled it again in Debian with Emdebian ARM cross-compiler. Here are the instructions I followed to build Berkelium and Chromium for ARMv6 in Debian. First, you’ll need to install some development libraries for ARM: sudo /usr/share/pdebuild-cross/xapt -a armel libnss3-dev libgconf2-dev libgnome-keyring-dev libgtk2.0-dev libgnome-keyring-dev libgtk2.0-dev libxtst-dev libpam-dev libxss-dev libdbus-glib-1-dev libnss3-dev libgconf2-dev libgnome-keyring-dev libxss-dev libdbus-glib-1-dev libnspr4-dev libglib2.0-dev libjpeg-dev libasound2-dev libbz2-dev libgcrypt-dev libspeex-dev libcups2-dev and some tools on the build machine: sudo apt-get install git-core subversion cmake doxygen gyp gperf flex bison On 64-bit build machines (required for debug build) also install g++-multi and possibly some 32-bit libraries with xapt:

If you don’t, you’ll get the following error: LINK(host) out/Release/mksnapshot /usr/bin/ld: […]

Using Raspberry Pi as an Internet Kiosk

Following up on this morning post explaining how to get the kernel and minimal rootfs to run debian in qemu emulating an ARM1176 processor, I’ll show how to make a minimal rootfs to run Chrome browser in this platform. I tested it in QEMU, but this should also run on the Raspberry Pi hardware. First, you’ll have to complete the step I provided in Raspberry Pi Emulator in Ubuntu with Qemu. Start qemu: sudo qemu-system-arm -M versatilepb -cpu arm1176 -m 256 -hda rootfs.ext2 -kernel zImage -append “root=/dev/sda” -serial stdio Once you login to the console as root, create a new user (e.g guest): adduser guest This user will be needed to login with the graphical interface and ssh. In order to get an Internet Kiosk, we’ll need a web browser (Chromium) and a window manger. I chose fluxbox instead of gnome because of the size difference (8651 KB vs 1739 MB). I installed the required package in qemu with apt-get: […]

Cross-compiling Berkelium (and Chromium) for ARM

Berkelium is a BSD licensed library that provides off-screen browser rendering via Google’s open source Chromium web browser. It takes advantage of Chromium’s multiprocess rendering to isolate browsers from each other and can render to any buffer in memory. The user of the library can inject input and javascript code into web pages to control them, as well as listen for events generated by the page such as navigation events, load sequence events and paint events. Berkelium provides a small API for embedding a fully functional browser into any application. This library is used by Xibo Digital Signage Player python client. I’ll give the instructions I followed to build Berkelium and Chromium for ARM. For now the build works, but I have a problem running berkelium in the emulator. First, you’ll need to install some tools and the development version of some libraries: sudo apt-get install git-core subversion cmake doxygen gyp libnss3-dev libgconf2-dev libgnome-keyring-dev libgtk2.0-dev libgnome-keyring-dev libgtk2.0-dev libxtst-dev libpam-dev libxss-dev […]

Google Chrome Notebook Cr-48 and Chrome OS Update

After unveiling Google Nexus S and Android 2.3, Google lifted the lid on its reference notebook codenamed “Cr-48″ and provided updates about Chrome OS. This notebook features a 12.1” monitor and runs Chrome OS on an Intel platform. The Cr-48 Chrome Notebook is only designed for Chrome OS pilot program and will be distributed free of charge to selected organization and users in the United States. Here’s an excerpt from Google Chrome OS website: Each participant in the Pilot program will receive a Cr-48 Chrome notebook; in return, we’ll expect you to use it regularly and send us detailed feedback. Sound interesting? Please note: Chrome OS is for people who live on the web. It runs web-based applications, not legacy PC software. The Pilot program is not for the faint of heart. Things might not always work just right. The Pilot program is open to individuals, businesses, schools, non-profits and developers based in the United States. If you think you’ve got what […]