modem_hotplug 脚本解析

2024-01-20 09:58
文章标签 解析 脚本 modem hotplug

本文主要是介绍modem_hotplug 脚本解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

下面两个文件在3G上网卡插上后实现USB转串口模式

/etc >: cat mdev.conf 
sd[a-h]*[0-9]     0:0 0660        *(/usr/sbin/hotplug /media/usb)
sd[a-h]           0:0 0660        *(/usr/sbin/hotplug /media/usb)
ub[a-h]*[0-9]     0:0 0660        *(/usr/sbin/hotplug /media/usb)
ub[a-h]           0:0 0660        *(/usr/sbin/hotplug /media/usb)
mmcblk[0-9]p[0-9] 0:0 0660        @(/bin/mount /dev/$MDEV /media/mmc)
mmcblk[0-9]       0:0 0660        $(/bin/umount /media/mmc)
sg*[0-9]          0:0 0660        *(/usr/sbin/modem_hotplug > /logs/modem_hotplug_sg.log 2>&1)
ttyUSB[0-9]       0:0 0660        *(/usr/sbin/modem_hotplug > /logs/modem_hotplug_tty.log 2>&1)

/etc >: 

~ >: cat usr/sbin/modem_hotplug 

#!/bin/sh
# FILE: /apps/tools/tty_Symlic
# Copyright (C) 2013 GuoWenxue <guowenxue@gmail.com>
# This shell scripts used to auto create symbolic link(aliase device name /dev/ttyGSM*) 
# for all the USB serial converter device(/dev/ttyUSB*), called by /etc/mdev.conf


source /etc/profile 
DEVID_MF626_MODEM=19d2:0031
DEVID_MF626_CDROM=19d2:2000


MODEM_PREFIX=/dev/ttyGSM
LOCKFILE=/tmp/.symlic.lock


set -x




switch_cdrom_modem()
{
   USB_ID=`lsusb | awk -F "ID" '{print $2}'`
   for id in $USB_ID
   do 
      if [ $DEVID_MF626_CDROM == $id ] ; then
          usb_modeswitch -c /etc/ppp/zte_mf626.conf
      fi    
   done   
}


find_symlink_index()
{
   index=-1
   prefix=$1
   symlinks=`ls ${prefix}*`
   
   for i in $symlinks
   do 
      #i=`echo $i | awk -F $prefix '{print $2}'`
      i=${i##$prefix}
      if [ $i > $index ] ; then 
         index=$i 
      fi
   done   
   
   index=`expr $index + 1`
   return $index
}


create_symlic()                                                                       
{                                                                                      
   #Check if this /dev/ttyUSB? already linked then exist 
   ls -l ${MODEM_PREFIX}* | grep $MDEV && return; #插入USB转串口的设备时如果发现ID不对就会退出。
   
   set -x
   syspath=`echo $DEVPATH | awk -F "/" '{ printf("/sys/%s/%s/%s/%s/%s/%s", $2,$3,$4,$5,$6,$7); }'` #syspath=/sys/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1
   echo "Check 3G USB Modem ID in $syspath "  
   devID=`cat ${syspath}/idVendor`:`cat ${syspath}/idProduct`                                  
   
   if [ $devID == $DEVID_MF626_MODEM ] ; then
      find_symlink_index ${MODEM_PREFIX}
      index=$?
      echo "Create symbolic link: ln -s $MDEV ${MODEM_PREFIX}${index}"
      ln -s $MDEV ${MODEM_PREFIX}${index}
   fi
}                                            
                                             
remove_symlic()                              
{                                                            
   symlic=`ls -l ${MODEM_PREFIX}* | grep $MDEV | awk '{print $9}'`
                                             
   if [ ! -z "$symlic" ] ; then                    
      echo "Remove $symlic -> $MDEV" 
      rm -f $symlic                                          
      rm -f /tmp/cdrom.log /tmp/tty.log
   fi                                                        
}  


{
  flock 300    #锁住该脚本
  
  case $ACTION in
      remove)
          if [ "${MDEV:0:6}" == "ttyUSB" ] ; then  
             remove_symlic
          fi   
          ;;
     
      add)
          if [ "${MDEV:0:2}" == "sg" ] ; then
              switch_cdrom_modem
              export > /tmp/cdrom.log
          elif [ "${MDEV:0:6}" == "ttyUSB" ] ; then 
              create_symlic
              export > /tmp/tty.log
          fi    
          ;;
  esac     
  
} 300<>$LOCKFILE


