博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
从0开始运行主线Linux内核
阅读量:4191 次
发布时间:2019-05-26

本文共 2482 字,大约阅读时间需要 8 分钟。

从0开始运行主线Linux内核

本博客以Xunlong Orangepi Zero为例,运行最新Linux 4.11.0-rc4内核。

[Mainline U-Boot & Mainline Kernel & Rootfs Howto]

Mainline U-Boot

# 克隆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-

编译完成在源码根目录出现目标文件:

  • u-boot-sunxi-with-spl.bin

Mainline Kernel

# 克隆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-

编译完成在源码目录出现目标文件:

  • zImage (arch/arm/boot/zImage)
  • sun8i-h2-plus-orangepi-zero.dtb (arch/arm/boot/dts/sun8i-h2-plus-orangepi-zero.dtb)

Rootfs

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

Install

将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 <

Boot

在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

Boot Success

成功进入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/ #

  • 我的个人主页:
  • 我的个人站点博客:
  • 我的CSDN博客:
  • 我的简书:
  • 我的GitHub:
    欢迎相互follow~

转载地址:http://vnloi.baihongyu.com/

你可能感兴趣的文章
朋友圈里的东北老铁,承包了我一年所有笑点
查看>>
iPhone新机或全部采用OLED屏:日本JDI股价应声下跌
查看>>
京东股价创新高:市值首次突破千亿美元 !
查看>>
iPhone 12 Pro系列变贵的原因在这儿!
查看>>
刘慈欣、Netflix联手!《三体》系列将拍摄剧集,但编剧被网友疯狂吐槽
查看>>
2198元买真全面屏手机!网友:笑而不语...
查看>>
官宣!《花木兰》内地定档
查看>>
钱准备好!苹果官方账号泄密:iPhone 12明晚发布有戏
查看>>
LG电子发布旋转双屏5G手机Wing 售价约6800元
查看>>
苹果iOS 14正式发布!一大波新功能集体上线,必升!
查看>>
阿里发布手掌大小云电脑“无影”,价格是传统PC一半
查看>>
做中国女人难,做中国女装更难
查看>>
特斯拉召回部分进口Model S、Model X电动汽车
查看>>
小米折叠屏手机设计专利曝光:向内折叠 正面无开孔
查看>>
iPhone 12开启5G续航锐减 苹果官方回应了!
查看>>
靠疯狂卖吊牌年赚13亿,南极人的暴利模式你永远不懂!
查看>>
“你在哪里上班?”“呵呵呵!”
查看>>
消息称高通可供货华为:麒麟处理器真将绝版?
查看>>
索尼PS5游戏主机炒到8000元以上:相比之下iPhone 12不值一提
查看>>
被母婴品牌“盯上”的拼多多,史努比两天“拼掉”一个月货
查看>>