Archive

Posts Tagged ‘debugging’

Element14 Design Center Helps You find a Development Board and Tools for Your Project

June 27th, 2014 No comments

Element14 has just launched a Design Center, currently in beta version, which let’s you do parametric searches for development kits, debuggers, software tools, by tools vendor, silicon manufacturers, board features, and processor architecture / type. So for example if you want to work on a low power Linux based gateway with Ethernet and Zigbee, you may search for a board with Ethernet and Zigbee, and comes with an ARM Cortex A5 processor.

Element14 Design Center - Zigbee / Ethernet / ARM Cortex A5 Search

Element14 Design Center – Zigbee / Ethernet / ARM Cortex A5 Search

In this example, the website returned four SAMA5D3x evaluation kits from Atmel which support Ethernet, as well as Zigbee via an external module. Then if you want to find which tools are available from Atmel, you can select “Emulation and Debugging”, “IDE & Compiler”, and “Operating Systems & Stacks”, as well as “Atmel” and “ARM” core architecture which will return Atmel Studio 6, and a JTAG emulator. It’s not quite perfect, as the only features you can search for right now are: 802.15.4, Bluetooth, Ethernet, HDMI, LCD, RJ-45, RS232, USB and Zigbee. It won’t let you search for things like memory and storage capacity, the presence and minimum number of interfaces such as GPIO, SPI, I2C, CAN,  etc…, as is often seen for parametric searches for MCUs. I’m not quite sure the parametric search has to be that fine for development boards though, but more options would certainly be welcomed. Nevertheless, Element14 Design Center may be a starting point to find the development board you need for a given application.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Embedded Linux Conference 2014 Schedule

April 19th, 2014 1 comment

The Tenth Embedded Linux Conference (ELC 2014) will take place on April 29 – May 1, 2014 at the San Jose Marriott in San Jose, California. The event will feature 90+ sessions on embedded Linux, Android and IoT with over 450 attendees expected to attend. It will also be co-located with Android Builders Summit and the AllSeen Alliance Hackfest. Even if you can’t attend it’s still interesting to see what will be discussed at the event to get a grasp of on-going developments, learn a few things about different optimization techniques, and so on. So I’ve gone through the sessions’ description, and I’ve designed my own virtual schedule with sessions that could be of interest.

Embedded_Linux_Conference_2014April 29

Linux has taken the embedded world by storm.  Billions (with a ‘B’) of devices have now shipped with a Linux kernel, and it seems unstoppable.  But will the next 10 billion devices ship with Linux or with something else?  How can Linux be specialized for deeply embedded projects, as characterized by the Internet of Things, while still maintaining the network effects of community cooperation and sharing?  Is this possible or even desirable?  The startling truth might be revealed at this keynote. Or, Tim might just rant a bit about device-tree… who knows?

The past year has seen a remarkable growth of interest in super-low-power and super-low-form-factor computing, in the form of ‘wearables’, the ‘Internet of Things’, and the release of exciting new hardware such as Intel’s Quark and Edison SoCs. Taking advantage of this super-small hardware also implies the need for super-small operating systems and applications to match. This talk will describe a super-small-footprint Linux distribution called ‘microYocto”. The main focus will be the kernel and how we achieved what we think is close to the minimal possible kernel footprint, both in terms of static text size and dynamic memory usage. We’ll talk about the tools and methodologies we used and developed to analyze the problem, such as tracing and machine simulation, and will describe the various technologies developed and applied to achieving this minimalistic system.

Many community resources exist about boot time reduction. However, few of them are up to date and share the exact time savings that can be achieved on recent systems. This talk will detail today’s most efficient techniques to reduce boot time. For each of them, figures will be shared, obtained from recent boot time reduction projects and from the preparation of Free Electrons new workshop on this topic. If you attend this talk, you will know which optimization techniques are worth using first, and will save time not exploring techniques that won’t make a significant difference in your project. Don’t tell your boss, and this will leave your more time to contribute to community projects!

In this talk, Chris will describe the internal workings of the Android graphics stack from the Application layer down through the stack to pixels on the screen. It is a fairly complex journey, taking in two different 2D rendering engines, applications calling OpenGL ES directory, passing buffers on to the system compositor, Surface Flinger, and then down to the display controller or frame buffer. All this requires careful synchronisation so that what appears on the screen is smooth, without jitter, and makes efficient use of memory, CPU, GPU and power resources.

Linux-based platforms such as the Beaglebone and Raspberry Pi are inexpensive powerhouses. But, beyond being cool on their own, what else can you do with them? This presentation will step you through the process of building a Wi-Fi enabled, Linux-based robot that you can build without breaking the bank and without special knowledge of robotics and robotic controls.

Since last year, we have been working on supporting the SoCs from Allwinner, a Chinese SoC vendor, in the mainline kernel. These SoCs are cheap, wide-spread, backed by a strong community and, until last year, only supported by an out-of-tree kernel. Through this talk, we would like to share the status of this effort: where we were a year ago, what solutions were in place, where we are currently, and what to expect from the future. We will also focus on the community around these SoCs, the work that is done there, etc.

April 30

GCC is an optimizing compiler, currently most common compiler to build software for Embedded Linux systems like Android, Yocto Project etc. This tutorial will introduce specific optimizations and features of GCC which are less known but could benefit optimizing software especially for embedded use while highlight the effect of common optimizations. While it will focus on squeezing most out of GCC, it will also cover some of “pessimizations” to avoid and will tip the developer to write code thats more conducive (compiler friendly) for general optimizations. They will also get some contrast with other compilers when needed.

Throughout the last two years, a team of engineers at Free Electrons has been involved in mainlining the support for several ARM processors from Marvell, converting the not-so-great vendor-specific BSP into mainline quality code progressively merged upstream. This effort of several hundreds working days, has led to the integration of hundreds of patches in the kernel. Through this talk we would like to share some lessons learned regarding this mainlining effort, which could be useful to other engineers involved in ARM SoC support, as well as detail the steps we have gone through, the mistakes we’ve made and how we solved them, and generally our experience on this project.

This BoFs is intended to bring together anybody that tests the Linux kernel to share best practices and brainstorm new ideas. Topics may range from .config testing, module/built-in drivers, test methods and tools for testing specific driver subsystems, VM/scheduler/interrupt stress testing, and beyond. The discussion is targeted at Linux kernel developers, test engineers, and embedded Linux product teams/consultants with the common task of testing Linux kernel integrity. Attendees should have a firm grasp of building and deploying the kernel as well as kernel/userspace kernel APIs.

Several vendors are getting ready to start enabling the upstream kernel for their upcoming 64-bit ARM platforms, and it opens up a few questions on things that are not quite sorted out yet, especially on the embedded and mobile platforms. This is an open discussion on the issues these maintainers are anticipating, and what we should do about it.

Communication between components is necessary for effective power management in mobile devices. The System Power Management Interface, also known as SPMI, is a standardized bus interface intended to provide power-management related connectivity between components. Josh Cartwright will provide a high-level architectural overview of SPMI and discuss how to leverage the Linux Kernel software interfaces (expected to land in 3.15) to communicate with devices on the bus.

May 1

While Android has been created for mobile devices — phones first and now tablets — it can, nonetheless, be used as the basis of any touch-screen system, whether it be mobile or not. Essentially, Android is a custom-built embedded Linux distribution with a very elaborate and rich set of user-space abstractions, APIs, services and virtual machine. This one-day workshop is aimed at embedded developers wanting to build embedded systems using Android. It will cover Android from the ground up, enabling developers to get a firm hold on the components that make up Android and how they need to be adapted to an embedded system. Specifically, we will start by introducing Android’s overall architecture and then proceed to peel Android’s layer one-by-one.

This half-day workshop is aimed at embedded developers that want to use Android in their embedded designs.

The MIPS processor cores are widely used in embedded platforms, including TVs and set-top-boxes. In most of those platforms dedicated graphics hardware exists but it may be specialized for its use in audio and video signal processing: rendering of web content has to be done in software. We implemented optimizations for the software-based QPainter renderer to improve the performance of Qt —including QtWebKit— in MIPS processors. The target platform was the modern 74kf cores, which include new SIMD instructions suitable for graphics operations (alpha blending, color space conversion and JPEG image decoding), and also for non-graphics operations: string functions were also improved. Our figures estimate that web pages are rendered up to 30% faster using hand-coded assembler fast-paths for those operations.

Software Freedom Conservancy announced last year a renewed effort for cross-project collaborative GPL compliance efforts, including copyright holders from BusyBox, Linux, and Samba. Conservancy uses an internal system of communication and collaboration to take input from stakeholders to discuss and engage in compliance activity to ensure compliance with the GPL throughout the technology industry and particularly in the embedded device market. Compliance with the GPL is the responsibility of copyright holders of the software, and Conservancy helps those copyright holders pursue the work, so those developers can focus on coding. In this talk, the President of Conservancy will discuss how Conservancy handles compliance matters, what matters it focuses on, and how the copyright holders that work with Conservancy engage in a collaborative effort to ensure compliance with the GPL.

Ubuntu Touch is the new Ubuntu-based OS for phones and tablets. Announced at the beginning of 2013, it gives a new UI and design proposal, but also a new way of developing and supporting many different devices, using either the Android HAL or the traditional Linux stack to build the platform. This talk will go over the Ubuntu Touch internals, presenting the technical decisions and also the work that was done to bootstrap this new platform (camera, radio, video decode, GLES and etc) and the future challenges to support a single stack across mobile and the traditional desktop.

These are just a few sessions out of the 90+ sessions available at the Embedded Linux Conference and Android Builder Summit. You can check the full schedule to find out which sessions are most interesting to you.

If you’d like to attend the event, you’ll need to register online.

The attendance fees have significantly gone up compared to last year, at least for hobbyists, but include entrance for both ELC and Android Builder Summit:

  • Professional Registration Fee - US$600 (Was US$500 until March 29, 2014)
  • Hobbyist Fee – US$150
  • Student FeeUS$150

After the events, many videos are usually uploaded by the Linux Foundation, and you should be able to find the list of talks with links to presentation slides oneLinux.org.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Linaro 14.01 Release with Linux Kernel 3.13 and Android 4.4.2

January 31st, 2014 No comments

The first release of the year, Linaro 14.01, is now out with Linux Kernel 3.13 (baseline), Linux Kernel 3.10.28 (LSK), Android 4.4.2, and Ubuntu Linaro 14.01.

The most important part of this release is support for Arndale Octa, which makes big.LITTLE processing code available to a low cost platform. Android 4.4.x is now on par with Android 4.3 in terms of support. Linaro has also decided to provide quarterly stable released with GCC, and Linaro GCC 4.7-2014.01 is the first quarterly stable release with the next one planned with Linaro 14.04.

Here are the highlights of this release:

  • Linaro Stable Kernel (LSK) 3.10.28-2014.01 with latest version of GTS patch set for big.LITTLE, and Android support
  • Linux Linaro 3.13-2014.01:
    • gator version 5.17
    • updated linaro-android-3.13-merge topic by John Stultz, the “Revert “PM / Sleep: Require CAP_BLOCK_SUSPEND to use wake_lock/wake_unlock” patch included
    • uprobes v4
    • updated big-LITTLE-pmu topic from ARM Landing Team (LT)
    • updated basic Capri board support from Broadcom LT (clock framework support added)
    • Arndale Octa board support added by Samsung LT
    • updated Versatile Express patches from ARM LT
    • updated big endian topic
    • vexpress64 support (FVP Base and Foundation models)
    • config fragments changes: BeagleBone / BeagleBoneBlack config fragment created, more config options enabled for libvirt support, virtio mmio support enabled in vexpress.conf.
  • Linaro Toolchain Binaries 2014.01 including Linaro GCC 4.8-2014.01, with enhanced multilib support.
  • Linaro Android 14.01
    • libjpeg-turbo refreshed on Android builds from the Graphics Working Group
    • Kernel CI loop for Android was streamlined for stability and faster builds
    • built with Linaro GCC 4.8-2014.01
  • Linaro OpenEmbedded 2014.01
    • updated LTP to 20140115 releases
    • updated apica-tools to 20131218 release
    • integrated OpenDataPlane
    • merged external toolchain fixes contributed from Freescale
    • integrated Linaro GCC 4.8-2014.01
    • allowed native builds for OpenJDK 8
    • upstreaming: updated acpica-tools to the latest release, updated LTP (Linux Test Project) to the latest release, added Aarch64 support to GRUB2, added Aarch64 support to klibc
  • Linaro Ubuntu 14.01
    • Added packages to support Arndale Octa: arndale-octa-pre-boot, linux-linaro-arndale-octa and u-boot-linaro-arndale-octa
    • Added idlestat package
    • Packages updated: edk2-uefi, flash-kernel, gator and sbsigntool
  • Linux Linaro LNG 3.10.25-2014.01 – PREEMPT_RT patchset rt23, Arndale support
  • Linux Linaro LT HiSilicon 3.13-rc2-2014.01
    • Supports both K3V2 board and S40V200 FPGA board.
    • K3V2 support includes: basic soc, smp, hotplug, clock, i2c, touch, regulator, mmc. S40V200 support includes basic soc, smp, hotplug, clock
    • Integrated into the linux-linaro tree, and HiSilicon BSP code is now available in linux-linaro monthly releases
  • Linaro UEFI 2014.01
    • Rebased to Tianocore EDK2 SVN revision 14795
    • the latest version of the EDK2 code contains support for aarch64 plaforms upstream.
  • Linaro Image Tools 2014.01 – Arndale Octa support
  • Linaro Test Suites 2014.01
    • Android: Added Ethernet Test for Linaro Android
    • Ubuntu: Added WiFi Test for Linux Linaro Ubuntu
    • ltp: Improve parser & add tests
    • netperf: Add parameters and default to eth0
    • acpica-tools: Add acpica-tools test defination
    • ubuntu: Added acpi-smoke-test
    • acpica asl: Update source repository link
    • ltp-realtime: Parse ltp-realtime results for LAVA measurements
    • ubuntu: Added SD MMC Test for Linaro Ubuntu
    • ubuntu: Added Gator Data Streaming Test for Linaro Ubuntu
    • android: Added SD MMC Test for Linaro Android
    • Fixed parse pattern in min_max_avg_parse.py
    • mauve: move the tests instead of making a copy
    • ubuntu: remove unnecessary clone operation
    • oe: remove unnecessary clone operation
    • hackbench: Running hackbench properly with timeout and removed background dd
    • ubuntu/ltp-network: add ltp network test
    • netperf: set the result to skip, remove Sz in test name
  • Linaro idlestat – Tool which can show how long a CPU or cluster enters idle state with information gathered using traces from trace-cmd or ftrace tools
  • Linaro GCC 4.8-2014.01 with enhanced multilib support
  • Linaro GCC 4.7-2014.01

Visit https://wiki.linaro.org/Cycles/1401/Release for a list of known issues, and further release details about the LEB and community builds, Android, Kernel, Graphics, Multimedia, Landing Team, Platform, Power management and Toolchain (GCC / Qemu) components.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Cheap Accessories for Raspberry Pi – Camera, microSD adapter, Debug Board, Heatsink and Enclosure

January 26th, 2014 14 comments

The Raspberry Pi just a great low cost ARM Linux board that costs $25 (Model A) to $35 (Model B), but once you start to add accessories the total cost of ownership may creep up quickly, and in some cases accessories may be more expensive than the board itself. I’ll list some alternative accessories that can be purchased online for a fraction of the cost of the more famous one.

$18 Raspberry Pi Camera