~ >: 

插上后会在logs、tmp目录下生成以下一些文件:

~ >: usb 1-1.1: new full speed USB device number 4 using s3c2410-ohci
usb 1-1.1: New USB device found, idVendor=19d2, idProduct=2000
usb 1-1.1: New USB device strings: Mfr=2, Product=1, SerialNumber=3
usb 1-1.1: Product: ZTE CDMA Technologies MSM
usb 1-1.1: Manufacturer: ZTE,Incorporated
usb 1-1.1: SerialNumber: 1234567890ABCDEF
scsi1 : usb-storage 1-1.1:1.0
scsi 1:0:0:0: CD-ROM            ZTE      USB SCSI CD-ROM  2.31 PQ: 0 ANSI: 2
scsi 1:0:0:0: Attached scsi generic sg0 type 5
usb 1-1.1: usbfs: process 1056 (usb_modeswitch) did not claim interface 0 before use
usb 1-1.1: USB disconnect, device number 4
usb 1-1.1: new full speed USB device number 5 using s3c2410-ohci
usb 1-1.1: New USB device found, idVendor=19d2, idProduct=0031
usb 1-1.1: New USB device strings: Mfr=2, Product=1, SerialNumber=3
usb 1-1.1: Product: ZTE CDMA Technologies MSM
usb 1-1.1: Manufacturer: ZTE,Incorporated
usb 1-1.1: SerialNumber: 1234567890ABCDEF
option 1-1.1:1.0: GSM modem (1-port) converter detected
usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB0
option 1-1.1:1.1: GSM modem (1-port) converter detected
usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB1
scsi2 : usb-storage 1-1.1:1.2
option 1-1.1:1.3: GSM modem (1-port) converter detected
usb 1-1.1: GSM modem (1-port) converter now attached to ttyUSB2
scsi 2:0:0:0: Direct-Access     ZTE      MMC Storage      2.31 PQ: 0 ANSI: 2
sd 2:0:0:0: Attached scsi generic sg0 type 0
sd 2:0:0:0: [sda] Attached SCSI removable disk


~ >: 
~ >: 
~ >: ls tmp/
cdrom.log     dropbear.pid  messages      syslogd.pid   utmp
crond.pid     logs          stat          tty.log
~ >: cat tmp/cdrom.log 
export ACTION='add'
export DEVNAME='sg0'
export DEVPATH='/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1/1-1.1:1.0/host1/target1:0:0/1:0:0:0/scsi_generic/sg0'
export EDITOR='/bin/vi'
export HISTFILESIZE='500'
export HISTSIZE='500'
export HOME='/'
export HOSTNAME='WirelessRouter'
export INPUTRC='/etc/inputrc'
export LD_LIBRARY_PATH='/lib:/usr/lib:/apps/lib'
export LOGNAME='root'
export MAJOR='21'
export MDEV='sg0'
export MINOR='0'
export PAGER='/bin/more '
export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/apps/tools'
export PS1='\w >: '
export PWD='/dev'
export SEQNUM='516'
export SUBSYSTEM='scsi_generic'
export USER='root'
export network_cfg_dir='/apps/etc/network'
export ACTION='add'
export DEVNAME='sg0'
export DEVPATH='/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1/1-1.1:1.2/host2/target2:0:0/2:0:0:0/scsi_generic/sg0'
export EDITOR='/bin/vi'
export HISTFILESIZE='500'
export HISTSIZE='500'
export HOME='/'
export HOSTNAME='WirelessRouter'
export INPUTRC='/etc/inputrc'
export LD_LIBRARY_PATH='/lib:/usr/lib:/apps/lib'
export LOGNAME='root'
export MAJOR='21'
export MDEV='sg0'
export MINOR='0'
export PAGER='/bin/more '
export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/apps/tools'
export PS1='\w >: '
export PWD='/dev'
export SEQNUM='544'
export SUBSYSTEM='scsi_generic'
export USER='root'
export network_cfg_dir='/apps/etc/network'
~ >: cat tmp/tty.log 
export ACTION='add'
export DEVPATH='/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1/1-1.1:1.0/ttyUSB0'
export EDITOR='/bin/vi'
export HISTFILESIZE='500'
export HISTSIZE='500'
export HOME='/'
export HOSTNAME='WirelessRouter'
export INPUTRC='/etc/inputrc'
export LD_LIBRARY_PATH='/lib:/usr/lib:/apps/lib'
export LOGNAME='root'
export MDEV='ttyUSB0'
export PAGER='/bin/more '
export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/apps/tools'
export PS1='\w >: '
export PWD='/dev'
export SEQNUM='528'
export SUBSYSTEM='usb-serial'
export USER='root'
export network_cfg_dir='/apps/etc/network'
export ACTION='add'
export DEVPATH='/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1/1-1.1:1.1/ttyUSB1'
export EDITOR='/bin/vi'
export HISTFILESIZE='500'
export HISTSIZE='500'
export HOME='/'
export HOSTNAME='WirelessRouter'
export INPUTRC='/etc/inputrc'
export LD_LIBRARY_PATH='/lib:/usr/lib:/apps/lib'
export LOGNAME='root'
export MDEV='ttyUSB1'
export PAGER='/bin/more '
export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/apps/tools'
export PS1='\w >: '
export PWD='/dev'
export SEQNUM='531'
export SUBSYSTEM='usb-serial'
export USER='root'
export network_cfg_dir='/apps/etc/network'
export ACTION='add'
export DEVNAME='ttyUSB1'
export DEVPATH='/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1/1-1.1:1.1/ttyUSB1/tty/ttyUSB1'
export EDITOR='/bin/vi'
export HISTFILESIZE='500'
export HISTSIZE='500'
export HOME='/'
export HOSTNAME='WirelessRouter'
export INPUTRC='/etc/inputrc'
export LD_LIBRARY_PATH='/lib:/usr/lib:/apps/lib'
export LOGNAME='root'
export MAJOR='188'
export MDEV='ttyUSB1'
export MINOR='1'
export PAGER='/bin/more '
export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/apps/tools'
export PS1='\w >: '
export PWD='/dev'
export SEQNUM='532'
export SUBSYSTEM='tty'
export USER='root'
export network_cfg_dir='/apps/etc/network'
export ACTION='add'
export DEVNAME='ttyUSB2'
export DEVPATH='/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1/1-1.1:1.3/ttyUSB2/tty/ttyUSB2'
export EDITOR='/bin/vi'
export HISTFILESIZE='500'
export HISTSIZE='500'
export HOME='/'
export HOSTNAME='WirelessRouter'
export INPUTRC='/etc/inputrc'
export LD_LIBRARY_PATH='/lib:/usr/lib:/apps/lib'
export LOGNAME='root'
export MAJOR='188'
export MDEV='ttyUSB2'
export MINOR='2'
export PAGER='/bin/more '
export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/apps/tools'
export PS1='\w >: '
export PWD='/dev'
export SEQNUM='538'
export SUBSYSTEM='tty'
export USER='root'
export network_cfg_dir='/apps/etc/network'
export ACTION='add'
export DEVNAME='ttyUSB0'
export DEVPATH='/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1/1-1.1:1.0/ttyUSB0/tty/ttyUSB0'
export EDITOR='/bin/vi'
export HISTFILESIZE='500'
export HISTSIZE='500'
export HOME='/'
export HOSTNAME='WirelessRouter'
export INPUTRC='/etc/inputrc'
export LD_LIBRARY_PATH='/lib:/usr/lib:/apps/lib'
export LOGNAME='root'
export MAJOR='188'
export MDEV='ttyUSB0'
export MINOR='0'
export PAGER='/bin/more '
export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/apps/tools'
export PS1='\w >: '
export PWD='/dev'
export SEQNUM='529'
export SUBSYSTEM='tty'
export USER='root'
export network_cfg_dir='/apps/etc/network'
export ACTION='add'
export DEVPATH='/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1/1-1.1:1.3/ttyUSB2'
export EDITOR='/bin/vi'
export HISTFILESIZE='500'
export HISTSIZE='500'
export HOME='/'
export HOSTNAME='WirelessRouter'
export INPUTRC='/etc/inputrc'
export LD_LIBRARY_PATH='/lib:/usr/lib:/apps/lib'
export LOGNAME='root'
export MDEV='ttyUSB2'
export PAGER='/bin/more '
export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/apps/tools'
export PS1='\w >: '
export PWD='/dev'
export SEQNUM='537'
export SUBSYSTEM='usb-serial'
export USER='root'
export network_cfg_dir='/apps/etc/network'
~ >: cat sys/
block/     class/     devices/   fs/        module/
bus/       dev/       firmware/  kernel/    power/
~ >: cat logs/
modem_hotplug_sg.log   nat.log
modem_hotplug_tty.log  start_apps.log
~ >: cat logs/modem_hotplug_sg.log 
+ flock 300
+ [ sg == sg ]
+ switch_cdrom_modem
+ lsusb
+ awk -F ID {print $2}
+ USB_ID= 1d6b:0001
 05e3:0606
 19d2:0031
