Linux chroot 并使用之前系统设备节点

/*********************************************************************************
 *                    Linux chroot 并使用之前系统设备节点
 * 说明:
 *     直接使用chroot结果/dev下没有设备,所有有些东西需要提前挂载,在进入chroot。
 *
 *                                       2016-12-30 深圳 南山平山村 曾剑锋
 ********************************************************************************/

一、参考文档:
    1. mount dev, proc, sys in a chroot environment?
        http://superuser.com/questions/165116/mount-dev-proc-sys-in-a-chroot-environment

二、主要Linux Shell命令:
    1. mount /dev/mmcblk0p2 /mnt
    2. mount -t proc proc /mnt/proc
    3. mount -t sysfs sys /mnt/sys
    4. mount -o bind /dev /mnt/dev
    5. chroot /mnt/

三、实际操作及数据:
    [zengjf@root ~]#  df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/root              3096336    492148   2446904  17% /
    tmpfs                   423848         0    423848   0% /dev/shm
    tmpfs                   423848        32    423816   0% /tmp
    tmpfs                   423848        28    423820   0% /run
    [zengjf@root ~]#  mount /dev/mmcblk0p2 /mnt
    EXT3-fs: barriers not enabled
    kjournald starting.  Commit interval 5 seconds
    EXT3-fs (mmcblk0p2): warning: checktime reached, running e2fsck is recommended
    EXT3-fs (mmcblk0p2): using internal journal
    EXT3-fs (mmcblk0p2): recovery complete
    EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode
    [zengjf@root ~]#  mount -t proc proc /mnt/proc
    [zengjf@root ~]#  mount -t sysfs sys /mnt/sys
    [zengjf@root ~]#  mount -o bind /dev /mnt/dev
    [zengjf@root ~]#  chroot /mnt/

    BusyBox v1.20.2 () built-in shell (ash)
    Enter 'help' for a list of built-in commands.

    [zengjf@root /]#  ls /dev/
    alarm               ptyr8               tty26               ttyr1
    apm_bios            ptyr9               tty27               ttyr2
    buzzer              ptyra               tty28               ttyr3
    console             ptyrb               tty29               ttyr4
    cpu_dma_latency     ptyrc               tty3                ttyr5
    fb0                 ptyrd               tty30               ttyr6
    fb1                 ptyre               tty31               ttyr7
    fb2                 ptyrf               tty32               ttyr8
    full                ptys0               tty33               ttyr9
    galcore             ptys1               tty34               ttyra
    i2c-0               ptys2               tty35               ttyrb
    i2c-1               ptys3               tty36               ttyrc
    i2c-2               ptys4               tty37               ttyrd
    i2c-3               ptys5               tty38               ttyre
    input               ptys6               tty39               ttyrf
    kmem                ptys7               tty4                ttys0
    kmsg                ptys8               tty40               ttys1
    log                 ptys9               tty41               ttys2
    mem                 ptyt2               tty5                ttysb
    mmcblk0             ptyt3               tty50               ttysc
    mmcblk0boot0        ptyt4               tty51               ttysd
    mmcblk0boot1        ptyt5               tty52               ttyse
    mmcblk0p1           ptyt6               tty53               ttysf
    mmcblk0p2           ptyt7               tty54               ttyt0
    mx6check            ptyt8               tty55               ttyt1
    mxc_asrc            ptyt9               tty56               ttyt2
    mxc_ipu             ptyta               tty57               ttyt3
    mxc_vpu             ptytb               tty58               ttyt4
    mxs_viim            ptytc               tty59               ttyt5
    network_latency     ptytd               tty6                ttyt6
    network_throughput  ptyte               tty60               ttyt7
    null                ptytf               tty61               ttyt8
    ...
    [zengjf@root /]#  ls sys
    block     class     devices   fs        kernel    power
    bus       dev       firmware  fsl_otp   module
    [zengjf@root /]#  ls proc
    1              1474           517            cpuinfo        mounts
    10             1483           524            crypto         mtd
    11             1618           526            devices        net
    1104           1623           530            diskstats      pagetypeinfo
    1198           1624           539            dri            partitions
    1273           1630           540            driver         scsi
    1309           1634           591            execdomains    self
    1315           1637           6              fb             slabinfo
    1320           2              607            filesystems    softirqs
    1321           3              613            fs             stat
    1322           338            639            interrupts     swaps
    1361           340            641            iomem          sys
    1362           342            7              ioports        sysrq-trigger
    1363           376            8              irq            sysvipc
    1382           380            9              kallsyms       timer_list
    1394           391            apm            kmsg           tty
    1395           4              asound         kpagecount     uptime
    1398           414            buddyinfo      kpageflags     version
    1407           415            bus            loadavg        vmallocinfo
    1410           428            cmdline        locks          vmstat
    1455           430            config.gz      meminfo        zoneinfo
    1462           5              consoles       misc
    1469           516            cpu            modules
    [zengjf@root /]#  df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/root                99150     16976     77054  18% /
    devpts                 3096336    492148   2446904  17% /dev/pts
    tmpfs                  3096336    492148   2446904  17% /dev/shm
    tmpfs                    99150     16976     77054  18% /tmp
    df: /run: No such file or directory
    /dev/mmcblk0p2           99150     16976     77054  18% /
    /dev/root              3096336    492148   2446904  17% /dev
    [zengjf@root /]#  exit
    [zengjf@root ~]#  df
    Filesystem           1K-blocks      Used Available Use% Mounted on
    /dev/root              3096336    492148   2446904  17% /
    tmpfs                   423848         0    423848   0% /dev/shm
    tmpfs                   423848        32    423816   0% /tmp
    tmpfs                   423848        28    423820   0% /run
    /dev/mmcblk0p2           99150     16976     77054  18% /mnt
    /dev/root              3096336    492148   2446904  17% /mnt/dev
    [zengjf@root ~]# 

 

