本文共 2482 字,大约阅读时间需要 8 分钟。
本博客以Xunlong Orangepi Zero为例,运行最新Linux 4.11.0-rc4内核。
# 克隆u-boot仓库git clone git://git.denx.de/u-boot.git# 编译配置make orangepi_zero_defconfig# 交叉编译make V=s -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
编译完成在源码根目录出现目标文件:
# 克隆kernel仓库git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git# 编译配置make ARCH=arm sunxi_defconfig# 交叉编译make V=s -j8 ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-
编译完成在源码目录出现目标文件:
1\ busybox
# 克隆busybox仓库git clone git://git.busybox.net/busybox# 编译配置make menuconfig
[*] Build busybox as a static binary
(arm-linux-gnueabihf-) Cross Compiler prefix
(./_install) Busybox Installation prefix
# 编译makecd _install/chmod 4755 bin/busybox
接下来的步骤都基于这个_install文件夹。
2\ etc/inittab
创建etc/inittab文件:
# /etc/inittab::sysinit:/etc/init.d/rcSttyS0::sysinit:/bin/ash::ctrlaltdel:/sbin/reboot::shutdown:/bin/umount -a -r
3\ etc/fstab
创建etc/fstab文件:
# device mount-point type options dump fsck orderproc /proc proc defaults 0 0tmpfs /tmp tmpfs defaults 0 0
4\ etc/init.d/rcS
创建etc/init.d/rcS文件:
#!/bin/shmount -a
5\ 创建设备节点
在dev目录下创建基本的设备节点:
mknod -m 0666 console c 5 1mknod -m 0666 null c 1 3mknod ttyS0 c 4 64
将sd卡分区,第一个分区放zImage和dtb文件,第二个分区作为rootfs挂载:
#!/bin/shcard=/dev/mmcblk0cardroot=${card}${p}2# sd卡格式化dd if=/dev/zero of=${card} bs=1M count=1# sd卡分区blockdev --rereadpt ${card}cat <
在U-Boot命令行中执行:
=> setenv bootargs 'console=ttyS0,115200n8 earlyprintk root=/dev/mmcblk0p1 rootwait panic=10'=> fatload mmc 0 0x46000000 zImagereading zImage3657840 bytes read in 226 ms (15.4 MiB/s)=> fatload mmc 0 0x49000000 sun8i-h2-plus-orangepi-zero.dtbreading sun8i-h2-plus-orangepi-zero.dtb14025 bytes read in 30 ms (456.1 KiB/s)=> bootz 0x46000000 - 0x49000000
成功进入Linux系统,重新挂载可读写文件系统,挂载proc,sys,debug目录:
/ # mount -o remount,rw /[ 58.970790] EXT4-fs (mmcblk0p2): re-mounted. Opts: data=ordered/ # mount -t proc proc /proc/ # mount -t sysfs sysfs /sys/ # mount -t debugfs debugfs /sys/kernel/debug/ # cat /proc/version Linux version 4.11.0-rc4-00064-g89970a0 (chenziping@techping-pc) (gcc version 6.2.1 20161016 (Linaro GCC 6.2-2016.11) ) #1 SMP Thu Mar 30 18:55:45 CST 2017/ #
转载地址:http://vnloi.baihongyu.com/