OpenWRT与华为E367和TP-Link TL-WR1043ND

将3G调制解调器连接到无线路由器以形成与互联网相连的机器自组织网络的能力非常强大。我已经做过很多次了,以前也写过(例如,参见我的OpenWRT写入页面)但最近我又用现代硬件做了一次。在这里,我将使用TP-链路TL-WR1043ND无线路由器(此处售价约50美元)以及华为E367 3G UMTS/HSDPA调制解调器。其他无线路由器和调制解调器应该可以正常工作。该软件是打开WRT 10.03虽然我希望用自由WRT最终。我的写作主要关注提示符周围发生的事情,所以它主要是一个插入了注释的剪切粘贴终端会话。

TL-WR1043ND和华为367
路由器和调制解调器


第一步是用OpenWRT刷新固件。这个TL-WR1043ND的OpenWRT wiki页面详细介绍了这一点,对于任何其他硬件,您应该在OpenWRT wiki。如果您已经在TL-WR1043ND上安装了OpenWRT,并且希望将其清除并从头开始(就像我对这个写操作所做的那样),请看下面的方法:

根@巧克力:~#cd/tmp根@巧克力:/tmp#wgethttp://downloads.openwrt.org/mackare/10.03/ar71xx/openwrt-ar71xx-tl-wr1043nd-v1-squashfs-sysupgrade.bin连接downloads.openwrt.org(78.24.191.177:80)openwrt-ar71xx-tl-wr 100%|*******************| 2688k 00:00:00 ETA(预计到达时间)根@巧克力:/tmp#md5sum openwrt-ar71xx-tl-wr1043nd-v1-squashfs-sysupgrade.bin9927973ba5da65d0d52e255397452b87 openwrt-ar71xx-tl-wr1043nd-v1-南瓜-sysupgrade.bin根@巧克力:/tmp#mtd-r写入/tmp/openwrt-ar71xx-tl-wr1043nd-v1-squashfs-sysupgrade.bin固件正在解锁固件。。。正在将/tmp/openwrt-ar71xx-tl-wr1043nd-v1-squashfs-sysupgrade.bin写入固件。。。正在重新启动。。。

完成后,设备将自动重新启动。30秒后,尝试使用默认IPv4地址192.168.1.1连接到它。我已将WAN端口连接到Internet,并通过连接到路由器LAN1输入的本地网络连接到路由器。让我们配置OpenWRT,我将主机称为“choco”,并为其提供IPv4地址192.168.1.46。我还将设置一个好的root密码以禁用telnet,并添加一些SSH密钥以简化远程登录。

茉莉@拿铁:~$telnet 192.168.1.1正在尝试192.168.1.1。。。连接至192.168.1.1。转义符为“^]”。===重要============================使用“passwd”设置登录密码这将禁用telnet并启用SSH------------------------------------------BusyBox v1.15.3(2010-04-06 03:14:11 CEST)内置外壳(灰烬)输入“help”查看内置命令列表。_______                     ________        __|       |.-----.-----.-----.|  |  |  |.----.|  |_|   -   ||  _  |  -__|     ||  |  |  ||   _||   _||_______||   __|_____|__|__||________||__|  |____||__|W I R E L E S F R E D O M公司反击(10.03,r20728)--------------------------*三分之一的镜头卡卢亚在镜头玻璃中,卡卢亚层*三分之一的子弹打到了Bailey的底部,然后是Bailey,*1/3的人先喝伏特加,然后是伏特加。---------------------------------------------------root@OpenWrt:/#密码更改root用户的密码新密码:重新键入密码:root用户更改了root用户的密码root@OpenWrt:/#sed-i-e's/OpenWrt/choco/'/etc/config/systemroot@OpenWrt:/#sed-i-e’s/192.168.1.1/192.168.1.46/'/etc/config/networkroot@OpenWrt:/#cat>/etc/dropbear/authorized_keysssh-rsa AAAAB3NzaC1yc2。。。^D类根@OpenWrt:/#dropbearkey-y-f/etc/dropbear/dropbear_rsa_host_key公钥部分是:ssh-rsa AAAA。。。根@OpenWrt指纹:md5 45:fd:62。。。root@OpenWrt:/#

您可以在这里重新启动机器以从telnet切换到SSH,但我将在操作时安装一系列软件包。运行“opkg update”更新软件包列表,然后安装TL-WR1043ND的无线模块。

root@OpenWrt:/#opkg更新正在下载http://downloads.openwrt.org/mardare/10.03/ar71xx/packages/packages.gz。充气http://downloads.openwrt.org/mardare/10.03/ar71xx/packages/packages.gz。/var/opkg-lists/packages中可用软件包的更新列表。root@OpenWrt:/#opkg安装kmod-ath9k wpad-mini。。。配置iw。配置kmod-crypto-core。配置kmod-crypto-arc4。配置kmod-crypto-aes。配置无线工具。配置kmod-cfg80211。配置kmod-mac80211。正在配置kmod-ath。配置kmod-ath9k。配置crda。正在配置wpad-mini。root@OpenWrt:/#

接下来,我将安装调制解调器所需的一些软件包。

root@OpenWrt:/#opkg install comgt kmod-usb-serial kmod-usb2 kmod-usb-uhci kmod-wsb-ohci usb-modeswitch。。。配置kmod-nls-base。配置kmod-usb-core。正在配置聊天室。配置kmod-usb-ohci。正在配置kmod-usb2。配置comgt。正在配置usb-modeswitch。配置kmod-usb-serial。正在配置kmod usb uhci。root@OpenWrt:/#

现在,让我们重新启动机器,并尝试使其真正工作。

root@OpenWrt:/#同步root@OpenWrt:/#重新启动

使用SSH连接到路由器,不要忘记使用其新的IPv4地址!

众所周知,3G调制解调器不直接充当调制解调器。相反,他们经常模拟CD-ROM,为劣质操作系统安装设备驱动程序软件。幸运的是usb模式开关工具为我们“修复”硬件。我的华为E367启动时的USB供应商/产品ID为0x12d1:0x1446,您通常可以在/proc/bus/USB/devices中找到这一点。以下是我的设备上的输出:

根@巧克力:~#cat/proc/bus/usb/devices。。。T: 总线=01 Lev=01 Prnt=01端口=00 Cnt=01 Dev#=2 Spd=480 MxCh=0D: 版本=2.00 Cls=00(>ifc)Sub=00 Prot=00 MxPS=64#Cfgs=1P: 供应商=12d1 ProdID=1446版次=0.00S: 制造商=华为技术S: 产品=华为移动C: *#Ifs=2 Cfg#=1 Atr=c0 MxPwr=500mA一: *如果#=0 Alt=0#EP=2 Cls=08(存储)Sub=06 Prot=50驱动程序=(无)E: Ad=81(I)Atr=02(散装)MxPS=512 Ivl=0msE: Ad=01(O)Atr=02(散装)MxPS=512 Ivl=0ms一: *如果#=1 Alt=0#EP=2 Cls=08(存储)Sub=06 Prot=50 Driver=(无)E: Ad=02(O)Atr=02(散装)MxPS=512 Ivl=0msE: Ad=82(I)Atr=02(散装)MxPS=512 Ivl=0ms根@巧克力:~#

这意味着我必须找到此设备的usb-modeswitch配置。幸运的是,我在/etc/usb_modeswitch.d/12d1:1446(来自usb模式切换数据包装)。该文件有一个小问题,在“切换”后,它没有指定设备的正确USB供应商/产品ID。我的华为E367切换到12d1:1506,所以我将“1506”添加到“TargetProductList”列表中。以下是最终配置:

根@巧克力:~#cat>/etc/usb-modeswitch.conf启用日志记录=1默认供应商=0x12d1默认产品=0x1446目标供应商=0x12d1TargetProductList=“10011406140b,140c,1412141b,14ac,1506”检查成功=20消息内容=“55534243123456780000000000000011062000000100000000000000”根@巧克力:~#

现在,您应该能够运行usb_modeswitch来执行“切换”:

根@巧克力:~#usb_modeswitch正在查找目标设备。。。找不到目标模式或类中的设备正在查找默认设备。。。找到默认设备(1)正在总线001上访问设备002。。。使用端点0x01(out)和0x81(in)查询设备详细信息;驱动程序将被分离。。。正在查找活动驱动程序。。。找不到驱动程序。之前分离或从未连接SCSI查询数据(用于识别)-------------------------供应商字符串:华为模型字符串:海量存储修订字符串:2.31-------------------------USB描述数据(用于识别)-------------------------制造商:华为技术产品:华为移动序列号:未提供-------------------------正在设置与接口0的通信。。。正在尝试将消息发送到终结点0x01。。。好,消息已成功发送正在检查模式切换(最多20次,每秒一次)。。。正在等待原始设备消失。。。无法再访问原始设备。很好。正在搜索目标设备。。。正在搜索目标设备。。。正在搜索目标设备。。。正在搜索目标设备。。。正在搜索目标设备。。。找到正确的目标设备模式切换成功。再见。根@巧克力:~#

现在,/proc/bus/usb/devices文件将包含有关真实设备的信息:

根部@巧克力:~#cat/proc/bus/usb/devices。。。T: 总线=01 Lev=01 Prnt=01端口=00 Cnt=01 Dev#=3 Spd=480 MxCh=0D: 版本=2.00 Cls=ef(其他)Sub=02 Prot=01 MxPS=64#Cfgs=1P: 供应商=12d1 ProdID=1506版次=0.00S: 制造商=华为技术S: 产品=华为移动C: *#Ifs=7 Cfg#=1 Atr=c0 MxPwr=500mAA: 第一个If#=1 IfCount=2 Cls=02(comm.)Sub=00 Prot=00一: *如果#=0 Alt=0#EP=3 Cls=ff(供应商)Sub=01 Prot=01 Driver=(无)E: Ad=81(I)Atr=03(国际)MxPS=64 Ivl=2msE: Ad=82(I)Atr=02(散装)MxPS=512 Ivl=0msE: Ad=01(O)Atr=02(散装)MxPS=512 Ivl=4ms一: *如果#=1 Alt=0#EP=1 Cls=ff(供应商)Sub=01 Prot=09 Driver=(无)E: Ad=83(I)Atr=03(国际)MxPS=64 Ivl=2ms一: *如果#=2 Alt=0#EP=2 Cls=ff(供应商)Sub=01 Prot=08驾驶员=(无)E: Ad=84(I)Atr=02(散装)MxPS=512 Ivl=0msE: Ad=02(O)Atr=02(散装)MxPS=512 Ivl=4ms一: *如果#=3 Alt=0#EP=2 Cls=ff(供应商)Sub=01 Prot=03驱动程序=(无)E: Ad=85(I)Atr=02(散装)MxPS=512 Ivl=0msE: Ad=03(O)Atr=02(散装)MxPS=512 Ivl=4ms一: *如果#=4 Alt=0#EP=2 Cls=ff(供应商)Sub=01 Prot=02 Driver=(无)E: Ad=86(I)Atr=02(散装)MxPS=512 Ivl=0msE: Ad=04(O)Atr=02(散装)MxPS=512 Ivl=4ms一: *如果#=5 Alt=0#EP=2 Cls=08(存储)Sub=06 Prot=50驱动程序=(无)E: Ad=87(I)Atr=02(散装)MxPS=512 Ivl=0msE: Ad=05(O)Atr=02(散装)MxPS=512 Ivl=0ms一: *如果#=6 Alt=0#EP=2 Cls=08(存储)Sub=06 Prot=50驱动程序=(无)E: Ad=06(O)Atr=02(散装)MxPS=512 Ivl=0msE: Ad=88(I)Atr=02(散装)MxPS=512 Ivl=0ms根@巧克力:~#

让我们将该命令放在/etc/rc.local中,这样它将在每次启动时运行。

根@巧克力:~#cat/etc/rc.local#在此处放置应该执行一次的自定义命令#系统初始化完成。默认情况下,此文件不执行任何操作。/usr/bin/usb模式开关退出0根@巧克力:~#

我们还没有准备好,“usbserial”模块需要告知要使用哪个USB供应商/产品。引导期间使用/etc/modules.d/60-usb-串行文件设置正确的参数。您还可以使用适当的参数运行“rmmod”,然后运行“insmod”以避免重新启动。您可以使用“gcom info”工具查找有关调制解调器的一些信息。通常您使用/dev/ttyUSB0,但由于某些原因,它对我不起作用,我不得不使用/dev/ttyUSB3。

根@巧克力:~#cat>/etc/modules.d/60-usb-serialusb系列供应商=0x12d1产品=0x1506最大尺寸=4096根@巧克力:~#rmmod usbserial根@巧克力:~#insmod usb系列供应商=0x12d1产品=0x1506最大尺寸=4096根@巧克力:~#gcom-d/dev/ttyUSB3信息#####无线WAN调制解调器配置#####产品文本:====制造商:华为型号:E367版本:11.807.05.00.00IMEI:353613040739180+GCAP:+CGSM、+DS、+ES好 啊====制造商:华为IMEI和序列号:353613040739180制造商版本:11.807.05.00.硬件版本:非网络已锁定:错误:定制:不支持波段设置:(NOT)APN:错误:#####结束#####根@巧克力:~#

