编译支持3G网卡的openwrt固件——从内核到应用

已经好久没有写关于技术的东东了,不是因为太懒,而是最近实在没做过什么有点技术含量的事,最近产品需要支持3g网卡,也就终于机会研究一下以前没有接触的东西了。其实如非工作需要,自己私底下去研究一些未接触技术的时间真的很少,因为还有其它太多太多生活的事情需要我们去处理,要做一名懂得享受生活程序员。
言归正传,开始干活!
本文主要涉及的是如何在openwrt的基础上添加3G和usb模块,并非像网上大部分文章提到的只是部分热门路由如703N、h618b、rg100a这些已有大神编译好的固件,然后再此基础上再修改脚本。简而言之,就是只要你的硬件平台可以跑openwrt,支持usb接口,就可以自己编译出支持3G网卡的Openwrt固件,对于网卡的要求还是有的,我这里使用的是MF190,可以直接识别为modem,如有需要usb_modeswitch,网上大把教程,也就不多提了。Openwrt源码的下载和编译这一part直接跳过(我想研究到这一块的也都知道如何下载和编译源码了吧),本文所用的openwrt版本是trunk,内核版本为3.6.8。
 
1、进入图形配置界面,选择支持usb模块所需要的库(kmod-usb2  kmod-usb-core kmod-usb-ohci kmod-usb-serial  kmod-usb-serial-options  libusb kmod-usb-acm    usb-modeswitch usb-modeswitch-data ),具体位置为:
2、选择3G拨号软件(chat,comgt,pppd),这几个东西折腾了我一个下午才搞明白它们的关系。首先,comgt是拨号用的,我们可以用comgt -d /dev/ttyUSBx 来测试3G SIM卡的状态;chat是保存命令的脚本,在pppd的options配置文件中,需要把如图所示:
chat的位置(直接在network下,我这已经默认选了):
comgt位置(Utilities):
pppd位置(这个是用来拨号的进程,也是在network下的):
3、选取了以上所需要的库,我们就开始Make吧~~~
make完之后我们就会得到:内核和文件系统,和需要的各种软件(路径 trunk/bin/xx/packages)啦!!因为我是以M的方式编译各种库的,所以有些软件需要在烧写内核和文件系统后再安装(我需要安装的comgt、pppd)。
下图是需要安装的一些库和界面,反正我在研究阶段是手动都安装了一遍 T_T~~~~
4、安装上述东东之后,就会像网上各种教程所说的那样了~~~如:/etc/charscipt /  /etc/ppp /etc/usb_modeswtich.d/ 等文件夹。
 
#########################################我是分割线###########################################################
固件编译完毕!进入应用阶段~~~~
1、插上3G网卡(MF190)后,系统如果打印出如下信息就可以识别到网卡啦!ttyUSBx就是我们的网卡设备接口啦~~~
2、打开/etc/ppp/options 文件,修改为如下(每个网卡情况不同,需根据自己的网卡配置,这里要说的是logfile和connect,logfile这个文件在我调试过程中帮助了我不少,大家可以通过这个log了解到整个拨号的过程,以便调试。connect是指定chat脚本的位置,我是在原有默认的脚本上修改的,所以是在/etc/chatscript/3g.chat 下,当然你可以根据你自己的喜好对它进行各种命名。),具体选项意思可参考:   http://www.cnblogs.com/doctorqbw/archive/2012/06/19/2555063.html
 
3、打开/etc/chatscript/3g.chat,这里可能根据运营商的不同而需要做更改,移动的是” cmnet“,电信是”ctnet“,联通是”3gnet“,目前我只测试了联通的网卡,至于其它两家运营商嘛,移动的3g速度不行,估计不考虑,电信的应该会购入了(采购过程还需”领导“多多支持吖!比如帮忙填个表什么的^_^ !)。联通的设置如下:
4、打开 /etc/config/network添加3g网口,在调试过程中建议不要添加,可以手动命令pppd来进行拨号,修改network文件的同时还需要修改firewall才可以成功让系统重启后自动启动。
5、如果是在调试过程,利用pppd来拨号后,可以通过logfile 来查看拨号过程,下图是我成功拨号后的log,可以看到已经获取了IP地址和DNS了,网卡名字是由network配置文件中的interface来决定的:
6、至此,我们已经可以成功拨号,并且可以在重启时自动拨号了~~~这就够了么?不!!我们还需要让网卡插入后可以自动拨号!说起来好像很智能,其实很简单,只是需要在热拔插的配置文件中添加网口的启动即可!打开etc/hotplug.d/usb/10-usb,配置如下:
搞定!!!收工!!

转载于:https://www.cnblogs.com/wenjie2008888/p/3387635.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenWrt是一个基于Linux的嵌入式操作系统,可以运行在各种路由器和嵌入式设备上。OpenWrt固件编译是指将OpenWrt源代码编译成可在特定硬件平台上运行的固件的过程。 首先,我们需要准备编译环境。在Ubuntu或其他基于Debian的发行版上,可以通过以下命令安装所需的软件包: ``` sudo apt-get install subversion build-essential libncurses5-dev zlib1g-dev gawk git ccache gettext libssl-dev xsltproc wget ``` 接下来,我们需要获取OpenWrt的源代码。可以使用以下命令来获取最新的OpenWrt源代码: ``` git clone https://git.openwrt.org/openwrt/openwrt.git ``` 获取源代码后,进入源代码目录: ``` cd openwrt ``` 在配置编译选项之前,可以运行以下命令更新源代码: ``` ./scripts/feeds update -a ./scripts/feeds install -a ``` 接下来,我们需要选择目标平台和配置编译选项。可以通过以下命令启动配置界面: ``` make menuconfig ``` 在配置界面中,可以选择目标平台、应用软件包、内核和其他编译选项。选择完成后,保存配置并退出。 最后,开始编译固件。可以运行以下命令来启动编译: ``` make -j4 ``` 编译过程可能需要一些时间,具体时间取决于计算机性能和配置选项。编译完成后,在`bin/targets`目录下可以找到编译生成的固件文件。 总之,OpenWrt固件编译的过程包括准备编译环境、获取源代码、配置编译选项和开始编译编译完成后,可以得到适用于特定硬件平台的OpenWrt固件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值