您的位置:首页 > 其它

ubuntu上识别华为4G上网卡(随行wifi)USB模式

2017-03-08 19:21 2136 查看
  2017年03月16日16:55:32 更新
  后来发现,下面的方法是可以在直接启动ubuntu之后,第一次插入usb口的网卡可以被转换,但是之后不行,上面更新的内容属于补丁吧。
  最开始的情况是,插入usb网卡,进ubuntu发现无法识别,进win7,识别出来正常上网,然后重启,进ubuntu才能用。
  使用最下面的一开始的方法,可以跳过进win7的过程,直接开机ubuntu以后,插入网卡,会自动识别。
  但是这个时候如果网卡自己出问题或者因为wifi问题(手机和平板发现wifi突然不好使但是这边有线正常)需要重启的时候,wifi是可以重启了,但是这边一直处于mass storage mode,就是说如果台式机需要使用这个有线网,只能重启。
  经过一个下午的百度,尝试改写文件,最后发现了解决的方法。(Ubuntu 16.04.2 LTS,Huawei E5573s-856)
  改写以下两个文件:
sudo vim /etc/usb_modeswitch.conf
  在最后一行的下面加上
DefaultVendor= 0x12d1
DefaultProduct= 0x1f01

TargetVendor= 0x12d1
TargetProduct= 0x14db
HuaweiMode=1
DetechStorageOnly=0
  这两个序列号的来源是lsusb指令
Bus 001 Device 015: ID 12d1:1f01 Huawei Technologies Co., Ltd. E353/E3131 (Mass storage mode)
Bus 001 Device 016: ID 12d1:14db Huawei Technologies Co., Ltd. E353/E3131
  这两行记录是不同状态下的结果,需要的是下面的状态,所以default的内容是
12d1:1f01 ,目标要变成12d1:14db
  启动华为模式,储存模式为false,也就是0
  原文的解决方案是修改
sudo vim /lib/udev/rules.d/40-usb_modeswitch.rules
  添加内容
#Huawei
ATTR{idVendor}=="12d1", ATTR{idProduct}=="1f01", RUN+="usb_modeswitch '%b/%k'"
  这个开机的时候会有用,系统启动以后,貌似,不会再运行了。所以再加一句差不多的
#Huawei
ATTR{idVendor}=="12d1", ATTR{idProduct}=="1f01", RUN+="usb_modeswitch '%b/%k'"
#Huawei
ATTRS{idVendor}=="12d1", ATTRS{idProduct}=="1f01", RUN+="usb_modeswitch '%b/%k'"

  下面的那句就是ATTR后面加上S,两句话。
  最后运行一下
sudo usb_modeswitch -W
  我这里当时就生效,现在可以随便抽插这个usb接口也能识别了。

======================以下是原文===============================

  要解决这个问题,需要依靠一个叫做usb-modeswitch的软件。我用apt-get install显示已经安装,剩下的就是配置了。
  首先在lsusb中记住这个设备的id,比如我这里是
FTP_Q@cris-B150M-D3H:~$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 12d1:1f01 Huawei Technologies Co., Ltd. E353/E3131 (Mass storage mode)
Bus 001 Device 004: ID 18f8:0f99  
Bus 001 Device 003: ID 413c:2113 Dell Computer Corp. 
Bus 001 Device 002: ID 10c4:ea71 Cygnal Integrated Products, Inc. 
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

  然后
sudo vim /lib/udev/rules.d/40-usb_modeswitch.rules

  最后一行往上,加入
#Huawei
ATTR{idVendor}=="12d1", ATTR{idProduct}=="1f01", RUN+="usb_modeswitch '%b/%k'"

  保存,重启。然后现在不管怎么拔插网卡,重启网卡,ubuntu都能识别它了。

  本文解决方案已经说完了,博主啰嗦两句遇到的情况。
  因为实验室不给配宽带,只能自己买华为的上网卡设备,装一个北京电信的无限流量卡上网,以前在win平台用的挺好的,现在到了ubuntu平台之后发现一个问题。
  如果这个网卡启动以后,直接插在我的ubuntu系统里面,usb是无法识别出这个上网卡的,虽然lsusb能看到这个设备,但是他的方式是以mass storage存在的,也就是这个设备第一次连接在windows上一样,就像一个光盘,里面有驱动,安装以后,windows就不会把这个当做一个光盘,而是一个网卡了。可是那个里面的内容是win平台的驱动啊,我在ubuntu上根本用不了。
  一开始狂找驱动,结果人家不提供linux平台的驱动,没有这个下载口,但是偶然之间(因为我的电脑是双系统:win7+ubuntu),我发现在win7上启动以后,能够上网了,然后这个时候重启,赶紧进入ubuntu,这个时候网卡被识别出来了,lsusb指令也显示,这个usb设备后面没有跟mass storage字符了。
  但是这样用起来还是很不方便,因为每次我开机要先进win7,再重启到ubuntu,很麻烦,而且还有一个,如果我一旦不小心碰到了脆弱的usb口,这玩意儿接触不良,需要拔插设备重连,或者因为4G信号不好等原因我要重启这个设备,然后ubuntu把它当做光盘给我显示mass storage mode,又要注销计算机,进win7,重启,回ubuntu,真的麻烦。
  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: