linux-6.1.63+busbox1.36.0文件系统制作流程

举报
tankaro 发表于 2024/05/17 18:46:03 2024/05/17
【摘要】 编译,运行环境HOST-OS : ubuntu22.04kernel : linux-6.1.63busybox : 1.36.0源代码下载2.1 kernel源代码下载https://mirrors.tuna.tsinghua.edu.cn/kernel/v6.x/linux-6.1.63.tar.xz2.2 busybox源代码下载https://busybox.net/downloa...
  1. 编译,运行环境
    HOST-OS : ubuntu22.04
    kernel  : linux-6.1.63
    busybox : 1.36.0
  2. 源代码下载
    2.1 kernel源代码下载
    https://mirrors.tuna.tsinghua.edu.cn/kernel/v6.x/linux-6.1.63.tar.xz

    2.2 busybox源代码下载

    https://busybox.net/downloads/busybox-1.36.0.tar.bz2

  3. linux-6.1.63源代码编译
    make ARCH=x86 x86_64_defconfig
    make ARCH=x86 menuconfig
    
    General setup  --->
           ----> [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
    Device Drivers  --->
    	Generic Driver Options > Support for uevent helper
    	[*] Block devices  --->
    		<*>   RAM block device support
    		(65536) Default RAM disk size (kbytes)
    make ARCH=x86  -j$(nproc)

  4. busybox1.36.0源代码编译
    make menuconfig
    Settings  --->
    	Build Options  --->
    		[*] Build BusyBox as a static binary (no shared libs)
    make && make install
  5. busybox文件系统制作
    sudo su
    cd busybox-1.36.0/_install
    mkdir etc dev mnt
    mkdir -p proc sys tmp mnt
    mkdir -p etc/init.d/
    vim etc/fstab
    <--
    proc        /proc           proc         defaults        0        0
    #tmpfs       /tmp            tmpfs      defaults        0        0
    sysfs       /sys            sysfs        defaults        0        0
    -->
    vim etc/init.d/rcS
    <--
    echo -e "Welcome to te_Linux 20240517"
    /bin/mount -a
    echo -e "Remounting the root filesystem"
    mount -o remount,rw  /
    mkdir -p /dev/pts
    mount -t devpts devpts /dev/pts
    echo /sbin/mdev > /proc/sys/kernel/hotplug
    mdev -s
    -->
    chmod 755 etc/init.d/rcS
    vim etc/inittab
    <--
    ::sysinit:/etc/init.d/rcS
    ::respawn:-/bin/sh
    ::askfirst:-/bin/sh
    ::shutdown:/bin/umount -a -r
    ::shutdown:/sbin/swapoff -a
    ::ctrlaltdel:/sbin/reboot
    ::restart:/sbin/init
    -->
    chmod 755 etc/inittab
    cd dev
    mknod console c 5 1
    mknod null c 1 3
    mknod tty1 c 4 1 
    
    vim mkfs.sh
    <--
    #!/bin/bash
    rm -rf rootfs.ext3
    rm -rf fs
    dd if=/dev/zero of=./rootfs.ext3 bs=1M count=32
    mkfs.ext3 rootfs.ext3
    mkdir fs
    mount -o loop rootfs.ext3 ./fs
    cp -rf ./_install/* ./fs
    umount ./fs
    gzip --best -c rootfs.ext3 > rootfs.img.gz
    -->

  6. qemu启动linux-6.1.63_busbox1.36.0
    qemu-system-x86_64 \
      -kernel ./linux-6.1.63//arch/x86_64/boot/bzImage  \
      -initrd ./busybox-1.36.0/rootfs.img.gz   \
      -append "root=/dev/ram init=/linuxrc"  \
      -serial file:output.txt 
    
  7. 总结
    参考链接:从源码编译linux-4.9内核并运行一个最小的busybox文件系统(最新整理版) - 哔哩哔哩 (bilibili.com)
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。