Pine64 配置kernel headers(伪)
几年前看杂志的时候,看到了SBC(Single Board Computer)专区。当时一眼见到只需要两位数RMB价格的【电脑】,现在还记忆犹新。然后,就有了我现在面前的这块Pine64开发板。它一直在我柜子里吃灰,直到最近我在linux方面有了一定的了解后,它才得以重见天日。(Pine64: QAQ)
之前我的想法是装Android来看看电视,打打游戏什么的,之后由于硬件匮乏,不了了之。
现在打算了解一下linux的结构和功能,然后到wiki上找了个ubuntu装上,结果。。编译无线网卡驱动的时候傻眼了,没有内核头文件。到apt上去下,又只有4.x的包,望着这个3.10.104的kernel,我傻眼了。仔细想想,kernel headers说不定就是kernel编译时用到的文件。然后就到longsleep大牛的github里翻到了对应的内核源码。然后对照一台正常amd64架构kernel headers的文件结构看了一下,发现两者区别不大,就依葫芦画瓢,放到/usr/src/
下,再跟/lib/modules/<kernel-name>/build
一类的相关文件(夹)做好软链接。
然后就遇到了arm64
和aarch64
的问题。按照网络上的说法,两者虽然相似,但还是有区别的。但是看到内核的build脚本里用的也是arm64就直接把arm64软链接到了aarch64,然后居然还没出什么问题。
之后根据make
的提示,对内核包做了一下预编译以使它可以参与编译驱动(预警:预编译配置将会面临巨大数量的选项,基本看不懂,看得我一脸懵逼)。然后就又出错了。这回的错误好像与内核的版本有关。在网络上查到这么一条解决方案,但是并没有看懂:https://blog.csdn.net/playboysssss/article/details/52493751。
至于标题中的这个“伪”字,用意为提示,因为我也不知道这样到底是不是正确方法。如果我的猜测没有问题的话,kernel headers应该算是配好了。至于编译网卡驱动还有没有后续,就要看缘分了……
==========================================================
啊哈!然而当你看到这里的时候,会得到这样一个消息:实际上,这篇教程是不完整而错误的(逃
由于这也算是前期学习的过程记录,我也不打算删除,不过贴一个跳转:Pine A64 Xenial Mate [20161215] 安装 kernel_headers + USB网卡驱动
上面这个是完整版的哟
惊了,才发现把故事讲了两遍 但是显然第二遍讲的更好啊