首页 > 编程知识 正文

fopen和fopen_s的区别,udec教程

时间:2023-05-04 16:18:13 阅读:46427 作者:3133

使用udev以/dev动态生成/删除设备文件

-------------请参阅

udev是一个独立于硬件平台的用户空间进程,建立在操作系统上,与驱动程序层无关。 根据此设计实施,您可以随时更改和删除/dev下的设备文件名和指向,以便根据需要安排和管理设置

要准备文件系统并完成这种灵活的功能,只需简单地更改udev配置文件,不需要重新启动操作系统。 udev

我们设备的管理已经像摸袋子一样轻松自如了。

创建udevd工具

-------------请参阅

33558 www.kernel.org/pub/Linux/utils/kernel/hot plug /

# wget 3358 www.us.kernel.org/pub/Linux/utils/kernel/hot plug/udev-100.tar.bz2

# tar xjf udev-100.tar.bz2

# cd udev-100

# vi Makefle

CROSS_COMPILE?=

=====

CROSS_COMPILE?=/usr/local/arm/3.4.1/LHD Qt/arm-Linux -

#化妆

如果没有任何意外,在当前目录中有9个工具程序: udevd控制、udevd、udevinfo、udevmonitor、udevsettle、udevstart、udevtest和udevtrigger 嵌入式系统只需要udevd和udevtest

udev的构成

-------------请参阅

首先,udev需要内核sysfs和tmpfs支持。 sysfs为udev提供设备入口和事件通道,而tmpfs为udev设备文件提供存储空间。 也就是说,在接通电源之前系统中没有足够的设备文件,因此需要先启动kernel的技巧。

由于在kernel启动未完成之前设备文件不可用,因此如果将mtd设备用作rootfs装载点,/dev/MTD块不存在。 在kernel上找不到rootfs,kernel只能停在那里恐慌。

可以通过将设备编号传递给kernel来解决此问题。 在linux系统中,mtdblock的主设备号为31,部件号从0开始,则与以前的/dev/mtdblock/3相同,一个接一个地类推,因此更改引导装载器并返回

然后,需要重新生成rootfs并将udevd和udevstart复制到/slhdqt目录中。 然后,必须通过/etc/建立udev的设备规则:

# cd udev-100

# cpudevdudevstartrootfs/slh dqt /

1、之前使用的udev-100目录中有一个etc目录,其中包含udev设备规则的详细示例文本。 为了简单和简洁,我们只需要使用名为udev-100/etc/udev/udev.conf的文件,就可以在我们的rootfs/etc下创建并复制udev目录。 这个文件很简单。 只有一行注释,用于配置日志信息,嵌入式系统可能无法使用日志,但不能使用udev

# cd rootfs/etc/

# mkdir udev

# CPU dev-100/etc/udev/udev.conf rootfs/etc/udev /

2、在rootfs/etc/udev下创建rules.d目录,生成空配置文件touch etc/udev/rules.d/udev.conf。 然后,编辑此文件并写入以下设置:

# cd rootfs/etc/udev/

# mkdir rules.d

# virootfs/etc/udev/rules.d/udev.conf

-------------请参阅

# VC设备

KERNEL=='tty[0-9]* ',NAME='vc/%n '

#块设备

KERNEL=='loop[0-9]* ',NAME='loop/%n '

# MTD设备

KERNEL=='mtd[0-9]* ',NAME='mtd/%n '

KERNEL=='mtdblock* ',NAME='mtdblock/%n '

#输入设备

KERNEL=='mice' NAME='input/%k '

KERNEL=='mouse[0-9]* ',NAME='input/%k '

KERNEL=='ts[0-9]* ',NAME='input/%k '

KERNEL=='event[0-9]* ',NAME='input/%k '

# misc设备

KERNEL=='apm_bios ',NAME='misc/%k '

KERNEL=='rtc ',NAME='misc/%k '

保存它,我们的设备文件系统基本上很好。 udevd和udevstart会自动分析此文件。

3、在rootfs/etc/init.d/rcS中添加以下行,以便udevd在kernel发生后自动运行:

# vi rootfs/etc/init.d/rcS

-------------请参阅

/lhdqt/mount -t tmpfs tmpfs /dev

echo 'Starting udevd . '

/slhdqt/udevd----daemon

/slhdqt/udevstart

4、重新生成rootfs,烧成flash指定的rootfs part。

5、设备规则需要动态变更时,可以将etc/udev放入jffs或yaffs part准备修改,必要时可以随时扩展udev.conf的配置项目。

转自:http://hi.Baidu.com/zengzhaonong/blog/item/6ff 7261249 c 18452 f 919 b 83 b.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。