突然发现平板启动速度很慢,要5分钟左右,很是奇怪,于是接上串口查看什么原因,原来发现平板的emmc需要修复,提示信息如下:
[ 6.397266] MFC F/W loaded successfully (size: 360104)
[ 6.543089] EXT4-fs (mmcblk0p3): warning: checktime reached, running e2fsck is recommended
[ 6.557143] EXT4-fs (mmcblk0p3): recovery complete
[ 6.567504] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: nomblk_io_submit,errors=remount-ro
[ 185.585236] fs_mgr: Running /system/bin/e2fsck on /dev/block/mmcblk0p3
[ 185.595711] e2fsck: executing /system/bin/e2fsck failed: No such file or directory
[ 185.602067] e2fsck: e2fsck terminated by exit(255)
[ 185.624998] EXT4-fs (mmcblk0p3): warning: checktime reached, running e2fsck is recommended
[ 185.634902] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: nomblk_io_submit,noauto_da_alloc
[ 185.680395] EXT4-fs (mmcblk0p4): warning: checktime reached, running e2fsck is recommended
[ 185.690336] EXT4-fs (mmcblk0p4): recovery complete
[ 185.696410] EXT4-fs (mmcblk0p4): mounted filesystem with ordered data mode. Opts: nomblk_io_submit,errors=remount-ro
[ 321.995198] fs_mgr: Running /system/bin/e2fsck on /dev/block/mmcblk0p4
[ 322.003252] e2fsck: executing /system/bin/e2fsck failed: No such file or directory
[ 322.009549] e2fsck: e2fsck terminated by exit(255)
[ 322.079553] EXT4-fs (mmcblk0p4): warning: checktime reached, running e2fsck is recommended
[ 322.101595] EXT4-fs (mmcblk0p4): mounted filesystem with ordered data mode. Opts: nomblk_io_submit
[ 322.111308] GPS DEBUG:Device Opened Success!
[ 322.114162] GPS DEBUG:Device Closed Success!
解决方法:
在安卓源码里编译e2fsck命令,默认情况下是不编译的,这个命令对应安卓源码"external/e2fsprogs",编译e2fsck命令的方法是输入命令
. build/envsetup.sh
mm e2fsck
最后编译显示e2fsck的安装目录:
Install: out/target/product/generic/system/lib/libdl.so
Install: out/target/product/generic/system/lib/libc.so
Install: out/target/product/generic/system/lib/libext2_uuid.so
Install: out/target/product/generic/system/lib/libext2_blkid.so
Install: out/target/product/generic/system/lib/libext2_com_err.so
Install: out/target/product/generic/system/lib/libext2_e2p.so
Install: out/target/product/generic/system/lib/libext2_profile.so
Install: out/target/product/generic/system/lib/libext2fs.so
Install: out/target/product/generic/system/bin/e2fsck
[ 6.172215] EXT4-fs (mmcblk0p2): mounted filesystem with ordered data mode. Opts: (null)
[ 6.232121] usb 1-3.3.1: New USB device found, idVendor=0bda, idProduct=b720, bcdDevice=0200
[ 6.245998] usb 1-3.3.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 6.250424] MFC F/W loaded successfully (size: 360104)
[ 6.258315] usb 1-3.3.1: New USB device Class: Class=239, SubClass=2, Protocol=1
[ 6.265467] usb 1-3.3.1: Product: 802.11n WLAN Adapter
[ 6.269981] usb 1-3.3.1: Manufacturer: Realtek
[ 6.281370] usb 1-3.3.1: SerialNumber: 00e04c000001
[ 6.701417] EXT4-fs (mmcblk0p3): warning: checktime reached, running e2fsck is recommended
[ 6.710635] EXT4-fs (mmcblk0p3): recovery complete
[ 6.716290] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: nomblk_io_submit,errors=remount-ro
[ 6.765268] fs_mgr: Running /system/bin/e2fsck on /dev/block/mmcblk0p3
[ 8.472255] e2fsck: e2fsck 1.41.14 (22-Dec-2010)
[ 8.475470] e2fsck: /dev/block/mmcblk0p3 has gone 17471 days without being checked, check forced.
[ 8.484275] e2fsck: Pass 1: Checking inodes, blocks, and sizes
[ 8.490108] e2fsck: Pass 2: Checking directory structure
[ 8.495384] e2fsck: Pass 3: Checking directory connectivity
[ 8.500938] e2fsck: Pass 4: Checking reference counts
[ 8.505971] e2fsck: Pass 5: Checking group summary information
[ 8.511801] e2fsck: /dev/block/mmcblk0p3: 484/131616 files (18.6% non-contiguous), 30672/263088 blocks
[ 8.534734] EXT4-fs (mmcblk0p3): mounted filesystem with ordered data mode. Opts: nomblk_io_submit,noauto_da_alloc
[ 8.568160] EXT4-fs (mmcblk0p4): warning: checktime reached, running e2fsck is recommended
[ 8.577320] EXT4-fs (mmcblk0p4): recovery complete
[ 8.583117] EXT4-fs (mmcblk0p4): mounted filesystem with ordered data mode. Opts: nomblk_io_submit,errors=remount-ro
[ 8.710186] fs_mgr: Running /system/bin/e2fsck on /dev/block/mmcblk0p4
[ 9.545414] e2fsck: e2fsck 1.41.14 (22-Dec-2010)
[ 9.548581] e2fsck: /dev/block/mmcblk0p4 has gone 17471 days without being checked, check forced.
[ 9.557433] e2fsck: Pass 1: Checking inodes, blocks, and sizes
[ 9.563241] e2fsck: Pass 2: Checking directory structure
[ 9.568570] e2fsck: Pass 3: Checking directory connectivity
[ 9.574092] e2fsck: Pass 4: Checking reference counts
[ 9.579137] e2fsck: Pass 5: Checking group summary information
[ 9.584942] e2fsck: /dev/block/mmcblk0p4: 12/78432 files (0.0% non-contiguous), 6608/78366 blocks
[ 9.609920] EXT4-fs (mmcblk0p4): mounted filesystem with ordered data mode. Opts: nomblk_io_submit
更新:
另外一种解决方法,在device.mk里面把e2fsck编译进去也行
PRODUCT_PACKAGES += \
e2fsck