Embedded Linux FAQ, Help & Docs
:: :: Embedded
Linux Development
HOW TO Documents :: :: ::
Welcome to the LinuxLink Documentation library! The
documents in this collection describe most aspects of embedded Linux
development and provide information about getting the most out of
LinuxLink itself.
If you can’t find what you need, please send us feedback so we can improve
this page.
Getting Started
-
Click the Support at the top of any LinuxLink page
to find out how
to contact Timesys or the LinuxLink community for help, advice, and
assistance.
How to log in to the LinuxLink service.
This document outlines the components of the LinuxLink framework so that
you can get started building and maintaining your embedded Linux
product.
This document will will guide you through a few easy steps that will
enable you to quickly assemble a proven Linux platform for your project
using the Timesys Web Factory.
-
Timesys builds its Linux starting points using the "Factory" build
engine. This same engine is available to LinuxLink subscribers to create
their own custom platforms. The engine is very flexible, allowing a
myriad of options to accomplish this. The goal of this document is to
specify a "recommended" procedure and workflow for using the Factory
build engine to develop an Embedded Linux project as a team.
-
This document describes how to set up the host for the Timesys Desktop
Factory build system.
-
-
This document will guide you through configuring a Linux host system and
booting the target board over tftp and nfs.
-
This document describes how to get up and running with the Timesys
Desktop Factory build system.
-
-
These documents provide specific instructions for booting your target
board with the image created by the Timesys Factory.
-
The Timesys Factory is designed to be run from a Linux host.
However, not all developers have access to a Linux machine for their
work. This guide will show how to host Factory in a VirtualBox virtual
machine running Ubuntu Linux.
How to add or rename teams, assign and unassign subscriptions, and add,
remove, or change members of a LinuxLink team
Factory
-
The Factory implementation combines several community standard (best of
breed) components: LinuxKernelConfig (kconfig) and GNU make.
FactoryBestPractices has instructions on how to get the Factory.
-
This page documents the best practices when using the factory by
detailing setup, configuration, building and using the output, as well
as a cookbook style breakdown of using the functionality provided by the
factory.
-
Describes the directory structure of the Factory build output.
-
Tips and techniques for customizing the Factory for tasks such as
navigating the Factory directory, adding a New Architecture, adding a
new Toolchain, adding a new Board, adding a new Kernel, and adding a New
Package. Also you can find information such as common make variables.
-
Tips on what to do if things go wrong. Includes some common
configuration and environment setup issues and how to resolve them.
-
Timesys provides an "advice" interface which will analyze a Factory
configuration, identify possible problems, and often suggest a
corrective action. This interface provides a place for suggestions or
advice when users choose options that are not incorrect, but appear
logically inconsistent. This document explains how to use the Advice
Service with the Desktop Factory
-
Qt is a cross-platform UI and application toolkit. This document is
designed to help you to cross-build a Qt project and integrate it into
the Timesys Factory.
Embedded Linux Development
-
Describes how the Linux kernel boots and begins running; understanding
this process is
key to running an application on the target.
-
Linux
Device Drivers, 3rd Edition
A great reference by Jonathan Corbet, Alessandro Rubini, and Greg
Kroah-Hartman that
delves into the details about creating device drivers.
-
How to enable login on a serial port other than ttyS0
One reason why real-time systems may not give you the response you want.
How to boot your target board without setting up a DHCP server.
How to ensure Ctrl+C works within Busybox.
Which text editors work well for embedded systems.
Moving from a proprietary operating system such as VxWorks to Linux can
create a strain on the time and resources companies have at their
disposal. Depending on the approach to this exercise the level of effort
required can be significant and may require an in-depth Linux
expertise. This application note identifies different approaches that
are available to companies today, providing a good background for
decision making process.
HOW TO Documents
HOW TO Hack the Kernel
- How
to Use a Custom Boot Logo
This document describes how to display a custom logo on the frame
buffer of your board as the Linux kernel is booting.
-
debugfs is a virtual filesystem used to help developers debug
drivers and kernel subsystems. This document describes how to use
debugfs and add support to a custom driver.
-
gpiolib is a framework for gpio pins on a board. It provides a way
to control gpio pins in userspace.
HOW TO Hack the Root Filesystem (RFS)
-
An initramfs is a filesystem image that runs directly from RAM. It
is packaged as an archive using the cpio tool. The Factory allows you to
automate this process and output your RFS as a cpio-archvied initramfs
with the selection of a few options.
- How
to Automount USB using mdev
This document shows how to automount USB using mdev.
- How
to Automount USB using udev
This document shows how to automount USB using udev.
-
JFFS2 is a file system that was designed to be used on solid-state
memory devices (such as NAND or NOR). It performs automatic
wear-leveling to increase the life of the chip and is aware of
bad-blocks on NAND flash. The typical method for deploying a JFFS2 file
system is to create a JFFS2 image, optionally add summary information
(for faster mount time), and then burn the image directly to flash using
nand_write or flashcp.
-
UBIFS is a file system that acts like LVM with the MTD subsystem. It
is supposedly faster than JFFS2, is safe for devices with bad blocks,
and is overall a super thing to use.
HOW TO Use Devices
-
This document discusses how to use Memory Technology Devices (MTD),
the Linux Flash subsystem. -
This document discusses how to find NAND flash parameters.
-
This document discusses how to find NOR flash parameters.
-
The Memory Technology Device (MTD) interface is a way of abstracting
flash devices as if they were normal block devices. Unlike typical
block devices, however, these flash devices generally lack a partition
table. This document explains how to use kernel command line
partitioning to specify the partitioning scheme of a given flash device.
-
The Linux wireless subsystem is more complex than the standard wired
networking. Many drivers are proprietary, and authentication and
encryption mechanisms are much more common. This document explains how
to use wireless devices to connect to a wireless network.
-
The Linux USB gadget subsystem provides a way to leverage existing
USB device ports in order to use utilities such as NFS, SSH, and FTP by
using the g_ether driver. This document explains how to do so.
-
The g_file_storage driver allows a target embedded device to appear
as a USB Mass Storage device to a host system. It allows you to choose
either a block device or a backing file to act as the backing storage
for this device.
-
The virtual console may blank the LCD display on many boards after
10 minutes until a key is hit on a keyboard. This can be disabled by
either turning off the frame buffer console or by setting the virtual
console KD mode.
HOW TO Test Distributions
-
This document discusses two quick tests for USB gadget drivers.
-
Most people use the RTC to keep track of the system time in
hardware. Therefore, it is probably adequate to use the userspace
utility hwclock provided by either util-linux or busybox. Note that the
util-linux version will test more of the driver than the busybox
version, so we recommend using that. It is possible for the busybox
version to succeed and the util-linux to fail.
HOW TO Use Tools
-
OProfile is a system-wide profiler for Linux systems, capable of
profiling all running code at low overhead. It consists of a kernel
driver and a daemon for collecting sample data, and several
post-profiling tools for turning data into information.
-
This is a starting guide to enabling and using mpatrol. It includes
usage examples and a simple tutorial for finding memory leaks.
-
This is a guide to enabling and using GDBServer. It shows how to
start GDBServer on your Host machine and usage examples for debugging on
the Target.
-
LTP is the Linux Test Project. This document covers running the LTP on
an embedded board running linux and interpreting the results.
-
This is a guide to using the BDI2000 to debug a kernel from the command
line.
HOW TO Use Applications
-
Qt is a cross-platform UI and application toolkit. This document is
designed to help you to cross-build a Qt project and integrate it into
the Timesys Factory.
HOW TO Setup Boards
-
The following documents describe the methods for writing a kernel
and root file system to persistent memory, such as flash or hard disk
drives. This allows you to deploy a Linux system on a platform without
the need for networking.
-
This document shows how to boot using an SD card.
-
This document shows how to write AT91 Bootstrap Loader and U-Boot to
flash on Atmel AT91 SAM9 boards.
-
The AT91CAP9A-DK can boot from either NAND flash or Dataflash.
However, you can also store U-Boot and its environment in NOR flash.
Because the NOR flash is not a default search location for the boot ROM,
you cannot boot only from NOR. Instead, you must load the bootstrap
file from Dataflash or NAND flash, which will then load U-Boot from NOR
flash. This document describes how to load the bootloaders into the
proper locations for this configuration.
-
In order to use Atmel's SAM-BA tool, the board must be in a default
state and the BootROM on the processor will be unable to find any valid
bootloader vectors in persistent memory. This document explains how to
reset different Atmel boards to their default state.
-
NFS timeouts when mounting the RFS over NFS can often be solved by
simply changing the NFS block size.
HOW TO Work With Various Bootloaders
-
The AT91 Bootstrap Loader is a first-stage bootloader for Atmel AT91
chips, such as the AT91SAM9260. It is not capable of booting the kernel
on its own but instead loads a secondary bootloader, such as U-Boot. The
entire purpose of AT91 Bootstrap is to load another program into memory
and configure some of the necessary hardware drivers to aid in this
function.
-
This document shows how to build Atmel's AT91Bootrap Loader from
source.
-
This document focuses on booting from Parallel flash.
-
We currently have no way to reproduce the steps needed to boot the
AT91RM9200-EK from Dataflash. There is an image attached that we were
able to pull from a Dataflash card that will load U-Boot from dataflash.
This is a good way to recover a bricked board.
-
LogicLoader is the proprietary bootloader that Logic puts on all of
its LITEKITS. The source code is not available, although it is possible
to contact Logic if you need help.
-
RedBoot is a complete bootstrap environment for embedded systems.
Based on the eCos Hardware Abstraction Layer, RedBoot inherits the eCos
qualities of reliability, compactness, configurability, and
portability.
-
This document discusses U-Boot, the Universal Boot Loader.
-
This document shows how to build the U-Boot bootloader from source.
-
YAMON™ is the ROM monitor used on MIPS Technologies' development
boards. YAMON provides a set of functions callable by application.
Xilinx Documents
-
Xilinx Platform Studio projects for the ML405 Reference board
-
Xilinx Platform Studio projects for the ML507 Reference board
Other Documents
Explains how to properly set the Memory Overcommit option of the Linux
kernel.
阅读(995) | 评论(0) | 转发(0) |