当前位置: 首页 > wzjs >正文

四川省城市建设培训中心 网站网站建设结论及体会

四川省城市建设培训中心 网站,网站建设结论及体会,做网站的注意事项,洛阳网站建设 恒凯科技Linux系统移植之Linux启动流程和移植 一,Linux顶层Makefile1.主要功能2.具体实现3.vmlinux,Image,zImage和uImage区别 二,Linux内核启动流程1.先编译linux源码,生成vmlinux.lds链接脚本2.linux内核入口stext3.内核初始化最后阶段,…

Linux系统移植之Linux启动流程和移植

  • 一,Linux顶层Makefile
    • 1.主要功能
    • 2.具体实现
    • 3.vmlinux,Image,zImage和uImage区别
  • 二,Linux内核启动流程
    • 1.先编译linux源码,生成vmlinux.lds链接脚本
    • 2.linux内核入口stext
    • 3.内核初始化最后阶段,用户空间第一个进程
  • 三,Linux内核移植
    • 1.内核编译
    • 2.对NXP官方Linux内核修改
      • 1.defconfig开发板默认配置文件
      • 2.设备树文件
      • 3.主频和网络驱动修改

一,Linux顶层Makefile

1.主要功能

①配置内核,生成.config文件
②编译内核,根据配置编译内核镜像,模块和设备树
③进行清理,删除生成的文件
④对各个小文件内的Makfile实现综合控制

2.具体实现

①配置阶段,通过Kconfig生成.config文件
②编译阶段,根据.config文件确定需要编译的文件(一般是.c),然后通过gcc编译器将.c文件编译目标文件(.o),然后将各个小目录下目标文件先整合为build-in.o文件,再把各个目录下这种build-in.o文件链接到一块生成内核镜像文件(vmlinux),如果启用设备树,也要编译为设备树文件。
③进行清理,make clean删除生成的目标文件,内核镜像等
④多架构支持,ARCH指定目标架构arm,CROSS_COMPILE指定交叉编译器。

3.vmlinux,Image,zImage和uImage区别

①vmlinux:未压缩的内核镜像文件,编译后生成的原始文件,包含内核所有符号和调试信息,主要用于调试和分析,不用于启动,文件较大因为未压缩。
②Image:未压缩的可启动内核镜像,就是把vmlinux里面的调试信息去掉,保留可执行的二进制文件,用于不用压缩启动的情况。
③zImage:将Image压缩后,用于启动,文件小,适合存储和传输。
④uImage:对zImage用uboot处理,uImage包含uboot的头部信息,现在基本上不用这种方法。

二,Linux内核启动流程

在这里插入图片描述内核初始化的工作:

1.先编译linux源码,生成vmlinux.lds链接脚本

  链接脚本中,找到linux内核第一行程序执行:
在这里插入图片描述

2.linux内核入口stext

  stext在文件 arch/arm/kernel/head.S 中,主要用于在linux内核启动前:①、关闭 MMU。②、关闭 D-cache。③、I-Cache 无所谓。④、r0=0。⑤、r1=machine nr(也就是机器 ID)。⑥、r2=atags 或者设备树(dtb)首地址。
在这里插入图片描述  在stext中跳转到函数_enable_mmu,这个模块再调用_turn_mmu_on,再去调用函数_mmap_switched函数,这个是汇编的函数,最终这样一直连续跳转到start_kernel函数(C函数),从而由汇编转化为C函数,start_kernel通过调用众多的子函数来完成Linux启动前的初始化工作。

3.内核初始化最后阶段,用户空间第一个进程

  start_kernel最后调用函数rest_init函数,内核初始化的最后阶段,初始化进程,将内核态转到用户态,启动用户空间的第一个进程,通常是init进程。
①创建内核线程:创建一个内核线程来执行 kernel_init 函数,该函数负责启动用户空间的第一个进程(通常是 init 进程)。创建另一个内核线程来执行 kthreadd 函数,该函数负责管理内核线程的创建和销毁。
②启动调度器:调用 schedule_preempt_disabled 启用调度器,使系统能够进行任务调度
③切换到空闲任务:调用 cpu_startup_entry 函数,使当前 CPU 进入空闲状态,等待调度器分配任务。

三,Linux内核移植

1.内核编译

  这个现在还不清楚为什么,在顶层Makefile中添加ARCH ?= arm,CROSS_COMPILE ?= arm_linux_gnueabihf-会一直报错,运行不了Makefile,最后只能在.sh脚本中添加编译器的路径,才能编译,也想过是不是文件夹放的位置太深,或者是gcc编译器放的位置不对,目前还是解决不了这个在Makefile添加问题。之前uboot就很正常,没有影响。
在这里插入图片描述在这里插入图片描述  执行.sh脚本后,生成①镜像文件zImage,②设备树文件imx6ull-14x14-evk.dtb。然后放到tftp文件夹下,在串口交互界面上执行下面指令,最后用bootz启动。在这里插入图片描述  要记得修改bootargs,设置根文存储位置,便于VFS(虚拟文件系统)的挂载。
在这里插入图片描述

2.对NXP官方Linux内核修改

1.defconfig开发板默认配置文件

  arch/arm/configs路径下imx_v7_mfg_defconfig文件拷贝一份,设置为自己想用的名称,关闭内部V6架构设置。
在这里插入图片描述

2.设备树文件

  拷贝arch/arm/boot/dts/imx6ull-14x14-evk.dts,dts文件就是有关设备树的配置文件,linux内核编译时将dts文件编译为dtb文件。对其内部主要的修改有:设置编译出dtb文件名称。

3.主频和网络驱动修改

  ①.主频的修改主要是为了提升板子的性能,选用performence即最优性能,频率为792MHZ。
在这里插入图片描述

在这里插入图片描述在这里插入图片描述修改主频的话,修改刚才拷贝imx_v7_mfg_defconfig的文件内容即可。

②.网络驱动的修改,这个和uboot的原理基本上都一致,设置PYH的复位引脚并且设置ENET对应PYH的地址。
  设置好后,重新编译一下设备树文件和镜像文件(不要进行clean),直接编译defconfig文件和all -j12命令即可。然后将其用tftp工具传输到对应80800000和83000000地址,用网络启动内核,设置eth0的IP地址,与乌班图一个IP段,可以ping通。
在这里插入图片描述


文章转载自:

http://7zi0MYwI.hnkkm.cn
http://3h3oGjkE.hnkkm.cn
http://zEyu61zZ.hnkkm.cn
http://kZxHnmIX.hnkkm.cn
http://uakpDKeB.hnkkm.cn
http://H9egP8vN.hnkkm.cn
http://NczXJCCa.hnkkm.cn
http://OgOTNqlw.hnkkm.cn
http://XRdwK2nF.hnkkm.cn
http://SQOAOwnh.hnkkm.cn
http://RKvN8VEV.hnkkm.cn
http://oQTZycAl.hnkkm.cn
http://TtNZ1ff7.hnkkm.cn
http://0pHBHVEy.hnkkm.cn
http://WzzV3xLI.hnkkm.cn
http://dLQesvZ8.hnkkm.cn
http://sEskoI0C.hnkkm.cn
http://9YjOrqTl.hnkkm.cn
http://zBMRNkfV.hnkkm.cn
http://5Crh3SfC.hnkkm.cn
http://w95F6LAZ.hnkkm.cn
http://9KjgwpXg.hnkkm.cn
http://t87etwit.hnkkm.cn
http://AYyRv8OH.hnkkm.cn
http://V4urmmCM.hnkkm.cn
http://yWFB4lOv.hnkkm.cn
http://TdUdQohX.hnkkm.cn
http://QD7Sx8Qt.hnkkm.cn
http://uVKhXoOK.hnkkm.cn
http://t9DKywUV.hnkkm.cn
http://www.dtcms.com/wzjs/624058.html

相关文章:

  • 三亚住房和城乡建设厅网站织梦网站背景
  • 永久免费网站空间旅游公网站如何做
  • 网站平台推广旅游网站开发分析报告
  • 网站建设具备哪些技术人员狮城app更多网站
  • php网站的部署在线图片制作生成
  • 网站悬浮框代码阿里指数查询官网
  • 企业网站建设的目的有()1688做网站难吗
  • 单位网站建设服务域名备案未及时注销处罚
  • 百度对网站的收录网站建设及外包
  • 手机访问网站跳wap北京做网站哪家好
  • wordpress建站时间科普网站建设
  • 海宁网站建设童程童美少儿编程怎样收费
  • 免费建立网站软件商城系统 wordpress嵌入
  • 个人网站推广方法国内十大游戏公司排名
  • 怎样用模板做网站那类型网站容易做排名
  • 手机网站meta国内旅行做行程网站
  • 定制网站开发哪家好智能获客系统
  • 门户网站改版东莞常平有高铁站吗
  • wordpress gitignore网页优化包括
  • 昆明做网站找哪个公司好百度平台商家app下载
  • 北京国贸网站建设如何修改网站元素
  • 烟台市城市建设发展有限公司网站要建网站
  • 网站建设 qq业务网制作网站建设协议需要注意的问题
  • 网站上的菠菜游戏哪里可以做代码给wordpress添加图片
  • 网站设计常用软件都有哪些互联网推广开户
  • wordpress建站云盘服务类型网站开发需要哪些技术
  • 建网站费用 优帮云天津网站建设论坛
  • 学校网站建设考评办法网站制作价格服务
  • 湖南做网站的公司有哪些有网站模板怎么建站
  • 濮阳高端网站建设平面设计有什么网站