Archive

Posts Tagged ‘kernel’

Updating Star Cloud PCG02U to Ubuntu 16.04 with WiFi and HDMI Audio Support

May 26th, 2016 10 comments

I completed my review of PCG02U Ubuntu TV stick a few days ago, and I was quite satisfied with the device, but since Ubuntu 16.04 was released last month, I thought it might be fun to upgrade to the latest version of Ubuntu. I’m go through the complete steps including building a new kernel for HDMI audio, and the drivers for WiFi, but you should be able to install Ubuntu 16.04 for Bay Trail and Cherry Trail processor with the image made by Linuxium and a USB stick.

Star Cloud PCG02U OS Support and Warranty

Before I go through the instructions, you may want to read the conditions on MeLE’s Aliexpress PCG02U page.

PCG02U_Linux_OS_WarningThey meant Ubuntu 14.04 instead of 14.0.4, but the important part is that if something goes wrong trying alternative OS, you may lose your warranty.

Upgrade Ubuntu 14.04 to Ubuntu 16.04

Upgrading from one LTS version to the next should be easy using the update manager…

… or doing it through the terminal entirely:

However, it did not work for me, as it quickly ended with the message:

I noticed that PCG02U was still stuck on Ubuntu 14.04.3 LTS, despite running dist-upgrade:

After trying several solutions, I eventually changed the Ubuntu mirror, and the steps above completed successfully with Ubuntu 16.04 running.

Click to Enlarge

Click to Enlarge

At least two little problems though: I lost HDMI audio with only Dummy Output available, and while Ethernet was still working after the update, WiFi support was gone… But if you don’t need either you’re good to go.

Enabling HDMI audio in PCG02U

Luckily we already have the instructions to enable HDMI audio for Bay Trail and Cherry Trail processors, all we need is a Linux 4.5 kernel and patch it. I’ll do everything inside PCG02U, and I have not used a separate build machine, which would likely be faster. Tip: you’ll need gcc 4.9 or greater. I used the instruction here and there.

First let’s build the dependencies required to build the kernel in Ubuntu.

Now let’s get the patches in a working directory

as well as the Linux 4.5.1 kernel patched for Ubuntu and the Intel Atom HDMI audio support:

Now we can configure the build:

This will ask which config files to configure for AMD64, i386, ARM and so on. We only need to edit the first one (AMD64). Once you are in the config menu, use menuconfig search function to locate SUPPORT_HDMI option and enable it. Exit and save.
CONFIG_SUPPORT_HDMI

Before starting the build add something like “+some_string” to the end of the first version number in the debian.master/changelog> file. I added +hdmi_audio string:

You can now start the build with:

However, the build did not complete for me, with the error:

I followed the instructions on askubuntu, and disabled set do_zfs = false in debian.master/rules.d/amd64.mk, and completed the build with the same command line. It took around 2 to 3 to complete the build on PCG02U, and I had a bunch of deb packages…

.. and I installed the headers and image:

Rebooted the system, which booted successfully, and I could confirm HDMI audio was back. Yes!

Click to Enlarge

Click to Enlarge

But still no WiFi… and space was running now, so I did some cleaning which gave me a few gigabytes to play with:

Building Realtek RTL8723BS WiFi Driver in Ubuntu/Linux

Star Cloud PCG02U uses  a WiFi and Bluetooth module with the common Realtek RTL8723BS chip, but the driver is not currently in mainline, so it needs to be compiled separately. That part is straightforward, and only take 2 minutes or less:

That’s all and now the Wireless network is enabled:

Click to Enlarge

Click to Enlarge

I had no problems connecting to my wireless router, and the module is automatically loaded at boot time. So now we have the same level of support as in Ubuntu 14.04 with HDMI audio and WiFi.

Realtek RTL8732BS Bluetooth in Linux

However, the hardware also supports Bluetooth, so it would be nice to have this enabled too, and again RTL8723BS Linux Bluetooth driver is available thanks to one independent developer (lwfinger).

In theory, it’s pretty easy:

But this did not work for me, despite Bluetooth apparently being located on /dev/ttyS4:

But the log would show a connection timeout:

Sadly, I haven’t been able to find a solution in a reasonable amount of time, and changing the baudrate from 115200 in the script to 2764800 (as shown in dmesg) does not help.

Of course everything would be so much easier if HDMI audio Cherry Trial and Bay Trial and RTL8723BS drivers would be in mainline linux, as all you would have to do would be to install Mainline linux in Ubuntu, and everything would just work. This does require some work however, but if you are motivated, lwfinger is ready to submit the RTL8723BS WiFi code to mainline if somebody takes care of all the errors and warnings generated by checkpatch.pl.

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 2016 and OpenIoT Summit 2016 Schedule

March 4th, 2016 2 comments

The Embedded Linux Conference 2016 and the OpenIoT summit 2016 will take place on April 4 – 6, 2016 in San Diego, California, and over 800 attended will meet including kernel & system developers, userspace developers, and product vendors. The Linux Foundation has recently published the schedule, so I’ve had a look at some of the talks, and designed my own virtual schedule to find out more the current development focus although I won’t attend.

Embedded_Linux_Conference_2016Monday April 4

  • 10:40am – 11:30am – Linux Connectivity for IoT by Marcel Holtmann, Intel OTC

There are many connectivity solutions that available for IoT. For example Bluetooth Low Energy, 802.15.4, Zigbee, OIC, Thread and others. This presentation will provide and overview of the existing technology and upcoming standard and how they tie into the Linux kernel and its ecosystem.

  • 11:40 – 12:30 – BoF: kernelci.org: A Million Kernel Boots and Counting by Kevin Hilman, BayLibre

The kernelci.org project is currently over 1500 kernel boot tests per day for upstream kernels on a wide variety of hardware. This BoF will provide a very brief overview of kernelci.org and then be a forum for discussion and feature requests, how to participate and next steps.

  • 14:00 – 14:50 – Hello, Brillo by Dave Smith, NewCircle

Brillo is Google’s latest embedded offering, based on Android, intended for low-power devices in the IoT market. But what does “based on Android” really mean? In this session, we will compare the Brillo stack to Android, examining what has been added as well as removed. You will learn how Google attempts to bring secure solutions to IoT using Brillo and Weave—Google’s IoT connectivity protocol. We will also discuss the current status of user space application development on the platform.

  • 15:00 – 15:50 – Reducing the Memory Footprint of Android by Bernhard Rosenkränzer, Linaro

The Android team inside the Linaro Mobile Group has been working on reducing the memory footprint of the Android system – cutting around 70 MB off the memory used by a newly booted AOSP build on Nexus 7.

This talk describes what techniques we have used to save memory without having too much of a negative impact on performance.

  • 16:10 – 17:00 – Bringing Display and 3D to the C.H.I.P Computer by Maxime Ripard, Free Electrons

Every modern multimedia-oriented ARM SoC usually has a bunch of display controllers, to drive a screen or an LCD panel, and a GPU, to provide 3D acceleration. The framework of choice to support these controllers in Linux is the DRM subsystem.

This talk will walk through the DRM stack, the architecture of a DRM/KMS driver and the interaction between the display and GPU drivers. The presentation is based on the work we have done to develop a DRM driver for the Allwinner SoCs display controller, as part of enabling the C.H.I.P platform with the upstream Linux kernel. The work done to make the ARM Mali OpenGL driver work on top of a mainline DRM/KMS driver will also be detailed.

  • 17:10 – 18:00 – Bluetooth on Modern Linux by Szymon Janc

This presentation will help audience to better understand how Linux supports fast changing and evolving technology as Bluetooth. It will provide comprehensive guide on BlueZ 5 Bluetooth stack architecture demystifying transition from BlueZ 4 systems. This includes integration with external components like PulseAudio or NetworkManager. Audience will also have good overview of how Bluetooth on Linux can help building Internet of Things by supporting bleeding edge features like LE Connection Oriented Channels, 6LowPAN, LE Secure Connections and more.

  • 18:10 – 19:00 – BoF: Device Tree by Frank Rowand

The Linux kernel Device Tree continues to evolve. The presentation portion of the BoF will include improvements completed over the last year, the status of partially completed projects, and plans for the coming year. Suggestions for changes and improvements to Device Tree will be solicited from the participants. Come meet Device Tree maintainers and contributors.

Please bring questions, complaints, solutions, reports of what is not working for you, and wish-lists.

Tuesday April 5

  • 9:00 – 9:50 – Implementing Miniature Smart Home by Constantin Musca, Intel

We are at the beginning of a new era of technologies computing where almost every device communicates with each other or communicates with their environment. It is about the so called Internet of things (IoT).

