華碩Padavan固件的適配以及4G上網(wǎng)卡適配

近日收到兩臺(tái)路由,可以插minipcie(USB)接口的網(wǎng)卡假抄,在openwrt上折騰了下怎栽,感覺很不方便,于是就利用周末宿饱,在padavan上折騰了齿兔。第一次玩這個(gè)系統(tǒng),不熟悉感帅,都是自己摸索的圆雁。
工具:
路由一臺(tái)(配置7620A+7610E,16+128)
4G網(wǎng)卡兩個(gè),龍尚U8300C和EC20
串口小板为黎,編程器邮丰,ubuntu服務(wù)器等

具體編譯過程就不說了行您,直接參照wiki就可以了,注意的是代碼默認(rèn)是N56N剪廉,我這個(gè)硬件與AC51U比較一致娃循,直接用AC51U編譯了。

diff --git a/trunk/.config b/trunk/.config
index 17e5c5d..814f3f1 100644
--- a/trunk/.config
+++ b/trunk/.config
@@ -3,11 +3,11 @@ CONFIG_VENDOR=Ralink
 CONFIG_PRODUCT=RT3883
 
 ### Target ProductID (board select, max 12 symbols)
-CONFIG_FIRMWARE_PRODUCT_ID="RT-N56U"
+CONFIG_FIRMWARE_PRODUCT_ID="RT-AC51U"
 
 ### Linux kernel and toolchain
 CONFIG_LINUXDIR=linux-3.4.x
-CONFIG_TOOLCHAIN_DIR=/opt/rt-n56u/toolchain-mipsel
+CONFIG_TOOLCHAIN_DIR=/mnt/pdm/rt-n56u/toolchain-mipsel
 
 ############################################################
 ### Linux kernel configuration
@@ -22,7 +22,6 @@ CONFIG_TOOLCHAIN_DIR=/opt/rt-n56u/toolchain-mipsel
 ### 2.4 = RT3883/3662 v2.4.3.6
 ### 2.7 = RT3883/3662 v2.7.2.0
 CONFIG_FIRMWARE_WIFI5_DRIVER=2.7
-
 ### Kernel driver select for WiFi AP 2.4GHz
 ### 2.4 = RT3092 v2.4.0.5
 ### 2.5 = RT3092 v2.5.0.11

添加4G網(wǎng)卡進(jìn)來斗蒋,這個(gè)與openwrt和Android一樣的:

--- a/trunk/linux-3.4.x/drivers/usb/serial/option.c
+++ b/trunk/linux-3.4.x/drivers/usb/serial/option.c
@@ -237,8 +237,15 @@ static void option_instat_callback(struct urb *urb);
 #define BANDRICH_PRODUCT_1012                  0x1012
 
 #define QUALCOMM_VENDOR_ID                     0x05C6
+#define SIERRA_VENDOR_ID                       0x1199
 
-#define SIERRA_VENDOR_ID                       0x1199
+#define QUECTEL_VENDOR_ID                      0x2c7c
+/* These Quectel products use Quectel's vendor ID */
+#define QUECTEL_PRODUCT_EC21                   0x0121
+#define QUECTEL_PRODUCT_EC25                   0x0125
+#define QUECTEL_PRODUCT_BG96                   0x0296
+#define QUECTEL_PRODUCT_EP06                   0x0306
+#define QUECTEL_PRODUCT_EM12                   0x0512
 
 #define CMOTECH_VENDOR_ID                      0x16d8
 #define CMOTECH_PRODUCT_6001                   0x6001
@@ -369,6 +376,7 @@ static void option_instat_callback(struct urb *urb);
  * Mobidata, etc sell under their own brand names.
  */
 #define LONGCHEER_VENDOR_ID                    0x1c9e
+#define LONGCHEER_U8300_PRODUCT_ID                     0x9B05
 
 /* 4G Systems products */
 /* This is the 4G XS Stick W14 a.k.a. Mobilcom Debitel Surf-Stick *
@@ -678,6 +686,7 @@ static const struct option_blacklist_info cinterion_rmnet2_blacklist = {
 };
 
 static const struct usb_device_id option_ids[] = {
+       { USB_DEVICE(0x1c9e, 0x9b05) },//u8300
        { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_COLT) },
        { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA) },
        { USB_DEVICE(OPTION_VENDOR_ID, OPTION_PRODUCT_RICOLA_LIGHT) },
@@ -1185,6 +1194,13 @@ static const struct usb_device_id option_ids[] = {
          .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
        { USB_DEVICE_INTERFACE_CLASS(QUALCOMM_VENDOR_ID, 0x9201, 0xff),
          .driver_info = (kernel_ulong_t)&net_intf3_blacklist }, /* TS-UM6602 */
