Porting%20Linux%20to%20the%20Puppeteer - PowerPoint PPT Presentation

About This Presentation
Title:

Porting%20Linux%20to%20the%20Puppeteer

Description:

Linux is primarily used on Intel Pentium machines. However other architectures are supported. alpha, arm, i386, ia64, m86k, mips, mips64, ppc s390, sh, sparc, sparc64 ... – PowerPoint PPT presentation

Number of Views:35
Avg rating:3.0/5.0
Slides: 10
Provided by: craig60
Category:

less

Transcript and Presenter's Notes

Title: Porting%20Linux%20to%20the%20Puppeteer


1
Porting Linux to the Puppeteer
2
Getting the kernel source
  • You will need a clean version of the linux kernel
    source
  • This can be found at www.kernel.org or lots of
    mirror sites
  • Probably best not to download the latest version
  • Use the numbering system x.y.z
  • Even is stable 2.4.9, 2.6.4 etc
  • Odd is development 2.3.7, 2.5.9 etc

3
Applying patches
  • Linux is primarily used on Intel Pentium machines
  • However other architectures are supported
  • alpha, arm, i386, ia64, m86k, mips, mips64, ppc
    s390, sh, sparc, sparc64
  • To support other architectures patches need
    applying to make specific changes to the source

4
Getting the ARM patches
  • The ARM Linux patches can be found at
    www.arm.linux.org.uk
  • You need to find the patch that applies to your
    particular kernel
  • patch-2.4.18-rmk10.gz for 2.4.18
  • There are specialised patches for specific
    features
  • The patch must be applied to a clean source tree
    in the root of the kernel source
  • Patch p1 patch-2.4.18-rmk10
  • Beware of pre patches!

5
The Linux kernel source
  • In order to configure and port the kernel source
    you will need to know more about its structure.

/usr/src/linux
scripts
Documentation
init
ipc
kernel
mm
net
Include Asm-alpha Asm-arm Asm-generic Asm-i386
linux
FS adfs affs autofs ext2 fat
Drivers acorn atm block cdrom char i2c .
Arch alpha arm i386 ia64 m68k ..
lib
6
The arch directories
  • These contain specific code for each port
  • It has
  • Kernel, lib, mm, boot plus variants and board
    specifics
  • Lib has optimised code for the hardware
  • i.e. memcpy, checksums.

7
Drivers directory
  • Largest amount of code circa 1.5M
  • The area you are most likely to have to
    port/maintain
  • Details on buses
  • Categories of device driver
  • Char, block, net

8
The include directory
  • This is linked a configure time with architecture
    dependant subdirectories
  • For example asm-arm
  • Include/linux for kernel and user apps
  • Beware for some start up code for example
    serial port code

9
Linux/init
  • This has 2 file version.c and main.c
  • version.c has the version banner at boot time
  • main.c is the architecture independent boot code
  • start_kernel is the primary entry point
Write a Comment
User Comments (0)
About PowerShow.com