皇家娱乐wwwhj7878com【電:⒙0★8804★5700】前言硬件回顾添加新的Target Profile 添加设备树 修改Makefile 网络配置 修改sh配置menuconfig Target选择 添加LuCI 添加4G支持编译微信公众号 前言OpenWrt 硬件 环境配置 编译
上节粗略介绍了MT7688板子的硬件, 源码下载及编译, 可以看到使用的都是其它家的板子固件, 那么可不可以自己定制一个OpenWrt固件, 当然是可以的, 大家都是基于官方的板子改过来的, 下面就开始. 先来回顾下硬件 硬件回顾MT7688AN, 128MB RAM, 16MB Flash, 串口0为调试串口, 网口0对应WAN, 网口1对应LAN, USB扩展了4G模块(EC20), 没有LED. 至于多出来的USB口, TF卡之类的, 先不考虑, 先把基本的网络功能实现再说. 添加新的Target Profile这部分就是在 make menuconfig之前, 为了在界面添加自己的设备, 以 wrtnode2r(淘宝有这个开发板, 可以去看下)为例, 在OpenWrt源码中全局搜索关键字, 看下定制一个固件需要改动的东西:
嗯, 可以依葫芦画瓢开始了. 添加设备树到openwrt的源码文件夹里面, target/linux/ramips/dts 目录下添加新的设备树文件DQ7688.dts, 可直接复制LINKIT7688.dts, 改动如下: //compatible = "mediatek,linkit-smart-7688", "mediatek,mt7628an-soc"; compatible = "mediatek,dq-7688", "mediatek,mt7628an-soc";
//model = "MediaTek LinkIt Smart 7688"; model = "MediaTek DQ-7688";
//bootargs = "console=ttyS2,57600"; bootargs = "console=ttyS0,57600";
//删掉 //aliases { // serial0 = &uart2; // };
//内存128MB. 不变 memory@0 { device_type = "memory"; reg = <0x0 0x8000000>; };
//删掉 // bootstrap { // compatible = "mediatek,linkit"; // // status = "okay"; // };
//LED删掉 // gpio-leds { // compatible = "gpio-leds"; // // wifi { // label = "linkit-smart-7688 range:wifi"; // gpios = <&gpio1 12 GPIO_ACTIVE_LOW>; // }; // };
//Flash 16MB //reg = <0x50000 0x1fb0000>; //32MB reg = <0x50000 0xfb0000>;
其中, reg=<0x00x8000000>;表示128MB RAM; reg=<0x500000xfb0000>;表示支持的16MB Flash, 区间位置如下: 修改Makefile修改Makefile文件: target/linux/ramips/image/mt76x8.mk, 参考 wrtnode2r的写法, 添加: define Device/dq7688 DTS := DQ7688 IMAGE_SIZE := $(ralink_default_fw_size_16M) DEVICE_TITLE := MediaTek DQ-7688 DEVICE_PACKAGES:= kmod-usb2 kmod-usb-ohci endef TARGET_DEVICES += dq7688
网络配置修改: /target/linux/ramips/base-file/etc/board.d/02_network 找到 wrtnode2r后面添加(大家懒得改, 自己接着续, 行不行试试再说): 修改sh修改 /target/linux/ramips/base-files/lib/ramips.sh 找到wrtnode2r后面添加: *"DQ7688") name="dq7688" ;;
修改 /target/linux/ramips/base-files/lib/upgrade/platform.sh 找到wrtnode2r |\后面添加: 配置menuconfigTarget选择上面做了改动, 需要删除openwrt源码目录下之前生成的 tmp文件夹, 然后重新 make menuconfig, 选择如下, 可以看到先前定制的 DQ-7688的设备:
添加LuCILuCI选项, 网页界面启用, Modules--->Translations添加了简体中文, Applications按需选择, 主题默认: 添加4G支持主要参考官方的这个链接: Building image with support for 3g/4g and usb tethering 对于特定型号特定应用, 可能过于繁杂, 可自己适当裁剪, 摘录一下全部配置. KernelModules→USBSupport: Kernel Modules -> USB Support <*> kmod-usb2 <*> kmod-usb-ohci <*> kmod-usb-uhci <*> kmod-usb-acm # For ACM based modem, such as Nokia Phones <*> kmod-usb-net # For tethering and rndis support
其中 kmod-usb-net可以展开: <*> kmod-usb-net............... Kernel modules for USB-to-Ethernet convertors <*> kmod-usb-net-asix...... Kernel module for USB-to-Ethernet Asix convertors <*> kmod-usb-net-cdc-eem..................... Support for CDC EEM connections -*- kmod-usb-net-cdc-ether.............. Support for cdc ethernet connections <*> kmod-usb-net-cdc-mbim..................... Kernel module for MBIM Devices -*- kmod-usb-net-cdc-ncm..................... Support for CDC NCM connections <*> kmod-usb-net-cdc-subset...... Support for CDC Ethernet subset connections <*> kmod-usb-net-dm9601-ether........ Support for DM9601 ethernet connections <*> kmod-usb-net-hso.. Kernel module for Option USB High Speed Mobile Devices <*> kmod-usb-net-ipheth..................... Apple iPhone USB Ethernet driver <*> kmod-usb-net-kalmia................... Samsung Kalmia based LTE USB modem <*> kmod-usb-net-kaweth.. Kernel module for USB-to-Ethernet Kaweth convertors <*> kmod-usb-net-mcs7830 <*> kmod-usb-net-pegasus <*> kmod-usb-net-qmi-wwan.................................... QMI WWAN driver <*> kmod-usb-net-rndis......................... Support for RNDIS connections <*> kmod-usb-net-sierrawireless.......... Support for Sierra Wireless devices <*> kmod-usb-net-smsc95xx. SMSC LAN95XX based USB 2.0 10/100 ethernet devices
其中注意rndis, 一些较新的4G模块用USB接口 usb networkinterface(rndis)替代传统的串口协议. kmod-usb-serial 支持传统的3G加密狗, 也有展开: <*> kmod-usb-serial..................... Support for USB-to-Serial converters <*> kmod-usb-serial-ark3116........ Support for ArkMicroChips ARK3116 devices <*> kmod-usb-serial-belkin........................ Support for Belkin devices <*> kmod-usb-serial-ch341.......................... Support for CH341 devices <*> kmod-usb-serial-cp210x........... Support for Silicon Labs cp210x devices <*> kmod-usb-serial-cypress-m8.............. Support for CypressM8 USB-Serial <*> kmod-usb-serial-ftdi............................ Support for FTDI devices <*> kmod-usb-serial-ipw.................... Support for IPWireless 3G devices <*> kmod-usb-serial-keyspan........ Support for Keyspan USB-to-Serial devices <*> kmod-usb-serial-mct.............. Support for Magic Control Tech. devices <*> kmod-usb-serial-mos7720.............. Support for Moschip MOS7720 devices <*> kmod-usb-serial-motorola-phone............ Support for Motorola usb phone <*> kmod-usb-serial-option................... Support for Option HSDPA modems <*> kmod-usb-serial-oti6858...... Support for Ours Technology OTI6858 devices <*> kmod-usb-serial-pl2303............... Support for Prolific PL2303 devices <*> kmod-usb-serial-qualcomm................. Support for Qualcomm USB serial <*> kmod-usb-serial-sierrawireless....... Support for Sierra Wireless devices <*> kmod-usb-serial-ti-usb...................... Support for TI USB 3410/5052 <*> kmod-usb-serial-visor............... Support for Handspring Visor devices -*- kmod-usb-serial-wwan..................... Support for GSM and CDMA modems
上面是 KernelModules→USBSupport的选项, 下面要回去, 切回 Network区域: Network <*>chat <*>ppp <*>uqmi
其中 uqmi支持qmi接口, ppp支持标准的点对点协议(point-to-point protocol), chat建立串行通行是需要的, 为PPP连接做准备. 实际测试发现uqmi位置有变动, 移到了 Network>WWAN>uqmi:
一些加密狗用 mbim协议: 下面要退出 Network, 切到 Utilities区: Utilities <*>comgt <*>usb-modeswitch
compt提供3g接口控制, usb-modeswitch提供虚拟cd-rom接口到串口的模式转换. 实际测试 compt没有找到, 找到的可以评论下. 如果需要调试串口, 需要串口终端, 可以选择 minicom之类的, 推荐小体积的 picocom: Utilities --> Terminal <*>picocom
如果想在LuCI界面中控制通信模块, 切到 LuCI区: 实际测试 luci-app-multiwan改成了 luci-app-mwan3:
|