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.

[参考译文] Linux/DRA756:强大的 RVC:在尝试使用快速引导进行刷写时,Android "system"分区损坏

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/656165/linux-dra756-robust-rvc-corrupted-android-system-partition-while-trying-to-flash-using-fastboot

器件型号:DRA756
主题中讨论的其他器件:DRA742PMP

工具/软件:Linux

大家好、

我们尝试使用 Android M.1.3在 J6 EVM (Rev H)板上设置稳健的 RVC
在首次启动时刷写 Android 后、我们突然断电、而不允许系统完全启动、因为启动时间很长、仅显示 Android 徽标。
在随后的引导中、它开始提供内核参数、我们通过这些参数了解到 Android 的"系统"分区在 eMMC 中已损坏。

以下是 Android 刷写、第一个不完整的引导和随后使用内核 panics 日志进行的引导:


Android Flashing u-boot 侧:
----------------------------------------------------
正在读取 u-boot.img

U-Boot 2016.05 (2018年1月8日- 14:45:37 +0530)

CPU :DRA752-GP ES2.0
型号:TI DRA742
电路板:DRA74x EVM 修订版 H.0
DRAM: 4 GiB
MMC:  OMAP SD/MMC:0、OMAP SD/MMC:1.
SCSI: SATA link 0 timeout。
AHCI 0001.0300 32插槽1端口3 Gbps 0x1不支持 SATA 模式
标志:64位 NCQ stag pm led clo only pmp pio 贫民窟 part ccc apst
正在扫描设备总线...
找到0个器件。
网络:   
警告:以太网@48484000使用 ROM 中的 MAC 地址
eth0:以太网@48484000
按任意键停止自动引导: 0
=> fastboot 0
请求 fdf2b640未在批量队列中排队
请求 fdf2b640未在批量队列中排队
请求 fdf2b640未在批量队列中排队
写入 GPT:成功!
请求 fdf2b640未在批量队列中排队
SF:检测到页大小为256字节的 S25FL256S_64K、擦除大小为64 KiB、总共32 MIB、映射时间为5c000000
请求 fdf2b640未在批量队列中排队
SF:262144字节@ 0x0已擦除:确定
状态:-104 EP 'ep1in-bulk'传输:0
SF:1048576字节@ 0x40000已擦除:确定
状态:-104 EP 'ep1in-bulk'传输:0
警告:未知变量:分区类型:xloader
请求 fdf2b640未在批量队列中排队
请求 fdf2b640未在批量队列中排队
开始下载121772字节
请求 fdf2b640未在批量队列中排队
请求 fdf2b640未在批量队列中排队

121772字节下载完成
器件0偏移量0x0、大小0x40000
SF:262144字节@ 0x0写入:正常
请求 fdf2b640未在批量队列中排队
警告:未知变量:partition-type:bootloader
请求 fdf2b640未在批量队列中排队
请求 fdf2b640未在批量队列中排队
开始下载754720字节
请求 fdf2b640未在批量队列中排队
… 请求 fdf2b640未在批量队列中排队

754720字节下载完成
器件0偏移量0x40000、大小0x100000
SF:1048576字节@ 0x40000写入:确定
请求 fdf2b640未在批量队列中排队
正在将重新引导设置为 fastboot 标志...
正在写入冗余 MMC(1)... 完成
请求 fdf2b640未在批量队列中排队
正在重置...

U-Boot SPL 2016.05 (2018年1月8日- 14:45:37)
DRA752-GP ES2.0
尝试从 SPI 引导


U-Boot 2016.05 (2018年1月8日- 14:45:37 +0530)

CPU :DRA752-GP ES2.0
型号:TI DRA742
电路板:DRA74x EVM 修订版 H.0
DRAM: 4 GiB
MMC:  OMAP SD/MMC:0、OMAP SD/MMC:1.
SCSI: SATA link 0 timeout。
AHCI 0001.0300 32插槽1端口3 Gbps 0x1不支持 SATA 模式
标志:64位 NCQ stag pm led clo only pmp pio 贫民窟 part ccc apst
正在扫描设备总线...
找到0个器件。
NET:  eth0:以太网@48484000
按任意键停止自动引导: 0
已请求引导快速引导,正在重置 dofastboot...
正在将环境保存到 MMC...
正在写入 MMC (1)... 完成
正在引导至 fastboot...
写入 GPT:成功!
请求 fdf2bf00未在批量队列中排队
警告:未知变量:partition-type:boot
请求 fdf2bf00未在批量队列中排队
请求 fdf2bf00未在批量队列中排队
开始下载8914944字节
请求 fdf2bf00未在批量队列中排队
.................................................................. 请求 fdf2bf00未在批量队列中排队

8914944字节下载完成
刷写原始图像
………… 将8914944字节写入"boot"
请求 fdf2bf00未在批量队列中排队
警告:未知变量:分区类型:环境
请求 fdf2bf00未在批量队列中排队
请求 fdf2bf00未在批量队列中排队
开始下载110502字节
请求 fdf2bf00未在批量队列中排队
请求 fdf2bf00未在批量队列中排队

110502字节下载完成
刷写原始图像
………… 将110592字节写入"环境"
请求 fdf2bf00未在批量队列中排队
警告:未知变量:分区类型:恢复
请求 fdf2bf00未在批量队列中排队
请求 fdf2bf00未在批量队列中排队
开始下载9670656字节
请求 fdf2bf00未在批量队列中排队
................................................................ 请求 fdf2bf00未在批量队列中排队

9670656字节下载完成
刷写原始图像
………… 将9670656字节写入"覆盖"
请求 fdf2bf00未在批量队列中排队
警告:未知变量:分区类型:系统
请求 fdf2bf00未在批量队列中排队
请求 fdf2bf00未在批量队列中排队
开始下载372899540字节
请求 fdf2bf00未在批量队列中排队

..................................................................
三、会议的报告 请求 fdf2bf00未在批量队列中排队

372899540字节下载完成
在偏移77088处刷写稀疏图像
在分区系统上刷写偏移量0x25a4000的稀疏映像(ID:0)
sparse_parse_chunk:未知块类型:8010
未知块 typefb_MMC_flash_write:写入稀疏图像失败:-22
请求 fdf2bf00未在批量队列中排队
请求 fdf2bf00未在批量队列中排队
警告:未知变量:分区类型:userdata
请求 fdf2bf00未在批量队列中排队
请求 fdf2bf00未在批量队列中排队
开始下载108488352字节
请求 fdf2bf00未在批量队列中排队

..................................................................
………… 请求 fdf2bf00未在批量队列中排队

已完成108488352字节的下载
在偏移2223392处刷写稀疏图像
在偏移量0x43da4000的分区用户数据上刷写稀疏映像(ID:0)
………… 将12980920块写入'userdata'
请求 fdf2bf00未在批量队列中排队
警告:未知变量:分区类型:高速缓存
请求 fdf2bf00未在批量队列中排队
请求 fdf2bf00未在批量队列中排队
开始下载6398160字节
请求 fdf2bf00未在批量队列中排队
三、会议的报告 请求 fdf2bf00未在批量队列中排队

6398160字节下载完成
在偏移1649952处刷写稀疏图像
在偏移量0x325a4000的分区缓存上刷写稀疏映像(ID:0)
………… 将524288个块写入"高速缓存"
请求 fdf2bf00未在批量队列中排队

Android 在 Ubuntu 端闪存
----------------------------------------------------
sudo ./fastboot.sh
TONU 的[sudo ]密码:
FASTBOOT:./fastboot
图像位置:./

FASTBOOT -检测到设备:100170116a4000e2

DTB =./dra7-EVM-LCD-OSD.dTB
创建 GPT 分区表
(笑声)
好[0.021s]  
已完成。 总时间:0.021s
将引导加载程序的目标设置为 SPI
(笑声)
好[5.698s]  
已完成。 总时间:5.698s
正在刷写引导加载程序.....
  xloader:    ./GP_MLO
目标报告的最大下载大小为788529152字节
正在发送'xloader'(118 KB)...
好[0.021s]  
正在写入'xloader'...
好[0.379s]  
已完成。 总时间:0.399秒
  引导加载程序: ./u-boot.img
