mirror of
https://github.com/mayfrost/guides.git
synced 2024-11-28 02:11:46 +00:00
Update CROSS-COMPILING.md
This commit is contained in:
parent
e52d551f6d
commit
ef4970fe2b
@ -1,5 +1,5 @@
|
|||||||
# CROSS-COMPILING
|
# CROSS-COMPILING
|
||||||
Installing a distro for ARM. The distro is CRUX, the target is an Odroid C2. The device will appears as "_/dev/mmcblk0_" (with "_/dev/mmcblk0p1_" and "_/dev/mmcblk0p2_" as the partitions) in the target machine, but it can be seen as "_/dev/sdX_" in your x86 computer.
|
Installing a distro for ARM. The distro is CRUX, the target is an Odroid C2. The device will appears as "_/dev/mmcblk0_" (with "_/dev/mmcblk0p1_" and "_/dev/mmcblk0p2_" as the partitions) in the target machine, but it can be seen as "_/dev/sdX_" in your x86 computer. The unpacking tool is provided by [Atool](http://www.nongnu.org/atool/).
|
||||||
|
|
||||||
|
|
||||||
## TOC
|
## TOC
|
||||||
@ -15,16 +15,17 @@ Installing a distro for ARM. The distro is CRUX, the target is an Odroid C2. The
|
|||||||
## CROSS COMPILATION TOOLS
|
## CROSS COMPILATION TOOLS
|
||||||
Installing GCC cross compilation tools (for the X86 machine, not target ARM). Includes binutils.
|
Installing GCC cross compilation tools (for the X86 machine, not target ARM). Includes binutils.
|
||||||
|
|
||||||
* OPTION 1: From repository (Devuan example)
|
* OPTION 1: Proportioned by [Linaro](https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/)
|
||||||
|
```
|
||||||
|
wget -c https://releases.linaro.org/components/toolchain/binaries/latest/aarch64-linux-gnu/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
|
||||||
|
aunpack gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu.tar.xz
|
||||||
|
```
|
||||||
|
|
||||||
|
* OPTION 2: From repository (Devuan example)
|
||||||
`sudo apt-get install gcc-arm-none-eabi`
|
`sudo apt-get install gcc-arm-none-eabi`
|
||||||
|
NOTE: Check your tools are up-to-date to prevent errors like the lack of option _"-mgeneral-regs-only"_.
|
||||||
|
|
||||||
* OPTION 2: Proportioned by odroid
|
Name of "_CROSS_COMPILE_" variable will change depending on the choosen option. This guide assumes cross-compile tools are from Linaro and therefore will equal to "_CROSS\_COMPILE=<LINARO\_TOOLS\_DIRECTORY>/bin/aarch64-linux-gnu-_"
|
||||||
```
|
|
||||||
wget http://odroid.in/guides/ubuntu-lfs/arm-unknown-linux-gnueabi.tar.xz
|
|
||||||
tar -Jxf arm-unknown-linux-gnueabi.tar.xz
|
|
||||||
```
|
|
||||||
|
|
||||||
Name of "_CROSS_COMPILE_" variable will change depending on the choosen option. This guide assumes from repository and therefore will equal to "_CROSS\_COMPILE=arm-none-eabi-_"
|
|
||||||
|
|
||||||
|
|
||||||
## PARTITIONING
|
## PARTITIONING
|
||||||
@ -80,7 +81,7 @@ Minimum 3072 bytes free at the start of the drive and before the boot partition.
|
|||||||
```
|
```
|
||||||
git clone https://github.com/hardkernel/u-boot.git -b odroidc2-v2015.01
|
git clone https://github.com/hardkernel/u-boot.git -b odroidc2-v2015.01
|
||||||
cd u-boot
|
cd u-boot
|
||||||
make ARCH=arm64 CROSS_COMPILE=arm-none-eabi- odroidc2_defconfig
|
make ARCH=arm64 CROSS_COMPILE=<LINARO\_TOOLS\_DIRECTORY>/bin/aarch64-linux-gnu- odroidc2_defconfig
|
||||||
make -j4
|
make -j4
|
||||||
cd boot
|
cd boot
|
||||||
```
|
```
|
||||||
@ -122,12 +123,12 @@ Must be FAT32 and 64 MB minimum.
|
|||||||
`cd odroidc2-kernel-folder`
|
`cd odroidc2-kernel-folder`
|
||||||
|
|
||||||
* OPTION 1: Make kernel config (oneliner)
|
* OPTION 1: Make kernel config (oneliner)
|
||||||
`make ARCH=arm64 CROSS_COMPILE=arm-none-eabi- odroidc2_defconfig`
|
`make ARCH=arm64 CROSS_COMPILE=<LINARO\_TOOLS\_DIRECTORY>/bin/aarch64-linux-gnu- odroidc2_defconfig`
|
||||||
|
|
||||||
* OPTION 2: Make kernel config
|
* OPTION 2: Make kernel config
|
||||||
```
|
```
|
||||||
export ARCH=arm64
|
export ARCH=arm64
|
||||||
export CROSS_COMPILE=arm-none-eabi-
|
export CROSS_COMPILE=<LINARO\_TOOLS\_DIRECTORY>/bin/aarch64-linux-gnu-
|
||||||
make odroidc2_defconfig
|
make odroidc2_defconfig
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -137,20 +138,24 @@ make odroidc2_defconfig
|
|||||||
|
|
||||||
## COMPILING KERNEL
|
## COMPILING KERNEL
|
||||||
* Compiling devicetree blobs to destination "INSTALL_DTBS_PATH=/mnt/boot/dtbs/meson64_odroidc2.dtb"
|
* Compiling devicetree blobs to destination "INSTALL_DTBS_PATH=/mnt/boot/dtbs/meson64_odroidc2.dtb"
|
||||||
`make -j 4 ARCH=arm64 CROSS_COMPILE=arm-none-eabi- INSTALL_DTBS_PATH=/mnt/boot/dtbs/ dtbs`
|
`make -j 4 ARCH=arm64 CROSS_COMPILE=<LINARO\_TOOLS\_DIRECTORY>/bin/aarch64-linux-gnu- INSTALL_DTBS_PATH=/mnt/boot/dtbs/ dtbs`
|
||||||
* Compiling kernel to destination "INSTALL_PATH=/mnt/boot/Image"
|
* Compiling kernel to destination "INSTALL_PATH=/mnt/boot/Image"
|
||||||
`make -j 4 ARCH=arm64 CROSS_COMPILE=arm-none-eabi- INSTALL_PATH=/mnt/boot/ Image`
|
`make -j 4 ARCH=arm64 CROSS_COMPILE=<LINARO\_TOOLS\_DIRECTORY>/bin/aarch64-linux-gnu- INSTALL_PATH=/mnt/boot/ Image`
|
||||||
* Compiling the modules to destination "INSTALL_MOD_PATH=/mnt/"
|
* Compiling the modules to destination "INSTALL_MOD_PATH=/mnt/"
|
||||||
`make -j 4 ARCH=arm64 CROSS_COMPILE=arm-none-eabi- INSTALL_MOD_PATH=/mnt/ modules_install`
|
`make -j 4 ARCH=arm64 CROSS_COMPILE=<LINARO\_TOOLS\_DIRECTORY>/bin/aarch64-linux-gnu- INSTALL_MOD_PATH=/mnt/ modules`
|
||||||
|
* Installing the modules to destination "INSTALL_MOD_PATH=/mnt/"
|
||||||
|
`make -j 4 ARCH=arm64 CROSS_COMPILE=<LINARO\_TOOLS\_DIRECTORY>/bin/aarch64-linux-gnu- INSTALL_MOD_PATH=/mnt/ modules_install`
|
||||||
* Compiling firmware to destination "INSTALL_FW_PATH=/mnt/lib/firmware/"
|
* Compiling firmware to destination "INSTALL_FW_PATH=/mnt/lib/firmware/"
|
||||||
`make -j 4 ARCH=arm64 CROSS_COMPILE=arm-none-eabi- INSTALL_FW_PATH=/mnt/lib/firmware/ firmware_install`
|
`make -j 4 ARCH=arm64 CROSS_COMPILE=<LINARO\_TOOLS\_DIRECTORY>/bin/aarch64-linux-gnu- INSTALL_FW_PATH=/mnt/lib/firmware/ firmware_install`
|
||||||
* Compiling kernel C headers to destination "INSTALL_HDR_PATH=/mnt/usr/"
|
* Compiling kernel C headers to destination "INSTALL_HDR_PATH=/mnt/usr/"
|
||||||
`make -j 4 ARCH=arm64 CROSS_COMPILE=arm-none-eabi- INSTALL_HDR_PATH=/mnt/usr/ headers_install`
|
`make -j 4 ARCH=arm64 CROSS_COMPILE=<LINARO\_TOOLS\_DIRECTORY>/bin/aarch64-linux-gnu- INSTALL_HDR_PATH=/mnt/usr/ headers_install`
|
||||||
|
|
||||||
|
|
||||||
## ROOT PARTITION
|
## ROOT PARTITION
|
||||||
Can be the rest of the disk.
|
Can be the rest of the disk.
|
||||||
|
|
||||||
|
* Go to root directory
|
||||||
|
`cd /mnt/`
|
||||||
* Download CRUX image
|
* Download CRUX image
|
||||||
`wget -c http://resources.crux-arm.nu/files/devel-test/3.3/crux-arm-rootfs-3.3-64b-RC2.tar.xz`
|
`wget -c http://resources.crux-arm.nu/files/devel-test/3.3/crux-arm-rootfs-3.3-64b-RC2.tar.xz`
|
||||||
* Extract CRUX image
|
* Extract CRUX image
|
||||||
|
Loading…
Reference in New Issue
Block a user