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调试了。

  • 相关阅读:
    进程、线程
    timer控件、三级联动
    用户控件、动态创建添加
    打印控件
    窗体移动和阴影,对话框控件
    winform listview控件
    winform打开唯一窗体、构造函数传值
    菜单和工具栏
    winform公共控件
    hibernate中各种包的添加
  • 原文地址:https://www.cnblogs.com/elvalad/p/4268577.html
Copyright © 2011-2022 走看看