Is it IPv6 Time ? IPv6 Basics on Linux

The first time I worked on IPv6 was in 2000 in my master’s degree thesis where I started an implementation of Mobile IP based on IPv6 in Linux Redhat. Over a decade later, IPv6 has not really taken off, even though we hear stories about the IPv4 address space running out and I have yet to see an embedded device using anything else than IPv4. APNIC Ran out of IPv4 However, this may be about the change as on the 15th of April 2011, Japan Network Information Center (JPNIC) announced that APNIC (Asia Pacific Network Information Centre) ran out of IPv4 addresses. They will still try to make it last longer by reusing previously allocated IPv4 and an “IPv4 address transfer system” whose details will be made available later. You can also see a chart based on IANA (Internet Assigned Numbers Authority) data that shows this is a problem right […]

Boot Linux in 300 milliseconds

MakeLinux.com managed to boot Linux from the bootloader to console within 300ms using a customized (and minimal) version of Linux running on Beagleboard based on TI OMAP 3530 (Cortex A8) as per their Super Fast Boot project. Here’s the analysis of the boot sequence and timings: Logging starts at 70 ms from reset. Boot time from reset is 300 + 70 = 370 ms. Logging starts at 330 ms from power on. Cold boot time is 330 + 300 = 630 ms. Loading of 1.5 MiB Linux image from NAND takes 237 ms with throughput 6 MiB/s. Code execution takes 60 ms or 43M CPU cycles. (For other CPU frequency execution time is different, but the number of processor cycles is the same) The most time-consuming operation is coping firmware from NAND flash. They used a Linux 2.6.32 kernel from DVSDK 3.01, in a minimal configuration (900KB footprint), the boot […]

Removing Old Kernels in Ubuntu with Synaptic

If you have used Ubuntu for a while and performed upgrades, you may have quite a few kernels in GNU GRUB as shown below: Those kernels are usually not necessary, they take space on your hard disk and make you scroll down in GRUB to access your other OS (if any). I’ll show how to only keep the last 2 kernels (for safety) in GRUB with Synaptic. First, start synaptic as a superuser: sudo synaptic Select “System Administration“, in type “linux-image” in the Quick search field and show the installed kernel (green tick box). Then select the kernels you want to remove (keep the last 2 versions), right-click and select “Mark for Removal”. Synaptic Package Manager window should look like the screenshot below: After that, simply click on Apply and within a short time (one minute in my case), the selected kernel are removed. Removing 4 kernels, freed 429 MB […]

Setting Up an NFS Server in Ubuntu

You may need to setup an NFS server on Ubuntu to run and debug your program on your target platform or simply to share media files on the network composed of Linux clients. If you are using Windows clients, you would usually use SAMBA/CIFS, although it is possible to setup an NFS server in Windows as well using Windows Services for UNIX 3.5. Quick Guide to to setup an NFS server in Ubuntu without authentication. Install the required packages: # sudo apt-get install nfs-kernel-server nfs-common portmap Reconfigure and restart portmap: # sudo dpkg-reconfigure portmap # sudo /etc/init.d/portmap restart Edit /etc/exports: # sudo vi /etc/exports Add the directories to share with NFS and save the file, for example: /nfs 192.168.1.0/24(rw,no_root_squash,async) will give full read/write permissions to the nfs directory for computer in 192.168.1.0 subnet. Restart the NFS server: # sudo /etc/init.d/nfs-kernel-server restart and reload the configuration: # sudo exportfs -a The […]

Hercules eCAFE ARM Cortex A8 Netbooks running Linux

Hercules, a subsidiary of Guillemot Corporation,  announced two new eCAFÉ netbooks based on Freescale i.MX515 @ 800 Mhz (ARM Cortex A8)  that run a custom Linux distribution and feature a dipswitch for flipping to other user-loaded Linux or Android operating systems: eCAFÉ Slim HD – 229 USD: LED screen: 10.1 inch, 1024*600, high brightness Storage: 8Gb Flash (iNAND), extensible up to 72Gb ARM CortexTM A8 FreescaleTM i.MX515 @ 800 MHz processor RAM: 512 Mb WiFi N technology Battery: 2400 mAh (7.4V) for 4.5 hours’ battery life Comfortable “chiclet” keyboard with flat, separate keys – 88% of a standard keyboard 0.3MP webcam with built-in microphone Connections: 3x USB, 1x Headset, 1x Microphone, 1x LAN RJ45, 1x DC-in 12V, 1x External card reader: SD/MMC/SDHC, 1x Internal card reader: SD/SDHC DIP Switch Weight: 1.9lbs / 0.86 kg eCAFÉ EX HD – 269 USD: LED screen: 10.1 inch, 1024*600, high brightness Storage: 16Gb extensible […]

