Archive | April, 2013

One Second Cold Linux Boot with OpenCV

As a means to demonstrate our boot time reduction skills, last November we put together a demo which shows an Embedded Linux device cold-booting in less than a second.

The demo consists of an ARM Cortex-A9 based device connected to a camera, 7-segment display and HDMI display. The device uses the camera along with OpenCV based software to count the number of yellow balls present on the table beneath and display the count on the 7-segment display. The device also outputs the camera image and ball detection illustration on the LCD display.

The device is able to do all this within one second of software reset, here is the video:

We’ve put lots of information on how we achieved this on our Boot Time Demos page which can be found here.

Continue Reading →

Scripted Modification of Kernel Configs

Whilst recently making changes to an embedded Linux distribution I came across a modest but very powerful feature of the kernel’s tried and test Kconfig system. What I discovered was a script that allows for scripted modification of kernel configuration files, i.e. .config and *_defconfig files.

The script, which first appeared in the 2.6.29 kernel can be found in the kernel’s scripts/ directory and its usage is very straight forward. Here are some examples:

# Enable timing information on printk's
./scripts/config --enable CONFIG_PRINTK_TIME

# Change the path of the initramfs
./scripts/config --set-str CONFIG_INITRAMFS_SOURCE ../fs

# Increase the size of the kernel log buffer
./scripts/config --set-val CONFIG_LOG_BUF_SHIFT 14

# Enable LZO compression for SquashFS in ~/test_defconfig
./scripts/config --file ~/test_defconfig --enable CONFIG_SQUASHFS
Continue Reading →