Development
Insights

Embedded
Ecosystem

Product
Briefs

Quick Tips for Avoiding New Development Kit Headaches

Whether you are new to embedded Linux or just experimenting with a new platform, it can be a challenge to establish the best development workflow for your target and project. While our LinuxLink tools can make software challenges much simpler, sometimes there are teething issues with hardware. Over the years, we’ve helped hundreds of developers troubleshoot issues they’ve had with booting their target. Read on for tips on how to avoid some of the problems we and our customers have encountered.

1. Keep the problem simple — while you still can.

It can be tempting to dive straight into building an image for your next custom device, but it’s a good idea to first establish a working development environment using an image that has been known to work. Timesys provides tested demos and starting points to get working results quickly. These free images — along with our Getting Started guides (available at https://linuxlink.timesys.com/docs/gsg) — can help you work through setting up the host environment without having to worry about the validity of your image or kernel.

2. Your board appears to be on, but there’s nothing coming out of the console.

These days many targets provide a USB debug interface, but in some cases you may be using a USB-to-serial adapter. Whether you are using a built-in debug port, or you have your own USB -to-serial adapter with a 9-pin cable, when you connect the USB device to your host, a device such as /dev/ttyUSB0 should appear on your host. If the device does not appear, try to look for USB related kernel messages by using the ‘dmesg’ command. You may want to look at only the most recent messages by piping dmesg output to tail. Simply connect a USB device, then type ‘dmesg | tail’ to see only the end of the buffer.

If you’re certain you have the right device for your USB serial adapter, but still aren’t seeing anything, check the manual for your embedded target to see if it requires a null modem adapter.

3. I see ‘Loading kernel’ ... and then nothing happens.

While nothing may appear to be happening, the kernel may be running just fine and simply not printing output. The kernel uses a ‘console’ argument to know where to print messages, so you should check your kernel command line arguments to confirm that the bootloader is providing the correct device and baud rate. You can refer to the Timesys Getting Started Guide for your target to find the appropriate settings.

Another common cause may be the omission of a device tree. Newer kernels use a device tree for hardware initialization, but if it is not loaded, don’t expect the bootloader to complain before kicking the kernel into nowhere land. To see if a device tree is required, refer to the Timesys Getting Started Guide for your target.

4. The kernel panics trying to mount the root file system (RFS).

When mounting the RFS, the kernel initializes the machine and then it starts an init process in the RFS. To determine where the RFS resides, the kernel uses the command line arguments. Below are some basic questions to ask yourself when troubleshooting kernel panic:

  • Did I deploy the RFS image correctly? — If your root file system has been provided as a tar.gz file, make sure you extract it to the NFS exported folder or SD card as a root user. The root file system must be created as root in order to create the special device nodes under /dev.
  • Is there a problem with my SD card? — If using an SD card, you should use the ‘rootwait’ kernel argument to tell the kernel the device may initialize slowly. Make sure you use a supported file system for the RFS (ext3 is a safe bet), otherwise the kernel may simply be unable to mount it at boot time.
  • Does my target support mounting NFS volumes? — Again, you can refer to Timesys’ Getting Started guides (https://linuxlink.timesys.com/docs/gsg) if you’re unsure as to whether or not your target supports NFS volumes. If your target is not able to mount an NFS volume, try to test mount it from another host on your network. This is also a good way to rule out a host configuration issue. It’s usually quicker to test with a coworker’s host than to repeatedly try tftp commands — especially if you have a really old bootloader. If you can test your host using another host instead of the target, do it!

While these tips may help you, we know that issues related to hardware are often more complex. If you’ve tried unsuccessfully to resolve problems booting your dev kit or custom hardware, help is available from Timesys. We offer project-based support, enabling you to get help with troubleshooting development issues — whenever they arise. If your development team is looking to expedite your custom product development, consider engaging with Timesys Professional Services. Our extensive services menu ranges from project design review and building your custom Linux platform, to integrating your application and remote upgrades.

Request Timesys support pricing & information.
Schedule a complimentary 30-minute Services consultation.
 


Timesys Releases Embedded Linux Support for PHYTEC phyCORE AM335x RDK

Timesys has expanded its embedded Linux offering to include support for the PHYTEC phyCORE AM335x RDK. The availability of this offering expands Timesys’ support for TI AM335x Sitara™ processor based development platforms.

The phyCORE AM335x RDK features an ARM® Cortex™-A8 based SOM and delivers high processing performance, low power and a highly integrated peripheral set. Its 2D and 3D graphics acceleration and support for real time protocols make it ideal for environments including industrial automation and control, human machine interface, interactive point-of-service kiosks and more.

With LinuxLink for PHYTEC phyCORE AM335x RDK, developers will have access to hundreds of packages/middleware in the Timesys repository, enabling them to easily design custom Linux BSPs that provide a solid development environment for building value-add Linux applications. A full suite of tools is available for designing, building, debugging, optimizing, deploying, and maintaining commercial-grade software systems. In addition to software and development tools, Timesys offers project-based commercial support that provides help with build and runtime issues, professional services and customized training for professionals who want to minimize risk and schedule delays.

Build a custom BSP / SDK or download a pre-built starting point for your PHYTEC phyCORE AM335x RDK.

NOTE: Existing users, please visit www.timesys.com/register to add the PHYTEC phyCORE AM335x RDK to your account.
For comprehensive development resources, visit our
TI AM335x Sitara™ Development Center.
 

Additions and Updates in the Factory

Recent Factory additions include:

bdwgc

Version: 7.4.2-1
Category: Development
License: BSD-like
Description: The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C malloc or C++ new. It allows you to allocate memory basically as you normally would, without explicitly deallocating memory that is no longer useful. The collector automatically recycles memory when it determines that it can no longer be otherwise accessed.

libevdev

Version: 1.4-1
Category: Graphics
License: MIT
Description: libevdev is a wrapper library for evdev devices. It moves the common tasks when dealing with evdev devices into a library and provides a library interface to the callers, thus avoiding erroneous ioctls, etc.

libinput

Version: 0.12.0-1
Category: Graphics
License: MIT
Description: libinput is a library to handle input devices in Wayland compositors and to provide a generic X.Org input driver. It provides device detection, device handling, input device event processing and abstraction so minimize the amount of custom input code compositors need to provide the common set of functionality that users expect.

memtester

Version: 4.3.0-1
Category: Development
License: GPLv2
Description: memtester is a userspace utility for testing the memory subsystem for faults.

Recent Factory updates include:

mtdev

Version: 1.1.5-1
Category: Utilities

openssh

Version: 6.9p1-1
Category: Networking

openssl

Version: 1.0.1p-1
Category: Networking

wayland

Version: 1.7.0-1
Category: Graphics

weston

Version: 1.7.0-1
Category: Graphics

View all available packages in the Timesys Repository »
 

Training & Events

16 Sept. 2015  •  Kista, Sweden
17 Sept. 2015  •  Herlev, Denmark

Free Linux Seminar:
Intro to Yocto Project

Join the introduction to Yocto for the i.MX6 platform based on Arrow System On Module solution from SolidRun.

Attendees will be introduced to the Yocto Project structure and build process. Topics include: Yocto structure, recipes, BitBake, layers, Poky, Yocto customizations, Yocto BSP, IDE integration, application development and more. Seminar attendees will receive a free CuBoxTV micro-computer.

This seminar is being sponsored by Arrow, Freescale, SolidRun and Timesys.

Learn more / register »

www.timesys.com

     

©2015 Timesys Corporation. 428 Forbes Avenue - Suite 2100, Pittsburgh, PA 15219

To subscribe to the LinuxLink Alert newsletter, click here.

Timesys and the Timesys logo are registered trademarks of Timesys Corporation. ARM and Cortex are trademarks of ARM Limited. Linux is a registered trademark of Linus Torvalds in the United States and other countries. TI is a trademark of Texas Instruments. Yocto Project is a registered trademark of The Linux Foundation. All other company and product names mentioned are trademarks and/or registered trademarks of their respective owners.

commercial embedded Linux support contracts