文档章节

openwrt下检测U盘是否插入

何凯峰
 何凯峰
发布于 2015/10/19 22:48
字数 345
阅读 64
收藏 0
点赞 0
评论 0

  Linux的文件系统是异步的,也就是说写一个文件不是立刻保存到介质(硬盘,U盘等)中,而是存到缓冲区内,等积累到一定程度再一起保存到介质中。如果没有umount就非法拔出U盘,程序是不知道的,fopen,fwrite等函数都依然返回正确,知道操作系统要把写介质的时候,才会提示I/O错误。可是很多数据都会因为这个不及时的错误报告而丢失。

    事实上,USB驱动程序在U盘插入和拔出时,都对系统配置文件做了修改。

    例如U盘驱动程序会在插入或拔出时往 /proc/scsi/usb-storage-0/0 里面记上 Attached:Yes or No

    通过查看这个文件就不难检测U盘是否插入或拔出了。

    注意:U盘是否插入的状态与是否挂载(mount)无关。


上面是针对linux的

在OpenWrt下, 在目录下/proc/scsi/usb-storage,

会出现0,1这样的文件。

可以cat 一下 :cat /proc/scsi/usb-storage/0

如果,没有U盘插入,则对应的0,1文件是不会存在的。

因此可以以此判断U盘是否插入。


© 著作权归作者所有

共有 人打赏支持
何凯峰
粉丝 2
博文 16
码字总数 4528
作品 0
高级程序员
嵌入式linux系统的开发—— VLAN虚拟网络划分实现

前言 局域网(LAN)是由Hub、bridge或Switch等网络设备连接同一网段内的所有节点形成,通常是一个单独的广播域。处于同一个局域网内的网络节点之间可以直接通信,处于不同局域网段的设备之间...

元宵大师 ⋅ 今天 ⋅ 0

嵌入式linux系统的开发——SPI Bit-banging方法的实现

前言 SPI(Serial Peripheral Interface)是一种应用广泛的通信总线,通常微处理器上会集成SPI模块以支持该通信协议,输出正确的信号的时序,并保证时序间同步,实现与外部SPI设备正常通信。...

元宵大师 ⋅ 06/07 ⋅ 0

配置overlay(overlayfs)根目录挂载构建debian无盘工作站

据wikipedia描述overlayfs在2014年融入linux内核,其轻量和易用特性已在openwrt中应用,但在debian发行版本中还没有直接使用overlayfs挂载根目录的启动选项。增加启动选项需对启动initrd进行...

btvnlue ⋅ 05/24 ⋅ 0

Alljoyn瘦客户端库介绍(官方文档翻译 下)

由于其他事情耽误,这个翻译现在才完成。接上篇—— 4 瘦客户端核心库架构   由于AllJoyn瘦客户端核心库(AJTCL)必须运行在那些功耗受限、计算能力有限、资源紧缺的设备上,因此它无法像运...

ai物联网 ⋅ 2014/09/01 ⋅ 0

Snappy已支持最新的Nvidia专有图形驱动程序

导读 Canonical发布了Snapd的新维护版本,Snapd是其Snappy技术的主要组件,使基于Linux的操作系统能够支持通用的Snap应用程序,上周末,为最新的专有Nvidia驱动提供支持。 Snapd 2.32.2现在可...

linuxprobe16 ⋅ 04/25 ⋅ 0

OpenWRT中使用无线网卡做中继器与AP热点

中继器与AP的实现 这里我们假定中继器完成下面这样的一个功能: Wired Network ---> Wireless Network ---> 上级无线路由器 即从外部插入一个网线,通过imx6UL上面的无线网卡将数据转发到上级...

sy373466062 ⋅ 2017/02/05 ⋅ 0

OpenWRT添加无线USB网卡

说明 要完成网线网卡的驱动需要在内核中添加驱动,同时还需要将固件放入rootfs中正确的位置,如果需要固件的话。 内核驱动添加 因为内核中对常规的USB网卡均支持,所以直接添加即可, 例如下...

sy373466062 ⋅ 2017/02/04 ⋅ 0

物联网技术周报第 86 期: 为认知 IoT 应用程序实现区块链

