作者jimmytzeng (jimmytseng)
看板LinuxDev
标题Re: [问题] 怎麽用raspberry pi学kernel or driver
时间Thu Mar 27 12:56:09 2014
※ 引述《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)
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 61.218.53.60
※ 文章网址: http://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1395896171.A.409.html
1F:推 nfsong:PUSH 04/27 09:25
2F:推 splash7447:对我很有帮助……谢谢您。 05/30 23:02