LINUX的热插拔机制(经典文章)
linux的热插拔是Greg Kroah-Hartman维护,所以这是篇经典文章。如果你有USB或者PCI设备驱动开发基础,一读就可以理解。
Hot-pluggable devices have been created to solve a number of user needs. On laptop computers, PCMCIA devices were designed to allow the user to swap cards while the computer was still running. This allowed people to change network adaptors, memory cards and even disk drives without shutting down the machine.
The success of this led to the creation of the USB and IEEE1394 (FireWire) buses. These designs allow for peripherals to be attached and removed at any point. They also were created to try to move systems away from the ISA bus to a full Plug-and-Play-type system.
from the operating system's point of view, there are many problems with hot plugging devices. In the past, the operating system only had to search for the various devices connected to it on power-up, and once seen, the device would never go away. from the view of the device driver, it never expects to have the hardware that it is trying to control disappear. But with hot-pluggable devices, all of this changes.
Now the operating system has to have a mechanism that constantly detects if a new device appears. This usually is done by a bus-specific manager. This manager handles the scanning for new devices and recognizes this disappearance. It must be able to create system resources for the new device and pass control off to a specific driver. The device driver for a hot-pluggable device has to be able to recover gracefully when the hardware is removed and be able to bind itself to new hardware at any moment. Not only does the kernel need to know when devices are removed or added, but the user also should be notified when this happens. Other kinds of kernel events, such as the creation of network devices or the insertion of a laptop into a docking station, also would be useful for the user to know about.
This article describes the new framework in the Linux kernel for supporting USB and
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
--首先看看有哪些磁盘
[root@localhost ~]# fdisk -l
--要处理的是sdj,使用fdisk分区
[root@localhost ~]# fdisk /dev/sdj
The number of cylinders for this disk is set to 13054.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with ......
1. modprobe 加载内核模块
a) 在 /etc/module.conf 中查找别名
b) 在 lib/modules/version/module.dep 中判断是否有依赖模块需要被提前加载(该文件被depmod-a建立)
2. 2.4内核中不一定非用init_module和cleanup_module做开始和结束的函数,但需要用module_init和
module_exit申明。
......
一开始装ubuntu的时候,好多初学者不知道如何添加源,如此问题反反复复,新手又不怎么去GOOGLE,现在我把这些问题整理下,帮助新手理解并使用:
什么是 Ubuntu Linux 软件源
源,在ubuntu下,它就相当于软件库,需要什么软件,只要记得正确的软件名并且确定在ubuntu下肯定有的软件,就可以使用命令来安装软件的(当然也 ......
文件命令
ls – 列出目录
ls -al – 使用格式化列出隐藏文件
cd dir - 更改目录到 dir
cd – 更改到 home 目录
pwd – 显示当前目录
mkdir dir – 创建目录 dir
rm file – 删除 file
rm -r dir – 删除目录 dir
rm -f file – 强制删除 file
rm -rf dir – 强制删 ......