新闻 《微软推出主打安全性的 Project Sopris 低成本物联网设备》在“始终连接”的物联网世界,微软亦希望坚持保证安全性,并推出了一套名叫“Project Sopris”的低成本 IoT 设备。他们在首个...

雪花又一年 ⋅ 04/19 ⋅ 0

OpenWrt中服务配置选项

dhcp网关上配置另一台机器的TFTP启动服务 /etc/config/dhcp /overlay/upper/etc/config/dhcp

btvnlue ⋅ 01/28 ⋅ 0

支持 n2n 协议的手机 VPN 软件 - Hin2n

n2nvLTS n2n是一个支持内网穿透p2p的VPN项目,最初由ntop.org大神 deri@ntop.org, andrews@ntop.org开发并开源的项目,后由大神 https://github.com/meyerd继续做优化工作。我们的目的是在几...

Switch_阳 ⋅ 06/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Linux kernel脉络和主干总结

写在前面 前人常说,对Linux操作系统/内核的理解,是计算机行业从业者的内功,决定了你在技术领域想走多远。但内核的庞大以及学习曲线之陡峭,总让我在学习途中觉得犹如“管中窥豹”。 随着工...

Markz0928 ⋅ 30分钟前 ⋅ 0

在gcc中使用intel风格的内联汇编

很简单,内联汇编使用asm(“.intel_syntax noprefix/n”)声明一下,以后的内联汇编就可以用intel风格了,构建可执行文件时给gcc加上-masm=intel参数。 先写一个小程序测试一下: [cpp] view...

simpower ⋅ 40分钟前 ⋅ 0

NIO 之 ByteBuffer实现原理

相关文章 BIO、NIO、AIO 内部原理分析 NIO 之 Selector实现原理 NIO 之 Channel实现原理 前言 Java NIO 主要由下面3部分组成: Buffer Channel Selector 在传统IO中,流是基于字节的方式进行...

轨迹_ ⋅ 50分钟前 ⋅ 0

Jenkins docker权限问题

环境Ubuntu Server 工具 jenkins-war:2.89.2 报错信息 Cannot connect to the Docker daemon. Is the docker daemon running on this host?Build step 'Execute shell' marked build as fai......

Pulsar-V ⋅ 50分钟前 ⋅ 0

180621-一个简单的时间窗口设计与实现

如何设计一个计数的时间窗口 时间窗口,通常对于一些实时信息展示中用得比较多,比如维持一个五分钟的交易明细时间窗口,就需要记录当前时间,到五分钟之前的所有交易明细,而五分钟之前的数...

小灰灰Blog ⋅ 今天 ⋅ 0

Android之Dalvik、ART、JIT、AOT

Android之Dalvik、ART、JIT、AOT 本文内容:Dalvik、ART、JIT、AOT之间关系 本文定位:知识记录 学习过程记录,加深理解,提升文字组合表达能力。也希望能给学习的同学一些灵感 本文整理于[...

lichuangnk ⋅ 今天 ⋅ 0

Thrift RPC实战(五) thrift连接池

Thrift本身没有提供连接池,我们可以用Apache Commons Pool2来实现一个 一、定义对象工厂 BasePooledObjectFactory<T> extends BaseObject implements PooledObjectFactory<T> public class......

lemonLove ⋅ 今天 ⋅ 0

git 命令简写

简写 命令 g git gst git status gd git diff gdc git diff --cached gdv git diff -w "$@" | view - gl git pull gup git pull --rebase gp git push gc git commit -v gc! git commit -v ......

charley158 ⋅ 今天 ⋅ 0

Java中的锁使用与实现

1.Lock接口 锁是用来控制多个线程访问共享资源的方式,一般来说,一个锁能够防止多个线程同时访问共享资源。 在Lock出现之前,java程序是靠synchronized关键字实现锁功能的,而Java SE5之后,...

ZH-JSON ⋅ 今天 ⋅ 0

Intellij IDEA神器常用技巧四-类和方法注释模板设置

IDEA自带的注释模板不是太好用,我本人到网上搜集了很多资料系统的整理了一下制作了一份比较完整的模板来分享给大家,我不是专业玩博客的,写这篇文章只是为了让大家省事。 这里设置的注释模...

Mkeeper ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部