zoukankan      html  css  js  c++  java
  • 简单搭建内核调试环境--4 fsroot

    跳转到目录 点这里 
    cd /kernel-debug wget https://busybox.net/downloads/busybox-1.3.0.tar.bz2 tar -zvxf busybox-1.32.0.tar.gz cd busybox-1.32.0
    跳转到目录 点这里 

    编译和安装busybox
    make ARCH=x86_64 menuconfig
     Settings  --->  Build Options -[ ] Build static binary (no shared libs) (NEW) 
    make ARCH=x86_64
    make install 
    创建根文件目录 fsroot
    mkdir -p /kernel-debug/fsroot/
    写一个脚本来人创建必要的目录
    install.sh
    mkdir -p /kernel-debug/fsroot/lib
    mkdir -p /kernel-debug/fsroot/mnt
    mkdir -p /kernel-debug/fsroot/home
    mkdir -p /kernel-debug/fsroot/proc
    mkdir -p /kernel-debug/fsroot/root
    mkdir -p /kernel-debug/fsroot/sys
    mkdir -p /kernel-debug/fsroot/tmp
    mkdir -p /kernel-debug/fsroot/dev
    mkdir -p /kernel-debug/fsroot/var/lock
    mkdir -p /kernel-debug/fsroot/var/log
    mkdir -p /kernel-debug/fsroot/var/run
    mkdir -p /kernel-debug/fsroot/var/tmp
    mkdir -p /kernel-debug/fsroot/etc/init.d/
    touch /kernel-debug/fsroot/etc/inittab
    touch /kernel-debug/fsroot/etc/init.d/rcS
    touch /kernel-debug/fsroot/etc/fstab
    touch /kernel-debug/fsroot/etc/profile
    touch /kernel-debug/fsroot/etc/init.d/ifconfig-all
    chmod 755 /kernel-debug/fsroot/etc/inittab
    chmod 755 /kernel-debug/fsroot/etc/init.d/rcS
    chmod 755 /kernel-debug/fsroot/etc/fstab
    chmod 755 /kernel-debug/fsroot/etc/profile
    chmod 755 /kernel-debug/fsroot/etc/init.d/ifconfig-all
    sh install.sh
    [hun-hh fsroot]# sh /kernel-debug/fsroot/install.sh
    看一下目录结构
    [hun-hh fsroot]# tree 
    ├── dev
    ├── etc
    │   ├── eth0-setting
    │   ├── eth1-setting
    │   ├── fstab
    │   ├── init.d
    │   │   ├── ifconfig-all
    │   │   ├── ifconfig-eth0
    │   │   ├── ifconfig-eth1
    │   │   └── rcS
    │   ├── inittab
    │   └── profile
    ├── home
    ├── install.sh
    ├── lib
    ├── mnt
    ├── proc
    ├── root
    ├── sys
    ├── tmp
    └── var
        ├── lock
        ├── log
        ├── run
        └── tmp
    复制到  busybox 到自己根文件目录
    cp -a /kernel-debug/busybox-1.32.0/_install/* /kernel-debug/fsroot

    配置一些基本的配置文件

    [hun-hh fsroot]# vi /kernel-debug/fsroot/etc/inittab

    #this is run first except when booting in single-user mode.
    ::sysinit:/etc/init.d/rcS
    # /bin/sh invocations on selected ttys
    ::respawn:-/bin/sh
    # Start an "askfirst" shell on the console (whatever that may be)
    ::askfirst:-/bin/sh
    # Stuff to do when restarting the init process
    ::restart:/sbin/init
    # Stuff to do before rebooting
    ::ctrlaltdel:/sbin/reboot
    ::shutdown:/sbin/swapoff -a

    [hun-hh fsroot]# vi /kernel-debug/fsroot/etc/init.d/rcS

    #!/bin/sh
    #This is the first script called by init process
    /bin/mount -a
    echo /sbin/mdev>/proc/sys/kernel/hotplug
    mdev -s

    [hun-hh fsroot]# vi /kernel-debug/fsroot/etc/fstab

    #device     mount-point     type         options       dump     fsck order
    proc        /proc           proc         defaults        0        0
    tmpfs       /tmp            tmpfs       defaults        0        0
    sysfs       /sys            sysfs        defaults        0        0
    tmpfs       /dev            tmpfs        defaults        0        0

    [hun-hh fsroot]# vi /kernel-debug/fsroot/etc/profile

    #!/bin/sh
    export HOSTNAME=farsight
    export USER=root
    export HOME=root
    export PS1="[$USER@$HOSTNAME W]# "
    #export PS1="[[33[01;32m]$USER@[33[00m][33[01;34m]$HOSTNAME[33[00m W]$ "
    PATH=/bin:/sbin:/usr/bin:/usr/sbin
    LD_LIBRARY_PATH=/lib:/usr/lib:$LD_LIBRARY_PATH
    export PATH LD_LIBRARY_PATH
    ./bin/sh /etc/init.d/ifconfig-all

    [hun-hh fsroot]# vi /kernel-debug/fsroot/etc/eth0-setting

    IP=192.168.100.103
    Mask=255.255.255.0
    Gateway=192.168.100.1
    DNS=8.8.8.8
    MAC=00:0C:29:EE:66:18

    [hun-hh fsroot]# vi /kernel-debug/fsroot/etc/eth1-setting

    IP=192.168.43.230
    Mask=255.255.255.0
    Gateway=192.168.43.1
    DNS=8.8.8.8
    MAC=00:0c:29:ee:66:22

    [hun-hh fsroot]# vi /kernel-debug/fsroot/etc/init.d/ifconfig-all

    #!/bin/sh
    if [ -f /etc/eth0-setting ] ; then
    source /etc/eth0-setting
    ifconfig eth1 down
    ifconfig eth1 hw ether $MAC
    ifconfig eth1 $IP netmask $Mask up
    route add default gw $Gateway
    fi
    if [ -f /etc/eth1-setting ] ; then
    source /etc/eth1-setting
    ifconfig eth1 down
    ifconfig eth1 hw ether $MAC
    ifconfig eth1 $IP netmask $Mask up
    route add default gw $Gateway
    fi
    echo Done > /dev/ttySAC2 
  • 相关阅读:
    LaTeX中表格多行显示的最简单设置方法
    获取Google音乐的具体信息(方便对Google音乐批量下载)
    移动硬盘提示格式化解决的方法,未正确删除导致不能读取文件提示格式化解决方式
    Android Service 服务(一)—— Service
    华为C8816电信版ROOT过程
    Linux crontab 命令格式与具体样例
    Python用subprocess的Popen来调用系统命令
    我的EJB学习历程
    接口和逻辑--多进程或单一进程
    uva 11354
  • 原文地址:https://www.cnblogs.com/heling/p/14159112.html
Copyright © 2011-2022 走看看