Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

The Linux kernel

327 bytes added, 13:46, 12 March 2018
Linux kernels
<meta name="description" contentWhat is Linux?="All you need to know about the Linux [[Image:tux.png|left]][http://www.kernel in IGEP Processor Boards. How to cross compileorg The Linux Kernel Archives]Linux is a clone of the operating system Unix, get written from scratch by Linus Torvalds with assistance from a loosely-knit team of hackers across the latest version, etcNet. It aims towards POSIX and Single UNIX Specification compliance."></meta>
It has all the features you would expect in a modern fully-fledged Unix, including true multitasking, virtual memory, shared libraries, demand loading, shared copy-on-write executables, proper memory management, and multistack networking including IPv4 and IPv6.
= How to cross compile the linux kernel =Although originally developed first for 32-bit x86-based PCs (386 or higher), today Linux also runs on a multitude of other processor architectures, in both 32- and 64-bit variants.
Embedded Linux =Overview of How-To=This How-To is the use of meant to be a starting point for people to learn build a Linux operating system in embedded computer systems such kernel image for IGEP Processor Boards as mobile phones, personal digital assistants, media players, set-top boxes, quickly and other consumer electronics devices, networking equipment, machine control, industrial automation, navigation equipment and medical instrumentseasily as possible.
Unlike desktop and server versions of Linux, embedded versions of Linux are designed for devices with relatively limited resources, such as cell phones and set-top boxes. Due =How to concerns such as cost and size, embedded devices usually have much less RAM and secondary storage than desktop computers, and are likely cross compile the linux kernel=In order to use flash memory instead of a hard drive. Since embedded devices serve specific rather than general purposes, developers optimize their embedded build the Linux distributions Kernel for IGEP PROCESSOR BOARDS it's recommended to target specific hardware configurations and usage situations. These optimizations can include reducing cross-compile the number of device drivers and software applicationskernel, and modifying that's, build the Linux kernel to be in your HOST machine for a real-time operating systemtarget architecture.
== Overview To [[Ubuntu 16.04 LTS Toolchain|setup the cross-compiling]] there are two fundamental variables that the kernel uses to select the target architecture. Normally these values are guessed based on your build environment, but of How-To ==course that environment here does not match our target embedded system, so we'll need to override them. The variables in question are ARCH and CROSS_COMPILE.
This How-To The ARCH variable is meant to be a starting point for people to learn build a the architecture you're targetting as the kernel image for knows it. For IGEP v2 devices as quickly and easily as possiblePROCESSOR BOARDS you'll set to "arm" architecture.
This HowHopefully the CROSS_COMPILE variable is pretty self-To works with explanatory. Set this to the Ubuntu 8.04 IGEP v2.0 SDK Virtual Machine but most prefix of your toolchain (including the contents are valid also for other GNU/Linux distributionstrailing dash "-"). We do not issue any guarantee So if your toolchain is invoked as say arm-linux-gnueabihf-gcc, just chop off that trailing gcc and that this will work on other distributions's what you use: arm-linux-gnueabihf-.
== Current stable kernels ==There is an additional variable, INSTALL_MOD_PATH, which defines where the /lib directory will be created, and all the modules stored. While you don't have to transfer the kernel sources to your target device, if you build any modules, you'll want this directory.
=== Linux OMAP v2.6.37 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.37.ydefconfig] make ARCH=arm CROSS_COMPILE=[cross compiler] articlezImage modulesNewest kernels can require build the dtbs too as:
make ARCH=arm CROSS_COMPILE== Linux OMAP v2.6.35 series ===[cross compiler] zImage modules dtbs
See the [[Linux Kernel 2.6.35.y]] articleThe result will be a zImage file in <code>${KERNEL_SOURCES}/arch/arm/boot</code>
=== Linux mainline tree (development) ===And dabs will be in <code>${KERNEL_SOURCES}/arch/arm/boot/dts</code>
<span style="color: rgb(255, 0, 0);">'''Note:''' The 'master' branch is where At last you can install the development work takes place and you should use this if you're after kernel modules 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 your target rootfs using this is undesirable we recommend using one of the release branches. '''Use ONLY for development purposes.'''</span> command
Additional patches can be found at http make ARCH=arm CROSS_COMPILE=[cross compiler] modules_install INSTALL_MOD_PATH=[path to your target rootfs]Example://patchwork.kernel.org/project/linux-omap/list  This Linux kernel is also considered as a downstream of tmlind's Linux kernel. The main difference between this tree and the linux-omap tree is that the igep OMAP tree has unpublished patches for IGEP v2 support.  Clone GIT repository from git.igep.es
git clone git://git.isee.bizmake ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- omap2plus_defconfig<br>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage modules dtbs<br>make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules_install INSTALL_MOD_PATH=/pubmedia/scmuser/linux-omap-2.6.gitrootfs
Get your desired branch with==Linux kernels== git checkout <release> -b <your_named_release>===IGEP Boards based on Texas Instruments  Processors=== git checkout v2* [[Linux Kernel 2.6.37-2 -b v2.6y]] (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.37-2-local
Enter in sources directory  cd linux===IGEP Boards based on NXP-omap-2.6 and build with   make ARCHFreescale Processors==arm CROSS_COMPILE=* [[cross compilerLinux Kernel 3.14.28.y] igep00x0_defconfig make ARCH=arm CROSS_COMPILE=[cross compiler] zImage modules The result will be an uImage file in arch/arm/boot directory (iMX6) processor board based. You can install the kernel modules to your target rootfs   make ARCH=arm CROSS_COMPILE=* [[cross compilerLinux Kernel 4.9.y] modules_install INSTALL_MOD_PATH=[path to your target rootfs](iMX6) processor board based.
=See also=
*[[How to setup a cross compiler]]
[[Category:Linux Kernel]]