Android: 4.4.4

一、问题分析

当把USB打印机插入Android设备后,在系统/dev目录下并没有打印机节点(/dev/usb/lp0)产生。

第一反应是查看打印机设备,接入装有Ubuntu的PC,正常:有/dev/usb/lp0

第二反应是查看打印机驱动信息:

[178931.515572] usb 1-1: new full-speed USB device number 40 using xhci_hcd

[178931.644906] usb 1-1: New USB device found, idVendor=0483, idProduct=5720

[178931.644909] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3

[178931.644911] usb 1-1: Product: SPRT Printer

[178931.644912] usb 1-1: Manufacturer: Spirit

[178931.644913] usb 1-1: SerialNumber: 11101800002

[178931.645918] usblp 1-1:1.0: usblp0: USB Bidirectional printer dev 40 if 0 alt 0 proto 2 vid 0x0483 pid 0x5720也正常。和PC机显示信息关键部分都一样。

驱动正常,问题在于系统无法创建节点。那么就手动创建一下!

二、问题初步解决

在嵌入式Linux系统下,可以通过mdev创建设备节点。mdev是通过扫描系统/sys/class/目录获取设备信息,进而在/dev/下创建节点。通过:

ls /sys/class/可以发现,系统中是有打印机设备的信息的:

/sys/class/usbmisc那么就可以执行下:

busybox mdev -s再次查看/dev/,惊喜的发现:/dev/usb/lp0,有了!

三、问题根本解决

经过以上探测,我们知道:

1、驱动正常

2、系统中有打印机设备信息

那么问题就是:系统无法自动为我们创建打印机节点/dev/usb/lp0

在Linux下, 跟热插拔相关的可以在/etc/init.d/rcS脚本中添加如下:

echo /system/bin/mdev > /proc/sys/kernel/hotplug

/system/bin/mdev -s但是,在Android中,跟设备节点创建相关的在文件:

system/core/init/devices.c

static void handle_generic_device_event(struct uevent *uevent)

{

if (!strncmp(uevent->subsystem, "usb", 3)) {

if (!strcmp(uevent->subsystem, "usb")) {

....

}

}

}通过在

devices.c文件中添加如下打印信息:

我们发现, USB打印机信息如下:

uevent->subsystem = "usbmisc"

uevent->device_name = "usb/lp0"而代码在找不到"usbmisc" 处理逻辑后直接return了。

至此,解决方案就出来了:

添加处理uevent->subsystem = "usbmisc"的代码:

编译, 烧写,重启,插入,Ok!

四、 测试

节点/dev/usb/lp0是有了,能不能用,还得测试呀,我们是用打印机,不是看着节点好玩。

通过echo命令往/dev/usb/lp0输出字符,可以打印:

echo "111" > /dev/usb/lp0

