用到的命令
| 命令 | 作用 |
|---|---|
| insmod | install module |
| rmmod | remove module |
| dmesg | debug print message |
| lsmod | list module |
| od | dump files in octal,默认十进制读目标,-x 16进制 |
用上节编写的LKM-刘姥姥进行试验
加载编译LKM:
sudo insmod llaolao.ko
该命令需要superuser权限。
32bit系统大于e000000;属于内核地址。
lsmod一下我们的刘姥姥已经临时驻扎在系统内核了:
sudo rmmod llaolao
虚拟文件系统:
/sys/module/llaolao/section/
设备驱动模型
LKM方式
bus and core layers
Linux Device Model(LDM)
即插即用
内核态
用户态支持即插即用:udevd
规则匹配:用户态和内核态之间位于:
/etc/udev/rules.d
注册设备属性
显示某设备的详细信息:
bash>udevinfo -a -p /sys/block/sr0
Kobjects-内核对象
在 include/linux/kobject.h
虚拟文件系统:
/dev文件系统
bash>ls -l/dev
延迟任务执行
windows上叫dpc,Linux叫Tasklets
可以让中断快速结束。
常用头文件:慢慢熟悉吧
常用函数:慢慢熟悉吧
按传输类型分为:
- 字符设备(键盘……)
- -块设备(硬盘……)
例如字符设备需要:
- init()注册
- open,read,ioctl,llseek.
- 中断处理函数
需要处理的数据结构:
- cdev
- file_operations:很多回调函数
- 文件
举例:
System CMOS
通过端口(dig)
70索引
71读写
| 分类 | 组成 |
|---|---|
| 经典PC结构 | 南桥和北桥 |
| 典型SOC架构(手机上) | 串行总线 |
cd ~到达工作目录
内核模块相关函数:
- copy_to_user()
- copy_from_user()
访问用户态内存,防崩溃。

679

被折叠的 条评论
为什么被折叠?