Raspberry_Pi_Camera_CloneThe official Raspberry Pi camera costs $25 + shipping and tax, but you can get a similar 5MP CSI camera for just $18.13 including shipping on Banggood.com. This camera clone should be software compatible with the original one according to the listed features:

  • Plugs directly into the CSI connector on the Raspberry Pi
  • 5MP resolution image (2592 x 1944), or 1080p HD video recording at 30fps
  • 5MP (2592 x 1944 pixels) Omnivision 5647 sensor in a fixed focus module
  • 15 pin Ribbon cable to the dedicated 15-pin MIPI camera serial interface (CSI) included
  • The camera is supported in the latest version of Raspbian
  • Dimensions – 25 x 24 x 9mm

It appears to have similar specifications as the original camera up to to sensor, so I’d guess the image quality should just be the same, but this would probably have to be tested and and compared it to the original R-Pi camera. The Raspberry Pi foundation is most likely getting some funds from your purchase via RS components or Farnell as well, which is not the case with the clone.

$1.62 microSD card adapter

The Raspberry Pi comes with a full sized SD card slot, and when you insert the SD card in the board over half of the card is outside the board, which is not always looking nice, and in some applications may be an issue due to lack of space. To solve this problem, there are a few microSD card adapters from Adafruit ($6) and Pimoroni (about $10) among others, but you could save quite a lot by purchasing a microSD card adapter with the same functionality for $1.62 including shipping from BuyinCoins.

$1.45 USB To TTL debug board