+       /* Quectel products using Quectel vendor ID */
+       { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC21),
+         .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
+       { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_EC25),
+         .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
+       { USB_DEVICE(QUECTEL_VENDOR_ID, QUECTEL_PRODUCT_BG96),
+        .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
        { USB_DEVICE_INTERFACE_CLASS(SIERRA_VENDOR_ID, 0x68c0, 0xff),
          .driver_info = (kernel_ulong_t)&sierra_mc73xx_blacklist }, /* MC73xx */
        { USB_DEVICE_INTERFACE_CLASS(SIERRA_VENDOR_ID, 0x9041, 0xff),
@@ -57,6 +57,11 @@ struct qmi_wwan_state {
 
 enum qmi_wwan_flags {
        QMI_WWAN_FLAG_RAWIP = 1 << 0,
+       QMI_WWAN_FLAG_MUX = 1 << 1,
+};
+enum qmi_wwan_quirks {
+       QMI_WWAN_QUIRK_DTR = 1 << 0,    /* needs "set DTR" request */
+       QMI_WWAN_QUIRK_QUECTEL_DYNCFG = 1 << 1, /* check num. endpoints */
 };
 
 static void qmi_wwan_netdev_setup(struct net_device *net)
@@ -468,7 +473,8 @@ next_desc:
         * MDM9x30 is the first QMI chipset with USB3 support. Abuse
         * this fact to enable the quirk.
         */
-       if (le16_to_cpu(dev->udev->descriptor.bcdUSB) >= 0x0201) {
+       if (dev->driver_info->data & QMI_WWAN_QUIRK_DTR ||
+           le16_to_cpu(dev->udev->descriptor.bcdUSB) >= 0x0201) {
                qmi_wwan_manage_power(dev, 1);
                qmi_wwan_change_dtr(dev, true);
        }
@@ -581,6 +587,15 @@ static const struct driver_info    qmi_wwan_info = {
        .rx_fixup       = qmi_wwan_rx_fixup,
 };
 
+static const struct driver_info        qmi_wwan_info_quirk_quectel_dyncfg = {
+       .description    = "WWAN/QMI device",
+       .flags          = FLAG_WWAN | FLAG_SEND_ZLP,
+       .bind           = qmi_wwan_bind,
+       .unbind         = qmi_wwan_unbind,
+       .manage_power   = qmi_wwan_manage_power,
+       .rx_fixup       = qmi_wwan_rx_fixup,
+       .data           = QMI_WWAN_QUIRK_DTR | QMI_WWAN_QUIRK_QUECTEL_DYNCFG,
+};
 #define HUAWEI_VENDOR_ID       0x12D1
 


 /* map QMI/wwan function by a fixed interface number */
@@ -596,6 +611,15 @@ static const struct driver_info    qmi_wwan_info = {
 #define QMI_GOBI_DEVICE(vend, prod) \
        QMI_FIXED_INTF(vend, prod, 0)
 
+/* Quectel does not use fixed interface numbers on at least some of their
+ * devices. We need to check the number of endpoints to ensure that we bind to
+ * the correct interface.
+ */
+#define QMI_QUIRK_QUECTEL_DYNCFG(vend, prod) \
+       USB_DEVICE_AND_INTERFACE_INFO(vend, prod, USB_CLASS_VENDOR_SPEC, \
+                                     USB_SUBCLASS_VENDOR_SPEC, 0xff), \
+       .driver_info = (unsigned long)&qmi_wwan_info_quirk_quectel_dyncfg
+
 static const struct usb_device_id products[] = {
        /* 1. CDC ECM like devices match on the control interface */
        {       /* Huawei E392, E398 and possibly others sharing both device id and more... */
@@ -689,8 +713,12 @@ static const struct usb_device_id products[] = {
                USB_DEVICE_AND_INTERFACE_INFO(0x03f0, 0x581d, USB_CLASS_VENDOR_SPEC, 1, 7),
                .driver_info = (unsigned long)&qmi_wwan_info,
        },
+       {QMI_QUIRK_QUECTEL_DYNCFG(0x2c7c, 0x0125)},     /* Quectel EC25, EC20 R2.0  Mini PCIe */
+       {QMI_QUIRK_QUECTEL_DYNCFG(0x2c7c, 0x0306)},     /* Quectel EP06/EG06/EM06 */
+       {QMI_QUIRK_QUECTEL_DYNCFG(0x2c7c, 0x0512)},     /* Quectel EG12/EM12 */
 
        /* 3. Combined interface devices matching on interface number */
+       {QMI_FIXED_INTF(0x1c9e, 0x9b05, 4)},    /*u8300 */
        {QMI_FIXED_INTF(0x0408, 0xea42, 4)},    /* Yota / Megafon M100-1 */
        {QMI_FIXED_INTF(0x0408, 0xd00a, 2)},    /* Yota (Quanta 1QDLZZZ0ST2), FW 20120301 */
        {QMI_FIXED_INTF(0x0408, 0xd009, 3)},    /* Yota (Quanta 1QDLZZZ0ST2), FW 20120412 */
@@ -951,6 +979,9 @@ static const struct usb_device_id products[] = {
        {QMI_FIXED_INTF(0x413c, 0x81b3, 8)},    /* Dell Wireless 5809e Gobi(TM) 4G LTE Mobile Broadband Card (rev3) */
        {QMI_FIXED_INTF(0x03f0, 0x4e1d, 8)},    /* HP lt4111 LTE/EV-DO/HSPA+ Gobi 4G Module */
        {QMI_FIXED_INTF(0x22de, 0x9061, 3)},    /* WeTelecom WPD-600N */
+//     {QMI_QUIRK_SET_DTR(0x2c7c, 0x0121, 4)}, /* Quectel EC21 Mini PCIe */
+//     {QMI_QUIRK_SET_DTR(0x2c7c, 0x0191, 4)}, /* Quectel EG91 */
+//     {QMI_FIXED_INTF(0x2c7c, 0x0296, 4)},    /* Quectel BG96 */
        {QMI_FIXED_INTF(0x1e0e, 0x9001, 5)},    /* SIMCom 7230E */
 
        /* 4. Gobi 1000 devices */

編譯后燒錄捌斧,可以正常撥號(hào)了:

image.png
image.png

其他問題:
lan和wan口順序調(diào)整:

diff --git a/trunk/user/shared/netutils.h b/trunk/user/shared/netutils.h
old mode 100644
new mode 100755
index acaa989..097a1b0
--- a/trunk/user/shared/netutils.h
+++ b/trunk/user/shared/netutils.h
@@ -39,8 +39,8 @@
 #define IFNAME_MAC                     "eth2"
 #define IFNAME_MAC2                    "eth3"
 #if defined (USE_SINGLE_MAC)
-#define IFNAME_LAN                     "eth2.1"
-#define IFNAME_WAN                     "eth2.2"
+#define IFNAME_LAN                     "eth2.2"
+#define IFNAME_WAN                     "eth2.1"
 #else
 #define IFNAME_LAN                     IFNAME_MAC
 #define IFNAME_WAN                     IFNAME_MAC2

燒錄發(fā)現(xiàn)128M內(nèi)存只識(shí)別了64M,更改config識(shí)別OK:

diff --git a/trunk/configs/boards/RT-AC51U/kernel-3.4.x.config b/trunk/configs/boards/RT-AC51U/kernel-3.4.x.config
old mode 100644
new mode 100755
index f6c61f6..47854b5
--- a/trunk/configs/boards/RT-AC51U/kernel-3.4.x.config
+++ b/trunk/configs/boards/RT-AC51U/kernel-3.4.x.config
@@ -54,8 +54,8 @@ CONFIG_MT7620_ASIC=y
 # CONFIG_RALINK_CPUSLEEP is not set
 # CONFIG_RT2880_DRAM_16M is not set
 # CONFIG_RT2880_DRAM_32M is not set
-CONFIG_RT2880_DRAM_64M=y
-# CONFIG_RT2880_DRAM_128M is not set
+# CONFIG_RT2880_DRAM_64M=y
+CONFIG_RT2880_DRAM_128M=y
 # CONFIG_RT2880_DRAM_256M is not set
 CONFIG_RALINK_RAM_SIZE=64
 # CONFIG_RT2880_UART_57600 is not set

其他坑:主板帶了個(gè)硬件看門狗泉沾,刷非他們的系統(tǒng)會(huì)不斷重啟捞蚂,拆了看門狗芯片,把供電線直接短接爆哑!

附件:
源碼下載:https://gitee.com/hzexe/rt-n56u.git
官方WIKI:https://bitbucket.org/padavan/rt-n56u/wiki/EN/HowToMakeFirmware

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末洞难,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子揭朝,更是在濱河造成了極大的恐慌队贱,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件潭袱,死亡現(xiàn)場(chǎng)離奇詭異柱嫌,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)屯换,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門编丘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人彤悔,你說我怎么就攤上這事嘉抓。” “怎么了晕窑?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵抑片,是天一觀的道長。 經(jīng)常有香客問我杨赤,道長敞斋,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任疾牲,我火速辦了婚禮植捎,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘阳柔。我一直安慰自己焰枢,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著济锄,像睡著了一般枫匾。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上拟淮,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音谴忧,去河邊找鬼很泊。 笑死,一個(gè)胖子當(dāng)著我的面吹牛沾谓,可吹牛的內(nèi)容都是我干的委造。 我是一名探鬼主播,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼均驶,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼昏兆!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起妇穴,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤爬虱,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后腾它,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體跑筝,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年瞒滴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了曲梗。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡妓忍,死狀恐怖虏两,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情世剖,我是刑警寧澤定罢,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站搁廓,受9級(jí)特大地震影響引颈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜境蜕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一蝙场、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧粱年,春花似錦售滤、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽赐俗。三九已至,卻和暖如春弊知,著一層夾襖步出監(jiān)牢的瞬間阻逮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工秩彤, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留叔扼,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓漫雷,卻偏偏與公主長得像瓜富,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子降盹,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348