New Digital Media Processor: Conexant CX92755

Conexant announced a new single-chip media processor for multimedia display products such as digital signage, home automation/security and user interface control.  The CX92755 is based on ARM™ Cortex-A8 processor and NEON™ single instruction, multiple data (SIMD) engine with Linux and Android development support. The highly integrated SoC also includes an advanced HD video codec and graphics processor, integrated L1 and L2 cache, a PCI Express™ interface and DDR3 memory, The CX92755 integrates peripheral functions including a Class-D amplifier with speaker and line-out, a microphone input, back-light regulator, power supply controller and touchscreen controller. The SoC also includes an embedded high-performance graphics processor, which supports display list processing, alpha blending, and color key control for advanced user interface operation and display effects. the CX92755 also support the major network connectivity standards such as Wi-Fi®, 3G, Bluetooth® and integrated Ethernet. The SoC also integrates Conexant’s HSSD/Smart DAA® (Direct Access Arrangement) interface, and […]

Installing Linaro ARM Cross Toolchain on Ubuntu

You can easily install Linaro arm cross-compiler on Ubuntu 10.04 (Lucid), 10.10 (Maverick) and 11.04 (Natty) as follows: sudo apt-get install gcc-arm-linux-gnueabi This will install Linaro cross-toolchain version 4.4 on Ubuntu 10.04 and 10.10, and version 4.5 on Ubuntu 11.04. You can check the installation worked by checking the cross-compiler version jaufranc@CNX-TOWER:~$ arm-linux-gnueabi-gcc -v Using built-in specs. Target: arm-linux-gnueabi Configured with: ../src/configure -v –with-pkgversion=’Ubuntu/Linaro 4.4.4-14ubuntu4′ –with-bugurl=file:///usr/share/doc/gcc-4.4/README.Bugs –enable-languages=c,c++,fortran,objc,obj-c++ –prefix=/usr –program-suffix=-4.4 –enable-shared –enable-multiarch –enable-linker-build-id –with-system-zlib –libexecdir=/usr/lib –without-included-gettext –enable-threads=posix –with-gxx-include-dir=/usr/arm-linux-gnueabi/include/c++/4.4.5 –libdir=/usr/lib –enable-nls –enable-clocale=gnu –enable-libstdcxx-debug –enable-objc-gc –disable-sjlj-exceptions –with-arch=armv7-a –with-float=softfp –with-fpu=vfpv3-d16 –with-mode=thumb –disable-werror –enable-checking=release –program-prefix=arm-linux-gnueabi- –includedir=/usr/arm-linux-gnueabi/include –build=i686-linux-gnu –host=i686-linux-gnu –target=arm-linux-gnueabi –with-headers=/usr/arm-linux-gnueabi/include –with-libs=/usr/arm-linux-gnueabi/lib Thread model: posix gcc version 4.4.5 (Ubuntu/Linaro 4.4.4-14ubuntu4) You can also install the latest version 4.5 (recommended) on Lucid and Maverick: sudo add-apt-repository ppa:linaro-maintainers/toolchain sudo apt-get update sudo apt-get install gcc-4.5-arm-linux-gnueabi If you are using an ARM platform running Ubuntu 10.10 or higher, you could also use the native GCC compiler. sudo apt-get install […]

Cross compiling Berkeley DB for ARM and MIPS

Following my blog entry about Databases for Linux Embedded Systems, here are the instructions to cross-compile Oracle Berkeley DB. First download the source code of the latest version of Berkeley DB (version 11gR2 – 11.2.5.1.25). You’ll need to register on Oracle website first on the download page http://www.oracle.com/technetwork/database/berkeleydb/downloads/index.html to download http://download.oracle.com/otn/berkeley-db/db-5.1.25.tar.gz (with AES encryption) or  http://download.oracle.com/otn/berkeley-db/db-5.1.25.NC.tar.gz (if you don’t need encryption). Extract the source code: tar xzvf ../Downloads/db-5.1.25.tar.gz Configure and build the source code. I’ll use mipsel-linux-gcc, but any other cross-compiler could be used. cd db-5.1.25/build_unix ../dist/configure –host=mipsel-linux CC=mipsel-linux-gcc RANLIB=mipsel-linux-ranlib STRIP=mipsel-linux-strip AR=mipsel-linux-ar –prefix=/home/jaufranc/edev/lib/db-11g make make install The full berkeley DB package is 79MB: jaufranc@CNX-TOWER:~/edev/lib/db-11g$ du –max-depth=1 -h 6.6M    ./lib 308K    ./bin 72M    ./docs 176K    ./include 79M    . However, you won’t need the include and docs directory in your embedded target. So you do not need to copy those. You may or may need the utilities in the bin file. The […]