亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
12下一頁
最近訪問板塊 發(fā)新帖
查看: 4534 | 回復(fù): 10
打印 上一主題 下一主題

[操作系統(tǒng)] 請教編譯內(nèi)核模塊 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2013-09-28 09:05 |只看該作者 |倒序?yàn)g覽
各位大俠,
    在編譯linux內(nèi)核時(shí),如果將某驅(qū)動(dòng)設(shè)置為*,即將模塊編譯進(jìn)內(nèi)核。是否就是在linux內(nèi)核啟動(dòng)過程中會(huì)加載該模塊?
如果將某驅(qū)動(dòng)設(shè)置為M,即編譯為模塊。是否需要linux內(nèi)核啟動(dòng)過程中根據(jù)device tree 確定是否加載該模塊?
非常感謝!

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2013-09-28 21:12 |只看該作者
哪位大俠給指點(diǎn)迷津呀

論壇徽章:
1
辰龍
日期:2013-11-28 20:23:14
3 [報(bào)告]
發(fā)表于 2013-09-29 20:33 |只看該作者
在編譯linux內(nèi)核時(shí),如果將某驅(qū)動(dòng)設(shè)置為*,即將模塊編譯進(jìn)內(nèi)核。是否就是在linux內(nèi)核啟動(dòng)過程中會(huì)加載該模塊?
       ---是的,內(nèi)核啟動(dòng)就加載
如果將某驅(qū)動(dòng)設(shè)置為M,即編譯為模塊。是否需要linux內(nèi)核啟動(dòng)過程中根據(jù)device tree 確定是否加載該模塊?
      --- 我沒測試過,不好說 。讓其他人來說吧

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2013-10-06 14:05 |只看該作者
回復(fù) 1# harvey_perfect

y:Compile and include this feature inside of the kernel.
m:Compile this feature as a module, separate from the kernel.

如果是m選項(xiàng)的話,內(nèi)核系統(tǒng)在編譯后會(huì)保留一個(gè)模塊表,但這個(gè)模塊的加載需要手動(dòng)加入到內(nèi)核中,像Ubuntu這樣的發(fā)行版,啟動(dòng)運(yùn)行后,即內(nèi)核處于運(yùn)行態(tài)時(shí),需手動(dòng)加入模塊.


   

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2013-10-08 14:32 |只看該作者
非常感謝樓上兩位指點(diǎn)。
另外,device tree說明文檔中提到,device tree的作用就是實(shí)現(xiàn)同一個(gè)linux內(nèi)核可以運(yùn)行在不同的硬件板卡上,linux內(nèi)核在啟動(dòng)過程中會(huì)根據(jù)device tree文件決定加載哪些模塊。此處提到的模塊使用什么方式編譯的? 是“m”還是“*”?
哪位大俠再給指點(diǎn)迷津!非常感謝!

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
6 [報(bào)告]
發(fā)表于 2013-10-09 15:04 |只看該作者
回復(fù) 5# harvey_perfect
不是加載,而是注冊設(shè)備,platform_device是在of_platform_populate函數(shù)中展開并注冊的

   

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2013-10-10 14:13 |只看該作者
非常感謝指點(diǎn)。
還有點(diǎn)不明白,拿串口設(shè)備模塊為例,在init聲明的函數(shù)中申請數(shù)據(jù)結(jié)構(gòu)空間并注冊設(shè)備,而在加載該模塊時(shí)會(huì)調(diào)用該函數(shù)。
這樣的話,加載模塊和注冊設(shè)備基本在一個(gè)過程中實(shí)現(xiàn)的。
不知您提到的模塊加載和注冊設(shè)備該如何理解?

arm-linux-gcc 發(fā)表于 2013-10-09 15:04
回復(fù) 5# harvey_perfect
不是加載,而是注冊設(shè)備,platform_device是在of_platform_populate函數(shù)中展開并 ...

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
8 [報(bào)告]
發(fā)表于 2013-10-10 22:02 |只看該作者
回復(fù) 7# harvey_perfect
分清楚注冊設(shè)備和注冊驅(qū)動(dòng)的區(qū)別

加載模塊是指的modprobe或insmod,這是將ko文件與內(nèi)核做動(dòng)態(tài)鏈接,加載成功之后才會(huì)調(diào)用module_init





   

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2013-10-11 15:01 |只看該作者
非常感謝您的答復(fù)!
是否可以這樣理解?在驅(qū)動(dòng)的init 函數(shù)中可以使用device tree中該設(shè)備的參數(shù)(如設(shè)備寄存器區(qū)域的基地址,中斷號(hào)等),如果找不到該設(shè)備對應(yīng)的參數(shù),則注冊設(shè)備失敗,找到的話就使用相應(yīng)的參數(shù)注冊設(shè)備。

arm-linux-gcc 發(fā)表于 2013-10-10 22:02
回復(fù) 7# harvey_perfect
分清楚注冊設(shè)備和注冊驅(qū)動(dòng)的區(qū)別

論壇徽章:
1
2015年迎新春徽章
日期:2015-03-04 09:58:11
10 [報(bào)告]
發(fā)表于 2013-10-12 13:10 |只看該作者
本帖最后由 arm-linux-gcc 于 2013-10-12 13:12 編輯
harvey_perfect 發(fā)表于 2013-10-11 15:01
非常感謝您的答復(fù)!
是否可以這樣理解?在驅(qū)動(dòng)的init 函數(shù)中可以使用device tree中該設(shè)備的參數(shù)(如設(shè)備寄 ...


流程如下
of_platform_populate
    platform_device_register               //注冊設(shè)備
在of_platform_populate里面,會(huì)動(dòng)態(tài)創(chuàng)建platform_device結(jié)構(gòu),并且會(huì)將dts里的設(shè)備寄存器地址、中斷號(hào)展開成resource結(jié)構(gòu)


modprobe xxx                                  //加載ko文件
module_init
    platform_driver_register               //注冊驅(qū)動(dòng)


驅(qū)動(dòng)和設(shè)備都注冊了之后,才會(huì)調(diào)用platform_driver->probe,然后在probe里就可以用設(shè)備的地址和中斷號(hào)了
當(dāng)probe被調(diào)用時(shí),說明設(shè)備和驅(qū)動(dòng)已經(jīng)匹配成功了,所以不存在找不到問題




您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP