zoukankan      html  css  js  c++  java
  • 使用busybox构建根文件系统

    当我们在Qemu上运行起来自己编译的内核之后,需要使用busybox构建一个文件系统,将此文件系统挂载上去就可以使用busybox提供的各种命令了。

    1.编译安装busybox

    源码下载地址:http://www.busybox.net/downloads/

    编译安装过程:

    tar jxvf busybox-1.23.1.tar.bz2
    cd busybox-1.23.1
    make menuconfig
    选择静态编译
    BusyboxSettings->Build options->Build Busybox as a static binary
    make

    编译完成之后先不要直接make install,我们先构建一个ext4的文件系统

    dd if=/dev/zero of=rootfs.img bs=1M count=32
    mkfs.ext4 rootfs.img
    创建一个rootfs的目录
    mkdir rootfs
    将rootfs.img挂载到此目录上
    sudo mount -t ext4 -o loop rootfs.img rootfs
    切换到rootfs目录
    sudo cd rootfs
    sudo mkdir dev proc sys

    再回到编译busybox的目录,将busybox安装到此目录下

    make install CONFIG_PREFIX=~/Qemu/rootfs
    cd ~/Qemu/rootfs
    sudo umount rootfs 

    2.以rootfs为根文件系统在Qemu下运行编译处的内核

    在一个终端下执行

    qemu-system-i386 -S -kernel bzImage -hda rootfs.img -append "root=/dev/sda init=/bin/ash rw" -monitor stdio
    在qemu命令下打开gdbserver
    gdbserver tcp::1234

    在编译处内核的目录下用gdb打开vmlinux

    gdb vmlinux
    在gdb命令下执行
    target remote localhost:1234
    continue

    这样我们自己编译的内核以及文件系统就可以用gdb+qemu调试了。

  • 相关阅读:
    单链表的反转
    .tar.xz压缩文件的解压
    leetcode Excel Sheet Column Number python
    leetcode Excel Sheet Column Title python
    leetcode Largest Number python
    leetcode Majority Element python
    leetcode Word Break python
    sed命令导致rc.local软链接失效
    Steam内存测试工具
    Ceph pg_num计算
  • 原文地址:https://www.cnblogs.com/elvalad/p/4268577.html
Copyright © 2011-2022 走看看