A major line of investigation is the smart home and the benefits of having one and what it takes to make a home “smart”. These solutions are to make life easier and free more time. How cool is to be able to control the temperature, lights, music or garage door remotely.

The smart house system runs on a Brillo OS device which exposes standard peripherals’ APIs and can be controlled through the standard Weave interface using your Google account with commands like: open_garaje_door, set_living_temperature, play_song or close_curtains.

For the moment we only implemented this solution on a miniature house, but we are looking forward to extend it to a larger scale and use it in real

I’ve found a demo of the project, and they’ve actually used a house as big as “standard” apartment… Maybe it’s only considered miniature if you live in the US…

  • 10:00 – 10:50 – Developing a Standard Interface for Drones by Tully Foote, Open Source Robotics Foundation

With the proliferation of a huge variety of drones it is becoming more important to develop standard interfaces which can enable software to be reused across whole classes of airframes. In his work on ROS (the Robot Operating System), Tully Foote has been actively involved in many standard interface proposals and refinements and is the maintainer of many of the core message definitions. In this talk he will review the important aspects of designing standard interfaces using examples from indoor robotics, autonomous cars, and more. The talk will conclude with a proposed standard interface for drones with the hope of sparking further discussion in the greater drone community.

  • 11:20 – 12:10 – Linux Power Management Optimization on the Nvidia Jetson Platform by Merlin Friesen, Golden Gate Research

Powerful cellular System on Chip (SoC) Application Processors with multiple ARM cores and a vast array of peripherals are now readily available for non cellular applications and are finding use in areas such as vision processing, robotics and drones. These devices, due to their use in mobile smart phones and tablets, have highly optimized power management features and come with Linux kernels that complement the hardware.

The Linux based Nvidia Jetson platform is used in this presentation to give developers a hands on overview of SoC power management and techniques they can use to monitor and improve power consumption in their own designs.

  • 14:00 – 14:50 – libiio – Access to Sensor Devices Made Easy by Lars-Peter Clausen, Analog Devices

The Linux IIO (Industrial IO) framework is tasked with handling configuration and data aggregation from and to all sorts of sensors and data converters including ADCs, DACs, temperature sensors, accelerators, chemical analysis, light sensors, lifestyle sensor and many more. libiio is a system library hides the low-level details of the IIO kernel ABI and provides a simple yet complete programming interface. It implements functionality often required by applications which want to access IIO sensor devices.

This presentation will give an introduction to the core concepts of libiio, it’s API and how it can be used in applications to access sensor devices, enabling attendees to develop their own applications being able to access sensor devices fast and efficiently. In addition it will discuss the existing infrastructure and tools that have been built around libiio.

  • 15:00 – 15:50 – Communication for IoT: MQTT Development and Integration by Rodrigo Chiossi, Intel

MQTT is a lightweight publish/subscribe protocol intended for small sensors and mobile devices. It is designed to work with high-latency and unreliable networks and is the protocol of choice of many IoT solutions, such as IBM Bluemix and Amazon AWS IoT. MQTT is also one of the communication protocols of the Soletta Project, which uses Mosquitto, a compact open source implementation of MQTT, as backend.

This technical talk is focused on the integration between Mosquitto and Soletta. The Soletta MQTT API will be presented along with the process of integrating Mosquitto into Soletta’s mainloop. We then discuss the main limitations and problems of this process, and present the solutions applied. Lastly, we take a look at live demos of Soletta MQTT working with IBM Bluemix and Amazon AWS, with code snippets and development guidelines for those platforms.

Wednesday April 6

  • 9:00 – 9:50 – Static Code Checking in the Linux Kernel by Arnd Bergmann, Linaro

As a maintainer of the arm-soc tree, Arnd is responsible for the quality of a lot of new code that gets merged each release. His dirty secret is that he never runs any of it on real hardware, but that makes static compile-time checking at even more important.

In this presentation, Arnd shows his setup for finding and fixing bugs, and gives an overview of many of the available tools, including kernelc, sparse, coccinelle, clang, checkpatch and coverity.

  • 10:00 – 10:50 – HDMI CEC: What? Why? How?  by Hans Verkuil, Cisco Systems Norway

The HDMI connector features a CEC (Consumer Electronics Control) pin that allows connected devices to detect and control one another. This talk describes what CEC is, why you would want to implement support for it, and how you can use a new kernel framework and API to support this HDMI feature.

This talk will include a short introduction of the upcoming CEC framework and the utilities that use it.

  • 11:05 – 11:55 – Embedded Linux 3D Sensing: Minnowboard Meets RealSense by Miguel Bernal Marin, Intel

Robots and Drones use sensing devices (like cameras, lasers range-finders, ultrasonic sonars) to get information from external environment and it is used avoid obstacles or create maps. The use of 3D depth cameras helps to do these task easily. But the current 3D depth cameras in the market are heavy to load on a drone or the smaller doesn’t have Linux support. In this presentation, Miguel will explain how to use the Intel RealSense 3D camera in a Linux environment using a Minnowboard Max, a small 3D camera that can be used in outdoors. In addition, Miguel will go into detail on how to use it using the Clear Linux Project for Intel Architecture.

  • 13:35 – 14:25 – Survey of Open Hardware 2016 by John Hawley, Intel

This is a generalized talk where we’ll generally compare, contrast and discuss various things that have happened in the last year regarding Open Hardware. In 2016 this will cover things that happened at the last OSHWA meeting, various new devices that are on the market, and generally focus on devices capable of running and operating system, and not micro-controllers.

  • 14:35 – 15:25 – Zephyr Project: An RTOS to change the face of IoT by Anas Nashif

An increasing number of developers need a scalable, real-time operating system designed specifically for small-footprint IoT devices. It needs to be affordable, easy to use and built with input from the developers using it. An open source RTOS can’t just be called “open” – it must live and breathe “the open source way.” Developers should have influence over the direction of the project and be able to impact its software and hardware architecture support. The OS should also maximize interconnectivity between other devices, contain powerful development tools and come with customizable capabilities. The Zephyr Project offers just that.

This class will give an overview of Zephyr Project. Zephyr is a small, scalable, real-time operating system designed specifically for small-footprint IoT edge devices. Its modular design allows you to create an IoT solution that meets all of your device needs, regardless of architecture. It is also embedded with powerful development tools that will, over time, enable developers to customize its capabilities.

Launched in partnership with the Linux Foundation, the Zephyr project is a truly open source solution focused on empowering community development. The goal of Zephyr is to allow commercial and open source developers alike to define and develop IoT solutions best suited for their needs.

There are so many other interested talks that I did not mention in my list, but that’s what happens when you do a schedule.

You can register online to attend both Embedded Linux Conference and OpenIOT Summit 2016. The fees are as follows:

  • Early Registration Fee – US$550 through February 21, 2016
  • Standard Registration Fee – US$650 through March 13, 2016
  • Late Registration Fee – US$850 after March 14, 2015
  • Student Registration Fee – US$175
  • Hobbyist Registration Fee – US$175. You’ll need to contact events [at] linuxfoundation.org to receive a discount code, and you must pay for the fee yourself.

 

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

FOSDEM 2016 Schedule – Open Source Hardware and Software Event in Europe

January 13th, 2016 3 comments

FOSDEM (Free and Open Source Software Developers’ European Meeting) is a 2-day event that usually takes place on the first week-end of February in Brussels, but this year it will be on January 30-31. The event brings thousands of developers, hackers, and other person interested in open source technology who present their projects and share ideas. FOSDEM 2016 schedule is now available, and There will be 557 speakers, 612 events, and 50 tracks this year including 7 main tracks: Distros, Enterprise, Hardware, Communications, Miscellaneous, Office, Systems Administration, and Virtualization.

FOSDEM_2016

So I’ve had a look at some of the talks, especially out of  “Embedded, Mobile and Automotive” and “IoT” devrooms, and prepared my own virtual schedule although I won’t be able to attend.

Saturday

For many years MIPS processors have been involved in the embedded market, particularly in areas related to networks and storage. With the success of the mobile market, and the great evolution of the world linked to the “makers”, other architectures (such as ARM), they have reached very large levels of diffusion.

Meanwhile, the MIPS architecture has evolved, introducing innovations and improvements to adapt to both the processor market from performance, both to the world of micro-controllers. The future of MIPS is a new family divided into several generations evolving.

During the presentation, after a brief and simplified introduction to architecture, will be shown the technologies available at the time and what will be the future developments.

The presentation will also show some reference platforms (ex. Imagination Creator CI20), and how to work to integrate and port on these platforms. Application examples with Yocto and buildroot, to switch to a full distribution (Debian). Finally it will also present a perspective on the use of MIPS in embedded designs.

