Personal tools

Log in

Changes

From IGEP - ISEE Wiki

Jump to: navigation, search

The Linux kernel

541 bytes removed, 13:46, 12 March 2018
Linux kernels
<meta name="description" content="All you need to know about the Linux kernel for IGEP Processor Boards. How to cross compile, get stable versions and get the latest development versions, etc."></meta><meta name="keywords" content="Linux, IGEP, ARM, OMAP3, AM335x"></meta> = What is Linux? = 
[[Image:tux.png|left]][http://www.kernel.org The Linux Kernel Archives]Linux is a clone of the 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.
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.
= Overview of How -To=This How-To is meant to be a starting point for people to cross compile the linux learn build a kernel =image for IGEP Processor Boards as quickly and easily as possible.
Embedded Linux is =How to cross compile the linux kernel=In order to build the use of a Linux operating system in embedded computer systems such as mobile phones, personal digital assistants, media players, setKernel for IGEP PROCESSOR BOARDS it's recommended to cross-top boxescompile the kernel, and other consumer electronics devices, networking equipmentthat's, build the kernel in your HOST machine control, industrial automation, navigation equipment and medical instrumentsfor a target architecture.
Unlike desktop and server versions of Linux, embedded versions of Linux To [[Ubuntu 16.04 LTS Toolchain|setup the cross-compiling]] there are designed for devices with relatively limited resources, such as cell phones and set-top boxestwo fundamental variables that the kernel uses to select the target architecture. Due to concerns such as cost and sizeNormally these values are guessed based on your build environment, embedded devices usually have much less RAM and secondary storage than desktop computers, and are likely to use flash memory instead but of a hard drive. Since course that environment here does not match our target embedded devices serve specific rather than general purposessystem, developers optimize their embedded Linux distributions so we'll need to target specific hardware configurations and usage situationsoverride them. These optimizations can include reducing the number of device drivers and software applications, The variables in question are ARCH and modifying the Linux kernel to be a real-time operating systemCROSS_COMPILE.
== Overview of How-To ==The ARCH variable is the architecture you're targetting as the kernel knows it. For IGEP PROCESSOR BOARDS you'll set to "arm" architecture.
This HowHopefully the CROSS_COMPILE variable is pretty self-explanatory. Set this to the prefix of your toolchain (including the trailing dash "-To "). So if your toolchain is meant to be a starting point for people to learn build a kernel image for IGEP v2 devices invoked as quickly say arm-linux-gnueabihf-gcc, just chop off that trailing gcc and easily as possiblethat's what you use: arm-linux-gnueabihf-.
This How-To works with There is an additional variable, INSTALL_MOD_PATH, which defines where the Ubuntu 8/lib directory will be created, and all the modules stored.04 IGEP v2.0 SDK Virtual Machine but most of While you don't have to transfer the contents are valid also for other GNU/Linux distributions. We do not issue kernel sources to your target device, if you build any guarantee that modules, you'll want this will work on other distributionsdirectory.
== Current stable kernels ==As example, once you've downloaded the kernel source, you should follow these steps:
make ARCH=arm CROSS_COMPILE=[cross compiler] [defconfig] make ARCH= Linux OMAP v2.6.37 series ==arm CROSS_COMPILE=[cross compiler] zImage modulesNewest kernels can require build the dtbs too as:
See the make ARCH=arm CROSS_COMPILE=[[Linux Kernel 2.6.37.y]cross compiler] articlezImage modules dtbs
=== Linux OMAP v2.6.35 series ===The result will be a zImage file in <code>${KERNEL_SOURCES}/arch/arm/boot</code>
See the [[Linux Kernel 2.6.35.y]] articleAnd dabs will be in <code>${KERNEL_SOURCES}/arch/arm/boot/dts</code>
=== Linux mainline tree (development) ===At last you can install the kernel modules to your target rootfs using this command
<span style make ARCH="color: rgb(255, 0, 0);">'''Note:''' The 'master' branch is where the development work takes place and you should use this if you're after arm CROSS_COMPILE=[cross compiler] modules_install INSTALL_MOD_PATH=[path 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.'''</span> your target rootfs] Additional patches can be found at httpExample://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.isee.biz
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
Enter in sources 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.
cd linux===IGEP Boards based on NXP-omap-2.6Freescale Processors=== Get your desired branch with git checkout <release> -b <your_named_release> git checkout v2* [[Linux Kernel 3.614.37-2 -b v228.6y]] (iMX6) processor board based.37-2-local  and build with   make ARCH=arm CROSS_COMPILE=* [cross compiler] igep00x0_defconfig make ARCH=arm CROSS_COMPILE=[cross compiler] zImage modules The result will be an uImage file in arch/arm/boot directoryLinux Kernel 4.9. You can install the kernel modules to your target rootfs   make ARCH=arm CROSS_COMPILE=[cross compilery] 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]]