您尚未登录。

楼主 #1 2018-01-23 10:41:20

zhuacai
会员
注册时间: 2017-12-16
已发帖子: 234
积分: 233.5

各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

各位大神,



全志Allwinner V3s的板子,




怎么样才能自动挂载u盘,读卡器?

离线

#2 2018-01-23 11:38:18

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,349
积分: 9202

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

参考链接: 全志Zero开发板可以识别出u盘,但是没有示是盘符,挂载不了u盘,请大神支招..

好像这个问题你已经问过了, 没有解决吗?





离线

楼主 #3 2018-01-23 12:00:23

zhuacai
会员
注册时间: 2017-12-16
已发帖子: 234
积分: 233.5

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

晕哥 说:

参考链接: 全志Zero开发板可以识别出u盘,但是没有示是盘符,挂载不了u盘,请大神支招..

好像这个问题你已经问过了, 没有解决吗?

晕哥,可以手动挂载了,现在想自却挂载,就是一插上U盘就自己挂载到某个目录上,

离线

#4 2018-01-23 13:42:16

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,349
积分: 9202

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

在 Linux中我们经常用到U盘、SD卡的挂载问题,每次都手动挂载或卸载非常麻烦,我们可以采取以下方法实现自动挂载或卸载U盘、SD卡

1、首先在/etc/init.d/rsC中加入以下语句
echo /sbin/mdev > /proc/sys/kernel/hotplug

2、在/etc/下建立medv.conf的文件,包含以下内容

sd[a-z][0-9]      0:0 666        @(/etc/hotplug/insert.sh $MDEV $SUBSYSTEM)
sd[a-z]           0:0 666        $(/etc/hotplug/remove.sh $MDEV $SUBSYSTEM)
ub[a-z][0-9]      0:0 666        @(/etc/hotplug/insert.sh $MDEV $SUBSYSTEM)
ub[a-z]           0:0 666        $(/etc/hotplug/remove.sh $MDEV $SUBSYSTEM)
mmcblk[0-9]p[0-9] 0:0 666        @(/etc/hotplug/insert.sh $MDEV $SUBSYSTEM)
mmcblk[0-9]       0:0 666        $(/etc/hotplug/remove.sh $MDEV $SUBSYSTEM)


3、在/etc/下建立以下文件夹hotplug,并在hotplug目录下建立以下文件,包含以下内容

insert.sh:

if [ -n "$1" ] ; then
    if [ -b /dev/$1 ]; then

        if [ ! -d /media ]; then
            mkdir -p /media
        fi

        if [ ! -d /media/$1 ]; then
            mkdir -p /media/$1
        fi
             mount /dev/$1 /media/$1
if [ $? -ne 0 ]; then
    rm -rf /media/$1
        fi
    fi
fi

remove.sh:

MOUNTS=$(mount | grep $1 | cut -d' ' -f3)
umount $MOUNTS
rm -rf $MOUNTS



插入U盘、SD等设备,即可在根目录的/media目录下建立相应的文件夹,挂载对用的磁盘文件

////////////////////////////另外一篇相关文章/////////////////////////////////////////////////

mdev是busybox自带的一个简化版的udev

    作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的。
    mdev扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含有名为"dev"的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev下创建设备节点

u盘自动挂载功能实现步骤如下:
1、配置内核
a)配置内核支持热插拔:
#cd linux.2.6.21
#vi .config
CONFIG_KALLSYMS=y
CONFIG_HOTPLUG=y  //确保此项为y
CONFIG_PRINTK=y 
CONFIG_NET=y  //确保此项为y
确保以上两项均设置为y,否则/proc/sys/kernel/目录下不会出现huotplug文件。
b)配置内核支持
#make menuconfig
选择Device Drivers -->
             USB support -->
                   <*> Support for Host-side USB
                   <*> OHIC HCD support
                   <*> UHCI HCD (most Intel and VIA) support
                   <*> SL811HS HCD support
                   <*> USB Mass Storage support

