我要转行Linux驱动开发了,驱动开发的工作是什么样的情况,希望大神给点建议,也希望大家给我一点鼓励

时间:2021-10-27 11:53:39
我刚大学毕业的时候是2010年,什么都不会,只会点c,后来介绍去做JavME,做了一年,后又做了一阵子Java企业级开发。感觉这不是我想要的工作,在这段时间里面,除了实际编程能力有了提高,其他的没学会什么,也没有机会去给我接触,好吧,我承认我没有用心去想这些问题。后来,我培训了一下Java和Android,才对我之前的工作用的东西有了一种恍然大悟的感觉,知道了什么是对象,什么是类,什么是面向对象,什么是接口,怎么样写程序的框架,Java虚拟机是怎么工作的等等。然后Android也学习了上层应用开发,掌握了应用层的框架,然后找了一个待遇不错的工作。后来工作的时候,我才发现,上层应用是最没有技术含量的,于是天天就去研究Framework层,NDK源生层。但是能力有限,资料又少,工作也忙,所以没有一个全面的掌握,甚至连入门都没有达到,我对底层的东西十分好奇,像我这种程度的人,只有在兴趣的基础上才能学到很多东西。大学大一别人还在学高数,考四级的时候,我就自学了c,那时候对基本编程掌握得很熟。因为认知有限,所以没有进一步深入学习,我承认我在这方面的朋友和同志几乎没有,但我对这个很感兴趣,又没有明确的学习思路,只有靠热情和兴趣去学习,所以效果不怎么理想,网上的一些资料都很有参考性,但是人云亦云,我看到的只有矛盾的普遍性但没有特殊性,正确的东西用在我的身上,有时候效果也不是很好。好了,言规正传。在我研究那些东西的时候,我又发现了一个东西,叫Linux,在研究Linux的时候发现有一个东西叫内核,于是,对照着ANdoird上层应用的一些控件,机制,我就想明白了,真正控制这些东西的,是对Linux内核进行移植然后再重新编译得来的,是我这个做应用开发完全做不来的,我决心想要学这些东西,因为我不想做技术最边缘的人。在研究Linux内核的过程中,我发现,其实最底层的,是那些Android的驱动程序,这些才是一切的根本,暂且让我这么说吧。因为那些编译转码过程在我的认知里面,和程序是有点不同的,电子电路和我的专业不同,我也是个小白。所以我将要走上Linux驱动编程之路,找个好老师去培训了,是3月底开始的,希望我这个帖子不要沉了,我想坚持把我的培训的过程写下来,一是给同志们看,二是对我学习的过程的一个回忆和知识的巩固。


希望大神们给我一点Linux驱动工作的时候的情况或工作的内容,你们每天在干些什么,我想听听咧。给点建议,给点鼓励,我想这就是我的梦想吧,做个技术的研究者,而不是开发者,为了梦想,不惜代价

104 个解决方案

#1


我找到了Linux驱动的新工作后,我就结贴,我要坚持,坚持!!!

#2


我觉得底层开发基础很重要吧。数据结构和操作系统原理还是要了解的。祝你好运。

#3


引用 2 楼 huyongzsRE 的回复:
我觉得底层开发基础很重要吧。数据结构和操作系统原理还是要了解的。祝你好运。
终于有人回复我了,谢谢。是啊,数据结构因为是用c来教学的,所以我兴趣很大,基础还行,各种结构,各种算法的。操作系统的原理就忘光了,悲剧

#4


有木有人在搞这个工作啊?每天工作的时候都在做什么呢?

#5


我想坚持把我的培训的过程写下来

========================================================
看着这么像广告呢?

#6


我目前在搞LINUX驱动开发。工作内容无非是提供些应用层接口,把一个平台的驱动移植到另一个硬件平台等等

#7


引用 5 楼 cskyrain 的回复:
我想坚持把我的培训的过程写下来

========================================================
看着这么像广告呢?
我学习时,只写一些技术的心得或技术的细节,绝对不提在哪里培训,培训的时候,学校只是一个载体和平台,每一个学校都是半斤八两,没有谁强谁弱的,关键是看个人

#8


引用 6 楼 AI__man 的回复:
我目前在搞LINUX驱动开发。工作内容无非是提供些应用层接口,把一个平台的驱动移植到另一个硬件平台等等
大神,工作内容多不多,有没有技术含量,就是说能不能做出的东西会有人认可并得到广泛的应用呢?

#9


有木有人帮我透露一点工作的细节呀,大神

#10


做Linux驱动,主要看在什么性质的公司做,如果在IC原厂做的话,主要会侧重于某一模块(例如:Wifi、Camera、电源管理等),这种工作技术含量会比较高,能对模块的工作原理和驱动程序相当了解;如果在方案公司做的话,技术含量比较低但做的模块很多,基本上从LCD、TP到WIFI/BT等所有模块都会移植一遍,简单说就是杂而不精。

#11


引用 10 楼 hugo_woo 的回复:
做Linux驱动,主要看在什么性质的公司做,如果在IC原厂做的话,主要会侧重于某一模块(例如:Wifi、Camera、电源管理等),这种工作技术含量会比较高,能对模块的工作原理和驱动程序相当了解;如果在方案公司做的话,技术含量比较低但做的模块很多,基本上从LCD、TP到WIFI/BT等所有模块都会移植一遍,简单说就是杂而不精。
额,谢谢大神,这条信息对我有很大的帮助,那哪些公司是IC原厂呢

#12


建议楼主先熟悉汇编语言和GDB调试器的使用。

#13


引用 12 楼 zhao4zhong1 的回复:
建议楼主先熟悉汇编语言和GDB调试器的使用。
额,谢谢,学习的内容里面有这些,大神这么说更加确定了

#14


引用 11 楼 zxdxp8l 的回复:
引用 10 楼 hugo_woo 的回复:做Linux驱动,主要看在什么性质的公司做,如果在IC原厂做的话,主要会侧重于某一模块(例如:Wifi、Camera、电源管理等),这种工作技术含量会比较高,能对模块的工作原理和驱动程序相当了解;如果在方案公司做的话,技术含量比较低但做的模块很多,基本上从LCD、TP到WIFI/BT等所有模块都会移植一遍,简单说就是杂而不精。额,……
我要转行Linux驱动开发了,驱动开发的工作是什么样的情况,希望大神给点建议,也希望大家给我一点鼓励 大牛谢谢啦

#15


加油啊,小弟还是大三,但是很喜欢这个就业方向,正在努力巩固c和linux,没人指导,只能是多方参考,摸爬滚打,希望大哥多分享一些学习心得,持续关注中。。。。

#16


引用 15 楼 hx598731784 的回复:
加油啊,小弟还是大三,但是很喜欢这个就业方向,正在努力巩固c和linux,没人指导,只能是多方参考,摸爬滚打,希望大哥多分享一些学习心得,持续关注中。。。。
这月底就开始培训了,会经常把学到的东西与大家分享或讨论,一起进步吧

#17


加油啊,兄弟。  我现在也在自学底层。 坚持才会有成功!

#18


其实做Linux驱动在实际工作中很少需要写全新的驱动,供应商或原厂会提供驱动源码,你只需要把它移植到自己的系统上去就行了,基本上没有什么难度;驱动主要的工作难度和工作量是放在产品的稳定性和解bug上面。当然在IC原厂工作例外。

#19


引用 4 楼 zxdxp8l 的回复:
有木有人在搞这个工作啊?每天工作的时候都在做什么呢?
我在做这个工作,毕业就在做。18楼说的挺对的。中国基本不用自己写驱动,移植就好。很多驱动,硬件生产商提供的。要做这个linux驱动的那几本书,实习3个月就能入门,其实驱动也是调用linux开发人员提供的API写的。

#20


其实驱动也是调用linux开发人员提供的API写的
做应用开发也是调用被人的API开发。

很多人的想法“都是调用别人的API开发,有个毛意思。”

如果只是局限于此,的确没个毛意思。

#21


引用 18 楼 hugo_woo 的回复:
其实做Linux驱动在实际工作中很少需要写全新的驱动,供应商或原厂会提供驱动源码,你只需要把它移植到自己的系统上去就行了,基本上没有什么难度;驱动主要的工作难度和工作量是放在产品的稳定性和解bug上面。当然在IC原厂工作例外。
原来一般的驱动工作是这样啊,谢谢了额!~那IC原厂你知道有哪些呢???我好先了解一下这些企业

#22


引用 20 楼 cskyrain 的回复:
其实驱动也是调用linux开发人员提供的API写的
做应用开发也是调用被人的API开发。

很多人的想法“都是调用别人的API开发,有个毛意思。”

如果只是局限于此,的确没个毛意思。
啊?大神那如果才能体现出自己的价值呢

#23


引用 21 楼 zxdxp8l 的回复:
引用 18 楼 hugo_woo 的回复:
其实做Linux驱动在实际工作中很少需要写全新的驱动,供应商或原厂会提供驱动源码,你只需要把它移植到自己的系统上去就行了,基本上没有什么难度;驱动主要的工作难度和工作量是放在产品的稳定性和解bug上面。当然在IC原厂工作例外。原来一般的驱动工作是这样啊,谢谢了额!~那IC原厂你知道有哪些呢???我好先了解一下这些企业


IC原厂一般指的是芯片生厂商,看是在什么行业;我目前从事Android手机、平板这方面,主要的原厂有MTK、全志、瑞星微、TI、展讯等等,在这些原厂里工作,可以学到不少东西

#24


底层驱动开发不是说的这么容易D,需要能看懂datasheet,有电路基础,要不你咋写得出驱动。没有这些基础是不行D,当然没有打击楼主的意思。就是点明一下而已。

#25


引用 23 楼 hugo_woo 的回复:
引用 21 楼 zxdxp8l 的回复:引用 18 楼 hugo_woo 的回复:
其实做Linux驱动在实际工作中很少需要写全新的驱动,供应商或原厂会提供驱动源码,你只需要把它移植到自己的系统上去就行了,基本上没有什么难度;驱动主要的工作难度和工作量是放在产品的稳定性和解bug上面。当然在IC原厂工作例外。原来一般的驱动工作是这样啊,谢谢了额!~那IC原厂你知道有哪些……
那进这些公司有些什么条件呢,我在网上怎么看不到他们的招聘公告???

#26


引用 24 楼 brantyou 的回复:
底层驱动开发不是说的这么容易D,需要能看懂datasheet,有电路基础,要不你咋写得出驱动。没有这些基础是不行D,当然没有打击楼主的意思。就是点明一下而已。
额,是啊,我英语勉强能看得懂,模拟电路、数字电路原来也看过,就是缺乏一个系统的培训,但我又不知道培训完后每天工作做的事是什么,以后有什么前途,有点怕放弃现在的工作,身边又没得一个人是搞这个的,参考太少了,肿么办

#27


韦东山大哥视频里说的,如果只是想从事驱动工作,改动代码可能不超过10行,原厂提供的驱动基本都可以用了 只是改变一些参数。如果想要真正了解底层。。。。。数电(精通) 模电(熟悉) C语言(精通)汇编(熟练)  然后就是多练 至于怎么练?你可以在源码内driver部分全部不编进内核 然后自己独立编写各个驱动模块 ,编好一个 拷贝到文件系统测试 这样 我相信不久你就是高手了

#28


我以前是搞单片机的 搞了几年 对硬件有一定的认知 c语言 单片机应用可以 ,但是自学linux后发觉我那C水平实在不够  正在苦逼自学中  希望与楼主共同进步

#29


引用 27 楼 cumtgao 的回复:
韦东山大哥视频里说的,如果只是想从事驱动工作,改动代码可能不超过10行,原厂提供的驱动基本都可以用了 只是改变一些参数。如果想要真正了解底层。。。。。数电(精通) 模电(熟悉) C语言(精通)汇编(熟练)  然后就是多练 至于怎么练?你可以在源码内driver部分全部不编进内核 然后自己独立编写各个驱动模块 ,编好一个 拷贝到文件系统测试 这样 我相信不久你就是高手了
 ……
这种方法,锻炼了硬件知识,对软件影响不大,做linux驱动,硬件知识是一部分,但更大一部分是理解linux驱动模块子系统的软件架构。

驱动没什么神秘的东西,就是高效的利用硬件提供的功能,将这些功能,整合到linux 内核中,供kernel使用。驱动子系统的软件精髓是如何以高效,易理解,易扩展的支持同类型设备,达到最高的可适配性。所以完全自己闭门造车没有太大意义,抓住子系统的精髓才是重点,而且前面讲的,有的人开发移植个驱动,10行code都不要,这就是linux driver的精妙之处。也是软件工程的目的。如果你开放移植个驱动,还需要成千上万行代码,只有两种情况,1,你这是完全新功能的硬件,以前从没有相似的硬件。2,这个驱动框架太挫了,等几个版本就不会这样了。

#30


我目前在手机方案公司做android驱动,其实感觉技术上真的没什么,驱动代码都是厂商写好的拿过来做一些移植,配置一下基本功能就OK了,剩下的就是解决测试部提出的一些BUG,基本上整天就是看log,根据log定位问题,解决问题。

#31


单纯做驱动都普遍都招3年+经验的 我要转行Linux驱动开发了,驱动开发的工作是什么样的情况,希望大神给点建议,也希望大家给我一点鼓励

#32


一只菜鸟路过~说一下我的想法:
刚才在论坛上看到做关于Linux的毕业设计的帖子,觉得里面有几句话挺有用的。如果想做关于Linux底层驱动的研究,建议去尝试做Linux系统的移植。如果说能把Linux系统移植到一块开发板上,比如说ARM开发板,那就是你的本事了,我觉得算是拿得出手的东西了,绝对有人要。
然后呢,希望楼主还是坚持着做一个方面的研究好一点。因为楼主之前是做Java方向的,感觉你好像做得挺顺利的,然后经验能力什么的都提升很快。我想说的是,这一行好像都是经验越多越值钱。如果说你在Java这个方向工作有五六年,这些年的经验绝对会让你薪水加倍又加倍的,甚至比你转学Linux的收获要多很多。当然,既然楼主现在已经转了方向,那还是那一句,希望楼主能坚持这个方向,从底层驱动慢慢做起,了解多点关于Linux内核的资料,真的掌握住移植系统的话,应该能在Linux这一行里面崭露头角的。楼主加油!

#33


引用 32 楼 nanbuxiangjie 的回复:
一只菜鸟路过~说一下我的想法:
刚才在论坛上看到做关于Linux的毕业设计的帖子,觉得里面有几句话挺有用的。如果想做关于Linux底层驱动的研究,建议去尝试做Linux系统的移植。如果说能把Linux系统移植到一块开发板上,比如说ARM开发板,那就是你的本事了,我觉得算是拿得出手的东西了,绝对有人要。
然后呢,希望楼主还是坚持着做一个方面的研究好一点。因为楼主之前是做……
真心感谢你的建议,好人啊,谢谢

#34


每天都看见这些帖子,不能沉沦啊,努力ing

#35


我目前在一家公司实习,也是做android底层驱动的,共同探讨,一起学习

#36


单纯的驱动工程师不好找工作啊,尤其你还没经验,上上人才网站看看招驱动的有多少就知道了,至于原厂工程师,基本硬件水平都要有一个较高的水准。

#37


上面说的都看了下, LZ还是先去方案厂商吧 (很多是大的代理公司 ,原厂不自己卖芯片)。
进原厂的....那都是极为NB的了... 

#38


    就工作岗位而已,写底层代码越多的岗位偏少,而且要求高,特别是底层的东西是不会轻易改动的,
喜欢底层,原理性的东西,很好啊,关键得培养分析问题和解决问题的能力,这也是传说中的牛人,
    只要你进的不是研发部门或者研究院之类的,你做的东西就得有市场价值,企业招你进去是希望挣钱的,所以他们都要求做东西有效率。

    原理性的东西搞懂了是不容易忘的,你说的懂,估计只是看懂了
    你喜欢底层的东西不错,只要坚持肯定不错,关键是你自己很喜欢这就够了。
    坚持吧,大部分人缺少的都不是方法,而是坚持
    
个人意见,空口说空话,其实我也是在提醒自己要努力。

#39


努力学习吧。。

#40


国内公司做驱动的确实很少,linux被喊的太热了

#41


 楼主有误解。做驱动的逻辑性和复杂度没有一般的应用程序高。
根部就不是你想的高技术含量的工作。

你喜欢复杂的东西就去做个java框架出来。 想和硬件相关就试试写个小的操作系统。
在企业工作无论哪里都是负责一下部分。

#42


关注ing,我现在刚毕业,找了一家做手机驱动方向的工作!

#43


在校学生,对着这方面挺感兴趣,关注中!!!!

#44


我也在转做驱动中,苦于没有经验,不好转行。

#45


兄台。咱们一样的经历。。。兄台。我最经也要想转底层的。在自学汇编,看保护模式。不过没c基础。也是从事java开发。 经过1年多的java开发 。从刚学java 毕业工作。自认为超越了本科生。到后来越来越惭愧越来越觉得自己更本就不了解计算机结构和系统。仅仅只是会使用而已。内心不断的告诉自己 ,咱需要学的是最基础的最底层的 。所以 在学汇编。但是兴趣总归兴趣。还是要吃饭啊。。。也在纠结迷茫自己学习底层。能走的方向又是什么。能就职的职位又是什么呢。。楼主去培训了 去哪里培训了哦? 能否分享下 培训方向?教个朋友 大家一起奋斗啊

#46


帖主还在么,我也是2010年毕业的,也想改做liux驱动方面的,(ˇˍˇ) 想~了解下你的情况,交流下,我qq:851388951 我要转行Linux驱动开发了,驱动开发的工作是什么样的情况,希望大神给点建议,也希望大家给我一点鼓励

#47


引用 6 楼 AI__man 的回复:
我目前在搞LINUX驱动开发。工作内容无非是提供些应用层接口,把一个平台的驱动移植到另一个硬件平台等等

跟我一样

#48


越来越觉得驱动没啥意思了,自己写的代码量太少了,成天看别人的代码,用哪个芯片都有sample驱动,都写好了,一般配几个外围gpio,电源时钟就差不多可以工作了,在测测就没啥大问题了,遇到比较难搞的问题也解不了,芯片厂商开放的资源,文档有限,只能提case,正考虑换个芯片厂商做bsp,可惜国内像样的公司太少了。。。

#49


现在我就是在方案公司做,说实在只要你原来有点C基础和会看一点datasheet、原理图,大概了解linux内核的框架,到公司做一、两个月时间就基本熟悉了,因为大部分都是移植,调试硬件的问题,根据原理图配一下IO,搞不定的就找原厂帮忙。如果硬件没问题的多数很快就能调好,因为一般方案公司做的东西,原厂都有一个平台做好了大部分的支持。技术含量比较低,我应届毕业来这里学习两三个月就觉得基本上学不到什么东西了,现在自己看一下上层的东西(android、java部分)。

#50


我也培训过linux驱动 为啥我就找不到这方面的工作呢  你们一毕业就能找到 我要转行Linux驱动开发了,驱动开发的工作是什么样的情况,希望大神给点建议,也希望大家给我一点鼓励

#1


我找到了Linux驱动的新工作后,我就结贴,我要坚持,坚持!!!

#2


我觉得底层开发基础很重要吧。数据结构和操作系统原理还是要了解的。祝你好运。

#3


引用 2 楼 huyongzsRE 的回复:
我觉得底层开发基础很重要吧。数据结构和操作系统原理还是要了解的。祝你好运。
终于有人回复我了,谢谢。是啊,数据结构因为是用c来教学的,所以我兴趣很大,基础还行,各种结构,各种算法的。操作系统的原理就忘光了,悲剧

#4


有木有人在搞这个工作啊?每天工作的时候都在做什么呢?

#5


我想坚持把我的培训的过程写下来

========================================================
看着这么像广告呢?

#6


我目前在搞LINUX驱动开发。工作内容无非是提供些应用层接口,把一个平台的驱动移植到另一个硬件平台等等

#7


引用 5 楼 cskyrain 的回复:
我想坚持把我的培训的过程写下来

========================================================
看着这么像广告呢?
我学习时,只写一些技术的心得或技术的细节,绝对不提在哪里培训,培训的时候,学校只是一个载体和平台,每一个学校都是半斤八两,没有谁强谁弱的,关键是看个人

#8


引用 6 楼 AI__man 的回复:
我目前在搞LINUX驱动开发。工作内容无非是提供些应用层接口,把一个平台的驱动移植到另一个硬件平台等等
大神,工作内容多不多,有没有技术含量,就是说能不能做出的东西会有人认可并得到广泛的应用呢?

#9


有木有人帮我透露一点工作的细节呀,大神

#10


做Linux驱动,主要看在什么性质的公司做,如果在IC原厂做的话,主要会侧重于某一模块(例如:Wifi、Camera、电源管理等),这种工作技术含量会比较高,能对模块的工作原理和驱动程序相当了解;如果在方案公司做的话,技术含量比较低但做的模块很多,基本上从LCD、TP到WIFI/BT等所有模块都会移植一遍,简单说就是杂而不精。

#11


引用 10 楼 hugo_woo 的回复:
做Linux驱动,主要看在什么性质的公司做,如果在IC原厂做的话,主要会侧重于某一模块(例如:Wifi、Camera、电源管理等),这种工作技术含量会比较高,能对模块的工作原理和驱动程序相当了解;如果在方案公司做的话,技术含量比较低但做的模块很多,基本上从LCD、TP到WIFI/BT等所有模块都会移植一遍,简单说就是杂而不精。
额,谢谢大神,这条信息对我有很大的帮助,那哪些公司是IC原厂呢

#12


建议楼主先熟悉汇编语言和GDB调试器的使用。

#13


引用 12 楼 zhao4zhong1 的回复:
建议楼主先熟悉汇编语言和GDB调试器的使用。
额,谢谢,学习的内容里面有这些,大神这么说更加确定了

#14


引用 11 楼 zxdxp8l 的回复:
引用 10 楼 hugo_woo 的回复:做Linux驱动,主要看在什么性质的公司做,如果在IC原厂做的话,主要会侧重于某一模块(例如:Wifi、Camera、电源管理等),这种工作技术含量会比较高,能对模块的工作原理和驱动程序相当了解;如果在方案公司做的话,技术含量比较低但做的模块很多,基本上从LCD、TP到WIFI/BT等所有模块都会移植一遍,简单说就是杂而不精。额,……
我要转行Linux驱动开发了,驱动开发的工作是什么样的情况,希望大神给点建议,也希望大家给我一点鼓励 大牛谢谢啦

#15


加油啊,小弟还是大三,但是很喜欢这个就业方向,正在努力巩固c和linux,没人指导,只能是多方参考,摸爬滚打,希望大哥多分享一些学习心得,持续关注中。。。。

#16


引用 15 楼 hx598731784 的回复:
加油啊,小弟还是大三,但是很喜欢这个就业方向,正在努力巩固c和linux,没人指导,只能是多方参考,摸爬滚打,希望大哥多分享一些学习心得,持续关注中。。。。
这月底就开始培训了,会经常把学到的东西与大家分享或讨论,一起进步吧

#17


加油啊,兄弟。  我现在也在自学底层。 坚持才会有成功!

#18


其实做Linux驱动在实际工作中很少需要写全新的驱动,供应商或原厂会提供驱动源码,你只需要把它移植到自己的系统上去就行了,基本上没有什么难度;驱动主要的工作难度和工作量是放在产品的稳定性和解bug上面。当然在IC原厂工作例外。

#19


引用 4 楼 zxdxp8l 的回复:
有木有人在搞这个工作啊?每天工作的时候都在做什么呢?
我在做这个工作,毕业就在做。18楼说的挺对的。中国基本不用自己写驱动,移植就好。很多驱动,硬件生产商提供的。要做这个linux驱动的那几本书,实习3个月就能入门,其实驱动也是调用linux开发人员提供的API写的。

#20


其实驱动也是调用linux开发人员提供的API写的
做应用开发也是调用被人的API开发。

很多人的想法“都是调用别人的API开发,有个毛意思。”

如果只是局限于此,的确没个毛意思。

#21


引用 18 楼 hugo_woo 的回复:
其实做Linux驱动在实际工作中很少需要写全新的驱动,供应商或原厂会提供驱动源码,你只需要把它移植到自己的系统上去就行了,基本上没有什么难度;驱动主要的工作难度和工作量是放在产品的稳定性和解bug上面。当然在IC原厂工作例外。
原来一般的驱动工作是这样啊,谢谢了额!~那IC原厂你知道有哪些呢???我好先了解一下这些企业

#22


引用 20 楼 cskyrain 的回复:
其实驱动也是调用linux开发人员提供的API写的
做应用开发也是调用被人的API开发。

很多人的想法“都是调用别人的API开发,有个毛意思。”

如果只是局限于此,的确没个毛意思。
啊?大神那如果才能体现出自己的价值呢

#23


引用 21 楼 zxdxp8l 的回复:
引用 18 楼 hugo_woo 的回复:
其实做Linux驱动在实际工作中很少需要写全新的驱动,供应商或原厂会提供驱动源码,你只需要把它移植到自己的系统上去就行了,基本上没有什么难度;驱动主要的工作难度和工作量是放在产品的稳定性和解bug上面。当然在IC原厂工作例外。原来一般的驱动工作是这样啊,谢谢了额!~那IC原厂你知道有哪些呢???我好先了解一下这些企业


IC原厂一般指的是芯片生厂商,看是在什么行业;我目前从事Android手机、平板这方面,主要的原厂有MTK、全志、瑞星微、TI、展讯等等,在这些原厂里工作,可以学到不少东西

#24


底层驱动开发不是说的这么容易D,需要能看懂datasheet,有电路基础,要不你咋写得出驱动。没有这些基础是不行D,当然没有打击楼主的意思。就是点明一下而已。

#25


引用 23 楼 hugo_woo 的回复:
引用 21 楼 zxdxp8l 的回复:引用 18 楼 hugo_woo 的回复:
其实做Linux驱动在实际工作中很少需要写全新的驱动,供应商或原厂会提供驱动源码,你只需要把它移植到自己的系统上去就行了,基本上没有什么难度;驱动主要的工作难度和工作量是放在产品的稳定性和解bug上面。当然在IC原厂工作例外。原来一般的驱动工作是这样啊,谢谢了额!~那IC原厂你知道有哪些……
那进这些公司有些什么条件呢,我在网上怎么看不到他们的招聘公告???

#26


引用 24 楼 brantyou 的回复:
底层驱动开发不是说的这么容易D,需要能看懂datasheet,有电路基础,要不你咋写得出驱动。没有这些基础是不行D,当然没有打击楼主的意思。就是点明一下而已。
额,是啊,我英语勉强能看得懂,模拟电路、数字电路原来也看过,就是缺乏一个系统的培训,但我又不知道培训完后每天工作做的事是什么,以后有什么前途,有点怕放弃现在的工作,身边又没得一个人是搞这个的,参考太少了,肿么办

#27


韦东山大哥视频里说的,如果只是想从事驱动工作,改动代码可能不超过10行,原厂提供的驱动基本都可以用了 只是改变一些参数。如果想要真正了解底层。。。。。数电(精通) 模电(熟悉) C语言(精通)汇编(熟练)  然后就是多练 至于怎么练?你可以在源码内driver部分全部不编进内核 然后自己独立编写各个驱动模块 ,编好一个 拷贝到文件系统测试 这样 我相信不久你就是高手了

#28


我以前是搞单片机的 搞了几年 对硬件有一定的认知 c语言 单片机应用可以 ,但是自学linux后发觉我那C水平实在不够  正在苦逼自学中  希望与楼主共同进步

#29


引用 27 楼 cumtgao 的回复:
韦东山大哥视频里说的,如果只是想从事驱动工作,改动代码可能不超过10行,原厂提供的驱动基本都可以用了 只是改变一些参数。如果想要真正了解底层。。。。。数电(精通) 模电(熟悉) C语言(精通)汇编(熟练)  然后就是多练 至于怎么练?你可以在源码内driver部分全部不编进内核 然后自己独立编写各个驱动模块 ,编好一个 拷贝到文件系统测试 这样 我相信不久你就是高手了
 ……
这种方法,锻炼了硬件知识,对软件影响不大,做linux驱动,硬件知识是一部分,但更大一部分是理解linux驱动模块子系统的软件架构。

驱动没什么神秘的东西,就是高效的利用硬件提供的功能,将这些功能,整合到linux 内核中,供kernel使用。驱动子系统的软件精髓是如何以高效,易理解,易扩展的支持同类型设备,达到最高的可适配性。所以完全自己闭门造车没有太大意义,抓住子系统的精髓才是重点,而且前面讲的,有的人开发移植个驱动,10行code都不要,这就是linux driver的精妙之处。也是软件工程的目的。如果你开放移植个驱动,还需要成千上万行代码,只有两种情况,1,你这是完全新功能的硬件,以前从没有相似的硬件。2,这个驱动框架太挫了,等几个版本就不会这样了。

#30


我目前在手机方案公司做android驱动,其实感觉技术上真的没什么,驱动代码都是厂商写好的拿过来做一些移植,配置一下基本功能就OK了,剩下的就是解决测试部提出的一些BUG,基本上整天就是看log,根据log定位问题,解决问题。

#31


单纯做驱动都普遍都招3年+经验的 我要转行Linux驱动开发了,驱动开发的工作是什么样的情况,希望大神给点建议,也希望大家给我一点鼓励

#32


一只菜鸟路过~说一下我的想法:
刚才在论坛上看到做关于Linux的毕业设计的帖子,觉得里面有几句话挺有用的。如果想做关于Linux底层驱动的研究,建议去尝试做Linux系统的移植。如果说能把Linux系统移植到一块开发板上,比如说ARM开发板,那就是你的本事了,我觉得算是拿得出手的东西了,绝对有人要。
然后呢,希望楼主还是坚持着做一个方面的研究好一点。因为楼主之前是做Java方向的,感觉你好像做得挺顺利的,然后经验能力什么的都提升很快。我想说的是,这一行好像都是经验越多越值钱。如果说你在Java这个方向工作有五六年,这些年的经验绝对会让你薪水加倍又加倍的,甚至比你转学Linux的收获要多很多。当然,既然楼主现在已经转了方向,那还是那一句,希望楼主能坚持这个方向,从底层驱动慢慢做起,了解多点关于Linux内核的资料,真的掌握住移植系统的话,应该能在Linux这一行里面崭露头角的。楼主加油!

#33


引用 32 楼 nanbuxiangjie 的回复:
一只菜鸟路过~说一下我的想法:
刚才在论坛上看到做关于Linux的毕业设计的帖子,觉得里面有几句话挺有用的。如果想做关于Linux底层驱动的研究,建议去尝试做Linux系统的移植。如果说能把Linux系统移植到一块开发板上,比如说ARM开发板,那就是你的本事了,我觉得算是拿得出手的东西了,绝对有人要。
然后呢,希望楼主还是坚持着做一个方面的研究好一点。因为楼主之前是做……
真心感谢你的建议,好人啊,谢谢

#34


每天都看见这些帖子,不能沉沦啊,努力ing

#35


我目前在一家公司实习,也是做android底层驱动的,共同探讨,一起学习

#36


单纯的驱动工程师不好找工作啊,尤其你还没经验,上上人才网站看看招驱动的有多少就知道了,至于原厂工程师,基本硬件水平都要有一个较高的水准。

#37


上面说的都看了下, LZ还是先去方案厂商吧 (很多是大的代理公司 ,原厂不自己卖芯片)。
进原厂的....那都是极为NB的了... 

#38


    就工作岗位而已,写底层代码越多的岗位偏少,而且要求高,特别是底层的东西是不会轻易改动的,
喜欢底层,原理性的东西,很好啊,关键得培养分析问题和解决问题的能力,这也是传说中的牛人,
    只要你进的不是研发部门或者研究院之类的,你做的东西就得有市场价值,企业招你进去是希望挣钱的,所以他们都要求做东西有效率。

    原理性的东西搞懂了是不容易忘的,你说的懂,估计只是看懂了
    你喜欢底层的东西不错,只要坚持肯定不错,关键是你自己很喜欢这就够了。
    坚持吧,大部分人缺少的都不是方法,而是坚持
    
个人意见,空口说空话,其实我也是在提醒自己要努力。

#39


努力学习吧。。

#40


国内公司做驱动的确实很少,linux被喊的太热了

#41


 楼主有误解。做驱动的逻辑性和复杂度没有一般的应用程序高。
根部就不是你想的高技术含量的工作。

你喜欢复杂的东西就去做个java框架出来。 想和硬件相关就试试写个小的操作系统。
在企业工作无论哪里都是负责一下部分。

#42


关注ing,我现在刚毕业,找了一家做手机驱动方向的工作!

#43


在校学生,对着这方面挺感兴趣,关注中!!!!

#44


我也在转做驱动中,苦于没有经验,不好转行。

#45


兄台。咱们一样的经历。。。兄台。我最经也要想转底层的。在自学汇编,看保护模式。不过没c基础。也是从事java开发。 经过1年多的java开发 。从刚学java 毕业工作。自认为超越了本科生。到后来越来越惭愧越来越觉得自己更本就不了解计算机结构和系统。仅仅只是会使用而已。内心不断的告诉自己 ,咱需要学的是最基础的最底层的 。所以 在学汇编。但是兴趣总归兴趣。还是要吃饭啊。。。也在纠结迷茫自己学习底层。能走的方向又是什么。能就职的职位又是什么呢。。楼主去培训了 去哪里培训了哦? 能否分享下 培训方向?教个朋友 大家一起奋斗啊

#46


帖主还在么,我也是2010年毕业的,也想改做liux驱动方面的,(ˇˍˇ) 想~了解下你的情况,交流下,我qq:851388951 我要转行Linux驱动开发了,驱动开发的工作是什么样的情况,希望大神给点建议,也希望大家给我一点鼓励

#47


引用 6 楼 AI__man 的回复:
我目前在搞LINUX驱动开发。工作内容无非是提供些应用层接口,把一个平台的驱动移植到另一个硬件平台等等

跟我一样

#48


越来越觉得驱动没啥意思了,自己写的代码量太少了,成天看别人的代码,用哪个芯片都有sample驱动,都写好了,一般配几个外围gpio,电源时钟就差不多可以工作了,在测测就没啥大问题了,遇到比较难搞的问题也解不了,芯片厂商开放的资源,文档有限,只能提case,正考虑换个芯片厂商做bsp,可惜国内像样的公司太少了。。。

#49


现在我就是在方案公司做,说实在只要你原来有点C基础和会看一点datasheet、原理图,大概了解linux内核的框架,到公司做一、两个月时间就基本熟悉了,因为大部分都是移植,调试硬件的问题,根据原理图配一下IO,搞不定的就找原厂帮忙。如果硬件没问题的多数很快就能调好,因为一般方案公司做的东西,原厂都有一个平台做好了大部分的支持。技术含量比较低,我应届毕业来这里学习两三个月就觉得基本上学不到什么东西了,现在自己看一下上层的东西(android、java部分)。

#50


我也培训过linux驱动 为啥我就找不到这方面的工作呢  你们一毕业就能找到 我要转行Linux驱动开发了,驱动开发的工作是什么样的情况,希望大神给点建议,也希望大家给我一点鼓励