• 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' ");

          printf(" option anon_swap '0' ");

          printf(" option anon_mount '0' ");

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

          printf(" option auto_mount '1' ");

          printf(" option delay_root '5' ");

          printf(" option check_fs '0' ");

    -      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' ");

    +        printf(" option target '/mnt/' ");

    +        printf(" option device '%s' ", "/dev/mmcblk0p1");

    +        printf(" option enabled '1' ");

    +        printf(" option enable_fsck '1' ");

          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

  • 相关阅读:
    10.2 处理大集合
    观察者模式——出版者与订阅者
    phonegap(cordova) 自己定义插件代码篇(五)----android ,iOS 集成微信登陆
    另一鲜为人知的单例写法-ThreadLocal
    Spring MVC中Controller如何将数据返回给页面
    IntelliJ IDEA安装主题详细步骤
    oracle导出dmp文件的2种方法
    Oracle导出表(即DMP文件)的两种方法
    Spring MVC 实现文件的上传和下载
    压力测试 JMeter3.3
  • 原文地址:https://www.cnblogs.com/lianghong881018/p/10244648.html
Copyright © 2020-2023  润新知