Re: [心得] 微軟的driver架構 = BullShit

看板Soft_Job (軟體人)作者 (三億兩千萬大散戶)時間16年前 (2009/08/27 01:30), 編輯推噓2(209)
留言11則, 5人參與, 最新討論串5/7 (看更多)
舉個大家都會覺得理所當然了例子 就是每台電腦都有的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)

08/27 01:44, , 1F
其實這篇一開始就只是個無能的人的抱怨文而已啊.....
08/27 01:44, 1F

08/27 01:45, , 2F
純粹是貼錯地方而已....。
08/27 01:45, 2F

08/27 02:01, , 3F
M大好厲害
08/27 02:01, 3F

08/27 12:13, , 4F
你好像不太了解udev...
08/27 12:13, 4F

08/27 12:17, , 5F
udev可以確保無論插的順序是什麼, 同一個裝置一定會
08/27 12:17, 5F

08/27 12:18, , 6F
對應到一樣的device name.
08/27 12:18, 6F

08/27 12:18, , 7F
udev也可以透過hal通知程式有沒有任何裝置插入或拔除.
08/27 12:18, 7F

08/27 12:20, , 8F
用udev, 你不用mknod...
08/27 12:20, 8F

08/27 12:23, , 9F
BusyBox編譯不起來, 我就沒話說了...
08/27 12:23, 9F

08/27 12:25, , 10F
mdev 應該可以單獨 patched 新版本的busybox吧...
08/27 12:25, 10F

08/27 23:15, , 11F
m兄除了有時候愛抱怨外,實力其實還不錯的
08/27 23:15, 11F
文章代碼(AID): #1AbN4SJ7 (Soft_Job)
文章代碼(AID): #1AbN4SJ7 (Soft_Job)