usb_tll_adapterIf you want to see what’s going on at boot time in the bootloader and the linux kernel, you need to connect a USB to TTL to the UART pins of your Raspberry Pi in order to get the boot log in putty, minicom (Linux) or hyperterminal (Windows). Adafruit sells one for $9.95, but you can also buy a cheaper one which should work just as well for $2.19, and yes, it includes shipping, from BuyinCoins. [Update: the previous product uses +5V, so using another one supporting +3.3V won't damaged the R-Pi, and is even cheaper: $1.45]

$1.26 Heat sink set for the Raspberry Pi

The Raspberry Pi should not need heat sinks, but if your board is an environment where proper ventilation is not possible, and/or you overclock your Raspberry Pi to 1GHz or more, hits may be useful, a heat sink kits with 3 heat sinks for Broadcom BCM2835 SoC, LAN9512 Ethernet chip, and the voltage regulator are sold, and made of different materials such as ABS, aluminum and copper. Banggood is probably selling one of the cheapest aluminum kit for $1.26 including shipping. If you want a copper heatsink just for the SoC, there’s one for $1.19.

$3.52 Raspberry Pi Case

Pimoroni Pibow case is one of the most commonly used case for the Raspberry Pi, and it looks very nice, but costs a little over $20. There are many cases for a cheaper price, but this transparent Raspberry Pi case may be one of the cheapest ones for $3.52 including shipping.

Do you know any other cheap accessories for the Raspberry Pi? If so, let us know in the comments.

Thanks to onebir for the links.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Raxda Rock Development Board Unboxing, Quick Start Guide, and Benchmarks

January 13th, 2014 9 comments

Radxa Rock is an Android & Linux development board based on Rockchip RK3188 with 2GB RAM, 8GB NAND Flash, several I/Os that’s been available in beta version to a small number of developers in September 2013, with general availability starting at the very end of December 2013. Radxa team has sent me a board for me to try out. I’ll start with some unboxing pictures, write a Quick Start Guide for the first boot with Android 4.2.2, and run some benchmarks on the board. In another post, I’ll try some of the instructions to build Android and Ubuntu for the platform.

Radxa Rock Unboxing Pictures & Video

I’ve received the board in the following package via Fedex.

Radxa_Rock_PackageBeside the board, we’ve got a Wi-Fi antenna, a USB power cable, and a plastic casing.

Radxa Rock Package Content

Radxa Rock Package Content

Checkout Radxa Rock unboxing video below, if you want to find out exactly what’s you get when you receive the board.

Let’s have a closer look at the board.

Top of Radxa Rock Board (Click to Enlarge)

Top of Radxa Rock Board (Click to Enlarge)

The top of the board gets most of the interesting bits. From the bottom right, clockwise: power button, microphone, micro USB OTG port, IR receiver, UART header for serial console, micro SD card, 2x USB 2.0 ports, recovery button, 40 pin “GPIO” header, battery slot, Wi-Fi antenna connector, 10/100M Ethernet port, HDMI output, S/PDIF optical output, AV out, power jack, another 40-pin header, and the reset switch.

Bottom of Radxa Rock Board (Click to Enlarge)

Bottom of Radxa Rock Board (Click to Enlarge)

On the back of the board, we’ve got the Wi-Fi/Bluetooth module (Realtek RTL8723AS), two more RAM chips, as well as the name of all 80 header pins on the silkscreen of the board, which can be convenient.

Radxa Rock Case Assembly

Radxa Rock comes with a plastic case that you have to assemble. It does not look the best, but it’s functional, and both easy to assemble and disassemble. Start by inserting two sides (length) into the base, place the board in the case, add the cover, and finish the assembly by adding the two other sides (width). You’ll also want to add the Wi-Fi antenna, if you plan to use Wi-Fi. At no point you need to force during assembly or disassembly, so it’s unlikely you’ll break the enclosure.

Radxa Rock Enclosure

Radxa Rock Enclosure

The box has been designed so that you can access all ports, including the two 40-pin expansion headers, and the UART header. The two USB ports are a little deep inside though, so I’m not sure if it will work with all USB peripherals, and you’ll have to insert the microSD card before assembly, or using a small tool, e.g. toothpick, to push the card.

[Update: To see how the casing is assembled as well unboxing and first boot, you can also watch that video]

Quick Start Guide for Radxa Rock

I’ve connected an HDMI cable to a TV, an Ethernet cable to a hub, a serial debug board for console access, a USB RF dongle for Mele F10 air mouse, and I used Tronsmart T428 (5V/2A) power adapter for power.

Radxa_Board_ConnectionThe power starts immediately, i.e. there’s no need to press the power button, which is only used to turn off the board, and during boot you’ll see 4 Linux penguins (Tux), an animated “radxa” logo, and after just over 30 seconds you’ll get to the Android Home screen. I’ve tried to take a few screenshots by installing trial versions of apps such as Screenshot IT and Screenshot UX, but the board would just lose display output while taking screenshots, and I’d just see “No signal” message from my TV, requiring a press of the reset button.

Radxa Rock Android Home Screen (Click to Enlarge)

Radxa Rock Android Home Screen (Click to Enlarge)

I could see the kernel messages from the serial console, but for some reasons I was not able to input anything in minicom. This is probably not an issue with Radxa board, as I’ve add this issue randomly with other devices too.

Here’s the boot log for reference:

DDR Version 1.04 20130517
In
DDR3
300MHz
Bus Width=32 Col=10 Bank=8 Row=15 CS=2 Die Bus-Width=16 Size=2048MB
Memory OK
OUT
BUILD=====5
F:32 1061 2 0 40
GetRemapTbl flag = 0
OK! 51786
unsigned!
SecureBootEn = 0 0
Boot ver: 2013-06-20#1.24
start_linux=====63508
2292032 Starting kernel…@0×60408000[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.0.36+ (ty@fae) (gcc version 4.6.x-google 20120103
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c5387d
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: RK30board
[    0.000000] memory reserve: Memory(base:0x8f000000 size:120M) reserved for <>
[    0.000000] memory reserve: Memory(base:0x8e500000 size:11M) reserved for <f>
[    0.000000] memory reserve: Memory(base:0x8dd00000 size:8M) reserved for <ca>
[    0.000000] memory reserve: Total reserved 139M
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] CPU SRAM: copied sram code from c0b55000 to fef00100 – fef02198
[    0.000000] CPU SRAM: copied sram data from c0b57098 to fef02198 – fef0291c
[    0.000000] sram_log:      4q ?&     :     4q ?)     !?, # 0q    *!  ! 3q
[    0.000000] CLKDATA_MSG: pll_flag = 0×00
[    0.000000] CLKDATA_ERR:     can’t get a available nume and deno
[    0.000000] CLKDATA_ERR:     clk_frac_div can’t get rate=48000000,uart0_fracv
[    0.000000] L310 cache controller enabled
[    0.000000] l2x0: 16 ways, CACHE_ID 0x4100c0c8, AUX_CTRL 0×76050001, Cache sB
[    0.000000] DDR DEBUG: version 1.00 20130712
[    0.000000] DDR DEBUG: DDR3 Device
[    0.000000] DDR DEBUG: Bus Width=32 Col=10 Bank=8 Row=15 CS=2 Total CapabiliB
[    0.000000] DDR DEBUG: init success!!! freq=300MHz
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×23, DGSL=10
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×24, DGSL=10
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×24, DGSL=10
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×24, DGSL=00
[    0.000000] DDR DEBUG: ZERR=0, ZDONE=0, ZPD=0×0, ZPU=0×0, OPD=0×0, OPU=0×0
[    0.000000] DDR DEBUG: DRV Pull-Up=0xb, DRV Pull-Dwn=0xb
[    0.000000] DDR DEBUG: ODT Pull-Up=0×2, ODT Pull-Dwn=0×2
[    0.000000] PERCPU: Embedded 7 pages/cpu @c313f000 s6976 r8192 d13504 u32768
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pa8
[    0.000000] Kernel command line: console=ttyFIQ0 console=tty0 androidboot.co2
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 733MB 1176MB = 1909MB total
[    0.000000] Memory: 1917812k/1917812k available, 179340k reserved, 1204224K m
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 – 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 – 0xfffe0000   ( 896 kB)
[    0.000000]     DMA     : 0xff600000 – 0xffe00000   (   8 MB)
[    0.000000]     vmalloc : 0xf7000000 – 0xfe800000   ( 120 MB)
[    0.000000]     lowmem  : 0xc0000000 – 0xf6800000   ( 872 MB)
[    0.000000]     pkmap   : 0xbfe00000 – 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 – 0xbfe00000   (  14 MB)
[    0.000000]       .init : 0xc0408000 – 0xc0434000   ( 176 kB)
[    0.000000]       .text : 0xc0434000 – 0xc0ae17f4   (6838 kB)
[    0.000000]       .data : 0xc0ae2000 – 0xc0b546a8   ( 458 kB)
[    0.000000]        .bss : 0xc0b58024 – 0xc15fdc58   (10904 kB)
[    0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=4, 1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:352
[    0.000000] rk30_gpio_init: 128 gpio irqs in 4 banks
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 1789s
[    0.000000] rk_timer: version 1.2
[    0.000000] Console: colour dummy device 80×30
[    0.000000] console [tty0] enabled, bootconsole disabled
<hit enter to activate fiq debugger>
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.0.36+ (ty@fae) (gcc version 4.6.x-google 20120103
[    0.000000] CPU: ARMv7 Processor [413fc090] revision 0 (ARMv7), cr=10c5387d
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT aliasing instruction cache
[    0.000000] Machine: RK30board
[    0.000000] memory reserve: Memory(base:0x8f000000 size:120M) reserved for <>
[    0.000000] memory reserve: Memory(base:0x8e500000 size:11M) reserved for <f>
[    0.000000] memory reserve: Memory(base:0x8dd00000 size:8M) reserved for <ca>
[    0.000000] memory reserve: Total reserved 139M
[    0.000000] Memory policy: ECC disabled, Data cache writeback
[    0.000000] bootconsole [earlycon0] enabled
[    0.000000] CPU SRAM: copied sram code from c0b55000 to fef00100 – fef02198
[    0.000000] CPU SRAM: copied sram data from c0b57098 to fef02198 – fef0291c
[    0.000000] sram_log:      4q ?&     :     4q ?)     !?, # 0q    *!  ! 3q
[    0.000000] CLKDATA_MSG: pll_flag = 0×00
[    0.000000] CLKDATA_ERR:     can’t get a available nume and deno
[    0.000000] CLKDATA_ERR:     clk_frac_div can’t get rate=48000000,uart0_fracv
[    0.000000] L310 cache controller enabled
[    0.000000] l2x0: 16 ways, CACHE_ID 0x4100c0c8, AUX_CTRL 0×76050001, Cache sB
[    0.000000] DDR DEBUG: version 1.00 20130712
[    0.000000] DDR DEBUG: DDR3 Device
[    0.000000] DDR DEBUG: Bus Width=32 Col=10 Bank=8 Row=15 CS=2 Total CapabiliB
[    0.000000] DDR DEBUG: init success!!! freq=300MHz
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×23, DGSL=10
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×24, DGSL=10
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×24, DGSL=10
[    0.000000] DDR DEBUG: DTONE=0×3, DTERR=0×0, DTIERR=0×0, DTPASS=0×24, DGSL=00
[    0.000000] DDR DEBUG: ZERR=0, ZDONE=0, ZPD=0×0, ZPU=0×0, OPD=0×0, OPU=0×0
[    0.000000] DDR DEBUG: DRV Pull-Up=0xb, DRV Pull-Dwn=0xb
[    0.000000] DDR DEBUG: ODT Pull-Up=0×2, ODT Pull-Dwn=0×2
[    0.000000] PERCPU: Embedded 7 pages/cpu @c313f000 s6976 r8192 d13504 u32768
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pa8
[    0.000000] Kernel command line: console=ttyFIQ0 console=tty0 androidboot.co2
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)
[    0.000000] Inode-cache hash table entries: 65536 (order: 6, 262144 bytes)
[    0.000000] Memory: 733MB 1176MB = 1909MB total
[    0.000000] Memory: 1917812k/1917812k available, 179340k reserved, 1204224K m
[    0.000000] Virtual kernel memory layout:
[    0.000000]     vector  : 0xffff0000 – 0xffff1000   (   4 kB)
[    0.000000]     fixmap  : 0xfff00000 – 0xfffe0000   ( 896 kB)
[    0.000000]     DMA     : 0xff600000 – 0xffe00000   (   8 MB)
[    0.000000]     vmalloc : 0xf7000000 – 0xfe800000   ( 120 MB)
[    0.000000]     lowmem  : 0xc0000000 – 0xf6800000   ( 872 MB)
[    0.000000]     pkmap   : 0xbfe00000 – 0xc0000000   (   2 MB)
[    0.000000]     modules : 0xbf000000 – 0xbfe00000   (  14 MB)
[    0.000000]       .init : 0xc0408000 – 0xc0434000   ( 176 kB)
[    0.000000]       .text : 0xc0434000 – 0xc0ae17f4   (6838 kB)
[    0.000000]       .data : 0xc0ae2000 – 0xc0b546a8   ( 458 kB)
[    0.000000]        .bss : 0xc0b58024 – 0xc15fdc58   (10904 kB)
[    0.000000] SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=4, 1
[    0.000000] Preemptible hierarchical RCU implementation.
[    0.000000] NR_IRQS:352
[    0.000000] rk30_gpio_init: 128 gpio irqs in 4 banks
[    0.000000] sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 1789s
[    0.000000] rk_timer: version 1.2
[    0.000000] Console: colour dummy device 80×30
[    0.000000] console [tty0] enabled, bootconsole disabled
[    0.014180] Calibrating delay loop (skipped) preset value.. 1631.46 BogoMIPS)
[    0.014209] pid_max: default: 32768 minimum: 301
[    0.014399] Mount-cache hash table entries: 512
[    0.014909] Initializing cgroup subsys debug
[    0.014931] Initializing cgroup subsys cpuacct
[    0.014970] Initializing cgroup subsys freezer
[    0.015003] CPU: Testing write buffer coherency: ok
[    0.095826] CPU1: Booted secondary processor
[    0.135818] CPU2: Booted secondary processor
[    0.175818] CPU3: Booted secondary processor
[    0.175847] Brought up 4 CPUs
[    0.175884] SMP: Total of 4 processors activated (6525.87 BogoMIPS).
[    0.176217] devtmpfs: initialized
[    0.182178] NET: Registered protocol family 16
[    0.182279] last_log: 0xed900000 map to 0xf7004000 and copy to 0xc0b5c1a0 (v)
[    0.196766] DVFS MSG:        AVS Value(index=0): 114 114 114 114 114 114 114
[    0.315475] lcdc0 is used as external display device contoller!
[    0.315518] lcdc1 is used as primary display device controller!
[    0.415786] rk29sdk_wifi_bt_gpio_control_init: init finished
[    0.419594] console [ttyFIQ0] enabled
[    0.419741] Registered FIQ tty driver ed83dcc0
[    0.926124] bio: create slab <bio-0> at 0
[    0.930527] SCSI subsystem initialized
[    0.930738] usbcore: registered new interface driver usbfs
[    0.930864] usbcore: registered new interface driver hub
[    0.945115] usbcore: registered new device driver usb
[    0.945385] rk30_i2c rk30_i2c.0: i2c-0: RK30 I2C adapter
[    0.945651] rk30_i2c rk30_i2c.1: i2c-1: RK30 I2C adapter
[    0.945846] rk30_i2c rk30_i2c.2: i2c-2: RK30 I2C adapter
[    0.946007] rk30_i2c rk30_i2c.3: i2c-3: RK30 I2C adapter
[    0.946309] rk30_i2c rk30_i2c.4: i2c-4: RK30 I2C adapter
[    0.976723] rk30-adc rk30-adc: rk30 adc: driver initialized
[    0.977019] Advanced Linux Sound Architecture Driver Version 1.0.24.
[    0.977470] Bluetooth: Core ver 2.16
[    0.977551] NET: Registered protocol family 31
[    0.977603] Bluetooth: HCI device and connection manager initialized
[    0.977672] Bluetooth: HCI socket layer initialized
[    0.977724] Bluetooth: L2CAP socket layer initialized
[    0.977790] Bluetooth: SCO socket layer initialized
[    0.978862] rk fb probe ok!
[    0.983665] act8846_set_init,line=17
[    0.983713] act8846_set_init:g_pmic_type=3
[    0.985507] act8846_set_init  act_dcdc1 =1200000mV end
[    0.987393] act8846_set_init  vdd_core =1000000mV end
[    0.989276] act8846_set_init  vdd_cpu =1000000mV end
[    0.991157] act8846_set_init  act_dcdc4 =3300000mV end
[    0.992410] act8846_set_init  act_ldo1 =1000000mV end
[    0.994191] act8846_set_init  act_ldo2 =1200000mV end
[    0.995973] act8846_set_init  act_ldo3 =1800000mV end
[    0.997757] act8846_set_init  act_ldo4 =3300000mV end
[    0.999539] act8846_set_init  act_ldo5 =3300000mV end
[    1.001319] act8846_set_init  act_ldo6 =1800000mV end
[    1.002470] act8846_set_init  act_ldo7 =1800000mV end
[    1.004252] act8846_set_init  act_ldo8 =2800000mV end
[    1.004314] act8846_set_init,line=78 END
[    1.004392] i2c-core: driver [act8846] using legacy suspend method
[    1.004457] i2c-core: driver [act8846] using legacy resume method
[    1.004555] rk1000_control_probe
[    1.029546] rk1000_control_probe ok
[    1.029641] Switching to clocksource rk_timer
[    1.035218] Switched to NOHz mode on CPU #0
[    1.035856] Switched to NOHz mode on CPU #2
[    1.035870] Switched to NOHz mode on CPU #3
[    1.035883] Switched to NOHz mode on CPU #1
[    1.036495] lcdc1:reg_phy_base = 0x1010e000,reg_vir_base:0xf709c000
[    1.036607] fb0:win0
[    1.036612] fb1:win1
[    1.036617] fb2:win2
[    1.036733] rk3188 lcdc1 clk enable…
[    1.036795] rk3188 lcdc1 clk disable…
[    1.064043] fb0:phy:8e500000>>vir:f8000000>>len:0xb00000
[    1.064314] rk_fb_register>>>>>fb0
[    1.064640] rk_fb_register>>>>>fb1
[    1.065084] rk3188 lcdc1 probe ok!
[    1.065152] lcdc0:reg_phy_base = 0x1010c000,reg_vir_base:0xf70a8000
[    1.065238] fb0:win0
[    1.065243] fb1:win1
[    1.065247] fb2:win2
[    1.065360] rk3188 lcdc0 clk enable…
[    1.065413] rk3188 lcdc0 clk disable…
[    1.065460] fb2:phy:8e500000>>vir:f8000000>>len:0xb00000
[    1.065681] rk_fb_register>>>>>fb2
[    1.065954] rk_fb_register>>>>>fb3
[    1.065999] rk3188 lcdc0 probe ok!
[    1.127986] IT66121 probe success.
[    1.137628] cfg80211: Calling CRDA to update world regulatory domain
[    1.213553] NET: Registered protocol family 2
[    1.213716] IP route cache hash table entries: 32768 (order: 5, 131072 bytes)
[    1.214161] TCP established hash table entries: 131072 (order: 8, 1048576 by)
[    1.216127] TCP bind hash table entries: 65536 (order: 7, 786432 bytes)
[    1.217323] TCP: Hash tables configured (established 131072 bind 65536)
[    1.217393] TCP reno registered
[    1.217436] UDP hash table entries: 512 (order: 2, 16384 bytes)
[    1.217523] UDP-Lite hash table entries: 512 (order: 2, 16384 bytes)
[    1.217892] NET: Registered protocol family 1
[    1.218165] RK29 Backlight Driver Initialized.
[    1.218392] Unpacking initramfs…
[    1.276438] [EDID] check header error
[    1.276503] (NULL device *): [HDMI] parse edid base block error
[    1.276585] (NULL device *): warning: EDID error, assume sink as HDMI !!!!
[    1.276652] (NULL device *): warning: no CEA video mode parsed from EDID !!!*
[    1.276765] Support video mode:
[    1.276801]  1920x1080p@60Hz.
[    1.276835]  1920x1080p@50Hz.
[    1.276868]  1280x720p@60Hz.
[    1.276900]  1280x720p@50Hz.
[    1.276931]  720x576p@50Hz.
[    1.276962]  720x480p@60Hz.
[    1.276993] ******** Show Sink Info ********
[    1.277061] rk3188 lcdc1 clk enable…
[    1.277114] lcdc1: dclk:74250000>>fps:60
[    1.277159] rk30-lcdc rk30-lcdc.1: rk3188_load_screen for lcdc1 ok!
[    1.277231] lcdc1: dclk:74250000>>fps:60
[    1.277273] rk30-lcdc rk30-lcdc.1: rk3188_load_screen for lcdc1 ok!
[    1.277341] lcdc1 wakeup from standby!
[    1.277383] lcdc1 win0 open,atv layer:1
[    1.282616] Freeing initrd memory: 1216K
[    1.282733] PMU: registered new PMU device of type 0
[    1.282912] DVFS MSG: core: dvfs_adjust_table_lmtvolt get leakage_level = 3
[    1.282989] DVFS MSG: aclk_gpu: dvfs_adjust_table_lmtvolt get leakage_level 3
[    1.382349] rk3188 cpufreq version 2.1, suspend freq 816 MHz
[    1.382969] Loaded driver for PL330 DMAC-1 rk29-pl330
[    1.383031]  DBUFF-32x8bytes Num_Chans-6 Num_Peri-12 Num_Events-12
[    1.383252] Loaded driver for PL330 DMAC-2 rk29-pl330
[    1.383315]  DBUFF-64x8bytes Num_Chans-7 Num_Peri-20 Num_Events-14
[    1.410619] highmem bounce pool size: 64 pages
[    1.410832] ashmem: initialized
[    1.420066] fuse init (API version 7.16)
[    1.424803] Block layer SCSI generic (bsg) driver version 0.4 loaded (major )
[    1.424886] io scheduler noop registered
[    1.424933] io scheduler deadline registered
[    1.425015] io scheduler cfq registered (default)
[    1.445254] rga: Driver loaded succesfully
[    1.445378] rk3188 lcdc0 clk enable…
[    1.445428] lcdc0: dclk:74250000>>fps:60
[    1.445469] rk30-lcdc rk30-lcdc.0: rk3188_load_screen for lcdc0 ok!
[    1.445958] lcdc0: dclk:27000000>>fps:60
[    1.448266] rk30-lcdc rk30-lcdc.0: rk3188_load_screen for lcdc0 ok!
[    1.448333] lcdc0: dclk:27000000>>fps:60
[    1.450644] rk30-lcdc rk30-lcdc.0: rk3188_load_screen for lcdc0 ok!
[    1.450707] lcdc0 wakeup from standby!
[    1.450746] lcdc0 win0 open,atv layer:1
[    1.450794] rk1000_tv ver 2.0 probe ok
[    1.451033] rk_serial.c v1.3 2012-12-14
[    1.451316] rk_serial rk_serial.0: dma_rx_buffer 0xffdfc000
[    1.451373] rk_serial rk_serial.0: dma_rx_phy 0x8c956000
[    1.451431] rk_serial rk_serial.0: serial_rk_init_dma_rx sucess
[    1.451491] rk_serial.0: ttyS0 at MMIO 0×10124000 (irq = 66) is a rk29_seria0
[    1.629797] rk_serial rk_serial.0: membase 0xf70c0000
[    1.630036] rk_serial.3: ttyS3 at MMIO 0×20068000 (irq = 69) is a rk29_seria3
[    1.789791] rk_serial rk_serial.3: membase 0xf70c8000
[    1.790825] Rockchip ion module(version: 1.0) is successfully loaded
[    1.797301] loop: module loaded
[    1.797447] Android kernel panic handler initialized (bind=kpanic)
[    2.800542] rk29 vmac rk29 vmac.0: ARC VMAC at 0×10204000 irq 51 62:5f:65:2cd
[    2.800639] PPP generic driver version 2.4.2
[    2.800783] PPP Deflate Compression module registered
[    2.800825] PPP BSD Compression module registered
[    2.822530] PPP MPPE Compression module registered
[    2.822581] NET: Registered protocol family 24
[    2.822672] usbcore: registered new interface driver asix
[    2.822744] usbcore: registered new interface driver cdc_ether
[    2.822808] usbcore: registered new interface driver dm9620
[    2.822870] usbcore: registered new interface driver SR9700_android
[    2.822934] usbcore: registered new interface driver net1080
[    2.822997] usbcore: registered new interface driver cdc_subset
[    2.823060] usbcore: registered new interface driver zaurus
[    2.823111] cdc_ncm: 04-Aug-2011
[    2.823155] usbcore: registered new interface driver cdc_ncm
[    2.823199] Rockchip WiFi SYS interface (V1.00) …
[    2.823261] Initializing USB Mass Storage driver…
[    2.823326] usbcore: registered new interface driver usb-storage
[    2.823375] USB Mass Storage support registered.
[    2.823475] usbcore: registered new interface driver usbserial
[    2.823537] USB Serial support registered for generic
[    2.823599] usbcore: registered new interface driver usbserial_generic
[    2.823649] usbserial: USB Serial Driver core
[    2.823698] USB Serial support registered for GSM modem (1-port)
[    2.823769] usbcore: registered new interface driver option
[    2.823812] option: v0.7.2:USB Driver for GSM modems
[    3.035845] DWC_OTG: ^^^^^^^^^^^^^^^^^Device Mfie
] usug0_otg usb20_otg: DWC OTG Controller
[    3.036009] usb20_otg usb20_otg: new USB bus registered, assigned bus number1
[    3.036095] usb20_otg usb20_otg: irq 48, io mem 0×00000000
[    3.036141] DWC_OTG: dwc_otg_hcd_start controller in device mode,everest
[    3.036228] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    3.036285] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber1
[    3.036344] usb usb1: Product: DWC OTG Controller
[    3.036383] usb usb1: Manufacturer: Linux 3.0.36+ dwc_otg_hcd
[    3.036428] usb usb1: SerialNumber: usb20_otg
[    3.036728] hub 1-0:1.0: USB hub found
[    3.036771] hub 1-0:1.0: 1 port detected

