- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想知道是否有一种方法可以在 OS X 上以通用方式使用 USB 调制解调器(华为 E1550 种类),例如通用 USB 调制解调器。问题是操作系统不会将其识别为合法的 CDC ACM 设备(它是,但它没有宣传是这样的)。
在 Linux 上,加密狗被自动识别为 USB 串行设备。
我不希望在我的任何机器上同时使用 ZTE 和华为供应商驱动程序是有原因的:这些人编写的东西几乎无法正常工作(我上次使用 ZTE 驱动程序的经验涉及向我的日志发送垃圾邮件、占用 RAM,而我无法禁用它),他们的驱动程序不向前兼容,他们忽略了将它们与较新的操作系统版本同步,并且他们通常打算将这些驱动程序与运营商的英国媒体报道软件一起分发。
Apple 的开发人员文档以模糊的方式写道,可以编写无代码 kext 以强制匹配设备上的特定驱动程序,或阻止为匹配设备加载通用驱动程序。事实上,大多数对无代码 kext 的搜索都会产生诸如“如何防止我的串行加密狗被识别为调制解调器?”之类的问题,而我想要的却完全相反!
到目前为止,我编写这样一个无代码 kext 的尝试以失败告终——kextutil 告诉 kext 已成功加载,但它不存在,AppleCDCACM.kext 也是如此(它具有我想要使用的 IOClass)。
JFYI,从 Linux 收集的 lsusb 信息:
Bus 004 Device 005: ID 12d1:1001 Huawei Technologies Co., Ltd. E169/E620/E800 HSDPA ModemDevice Descriptor: bLength 18 bDescriptorType 1 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 idVendor 0x12d1 Huawei Technologies Co., Ltd. idProduct 0x1001 E169/E620/E800 HSDPA Modem bcdDevice 0.00 iManufacturer 2 HUAWEI Technology iProduct 1 HUAWEI Mobile iSerial 0 bNumConfigurations 1 Configuration Descriptor: bLength 9 bDescriptorType 2 wTotalLength 85 bNumInterfaces 3 bConfigurationValue 1 iConfiguration 3 Qualcomm Configuration bmAttributes 0xe0 Self Powered Remote Wakeup MaxPower 500mA Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 0 bAlternateSetting 0 bNumEndpoints 3 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x81 EP 1 IN bmAttributes 3 Transfer Type Interrupt Synch Type None Usage Type Data wMaxPacketSize 0x0040 1x 64 bytes bInterval 5 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x82 EP 2 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x01 EP 1 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 1 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x83 EP 3 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x02 EP 2 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Interface Descriptor: bLength 9 bDescriptorType 4 bInterfaceNumber 2 bAlternateSetting 0 bNumEndpoints 2 bInterfaceClass 255 Vendor Specific Class bInterfaceSubClass 255 Vendor Specific Subclass bInterfaceProtocol 255 Vendor Specific Protocol iInterface 0 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x84 EP 4 IN bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32 Endpoint Descriptor: bLength 7 bDescriptorType 5 bEndpointAddress 0x03 EP 3 OUT bmAttributes 2 Transfer Type Bulk Synch Type None Usage Type Data wMaxPacketSize 0x0200 1x 512 bytes bInterval 32Device Qualifier (for other device speed): bLength 10 bDescriptorType 6 bcdUSB 2.00 bDeviceClass 0 bDeviceSubClass 0 bDeviceProtocol 0 bMaxPacketSize0 64 bNumConfigurations 1can't get debug descriptor: Resource temporarily unavailableDevice Status: 0x0001 Self Powered
The interface I want to hook up is interface 0 (modem).
Here's how ioreg
sees it:
| | | | | +-o HUAWEI Mobile@1d110000 | | | | | +-o AppleUSBHostLegacyClient | | | | | +-o AppleUSBHostCompositeDevice | | | | | +-o IOUSBHostInterface@0 | | | | | | { | | | | | | "USBPortType" = 0 | | | | | | "IOCFPlugInTypes" = {"2d9786c6-9ef3-11d4-ad51-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"} | | | | | | "bcdDevice" = 0 | | | | | | "USBSpeed" = 3 | | | | | | "idProduct" = 4097 | | | | | | "bConfigurationValue" = 1 | | | | | | "bInterfaceSubClass" = 255 | | | | | | "locationID" = 487653376 | | | | | | "IOGeneralInterest" = "IOCommand is not serializable" | | | | | | "IOClassNameOverride" = "IOUSBInterface" | | | | | | "AppleUSBAlternateServiceRegistryID" = 4294969542 | | | | | | "idVendor" = 4817 | | | | | | "bInterfaceProtocol" = 255 | | | | | | "bAlternateSetting" = 0 | | | | | | "bInterfaceNumber" = 0 | | | | | | "bInterfaceClass" = 255 | | | | | | } | | | | | | | | | | | +-o IOUSBHostInterface@1 | | | | | | { | | | | | | "USBPortType" = 0 | | | | | | "IOCFPlugInTypes" = {"2d9786c6-9ef3-11d4-ad51-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"} | | | | | | "bcdDevice" = 0 | | | | | | "USBSpeed" = 3 | | | | | | "idProduct" = 4097 | | | | | | "bConfigurationValue" = 1 | | | | | | "bInterfaceSubClass" = 255 | | | | | | "locationID" = 487653376 | | | | | | "IOGeneralInterest" = "IOCommand is not serializable" | | | | | | "IOClassNameOverride" = "IOUSBInterface" | | | | | | "AppleUSBAlternateServiceRegistryID" = 4294969544 | | | | | | "idVendor" = 4817 | | | | | | "bInterfaceProtocol" = 255 | | | | | | "bAlternateSetting" = 0 | | | | | | "bInterfaceNumber" = 1 | | | | | | "bInterfaceClass" = 255 | | | | | | } | | | | | | | | | | | +-o IOUSBHostInterface@2 | | | | | { | | | | | "USBPortType" = 0 | | | | | "IOCFPlugInTypes" = {"2d9786c6-9ef3-11d4-ad51-000a27052861"="IOUSBFamily.kext/Contents/PlugIns/IOUSBLib.bundle"} | | | | | "bcdDevice" = 0 | | | | | "USBSpeed" = 3 | | | | | "idProduct" = 4097 | | | | | "bConfigurationValue" = 1 | | | | | "bInterfaceSubClass" = 255 | | | | | "locationID" = 487653376 | | | | | "IOGeneralInterest" = "IOCommand is not serializable" | | | | | "IOClassNameOverride" = "IOUSBInterface" | | | | | "AppleUSBAlternateServiceRegistryID" = 4294969546 | | | | | "idVendor" = 4817 | | | | | "bInterfaceProtocol" = 255 | | | | | "bAlternateSetting" = 0 | | | | | "bInterfaceNumber" = 2 | | | | | "bInterfaceClass" = 255 | | | | | } | | | | |
So far, the Info.plist looks like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>15C27b</string>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleIdentifier</key>
<string>name.fedevych.GenericWWAN</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>GenericWWAN</string>
<key>CFBundlePackageType</key>
<string>KEXT</string>
<key>CFBundleShortVersionString</key>
<string>99.0.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>99.0.0</string>
<key>IOKitPersonalities</key>
<dict>
<key>HUAWEI_0x12d11001_Control</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.usb.cdc.acm</string>
<key>IOClass</key>
<string>AppleUSBACMControl</string>
<key>IOProviderClass</key>
<string>IOUSBHostInterface</string>
<key>idVendor</key>
<integer>4817</integer>
<key>idProduct</key>
<integer>4097</integer>
<key>bcdDevice</key>
<integer>0</integer>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>IOMatchCategory</key>
<string>com.apple.driver.AppleUSBACMControl</string>
</dict>
<key>HUAWEI_0x12d11001_Data</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.usb.cdc.acm</string>
<key>IOClass</key>
<string>AppleUSBACMData</string>
<key>IOProviderClass</key>
<string>IOUSBHostInterface</string>
<key>idVendor</key>
<integer>4817</integer>
<key>idProduct</key>
<integer>4097</integer>
<key>bcdDevice</key>
<integer>0</integer>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>bConfigurationValue</key>
<integer>1</integer>
</dict>
</dict>
<key>OSBundleLibraries</key>
<dict/>
</dict>
</plist>
最佳答案
所以,我不能保证你的项目会成功——我不知道你的调制解调器是否能与标准的 CDC 驱动程序一起工作。但我希望能帮助你找出答案。这真的有5个部分:
IOProviderClass: IOUSBInterface
idVendor: 0x12d1
idProduct: 0x1001
bInterfaceNumber: 0
bConfigurationValue: 1
ioreg -c IOUSBInterface
进行确认在插入设备时在终端中。这将以 OSX 的格式显示系统中所有 USB 接口(interface)的属性,您应该能够为您的调制解调器选择一个并确保这些属性与我的属性匹配给定的。
/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBCDCACMControl.kext
/System/Library/Extensions/IOUSBFamily.kext/Contents/PlugIns/AppleUSBCDCACMData.kext
IOMatchCategory
,例如相关的驱动程序包 ID。
<key>IOKitPersonalities</key>
<dict>
<key>AppleUSBCDCACMControl</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleUSBCDCACMControl</string>
<key>IOClass</key>
<string>AppleUSBCDCACMControl</string>
<key>IOProviderClass</key>
<string>IOUSBInterface</string>
<key>idVendor</key>
<integer>4817</integer>
<key>idProduct</key>
<integer>4097</integer>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>bConfigurationValue</key>
<integer>1</integer>
<key>IOMatchCategory</key>
<string>com.apple.driver.AppleUSBCDCACMControl</string>
</dict>
<key>AppleUSBCDCACMData</key>
<dict>
<key>CFBundleIdentifier</key>
<string>com.apple.driver.AppleUSBCDCACMData</string>
<key>IOClass</key>
<string>AppleUSBCDCACMData</string>
<key>IOProviderClass</key>
<string>IOUSBInterface</string>
<key>IOUserClientClass</key>
<string>AppleUSBCDCACMDataUserClient</string>
<key>InputBuffers</key>
<integer>8</integer>
<key>OutputBuffers</key>
<integer>16</integer>
<key>idVendor</key>
<integer>4817</integer>
<key>idProduct</key>
<integer>4097</integer>
<key>bInterfaceNumber</key>
<integer>0</integer>
<key>bConfigurationValue</key>
<integer>1</integer>
</dict>
</dict>
OSBundleLibraries
属性(property)。 CFBundleExecutable
属性(property)。 /System/Library/Extensions
中,则可以未签名。 ,并且在 10.10 上,如果内核选项
kext-dev-mode=1
,它们可以是无符号的已设置。您需要在 Apple 的 Developer Id 证书中添加一个特殊的 kext 签名才能对 kexts 进行签名。
kextutil
从这些位置之外手动加载它们。 .
kextstat
中列出的输出。 Codeless kexts 没有二进制文件,因此不会出现。但是,如果 I/O Kit Personality 的 CFBundleIdentifier 中指定的包含驱动程序代码的捆绑包处于事件状态,它将显示出来。
ioreg
命令行工具或 GUI 工具 IORegistryExplorer(来自 Apple 的硬件 I/O 工具包)或 IOJones(开源)。
关于macos - 强制使用特定驱动程序的无代码 kext (CDC-ACM),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33474993/
完整的错误消息是: 403 urn:acme:error:unauthorized: Account creation on ACMEv1 isdisabled. Please upgrade you
我们正在使用 EKS 和 Nginx-ingress(NLB)。我正在尝试在 NLB 的 AWS-load-balancer-SSL-cert 注释中配置多个 AWS ACM 证书。但没有运气。如果可
acme DNSapi acme DNSapi的作用是在申请证书时使用dns交易,acme可以通过dnsapi在对应的dns管理平台提交对应的dns记录。玩过证书的朋友都知道,证书申请时有三种验证方
我的应用程序运行在EKS上,该服务器正在使用istio-ingressgateway服务为端口15020、15032、15031、15029、15030、15443的负载均衡器。我想在此ELB上终止S
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
下面是我从链接 http://progspedia.blogspot.com/2011/05/679-dropping-balls.html#comment-form 复制的代码 #include i
我正在尝试使用 Swing 和 ACM 交互器制作一个非常简单的程序。它直接取自类讲义,但在我的电脑上不起作用。当我运行它时,它可以正常运行大约半秒钟,然后短暂闪烁、重新加载,然后所有按钮和文本字段功
我正在尝试使用 Swing 和 ACM 交互器制作一个非常简单的程序。它直接取自类讲义,但在我的电脑上不起作用。当我运行它时,它可以正常运行大约半秒钟,然后短暂闪烁、重新加载,然后所有按钮和文本字段功
我是Java新手!!! :) 现在,我只是对 ACM 库的对象及其函数感到困惑。我想创建一个颜色为绿色的 GRect。所以我可能会这样做: GRect rect = new GRect(0, 0, 5
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: Can you answer this 2009 ACM International Collegiate Prog
我被选中参加 ACM ICPC 区域决赛。但是我只剩下 1 周的准备时间了。我已经为此准备了 1 年,但由于我的考试,我在过去两周不能花太多时间在编程上。 有人可以发布一些链接吗,我可以在其中找到涵盖
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 8 年前。 Improve this qu
我正在尝试找出如何解决 ACM ICPC final 之一的问题(从 2012 年开始,所以我猜是最近的)。它称为 Fibonacci Words,描述为 here在问题 D 下。 我认为我非常接近,
我正在尝试在 Eclipse 中编写一个 java 应用程序。 我真的很想使用 ACM.Program 包,但是,我的 Eclipse 副本没有安装它! 我在网上找遍了,找不到一个 ACM 包的下载。
在使用 vi 15 年的大部分时间后,我在使用 Go 时一时兴起尝试了 Rob Pike 的 Acme。我真的很喜欢它的小巧轻便。现代 unix 风格的东西在 Acme 中表现不佳,而 Ruby 开发
您好! 我在查找出现此错误的原因时遇到了问题。尝试用谷歌搜索它。这似乎是从容器中查找 dns 的问题。 traefik 日志错误: time="2020-01-30T12:12:12+01:00" l
import java.io.*; import java.util.*; public class Main { public static void main(String[] args) thr
我目前正在将我的硕士论文放入 latex ACM 模板中,我有一个大表,我希望其中不同的行具有不同的颜色。现在我知道这通常是使用以下方法完成的: \rowcolor{Yellow} 现在我使用 ACM
我是这个网站的新手,对 Java 也比较陌生。 我创建了一个 Java 应用程序,它使用 ACM 图形包并扩展了 GraphicsProgram 。我现在希望能够将图形输出窗口的内容转换为图像文件,例
我目前正在阅读 Eric Robert 的Java 艺术与科学,其中使用了 ACM Java 库。其中一项练习要求学生构建 Breakout 的克隆版本。我对对象的动画有疑问,所以请看一下这段代码,如
我是一名优秀的程序员,十分优秀!