2、配置busybox
#make menuconfig
选择Linux System Utilities --->
             [ * ]mdev
             [ * ]     Support /etc/mdev.conf
             [ * ]          Support subdirs/symlinks
             [ * ]               Support regular expressions substitutions when renaming device
             [ * ]          Support command execution at device addition/removal
             [ * ]     Support loading of firmwares
3、添加对热插拔事件响应,实现u盘自动挂载与卸载
用法:
1. 执行mdev前要挂载 /sys
mount -t tmpfs mdev /dev
mount -t sysfs sysfs /sys

2.命令内核在增删设备时执行/sbin/mdev,使设备节点会被创建和删除
echo /sbin/mdev > /proc/sys/kernel/hotplug

3.设置mdev,让它在系统启动时创建所有的设备节点
mdev -s

关于热插拔:
需要内核中支持hotplug

编写mdev配置文件:/etc/mdev.conf
该文件的作用是:mdev在找到匹配设备时自动执行自定义命令
格式为:
<device regex> <uid>:<gid> <octal permissions> [<@$*><cmd>]
@ 创建节点后执行的
$ 删除节点前执行的
* 创建后和删除前都运行的

如自动挂载U盘和SD卡脚本:
sd[a-z][0-9]      0:0 0660 @/etc/hotplug/usb/udisk_insert
sd[a-z]              0:0 0660 $/etc/hotplug/usb/udisk_remove
mmcblk[0-9]p[0-9]   0:0 0660 @/etc/hotplug/sd/sd_insert
mmcblk[0-9]             0:0 0660 $/etc/hotplug/sd/sd_remove

当检测到类似sda1这样的设备时,执行/etc/hotplug/usb/里的脚本,脚本的内容就是挂载和卸载U盘。

udisk_insert

#!/bin/sh
if[ -p /sys/block/*/$MDEV]; then
        if[ ! -f $MDEV ];then
        mkdir -p /mnt/usb
        mount /dev/$MDEV /mnt/usb
if[ -f /mnt/usb ];then
        echo "mount usbdisk successfully!"
fi
fi

udisk_remove
#!/bin/sh
sync
umount -l /mnt/usb
rm -rf /mnt/usb
echo "remove your usbdisk safely!"

////////////////////////////////////////////////////////////

#mdev.conf
sd[a-z]      0:0 0660        @/etc/mdev/udisk_insert                       
sd[a-z]      0:0 0660        $/etc/mdev/udisk_remove                       
sdb[0-9]  0:6  660
hda[0-9]  0:6  660
Udisk自动挂载脚本和卸载脚分别为:
#!/bin/sh

echo "this is $MDEV"
if [ -d /sys/block/$MDEV ] ; then
echo mount udisk to /mnt/udisk
mkdir -p /mnt/udisk
mount /dev/$MDEV /mnt/udisk -t vfat -o utf8=1
if [ -f /mnt/udisk ];then
echo "mount udisk successfully"
fi
fi

#!/bin/sh

echo remove udisk
umount -t /mnt/udisk
rm -rf /mnt/udisk
echo "remove your udisk safely!"
////////////////////////////////////////////////

1.在使用busybox制作根文件系统的时候,选择支持mdev

Linux System Utilities  ---> 
           [ * ] mdev     
           [ * ]   Support /etc/mdev.conf
           [ * ]     Support command execution at device addition/removal
2.在文件系统添加如下内容
Vim /etc/init.d/rcS
        mount -t tmpfs mdev /dev
        mount -t sysfs sysfs /sys
        mkdir /dev/pts
        mount -t devpts devpts /dev/pts
echo /sbin/mdev>/proc/sys/kernel/hotplug
        mdev –s
这些语句的添加在mdev的手册中可以找到。
3.添加对热插拔事件的响应,实现U盘和SD卡的自动挂载。
Vim /etc/mdev.conf
        mmcblk[0-9]p[0-9] 0:0 666 @ /etc/sd_card_inserting
        mmcblk[0-9] 0:0 666 $ /etc/sd_card_removing
        sd[a-z] [0-9] 0:0 666 @ /etc/usb/usb_inserting
        sd[a-z] 0:0 666 $ /etc/usb/usb_removing
红色部分,是一个脚本,脚本内容可以根据我们的需要定制,可以实现挂载,卸载或其他一些功能。
如下是自动挂载和卸载的脚本:
/etc/sd_card_inserting
        #!/bin/sh
        mount -t vfat /dev/mmcblk0p1 /mnt/sd
/etc/sd_card_removing         #!/bin/sh         sync         umount /mnt/sd

参考链接: Linux下实现U盘、SD卡自动挂载功能 .* ]     Support loading of firmwares
3、添加对热插拔事件响应,实现u盘自动挂载与卸载
用法:
1. 执行mdev前要挂载 /sys
mount -t tmpfs mdev /dev
mount -t sysfs sysfs /sys

2.命令内核在增删设备时执行/sbin/mdev,使设备节点会被创建和删除
echo /sbin/mdev > /proc/sys/kernel/hotplug

3.设置mdev,让它在系统启动时创建所有的设备节点
mdev -s

关于热插拔:
需要内核中支持hotplug

编写mdev配置文件:/etc/mdev.conf
该文件的作用是:mdev在找到匹配设备时自动执行自定义命令
格式为:
<device regex> <uid>:<gid> <octal permissions> [<@$*><cmd>]
@ 创建节点后执行的
$ 删除节点前执行的
* 创建后和删除前都运行的

如自动挂载U盘和SD卡脚本:
sd[a-z][0-9]      0:0 0660 @/etc/hotplug/usb/udisk_insert
sd[a-z]              0:0 0660 $/etc/hotplug/usb/udisk_remove
mmcblk[0-9]p[0-9]   0:0 0660 @/etc/hotplug/sd/sd_insert
mmcblk[0-9]             0:0 0660 $/etc/hotplug/sd/sd_remove

当检测到类似sda1这样的设备时,执行/etc/hotplug/usb/里的脚本,脚本的内容就是挂载和卸载U盘。

udisk_insert

#!/bin/sh
if[ -p /sys/block/*/$MDEV]; then
        if[ ! -f $MDEV ];then
        mkdir -p /mnt/usb
        mount /dev/$MDEV /mnt/usb
