看板 Soft_Job 關於我們 聯絡資訊
舉個大家都會覺得理所當然了例子 就是每台電腦都有的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)
poqwer:其實這篇一開始就只是個無能的人的抱怨文而已啊..... 08/27 01:44
poqwer:純粹是貼錯地方而已....。 08/27 01:45
Ting1024:M大好厲害 08/27 02:01
john0312:你好像不太了解udev... 08/27 12:13
john0312:udev可以確保無論插的順序是什麼, 同一個裝置一定會 08/27 12:17
john0312:對應到一樣的device name. 08/27 12:18
john0312:udev也可以透過hal通知程式有沒有任何裝置插入或拔除. 08/27 12:18
john0312:用udev, 你不用mknod... 08/27 12:20
john0312:BusyBox編譯不起來, 我就沒話說了... 08/27 12:23
penguinlin:mdev 應該可以單獨 patched 新版本的busybox吧... 08/27 12:25
airzone:m兄除了有時候愛抱怨外,實力其實還不錯的 08/27 23:15