Since I needed to access the command line to try to capture the screen, and I could not type into the serial console I used adb instead. In Linux (Ubuntu 13.10) you need to edit two files, and add one line to each:

  • ~/.android/adb_usb.ini – add 0×2207 at the end
  • /etc/udev/rules.d/51-android.rules – add the following line:
    SUBSYSTEM=="usb", ATTR{idVendor}=="2207", MODE="0666", GROUP="plugdev"

Then you can run adb devices to make sure adb finds the board:

adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
5YEA8SL1TF    device

If the adb daemon was already running before you changed the files, you should run adb kill-server first.

Radxa Rock Benchmark

I’ll just run two benchmark: Antutu and Quadrant, to see how fast the current firmware runs on the board.

Radxa_Rock_AntutuThe board gets nearly 18,000 in Antutu 4 which is consistent with other RK3188 devices.

The score in Quadrant (5464) is also fine for a RK3188 based board.

You can find more information about Radxa Rock, and its little brother Radxa Rock Lite, on radxa.com, and if interested, purchase the board for $99 + shipping via Miniand, Seeedstudio or Aliexpress.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Google Announces LG Nexus 5 Smartphone with Android 4.4 KitKat

November 2nd, 2013 No comments

Google has partnered with LG and Nestle to bring to market the latest Nexus 5 smartphone featuring Android 4.4 “Kitkat”, the latest, and brand new, release of Android. Let’s first have a look at the device, and then we’ll go through the new features and improvement brought by Android 4.4.