+ [ 19d2:2000 == 1d6b:0001 ]
+ [ 19d2:2000 == 05e3:0606 ]
+ [ 19d2:2000 == 19d2:0031 ]
+ export
~ >: cat logs/modem_hotplug_tty.log 
+ flock 300
+ [ tt == sg ]
+ [ ttyUSB == ttyUSB ]
+ create_symlic
+ ls -l /dev/ttyGSM0 /dev/ttyGSM1 /dev/ttyGSM2
+ grep ttyUSB2
lrwxrwxrwx    1 root     root             7 Apr 26 11:07 /dev/ttyGSM2 -> ttyUSB2
+ return
+ export
"/sys/%s/%s/%s/%s/%s/%s", $2,$3,$4,$5,$6,$7); }
+ syspath=/sys/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1
+ echo Check 3G USB Modem ID in /sys/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1 
Check 3G USB Modem ID in /sys/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1 
+ cat /sys/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1/idVendor
+ cat /sys/devices/platform/s3c2410-ohci/usb1/1-1/1-1.1/idProduct
+ devID=19d2:0031
+ [ 19d2:0031 == 19d2:0031 ]
+ find_symlink_index /dev/ttyGSM
+ index=-1
+ prefix=/dev/ttyGSM
+ ls /dev/ttyGSM0 /dev/ttyGSM1
+ symlinks=/dev/ttyGSM0
/dev/ttyGSM1
+ i=0
+ [ 0 ]
+ index=0
+ i=1
+ [ 1 ]
+ index=1
+ expr 1 + 1
+ index=2
+ return 2
+ index=2
+ echo Create symbolic link: ln -s ttyUSB2 /dev/ttyGSM2
Create symbolic link: ln -s ttyUSB2 /dev/ttyGSM2
+ ln -s ttyUSB2 /dev/ttyGSM2
+ export
~ >: 

这篇关于modem_hotplug 脚本解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/625619

相关文章

Linux中shell解析脚本的通配符、元字符、转义符说明

