0.前言
先推荐一部电影《美国派》三部曲,成长题材系列的电影,也反映了对某避讳话题的理性看待,理所当然。
再推荐一个开发套件,NVIDIA Jetson系列开发套件,目前我在用的是Xavier NX和Orin Nano。为什么推荐呢?对于初入Linux的来说,其实大可不必,但是最近意识到什么?对在校学生,购买一套此套件,毕设优秀不得非你莫属。首先是足够的资源,其次是强大的功能,再者也是你大学期间好好学习的(能让你感兴趣)又吸引的东西。前两天看一片文章有外国工程师用Orin Nano做出来了钢铁侠的头盔贾维斯,太酷了伙计。。。So。。。
之前就表达过Linux驱动是跑不掉的,刚好我也有此意,职业向此发展?大概吧。
1. uboot
1.1 介绍
不过多废话,首先要知道启动Linux的三大件吧——内核镜像Image,设备树dtb,文件系统rootfs。那么总要有东西来引导这三个玩意启动起来,所谓的引导程序BootLoader,这个分很多,常用的就是uboot。不过多讲。其实uboot之前还有东西(TF-A),简单理解就是引导uboot?差不多这个意思。
1.2自编uboot
为什么要自己编译uboot,对于我们学习阶段,这个是没什么用的,编译一次能使用,引导起来内核,设备树就行,那为什么要学编译呢?对于工作或者说产品要用到。比如,我现在使用的是TI的AM625X这款MPU,那么我在实际做产品的时候不可能说直接买来这个小芯片就来用,一般都是先购买或者申请TI官方的评估板(这里插一句,上学的时候不知道,很多资源可以申请到,比如TI的SK-AM62这款套件就可以向高校开放,希望在校的学生看到可以尝试申请玩一玩)。拿到手里的评估板,我们会根据自己产品的需求做开发,一切先在评估板做,OK,做完后没有问题,满足我们的要求,采购芯片,自己设计硬件。
这大概是一个产品出来的过程。这里就牵扯到三个uboot,首先是最初的uboot,也就是uboot官方的,其次是半导体厂商,比如这里TI会根据评估板修改官方uboot做出来属于此款评估板的uboot,俗称是半导体厂商的uboot。最后,自己的产品,自己的硬件,这里我们一般硬件设计是参考评估板做开发,于是uboot参考半导体厂商的uboot修改,添加自己的某些信息。综上,大家大致了解一下。
2.编译
以下总结与《正点原子——stm32mp157驱动开发指南》。
Ubuntu安装库
sudo apt-get install libncurses5-dev bison flex
交叉编译等等。
步骤:
- 获取ST官方uboot。
- 解压,打补丁。
- 编译官方uboot。
编译好后烧录,会出现问题。什么问题?启动可以,但是会运行出错,因为这是ST官方的uboot,是对应他们的评估板,我们使用的是正点原子的,是参考评估板进行了改动,比如ST 官方开发板使用了电源管理芯片 STPMIC1A,所以 uboot 运行的时候会初始化这个 PMIC 芯片,但是正点原子开发板并没有使用这个 PMIC 芯片,所以无法正常运行。要修改uboot。
接下来就是一步步的修改 uboot,至到其正常工作,也就是所谓的 uboot 移植。
后续更新。。。
3.总结
怎么能学好这种Linux,我认为要和那种单片机对比这来。比如这个设备树,是描述硬件信息的,如果一层一层往下扒,发现最初的东西也是寄存器,不过这些东西出厂已经给好了或者说已经模块化了,我们所要掌握的是设备树的语法,引用,添加,修改等等。
学习ing。