上传者: hugerat
|
上传时间: 2025-10-10 10:48:40
|
文件大小: 67KB
|
文件类型: PDF
### Busybox 中的mdev使用说明中文版
#### MDEV入门
对于那些已经熟悉mdev的人来说,这份入门指南或许显得过于基础。但对于其他人而言,mdev就像一个难以捉摸的黑盒工具,虽然听说它非常强大,但却不知道如何具体操作。鉴于此,本文将详细介绍mdev的基本使用方法及其配置文件的设置。
#### 基本使用方法
mdev主要有两大功能:初始化对象和动态更新。这两种应用场景都需要内核中的sysfs支持,并且需要将sysfs挂载到`/sys`目录下。此外,为了实现动态更新的功能,还需要在内核配置中启用热插拔(hotplugging)支持。
以下是从初始化脚本中摘录的一个典型mdev使用代码片段:
1. **挂载sysfs**:需要挂载sysfs到`/sys`目录下,以便mdev能够访问到相关的设备信息。例如:
```bash
mount -t sysfs sysfs /sys
```
2. **配置内核热插拔行为**:接着,通过写入`/proc/sys/kernel/hotplug`来指定内核在检测到设备插入或移除时调用的程序。这里设置为调用`/bin/mdev`,从而实现在设备插入或移除时自动创建或删除相应的设备节点。
```bash
echo "/bin/mdev" > /proc/sys/kernel/hotplug
```
3. **初始化设备节点**:使用mdev初始化所有已知设备的设备节点。这一步通常在系统启动时执行,以确保所有必要的设备节点都已被创建。
```bash
mdev -s
```
在更全面的设置中,除了上述步骤之外,还需要执行以下几个命令:
4. **挂载tmpfs文件系统到/dev**:如果文件系统存储在闪存外,则需要将`/dev`挂载为tmpfs文件系统。这有助于提高性能,减少对物理介质的写入次数。
```bash
mount -t tmpfs mdev /dev
```
5. **创建/dev/pts挂载点**:创建`/dev/pts`目录作为后续挂载点。
```bash
mkdir /dev/pts
```
6. **挂载devpts文件系统**:在`/dev/pts`目录上挂载devpts文件系统,用于虚拟终端和串行端口等设备。
```bash
mount -t devpts devpts /dev/pts
```
#### MDEV配置 (/etc/mdev.conf)
mdev提供了可选的配置文件`/etc/mdev.conf`,允许用户自定义设备节点的所有权和权限。默认情况下,设备节点的所有者和组均为root。但根据系统需求的不同,可能需要为特定设备节点设置不同的所有权和权限。例如,某些应用程序可能需要以非root用户的身份运行,这就需要对某些设备节点进行特殊配置。
`/etc/mdev.conf`文件的格式相对简单,通常包含如下内容:
- 指定设备类型(如:`CHAR`表示字符设备,`BLOCK`表示块设备);
- 设备的主次号;
- 设备节点的路径;
- 所有者和组;
- 文件权限。
例如,以下是一个简单的配置示例:
```bash
# 配置一个字符设备节点
CHAR 4 65 /dev/ttyS0 root dialout 0660
```
在这个例子中,配置了一个主设备号为4、次设备号为65的字符设备,该设备节点的路径为`/dev/ttyS0`,所有者为`root`,组为`dialout`,权限为`0660`。这样的配置可以确保只有`root`用户和`dialout`组成员才能访问这个串口设备,同时也设置了合适的读写权限。
通过这种方式,可以根据具体的项目需求灵活地调整设备节点的所有权和权限,使得mdev不仅能够在嵌入式Linux环境中高效地管理设备节点,还能满足各种安全性和使用场景的需求。