作者meltice (三亿两千万大散户)
看板Soft_Job
标题Re: [心得] 微软的driver架构 = BullShit
时间Thu Aug 27 01:30:03 2009
举个大家都会觉得理所当然了例子
就是每台电脑都有的USB读卡机
卡片插拔OS就会自动帮你mount/umount
这应该是很基本很理所当然的功能吧
甚至还会autorun或自动在桌面帮你建个捷径
但是同样的功能在某embedded linux系统上却搞半天才弄出个样子
该版子使用linux 2.6.18 kernel, busybox(旧版) ...
也有USB介面
照理说应该只要把该有的kernel module build起来就能跑
但实际做起来却问题重重
最终还是办不到像PC那样子的结果
因为Linux本身的help就不如windows, windows CE来的多
而这个功能本身又太简单太基本太过理所当然
所以很少人会碰到类似的问题然後提出问题
而找到的解答也大多都只适用在PC上
所以就乱try一通
hotplug, udev, mdev, d-bus, ...
各种不知道之间到底有何关系的东西好像都跟读卡机有相关
然後还发现旧版的busybox mdev好像有bug
新版的busybox又build不起来
自己mknod
偏偏系统上又还有SATA介面及其他mass storage装置
各种开机顺序或插拔排列组合还会导致mount时要透过很麻烦的判断
来确定目前的装置究竟是否为读卡机
然後才能将node mount到正确的folder
而且只能mount一个partition进来
然後又发现hotplug根本无法侦测到卡片插拔
可是同样的读卡机在PC上却可以被正确侦测到卡片插拔
後来修改hardware拉GPIO
额外写程式来侦测卡片插拔
搞了半天
最终结果还只是差强人意
demo给人家看人家只会觉得
怎麽这麽逊
这个功能不是很简单吗
每台电脑都有的啊
不就是个读卡机而已吗
我是不是也可以讲
Linux driver架构根本就是BullShit
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 115.82.63.120
※ 编辑: meltice 来自: 115.82.63.120 (08/27 01:30)
1F:推 poqwer:其实这篇一开始就只是个无能的人的抱怨文而已啊..... 08/27 01:44
2F:→ poqwer:纯粹是贴错地方而已....。 08/27 01:45
3F:推 Ting1024:M大好厉害 08/27 02:01
4F:→ john0312:你好像不太了解udev... 08/27 12:13
5F:→ john0312:udev可以确保无论插的顺序是什麽, 同一个装置一定会 08/27 12:17
6F:→ john0312:对应到一样的device name. 08/27 12:18
7F:→ john0312:udev也可以透过hal通知程式有没有任何装置插入或拔除. 08/27 12:18
8F:→ john0312:用udev, 你不用mknod... 08/27 12:20
9F:→ john0312:BusyBox编译不起来, 我就没话说了... 08/27 12:23
10F:→ penguinlin:mdev 应该可以单独 patched 新版本的busybox吧... 08/27 12:25
11F:→ airzone:m兄除了有时候爱抱怨外,实力其实还不错的 08/27 23:15