目标报告的最大下载大小为788529152字节
正在发送'bootloader'(737KB)...
好[0.050s]  
正在写入'bootloader'...
好[1.480s]  
已完成。 总时间:30秒
正在重新引导至引导加载程序...
好[0.022s]  
已完成。 总时间:0.323s
使用新的引导加载程序重新创建 GPT 分区表
(笑声)
好[0.018s]  
已完成。 总时间:0.018s
闪存 Android 分区
目标报告的最大下载大小为788529152字节
正在发送'boot'(8706KB)...
好[0.426s]  
正在写入'boot'……
好[0.992S]  
已完成。 总时间:1.419s
闪烁的环境…
  环境:./dra7-EVM-LCD-OSD.dTB
目标报告的最大下载大小为788529152字节
正在发送"环境"(107KB)...
好[0.021s]  
正在写入"环境"...
好[0.024s]  
已完成。 总时间:0.045s
目标报告的最大下载大小为788529152字节
正在发送"覆盖"(9444 KB)...
好[0.468s]  
正在写入"覆盖"...
好[1.380s]  
已完成。 总时间:1.848秒
目标报告的最大下载大小为788529152字节
正在发送"系统"(364159 KB)...
好[17.555]
正在写入"系统"...
失败(远程:写入稀疏图像失败)
已完成。 总时间:20.735s
调整 userdata.img 的大小
当前用户数据分区大小=6490463 KB
使用参数创建文件系统:
   尺寸:6646231040
   块大小:4096
   每组块数:32768
   每个组的 inode 数:8128
   inode 大小:256
   日记账块:25353
   标签:
   数据块:1622615
   阻止组:50
   保留块组大小:399
已创建具有18/406400 inode 和54570/1622615块的文件系统
目标报告的最大下载大小为788529152字节
正在发送'userdata'(105945 KB)...
还行[5.096s]  
正在写入'userdata'...
好[8.342秒 ]
已完成。 总时间:13.438秒
目标报告的最大下载大小为788529152字节
正在发送'cache'(6248 KB)...
好[0.312s]  
正在写入'cache'...
好[1.027s]  
已完成。 总时间:1.339s
----------------------------------------------------

之后、我们可以看到内核、shell 即将推出并显示 Android 徽标
日志附件:android_booting_halted.txt

然后在下一次引导时、内核开始发出恐慌。
日志附件:kernel_panics.txt

我们尝试恢复它、下面是实验:

1.将电路板置于 fastboot 模式并尝试使用"sudo ./fastboot.sh"重新刷写 Android

sudo ./fastboot.sh
FASTBOOT:./fastboot
图像位置:./

FASTBOOT -检测到设备:100170116a4000e2

DTB =./dra7-EVM-LCD-OSD-LADD-L后期 附加.dTB
创建 GPT 分区表
(笑声)
好[0.412s]  
已完成。 总时间:0.412s
将引导加载程序的目标设置为 SPI
(笑声)
好[5.567秒 ]
已完成。 总时间:5.567秒
正在刷写引导加载程序.....
  xloader:    ./GP_MLO
目标报告的最大下载大小为788529152字节
正在发送'xloader'(118 KB)...
好[0.021s]  
正在写入'xloader'...
好[0.458s]  
已完成。 总时间:0.479s
  引导加载程序: ./u-boot.img
目标报告的最大下载大小为788529152字节
正在发送'bootloader'(737KB)...
好[0.050s]  
正在写入'bootloader'...
好[1.808]  
已完成。 总时间:1.858秒
正在重新引导至引导加载程序...
好[0.022s]  
已完成。 总时间:0.222
使用新的引导加载程序重新创建 GPT 分区表
(笑声)
好[0.018s]  
已完成。 总时间:0.018s
闪存 Android 分区
目标报告的最大下载大小为788529152字节
正在发送'boot'(8706KB)...
还行[0.430s]  
正在写入'boot'……
还行[1.000s]  
已完成。 总时间:1.430s
闪烁的环境…
  环境:./dra7-EVM-LCD-OSD-LAD-LAD-ATE-DTB
目标报告的最大下载大小为788529152字节
正在发送"环境"(108KB)...
好[0.020S]  
正在写入"环境"...
好[0.023s]  
已完成。 总时间:0.043秒
目标报告的最大下载大小为788529152字节
正在发送"覆盖"(9444 KB)...
好[0.463s]  
正在写入"覆盖"...
好[1.380s]  
已完成。 总时间:1.843秒
目标报告的最大下载大小为788529152字节
正在发送"系统"(364159 KB)...
好[17.476s]
正在写入"系统"...
失败(远程:写入稀疏图像失败)
已完成。 总时间:20.364秒
调整 userdata.img 的大小
当前用户数据分区大小=6490463 KB
使用参数创建文件系统:
   尺寸:6646231040
   块大小:4096
   每组块数:32768
   每个组的 inode 数:8128
   inode 大小:256
   日记账块:25353
   标签:
   数据块:1622615
   阻止组:50
   保留块组大小:399
已创建具有18/406400 inode 和54570/1622615块的文件系统
目标报告的最大下载大小为788529152字节
正在发送'userdata'(105945 KB)...
好[4.941s]  
正在写入'userdata'...
好[8.310s]  
已完成。 总时间:13.250s
目标报告的最大下载大小为788529152字节
正在发送'cache'(6248 KB)...
好[0.303s]  
正在写入'cache'...
好[1.017s]  
已完成。 总时间:1.320s

这会导致写入“系统”失败。
 
2.仅刷新系统。img

 sudo ./fastboot flash system system.img
目标报告的最大下载大小为788529152字节
正在发送"系统"(364159 KB)...
好[17.477]
正在写入"系统"...
好[33.002S]
已完成。 总时间:50.479s

似乎工作正常..但启动时仍会获取内核参数。

3.擦除系统分区

sudo ./fastboot 擦除系统
正在擦除"系统"...
失败(远程:从设备擦除失败)
已完成。 总时间:8.0s



sudo ./fastboot 擦除系统-w
擦除成功、但不会自动格式化。
无法确定分区类型。
失败(远程:未实现变量)
擦除成功、但不会自动格式化。
无法确定分区类型。
失败(远程:未实现变量)
正在擦除"系统"...
失败(远程:从设备擦除失败)
已完成。 总时间:7.278s

4)使用 fastboot OEM 格式

5)加载默认 eMMC 分区:

在 Ubuntu 上:

$ uuidgen
...第一个 uid...
$ uuidgen
...second uuid... 

U-Boot # printenv 分区
uid_disk=${uuuid_gppt_disk};name=rootfs, start=2mib, size=-, uuid=${uid_gpt_uuuufs}
U-Boot # setenv rootid_gppt_disk……第一个 uuid……
U-Boot # setenv uid_gp_t_rootfs ...second uid...
U-Boot # GPT 写入 MMC 1 ${partitions}


这都不能帮助恢复系统。

