Android中USB打印机无法创建/dev/usb/lp0节点
2017-02-10 08:47
1036 查看
一、问题及问题分析
Android设备接入USB打印机,在驱动正常的情况下,却无法创建/dev/usb/lp0节点。何以确定驱动是正常的?
接上USB打印机,在/sys/class/usbmisc/有打印机的信息
执行mdev -s命令,就会生成/dev/usb/lp0节点
接下来,通过echo命令往/dev/usb/lp0输出字符,可以打印
echo "test" > /dev/usb/lp0
至此可以确定,问题不在驱动。
问题仅仅是lp0节点没有创建。
谁负责lp0节点的创建呢?
init进程:
system/core/init/devices.cpp static void handle_generic_device_event(struct uevent uevent) { if (!strncmp(uevent->subsystem, "usb", 3)) { if (!strcmp(uevent->subsystem, "usb")) { .... } else { / ignore other USB events */ return; } } }
USB设备属于热插拔设备,设备的插入/移除都会产生相应的事件并上报。但上述代码在检测到uevent->subsystem不是"usb"后就直接退出了,,,而通过前述访问sysfs我们知道,USB打印的uevent->subsystem是"usbmisc"。
二、解决问题
现在我们找到了问题的原因,解决起来就容易了:
相关文章推荐
- Android无法自动创建USB打印机节点/dev/usb/lp0
- Android无法自动创建USB打印机节点/dev/usb/lp0【转】
- Android无法自动创建以usb开头的节点
- Android audio recorder无法创建:Error creating AudioRecord instance: initialization check failed.
- USB打印电缆引起的打印机无法识别
- 解决部分Android设备(支持OTG)无法设别USB设备
- Ubuntu下创建android项目 无法生成R.java文件
- Android中Dos下创建AVD,解决点击OK无法创建AVD的问题
- 解决了android usb driver无法找到硬件信息的问题
- android创建application时无法点击finish
- android 创建系统级的Dialog时,无法使用Home关闭的问题
- 创建android项目无法生成R文件
- 关于android R.java文件无法创建的问题
- Mac系统装android开发环境无法创建SD卡解决方案
- Android的USB打印机部署
- android用usb无法连接ubuntu13.10(vmware中安装ubuntu) lsusb找不到手机
- Android SDK Manager在添加Platforms和其他Packages时提示无法在相应目录创建文件夹的解决办法!
- 无法创建android14虚拟机
- android中usb设备驱动不能自动创建设备节点
- 解决Android设备插入打印机无法启动