linux dev input使用消失_Linux驱动04 | 启动分析之根文件系统

1. 概述

linux内核挂载的第一个文件系统,该根文件系统是挂载到根目录下的文件系统。rootfs,它是一个容器,也称之为一个“包”,里面包含:

[root@6818 /]#ls 
bin sbin usr etc lib home mnt proc var dev ......

1) linux的shell命令

  • /bin,一般的shell命令

  • /sbin,超级管理员就是root用户才能够使用的命令,这些命令很多时候跟硬件相关

  • /usr/bin,应用程序与工具

  • /usr/sbin,shell命令或工具

2) /dev

该目录包含应用程序访问硬件的接口,只有字符设备和块设备有设备文件,网络设备是没有设备文件。

  • lcd设备,/dev/fb0

  • 触摸屏设备,/dev/input/event0

在做驱动编程,该目录是我们的重点。 

3)/etc

包含系统的配置文件:用户名、密码、主机名、网络配置、系统

4)/proc

该目录虚拟文件系统目录,是系统内存的映射,实时反映linux系统的工作状态,可直接访问这个目录来获取系统信息。

  • 数字,PID进程编号与状态信息

  • version,linux系统的版本

[root@6818 /proc]#uname -r 
3.4.39-gec
[root@6818 /proc]#uname -a 
Linux 6818 3.4.39-gec #9 SMP PREEMPT Sun Nov 19 10:01:10 CST 2020 armv7l GNU/Linux
[root@6818 /proc]#cat version 
Linux version 3.4.39-gec (zr@boLe) (gcc version 4.8 (GCC) ) #9 SMP PREEMPT Sun Nov 19 10:01:10 CST 2020
  • cpuinfo,了解CPU的信息

[root@6818 /proc]#cat cpuinfo
Processor       : ARMv7 Processor rev 3 (v7l) //当前CPU是ARMv7架构
processor       : 0 //CPU 0
BogoMIPS        : 1581.05 //每秒能够执行1581.04百万条指令
 
processor       : 1
BogoMIPS        : 1591.29
 
processor       : 2
BogoMIPS        : 1591.29
 
processor       : 3
BogoMIPS        : 1591.29
 
processor       : 4
BogoMIPS        : 1591.29
 
processor       : 5
BogoMIPS        : 1591.29
 
processor       : 6
BogoMIPS        : 1591.29
 
processor       : 7
BogoMIPS        : 1591.29
 
Features        : swp half thumb fastmult vfp edsp neon vfpv3 tls vfpv4
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 3
 
Hardware        : s5p6818
Revision        : 0000
Serial          : 0000000000000000
e047034640e68e42cff74c1482315823.png e047034640e68e42cff74c1482315823.png
  • meminfo,这里描述linux内核所有内存状态信息

[root@6818 /proc]#cat meminfo
MemTotal:         827420 kB
MemFree:          803992 kB
Buffers:            1524 kB
Cached:             2736 kB
SwapCached:            0 kB
Active:             1384 kB
Inactive:           2992 kB
Active(anon):        224 kB
Inactive(anon):        0 kB
Active(file):       1160 kB
Inactive(file):     2992 kB
Unevictable:           0 kB
Mlocked:               0 kB
HighTotal:        272384 kB
HighFree:         268364 kB
LowTotal:         555036 kB
LowFree:          535628 kB
SwapTotal:             0 kB
SwapFree:              0 kB
Dirty:                 0 kB
Writeback:             0 kB
AnonPages:           232 kB
Mapped:              800 kB
Shmem:                 0 kB
Slab:              10184 kB
SReclaimable:       3776 kB
SUnreclaim:         6408 kB
KernelStack:         736 kB
PageTables:           64 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:      413708 kB
Committed_AS:       1096 kB
VmallocTotal:     251904 kB
VmallocUsed:        8280 kB
VmallocChunk:     235520 kB

. devices文件

[root@GEC6818 /proc]#cat devices
Character devices:
  1 mem
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
  5 ttyprintk
 10 misc
 13 input
 14 sound
 21 sg
 29 fb
 81 video4linux
 86 ch
 89 i2c
108 ppp
116 alsa
128 ptm
136 pts
153 spi
166 ttyACM
180 usb
188 ttyUSB
189 usb_device
204 ttySAC
216 rfcomm
244 stepmotor
245 roccat
246 BaseRemoteCtl
247 ttyGS
248 usbmon
249 bsg
250 iio
251 ptp
252 pps
253 media
254 rtc
 