谢谢、此致、
Tonu Zalpuree2e.ti.com/.../7384.kernel_5F00_panic.txte2e.ti.com/.../android_5F00_booting_5F00_halted.txt

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

    我已将您的问题转发给 Android 专家。

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

    是否可以使用6.1.3 MLO/u-boot 输入 fastboot 来刷写故障分区?

    您可以在 SD 卡中放入6.1.3 MLO/u-boot、启动电路板、在 u-boot 停止并进入 fastboot 模式。
    刷新后、取出 SD 卡并重新启动板。

    使用 RVC 引导加载程序刷写分区时出现问题。

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

    感谢您的参与。
    使用6.A.1.3 MLO/u-boot、我们能够启动 Android。
    实际上、这是我们的实验之一。

    不过、我们的最终目标是启动稳健的 RVC、
    我们了解当前设置仅支持 LG LCD。
    并且预计 OSD 会导致 Display (内核)崩溃。

    然后我们找到了这个 e2e e2e.ti.com/.../2277941

    它为具有强大 RVC 设置的 OSD 显示提供补丁。
    我们一直在尝试这些方法,但没有取得任何成功

    [DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000
    [4.599631][DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000
    [4.599638][DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000
    [4.599645][DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000
    [4.599652][DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000
    [4.599659][DRM:OMAP-CRTC_ERROR_IRQ]*错误* LCD:错误:00004000
    [4.599666][DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000


    由于 e2e 似乎已经解决,我们希望能得到同样的一些投入/建议。

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

    e2e.ti.com/.../7024.OSD_5F00_test_5F00_bin.zipe2e.ti.com/.../0243.u_2D00_boot.zipHi所有、

    为了更新此帖子、我 将说明我们的当前状态、

    我们的目标是获得强大的 RVC UP DRA7xx 板修订版 H

    我们使用的是 Spectrum Digital 的 EVK:

    该板附带 OSD 显示屏、但默认情况下、稳定的 RVC 支持 LG 显示屏。

    Buddy 的 e2e 帖子提供了有关启动 OSD 显示的详细信息、但该主题不提供完整信息(问题已脱机解决)

    请查看以下详细信息:

    1.根据版本说明下载、构建和刷新 Android AM.1.3的版本-->平台启动

    2.下载的内核(重置为提交5a0af72--has 对 OSD 的支持)

    3.下载 uboot (提交 c212e78)应用补丁程序以从 u-boot 启用 OSD

    3.将默认的 omapconf 和 appA15HeartBeatHost 复制到 Android FS

    4.将 IPU 和 DSP 固件(提供的好友)复制到 Android FS

    5.在基于 RVC 的稳健二进制文件之后闪存

      mlo,u-boot.img (我们构建)

      IPU、DSP、强健-RVC.dTB (提供的好友)

      zImage 和 userdata.img (我们构建)

    6.在 u-boot 上、我们可以看到 OSD 背光亮起

    7.当内核尝试启动时,我们收到内核挂起的以下错误

    ------------------------------------------------------------------

      omap_i2c 48070000.i2c:控制器超时

    [6.804359]  OMAP_i2c 48070000.i2c:控制器超时

    [6.834377]  GPIO-keys GPIO_keys:无法请求 GPIO 496、错误-110

    [6.841030]  GPIO-keys:GPIO_keys 探测器失败、错误-110

    [6.847189]  hctosys:无法打开 RTC 器件(rtc0)

    [6.866163]  AIC_DVDD:正在禁用

    [6.869325]  vmmcwl_fixed:正在禁用

    [6.872862]  ALSA 器件列表:

    [6.875880]   #0:DRA7xx-EVM

    [6.878770]   #1:HDMI 58040000编码器

    [6.882618]   #2:DRA7xx-JAMR3

    [9.614348]  OMAP_CRTC_ERROR_IRQ:1430235回调被抑制

    [9.620124]  [DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000

    [9.626434]  [DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000

    [9.632733]  [DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000

    [9.639043]  [DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000

    [9.645353]  [DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000

    [9.651651]  [DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000

    [24.737461] [DRM:OMAP_CRTC_ERROR_IRQ]*错误* LCD:错误:00004000

    [25.754337] 信息:RCU_PRE占用 CPU 上自检测失速

    [25.759681]  0-...:(后面有1个 GPS) IDLE=F39/140000000000002/0 softirq=62/63 fqs=171

    [25.767452]  (t=2100 jiffies g=-253 c=-254 q=1)

    [25.772096] RCU_preempt kthread 为1887个圣战而挨饿! g4294967043 c4294967042 f0x0 s3 -> state=0x0

    [25.78135] CPU 0的任务转储:

    [25.784591] kworker/U4:0  R 运行   0  6   2 0x00000002

    [25.790998] 工作队列:kmmcd MMC_rescan

    [25.794853] 背迹:

    [25.797318][  ](dump_backtrace)从[ ](show_stack+0x18/0x1c)

    [25.804916]  R6:80000193 R5:00000002 R4:ee8d2080 R3:dc8ba62d

    [25.810630][  ](show_stack)从[ ](sched_show_task+0xc0/0x118)

    [25.818408][  ](sched_show_task)、来自[ ](dump_CPU_TASK_0x40/0x44)

    [25.826354]  R5:c141db80 R4:00000000

    [25.829962][  ](dump_CPU_task)、来自[ ](RCU_Dump_CPU_STACK_0x94/0xD0)

    [25.838257]  R4:00000001 R3:00000001

    ------------------------------------------------------

    附件:从 e2e 获取固件和 u-boot 补丁

    此致、

    Tonu Zalpure

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    由于 HDMI 已连接到电路板、因此出现 CRTC 错误。 默认 RVC 封装不会连接 HDMI。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    大家好、

    在相关技术团队的帮助下、问题可离线解决。

    谢谢、此致、
    Tonu Zalpure