我最近一直在研究一些用于软驱的bootstrap代码.我的目标是修改程序,以便它使用我的USB闪存驱动器.现在我看到INT 13H功能如何与软盘设备一起使用,但我想我的问题是,与USB驱动器的通信将如何不同?
例如,这是一个软盘代码片段(GNU汇编程序):
movb $0x00,%dl /* select 1st floppy */
/* later */
movw sec,%cx /* get sector number */
movw head,%dx /* get head number */
movw $0x0201,%ax /* read 1 sector */
int $0x13
Run Code Online (Sandbox Code Playgroud)
现在我已经读过将0x80移动到%dl将选择BIOS中的第一个HDD.在我的特定BIOS中,我可以更改驱动器顺序,其中包括USB驱动器.我很确定这会依赖于BIOS,但我认为BIOS中列出的顺序可能与我进入%dl的值相对应.我需要追踪一些文档......
我真的不熟悉使用块设备,有人能指出我开始学习更多的好地方吗?
谢谢!
的system_profiler
Mac OS中10.5命令用于显示相关联的USB驱动器安装的卷的路径.然而,在10.4中,它们没有显示.关于如何在10.4中获取USB驱动器的安装位置的任何想法?
可能重复:
获取USB设备列表
我正在制作一个WPF应用程序.
我正在寻找一种方法来列出我的comboBox中所有插入的USB设备(磁盘!).
我可以使用DriveInfo.GetDrives()列出所有驱动器,但是有一种简单的方法可以将其过滤到USB设备吗?
感谢名单
我在家里使用linux但在学校我们使用的是Windows 7.我想在我的usb上安装python,我可以将它用于windows和linux(ubuntu 13.04).有没有办法可以在我的USB上安装python,以便win和linux计算机都可以使用它?我对python 2.7更感兴趣.我在我的linux机器上安装了Wine.它可能不是理想的,但我可以使用便携式python并在葡萄酒下运行吗?
我需要知道如何找出 /dev/sdX 设备映射到 /proc/bus/usb/devices 中的哪个条目。基本上,我需要知道给定 USB 记忆棒的供应商 ID 和产品 ID(可能没有序列号)。
就我而言,我的闪存驱动器在 /proc/bus/usb/devices 中有以下条目:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 6 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0781 ProdID=5530 Rev= 2.00
S: Manufacturer=SanDisk
S: Product=Cruzer
S: SerialNumber=0765400A1BD05BEE
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=200mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
Run Code Online (Sandbox Code Playgroud)
我碰巧知道在我的例子中它是 /dev/sda,但我不确定如何在代码中弄清楚这一点。我的第一种方法是循环遍历所有 /dev/sdXX 设备并发出 SCSI_IOCTL_GET_BUS_NUMBER …
好的,所以我之前打开了usb驱动器,我明白他们使用通用MCU来控制NAND闪存.我在想的是,如果有人可以重新编程它们,在插入USB端口时启动应用程序,那么它对于大量应用程序(例如自动复制文件)可能很有用.我知道不同的MCU可能会/可能不会使用完全不同的ASM代码,但也存在如何与其进行通信的问题(即协议等).这有可能吗?我听说过像MP Tools这样的东西(理论上)可以低级格式化并将驱动器重置为出厂默认值,但不能编辑其上使用的任何代码.
我将 USB 存储设备连接到手机并使用
getExternalFilesDirs("");
Run Code Online (Sandbox Code Playgroud)
查找所有目录,包括 sdcard 和 USB。
该功能正确输出了SD卡的路径,但未输出USB路径。
有没有办法找到USB的相对路径而不是绝对路径?
我已经被这个问题困扰了几个星期,但一无所获。
我需要一个程序来检测媒体插入并告诉我驱动器号,以便我可以在其基础上进行构建并添加在触发设备插入事件时要运行的其他功能。
我认为可以使用Win32_VolumeChangeEvent 类使用 WMI 来完成(我在 Powershell 和 C# 中找到了一些实现,但我想使用 Python 来完成)。我知道最终还有wmi
python 模块,我从 Python 邮件列表中找到了这段代码,但它似乎不起作用。
然后我还发现这个Python脚本可以满足我的需要。它似乎是为 python 2 编写的,我调整了 print() 函数的括号,以便使其在 python 3 上工作,此外我注意到;
代码中有一些不必要的内容。(也许它是从 C 移植的,开发人员错误地将它们留在那里。这个 python 脚本使用 ctypes)。
我向你展示我得到的代码:
import win32api, win32con, win32gui
from ctypes import *
#
# Device change events (WM_DEVICECHANGE wParam)
#
DBT_DEVICEARRIVAL = 0x8000
DBT_DEVICEQUERYREMOVE = 0x8001
DBT_DEVICEQUERYREMOVEFAILED = 0x8002
DBT_DEVICEMOVEPENDING = 0x8003
DBT_DEVICEREMOVECOMPLETE = 0x8004
DBT_DEVICETYPESSPECIFIC = 0x8005
DBT_CONFIGCHANGED = 0x0018
#
# type of …
Run Code Online (Sandbox Code Playgroud) 我有一部 Android 6.0 手机,配有内部存储器、可移动 SD 卡和插入手机中的 USB OTG(带微型 USB 插孔的笔式驱动器)。Android设备中弹出可移动SD卡和USB OTG:“设置”->“存储和USB”。我可以在该设备中安装可移动SD卡和USB OTG。例如,我安装了可移动 SD,并希望将此事件与 USB OTG 的安装区分开来。我可以在接收器中执行的唯一操作
<receiver
android:name=".receiver.RemovableMediaReceiver"
android:enabled="true"
android:exported="false">
<intent-filter>
<action android:name="android.hardware.usb.action.USB_DEVICE_DETACHED"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.MEDIA_MOUNTED"/>
<action android:name="android.intent.action.MEDIA_UNMOUNTED"/>
<action android:name="android.intent.action.MEDIA_EJECT"/>
<action android:name="android.intent.action.MEDIA_BAD_REMOVAL"/>
<data android:scheme="file"/>
</intent-filter>
</receiver>
Run Code Online (Sandbox Code Playgroud)
挂载时为android.intent.action.MEDIA_MOUNTED,挂载的 SD 卡的根目录路径作为此操作的额外内容 - /storage/A13D-EF43。USB OTG 安装事件也是如此。唯一的区别在于安装的 USB OTG 的名称 - 路径是/storage/BD76-24ED。
如果我在安装之前没有 API 调用来获取 SD 或 USB OTG 的名称,以便将其与android.intent.action.MEDIA_MOUNTED中的额外(路径)进行比较,我如何了解安装了哪种媒体 - SD 或 USB OTG ?
android usb-drive android-sdcard removable-storage android-broadcastreceiver
我使用的是 macOS Mojave 10.14.6。我正在尝试将我的 USB 重新格式化为 FAT。我收到此错误MBRFormat does not appear to be a valid volume name for its file system
。这是什么意思以及如何解决?为什么文件系统显示“无”?
root$ diskutil info /dev/disk5
Device Identifier: disk5
Device Node: /dev/disk5
Whole: Yes
Part of Whole: disk5
Device / Media Name: Cruzer Facet
Volume Name: Not applicable (no file system)
Mounted: Not applicable (no file system)
File System: None
Content (IOContent): GUID_partition_scheme
OS Can Be Installed: No
Media Type: Generic
Protocol: USB
SMART Status: Not Supported
Disk Size: 8.0 …
Run Code Online (Sandbox Code Playgroud)