AsteroidOS is a free and open-source smartwatch platform based on OpenEmbedded, libhybris, BlueZ5 and Qt5. The OS currently offers a basic user experience on the LG G Watch. This technical talk will briefly introduce the philosophical background of the project and more deeply its architecture’s details in order to attract developers, porters and curious.

This talk will successively be focused on how to boot an Android Wear watch, on how to gain hardware acceleration on that kind of hardware, on how Qt5 and OpenEmbedded are used and on the future of AsteroidOS.

AsteroidOS uses similar technological choices as those of projects like SailfishOS, NemoMobile, Mer, WebOS-Ports or Ubuntu Touch but adapted to the needs of smartwatches. The architecture of those project will briefly be compared during the presentation.

Based on Migen, MiSoC is a library of cores and a system-on-chip integration system to build gateware for various applications. MiSoC is lightweight (runs on FPGA devices as small as Spartan-6 LX9 with 32-bit RISC CPU and SDRAM), portable (demonstrated on Xilinx, Altera and Lattice devices) and high performance (e.g. contains the fastest open source DDR3 solution we are aware of). Designing and integrating cores is facilitated by Python and Migen features. Current MiSoC applications include LTE base stations, video processing (Numato Opsis) and experiment control system (ARTIQ).

Nemo Mobile is a long time FOSS operating system. Created in 2012 as continuation to Meego Community Edition, it has been actively developed since then. The newest iteration of it is to use Glacier UI as its renewed User Interface, along with its Qt Components. These components are now used in the NemoTablet adaptation using Raspberry Pi2 as underlying hardware and its plethora of possible peripherals to create a true DIY tablet derived from SailPi project.

With Raspberry Pi 2 introduction in February 2015, it was then possible to create an adaptation for it. This enables the myriad of functionality it offers, with its hardware provided. Initial adaptation was done originally for SailfishOS, but Nemo Mobile had the first run and checking that everything worked, before a closed system was installed. Nemo Mobile, however, was then not tried until later. The idea came once the official touchscreen by Raspberry Pi Foundation was released, so that a FOSS tablet could be built by anyone and used. Raspberry Pi 2 has non-free hardware, but Nemo Mobile itself is FOSS completely. As with all other adaptations, the questions regarding hardware freedom limitations rise for a good reason.

Libreboot is a free software BIOS replacement (boot firmware), based on coreboot, for Intel, AMD and ARM based systems. Backed by the Free Software Foundation, the aim of the Libreboot project is to provide individuals and companies with an escape from proprietary firmware in their computing. Libreboot is also being reviewed for entry as an official component of the GNU system.

Boot firmware is the low-level software that runs when you turn your computer on, which initializes the hardware and starts a bootloader for your operating system. Libreboot currently supports laptops and servers, on x86 (Intel and AMD) and ARM (Rockchip RK3288), with more hardware support on the horizon. The purpose of this talk is to describe the history of the project, why it started, why it’s important, where it’s going and, most importantly, to tell people how they can get involved.

Francis also runs the Minifree (formerly Gluglug), a company that sells computers with libreboot and Trisquel GNU/Linux pre-installed.

No abstract, but it’s clear about Olimex’s Allwinner A64 A64-OlinuXino board to be used in the company’s open source hardware laptop.

A brief discussion about the stable release branch 4 of KiCad as well as goals for the next development cycle and beyond.

The WPANKit is a ptxdist based Open-Source 6LoWPAN Board Support Package (BSP). The main focus is to provide a software development kit for the linux-wpan project. The linux-wpan project aims to implement a 6LoWPAN inside the mainline Linux kernel.

This talk will present the WPANKit: An Open-Source Linux BSP to develop 6LoWPAN IoT applications. It contains support for various common platforms such Raspberry Pi’s and Beaglebones. Additional components like the openlabs 802.15.4 transceiver SPI transceiver or BTLE USB dongles gives you a getting started platform into the Linux 6LoWPAN world.

The WPANKit will directly build a current mainline 6LoWPAN kernel, which is the official bluetooth-next tree. This is important, because the mainline 6LoWPAN development is still much in development. Additional the WPANKit offers a large of userspace IoT software collection e.g. tshark for sniffing network traffic, libcoap, etc. On top of this BSP you can develop your IoT application, setting up a Border-Router or help at the current mainline 6LoWPAN Linux-kernel development.

Through the power of ptxdist you can easily add new own packages for cross-compiling. As well we accept patches to integrate new software into the official WPANKit repository, so we getting more and more new IoT capable software into the WPANKit which can be used by other ptxdist users.

An AdaCore intern has rewritten the CrazyFlie drone software, originally in C, into SPARK. In addition to fixing some bugs, this allowed to prove absence of runtime errors. Various techniques used to achieve that result will be presented, as well as a live demo of free fall detection.

This talk will take us through the available FOSS software stacks that are available for automotive. This last year has produced a lot of working software from fiber-optic networking drivers in the Linux kernel, complete In-Vehicle Infotainment stacks, to a newly released Qt Automotive. There has also been a change in available hardware to run this software on, new boards like the Minnowboard Max, Renesas’ Porter board, and even the Raspberry Pi 2. This talk will try and cover the entire software ecosystem and how it matches to hardware, how you can get involved today, and what the future holds.

Turris Omnia aims to bring to the market affordable, powerful and secure SOHO router which is completely open-source and open-hardware. As a operating system it uses our own fork of OpenWrt which has some additional features such as automatic security updates. This talk will cover few topics such as motivation for starting this project and developing of our own hardware and software.

FROSTED is an acronym for “FRee Operating System for Tiny Embedded Devices”. The goal of this project is to provide a free kernel for embedded systems based on ARM Cortex-M CPU family, which exposes a POSIX-compliant system call API. Even if it runs on small systems with no MMU and limited resources, Frosted has a VFS, UNIX command line tools and a HW abstraction layer which makes it easy to support new platforms and device drivers.

This talk will cover why the project was started, the approach taken to separate the kernel and user-space on ARM Cortex-M CPU’s without MMU, the collaboration with the libopencm3 project to provide a high quality hardware abstraction layer and the future goals of the project. Of course there will a demo showing the latest developments: dynamic loading of applications and possibly TCP/IP communication.

Sunday

Yocto project has been used at Open-RnD for building a number of IoT related products. The talk will go though the details of integration of Poky build system and OpenEmbedded layers into 3 projects carried out at Open-RnD:

  • an autonomous parking space monitoring system
  • a distributed 3D steroscopic image acquisition system
  • a gadget for acquisition of metabolic parameters of professional athletes

The presentation will approach to building software, automation and upstreaming of fixes. Only widely available hardware platforms such as BeagleBone Black, Raspberry Pi, Wandboard or Gateworks GW5400 (not as widely used as the previous ones, but still fully supported) were used in the project, hence all the points made during presentation are directly applicable by professionals and hobbyists alike.

Tizen is an open source GNU/Linux based software platform for mobile, wearable and embedded devices as well as Internet of Things. Tizen:Common provides a generic development environment for Tizen 3 which key features include, Wayland, Weston, EFL UI/UX toolkit, and a web runtime for safely running standalone HTML5 apps. Yocto Project offers tools to easily expends features of Tizen:Common by creating layers for new profiles. This talk will focus the Tizen architecture and it will provide guidelines for creating and building new Tizen profiles, based on Tizen:Common, using the Yocto Project for devices with Intel or ARM processors. It will also provide information about hidden gems in Tizen on Yocto and practical examples for packaging and deploying HTML5 applications through Yocto recipes for the open source hardware development boards like Raspberry PI2 or HummingBoard (Freescale I.MX6 ARM SoC) or MinnowBoard Max (Intel).

Finally, since Tizen aims to because the OS of everything, we will illustrate this by extending Tizen Distro with new connectivity features provided by IoTivity library, the open source implementation of OpenInterConnect’s standard.

This session will show you how to build your own retro hand-held console that is powered by Java, runs on a Raspberry Pi, and is printed on a 3D printer. Some of the topics covered include:

  • Hacking Java on the Raspberry Pi
  • Rigging input devices with Pi4J
  • Insane performance tuning on the JVM
  • Why your boss [or SO] needs to buy you a 3D printer!

And of course your retro gaming mettle will be put to the test, so make sure to dust off your old 8 and 16 bit consoles to prepare.

How to roll your own build and extend the Fairphone 2 hardware

The kernelci.org project is currently doing hundreds of build and boot tests for upstream kernels on a wide variety of hardware. This session will provide an introduction to the kernelci.org system, some live demos and how to start consuming its results, and be a forum for further discussions.

Distributed boards farms across the world are working together to deliver unified build, boot, and test results for every merge of an upstream Linux kernel tree. A community based architecture agnostic effort, kernelci.org aims to detect regressions in a timely manner and report back to kernel developers with a concise summary of the issues found. On every merge, all defconfigs for x86, arm, and arm64 are built, booted, and tested on over 300 real or virtual hardware platforms. Come join in the discussion and help make Linux better!

Hardware is funny stuff. It is often documented to work one way when it actually works a slightly different way. Different revisions of the hardware may have different bugs that require different sets of work-arounds. Programming it even slightly incorrectly can lead to software crashes or system hangs. Sometimes some versions of the hardware work fine, but the version not on the developer’s desk crashes. Failure modes are often opaque and give no clues for fixing the problem. Writing robust, reliable software to run directly on hardware is hard.

Software simulation of hardware is a technique that, in many cases, can alleviate some of this pain. Teams that develop hardware will often create a simulator as a by-product of hardware synthesis. Not ever developer is fortunate to have access to such tools. Those who do have access often find them slow or difficult to use. After all, these simulators are generally created as an aid for the hardware developers themselves. Much of the benefit of a full hardware simulator can be attained by developing the simulator independently from the hardware development. When the correct techniques are applied, it’s not even that hard.

This talk will present a variety of techniques based on experience with several “home grown” simulation environments. Techniques for both developing and validating the simulator and techniques for integrating simulation in the regular development process will be described.

  • 16:00 – 17:00 – PHP7 by Derick Rethans

With PHP 7 having been released, it is time to show what’s in there. Speed, scalar type hints and spaceships.

These are just a few selection from the complete schedule. Last year, most FOSDEM 2015 videos were available in mid-March, so I’d expect FOSDEM 2016 videos to be available in about the same time frame.

As usual, the event will be free, and does not require registration, so you just need to show up at the Université libre de Bruxelles in order to attend.

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

Light Biz OS Firmware, Android and Ubuntu Image, and Android SDK Released for GeekBox (RK3368)

December 11th, 2015 4 comments

GeekBox is an upcoming Android TV box based on Rockchip RK3368 octa-core processor that doubles as a system-on-module and development board. The company has now uploaded the Android 5.1 SDK, including Linux 3.10.79 kernel, on github. It’s not for the Android SDK for RK3368, but at least it’s not just an outdated tarball, and will hopefully be regularly updated directly on github.

Geebox_Android_Linux_Ubuntu

Beside the source code, the company also released three firmware image including Rockchip’s Light Biz OS desktop operating system based on Lollipop:

It’s quite possible those images will also work on other Rockchip RK3368 platform with some modifications, e.g. an updated device tree file for a given hardware. I’ve downloaded Biz OS adn the dual boot image, and the firmware files are of “update.img” type, so they are not bootable from SD card.

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

How to extract kernel.img with mkboot script

December 7th, 2015 1 comment

As I tried instructions to install Linux on Amlogic S905 Android TV boxes yesterday, I wanted to extract kernel.img file found in Android firmware, but Google did not help that much until I found mkboot part of mkbootimg_tools scripts.
mkboot

But first let’s see how kernel.img is created… Google provide a Python script called mkbootimg that combine the kernel image (e,.g. zImage), a rootfs/ramdisk and the device tree (DTB) file with a command line that looks like:

However, AFAIK the company does not provide a “unmkbootimg” script, and mkbootimg can only be used to create kernel.img, not decompile it. But that’s what mkboot does, and it works for kernel.img and recovery.img. Let’s retrieve the necessary files first:

mkboot is a bash script so we can use it right away:

So it can be used both for unpacking and repacking kernel.img to/from the output directory. Let’s run the command with an actual kernel.img file:

The script has indeed decompiled kernel.img with the kernel itself, the ramdisk (compressed and decompressed), and second.img that’s the DTB file. img_info contains the information shown during extraction above.

second.img and second.img.tmp files differ in size, so I ran through dtc to get the readable device tree file,. and the resulting files are identical:

So the tmp files must have had some padding, that the script stripped to create second.img.

In theory, you can change the kernel files, randisk or device tree, and repack everything with:

but it did not quite work here:

If we look a the first ./mkbootimg command in this post we can see some different offset in the decompile image, so I changed img_info as per the first command line, with base=0, kernel_offset=0x01080000, and ramdisk_offset=0x01000000, and it all worked out OK:

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

Amlogic S905 Source Code Published – Linux, U-Boot, Mali-450 GPU and Other Drivers

November 19th, 2015 36 comments

Amlogic has an open linux website where they regurlarly release GPL source code, and with Amlogic S905 devices coming to market, they’ve released a few tarballs at the beginning of the month including Linux 3.14 source code, U-boot source code, and Mali-450MP GPU kernel source code (obviously not userspace), as well as some other drivers for WiFi, NAND flash, PMU, TVIN, etc…
Amlogic_S905_Linux_MenuconfigLet’s get to the download links:

I quickly tried to build the Linux source. If you’ve never build a 64-bit ARM kernel or app before, you’ll fist need to install the toolchain. I installed the one provided with Ubuntu 14.04:

Now extract the tarball and enter the source directory:

At first I had a build failure due to a missing directory, so I created it, and use the default config for Amlogic S905/S912 (in arch/arm64/configs), before building the Linux kernel.

and it ended well:

So that’s a good starting for anybody wanting to work on the Android or Linux kernel…

Unrelated to Amlogic S905/Meson64, but I’ve also noticed some OpenWRT packages and rootfs  on Amlogic website that was released a little earlier this year. So either some people are using Amlogic Sxxx processors with OpenWRT, or Amlogic is working on a router chip that I missed. Probably the former.

Thanks to Olin.

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

Raspberry Pi’s VideoCore 4 GPU Driver Added to Linux Mainline in Kernel 4.4

November 17th, 2015 3 comments

While your x86 and AMD64 computer will usually boot with Linux mainline without issues, most ARM boards and device won’t, and many of the ones that do boot only support headless mode, and limited functionalities. The Raspberry Pi had been supporting HDMI output with a simple framebuffer for a while, but a developer working on the Videocore 4 (VC4) GPU found inside Broadcom BCM2835 and BCM2836 processors, has recently submitted a patchset to add VC4 GPU to Linux mainline that should make it to Linux 4.4.

Raspberry_Pi_GPU_Linux_Kernel

The commit message does mention some features are still missing, but it’s a start:

This pull request introduces the vc4 driver, for kernel modesetting on the Raspberry Pi (bcm2835/bcm2836 architectures). It currently supports a display plane and cursor on the HDMI output. The driver doesn’t do 3D, power management, or overlay planes yet.

Via Golem and Sanders.

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 Releases the First (Alpha) Version of the 96Boards Reference Software Platform

November 9th, 2015 13 comments

Linaro’s 96Boards initiative was launched at the beginning of the year with Hikey board, and beside the hardware specifications, 96Boards also has some software requirements that include support for “bootloader (open source), accelerated graphics support (binary or open source), a Linux kernel buildable from source code based from mainline, or the latest Google-supported Android kernel version, or the last two LTS kernels, and one of more of the following operating systems: Android, Debian/Ubuntu, Fedora/Red Hat, or an OpenEmbedded/Yocto build of a Linux distribution”.

Click to Enlarge

Click to Enlarge

In order to achieve this goal, Linaro introduced the Reference Software Platform for 96Boards, and they’ve now pushed the first Alpha release for Hikey and DragonBoard 410c boards. The release includes a bootloader, the Linux kernel, Debian and AOSP with firmware, source code, and documentation.

Some highlights of the Reference Software Platform 15.10 Alpha release include:

  • CE Debian RPB (Reference Platform Build)
    • Debian 8.2 “Jessie”
    • Linux 4.3 kernel with additional patches
    • OpenJDK 8 included by default
    • 96Boards artworks and default settings
  • CE AOSP RPB (Hikey board only)
    • AOSP Android Marshmallow 6.0
    • Linux 3.18 based kernel

CE refers to the consumer edition of 96Boards specifications, as there’s also an Enterprise Edition (EE), which is not covered by this release.

You can find documentation, including how to build your own image on 96Boards Wiki on Gihub. You can interact with 96Boards community on the forums, the bug tracker, or #96boards on IRC.

If you want to find out more of the Software Reference Lead Project, you can watch the Linaro Connect presentation below (~42 minutes), and/or download the slides.

The next release is planned for December 2015 (15.12 release), and should include:

  • Have both boards using a single kernel tree/branch and a single kernel binary
  • Better understanding about the upstream gaps
  • Adding support for CE AOSP for Dragonboard410c (with freedreno)
  • Adding support for CE OE/Yocto
  • Enterprise Edition

The Enterprise Edition will likely run on AMD Opteron A1100 96Boards.

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