《Linux中shell解析脚本的通配符、元字符、转义符说明》:本文主要介绍shell通配符、元字符、转义符以及shell解析脚本的过程,通配符用于路径扩展,元字符用于多命令分割,转义符用于将特殊... 目录一、linux shell通配符(wildcard)二、shell元字符(特殊字符 Meta)三、s

Python脚本实现自动删除C盘临时文件夹

《Python脚本实现自动删除C盘临时文件夹》在日常使用电脑的过程中,临时文件夹往往会积累大量的无用数据,占用宝贵的磁盘空间,下面我们就来看看Python如何通过脚本实现自动删除C盘临时文件夹吧... 目录一、准备工作二、python脚本编写三、脚本解析四、运行脚本五、案例演示六、注意事项七、总结在日常使用

java脚本使用不同版本jdk的说明介绍

《java脚本使用不同版本jdk的说明介绍》本文介绍了在Java中执行JavaScript脚本的几种方式,包括使用ScriptEngine、Nashorn和GraalVM,ScriptEngine适用... 目录Java脚本使用不同版本jdk的说明1.使用ScriptEngine执行javascript2.

解决Cron定时任务中Pytest脚本无法发送邮件的问题

《解决Cron定时任务中Pytest脚本无法发送邮件的问题》文章探讨解决在Cron定时任务中运行Pytest脚本时邮件发送失败的问题,先优化环境变量,再检查Pytest邮件配置,接着配置文件确保SMT... 目录引言1. 环境变量优化:确保Cron任务可以正确执行解决方案:1.1. 创建一个脚本1.2. 修

python写个唤醒睡眠电脑的脚本

《python写个唤醒睡眠电脑的脚本》这篇文章主要为大家详细介绍了如何使用python写个唤醒睡眠电脑的脚本,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 环境:win10python3.12问题描述:怎么用python写个唤醒睡眠电脑的脚本?解决方案:1.唤醒处于睡眠状

使用Python实现批量访问URL并解析XML响应功能

《使用Python实现批量访问URL并解析XML响应功能》在现代Web开发和数据抓取中,批量访问URL并解析响应内容是一个常见的需求,本文将详细介绍如何使用Python实现批量访问URL并解析XML响... 目录引言1. 背景与需求2. 工具方法实现2.1 单URL访问与解析代码实现代码说明2.2 示例调用

SSID究竟是什么? WiFi网络名称及工作方式解析

《SSID究竟是什么?WiFi网络名称及工作方式解析》SID可以看作是无线网络的名称,类似于有线网络中的网络名称或者路由器的名称,在无线网络中,设备通过SSID来识别和连接到特定的无线网络... 当提到 Wi-Fi 网络时,就避不开「SSID」这个术语。简单来说,SSID 就是 Wi-Fi 网络的名称。比如

多模块的springboot项目发布指定模块的脚本方式

《多模块的springboot项目发布指定模块的脚本方式》该文章主要介绍了如何在多模块的SpringBoot项目中发布指定模块的脚本,作者原先的脚本会清理并编译所有模块,导致发布时间过长,通过简化脚本... 目录多模块的springboot项目发布指定模块的脚本1、不计成本地全部发布2、指定模块发布总结多模

shell脚本快速检查192.168.1网段ip是否在用的方法

《shell脚本快速检查192.168.1网段ip是否在用的方法》该Shell脚本通过并发ping命令检查192.168.1网段中哪些IP地址正在使用,脚本定义了网络段、超时时间和并行扫描数量,并使用... 目录脚本:检查 192.168.1 网段 IP 是否在用脚本说明使用方法示例输出优化建议总结检查 1

SpringCloud配置动态更新原理解析

《SpringCloud配置动态更新原理解析》在微服务架构的浩瀚星海中,服务配置的动态更新如同魔法一般,能够让应用在不重启的情况下,实时响应配置的变更,SpringCloud作为微服务架构中的佼佼者,... 目录一、SpringBoot、Cloud配置的读取二、SpringCloud配置动态刷新三、更新@R