时间: 2024-08-01 18:49:16

Linux chroot 并使用之前系统设备节点的相关文章

Android udev /dev 设备节点权限

/************************************************************************* * Android udev /dev 设备节点权限 * 说明: * 现在的Linux系统设备节点权限一般都是通过动态配置,之前一直没找到具体 * 在哪里配置的说明,这次在看参考书的时候发现ueventd.rc就是用来做这件事的. * * 2016-5-14 深圳 南山平山村 曾剑锋 ********************************

其实开发Linux系统设备驱动程序并不难

最近看了好多内核编程和驱动开发的教程,也参考了一些开发板上的例子.总结下来并不是想象的高不可及.开发驱动程序需要对 内核有一定的了解,并不是非要解读的多么透彻. 以下所指的驱动程序都是针对具体设备,并做成模块动态加载方式工作的.驱动程序框架是分层的,有些驱动并不是针对具体设备的如ext2文件系统的驱动,tcp/ip协议的驱动等等,这些可以称之为软驱动,工作于其他具体设备驱动程序之上.由于我们做的是嵌入式开发,仅仅编写最低层的设备驱动就可以了. 设备驱动程序通常分为字符设备和块设备,这是泛指分类.

linux驱动开发--字符设备:创建一组设备节点

cdev改进 为设备驱动支持多个设备个体做准备,针对cdev进行改进 将代表字符设备的cdev对象包含在设备驱动定义的私有数据结构体中 对设备驱动私有数据结构体采用内核内存分配方式为其分配内存 将为每个设备添加cdev对象和创建设备节点封装为一个独立函数 支持多个设备个体 为设备驱动支持多个设备个体对驱动进行改进 循环调用为每个设备添加cdev对象和创建设备节点而封装的独立函数实现在系统中添加对多个设备个体的支持 /** *Copyright (c) 2013.TianYuan *All rig

linux驱动开发--字符设备:自动创建设备节点

自动创建设备文件 定义在<linux/device.h>中 class结构:该结构体类型变量对应一个设备类,被创建的类存放在/sys目录下面 device结构:该结构体类型变量对应设备,被创建的设备存放于/sys目录下面 在加载驱动模块时,用户空间中的udev会自动响应device_create()函数,在/sys下寻找对应的类,从而为这个设备在/dev目录下创建设备文件 内核版本问题: 在内核2.4版本中使用devfs_register 在内核2.6早起版本中使用class_device_r

linux 2.6.36+s3c6410 SPI子系统接口讨论 --添加spi设备节点

下图是安装成功后,sys目录下的主要结构,由于目录非常复杂仅仅列出了主要的结构sys目录下spi子系统结构   接下来将从各struct开始进行分析,struct是构成内核对象的基础,函数是动态的构建和执行的工具.所以梳理脉络就从结构开始. linux下的设备模型包括几个主要的概念 sysfs (dev是用户空间接口,根据sysfs下的class目录由mdev负责建立) bus总线,linux下的设备都是建立在总线上的,platform总线是一个虚拟的总线,所有的的片上设备基本上都接在这个虚拟总

I.MX6 linux eGalaxTouch 自动获取设备节点

I.MX6 linux eGalaxTouch 自动获取设备节点 \\\\\\\\\\\\\\-*- 目录 -*-///////////// | 一. 需求: | 二. /proc/bus/input/devices 内容: | 三. 解决方法: | 四. 实际应用: -------------------------------------- 一. 需求: 获取eGalaxTouch的输入设备节点 二. /proc/bus/input/devices 内容: root@freescale /p

linux 中am3359芯片作为从设备接收

问题描述 linux 中am3359芯片作为从设备接收 急等:请问有做过AM3359芯片中linux系统spi作为从设备的朋友吗?现在遇到了一些问题,从设备一直接收不到主设备发来的数据.谢谢! 解决方案 linux课上作业-who am i改编版<who am i>-linux命令五分钟系列之十六

linux2.6.17设备节点创建的问题

问题描述 linux2.6.17设备节点创建的问题 我的内核版本linux2.6.17,想在内核中添加一个驱动,模块加载初始化代码如下:#define DEVICE_NAME ""mydev""static struct class *my_class;static dev_t mydev = 0;static struct cdev mycdev;static int __init FM24CL64_init(void){ int reterr;ret = all

Linux时钟介绍和修改系统时间

关于UTC/GMT等技术概念,参考:http://blog.csdn.net/cymm_liu/article/details/29234919   Linux时钟简介: 参考文章:http://www.cnblogs.com/cy163/archive/2008/05/15/1198683.html Linux将时钟分为系统时钟(System Clock) 和 硬件(Real Time Clock,简称RTC)时钟两种.系统时间是指当前Linux Kernel中的时钟,而硬件时钟则是主板上由电