if[ -f /mnt/usb ];then
        echo "mount usbdisk successfully!"
fi
fi

udisk_remove
#!/bin/sh
sync
umount -l /mnt/usb
rm -rf /mnt/usb
echo "remove your usbdisk safely!"

////////////////////////////////////////////////////////////

#mdev.conf
sd[a-z]      0:0 0660        @/etc/mdev/udisk_insert                       
sd[a-z]      0:0 0660        $/etc/mdev/udisk_remove                       
sdb[0-9]  0:6  660
hda[0-9]  0:6  660
Udisk自动挂载脚本和卸载脚分别为:
#!/bin/sh

echo "this is $MDEV"
if [ -d /sys/block/$MDEV ] ; then
echo mount udisk to /mnt/udisk
mkdir -p /mnt/udisk
mount /dev/$MDEV /mnt/udisk -t vfat -o utf8=1
if [ -f /mnt/udisk ];then
echo "mount udisk successfully"
fi
fi

#!/bin/sh

echo remove udisk
umount -t /mnt/udisk
rm -rf /mnt/udisk
echo "remove your udisk safely!"
////////////////////////////////////////////////

1.在使用busybox制作根文件系统的时候,选择支持mdev

Linux System Utilities  ---> 
           [ * ] mdev     
           [ * ]   Support /etc/mdev.conf
           [ * ]     Support command execution at device addition/removal
2.在文件系统添加如下内容
Vim /etc/init.d/rcS
        mount -t tmpfs mdev /dev
        mount -t sysfs sysfs /sys
        mkdir /dev/pts
        mount -t devpts devpts /dev/pts
echo /sbin/mdev>/proc/sys/kernel/hotplug
        mdev –s
