Linux内核启动卡在“Uncompressing Linux... done, booting the kernel.”

ArcGIS数据处理必备技能:从地理坐标到UTM投影的面转栅格完整流程 本文详细介绍了在ArcGIS中从地理坐标到UTM投影的面转栅格完整流程,包括坐标系转换、像元大小设置及质量控制等关键步骤。通过实战案例和Python脚本示例,帮助用户解决常见问题并优化数据处理效率,特别适合需要精确GIS数据分析的专业人士。 阅读详情

移植平台:Linux 3.4.2 Mini2440  U-Boot 2012.04.01

1.移植内核过程中出现界面卡在"Uncompressing Linux... done, booting the kernel."

在Linux内核中搜素"Uncompressing Linux... ", 找到如下

Misc.c (arch\arm\boot\compressed):    putstr("Uncompressing Linux...");
Serial.txt (documentation\ia64):    No kernel output after elilo prints "Uncompressing Linux... done":
Serial.txt (documentation\ia64):    Long pause (60+ seconds) between "Uncompressing Linux... done" and
先看代码出错处
	putstr("Uncompressing Linux...");
	ret = do_decompress(input_data, input_data_end - input_data,
			    output_data, error);
	if (ret)
		error("decompressor returned an error");
	else
		putstr(" done, booting the kernel.\n");

这里可以看到解压缩是正确的,那为什么不能正常启动呢?再看搜索到的文档

    No kernel output after elilo prints "Uncompressing Linux... done":
    - You specified "console=ttyS0" but Linux changed the device to which ttyS0 refers.  Configure exactly one EFI console
      device[3] and remove the "console=" option.
    - The EFI console path contains both a VGA device and a UART. EFI and elilo use both, but Linux defaults to VGA.  Remove
      the VGA device from the EFI console path[3].
    - Multiple UARTs selected as EFI console devices.  EFI and elilo use all selected devices, but Linux uses only one.
      Make sure only one UART is selected in the EFI console
      path[3].
    - You're connected to an HP MP port[2] but have a non-MP UART selected as EFI console device.  EFI uses the MP as a
      console device even when it isn't explicitly selected.
      Either move the console cable to the non-MP UART, or change
      the EFI console path[3] to the MP UART.
我扫了一眼,意思就是如果启用EFI就不需要设备,如果没有需要设置参数,我就想先设置了启动参数

set bootargs 'console=ttySAC0' 

注意:也会有其他情况,以下几种为网上的方法:

1)u-boot中的参数(console)没有传到内核。
2)u-boot的时钟设置不在405MHz,与Kernel的不一致。
3)u-boot中的Machine ID设置的与Kernel不一致。

具体可参考文章:http://blog.csdn.net/delphityro/article/details/7520629

2. 设置之后启动乱码

网上有提供说加入波特率,那就试试 set bootargs 'console=ttySAC0,115200' 

注意:这里ttySAC0,115200之间一定要有,否则还是会出错的.

3. 再试启动成功了,但是后面出现了崩溃,代码如下:

VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
Please append a correct "root=" boot option; here are the available partitions:

意思是我启动参数里面没有加入root选项,加入里面再看看

set bootargs 'noinitrd root=/dev/mtdblock3 console=ttySAC0,115200'

具体参数说明:http://blog.csdn.net/comwise/article/details/15804875

4. 启动之后发现又出现了新问题,如下

No filesystem could mount root, tried:  ext3 cramfs vfat msdos romfs
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(31,3)

意思就是根文件系统不支持,所以下一步需要增加根文件系统的支持:

这里需要下载网上提供的busybox1.20(这里先制作jffs2格式的根文件系统)

具体怎么移植可参考网上步骤,这里一定要参考busybox下面的README和INSTALL还有docs文件下的文件,这里要注意几点:

1)一定要有脚本inittab,在里面会进行网络的配置和根文件的挂接,

2)在上面脚本中不要忘记串口的设备,否则界面会卡在串口无初始化或者不能打开串口/dev/console之类的

3)如果使用动态链接库,需要将编译的库文件拷进去

