Download presentation
Presentation is loading. Please wait.
Published byClifford Burns Modified over 9 years ago
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 siteswww.kernel.org Probably best not to download the latest version Use the numbering system x.y.z –Even is stable2.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 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. Drivers acorn atm block cdrom char i2c ……. /usr/src/linux scriptsDocumentation init ipckernel Arch alpha arm i386 ia64 m68k ….. FS adfs affs autofs ext2 fat …… Include Asm-alpha Asm-arm Asm-generic Asm-i386 ……… linux lib mmnet
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
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.