LG Nexus 5

Google_Nexus_5Nexus 5 has the following technical specifications:

  • SoC – Qualcomm Snapdragon 800 @ 2.26GHz with Adreno 330 GPU @ 450MHz
  • System Memory – 2GB RAM
  • Storage – 16 to 32 GB flash, but no microSD slot
  • Display – 4.95″ touchscreen display with 1920×1080 resolution, Gorilla Glass 3
  • Connectivity – Dual band 802.11a/b/g/n/ac WiFi (2.4G/5G), Bluetooth 4.0, NFC, and GPS
  • Celullar Networks – 2G/3G/4G LTE. GSM, CDMA, WCDMA, and LTE in North America, and GSM, WCDMA, and LTE for the rest of the world.
  • Camera – 8MP rear camera with Optical Image Stabilization (OIS) and 1.3MP front camera
  • Video Output -  HDMI output (via SlimPort)
  • Audio – Built-in speaker, 3.5mm stereo audio connector, dual microphones.
  • USB – microUSB
  • Sensors – GPS, Gyroscope, Accelerometer, Compass, Proximity/Ambient Light, Pressure, Hall (Magnetometer)
  • Misc – Power and volume buttons
  • Battery – 2300 mAh with talk time up to 17 hours, standby time up to 300 hours, internet use time up to 8.5 hours on Wi-Fi, and up to 7 hours on LTE. Supports wireless charging.
  • Dimensions – 69.17×137.84×8.59 mm
  • Weight – 130g

The phone is available in black or white color, and in the US, costs $349 (16GB flash version) or $399 (32GB version) on Google Play. The device can also be purchased in Canada, U.K., Australia, France, Germany, Spain, Italy, Japan and Korea, but residents from other countries will have to wait a little longer.

You can find more information on Google Nexus 5 page.

What’s new in Android 4.4 Kitkat

