T2 System Development Environment

Creating custom Linux solutions

(Compiled from r369)

René Rebe

Susanne Klaus

This work is licensed under the Open Publication License, v1.0, including license option B: Distribution of the work or derivative of the work in any standard (paper) book form for commercial purposes is prohibited unless prior permission is obtained from the copyright holder. The latest version of the Open Publication License is presently available at http://www.opencontent.org/openpub/.

(TBA)


Table of Contents

Preface
Audience
How to Read this Book
Conventions Used in This Book
Typographic Conventions
Icons
Organization of This Book
This Book is Free
Acknowledgments
From René Rebe
From Susanne Klaus
1. Introduction
Different as SDE
Different as Distribution
Community
2. Basic Concepts
T2 Architecture
Stable branches versus trunk
3. Hardware and Kernel Support
Linux
uClinux
Minix
Other Operating Systems
4. Building T2
Downloading the T2 Source Code
Using the Scripts
Updating the T2 Source Tree
Switching to Another Tree or Version
Building the Target
Preparing the Build System
Configuring the T2 Build
Downloading the Package Sources
Mirrors
Missing Files?
Fixing URLs
Checksum
Download Tips
Unknown Files
The Actual Compilation Phase
Build Errors
Cleanup
Build Summary
Creating an ISO Image (for CD-ROM Installation)
Building More Than One Target
Building a Single Package
Troubleshooting
chroot: cannot run command `bin/bash'
Found shared files with other packages:
Command Not Found
mount: you must specify the filesystem type
Free Disk Space
Building On a non-T2 Systems
Bootfloppy Images
Building a Required Package Manually
Fixing Broken Packages
Tips
Build a Standard Edition First
Watch Progress
Cluster Build - the Build Speedup
Set the 'nice' Level
5. Inside T2
A Package
Description File (.desc)
The File's Copyright
The End-Uer Information
Who is Responsible?
The Version, State and Other Build Details
Other Tunable Details
Where Does the Package Source Come From?
Configuration File (.conf)
Patch Files (.patch)
Cache File (.cache)
Package Creation in Practice
Preparing
Custom Code
Testing
Getting New Packages Into T2
Compiler Optimisations
The Automated Package Build
Build Stages
Build Priority
Supported Build Styles
Working with Variables
Functions for Variable Modifications
Build System Hooks
Available Hooks
Working with Hooks
Filling Hooks
Evaluating Hooks
Command Wrapper
Available Wrappers
Wrapper Configuration
Environment Variables
Hacking with Bash
Bash Version
General
Introduction
How to Watch the Value of a Variable While Running a Script
How to Interrupt Scripts Based on Conditions
Exceptions
How to Skip Part of a Script While Testing
Convenient Variables
6. T2 Target Development
A New Target From Scratch
Per Package Modifications
Root Filesystem Overlay
7. Installation
Optical Media (CD-ROM, DVD)
Network
Floppy
Standard Boot/Root Floppies
Create Boot/Root Floppies
Create a Single Boot/Root Floppy
Hard Disk
Classic, Textual Install
Preparing for an Installation
CD-ROM Booting on x86
CD-ROM Booting on PowerPC
CD-ROM Booting on SPARC
Bootable Floppies
Boot (First Stage)
Installation (Second Stage)
Partitioning the Hard-Drives
Installation Source
Post Installation
Troubleshooting
Shared Libraries Error
LILO
Out of Disk Space
X Fontconfig Does Not Start
X Has No Window Manager
Exceptional Installation Methods (for Expert Use)
Extracting the Boot-Disks to a Hard-Disk
Direct Installation
1:1 Copy Using DD
1:1 Copy Using Tar
1:1 Copy Using Rsync
Making it bootable
Package management
Package meta-data
Installing or Updating a Package From Source
Installing or Updating a Binary Package
Removing a Package
Consistency Checking of an Installed Package
8. Configuration
Boot Loader
LILO
Clean Install
Configuration Example for Manual Installation
GRUB
Clean Install
Configuration Example for Manual Installation
Creating a GRUB Floppy Disk
Installing GRUB from a floppy disk
Yaboot
Configuration Example for Manual Installation
SILO
Clean Install
Configuration Example for Manual Installation
ABoot
Configuration Example for Manual Installation
I have no root and I want to scream
Linux Kernel
Configuration
Managing Filesystems and Files
Filesystems
Permissions, Users and Groups
Why Should a User Bother?
U/dev
Configuration
Permission Configuration
Hotplug Hardware Configuration
Configuration Files
Initrd
Configuration and Regeneration
Network Configuration
Configuration File
Keywords Recognized by the Basic Module
Keywords Recognized by the DHCP Module
Keywords Recognized by the DNS Module
Keywords Recognized by the Iproute2 Module
Keywords Recognized by the Wireless-tools Module
Keywords Recognized by the Iptables Module
Keywords Recognized by the PPP Module
Profiles
Configuration Examples
Defining Wwo Interfaces and Enabling Forwarding
DHCP and Basic Firewalling
Introducing Profiles
DSL or Cable PPPoE Setups
Command-line Tools
Tricking With Pseudo Interfaces
Compatibility
NFS (Network File System)
Mounting a NFS Export
CD-Writing
Which Driver to Use?
How to Burn a Waw ISO 9660 Image?
CFEngine - a Configuration Engine
Install
Cfengine Configuration
Run
Cron
A. Partitioning Examples
DOS Type Partition Table
Apple Partition Map
Example Session With mac-fdisk
B. Serial Console
Inittab
Lilo
Grub
Aboot, Silo and Yaboot
Connect
C. Copyright
Index

List of Figures

2.1. T2 basic overview
4.1. T2 config screenshot

List of Tables

1.1. T2 SDE, OpenEmbedded and Gentoo compared
5.1. T2 .desc Tags