Block devices:
259 blkext
  7 loop
  8 sd
 11 sr
 65 sd
 66 sd
 67 sd
 68 sd
 69 sd
 70 sd
 71 sd
128 sd
129 sd
130 sd
131 sd
132 sd
133 sd
134 sd
135 sd
179 mmc
254 device-mapper

5)库的路径

  • /lib

  • /usr/lib

  • /usr/local/lib

6)/mnt

系统管理员安装临时文件系统的安装点,系统提供这个目录是让用户临时挂载其他的文件系统。

7)/sys

sysfs是一种基于ram文件系统(ramdisk 文件系统基于磁盘模拟技术,实际文件系统是ex2 ex3等)和proc一样。sysfs文件系统是一个类似于proc文件系统的特殊文件系统,用于将系统中的设备组织成层次结构,并向用户模式程序提供详细的内核数据结构信息。其实,就是在用户态可以通过对sys文件系统的访问,来看内核态的一些驱动或者设备等,例如以下触摸屏设备驱动详细信息。

[root@6818 /sys/devices/virtual/rc/rc0/input1/event0]#cat uevent 
MAJOR=13 
MINOR=64 
DEVNAME=input/event0

拓展:

  • /sys/devices

    该目录下是全局设备结构体系,包含所有被发现的注册在各种总线上的各种物理设备。一般来说,所有的物理设备都按其在总线上的拓扑结构来显示,但有两个例外即platform devices和system devices。

  • platform devices一般是挂在芯片内部的高速或者低速总线上的各种控制器和外设,它们能被CPU直接寻址;

  • system devices不是外设,而是芯片内部的核心结构,比如CPU,timer等,它们一般没有相关的驱动,但是会有一些体系结构相关的代码来配置它们。

  • /sys/devices是内核对系统中所有设备的分层次表达模型,也是/sys文件系统管理设备的最重要的目录结构。

  • /sys/dev

    该目录下存放主次设备号文件,其中分成字符设备、块设备的主次设备号码(major:minor)组成的文件名,该文件是链接文件并且链接到其真实的设备(/sys/devices)。

  • /sys/class

    该目录下包含所有注册在kernel里面的设备类型,这是按照设备功能分类的设备模型,每个设备类型表达具有一种功能的设备。每个设备类型子目录下都是这种设备类型的各种具体设备的符号链接,这些链接指向/sys/devices/下的具体设备。 设备类型和设备并没有一一对应的关系,一个物理设备可能具备多种设备类型(如何触摸屏包含了输入子系统设备模型、i2c设备模型、platform模型等);一个设备类型只表达具有一种功能的设备,比如:系统所有输入设备都会出现在/sys/class/input之下,而不论它们是以何种总线连接到系统的。

  • /sys/block

    该目录下的所有子目录代表着系统中当前被发现的所有块设备。

  • /sys/bus

    该目录下的每个子目录都是kernel支持并且已经注册了的总线类型。

  • /sys/fs

    按照设计,该目录使用来描述系统中所有的文件系统,包括文件系统本身和按照文件系统分类存放的已挂载点。

  • /sys/kernel

    这个目录下存放的是内核中所有可调整的参数。

  • /sys/module 

    该目录下有系统中所有的模块信息,不论这些模块是以内联(inlined)方式编译到内核映像文件中还是编译为外模块(.ko文件),都可能出现在/sys/module中。

8)/var

系统的工作日志或运行时需要改变数据文件的存放目录。

9)/usr

系统资源目录,Unix System Resource,即Unix系统资源的缩写。该目录是系统核心所在,包含了所有的共享文件。它是 unix 系统中最重要的目录之一,涵盖了二进制文件,各种文档,各种头文件,还有各种库文件;还有诸多程序,例如 ftp,telnet 等等。这是最庞大的目录,要用到的应用程序和文件几乎都在这个目录。

  • /usr/bin 众多的应用程序  

  • /usr/sbin 超级用户的一些管理程序  

  • /usr/doc linux文档  

  • /usr/include linux下开发和编译应用程序所需要的头文件  

  • /usr/lib 常用的动态链接库和软件包的配置文件  

  • /usr/man 帮助文档  

  • /usr/src 源代码,linux内核的源代码就放在/usr/src/linux里  

  • /usr/local/bin 本地增加的命令  

  • /usr/local/lib 本地增加的库

10)/lost+found

这个目录平时是空的,系统非正常关机而留下“无家可归”的文件(windows下*.chk)就在这里

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值