Android_KitKatAs a side note, If you don’t have the cash to buy the Nexus 5, Google announced upcoming KitKat support for several older devices including Nexus 4, Nexus 7, and Nexus 10, as well as the Samsung Galaxy S4 and HTC One Google Play Edition devices. It may also be possible to get beta Android 4.4 “ROMs” earlier for your device from sites like XDA Developers Forums. The factory image for Nexus 5 is already available here.

Android 4.4 brings several performance optimizations and new features for developers:

  • Memory Optimization and Debugging Tools
    Android 4.4 has been designed to run smoothly on devices with as little as 512 MB RAM. Google has optimized low level software and middleware such as the kernel and Dalvik, but also apps including Chrome, and YouTube.
    procstats tool has been added to monitor memory use over time, with run times and memory footprint for foreground apps and background services (more at the end of the post). The meminfo tool has been enhanced to make it easier to spot memory trends and issues.
  • New NFC Capabilities through Host Card Emulation
    Host Card Emulation (HCE) allows any app on an Android device to emulate an NFC smart card, without needing a provisioned secure element (SE) in the device. The only thing needed is an NFC controller in the device.
  • Printing Framework
    Android apps can now print any type of content over Wi-Fi or cloud-hosted services such as Google Cloud Print. The framework also allows printer manufacturers to develop their own print services that can be distributed via Google Play.
    Android_4.4_Kitkat_Printers
  • Storage access Framework
    This new framework provides a standard UI to let users browse and open documents, images, and other files across all of their preferred document storage providers (local or cloud storage).

  • Low-power sensors

    • Sensor batching – Hardware sensor batching is an optimization to reduce the power consumed during sensor activities. This is particularly useful for low-power, long-running use-cases such as fitness, location tracking, monitoring, etc.. This feature is hardware-dependent, and currently (only?) works on the Nexus 5.
    • Step Detector and Step Counter – Android 4.4 also adds platform support for two new composite sensors: step detector and step counter. These let your app track steps when the user is walking, running, or climbing stairs, and they are implemented in hardware for low power consumption. Currently available in Nexus 5.
  • SMS Provider – The new SMS provider and APIs define a standardized interaction model for all apps that handle SMS or MMS messages.
  • New ways to build apps
    • Full-screen Immersive mode – It’s now possible to run an app full screen, without status and navigation bar. A swipe from the top or bottom edge of the screen can bring back the system UI.
    • Transitions framework for animating scenes – The transitions framework lets developers define scenes, typically view hierarchies, and transitions, which describe how to animate or transform the scenes when the user enters or exits them.
    • Translucent system UI styling
    • Enhanced notification access - Listener services can access a notification’s actions as well as new extras fields — text, icon, picture, progress, chronometer, and many others.
    • Chromium WebView – Webview has been completely redesigned and is now based on Chromium.
  • New Media Capabilities

    • Screen recording – You can now record a video of the action on your phone with the screen recording utility. Started with the command line: adb shell screenrecord or through the DDMS panel in Android Studio.
    • Resolution switching through adaptive playback – Seamless change in resolution during playnack. Useful for MPEG-DASH among other things.
    • Visualization of how the LoudnessEnhancer effect can make speech content more audible.

      LoudnessEnhancer can make speech content more audible.

      Common Encryption for DASH

    • HTTP Live Streaming v7
    • Audio Tunneling to DSP – This lets the DSP handle audio decoding to improve battery life. In the Nexus 5, audio playback time can last up to 60 hours, an increase of over 50% over non-tunneled audio.
    • Audio monitoring – For peak and RMS levels
    • Loudness enhancer – Media playback applications can increase the loudness of spoken content by using the new LoudnessEnhancer effect, which acts as compressor with time constants that are specifically tuned for speech.
    • Audio timestamps for improved AV sync
    • Wi-Fi CERTIFIED Miracast – Android 4.4 does not introduce Miracast, Android 4.2 did that, but I understand devices running Android 4.4 Kitkat with be considered “Miracast compatible”, and a new menu has been added in Settings > Developer options > Wireless display certification.
  • RenderScript Compute

    • Performance improvement compared to Android 4.3 – No need to recompile the app
      Renderscript_Performance_Android_4.3_vs_Android_4.4
    • GPU acceleration – Available on Nexus 5, Nexus 4, Nexus 10 and Nexus 7 (2013), and coming to more devices.
    • RenderScript in the Android NDK – Native code can now leverage Renderscript thanks to a new C++ API.
  • Graphics - SurfaceFlinger has been upgraded to OpenGL ES 2.0 from OpenGL ES 1.0, and the Hardware Composer now supports virtual displays.
  • New Types of Connectivity

    • Two New Bluetooth profiles - Bluetooth HID over GATT (HOGP) gives apps a low-latency link with low-power peripheral devices such as mice, joysticks, and keyboards. Bluetooth MAP lets your apps exchange messages with a nearby device, for example an automotive terminal for handsfree use or another mobile device.
    • IR Blasters – For TV / STB control
    • Wi-Fi TDLS support – Seamless way to stream media and other data faster between devices already on the same Wi-Fi network by supporting Wi-Fi Tunneled Direct Link Setup (TDLS).
  • Accessibility

    • System-wide settings for closed captioning – Users can now go to Settings > Accessibility > Captions to set global captioning preferences, such as whether to show captions and what language, text size, and text style to use.
    • Enhanced Accessibility APIs
  • Support for International Users

    • Drawable mirroring for RTL locales - This allow to reduces the size of the code, but having only one drawable for RTL and LTR languages.
    • RTL pseudo-locale – Android includes an RTL pseudo-locale as a new developer option to make it easier to test and debug layouts.
  • Security Enhancements

    • SELinux (enforcing mode) – Android 4.4 updates its SELinux configuration from “permissive” to “enforcing.” This means potential policy violations within a SELinux domain that has an enforcing policy will be blocked.
    • Two new cryptographic algorithms:
      • Elliptic Curve Digital Signature Algorithm (ECDSA) support has been added to the keystore provider improving security of digital signing, applicable to scenarios such as signing of an application or a data connection.
      • The Scrypt key derivation function is implemented to protect the cryptographic keys used for full-disk encryption.
  • Tools for Analyzing Memory Use

    • Procstats
      Procstats keeps track of how apps are running over time, providing data about their execution durations and memory use to help determine how efficiently they are performing.

      Android_Procstats

      Procstats

      You can access procstats from the adb tool included in the Android SDK, adb shell dumpsys procstats

    • On-device memory status and profiling
      It’s also possible to monitor memory usage directly on the device by going to Settings > Developer options > Process stats

      Android_4.4_Process_Stats

      Process Stats and Use details

      The Process Stats option shows a high-level metrics on your app’s memory use. On the top of the main screen you can see a summary of system memory status. Green indicates relative amount of time spent with low RAM usage, yellow indicates moderate RAM usage, and red indicates high (critical) RAM usage. Below, there’s the list of process with their (relative computed) memory load.
      To see more details about the memory usage of one particular app, tap on it to access the window shown on the right of the image above.

You can find the full details on Android 4.4 Kitkat Developer’s page.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Embedded Linux Conference Europe 2013 Schedule – Build Systems, Security, Device Tree, Debugging & Profiling Techniques, and More

August 31st, 2013 No comments

Embedded Linux Conference Europe 2013 will conveniently start right after LinuxCon 2013, last 2 days (October 23-24), and take place at the same location: the Edinburgh International Conference Center, Edinburgh, United Kingdom.

The Linux Foundation has published the schedule for the conference, so I’ll make my own virtual schedule with sessions that I find particularly interesting.

Embedded_Linux_Conference_Europe_2013

Thursday – 24th of October

Today, Linux is woven into the fabric of our technology. Things such as printers, routers, TVs and phones all have their own “Inner Penguin”. Yet it was never originally intended to be used beyond desktop and server PCs. A lot of things had to happen before Linux could break out of the PC environment and make its way in the world as a jobbing jack-of-all-trades. Since the early beginnings of embedded Linux in the late 1990′s many people have contributed time and know-how that has resulted in today’s Linux based embedded operating systems. This talk describes some of the key milestones and the events and people behind them.

