Next: install gcc toolchain, Up: (dir) [Contents]
This manual is for program, version version.
• install gcc toolchain: | ||
• install qemu: | ||
• install busybox: | ||
• build & run linux kernel: |
Next: install qemu, Previous: Top, Up: Top [Contents]
// install gcc toolchain wget "https://releases.linaro.org/components/toolchain/binaries/latest/arm-eabi/gcc-linaro-7.3.1-2018.05-i686_arm-eabi.tar.xz" tar -Jxf gcc-linaro-7.3.1-2018.05-i686_arm-eabi.tar.xz export ROOT_BIN=/home/zzy/sda6/bin/gcc/gcc-linaro-7.3.1-2018.05-i686_arm-eabi/bin sudo apt-get install gcc-arm-linux-gnueabi
Next: install busybox, Previous: install gcc toolchain, Up: Top [Contents]
// install qemu wget "https://download.qemu.org/qemu-2.12.0.tar.xz" tar -Jxf qemu-2.12.0.tar.xz cd qemu-2.12.0/ mkdir build cd build ../configure --prefix=/home/zzy/sda6/bin/qemu/qemu-2.12.0 --target-list="arm-softmmu,aarch64-softmmu" --audio-drv-list=alsa /home/zzy/sda6/bin/qemu/ make -j8 make install // some errors ERROR: glib-2.12 gthread-2.0 is required to compiler QEMU sudo apt-get install libglib2.0-dev // install som package sudo apt-get install libpixman-1-dev sudo apt-get install flex
Next: build & run linux kernel, Previous: install qemu, Up: Top [Contents]
// busybox wget "https://busybox.net/downloads/busybox-1.28.4.tar.bz2" tar -jxf busybox-1.28.4.tar.bz2 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- defconfig make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j8 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- install git clone https://github.com/zzy-program/resource.git cp -r resource/rootfs_arm32/* . mk_rootfs.sh The rootfs arm32_rootfs.ext4 will be created.
Previous: install busybox, Up: Top [Contents]
Get code from kernel.org
// build linux kernel wget http://cdn.kernel.org/pub/linux/kernel/v3.x/linux-3.14.79.tar.xz tar -Jxf linux-3.14.79.tar.xz cd linux-3.14.79/ mkdir ../out_3.14.79 export ROOT_BIN=/home/zzy/sda6/bin/gcc/gcc-linaro-7.3.1-2018.05-i686_arm-eabi/bin make ARCH=arm CROSS_COMPILE=$ROOT_BIN/arm-eabi- O=../out_3.14.79 vexpress_defconfig make ARCH=arm CROSS_COMPILE=$ROOT_BIN/arm-eabi- O=../out_3.14.79 -j4 zImage // run linux /home/zzy/sda6/bin/qemu/qemu-2.12.0/bin/qemu-system-arm -M vexpress-a9 -m 512M -kernel ../out_3.14.79/arch/arm/boot/zImage -nographic -append "root=/dev/mmcblk0 console=ttyAMA0" -sd ../arm32_rootfs.ext4
Get code from github
git clone https://github.com/zzy-program/linux-3.14.79-study.git mkdir ../out_3.14.79-study export ROOT_BIN=/home/zzy/sda6/bin/gcc/gcc-linaro-7.3.1-2018.05-i686_arm-eabi/bin make ARCH=arm CROSS_COMPILE=$ROOT_BIN/arm-eabi- O=../out_3.14.79-study vexpress_defconfig make ARCH=arm CROSS_COMPILE=$ROOT_BIN/arm-eabi- O=../out_3.14.79-study -j4 zImage /home/zzy/sda6/bin/qemu/qemu-2.12.0/bin/qemu-system-arm -M vexpress-a9 -m 512M -kernel ../out_3.14.79/arch/arm/boot/zImage -nographic -append "root=/dev/mmcblk0 console=ttyAMA0" -sd ../arm32_rootfs.ext4