Re: [問題] 怎麼用raspberry pi學kernel or driver
※ 引述《jimmytzeng (jimmytseng)》之銘言:
: ※ 引述《shihyu (shihyu)》之銘言:
: : 我最近買塊raspberry pi , 不過目前只會燒錄image 到sd card
: : 網路上找資料都偏應用程式, 不知道怎麼用raspberry pi 學kernel or driver?
: : 想請問一下應該要怎麼學? 有相關資料可以參考?
: : 謝謝
: 看來你是想透過raspberry pi去學embedded linux ?
: 那我推薦你幾個步驟
: 1. 學會使用cross compile toolchains。用交叉編譯出helloworld.ko,放在raspberry上載入此模組,有成功就代表你跨入第一步
: 2. 學會設定kernel的組態檔(make config/menuconfig),並不是說去了解kernel每個設定是在幹嘛,然後自行去挑選設定,
: 來達到kernel的最佳化,有能力這樣幹的人,不是狂熱分子就是在賣產品的公司了,你要找的是,依造需求看哪個kernel版本
: 適合raspberry pi或BCM2835這個chip、看有沒有高手分享raspberry的kernel組態檔、你要寫的driver,kernel有沒有支援
: 或是說有沒有把相關設定打開
: 3. 交叉編譯kernel (編譯一次時間滿久的)
: 4. driver有很多種,透過linux提供的API內去驅動硬體也是driver,直接去讀寫硬體的register達到驅動硬體也是driver
: 推薦你先從bootloader(推薦u-boot)下手,因為從bootloader的code去了解怎樣從基本I/O或是一些interface去驅動硬體
: 可以避免閱讀有OS架構的driver來搞混你(此步驟請搭配硬體spec效果更好)
: 5. 再來就是透過linux的規範去寫出在linux跑的driver,這就要看滿大量的文件了,你可以從外接I2C或是GPIO的裝置
: 開始下手,關於這個網路上也滿多教學 (推薦去買個I2C介面的RTC回來寫driver)
_________________________________________________________________________
目前嘗試cross compile 編譯出hello.ko
可是放到板子上出現下面錯誤
pi@raspberrypi:~$ sudo insmod hello.ko
Error: could not insert module hello.ko: Invalid module format
我裝的是Raspbian 最新版本 kernel 是 3.10.25+
pi@raspberrypi:~$ uname -r
3.10.25+
我下載 https://github.com/raspberrypi/linux Makefile Linux 3.10.34
這樣 3.10.34 跟 3.10.25+ 差異是造成Invalid module format 原因嗎?
因為我網站kernel source code 只看到3.10.34 沒有 3.10.25
那我.config 是從板子下載config.gz 設定後編譯這樣應該不是這問題
請問這我應該怎麼解決Invalid module format 問題
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 123.204.6.127
※ 文章網址: http://www.ptt.cc/bbs/LinuxDev/M.1396089824.A.970.html
→
03/29 21:05, , 1F
03/29 21:05, 1F
→
03/29 22:37, , 2F
03/29 22:37, 2F
→
03/29 22:38, , 3F
03/29 22:38, 3F
→
03/29 22:38, , 4F
03/29 22:38, 4F
→
03/29 23:23, , 5F
03/29 23:23, 5F
→
03/29 23:24, , 6F
03/29 23:24, 6F
→
03/30 00:17, , 7F
03/30 00:17, 7F
→
03/30 00:19, , 8F
03/30 00:19, 8F
→
03/30 00:19, , 9F
03/30 00:19, 9F
→
03/30 01:54, , 10F
03/30 01:54, 10F
討論串 (同標題文章)
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章