Difference between revisions of "Mu-arm"
From Bashlinux
(talk) |
(Redirected page to ARM) |
||
(2 intermediate revisions by one other user not shown) | |||
Line 1: | Line 1: | ||
+ | #REDIRECT [[ARM]] |
||
− | __NOTOC__ |
||
− | = ARM Microcontroller = |
||
− | |||
− | Mini 2440 |
||
− | * [[mini2440-friendlyarm|Friendly Arm]] |
||
− | * [[mini2440-pengutronix|Pengutronix]] |
||
− | |||
− | == How to build the kernel == |
||
− | To get running the kernel, we need to setup the environment with the proper toolchain so we can start to cross-compile the kernel. |
||
− | |||
− | === GNU ARM Toolchain === |
||
− | * Download arm-none-linux-gnueabi from sourcery.mentor.com or the manufacturer website |
||
− | * Decompress the tarball and place in `~/CROSS_COMPILER` |
||
− | * Add the path to your environment by editing `~/.bash_profile` and adding |
||
− | |||
− | <pre><nowiki> |
||
− | PATH=$PATH:$HOME/bin:~/CROSS_COMPILER/arm/4.4.3/bin |
||
− | </nowiki></pre> |
||
− | |||
− | |||
− | === Build the kernel === |
||
− | * Download the kernel from kernel.org |
||
− | * Create a working directory and decompress the kernel inside there |
||
− | |||
− | <pre><nowiki> |
||
− | # mkdir kernel |
||
− | # cd kernel |
||
− | # wget http://mirrors.kernel.org/...linux-2.6.36... |
||
− | # tar zxvf linux-2.6.36*tgz |
||
− | # mkdir kernel-bin |
||
− | # cd linux-2.6.36 |
||
− | </nowiki></pre> |
||
− | |||
− | |||
− | * Generate `.config` |
||
− | |||
− | <pre><nowiki> |
||
− | CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make O=../kernel-bin/ mini2440_defconfig |
||
− | </nowiki></pre> |
||
− | |||
− | |||
− | * Modify the kernel |
||
− | |||
− | <pre><nowiki> |
||
− | # cd ../kernel-bin |
||
− | # make ARCH=arm menuconfig |
||
− | # cd ../mini2440 |
||
− | </nowiki></pre> |
||
− | |||
− | |||
− | * Cross compile the kernel and modules |
||
− | |||
− | <pre><nowiki> |
||
− | CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make O=../kernel-bin/ |
||
− | </nowiki></pre> |
||
− | |||
− | |||
− | * If using uboot, then generate uImage |
||
− | |||
− | <pre><nowiki> |
||
− | # ../uboot/tools/mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d ../kernel-bin/arch/arm/boot/zImage ../uImage |
||
− | </nowiki></pre> |
||
− | |||
− | |||
− | === Kernel Modules === |
||
− | * Build the modules that are going to be placed into the filesystem |
||
− | |||
− | <pre><nowiki> |
||
− | CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make O=../kernel-bin/ modules |
||
− | CROSS_COMPILE=arm-none-linux-gnueabi- ARCH=arm make O=../kernel-bin/ INSTALL_MOD_PATH=.. modules_install |
||
− | </nowiki></pre> |
||
− | |||
− | |||
− | * Mount the FS image and copy the files inside the root folder |
||
− | |||
− | <pre><nowiki> |
||
− | # cp ../lib/modules/2.6.36/ /mnt/mini2440/rootfs/lib/modules/ -r |
||
− | </nowiki></pre> |
||
− | |||
− | |||
− | === uboot === |
||
− | * Get the sources from git repository |
||
− | |||
− | <pre><nowiki> |
||
− | # mkdir uboot |
||
− | # cd uboot |
||
− | # git clone git://repo.or.cz/u-boot-openmoko/mini2440.git |
||
− | </nowiki></pre> |
||
− | |||
− | |||
− | * Prepare and build uboot |
||
− | |||
− | <pre><nowiki> |
||
− | # cd mini2440 |
||
− | # make mini2440_config |
||
− | # make all |
||
− | </nowiki></pre> |
Latest revision as of 21:57, 8 June 2015
Redirect to: