Openwrt TF Card Auto Mount&Check (4)

1      Scope of Document

This document describes tf card bootup auto do file system check when mount tf card

2      Requiremen

2.1     Function Requirement

Auto do fsch and  mount tf card.

2.2     Performance Requirement

NA

3      Hardware Overview

NA

                

4      Functional Description

4.1     Functional Block Diagram

NA

                    

5      Porting

5.1     Kernel configure

CONFIG_TARGET_ramips=y

CONFIG_TARGET_ramips_mt7628=y

CONFIG_TARGET_ramips_mt7628_Default=y

CONFIG_BUSYBOX_CUSTOM=y

CONFIG_BUSYBOX_CONFIG_FDISK=y

CONFIG_BUSYBOX_CONFIG_FEATURE_AIX_LABEL=y

CONFIG_BUSYBOX_CONFIG_FEATURE_FDISK_ADVANCED=y

CONFIG_BUSYBOX_CONFIG_FEATURE_FDISK_WRITABLE=y

CONFIG_BUSYBOX_CONFIG_FEATURE_GPT_LABEL=y

CONFIG_BUSYBOX_CONFIG_FEATURE_OSF_LABEL=y

CONFIG_BUSYBOX_CONFIG_FEATURE_SGI_LABEL=y

CONFIG_BUSYBOX_CONFIG_FEATURE_SUN_LABEL=y

CONFIG_BUSYBOX_CONFIG_MICROCOM=y

CONFIG_PACKAGE_block-mount=y

CONFIG_PACKAGE_chat=y

CONFIG_PACKAGE_comgt=y

CONFIG_PACKAGE_e2fsprogs=y

CONFIG_PACKAGE_kmod-crypto-core=y

CONFIG_PACKAGE_kmod-crypto-hash=y

CONFIG_PACKAGE_kmod-fs-ext4=y

CONFIG_PACKAGE_kmod-fs-vfat=y

CONFIG_PACKAGE_kmod-lib-crc16=y

CONFIG_PACKAGE_kmod-mmc=y

CONFIG_PACKAGE_kmod-nls-cp437=y

CONFIG_PACKAGE_kmod-nls-iso8859-1=y

CONFIG_PACKAGE_kmod-nls-utf8=y

CONFIG_PACKAGE_kmod-scsi-core=y

CONFIG_PACKAGE_kmod-scsi-generic=y

CONFIG_PACKAGE_kmod-sdhci=y

CONFIG_PACKAGE_kmod-sdhci-mt7620=y

CONFIG_PACKAGE_kmod-usb-serial=y

CONFIG_PACKAGE_kmod-usb-serial-option=y

CONFIG_PACKAGE_kmod-usb-serial-wwan=y

CONFIG_PACKAGE_libext2fs=y

CONFIG_PACKAGE_libuuid=y

CONFIG_PACKAGE_luci-proto-3g=y

 

 

 

[    5.140000] MTK MSDC device init.

[    5.180000] mtk-sd: MediaTek MT6575 MSDC Driver

[    5.180000] sdhci: Secure Digital Host Controller Interface driver

[    5.180000] sdhci: Copyright(c) Pierre Ossman

[    5.180000] sdhci-pltfm: SDHCI platform and OF driver helper

[    5.290000] mmc0: new high speed SDHC card at address 0007

[    5.290000] mmcblk mmc0:0007: no of_node; not parsing pinctrl DT

[    5.290000] mmcblk0: mmc0:0007 SD16G 14.5 GiB

[    5.300000]  mmcblk0: p1

 

 

5.2     System configure

Reference: https://openwrt.org/docs/techref/block_ mount?s[]=auto&s[]=mount

 

root@OpenWrt:~# cat /etc/config/fstab

 

config global

        option anon_swap '0'

        option anon_mount '0'

        option auto_swap '1'

        option auto_mount '1'

        option delay_root '5'

        option check_fs '0'

 

config mount

        option target '/mnt/'

        option device '/dev/mmcblk0p1'

        option enabled '1'

        option enabled_fsck '1'

 

 

Create patch for auto mount tfcard and do fsck when mount tf card.

 

Trunk/package/system/fstools/patches/001-support-auto-mount-and-fsck-tf-card.patch

 

@@ -542,6 +542,7 @@ static int print_block_info(struct blkid

      return 0;

 }

 

+#if   0

 static int print_block_uci(struct blkid_struct_probe *pr)

 {

      if (!strcmp(pr->id->name, "swap")) {

@@ -558,6 +559,7 @@ static int print_block_uci(struct blkid_

 

      return 0;

 }

+#endif

 

 static struct blkid_struct_probe* find_block_info(char *uuid, char *label, char *path)

 {

@@ -1230,9 +1232,9 @@ static int main_umount(int argc, char **

 

 static int main_detect(int argc, char **argv)

 {

-      struct blkid_struct_probe *pr;

+     //struct blkid_struct_probe *pr;

 

-      cache_load(0);

+     //cache_load(0);

      printf("config 'global'\n");

      printf("\toption\tanon_swap\t'0'\n");

      printf("\toption\tanon_mount\t'0'\n");

@@ -1240,8 +1242,13 @@ static int main_detect(int argc, char **

      printf("\toption\tauto_mount\t'1'\n");

      printf("\toption\tdelay_root\t'5'\n");

      printf("\toption\tcheck_fs\t'0'\n\n");

-      list_for_each_entry(pr, &devices, list)

-             print_block_uci(pr);

+     //list_for_each_entry(pr, &devices, list)

+     //     print_block_uci(pr);

+     printf("config 'mount'\n");

+        printf("\toption\ttarget\t'/mnt/'\n");

+        printf("\toption\tdevice\t'%s'\n", "/dev/mmcblk0p1");

+        printf("\toption\tenabled\t'1'\n");

+        printf("\toption\tenable_fsck\t'1'\n\n");

 

      return 0;

 }

 

Equivalently add follow option in /etc/config/fstab

 

option target /mnt/                       à set  mount point

option device /dev/mmcblk0p1    à set tf card device interface

option enabled 1                              ­-> default enable auto mount function

option enable_fsck 1                       à default enable fsck function

 

posted @ 2019-01-09 15:29  嵌入式实操  阅读(666)  评论(0编辑  收藏  举报