uboot启动Linux内核卡住

这篇具有很好参考价值的文章主要介绍了uboot启动Linux内核卡住。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

uboot启动Linux内核uImage卡在Starting kernel ...这一步

linux启动卡住kernel,linux,arm,arm开发,Powered by 金山文档

由于出现这种情况的原因有很多,暂时列举几种

一、内核镜像uImage的加载地址和入口地址不一致

查看uImage的信息

mkimage -l arch/arm/boot/uImage
linux启动卡住kernel,linux,arm,arm开发,Powered by 金山文档

可以看见加载地址与入口地址为0xc2000040。由于uImage在头部添加了64个字节的识别信息,那么

加载地址是uboot在加载内核时的存放地址,入口地址是内核代码的开始执行地址。在使用前面的uboot加载uImage时,把uImage加载到加载地址(0xc2000040)处,然后就在入口地址(0xc2000040)处开始执行,而实际的代码执行地址是0xc2000080(入口地址+文件头长度)。所以无法启动uImage.

所以在uboot启动阶段使用如下代码可以启动

tftp c2000000 uImage
bootm

二、串口终端设置错误

找到自己开发板的串口终端,在bootargs里面修改。如正点原子stm32mp157开发板的串行终端为ttySTM0,加上使用nfs挂载根文件系统则

setenv bootargs 'console=ttySTM0,115200 root=/dev/nfs nfsroot=192.168.1.208:/home/lemonhack/study/linux/nfs/rootfs,proto=tcp rw ip=192.168.1.250:192.168.1.208:192.168.1.1:255.255.255.0::eth0:off'

三、编译uboot使用的交叉编译器与编译linux内核的交叉编译器不同

这是我写这篇文章遇到的问题

我使用的是正点原子的stm32mp157开发板,uboot使用的是正点原子已经编译好的uboot,根据视频教程,编译uboot使用的是arm-none-linux-gnueabihf-这一个交叉编译器。而内核镜像我是自己编译的,使用的是arm-linux-gnueabihf-这一个交叉编译器,所以uboot启动的时候卡在Starting kernel ...这一步。

解决方法就是uboot与内核镜像使用同一交叉编译器。解决原理请求各位大佬告知一下

参考

uboot无法引导uImage错误及其解决方法 - qiaoqiao2003 - 博客园 (cnblogs.com)

(1条消息) Exynos4412 移植Linux Kernel 5.15过程记录(二)——解决U-Boot启动内核卡在Starting kernel的问题,DM9000网卡驱动(设备树)_dm9000设备树_HelloTonyGo的博客-CSDN博客文章来源地址https://www.toymoban.com/news/detail-644786.html

到了这里,关于uboot启动Linux内核卡住的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 【Xilinx】开发环境(五)- 基于Petalinux配置,单独编译uboot,Linux内核

    【Xilinx】开发环境(五)- 基于Petalinux配置,单独编译uboot,Linux内核

    此系列博客,仅对Xilinx平台PS端(ARM部分)开发做介绍,不对PL(FPGA)做过多介绍。 目录 一. 单独编译UBoot 2.1.拷贝源码 2.拷贝配置文件 3.编译 二. 单独编译内核源码 2.1 复制内核源码 2.2 复制配置文件( 根据芯片,32位复制到arch/arm/configs, 64位到arch/arm64/configs) 2.3 复制.its文件,用

    2024年02月10日
    浏览(11)
  • linux 内核ARM32启动

    基于linux4.19内核翻译理解 为了启动ARM Linux,您需要一个引导加载程序,它是在主内核之前运行的小程序。 引导加载程序被期望初始化各种设备,并最终调用Linux内核,向内核传递信息。 基本上,引导加载程序应该提供(至少)以下内容: 1.设置和初始化RAM。 2.初始化一个串

    2024年01月18日
    浏览(46)
  • ARM Linux 内核启动1 —— 汇编阶段

    ARM Linux 内核启动1 —— 汇编阶段

    1、Makefile 分析 (1) kernel 的 Makefile 写法和规则等,和 uboot 的 Makefile 是一样的,甚至 Makefile 中的很多内容都是一样的。 (2) kernel 的 Makefile 比 uboot 的 Makefile 要复杂,这里我们并不会一行一行的详细分析。 (3) Makefile 中只有一些值得关注的会强调一下,其他不强调的地方暂时可以

    2024年02月12日
    浏览(42)
  • linux内核tcp配置--断网后连接卡住

    目前odbc版本2.3.1,不支持设置连接属性(连接超时、命令请求超时等),需要odbc版本3.0以上。可通过设置tcp内核参数(重传次数)来缩短超时时间。 使用命令行可以方便地查看已安装的 ODBC的版本信息。 打开终端。 输入以下命令来查看MySQL ODBC的版本: 这将显示已安装的O

    2024年02月05日
    浏览(12)
  • 【Linux Kernel】Linux内核裁剪

    【Linux Kernel】Linux内核裁剪

    目录 1. 内核简介 1.1 内核版本及特点 1.2 获取内核源码 1.3 内核启动过程简述 1.3.1 内核引导阶段 1.3.2 内核初始化阶段 2. 内核源码结构及Makefile分析 2.1 Linux内核Makefile分析 2.1.1决定编译那些文件 2.1.2 怎样编译这些文件 2.1.3 怎样链接这些文件 3. Kconfig分析 3.1 Kconfig文件的基本要

    2024年02月04日
    浏览(19)
  • IMX6ULLPRO单独编译kernel+dtb内核模块以及uboot

    IMX6ULLPRO单独编译kernel+dtb内核模块以及uboot

    目录 linux开发板启动流程 为什么编译驱动程序之前要先编译内核? 驱动程序要用到内核文件: 编译内核 编译安装内核模块 编译内核模块 安装内核模块到 Ubuntu 某个目录下备用  安装内核和模块到开发板上  Bootloader 介绍 编译 u-boot 镜像 Reset--ROM--bootloader--kernel+dtb--rootfs--AP

    2024年01月22日
    浏览(33)
  • 【Linux内核】从0开始入门Linux Kernel源码

    【Linux内核】从0开始入门Linux Kernel源码

    🌈 博客个人主页 :Chris在Coding 🎥 本文所属专栏 :[Linux内核] ❤️  前置学习专栏 :[Linux学习]从0到1 ⏰  我们仍在旅途                                                                                    ​ 目录         前言--Linux内核简述         内核的

    2024年02月20日
    浏览(11)
  • ubuntu linux kernel内核操作

    1.内核编译前的准备工作 2.下载内核 4. 编译新内核 5. 内核安装 6. 安装模块 7. 生成initrd.img文件 8. 切换到/boot/grub/目录下,自动查找新内核,并添加至grub引导 9. 重启Ubantu,在previous version中选择启动新编译的内核 VMware虚拟机Ubantu20.04,Linux5.8.1内核源代码包 1.内核编译前的准备

    2024年02月19日
    浏览(16)
  • Linux Kernel内核整体架构(图文详解)

    Linux Kernel内核整体架构(图文详解)

    本文是“Linux内核分析”系列文章的第一篇,会以内核的核心功能为出发点,描述Linux内核的整体架构,以及架构之下主要的软件子系统。之后,会介绍Linux内核源文件的目录结构,并和各个软件子系统对应。 注:本文和其它的“Linux内核分析”文章都基于如下约定: a) 内核版

    2024年02月11日
    浏览(14)
  • uboot 启动内核代码分析

    uboot 启动内核代码分析

    uboot的本质就是一个复杂点的裸机程序。内核本身也是一个\\\"裸机程序“,和uboot、和其他裸机程序并没有本质区别。 区别就是操作系统运行起来后在软件上分为内核层和应用层,分层后两层的权限不同,在内存访问和设备操作的管理上更加精细(内核可以随便访问各种硬件,

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包