首页 > 其他分享 >修改串口节点名称

修改串口节点名称

时间:2023-10-18 17:36:01浏览次数:28  
标签:index tty name drivers driver 修改 串口 root 节点

需求:3368的老主板更换为3568的新主板,为了app兼容两款主板,要求串口号一致。有个ttyS0的口,需要对应改为ttySWK0

  跟踪驱动代码:

dw8250_probe(drivers\tty\serial\8250\8250_dw.c)
        -->serial8250_register_8250_port(drivers\tty\serial\8250\8250_core.c)
            -->uart_add_one_port(drivers\tty\serial\serial_core.c)
                -->tty_port_register_device_attr_serdev(drivers\tty\tty_port.c)
                    -->tty_register_device_attr
                        -->tty_line_name(drivers\tty\tty_io.c)
tty_line_name函数:
1 static ssize_t tty_line_name(struct tty_driver *driver, int index, char *p)
2         {
3             if (driver->flags & TTY_DRIVER_UNNUMBERED_NODE)
4                 return sprintf(p, "%s", driver->name);
5             else
6                 return sprintf(p, "%s%d", driver->name,
7                            index + driver->name_base);
8                 
9         }

可知ttySx串口节点设备名称是由驱动名称 driver->name和串口序号index 组成的。

这里做一个判断,index是0,串口节点设备名称则为ttySWK0即可满足需求:

 1 diff --git a/drivers/tty/tty_io.c b/drivers/tty/tty_io.c
 2         index b6f42d0ee626..fb6750ad356d 100644
 3         --- a/drivers/tty/tty_io.c
 4         +++ b/drivers/tty/tty_io.c
 5         @@ -1135,9 +1135,14 @@ static ssize_t tty_line_name(struct tty_driver *driver, int index, char *p)
 6          {
 7                 if (driver->flags & TTY_DRIVER_UNNUMBERED_NODE)
 8                         return sprintf(p, "%s", driver->name);
 9         -       else
10         +       else{
11         +               if(index == 0){
12         +                       return sprintf(p, "ttySWK%d",index);
13         +               }else
14                         return sprintf(p, "%s%d", driver->name,
15                                        index + driver->name_base);
16         +       }
17         +               
18          }

 编译好重新烧录,ttyS改为ttySWK0:

 设置串口权限:

/device/rockchip/common
diff --git a/ueventd.rockchip.rc b/ueventd.rockchip.rc
index f16524a..9408538 100755
--- a/ueventd.rockchip.rc
+++ b/ueventd.rockchip.rc
@@ -75,6 +75,7 @@
 /dev/ttyS7                0666   root  root
 /dev/ttyS8                0666   root  root
 /dev/ttyS9                0666   root  root
+/dev/ttySWK0              0666   root  root

 

参考:

https://www.jianshu.com/p/c345576b94a1?ivk_sa=1024320u
https://www.ngui.cc/article/show-884649.html?action=onClick

标签:index,tty,name,drivers,driver,修改,串口,root,节点
From: https://www.cnblogs.com/wmc245376374/p/17772922.html

相关文章

  • 初学Bokeh:修改图形符号属性【9】跬步
    初学Bokeh:修改图形符号属性【9】跬步例如,绘制圆形的函数circle()允许定义圆的颜色、直径等多种属性:fill_color:填充颜色;fill_alpha:填充颜色的透明度(0到1之间的任何值);line_color:轮廓线条的填充颜色;size:圆的尺寸(以屏幕单位或数据单位表示);legend_label:图例;在前面的示例......
  • Django修改数据库数据的两种方式
    部分代码展示:fromdjango.shortcutsimportrender,HttpResponse,redirectfromapp01importmodelsdefedit_user(request):#获取url问好后面的参数edit_id=request.GET.get('user_id')#查询当前用户想要编写的数据对象edit_obj=models.User.ob......
  • 用system账户修改过Oracle密码期限,改成unlimited 后来新建的账户的密码期限也是unlimi
    https://www.cnblogs.com/hooly/p/14171716.htmlhttps://blog.csdn.net/wang13145/article/details/106660266用system账户修改过Oracle密码期限,改成unlimited后来新建的账户的密码期限也是unlimited吗?......
  • 节点安装Java 1.8
    下载jdk-8u361-linux-x64.tar.gzhttps://www.oracle.com/java/technologies/downloads上传jdk-8u361-linux-x64.tar.gz到node1以下命令都是在node1上执行解压tar-zxvfjdk-8u361-linux-x64.tar.gz-C/export/server/配置软连接(快捷方式)ln-s/export/server/jdk1.8......
  • onnx子图修改与动态静态转化
    子图修改importonnximportonnx_graphsurgeonasgsimportonnxruntimeasortimportnumpyasnpdefcut_subgraph(origin_graph_path,input_node_name_list,output_node_name_list,sub_graph_path):graph=gs.import_onnx(onnx.load(origin_graph_path))t......
  • kubeadm 加入work 节点集群时报 http://localhost:10248/healthz处理方法
    现象:[kubelet-check]TheHTTPcallequalto'curl-sSLhttp://localhost:10248/healthz'failedwitherror:Get"http://localhost:10248/healthz":dialtcp127.0.0.1:10248:connect:connectionrefused.[kubelet-check]Itseemslikethekube......
  • 修改input元素placeholder字体颜色
    1/*webkit*/2::-webkit-input-placeholder{3color:#ffffff;4}5/*MozillaFirefox4to18*/6:-moz-placeholder{7color:#ffffff;8}9/*MozillaFirefox19+*/10::-moz-placeholder{11color:#ffffff;12}13/*Interne......
  • Base虚拟机克隆集群节点,并固定IP与免密互通
    克隆Base虚拟机先把Base关机,然后右键-管理-克隆选择完整克隆克隆名字这里叫node1重复步骤,克隆node2/node3为了分类,创建了一个大数据集群文件夹以下命令全是root权限执行配置固定IP#修改主机名hostnamectlset-hostnamenode1#修改IPvim/etc/sysconfig/ne......
  • Leetcode24. 两两交换链表中的节点
    题目描述给你一个链表,两两交换其中相邻的节点,并返回交换后链表的头节点。你必须在不修改节点内部的值的情况下完成本题(即,只能进行节点交换)。示例提交的代码classSolution{ListNodenextNode;publicListNodeswapPairs(ListNodehead){//特殊化处理......
  • 代码随想训练营第四天(Python)| 24. 两两交换链表中的节点、19.删除链表的倒数第N个节点
    两两交换链表中的节点关键点:涉及到头节点变动的都使用虚拟节点。画图找出交换节点指向的顺序和退出循环的条件。1、迭代法classSolution:defswapPairs(self,head:Optional[ListNode])->Optional[ListNode]:dummy_node=ListNode(next=head)cur=......