RK3188从SDCARD中运行Android系统

本文详细介绍了RK3188芯片从SDCARD启动Android系统的步骤及注意事项,包括固件生成、Bootloader版本选择、Parameter设置等关键环节,并探讨了rknand.ko模块的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 RK3188从SDCARD中运行Android系统


        按照RK官方做法就可以实现,但是我也是遇到了不少的问题,所以记录一下。

1.必须使用./mkimage ota生成的固件,即boot.img中包含kernel

2.Bootloader使用1.28版本,低了不行。

3.Parameter使用自带的,如果修改过且修改的不恰当会造成SD_Fireware_Tool出现:问题事件名称: BEX,就会使得失败。

4.内核中要禁用CONFIG_SDMMC0_RK29

5.Android4.2.2会有SDIO WiFi不能使用的问题 见《》。

6.注意事项:去掉SDCARD驱动后,如果做成「SDCARD升级」会进入PCBA测试。

7.SDCARD剩下的FAT32分区会挂载到/mnt/internal_sd而不是以前的/mnt/external_sd。因为这个时候是parameter分区了,不再是一个独立的SDCard了。

 

        原理深入,从SDCARD启动使用的是rknand.ko来实现从SDCARD中挂载文件系统。而没有对SDCARD剩下的FAT32分区做处理。如果不使用rknand.ko的话,那么可以将partition信息写到SDCARDBRM分区。

 

另外关于rknand.ko

[16:44] <naobsd> rknand.ko can be used for eMMC to mount file systems on eMMC
[16:45] <naobsd> err
[16:45] <naobsd> rknand.ko can be used to mount file systems on eMMC when booting from eMMC
[16:45] <naobsd> rknand.ko can be used to mount file systems on SD when booting from SD
[16:45] <naobsd> rknand.ko can be used to mount file systems on NAND when booting from NAND
[16:46] <naobsd> mmc driver can be used to mount file systems on eMMC when booting from eMMC
[16:46] <naobsd> mmc driver can be used to mount file systems on SD when booting from SD but it seems "support partition in parameter" is missing
[16:49] <naobsd> mmc driver can be used to mount file systems on SD when booting from NAND but not booting from eMMC/SD[16:50] <naobsd> rknand.ko cannot be used to mount file systems on NAND when booting from SD/eMMC because it tries to act as SD/eMMC driver and break mmc driver

<naobsd> Tony_: please keep in mind that most of my knowledge is "guessing" with trial & error ;)

 

1. you/your system can mount "user" partition defined in parameter when booting SD card as same as eMMC

2. rknand.ko shouldn't detect partitions defined in MBR

3. PC will detect partitions defined in MBR

4. btw any storage driver does NOT mount file system, it just provides block device. user can format block device and can request block device to mount as file system

 

 

1.mount partition defined in MBR on Android with rknand.ko?

2.or mount partition defined in partition on PC?

3.for former, you can add another partition or modify "user" partition which point same area as fat32 partition in MBR

4.for later, you can modify fat32 partition in MBR which point same are as "user" partition in parameter

5.don't forget 0x2000 sectors offset

 

 

 

For booting from sdcard, the fat32 partition of SDCARD is just partition of parameter.

<think>好的,我现在需要解决RK3566在Android 11上存储空间显示不正确的问题。首先,我得理解这个问题的可能原因。存储空间显示错误可能有多个因素导致,比如系统配置错误、存储挂载点不正确、权限问题,或者是硬件兼容性问题。 根据引用[1]提到的DOM Storage设置,虽然主要关于WebView,但存储相关的系统设置可能存在共通点。比如,系统是否正确地识别了存储设备的容量,或者在初始化时是否正确挂载了分区。可能需要检查存储相关的配置文件和日志。 接下来,引用[2]提到关于系统证书和安装的问题,虽然主要是HTTPS抓包,但涉及到系统级别的配置。存储空间显示错误是否与系统对存储设备的识别有关?比如,分区格式不被正确支持,或者系统服务(如StorageManager)未能正确读取存储信息。 引用[3]和[4]提到RK3566的性能和接口,可能存储驱动或硬件适配存在问题。需要确认RK3566的Android 11系统是否针对该硬件正确配置了存储驱动,特别是分区表和文件系统类型是否正确。例如,是否使用了ext4或f2fs,并且系统能够正确解析这些分区的容量。 接下来,可能的解决步骤包括: 1. **检查存储挂载配置**:查看/system/etc/vold.fstab或类似文件,确认存储设备的挂载点是否正确。如果配置错误,可能导致系统无法正确计算可用空间。 2. **验证文件系统**:使用adb shell进入设备,运行`df`命令查看各分区的挂载情况和空间使用。如果显示的分区大小与实际硬件不符,可能是分区表问题或文件系统损坏。 3. **查看系统日志**:通过`logcat`检查是否有存储相关的错误或警告,比如Vold(Volume Daemon)的日志,可能会提示挂载失败或识别错误。 4. **更新固件或驱动**:联系RK3566的供应商,确认是否有最新的固件或内核驱动更新,特别是针对存储控制器或文件系统的修复。 5. **校准存储统计**:Android系统通过StorageManagerService统计存储信息,可能存在缓存问题。尝试清除缓存数据或重启设备,看是否临时解决问题。 6. **检查权限和SELinux策略**:错误的SELinux策略可能阻止系统服务访问存储设备。查看avc日志是否有相关拒绝信息,并调整策略规则。 如果以上步骤无法解决,可能需要深入分析存储服务的工作流程,或者参考类似问题的解决方案,如引用[2]中提到的系统级配置调整方法。</think>### RK3566 Android 11 存储空间显示错误解决方案 #### 1. **检查存储挂载配置** - **步骤**:通过`adb shell`进入设备,查看`/system/etc/vold.fstab`或`/vendor/etc/vold.fstab`文件,确认存储设备的分区挂载点是否正确。例如: ```bash adb shell cat /vendor/etc/vold.fstab ``` - **可能问题**:若挂载路径(如`/mnt/sdcard`)或文件系统类型(如ext4、f2fs)配置错误,会导致系统无法正确识别容量[^4]。 #### 2. **验证文件系统状态** - **步骤**:运行以下命令查看分区信息: ```bash adb shell df -h adb shell lsblk ``` - **关注点**:检查分区大小是否与硬件实际容量一致。若不一致,可能是分区表损坏或格式化问题,需重新分区或格式化(注意备份数据)[^2]。 #### 3. **分析系统日志** - **步骤**:使用`logcat`过滤存储相关日志: ```bash adb logcat | grep -E "Vold|StorageManager" ``` - **常见错误**: - `Failed to mount /dev/block/mmcblk0pX`:挂载失败,可能是文件系统损坏。 - `Invalid partition size`:分区表异常,需重新烧写固件。 #### 4. **更新固件或内核驱动** - **操作建议**:联系RK3566供应商获取最新固件,重点确认: - 存储控制器驱动(如SD卡、eMMC控制器)是否适配Android 11。 - 文件系统支持是否完整(如f2fs需内核模块支持)。 #### 5. **清除存储统计缓存** - **步骤**: ```bash adb shell pm clear android adb reboot ``` - **作用**:清除系统存储统计缓存,重启后重新计算存储数据。 #### 6. **检查SELinux策略** - **步骤**:在`adb shell`中执行: ```bash dmesg | grep avc ``` - **解决方案**:若发现`denied`权限错误,需在SELinux规则文件(如`*.te`)中添加允许策略,例如: ``` allow vold block_device:dir { search }; ``` #### 7. **校准存储分区** - **适用场景**:若设备存储为eMMC,可能存在坏块导致容量错误。 - **工具**:使用RK3566官方工具(如`rkflash`)重新擦除并格式化存储。 --- ###
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁保康

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值