This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] PROCESSOR-SDK-AM335X:卡在&'起始内核&'含基于 RAM 的 initrd–AM335x SDK 引导问题

Guru**** 2345290 points
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1521441/processor-sdk-am335x-stuck-at-starting-kernel-with-ram-based-initrd-am335x-sdk-boot-issue

器件型号:PROCESSOR-SDK-AM335X

工具/软件:

你(们)好

我目前正在研究一个涉及 TI AM335x EVM (BeagleBone Black) 的工程、并按照客户的建议、使用了 TI Processor SDK Linux 版本 05.00.00.15。 开发环境在 Ubuntu 16.04 LTS 上设置。

项目要求:
我们专门针对基于 RAM 的根文件系统。 根文件系统已手动构建、位于:
/home/user/rootfs/fs_tiny_feb
文件系统结构如下:
bin boot dev etc 主目录初始化 lib linuxrc 介质 mnt proc 运行 sbin sys tmp usr var
引导行为:
我们已经按照 SDK 的标准构建和部署步骤进行了操作。 U-Boot、zImage、DTB 和 initrd 映像可从 SD 卡正确加载。 以下是从串行控制台捕获的日志(在/dev/ttyUSB0 上使用 Minicom):

问题说明:
在消息 starting kernel...(正在启动内核...)后、引导进程挂起、不再显示内核消息或控制台输出。 内核似乎没有装载或过渡到基于 RAM 的根文件系统中。

请求帮助:
请您帮助我们解决以下问题:

有关在 AM335x 平台上启动基于 RAM 的根文件系统的指导或检查清单。

在这种情况下、内核在“启动内核...“之后可能会挂起的可能原因。

使用自定义 initramfs 或最小 rootfs 时、SDK 05.00.0.15 是否存在任何已知的兼容性或配置问题?

非常感谢为实现正确的 RAMFS 引导 uEnv.txt 而提供的任何支持或示例 bootargs/RAMFS 格式。

感谢您的支持。

此致、

Vaishnavi

   

Welcome to minicom 2.7

OPTIONS: I18n                                                                
Compiled on Nov 15 2018, 20:18:47.                                           
Port /dev/ttyUSB0, 12:50:08                                                  
                                                                             
Press CTRL-A Z for help on special keys                                      
                                                                             
                                                                             
U-Boot SPL 2018.01-00228-g4579b13-dirty (May 03 2025 - 14:26:00)             
Trying to boot from MMC1                                                     
*** Warning - bad CRC, using default environment                             
                                                                             
reading u-boot.img                      
reading u-boot.img                      
reading u-boot.img                      
reading u-boot.img                      
                                        
                                        
U-Boot 2018.01-00228-g4579b13-dirty (May 03 2025 - 14:26:00 +0530)

CPU  : AM335X-GP rev 2.1
Model: TI AM335x BeagleBone Black                                               
DRAM:  512 MiB                                                                  
NAND:  0 MiB                                                                    
MMC:   OMAP SD/MMC: 0, OMAP SD/MMC: 1                                           
*** Warning - bad CRC, using default environment                                
                                                                                
<ethaddr> not set. Validating first E-fuse MAC                                  
Net:   cpsw, usb_ether                                                          
Hit any key to stop autoboot:  0                                                
switch to partitions #0, OK                                                     
mmc0 is current device                                                          
SD/MMC found on device 0                                                        
** Unable to read file boot.scr **                                              
reading uEnv.txt                                                                
554 bytes read in 3 ms (179.7 KiB/s)                                            
Loaded env from uEnv.txt                                                        
Importing environment from mmc0 ...                                             
Running uenvcmd ...                                                             
Booting from SD card with RAM-based rootfs...                                   
reading zImage                                                                  
27787776 bytes read in 1806 ms (14.7 MiB/s)                                     
reading am335x-boneblack.dtb                                                    
36793 bytes read in 6 ms (5.8 MiB/s)                                            
reading initrd.img.gz                                                           
20492772 bytes read in 1330 ms (14.7 MiB/s)                                     
## Flattened Device Tree blob at 88000000                                       
   Booting using the fdt blob at 0x88000000                                     
   Loading Ramdisk to 8ec74000, end 8ffff1e4 ... OK                             
   Loading Device Tree to 8ec68000, end 8ec73fb8 ... OK                         
                                                                                
Starting kernel ...                                                             
                                                                                

uEnv.txt file 

 this is uenv.txt but it is stopping till in the starting kernel i have loaded teh initrd.img
# Boot configuration for RAM-based rootfs
console=ttyO0,115200n8
fdtaddr=0x88000000
rdaddr=0x82000000
loadaddr=0x80007FC0
bootargs=console=${console} earlyprintk root=/dev/ram rw rdinit=/init
uenvcmd=echo Booting from SD card with RAM-based rootfs...; \
        load mmc 0:1 ${loadaddr} zImage; \
        load mmc 0:1 ${fdtaddr} am335x-boneblack.dtb; \
        load mmc 0:1 ${rdaddr} initrd.img.gz; \
        bootz ${loadaddr} ${rdaddr}:${filesize} ${fdtaddr}
  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    嗨、Vaishnavi

    我  在这里看不到任何问题。 当您修改`bootz`命令以离开 RAM 磁盘加载以查看它的作用时会发生什么情况? 内核应该会启动并打印一些内容。 喜欢这个...

    bootz ${loadaddr} - ${fdtaddr}

    您可以尝试的另一件事是启用内核中的早期打印、希望获得更多诊断信息。

    您可以使用 JTAG 来检查处理器正在执行的操作。 这将有助于确定它是完全崩溃(异常)还是正在运行、以及 UART 控制台打印可能存在一些问题。

    此致、Andreas