Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

The Linux kernel

556 bytes added, 13:46, 12 March 2018
Linux kernels
= How to cross compile What is Linux?=[[Image:tux.png|left]][http://www.kernel.org The Linux Kernel Archives]Linux is a clone of the linux kernel =operating system Unix, written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the Net. It aims towards POSIX and Single UNIX Specification compliance.
Embedded Linux is It has all the use of features you would expect in a Linux operating system in embedded computer systems such as mobile phonesmodern fully-fledged Unix, including true multitasking, virtual memory, personal digital assistantsshared libraries, media playersdemand loading, setshared copy-top boxeson-write executables, proper memory management, and other consumer electronics devices, multistack networking equipment, machine control, industrial automation, navigation equipment including IPv4 and medical instrumentsIPv6.
Unlike desktop and server versions of Linux, embedded versions of Linux are designed Although originally developed first for devices with relatively limited resources, such as cell phones and set32-bit x86-top boxes. Due to concerns such as cost and sizebased PCs (386 or higher), embedded devices usually have much less RAM and secondary storage than desktop computers, and are likely to use flash memory instead of today Linux also runs on a hard drive. Since embedded devices serve specific rather than general purposes, developers optimize their embedded Linux distributions to target specific hardware configurations and usage situations. These optimizations can include reducing the number multitude of device drivers and software applicationsother processor architectures, in both 32- and modifying the Linux kernel to be a real64-time operating systembit variants.
== Overview of How-To ==This How-To is meant to be a starting point for people to learn build a kernel image for IGEP Processor Boards as quickly and easily as possible.
This =How-To is meant to be a starting point cross compile the linux kernel=In order to build the Linux Kernel for people IGEP PROCESSOR BOARDS it's recommended to learn cross-compile the kernel, that's, build a the kernel image in your HOST machine for IGEP v2 devices as quickly and easily as possiblea target architecture.
This How-To works with the [[Ubuntu 816.04 IGEP v2LTS Toolchain|setup the cross-compiling]] there are two fundamental variables that the kernel uses to select the target architecture.0 SDK Virtual Machine Normally these values are guessed based on your build environment, but most of the contents course that environment here does not match our target embedded system, so we'll need to override them. The variables in question are valid also for other GNU/Linux distributions. We do not issue any guarantee that this will work on other distributionsARCH and CROSS_COMPILE.
== Current stable kernels ==The ARCH variable is the architecture you're targetting as the kernel knows it. For IGEP PROCESSOR BOARDS you'll set to "arm" architecture.
=== Linux OMAP v2Hopefully the CROSS_COMPILE variable is pretty self-explanatory.6Set this to the prefix of your toolchain (including the trailing dash "-"). So if your toolchain is invoked as say arm-linux-gnueabihf-gcc, just chop off that trailing gcc and that's what you use: arm-linux-gnueabihf-.37 series ===
See There is an additional variable, INSTALL_MOD_PATH, which defines where the [[Linux Kernel 2/lib directory will be created, and all the modules stored.6.37While you don't have to transfer the kernel sources to your target device, if you build any modules, you'll want this directory.y]] article
=== Linux OMAP v2.6.35 series ===As example, once you've downloaded the kernel source, you should follow these steps:
See the make ARCH=arm CROSS_COMPILE=[cross compiler] [Linux Kernel 2.6.35.ydefconfig] make ARCH=arm CROSS_COMPILE=[cross compiler] articlezImage modulesNewest kernels can require build the dtbs too as:
=== Linux mainline tree (development) make ARCH=arm CROSS_COMPILE==[cross compiler] zImage modules dtbs
The result will be a zImage file in <span style="color: rgb(255, 0, 0);"code>'''Note:''' The 'master' branch is where the development work takes place and you should use this if you're after to work with the latest cutting edge developments. It is possible trunk can suffer temporary periods of instability while new features are developed and if this is undesirable we recommend using one of the release branches. '''Use ONLY for development purposes.'''${KERNEL_SOURCES}/arch/arm/boot</spancode>
Additional patches can And dabs will be found at http:in <code>${KERNEL_SOURCES}/arch/patchwork.kernel.orgarm/projectboot/linux-omapdts</list code>
This Linux kernel is also considered as a downstream of tmlind's Linux At last you can install the kernel. The main difference between modules to your target rootfs using this tree and the linux-omap tree is that the igep OMAP tree has unpublished patches for IGEP v2 support. command
Clone GIT repository from git.igep.es make ARCH=arm CROSS_COMPILE=[cross compiler] modules_install INSTALL_MOD_PATH=[path to your target rootfs] git clone gitExample://git.igep.es/pub/scm/linux-omap-2.6.git cd linux-omap-2.6 and build with
make ARCH=arm CROSS_COMPILE=[cross compiler] arm-linux-gnueabihf- omap2plus_defconfig <br>make ARCH=arm CROSS_COMPILE=[cross compiler] uImage arm-linux-gnueabihf- zImage modulesdtbs<br>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules_install INSTALL_MOD_PATH=/media/user/rootfs
The result will be an uImage file in arch/arm/boot directory==Linux kernels=====IGEP Boards based on Texas Instruments  Processors===* [[Linux Kernel 2.6.37.y]] (OMAP35xx and DM3730) processor board based.* [[Linux Kernel 4.9.y]] (OMAP35xx, DM3730, AM335x) processor board based.* [[Linux Kernel 3.8.y]] (OMAP5432) processor board based. You can install the kernel modules to your target rootfs
make ARCH=arm CROSS_COMPILE==IGEP Boards based on NXP-Freescale Processors===* [cross compiler[Linux Kernel 3.14.28.y] modules_install INSTALL_MOD_PATH=] (iMX6) processor board based.* [[path to your target rootfsLinux Kernel 4.9.y]](iMX6) processor board based.
=See also=
*[[How to setup a cross compiler]]
[[Category:Software|Kernel]]
[[Category:Linux Kernel]]
[[Category:Tutorials]]
[[Category:Software applications]]