4)就是mdev的创建,mdev是通过init进程启动的,至少需要设备文件console和null,null是在没有串口输出的后备,一定需要

以下为制作好jffs2文件后,会出现的问题

1)uboot bootargs参数设置要正确

bootargs=console=ttySAC0,115200 root=/dev/mtdblock3 rootfstype=jffs2

这里默认的启动init=/linuxrc已经在脚本中写入,所以需要;文件系统、波特率一定也要加上

2)如果这里设置了如下的bootcmd,会出现如下类似启动信息

jffs2: Empty flash at 0x00438fd8 ends at 0x00439000
jffs2: Empty flash at 0x096e8474 ends at 0x096e8800
VFS: Mounted root (jffs2 filesystem) on device 31:3.
Freeing init memory: 148K
BUG: scheduling while atomic: init/1/0x00000100
Modules linked in:
[<c000dc1c>] (unwind_backtrace+0x0/0xf8) from [<c03423c8>] (__schedule+0x2ac/0x318)
[<c03423c8>] (__schedule+0x2ac/0x318) from [<c0341588>] (__mutex_lock_slowpath+0x68/0x98)
[<c0341588>] (__mutex_lock_slowpath+0x68/0x98) from [<c019b530>] (gpio_unexport+0x18/0xb4)

由于0x30000000地址处,存有系统放置的代码,导致数据损坏,所以一定要将启动的地址设备大一些,比如32000000

注意:后期我再次烧写使用0x30000000,发现并没有出现崩溃,其实这个根本没有多大关系。

解决Linux启动时的“Uncompressing Linux...done, booting the kernel“问题 完成,正在启动内核"这一行提示时,有时会遇到一些问题。如果内核文件和参数配置都没有问题,那么可能是系统配置文件或引导加载程序配置文件中存在错误。如果内核文件和参数配置都没有问题,那么可能是系统配置文件或引导加载程序配置文件中存在错误。请注意,上述示例中的配置文件仅供参考,实际配置文件可能因系统和需求的不同而有所变化。您可以通过重新下载或使用备份的内核文件来解决该问题。您可以通过重新下载或使用备份的内核文件来解决该问题。请注意,上述示例中的配置文件仅供参考,实际配置文件可能因系统和需求的不同而有所变化。 阅读详情

相关推荐

双重分组进位跳跃进位链

跳跃进位链

qq_62260432的博客 907

Uncompressing Linux..... done, booting the kernel.

内核启动Uncompressing Linux..... done, booting the kernel.这好像是个老生常谈的问题了。成因在网上也罗列了很多种,可这次我碰到的,却没百度出解决方法,纠结了我很久才解决。 我先把造成Uncompressing Linux...

咕唧咕唧shubo.lk的专栏 3万+

基于YOLOv8+PyQt5实现的共享自行车识别检测系统,含数据集+模型+精美GUI界面(可用于违规停放检测告警项目)

基于YOLOv8的共享自行车识别检测计数系统(可升级为违规停放检测告警),新开发的项目,适合于比赛、课设、毕设。资源提供自行车数据集、训练好的yolov8模型及各种评估曲线,GUI界面,项目详细部署说明,按照操作一步步来,很容易运行起来,模型准确率达到98%。欢迎下载使用,有问题可随时与我私信或留言!!!包您运行成功,还可以再此基础上,提出新要求,帮您开发实现!!!【特别强调】请用自己的账号下载,第三方代下,不保证资源完整性,且将不提供任何形式的技术支持和答疑,请尊重原创!!!【备注】1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。欢迎下载,沟通交流,互相学习,共同进步!

移植linux内核到s3c6410(kernel 打印:Uncompressing Linux ... done , booting the kernel.后无响应问题的解决。)

U-boot网口问题解决后,uImage和ramdisk终于可以上传到单板上去验证了。脚本为: MINI6410 # setenv serverip 192.168.1.200   MINI6410 # setenv bootargs root=/dev/ram roo

roadtoforest的专栏 7238

Uncompressing Linux... done, booting the kernel

今天用主线Linux内核移植到MINI6410,主线内核2.6.37.1基本已经支持了MINI6410的板子,所以移植到能够启动起来的阶段很简单,但是在移植的时候还是出现了一个比较常见的问题:    1. MINI6410 # bootm 0x50008000    2. ## Booting kernel from Legacy Image at 50008000 ...    3

wfeng 1007

Linux 内核 Starting kernel ... 串口无输出问题归纳总结

Uboot输出,无内核信息输出 ## Booting kernel from Legacy Image at 32000000 ... Image Name: Linux-2.6.13-utulinux2440 Created: 2007-11-04 7:12:20 UTC Image Type: ARM Linux Kernel Image (gzip compr

周江涛的专栏 1万+

s3c2440移植linux-2.6.22 内核启动Uncompressing Linux..... done, booting the kernel.

内核启动Uncompressing Linux..... done, booting the kernel. 造成Uncompressing Linux..... done, booting the kernel.的常见的几种可能: 1、机器码不匹配 解决方法:在配置内核时开启debug Kernel hacking -> Kernel low-level debugg

lisz1986的博客 769

linux 内核调试 booting the kernel.,booting the kernel后无内核启动信息的调试方法

移植内核经常会出现Uncompressing Linux................................................................ done, booting the kernel.后无启动信息的状况,此时有下面调试方法:一. 使用low level debug1. 内核编译时要打开:kernel hacking->kernel debu...

weixin_42651748的博客 1432

内核移植错误:Uncompressing Linux............................... done, booting the kernel

Uncompressing Linux............................... done, booting the kernel.2008-06-29 20:40移植内核时总是出现问题:Uncompressing Linux.............................................................

dongliqiang2006的专栏 6548

linux内核启动停止在booting the kernel.

linux内核启动停止在Uncompressing Linux................................................................ done, booting the kernel. 一般错在检查命令行参数 uboot菜单模式下输入print检查命令行参数 ...

floatinglong的博客 5173

烧写Linux Kernel uImage后,停在Uncompressing Linux... done, booting the kernel.

在串口终端打印的信息如下: RomBOOT AT91Bootstrap 3.6.0 (Sat Jan 30 20:44:32 CST 2016) NAND: Done to load image U-Boot 2014.04 (Feb 20 2016 - 12:02:56) CPU: AT91SAM9261 Cryst

坚韧与专注 6283

linux 内核调试 booting the kernel.,Uncompressing Linux....... done, booting the kernel就不动了的一个可能原因...

最近搞阳初2410的板子,做的U-BOOT1.2.0能从NAND FLASH启动起来了,但是引导内核真是搞怪,前几天还能引导的,这几天又不能引导了,但是这些内核用VIVI都是能引导的,搞得头痛死了,总是死在下面这个地方:Uncompressing Linux....................................................... done, booting t...

weixin_35562225的博客 1222

linux 内核调试 booting the kernel.,Uncompressing Linux...done, booting the kernel解决办法

u-boot是好的,是刚移植成功的,用其他的内核跑过没问题。所以皇莡-boot传参有问题,问题就是出在我移植的内核上面。我用的是mini2440的配置,linux2.6.35的内核。网上找了很多资料试了都没有,开了CONFIG_DEBUG_LL(这个选项是在Kernel hacking里面,需要你打开Kernel low-level debugging functions & Kernel...

weixin_39935777的博客 526

s5pv210 linux3.8.3内核移植之二:Uncompressing Linux... done, booting the kernel.问题解决

首先,分析下网上收集的解决方法: 1、uboot和内核的machine type 不匹配 machine type在u-boot的配置在board/samsung/xxx/xxx.c    (xxx表示开发板名字,我的路径为board/samsung/goni/goni.c) 2、串口驱动没有编译入内核 3、内核启动参数设置错误

嵌入式Linux底层开发专栏 3231

树莓派:Uncompressing Linux...done, booting the kernel

如果引起Uncompressing Linux...done, booting the kernel 是因为修改 /boot/cmdline.txt 我的是因为修改cmdline.txt引起的dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcbl...

anyin4134的博客 276
上一篇: 深入分析MFC之GDI原理透析
下一篇: 移植Linux根文件系统之yaffs2
comwise
博客等级 码龄15年 58粉丝 85原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值