看板 LinuxDev 關於我們 聯絡資訊
※ 引述《lomoway10 (lomoway)》之銘言: : 我有幾個driver,彼此有個啟動順序問題. : 我要怎麼讓kernel知道要先啟動哪個driver.再去執行哪個driver呢? : (這裡都是把driver合在kernel裡面,不是build module) : 另一個問題.假設.順序已經對了. : 但是第一個driver還沒有initial完.第二個driver已經開始啟動. : 可是他卻因為第一個還沒完成.而出現probe失敗的訊息.導致initial失敗. : 這種問題又該怎麼處理? : 有沒有人有相關的經驗呢?? 如果都是build-in在kernel裡頭的話,那麼kernel啟動的時候有 分先後等級的函式可以讓你呼叫,請看 kernel_source/include/linux/init.h 在你的driver加上相對應的函式就可以控制不同driver起來的順序了 EX. 如果想要讓你的B driver啟動順序在A之前的話,可以這樣寫 In A driver: static int __init init_A (void) { .... } late_initcall(init_A); In B driver: static int __init init_B (void) { .... } arch_initcall(init_B); 有錯的話還請大大指正囉~~^^ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.244.105.125