In his keynote at the last Embedded Linux Conference, David shared a sample of the paranoia embedded developers should be exhibiting over security risks but often don’t. In this follow-up, David will share the stream of surprising and useful security features added to the Yocto Project, and demonstrate some of the new features which accelerate developer productivity and fun.

The conversion of the ARM Linux kernel over to the Device Tree as the mechanism to describe the hardware has been a significant change for ARM kernel developers. Nowadays, all developers porting the Linux kernel on new ARM platforms, either new SOCs or new boards, have to work with the Device Tree. Based on practical examples, this talk intends to provide a “getting started guide” for newcomers in the Device Tree world: what is the Device Tree? How is it written and compiled? How do the bootloader and kernel interact? How are Device Tree bindings written and documented? What are the best practices for writing Device Trees and the bindings?

With increasing CPU speeds, other bottlenecks arise; e.g. branch prediction and memory latency. In this talk we’ll explore how to identify performance issues using perf, and how to take these bottlenecks away. We’ll discuss prefetching (both hardware and software), conditional execution, and how we can use the compiler to help us. Finally, we’ll do an analysis of the resulting improvements using both simulations and actual RTL.>

It’s possible to build Linux for tiny devices without MMUs through to enormous multi-core servers. But is there anything remotely similar about the resulting systems? Is it sane to run Linux on a micro-controller? This talk will compare the anatomy of a uClinux/noMMU system to ‘normal’ ones, specifically looking at the difference between Linux running on Cortex A, R and M-class cores (M-class support has recently arrived in mainline!). Areas covered will include: notable missing kernel features (eg fork()!), binary format support, shared libraries, multitasking and security, as well as some of the implications to userspace of these differences. It will also cover some of the possible improvements to the way Linux uses features of R/M class cores, hopefully provoking some discussion on, for example, how to make better use of the Memory Protection Unit (supported in 3.11).

The EFL is a set of libraries that provide stable API/ABI, high efficiency, low memory usage, and works seamlessly with and without hardware (GPU) acceleration. These reasons and more are why the EFL are being used, on refrigerators, home automation systems, mobile devices, and the Tizen mobile platform among others. In this presentation, Tom will present an overview of the EFL, review the current state, and discuss the future plans for the project. Tom will also present new and future projects that improve the EFL development experience.

The LLVM project is an extensive compiler technology suite which is becoming commonplace in many industries. Technology built with LLVM is already shipped in millions of Linux devices as a part of Android/Renderscript. Increasingly it is becoming a big part of the development process for embedded projects, all the way up through to high performance computing clusters. This session will provide an update on the status of the LLVMLinux project; a project which is cooperating with both the Linux kernel and LLVM communities to build the Linux kernel with Clang/LLVM. This talk is for developers and system integrators who are interested in LLVM technologies and using clang to build the Linux Kernel.

Friday – 25th of October

  • 9:30 – 10:10 – Keynote – Embedded Build Systems Panel with Tim Bird, Sony Mobile; Ross Burton, Intel; Thomas Petazzoni, Free Electrons; Karim Yaghmour, Opersys; Jeff Osier-Mixon, Intel (Moderator)

Embedded Linux isn’t like “normal” Linux, which is available in tidy little distros where someone else makes all the tough decisions about what gets included. In the embedded world, the developer decides everything from the system content to the method for building that content into a cohesive package, and very often that same developer also makes decisions about the hardware. This is one busy developer. So in that context, the question of “which embedded Linux is best?” takes on many facets. Which kernel, which packages, and which drivers? Which build system is best, and under which circumstances? Should I start with Buildroot, use a pre-designed solution like Android, follow emerging standards like the Yocto Project, or just DIY – which even some large corporations do? This panel brings together a team of four seasoned embedded engineers to discuss how they make decisions and solve problems.

Embedded Linux is being used in more and more fields of: consumer, industrial and communication devices. Security is becoming an increasingly important issue for producers and users of these systems. Security of embedded systems is not only about: non-trivial root password, encrypted communication protocols and signed firmware. Both: the design of the device itself and the fact that It often works autonomously, in an inaccessible location, opens up a whole new possible fields of attack. Marcin Bis will review various methods of securing and encrypting whole system on various ARM-based hardware. Complete, working solution of ecryptfs, NAND encryption and secure boot techniques combined to provide a passively-secured system will be demonstrated, including a build system. The presentation is based on experience gained during R&D on home and industrial automation products.

Debugging, tracing and profiling are key tasks of any development process, including Linux kernel ones. In this area, the mainline Linux kernel comes with support for several internal events, probe primitives and break/watch functionality. Linux kernel communities provide many tools to use these features, either maintained in the mainline kernel, either available as external modules. Of course, no tool can replace a skilled developer with a good knowledge of the kernel, however that fact does not make tools useless either. In this presentation, Nicolas Launet will review several debugging, tracing and profiling tools freely available for Linux kernel development, expose how they work and discuss their strengths and limitations. The presentation will be illustrated with examples using kgdb, lttng, systemtap, perf and others.

Node.js is one of the most trendy technologies nowadays. Node.js is built on Google’s V8 javascript engine and provides a fast development environment. This presentation will cover the areas we can use Node.js in embedded linux devices. Before talking about applications, we will explain the cross-compiling process of Node.js and the NPM package manager for embedded linux devices. After setting up the environment, the talk will explain how Node.js can be used for scripting in embedded devices. Additionally, it will focus on development story of a surveillance camera application using Node.js platform on embedded linux. Inside the camera, the messaging between server/client, the web interface and IPC are developed by using Node.js platform.

As we all know Linus is a colorful character, but his taste in software design is impeccable. So it was hardly a big surprise when the famous edict about having all new ARM boards to use Device Tree, instead of a board file, was made. That single change forced a momentous shift in Linux based embedded software development, since a long list of cherished idioms (and a lot of questionable practices) have had to change. Device Tree due to it’s purely data driver model, and focus on reusability, is quite tricky to come at terms at first, which is something we discovered during our porting efforts of the Beaglebone board support to DT. Join me in discussing they why, the how, and learn the hard lessons we at Beagleboard have learned moving to this new paradigm.

Getting a new embedded linux device up and running is not easy. It involves debugging your software, which hasn’t been tested yet, and the hardware at the same time, with no way to know which one is at fault. Software debugging techniques are well known in the community, but debugging techniques for hardware aren’t. To goal of this talk is to give an overview of how to figure out whether the problem is hardware or software, to debug hardware in an efficient manner, to spot errors in the hardware design that weren’t visible until the software has been considered and presenting a workflow with which most problems can be pinned down.

Computer vision capabilities are a key enabler of autotomous robotic control, allowing machines to make decisions based on what they “see.” The OpenCV library is an open source computer vision and machine learning library used by companies including Intel, Google, Sony, Honda, and Toyota. This talk will explore the use of OpenCV in a fun autonomous robotics project that is affordable and easy to replicate, using the power of the Yocto Project embedded Linux platform (yoctoproject.org) and the MinnowBoard (minnowboard.org).

There are also other interesting sessions as well, but since schedule conflicted, I had to make some choices.

If you want to attend the conference, you can register online.

The fees are as follows:

  • Early Registration Fee – US$400 (through July 14th)
  • Standard Registration Fee – US$475 (July 15th – October 1st)
  • Late Registration Fee – US$550 (After October 1st)
  • Hobbyist Registration Fee – US$150

If you’re also planning to attend LinuxCon Europe 2013 on October 21-23, you’ll be illegible for a $200 discount. which still make the entry fee costs $375 for LinuxCon. Automotive Linux Summit Fall 2013 will also take place on October 24-25, and if you attend ELCE 2013 too, you can get another $200 saving, with the ALS fee being reduced to $150.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter