Porting means making something work on an environment it is not designed for. Embedded Linux porting means making Linux work on an embedded platform, for which it was not designed. Porting is a broader term and when I say embedded Linux porting, it not only involves Linux kernel porting, but also porting a first stage bootloader, a second stage bootloader and, last but not the least, the applications. Porting differs from development.
CH1: Genesis of Linux project : : Introduction
Element 1:Tool chain (Air)Element 2:Boot loader (Earth)
Element 3:Kernel (Fire)
Element 4:User space (Water)
CH2: Toolchain Setup : :Introduction to Toolchain
What is ToolchainToolchain Components
Building Toolchain
Build Systems for Toolchain
Toolchain Setup Environment
Toolchain compilation and usage
CH3: Bootloader Compilation : : Introduction to Bootloader
What is LoaderWhat is Bootloader
1st and 2nd Stage Bootloader
U-Boot Bootloader Porting on New
U-Boot Commands Lists
Bootloader Cross-Compilation
Downloading on Target board
Bootloader commands and usage,
Bootloader code customization, U-Boot
U-Boot Image for Target Board
CH4: Kernel Configuration : : Linux kernel Cross Compilation
Download the kernel source code linux-xx.yy.zz.tar.bz2untar it with 'tar -jxvf linux-xx.yy.zz.tar.bz2
Copy the new config as .config in kernel top level directory
Update the the config file using make ARCH=arm menuconfig
Compile the kernel with make ARCH=arm CROSS_COMPILE=
Generating Kernel Image uImage or zImage, dtb
Transfer this is to the Target Board and reboot to boot with new kernel image using tftp or nfs
Application development and Cross Compilation
CH5: Porting Linux kernel,U-boot images on Target board
Sd Card partitioning and FormattingWrtting uImage,U-boot.bin into Sd cards
Extract and copy rootfs in SD-Card rootfs partition
Configuring NFS and using rootfs over NFS
Building the Embedded Board Using NFS
CH6: Building the Device driver as a part of Kernel(in kernel tree)
We will add a Device driver to the kernelCopy the file driver.c to linux-xx.yy.zz/drivers/char/
Edit the Kconfig file in drivers/char/
Edit the makefile and add obj-$(CONFIG_MY_DRIVER) += driver.o
Configure the kernel with make ARCH=arm menuconfig
Now, compile the kernel with make ARCH=arm CROSS_COMPILE=
Test the driver, with application Program
CH7: BUILDING AND RUNNING MODULES ON BEAGLEBONE BLACK
Kernel Architecture or ModelRole of the Device Drivers
Writing Your first kernel module
Module Related Commands
Kernel Module vs Applications
Compiling Modules
Loading and Unloading Modules
Module Parameters
Weekend and Weekdays Training Courses on Linux Kernel, Bootloader, Toolchain and Filesystems
- What would you learn about Porting in Embisyslabs?
- A Linux kernel, C library, and C compiler overview
- Configuring and Cross-Compilation of Kernel Source
- Cross-Compilation of U-boot Loader.
- Loading and Unloading Modules on Beaglebone
- Creating an ext4 file system on the new partition
- Dealing with Software and hardware requirements
- CH1: Genesis of Linux project : : Introduction
- CH2: Toolchain Setup : :Introduction to Toolchain
- CH3: Bootloader Compilation : : Introduction to Bootloader
- CH4: Kernel Configuration : : Linux kernel Cross Compilation
- CH5: Porting Linux kernel,U-boot images on Target board
- CH6: Building the Device driver as a part of Kernel(in kernel tree)
- CH7: BUILDING AND RUNNING MODULES ON BEAGLEBONE BLACK