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: …

Archos 80/101 G9 Firmware Version 3.2.56 Released

Archos has just released a new firmware for Archos 80 G9 / 101 G9. Here’s the changelog: Version 3.2.56 – October 14th, 2011  Android browser: add support for new browsing modes in settings (using various tablet/desktop user agents) Network shares: improve browsing behavior robustness and mounting reliability Memory management: reduce time for an application to load Wi-Fi: achieve faster reconnect Wi-Fi: fix mobile access point support Accessories: add support for some USB Ethernet adapters (chipsets: RTL8150, ASIX AX88xxx, Davicom DM9601, SMSC LAN75xx, SMSC LAN95xx, NetChip 1080, MosChip MCS7830) on micro USB port Video: fix sound being lost sometimes while playing and need to seek/play/pause to recover it Filebrowser: make it usable with Archos remote application Battery: apply less intrusive low battery warnings Keyboard: no need to reboot to apply keyboard layout The firmware can be downloaded at http://update.archos.com/9/gen9/gen9_3.2.56/firmware_archos_it4.aos

Raspberry Pi Emulator in Ubuntu with Qemu

The Raspberry Pi board is a low cost board based on Broadcom BCM2835 media processor SoC with an ARM1176JZF-S core clocked at 700MHz. This board is currently under development and should be ready by end of November, beginning of December and will be sold for 25 USD (128MB RAM – no Ethernet) and 35 USD (256MB RAM – Ethernet). While we are waiting for the board, we can still test software using qemu to emulate a board based on an ARM1176 core with 128MB or 256 MB memory. I’ve tried to create a rootfs based on Ubuntu with rootstock but this only support processors with ARM cortex A8 and greater, so it would not work with ARM11. I’ll be using Debian Squeeze instead. Prerequisites My host computer is running Ubuntu 10.04.3 LTS, but any recent Ubuntu or Debian installation should work with these instructions. [Update: You won’t be able to install qemu-linaro in Debian.  [Update in update: Apparently in the …

Samsung Galaxy S3 to be based on Exynos 4212 Processor

A picture which the next Samsung Galaxy S3 has been leaked on the Internet. Phandroid has posted a screenshot of what are being rumored to be the specs of the Galaxy S III. The Samsung Galaxy S3 should have the following specs: 1.8 GHz dual-core processor (Exynos 4212) 2GB RAM Android OS (I suppose ICS) 4.6″ SuperAMOLED Plus HD display 12MP Rear Camera The phone will be available sometimes in 2012  

LLVM (Low Level Virtual Machine) Compiler Infrastructure

The Low Level Virtual Machine (LLVM) is a compiler and toolchain infrastructure, written in C++, designed for compile-time, link-time, run-time, and “idle-time” optimization of programs written in arbitrary programming languages. Originally implemented for C/C++, LLVM is now used with a variety programming languages such as Python, Ruby and may others. Code in the LLVM project is licensed under the “UIUC” BSD-Style license. LLVM can be used to replace and/or supplement the GNU tools such as gcc, g++, gdb, etc… LLVM now consists of a number of different sub-projects including: The LLVM Core libraries provide a source- and target-independent optimizer, along with code generation support for many popular CPUs. These libraries are built around a well specified code representation known as the LLVM intermediate representation (“LLVM IR”). The LLVM Core libraries are well documented, and it is particularly easy to invent your own language (or port an existing compiler) to use LLVM as an optimizer and code generator. Clang is a …

Archos G9 GPL Source Code

Archos has released the GPL source code for the Archos G9 Tablets on their Gitorious account. This is obviously the same source code for Archos 80 G9 and Archos 101 G9. There are two git repositories for the G9: archos-gpl-gen9 – Archos generation 9 GPL release archos-gpl-gen9-kernel – Archos generation 9 GPL linux kernel 2.6 release The GPL “userspace” source code is divided into 4 directories: buildroot – Buildroot to generate a cross-compilation toolchain, a root filesystem, a kernel image and a bootloader image. hardware – Direcotory containing hardware related source: WL1283 “Wlan” Driver (WiLink 7.0 single-chip WLAN, GPS, Bluetooth and FM solution) packages: libf2m – Library to convert flash videos (FLV) to AVI, MOV or MP4 libmms – Library for streaming video/audio with mmst / mmsh protocols external- Utilities and libraries (Bold indicates external sw not released/used with Archos G8 Source Code) alsa-lib – Audio library alsa-utils – Audio Tools bison – Parser Generator blktrace – Driver debugging tool …

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 …

Variscite System On Module based on TI OMAP4460

Variscite – an Israeli company specialized in embedded systems manufacturing, development and consulting – announced the VAR-SOM-OM44 system on module (SOM) based on TI OMAP4460 processor (dual core Cortex-A9 cores @ 1.2 ~ 1.5GHz). This SOM features 512MB of DDR2 SDRAM and a microSD socket, I/O including gigabit Ethernet, USB 2.0, 3D camera, and HDMI. Variscite also announced  the VAR-OM44CustomBoard, a development board that can be customized to match specific customers requirement as well as the VAR-DVK-OM44, a complete development kit with touchscreen for evaluation and application development purposes. Here are the VAR-SOM-OM44 SOM specifications: CPU: Texas Instruments OMAP4460 Processor (1.2GHz – 1.5GHz) dual-core ARM Cortex-A9 MPCore GPU: PowerVR™ SGX540 graphics core @384MHz Memory: 512-1024MB 400MHz LPDDR2 Built-In micro-SD Socket Display: LCD interface – Supporting 24bpp resolutions up to WXGA HDMI interface – Supporting 1080p 4-wire touch screen panel interface Audio: Line-in Stereo Headphone out Digital microphone S/PDIF Out Network: 10/100/1000Mbps  Ethernet controller Wi-Fi 802.11 b/g/n Bluetooth V2.1 + EDR Expansion: 3 …