让我们配置网络和无线。配置文件是/etc/config/network和/etc/config/wireless。使用你最喜欢的编辑器或vi编辑它们。我正在设置一个PSK2加密的WLAN,我有一个WDS来连接两个无线路由器。请注意,您需要为SIM卡使用正确的PIN码(这里我使用的是8328),并正确设置APN(我正在使用“bredband.tre.se”)。进行这些更改后重新启动。

根@巧克力:~#cat/etc/config/networkconfig“interface”“loopback”选项“ifname”“lo”选项“proto”“static”选项“ipaddr”“127.0.0.1”选项“netmask”“255.0.0.0”config“接口”“局域网”选项“ifname”“eth0.1”选项“type”“bridge”选项“proto”“static”选项“ipaddr”“192.168.1.46”选项“网络掩码”255.255.255.0#config“接口”“广域网”#选项“ifname”“eth0.2”#选项“proto”“dhcp”配置“开关”选项“name”“rtl8366rb”选项“重置”“1”选项“enable_vlan”“1”配置“switch_vlan”选项“设备”“rtl8366rb”选项“vlan”“1”选项“端口”“1 2 3 4 5t”配置“switch_vlan”选项“设备”“rtl8366rb”选项“vlan”“2”选项“端口”“0 5t”配置接口广域网选项ifname ppp03g期权协议选项设备/dev/ttyUSB0选项apn bredband.tre.se选件pincode 8328根@巧克力:~#cat/etc/config/无线配置wifi-device无线电0选件类型mac80211选项通道5选项macaddr 00:27:19:fc:87:b2选项hwmode 11ng选项htmode HT20列表ht_capab SHORT-GI-40列出ht_capab DSSS_CCK-40配置wifi-iface选项设备无线电0选项网络局域网选项模式ap选项ssid Grisslan选项加密psk2选项键不供您查看配置wifi-iface选项设备无线电0选项网络局域网选项模式wds选项bssid 00:1F:C6:60:D3:11选项ssid GrisslanWDS选项加密psk2选项键this也是机密的根@巧克力:~#重新启动根@巧克力:~#

机器重新启动后,您可以使用“ifup wan”启动3G连接。使用“logread”查看日志,并通过“logread-f&”在后台跟踪日志。

根部@巧克力:~#ifup wan正在尝试设置PINPIN设置成功根@巧克力:~#logread|tail-205月21日13:41:20巧克力local2.info聊天[2419]:发送(ATD*99***1#^M)5月21日13:41:20巧克力local2.info聊天[2419]:期待(CONNECT)5月21日13:41:20巧克力local2.info聊天[2419]:^M5月21日13:41:20 choco local2.info聊天[2419]:ATD*99***1#^M^M5月21日13:41:20巧克力local2.info聊天[2419]:连接5月21日13:41:20巧克力local2.info聊天[2419]:--收到了5月21日13:41:20巧克力local2.info聊天[2419]:发送(^M)5月21日13:41:20 choco daemon.info pppd[2412]:建立串行连接。5月21日13:41:20 choco daemon.info pppd[2412]:使用接口ppp05月21日13:41:20巧克力守护进程通知pppd[2412]:连接:ppp0<-->/dev/ttyUSB05月21日13:41:24巧克力守护程序.warn pppd[2412]:无法确定远程IP地址:默认为10.64.64.645月21日13:41:24巧克力守护进程通知pppd[2412]:本地IP地址95.209.96.1155月21日13:41:24巧克力守护进程通知pppd[2412]:远程IP地址10.64.64.645月21日13:41:24巧克力守护进程通知pppd[2412]:主DNS地址80.251.201.1775月21日13:41:24巧克力守护进程通知pppd[2412]:次要DNS地址80.251.201.1785月21日13:41:24巧克力daemon.info dnsmasq[1028]:阅读/tmp/resolv.conf.auto5月21日13:41:24 choco daemon.info dnsmasq[1028]:使用名称服务器80.251.201.178#535月21日13:41:24 choco daemon.info dnsmasq[1028]:使用名称服务器80.251.201.177#535月21日13:41:24 choco daemon.info dnsmasq[1028]:仅对域局域网使用本地地址5月21日13:41:25巧克力用户通知日期:与ptbtime1.ptb.de同步根@巧克力:~#

万岁!

或者几乎如此……通常在您第一次连接时,我经常从服务器获得不正确的DNS服务器。它在日志中显示如下:

5月21日12:25:04巧克力守护进程通知pppd[1157]:主DNS地址10.11.12.135月21日12:25:04巧克力守护进程通知pppd[1157]:次要DNS地址10.11.12.14

