由于设备节点都是在驱动里面注册生成的于是查看串口驱动。根据log信息找到了系统串口驱动\kernel\drivers\tty\serial\8250\8250_dw.c中的注册函数dw8250_probe。该函数中找到serial8250_register_8250_port,这个是注册设备节点的函数。然后查看serial8250_register_8250_port函数定义(kernel\drivers\tty\serial\8250\8250_core.c),找到了后续注册节点的函数uart_add_one_port,继续查看该函数(位于kernel\drivers\tty\serial\serial_core.c)定义,该函数又是调用tty_port_register_device_attr进行注册的,继续跟踪该函数(kernel\drivers\tty\tty_port.c),该函数又是调用了tty_register_device_attr(位于kernel\drivers\tty\tty_io.c)进行注册。添加log分析得知串口节点的名字获取是由tty_line_name产生的。于是查看tty_line_name的实现:
static ssize_t tty_line_name(struct tty_driver *driver, int index, char *p)
{
if (driver->flags &TTY_DRIVER_UNNUMBERED_NODE)
return sprintf(p, "%s", driver->name)
else
return sprintf(p, "%s%d", driver->name,
index + driver->name_base)
}
}
通过打印得知串口节点设备名称是由驱动名称 driver->name和串口序号index 组成的,于是添加判断 driver->name是否为"ttyS",index是否为4,如果是就替换。
1.首先在电脑中安装kies软件,安装kies软件时手机与电脑不能连接。2.手机设定-一般-关于设备-点击内部版本号,手机会提示点击次数(7次左右),然后返回到设定-一般-开发者选项-USB调试-取消
3.如需使用第三方pc套件建议您把usb调试后面打勾。
4.连接电脑成功后,下拉屏幕顶帘— 已连接作为外部存储设备:媒体设备(MTP)/摄像头(PTP)— 将“媒体设备(MTP)”选项进行勾选尝。
5.若不能连接,请检查电脑中Windows Media Player是否安装,检查电脑中Windows Media Player版本是否在11以上,若版本较低,建议下载最新版本软件。
6.断开手机与电脑的连接,重新打开Kies软件
7.更换电脑USB接口,台式机建议用主机后面的USB端口。
8.关闭电脑中的杀毒软件或防火墙尝试。
9.有可能跟电脑系统兼容程序有关,也可更换其他电脑尝试连接。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)