php dev usb lp0,Android无法自动创建USB打印机节点/dev/usb/lp0相关推荐

  1. Android无法自动创建USB打印机节点/dev/usb/lp0【转】

    本文转载自:http://blog.csdn.net/u013686019/article/details/50165059 [html]  view plain  copy Android: 4.4 ...

  2. 新字符设备驱动实验(自动分配设备号、自动创建应用层设备节点、新字符设备注册到内核的结构体)

    目录 自动分配和释放设备号 示例代码 新的字符设备注册到内核方法 字符设备结构体(前面的设备号也放进来) cdev_init结构体初始化函数 cdev_add 添加到linux内核 cdev_del内 ...

  3. linux mdev 命令,linux设备驱动----利用mdev(udev)自动创建设备文件节点

    1.mdev的使用方法和原理: mdev是busybox 自带的一个简化版的udev,适合于嵌入式的应用埸合.其具有使用简单的特点.它的作用,就是在系统启动和热插拔或动态加载驱动程序时,自动产生驱动程 ...

  4. qt on android 桌面鼠标事件,Qt on Android 不能自动创建Qt套件的问题的解决

    在按照<Qt on Android核心编程>在搭建Qt on Android开发环境的时,虽然完全按书上的做法做了好几遍,但是在Qt Creator配置Android的Qt套件时,看到Qt ...

  5. android自动创建桌面,Android应用启动后自动创建桌面快捷方式的实现方法

    Android的开发其实是比较灵活的,其实在安装了Android应用程序之后,会在桌面上自动创建快捷方式,接下来爱站技术频道小编将会介绍Android应用启动后自动创建桌面快捷方式的实现方法给大家,有 ...

  6. 如何在驱动代码中中/dev目录内自动创建

    在<linux /dev>文章中指出,一般驱动加载之后,需要根据申请到的字符设备号通过使用mknod命令将相对应使用到的字符驱动挂载到/dev目录内,这套方法使用起来非常麻烦,因为每次挂载 ...

  7. Android 每次插入U盘自动创建了不需要的文件夹

    Android 11 每次插入U盘都自动创建了很多文件夹 (Podcast Ringtones Music Alarm Notification Pictures Movies Download DC ...

  8. 基类和派生类写在一个文件中_BootISO:从 ISO 文件中创建一个可启动的 USB 设备...

    今天,我们将讨论名为 BootISO 的实用程序类似工具.它是一个简单的 bash 脚本,允许用户来从 ISO 文件中创建一个可启动的 USB 设备. -- Prakash Subramanian(作 ...

  9. BootISO:从 ISO 文件中创建一个可启动的 USB 设备

    为了安装操作系统,我们中的大多数人(包括我)经常从 ISO 文件中创建一个可启动的 USB 设备.为达到这个目的,在 Linux 中有很多自由可用的应用程序.甚至在过去我们写了几篇介绍这种实用程序的文 ...

  10. linux不自动创建sda1,linux下头挂载新硬盘(转)

    在Linux上添加新的硬盘 字体大小: 小 中 大 系统:Redhat AS3 UP3 硬盘:scsi 注意:# 表示是root用户执行的命令 [root@cncmail data1]# fdisk ...

最新文章

  1. C++ Primer 5th笔记(chap 19 特殊工具与技术)typeid运算符
  2. 计算若干数据的汉明距离总和
  3. jenkins重启 linux_Jenkins节点重启连接失败的解决方法
  4. 三十一、电子商务分析与服务推荐
  5. 22行代码AC,三种解法——例题3-6_环状序列(UVa-1584)
  6. skcket编程实例
  7. 基于springboot的社区核酸检测统计管理系统
  8. 【转载】MSDN上发现了一篇很好的WCF入门教程
  9. 洪雅中学成绩2021高考查询,洪雅中学2021年排名
  10. 得一微YS9083XT量产工具及方法FW190402
  11. 计算机键盘能直接接手机吗,手机变电脑!智能手机外接键盘和鼠标的3种方法...
  12. 椭圆函数与模函数(2012.10出版)(2013-01-16 09:34:57)
  13. php版微信公众号消息主动推送_php实现微信公众号主动推送消息
  14. 三角函数 弧度角度换算
  15. 2021,你值得看的华为/字节/腾讯/京东/网易/滴滴面经分享
  16. C语言中的while(y--)什么意思,while(x)什么意思
  17. python按文件后缀进行分类,解放生产力
  18. Spark RDD编程模型及算子介绍(二)
  19. CDISC的SDTMIG,3.2版翻译和学习2---第二章 SDTM基础
  20. 疫情之下:如何高效远程办公

热门文章

  1. multisim 10.0安装、破解、汉化
  2. java 经纬度距离_java根据经纬度计算距离
  3. 宝峰c1对讲机写频软件_宝峰写频软件-宝峰对讲机写频软件 附USB线驱动 7.01 官方版 - 河东下载站...
  4. 如何将 txt 文本文件保存为 html 文件
  5. 一款在线画图工具的使用(推荐)
  6. 万能密码 php,PHP万能密码
  7. 单片机无线语音遥控智能车
  8. 基于transformer的车辆识别
  9. 服务器lsass系统错误,Win7系统提示Lsass.exe系统错误的原因及解决
  10. Ipad投屏到windows工具推荐