这些语句的添加在mdev的手册中可以找到。
3.添加对热插拔事件的响应,实现U盘和SD卡的自动挂载。
Vim /etc/mdev.conf
        mmcblk[0-9]p[0-9] 0:0 666 @ /etc/sd_card_inserting
        mmcblk[0-9] 0:0 666 $ /etc/sd_card_removing
        sd[a-z] [0-9] 0:0 666 @ /etc/usb/usb_inserting
        sd[a-z] 0:0 666 $ /etc/usb/usb_removing
红色部分,是一个脚本,脚本内容可以根据我们的需要定制,可以实现挂载,卸载或其他一些功能。
如下是自动挂载和卸载的脚本:
/etc/sd_card_inserting
        #!/bin/sh
        mount -t vfat /dev/mmcblk0p1 /mnt/sd
/etc/sd_card_removing         #!/bin/sh         sync         umount /mnt/sd

参考链接: Linux下实现U盘、SD卡自动挂载功能 .





离线

#5 2019-08-06 17:23:23

john78
会员
注册时间: 2018-07-19
已发帖子: 222
积分: 160

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

没有搞定自动
mdev怎么配置?buildroot-2017.02.7中么有 linux 3.14y中也没有

貌似hotplug无法启动

手工mount可以实现

离线

#6 2019-10-26 11:57:40

晕哥
管理员
注册时间: 2017-09-06
已发帖子: 9,349
积分: 9202

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

感谢各位,此贴已收录到精华帖合集: https://whycan.cn/t_3019.html





离线

#7 2020-08-02 12:27:00

ifree64
会员
注册时间: 2019-06-27
已发帖子: 74
积分: 143.5

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

自己编译的kernel,没有/proc/sys/kernel/hotplug文件,搜索内核的.config文件,也没有CONFIG_HOTPLUG选项,看到有人说新内核已经取消了这个CONFIG_HOTPLUG选项,默认已经开启了。
有哪位大神能指导一下?

离线

#8 2020-09-19 19:45:36

shawn.d
会员
注册时间: 2020-09-12
已发帖子: 164
积分: 95

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

自己搞过一个简单脚本,但没有晕哥的这么全。

离线

#9 2021-03-11 11:26:53

feng888
会员
注册时间: 2021-01-03
已发帖子: 59
积分: 50

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

linux 3.14y  如何做自动挂载 U盘 SD卡

离线

#10 2021-06-23 15:34:31

hanzixi_angel
会员
注册时间: 2020-09-21
已发帖子: 54
积分: 35.5

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

晕哥 说:

感谢各位,此贴已收录到精华帖合集: https://whycan.cn/t_3019.html


没有/proc/sys/kernel/hotplug文件,内核中也找不到usb热插拔的配置;内核是5.2的;晕哥有解决办法吗;

离线

#11 2021-06-23 16:06:41

hanzixi_angel
会员
注册时间: 2020-09-21
已发帖子: 54
积分: 35.5

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

ifree64 说:

自己编译的kernel,没有/proc/sys/kernel/hotplug文件,搜索内核的.config文件,也没有CONFIG_HOTPLUG选项,看到有人说新内核已经取消了这个CONFIG_HOTPLUG选项,默认已经开启了。
有哪位大神能指导一下?


/proc/sys/kernel/hotplug不存在的问题您解决了吗啊   Linux5.2中没有usb hotplug的设置啊

离线

#12 2021-11-24 18:06:46

chenzh
会员
注册时间: 2021-09-29
已发帖子: 28
积分: 8

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

该评论内容与本帖子无关,鼓励各位坑友积极发言讨论与帖子有关的内容!

离线

  • 不通过:其他

#13 2022-06-23 20:50:59

cube
会员
注册时间: 2021-03-11
已发帖子: 288
积分: 202.5

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

udev

离线

#14 2022-06-26 09:28:20

LinuxGo
会员
注册时间: 2021-01-07
已发帖子: 88
积分: 120

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

@hanzixi_angel
大佬这个选项没有怎么办的?

离线

#15 2023-03-09 00:23:49

GGwut
会员
注册时间: 2023-03-09
已发帖子: 7
积分: 7

Re: 各位大神,全志Allwinner V3s的板子,怎么样才能自动挂载u盘,读卡器?

我的神啊,新手感觉记不住,需要慢慢来

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn