※ 引述《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