发生这种情况的确切原因我无法理解。pppd的补丁到处都是,但我还没有尝试过。一种常见的解决方法是对静态DNS服务器(如Google DNS或OpenDNS)进行硬编码。我已经想出了我自己的解决方法,基于这样的观察,即当问题发生时,如果我断开并重新连接,它将不会再次发生。因此,我编写了一个小脚本,每当出现接口(通常是WAN接口)时都会调用该脚本。

#西蒙·约瑟夫森(Simon Josefsson),2011年5月。根@巧克力:~#cat>/etc/hotplug.d/iface/01-reconnect-if-dns-is-broken中的case“${ACTION:-ifup}”ifup)如果是grep-q 10.11.12.13/tmp/resolv.conf.auto;然后(睡30分钟&&ifdown wan&&ifup wan)&fi(菲涅耳);;欧洲安全理事会根@巧克力:~#chmod+x/etc/hotplug.d/iface/01-reconnect-if-dns-is-broken根@巧克力:~#

就这样!如果你觉得这篇文章有用,请删掉它。

17回复“OpenWRT与华为E367和TP-Link TL-WR1043ND合作”

  1. 伟大的写作。如果您只能发布此配置的单个自定义文件,那么这将使配置成为新手的捷径🙂不过还是要谢谢你!

  2. 非常感谢!这是DD-WRT的结束和OpenWRT的开始,我终于让我的华为E812e 3G调制解调器工作了。非常感谢!

  3. 我正在尝试使用openwrt和E367进行连接,这里的一切都很有帮助,但您能为我提供一个聊天脚本吗?我无法连接聊天脚本。

    谢谢

  4. Pingback:KiwiBird»TP-Link tl-wr1043nd,openwrt,中兴mf626?3G-????????

  5. 你好!

    首先感谢您的精彩演示,但我在配置华硕500gp v2和3g调制解调器时遇到了问题。

    首先,我必须安装哪个版本的openWRT?

    我可以用哪个程序粘贴代码?(根@巧克力:~#cd/tmp…)?终端?

    谢谢你的帮助!

  6. 你好!

    谢谢你的帮助。我正在写一些关于Openwrt的教程,我想把3g调制解调器作为其中的一部分。你可以在我的网页上找到它们。我没有发布3g调制解调器部分,但我想包括对这篇文章的引用,因为我认为这篇文章是我读过的关于3g调制解调器配置的最好的一篇文章。你能通过电子邮件允许我这样做吗?

    谢谢!

    大卫。

  7. 谢谢你的指导,

    我有一个问题:你怎么知道USB设备“切换”后的供应商/产品ID是12d1:1506,你怎么找到这个数字(1506)。?

    谢谢你的重播

  8. 尊敬的各位:,

    我是OpenWrt的新手,想将3g调制解调器连接到我的OpenWrt路由器,我已经按照您在论坛中提到的步骤进行了操作,但没有成功。

    我使用的是型号为EC1261的华为数据卡

    你能帮我按步骤做吗

    谢谢
    Maxe公司

  9. 你有没有尝试过使用这个带有usb集线器的tplink……这样它就可以连接usb 3g调制解调器和usb存储器(sata 2.5英寸外部硬盘500gb)…。

    或者什么样的tplink可以实现这些场景?

    请回答…。

    谢谢

  10. 感谢Simon的明确解释。我将使用WRT160NL和华为E353进行测试。

  11. 你好,西蒙,

    在我看来,你的解释可能是我解决问题的一部分。在一周左右的时间里,我一直试图将OpenWrt wiki和其他论坛上的信息拼凑在一起,以实现OpenWrt在TP-Link 841n路由器上运行,在无线网络上运行,最终实现华为3G E5330调制解调器。

    我刚下载了这篇文章中的图片,就意识到你把USB调制解调器直接插入路由器上的USB。841n没有usb端口是一个破坏者吗?还是有办法无线连接路由器和加密狗?

    作为一个在命令行上几乎没有经验的新手,我开始尝试解决这个问题,但在这个过程的早期遇到了一些障碍。虽然我把OpenWRT安装到了路由器上,但我甚至无法让路由器(通过LuCI)连接到有线互联网连接。(我上传了原始固件,并进行了自动设置)。

    你有什么建议愿意提供吗?我很想尝试解决这个问题,但我想知道这是否超出了我的能力范围,是否需要找一位当地的专家!

    罗布

    • 这篇文章是在2011年写的,所以大多数(如果不是所有的话)都有点过时了——我建议您回顾一下我在更现代的OpenWRT发行版中所做的步骤。或者找当地人帮你。

      我只使用了3G USB加密狗,所以你的路由器上需要一个USB端口。

      祝你好运!

      /西蒙