Embedded Linux Conference & IoT summit 2016 first took place in the US in April, but the events are now also scheduled in Europe on October 11 – 13 in Berlin, Germany, and the schedule has now been published. Even if you are no going to attend, it’s always interesting to find out more about the topic covered in that type of events, so I had a look, and created my own virtual schedule with some of the sessions. Tuesday, October 11 10:40 – 11:30 – JerryScript: An Ultra-lightweight JavaScript Engine for the Internet of Things – Tilmann Scheller, Samsung Electronics JerryScript is a lightweight JavaScript engine designed to bring the success of JavaScript to small IoT devices like lamps, thermometers, switches and sensors. This class of devices tends to use resource-constrained microcontrollers which are too small to fit a large JavaScript engine like V8 or JavaScriptCore. JerryScript is heavily […]
How to Boot a Headless Linux Image on Amlogic S802 TV Boxes (Tronsmart Vega S89 Elite)
As some of you already know, I’ve been playing around with Tronsmart Vega S89 Elite, an Android TV Box powered by Amlogic S802 quad-core ARM Cortex A9r4 processor at 2 GHz. Today, I’ll show how to boot a headless Linux image on any Amlogic-based S802 TV Box from the network. The instructions can mainly be used as a starting point for developers, as it requires access to a serial terminal via UART, but if you’ve never done it before, the instructions should be easy enough to follow. Everything is loaded from the network, the kernel (via boot.img) is loaded via TFTP, and the rootfs (Linaro ALIP image) is mounted via NFS, so it’s nearly impossible to brick your device using the method provided. Linaro ALIP rootfs comes with LXDE, but at this stage, the desktop environment is not showing, even though my HDMI TV is properly detected by the drivers. […]
Booting Linux in Less Than 1 Second in AllWinner A10 Devices? Yes! You Can!
threewater, a Chinese developer, has just posted a very interesting demo on linux-sunxi mailing list showing a device based on AllWinner A10 boot linux within 0.85s, and if you add a Qt app, the total time is just about 1.2s. This appears to be a custom hardware (EM6000), but we do know it’s based on AllWinner A10, comes with 512 MB RAM, and 4GB NAND Flash. On the software side, the device runs kernel 3.4 from linux-sunxi, with a customized version of uboot, a squashfs rootfs, and a Qt 4.7.4 app showing a gauge. Both the rootfs (7MB) and the kernel (2MB) have been compressed with LZO. All that boots from NAND flash for optimal speed. The 1.2 second time includes kernel + rootfs + app time, and the total time is a bit longer, but this is still impressive. Here’s the boot log:
1 2 3 4 5 6 7 8 9 10 |
[1.690000 1.690000] U-Boot SPL 2013.01-05984-g2120a27-dirty (Apr 17 2013 - 14:22:02) [0.009000 0.009000] Board: EM6000 [0.012000 0.003000] DRAM: 512MB [1.014000 1.002000] init startup v1.1 [1.016000 0.002000] mount usr data error 2 [1.158000 0.142000] Could not read calibration: "/data/etc/pointercal" [1.166000 0.008000] Couldnt open tslib config file: No such file or directory [1.175000 0.009000] QWSTslibMouseHandlerPrivate: ts_config() failed with error: 'No such file or directory' [1.187000 0.012000] Please check your tslib installation! [1.200000 0.013000] qt show |
If you just boot to […]
Embedded Linux Boot Time Optimizations – ELCE 2012
Alexandre Belloni, embedded Linux engineer and trainer at Adeneo Embedded, gives a presentation about different techniques to optimize boot time for Embedded Linux at ELCE 2012. He also explains how they’ve measured the boot time. Abstract: A common problem faced when embedding Linux is the long boot time before the system is functional. There are many ways to improve boot up time. For a particular project, we had to answer a CAN message from Linux userspace in less than 420 ms from going out of CPU reset. We will describe our methodology and the techniques we finally chose to implement in that particular use case. We will also detail how we measured the boot time efficiently. A live demo will show the results of our work. More specifically, Alexandre discusses two projects at Adeneo where boot time was critical: An automotive platform based on Freescale i.mx53 needs to reply to […]
Getting Ubuntu armel/armhf Rootfs in Ubuntu 12.04
I’ve recently upgraded to Ubuntu 12.04 and this is a great operating system. However, if you do some arm development and expect to be able to install cross libraries (armel/armhf) or easily generate an arm rootfs using the tools you’ve been used to, you’ll be disappointed. In Ubuntu 11.10 (Oneiric), I used xapt and dpkg-cross to retrieve armel libraries, but it’s broken for Ubuntu 12.04, at least on my system. I’ve been told to switch to multiarch because this will be how it’s done from now on. But I soon discovered this is work in progress as quite a few packages are not multiarched yet including python. Ubuntu developers also decided to remove rootstock (which makes sense since xapt/dpkg-cross will be deprecated), so if you want to generate a rootfs the “gool ol’” way (which won’t be supported much longer), you’d have to install an Oneric chroot to run rootstock, […]
How to Create Your Own Debian / Ubuntu Image for Mele A1000 (AllWinner A10 Based STB)
Developers working on AllWinner A10 have released an Ubuntu 10.04 LTS SD card image (4GB) for the Mele A1000. I’ll show how you can create your own Debian or Ubuntu image based on this image for any size of SD Card using Debian 6.0 (Squeeze) and the recent Ubuntu 12.04 (Precise Pangolin) as example. The current image is not perfect, for example Ethernet doesn’t work (but you can still get network connectivity with WiFi), the NAND flash can not be accessed, the system does not appear to be very stable when running X and a few more issues. But this will be fixed by the developer community over time. First download the SD card image wget http://hands.com/~lkcl/mele-ubuntu-lucid.img.lzma Install 7z (if you don’t have it yet) and decompress the file: sudo apt-get install p7zip-full 7z x mele-ubuntu-lucid.img.lzma The decompressed size is 4008706048, which might be larger than your 4GB SD Card […]
Raspberry Pi Releases Arch Linux SD Card Image
The Raspberry Pi Foundation has just announced the release of Arch Linux for the Raspberry Pi. This image is based on a minimal image of Arch Linux and does not come with a graphical interface. This distribution may not be suitable for beginners and you may be better off using the Debian SD Card image or even the upcoming Fedora 14 Raspberry Pi Remix image. You can always install extra packages with Pacman, the Arch Linux package manager. To update the package list:
1 |
pacman -Syu |
To Install LXDE Graphical Interface:
1 |
pacman -S lxde xorg-xinit xf86-video-fbdev |
To run LXDE:
1 |
xinit /usr/bin/lxsession |
You can download it using BitTorrent: archlinuxarm-01-03-2012.zip.torrent (preferred method) or via one of the HTTP mirrors: archlinuxarm-01-03-2012.zip. (This link will redirect your download to the closest available HTTP server). The default login credentials are: root/root I haven’t tried it, but you should be able to use this release in qemu, by following instructions similar to the one […]
Raspberry Pi Releases 1st SD Card Image (Debian) – How-to use it in QEMU
The Raspberry Pi Foundation has just released the first SD Card Image that you will be able to use with your Raspberry Pi board. This image is based on Debian Squeeze (6.0) and comes with LXDE user interface and Midori browser, development tools, and sample code for accessing the multimedia functionality on the device. You can download it using BitTorrent: debian6-17-02-2012.zip.torrent (preferred method) or via one of the many http mirrors available on RPi Community page. This image contains all necessary files including the binary blob and closed source libraries, the kernel and the root file systems. If you want to to prepare an SD Card with this image simply use dd in Linux: unzip debian6-17-02-2012.zip sudo dd if=debian6-17-02-2012/debian6-17-02-2012.img of={sd_card_path} where sd_card_path is the device pointing to you SD Card (e.g. /dev/sdc). Make sure you use the correct device (e.g. with fdisk -l) or you may wipeout your hard drive […]