新唐NUC980读取SD卡配置

驱动设置
首先开启SD卡驱动:

$cd cd NUC970_Buildroot-master/
$make linux-menuconfig

选择Device Drivers > MMC/SD/SDIO card support,选择项如下图所示:
在这里插入图片描述
类似于U盘配置,使用SD卡前也需要开启相应文件系统。我测试使用SD卡为FAT文件系统,该文件系统设置可参考上一篇文章:
新唐NUC980读取U盘配置
设置完成后,保存。
可以在/output/target/mnt文件夹下建立一个文件夹用以测试,然后make,烧录uimage。
测试
插入SD卡后会输出SD卡相关信息:
在这里插入图片描述
可以看到SD的盘符为mmcblk0,分区p1,有的SD卡可能有多个分区。也可使用fdisk -l命令确认。
测试使用/mnt/usb作为挂载点,使用挂载命令:

#mount -t vfat /dev/mmcblk0p1 /mnt/usb

进入sd文件夹即可看到SD卡内容:
在这里插入图片描述
不要对挂载内容感到奇怪😓,现在很少用SD卡,找不到适合的测试用卡,只好把小游戏机的存储卡拿来测试…
拔出SD卡前,使用umount取消挂载:

#umount /mnt/usb

自动挂载
此项目要求同时使用usb与SD卡,且最后都可以自动挂载,类似于U盘设置,修改mdev.conf文件,运行脚本实现自动挂载。可参看上一篇关于U盘的文章:
新唐NUC980读取U盘配置

首先在mnt下创建另一个SD卡的挂载点sd。修改mdev.conf文件:

#FAT device such as U-disk sd-card
sd[a-z][0-9]    root:root 660 */etc/automount $MDEV $ACTION UD
mmcblk[0-9]p[0-9]    root:root 660 */etc/automount $MDEV $ACTION SD

这里U盘与SD都使用的同一个脚本automount,所以除了MEDV与ACTION两个参数外,还需要使用第三个参数:UD与SD执行不同的操作。
automount文件内容如下:

#!/bin/sh

if [ "$3" == "UD" ]; then
    TARGETDIR=usb
elif [ "$3" == "SD" ]; then
    TARGETDIR=sd;
fi

if [ "$2" == "add" ]; then
    test -d /mnt/$TARGETDIR || mkdir /mnt/$TARGETDIR
    mount /dev/$1 /mnt/$TARGETDIR
elif [ "$2" == "remove" ]; then
    mountpoint -q /mnt/$TARGETDIR && umount /mnt/$TARGETDIR
fi

效果如下:
在这里插入图片描述

可以看到与上一篇中U盘挂载的不同:
首先通过输入的第三个参数判断需要挂载的是U盘还是SD卡,同时给出不同挂载点:

if [ "$3" == "UD" ]; then
    TARGETDIR=usb
elif [ "$3" == "SD" ]; then
    TARGETDIR=sd;
fi

之后判断是挂载还是移除,在挂载时使用test命令判断挂载点是否存在,不存在则创建:

test -d /mnt/$TARGETDIR || mkdir /mnt/$TARGETDIR

取消挂载时判断挂载情况,仍在挂载中则取消挂载:

mountpoint -q /mnt/$TARGETDIR && umount /mnt/$TARGETDIR

加入此判断主要是作为一个保险语句使用。因为在测试过程中发现,不论是U盘还是SD卡,在没有umount的前提下,直接取下U盘/SD卡,通过脚本执行umount,下次再插入时会输出类似如下的报警:
FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

虽然不影响挂载等操作,同时还可以插入到电脑上使用修复来消除此报警,但我认为直接拔出还是对存储设备造成了不大不小的伤害。
若先umount再拔出,再次插入不会出现报警,所以脚本中的umount命令确实是设备拔出后才能触发。虽然有脚本自动umount,在拔出U盘前还是应使用某些方法触发umount操作,类似于正常在电脑上拔出U盘前要先弹出。

参考资料:
官方文档—NUC980 Linux 4.4 BSP User Manual
下载地址:https://download.csdn.net/download/m0_46222499/85167997

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

cedar_king

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

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

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

打赏作者

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

抵扣说明:

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

余额充值