作者hizuki (入赘桧月家,我妻彩花)
看板Soft_Job
标题Re: [闲聊] Linux Kernel 开发者的生活
时间Sun Dec 6 14:46:09 2015
※ 引述《csfgsj (仙人异路)》之铭言:
: ※ 引述《askacis (ASKA)》之铭言:
: : 最近刚好在看这个问题,提供一点自身的经验分享XD。
: : 说实在的,Embedded Linux做久了,有时候会不知道自己在写程式还是在当柯南XD
小弟之前是做二次开发的,买回来core board(SoC + RAM + Storage)自己开发底板。
硬体故障最讨厌了,比如有次我的老板让人手工焊接出了一个底板(当然PCB是工厂打样的)。
一开始的时候连启动开关都有问题,三次有一次boot mode不对,那位线路工程师永远
都不知道究竟哪里出问题了,反正就发回重焊。
後面就是USB出问题,实验室的示波器采样频率太底,根本没法用。反正最後又是发回
重焊。
幸好我没用原本vendor给的的kernel,改用新的内核,支援dts,把mainline当中的dts改一下,
就可以用在新的base board上。内核开发是没什麽问题了。
然而你不能指望每个driver都是正确的,就算是mainline的,可能出一个新SoC,上游更着update了,
这个上游还又可能是SoC厂商自己。不过这不能保证他们有在老平台测试过一遍。
我也因此提交两个小patches被merge进去了。和上游沟通真的很麻烦,可能一周都没人回信。
当然这不影响开发进度。
我还兼任userspace的开发,这就是另外一段故事了。
不过我因为开发的程度不深入,没有使用过kgdb,我都是用dynmaic print来解决问题的。
我在学习的时候,上IRC请益debug的问题,被外国人亏干嘛用那麽麻烦的工具,所以我到
现在还是不会用kgdb。
对我来说kernel driver没有那麽可怕,反而bootloader和userspace的问题更多。尤其是bootloader,
现在有些vendor的1st bootloader, 2nd bootloader搞的很麻烦,还要数位签名。我最怕去连
JTAG来debug了。
另外说一下,我的水准太糟,新的SoC platform必烧一次,而且经常是把USB port给烧坏掉。
小弟最近也是失业了,想去找一份embeded linux driver开发的工作,想请教各位前辈一下,
这行对电子学要求高吗?不会要求我们同时画电路吧?
之前做二次开发的时候,总是去麻烦电子工程师来解决问题:P
--
蒙上主眷顾的网路工程师
With the mercy of God, I am a network engineer.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 125.77.80.246
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Soft_Job/M.1449384385.A.599.html
1F:推 csfgsj: gdb 没用过,我都是用 12/06 17:30
2F:→ csfgsj: printf("%s %d %s\n", _FILE_, _line_, _function_); 12/06 17:30
3F:→ csfgsj: 对可疑的地方(source)做地毯式的狂轰滥炸 12/06 17:31
4F:→ csfgsj: 我就不相信会炸不到Bug 12/06 17:31
5F:→ csfgsj: Debug的小技巧很多,有机会下次再说吧 12/06 17:31
6F:→ Deltaguita: printf...XD 12/06 17:45
7F:推 amatt: 用printf是必须重新compile再跑,gdb是直接run time设一些 12/06 17:49
8F:→ amatt: 断点来观察。 12/06 17:49
9F:推 askacis: 每次看到 soc厂提给kernel tree的版本里面一堆 bug 12/06 18:13
10F:推 askacis: SOC後来修改过的新版却不提交上去就觉得用到有问题版本 12/06 18:16
11F:→ askacis: 的人很衰 12/06 18:16
12F:推 Killercat: ...kernel debug怎麽会用printf(/facepalm) 12/06 19:44
13F:推 SkyFluid: 用printf来debug?!?!? 12/06 19:49
14F:推 shortoneal: 系统坏了,这些code都没跑到,你看都没印东西 12/06 20:23
15F:推 askacis: 二楼大大明明在反串XD 12/06 21:11
16F:→ Knudsen: vendor送upstream可能有很多故事 支援不好或有问题是 12/06 21:15
17F:→ Knudsen: 很常见的事情 对upstream contributor也无可奈何 12/06 21:15
18F:推 wesley234: gdb 的缺点是对环境的要求比较多 12/06 21:51
19F:→ wesley234: 很多embedded 的环境无法使用 12/06 21:52
20F:→ wesley234: 相对来说printf的条件单纯多了 12/06 21:52
21F:→ wesley234: 几乎所有的平台都可以用 12/06 21:52
22F:推 SuperTaco: 印象中 Linus 本人说过他只用 printk 来 debug XD 12/06 22:43
23F:→ SuperTaco: 不过一般人毕竟不是天才,所以工具能用的还是用一下… 12/06 22:43
24F:→ final01: 谁跟你linus只会printk... 12/06 23:28
25F:→ Obama19: 楼上逻辑有问题? 只用不代表只会 12/07 01:29
26F:推 IhateOGC: dmesg QQ 12/07 07:18
28F:推 comferret: printk... 12/08 14:25
29F:推 csfgsj: #define printf printk 不就好了,小问题也在GGYY 12/08 19:56
30F:→ csfgsj: 忘了说:我写程式从来不检查,都是让Compiler帮我看 12/08 19:59
31F:→ csfgsj: 业界跟学校不一样,不要花精神在机器都可以代劳的事情上 12/08 20:02
32F:推 csfgsj: 有参考资料、Google,我也从来不去背特别的语法与LIB 12/08 20:06
33F:→ csfgsj: 效率是靠方法,不是苦力 12/08 20:06
34F:→ csfgsj: 我始终觉得我们的学校教育的方式有问题 12/08 20:08
35F:→ csfgsj: 所以学生好像只会当苦力 12/08 20:08
36F:推 karamajean: 推用printf, 因为看老半天的code 也不晓得程式跑到那 12/20 20:20