启动TI官方移植的Linux内核

和编译uboot一样,Linux内核的编译也是三板斧,首先修改Makefile中的ARCH和CROSS_COMPILE,然后找到你要编译的板卡执行make xx_defconfig配置,最后执行make menuconfig进行检查并修改,三板斧操作完就可以直接make编译啦!

我们还是和移植uboot一样,先编译TI 移植过的omapl138开发板的内核镜像,并试着在639A板卡上启动该内核镜像,以验证uboot是否能成功启动内核,然后根据639A板卡的特性,修改Linux内核。

3.1.1 关于Linux内核镜像

linux内核经过编译后也会生成一个elf格式的可执行程序,叫vmlinux或vmlinuz,这个就是原始的未经任何处理加工的原版内核elf文件;嵌入式系统部署时烧录的一般不是这个vmlinuz/vmlinux,而是要用objcopy工具去制作成烧录镜像格式,经过制作加工成烧录镜像的文件就叫Image(制作把几十兆大的精简成了几兆,因此这个制作烧录镜像主要目的就是缩减大小,节省磁盘)。

原则上Image就可以直接被烧录到Flash上进行启动执行,但是实际上并不是这么简单。实际上linux的作者们觉得Image还是太大了所以对Image进行了压缩,并且在image压缩后的文件的前端附加了一部分解压缩代码。构成了一个压缩格式的镜像就叫zImage。

uboot为了启动linux内核,还发明了一种内核格式叫uImage。uImage是由zImage加工得到的,uboot中有一个工具,可以将zImage加工生成uImage。注意:uImage不关linux内核的事,linux内核只管生成zImage即可,然后uboot中的mkimage工具再去由zImage加工生成uImage来给uboot启动。这个加工过程其实就是在zImage前面加上64字节的uImage的头信息即可。

我们选择uImage作为内核镜像。

3.1.2 编译内核

1. 修改Makefile

2. make tisdk_omapl138-lcdk_defconfig 配置

3. make 编译内核

4. make uImage LOADADDR=0xc0008000生成kernel的uImage镜像

3.1.3 加载uImage镜像

uboot要启动内核,分为2个步骤:第一步是将内核镜像从启动介质中加载到DDR中,第二步是去DDR中启动内核镜像。(uboot一定要将内核镜像加载至内核链接地址处,否则有可能出错)

启动时各种镜像都在SPI Flash中,因此uboot只需要从SPI Flash的kernel分区去读取内核镜像到DDR中即可。读取要使用uboot的命令来读取,读取命令前面已经提过了,正是uboot用于访问SPIFlash的sf命令集,使用命令:sf read c0008000 kernel(知道为什么要在uboot中添加mtd分区了吧?)。

uboot还支持远程启动,也就是内核镜像不烧录到SPIFlash中,而是放在主机的服务器中,然后需要启动时uboot通过网络从服务器中下载镜像到板卡DDR中,而且这种方式很适合调试内核和应用程序,uImage镜像大小在2M左右,调试阶段将其一遍又一遍的烧录到SPIFlash是很费时间和芯片寿命的,使用tftp加载的方式很大程度上省去了这种不必要的麻烦,遗憾的是我们的639A板卡上并无网卡,因此强大的tftp加载我们是使用不了了。网口没有咱还有串口啊!咱可是串口打天下啊!接下来我们就通过串口将内核镜像加载到DDR,虽然比不上网口的速度,但这也是没有办法的事啊!

为了加快串口加载内核镜像的速率,在加载之前,我先将串口控制台的波特率设置为460800,uboot命令行下执行

然后将我们的超级终端串口波特率设置为460800后,继续输入命令

还是通过使用我们前面所用过的Kermit协议,完成uImage至DDR的加载。

加载完成后,我们再将串口控制台波特率重新设置为115200。

注:实践证明,将控制台波特率设置为460800后,超级终端可能会出现乱码,这是422转接头的原因,换一个好点的422转接头即可。

3.1.4 bootm启动内核

经过前面的操作我们已经将uImage镜像加载到DDR它的链接地址处了,接下来我们将从DDR启动内核,这就不得不使用uboot的“bootm”命令。

uboot命令行下输入命名 bootm c0008000,启动内核。

由uboot打印信息可以看出linux内核镜像加载成功了,但是内核好像并没有启动,uboot最后一条打印信息“Starting Kernel”,表明uboot的使命已经完成了,接下来我们从内核的角度去解决这个问题。

omapl138移植uboot系列之启动TI官方移植的Linux内核(启动内核第一篇)相关推荐

  1. omapl138移植uboot系列之移植板卡(第五篇)

    上节操作完成后,虽然uboot中有了我们自己的板卡,但并未进行移植,所以现在是还不能烧录的,本节将带领大家根据自己的板卡进行uboot移植. 2.4.1 图形界面下配置 命令行执行 make menu ...

  2. linux服务启动redis自动启动不了,linux开机启动redis、nginx等服务

    1. 自己新建一个脚本,如service.sh 经过后面的几个步骤后,这个脚本在开机的时候会执行,在这个脚本里面可以写你开机的时候想执行的命令,如启动nginx,redis等服务 2. 在脚本中输入启 ...

  3. linux系统设置服务开机启动3种方法,Linux开机启动程序详解

    linux系统设置服务开机启动 方法1:.利用ntsysv伪图形进行设置,利用root登陆 终端命令下输入ntsysv 回车:如下图 方法2:利用命令行chkconfig命令进行设置 简要说明一下ch ...

  4. windows nginx 停止和启动_nginx在window与linux中启动、停止、与关闭

    Windows CMD命令: 查看nginx的版本号:nginx -v 启动nginx:start nginx 快速停止或关闭nginx:nginx -s stop 正常停止或关闭nginx:ngin ...

  5. linux服务器启动不起来,如何解决Linux不能启动问题

    如果在一台同时装有Windows操作系统和Linux操作系统的多重引导的计算机上,当Windows操作系统由于错误或者其他原因而崩溃,而没有对Windows操作系统进行备份的情况下,就要重装Windo ...

  6. linux启动某个网卡命令行,linux下启动和关闭网卡命令及DHCP上网

    ifup.ifdown:如果在 /etc/sysconfig/network-scripts里面的ifcfg-ethx等文件存在的话,就可以通过ifdown或ifup来实现网卡的开和关,例如:ifup ...

  7. omapl138移植uboot系列之添加属于我们自己的板卡(第四篇)

    在第一章节,我们已经编译好了一份uboot,但它是适用于TI自己的omapl138_lcdk开发板的,并不适用于我们的板卡,本章将带领大家在uboot中添加639A板卡. 2.3.1 向board中添 ...

  8. omapl138移植uboot系列之添加MTD分区(第七篇)

    如果你刚刚使用仿真器的方式烧录了uboot镜像,你肯定会感叹实在是太慢了,先别叹气,看完本节你将爱上烧录程序. 2.6.1 添加MTD分区 MTD(memory Teachno Device)中文翻译 ...

  9. omapl138移植uboot系列之在线升级(第八篇完结篇)

    uboot在线升级的原理是先通过某种外部接口(如网口.串口.USB等)将目标文件加载到DDR,然后从DDR中读取二进制文件并写到存储介质指定地址,由于639A底板并无网口,唯一与外部通信的接口就是串口 ...

最新文章

  1. session,cookie,sessionStorage,localStorage的区别及应用场景
  2. Thread类中yield方法
  3. tabindex, taborder和notab属性的区别
  4. 《城邦暴力团》:一部奇书、反书、隐书
  5. jolokia_使用WildFly 9和Jolokia监视DevOps样式
  6. php提前用户系统时间限制,php date()比服务器时间提前一小时(DST问题)
  7. uboot的一般性介绍
  8. C++实现对象序列化和反序列化(读写二进制文件)操作
  9. Netty工作笔记0032---零拷贝AIO内容梳理
  10. vue中定义多重样式
  11. SpringBoot项目如何进行打包部署
  12. 从数据传输速率的视角思考信道利用率
  13. TypeScript笔记(4)—— TypeScript中的类型注解
  14. 中间人攻击 - 攻防
  15. Fragstats运行内存不够或卡顿问题解决
  16. RtlUnicodeStringToAnsiString中第三个参数引发的bsod
  17. Android 配置https抓包
  18. 微信小程序云开发(2)— 云数据库
  19. NVIDIA Jetson: GStreamer 和 openMAX(gst-omx) 插件
  20. 惠普彩色激光打印机CM1312送稿台卡纸不能消除解决办法

热门文章

  1. 【统计学】基本Stata使用手册(1):基本操作
  2. 2022国赛题链路备份与压缩
  3. GPS便携机加装导航并设置端口波特率
  4. 【已解决】联想小新14无线图标消失 | 网络适配器有感叹号 | Windows仍在设置此设备的类配置(代码56)的解决方法
  5. 【05】制作鸿蒙版蜻蜓短视频系统-事件原理及完成点击,长按,双击等操作实现跳转-优雅草伊凡
  6. 店宝宝:电子商务蓬勃发展成就“中国网店第一村”
  7. 计算机培训校本研修心得,校本研修培训心得体会
  8. 数据 | 全国历史六级以上地震记录制图
  9. 2017新媒体运营升职加薪指南:从内容到数据,如何走好新媒体的进阶之路?
  10. 推荐/广告算法社招生存指南(浅梦)