Обновление прошивки роутера билайн smart box flash

Режимы работы

DHCP-клиент, Static IP, L2TP, Dynamic IP

Wi-Fi

802.11b/g/n/a/ac 300Mbps, 2.4GHz и 5GHz Dual Band, гостевая Wi-Fi-сеть

WAN/LAN

GE (Gigabit Ethernet), порты WAN и LAN1, LAN2: максимальная пропускная способность — 1 Гбит/сек (1000 Мбит/сек)

USB-порт

1 порт USB 3.0

Поддержка IPTV

да, выделенный LAN-порт и IGMP proxy

Поддержка скоростных тарифов

да, включая тарифы до 300 Мбит

Статус

рекомендованный

Подключите кабель, который вам провели в квартиру наши монтажники в порт WAN, а компьютер подключите в любой из двух LAN-портов. Вы также можете соединить ваш компьютер с роутером по беспроводной сети, но на первичном этапе настройки лучше использовать кабель.

Попробуйте открыть любую страницу в браузере или введите в адресную строку login.beeline.ru или 83.102.180.167 — откроется страница авторизации, на которой нужно ввести данные:

— В поле «Логин» — имя пользователя по договору (089/085).

— В поле «Пароль» — пароль от домашнего интернета.

После чего нажмите кнопку «Войти».

Отобразится информация, что авторизация успешно пройдена и для установки соединения нужно подождать 10 минут.

Шаг 1

Откройте браузер и введите в адресную строку 192.168.1.1. Вы попадёте на страницу приветствия. Нажмите кнопку «Продолжить».

Шаг 2

Роутер предложит вам ввести имя пользователя и пароль. Введите в первое поле admin, во второе также admin. Нажмите кнопку «Войти».

Шаг 3

Вы попадёте в главное меню роутера. Выберите пункт «Быстрая настройка».

Шаг 4

Если вы проходили IPOE авторизацию, на данном шаге достаточно настроить Wi-Fi и IPTV.

Настраиваем роутер

«Домашний Интернет» — пункты в данном разделе не нужно заполнять. Сразу переходите к настройке wi-fi сети.

Wi-Fi-сеть роутера (для 2.4 и 5 ГГц):

  • Имя сети — название Wi-Fi-сети, которая будет отображаться в списке подключений.
  • Пароль — пароль для Wi-Fi-сети придумывается самостоятельно — не менее 8 символов.

билайн тв — нужно выбрать порт, в который подключена IPTV-приставка.

Нажмите кнопку «Применить» — роутеру потребуется приблизительно 1 минута чтобы применить параметры.

Поздравляем, вы полностью настроили роутер для работы в сети билайн!

Обязательно подключите роутер к компьютеру, используя Ethernet-кабель.

Шаг 1

Откройте браузер и введите в адресную строку 192.168.1.1. Вы попадёте на страницу приветствия. Нажмите кнопку «Продолжить».

Шаг 2

Роутер предложит вам ввести имя пользователя и пароль. Введите в первое поле admin, во второе также admin. Нажмите кнопку «Войти».

Шаг 3

Вы попадёте в главное меню роутера. Выберите пункт «Расширенные настройки».

Шаг 4

В разделе «Администрирование» откройте вкладку «Обновление прошивки».

Нажмите «Выбрать файл» и укажите путь к файлу с прошивкой. Нажмите «Обновить ПО».

Используйте аппаратный сброс настроек, если требуется настроить устройство заново (удалить все пользовательские настройки), нет доступа к веб-странице интерфейса настроек роутера, после настройки роутера интернет-соединение не установилось или пароль доступа к нему был утерян.

Внимание! При выполнении аппаратного сброса настроек все пользовательские установки будут сброшены на заводские параметры!

На боковой панели роутера есть кнопка с названием RST/WPS. Её надо нажать и удерживать в течение 20 секунд — роутер начнёт сброс настроек.

Шаг 1

Откройте браузер и введите в адресную строку 192.168.1.1. Вы попадёте на страницу приветствия. Нажмите кнопку «Продолжить».

Шаг 2

Роутер предложит вам ввести имя пользователя и пароль. Введите в первое поле admin, во второе также admin. Нажмите кнопку «Войти».

Шаг 3

Вы попадёте в главное меню роутера. Выберите пункт «Расширенные настройки».

Шаг 4

В разделе «Администрирование», откройте вкладку «Дополнительные настройки», выберите «Восстановление/сохранение/загрузка настроек», нажмите кнопку «Восстановление заводских настроек». Роутер начнёт сброс настроек.

MT7621 stage1 code 10:33:11 (ASIC)
CPU=50000000 HZ BUS=16666666 HZ

Change MPLL source from XTAL to CR…
do MEMPLL setting..

MT7621 stage1 code 10:33:11 (ASIC)
CPU=50000000 HZ BUS=16666666 HZ

Change MPLL source from XTAL to CR…
do MEMPLL setting..
MEMPLL Config : 0x11100000
3PLL mode + External loopback

XTAL-40Mhz === DDR-1200Mhz

PLL2 FB_DL: 0xe, 1/0 = 755/269 39000000
PLL4 FB_DL: 0x13, 1/0 = 720/304 4D000000
PLL3 FB_DL: 0x15, 1/0 = 662/362 55000000
do DDR setting..[00320381]
Apply DDR3 Setting…(use customer AC)

        0    8   16   24   32   40   48   56   64   72   80   88   96  104  112  120
    --------------------------------------------------------------------------------

0000:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0001:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0002:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0003:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0004:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0005:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0006:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0007:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0008:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0009:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
000A:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
000B:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
000C:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
000D:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
000E:| 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
000F:| 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0
0010:| 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
0011:| 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0012:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0013:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0014:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0015:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0016:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0017:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0018:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0019:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
001A:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
001B:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
001C:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
001D:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
001E:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
001F:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
rank 0 coarse = 15
rank 0 fine = 64
B:| 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0
opt_dle value:9
DRAMC_R0DELDLY[018]=00001E20

RX DQS perbit delay software calibration

1.0-15 bit dq delay value

bit| 0 1 2 3 4 5 6 7 8 9


0 | 11 10 11 12 11 11 12 9 8 10
10 | 9 11 9 13 9 12


2.dqs window
x=pass dqs delay value (min~max)center
y=0-7bit DQ of every group
input delay:DQS0 =32 DQS1 = 30

bit DQS0 bit DQS1
0 (1~61)31 8 (1~58)29
1 (1~60)30 9 (1~57)29
2 (1~60)30 10 (1~58)29
3 (1~61)31 11 (1~56)28
4 (1~60)30 12 (1~58)29
5 (1~63)32 13 (1~58)29
6 (1~61)31 14 (1~58)29
7 (1~63)32 15 (1~59)30

3.dq delay value last

bit| 0 1 2 3 4 5 6 7 8 9


0 | 12 12 13 13 13 11 13 9 9 11
10 | 10 13 10 14 10 12

TX perbyte calibration

DQS loop = 15, cmp_err_1 = ffff0000
dqs_perbyte_dly.last_dqsdly_pass[0]=15, finish count=1
dqs_perbyte_dly.last_dqsdly_pass[1]=15, finish count=2
DQ loop=15, cmp_err_1 = ffff00aa
dqs_perbyte_dly.last_dqdly_pass[1]=15, finish count=1
DQ loop=14, cmp_err_1 = ffff0080
DQ loop=13, cmp_err_1 = ffff0080
DQ loop=12, cmp_err_1 = ffff0000
dqs_perbyte_dly.last_dqdly_pass[0]=12, finish count=2
byte:0, (DQS,DQ)=(9,8)
byte:1, (DQS,DQ)=(8,8)
20,data:89
[EMI] DRAMC calibration passed

MT7621 stage1 code done
CPU=50000000 HZ BUS=16666666 HZ

U-Boot 1.1.3 (Dec 31 2019 — 10:03:16) 0.00

Board: Ralink APSoC DRAM: 256 MB
relocate_code Pointer at: 8ff88000

Config XHCI 40M PLL
Allocate 16 byte aligned buffer: 8ffc8030
Enable NFI Clock
# MTK NAND # : Use HW ECC
NAND ID [EF F1 00 95 00]
Device found in MTK table, ID: eff1, EXT_ID: 9500
Support this Device in MTK table! eff1
select_chip
[NAND]select ecc bit:4, sparesize :64 spare_per_sector=16
Signature matched and data read!
load_fact_bbt success 1023
load fact bbt success
[mtk_nand] probe successfully!
mtd→writesize=2048 mtd→oobsize=64, mtd→erasesize=131072 devinfo.iowidth=8
..

Ralink UBoot Version: 5.0.0.2


ASIC MT7621A DualCore (MAC to MT7530 Mode)
DRAM_CONF_FROM: Auto-Detection
DRAM_TYPE: DDR3
DRAM bus: 16 bit
Xtal Mode=3 OCP Ratio=1/3
Flash component: NAND Flash
Date:Dec 31 2019 Time:10:03:16

icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:256, ways:4, linesz:32 ,total:32768

##### The CPU freq = 880 MHZ ####
estimate memory size =256 Mbytes
#Reset_MT7530
set LAN/WAN LLLLW

Please choose the operation:

 1: Load system code to SDRAM via TFTP.
 2: Load system code then write to Flash via TFTP.
 3: Boot system code via Flash (default).
 4: Entr boot command line interface.
 7: Load Boot Loader code then write to Flash via Serial.
 9: Load Boot Loader code then write to Flash via TFTP.

default: 3 0

3: System Boot system code via Flash[0].
## Booting image at bc300000 …

 Verifying Trx ...
              MT7621   stage1 code 10:33:11 (ASIC)
              CPU=50000000 HZ BUS=16666666 HZ

Change MPLL source from XTAL to CR…
do MEMPLL setting..
MEMPLL Config : 0x11100000
3PLL mode + External loopback

XTAL-40Mhz === DDR-1200Mhz

PLL2 FB_DL: 0xe, 1/0 = 685/339 39000000
PLL4 FB_DL: 0x13, 1/0 = 668/356 4D000000
PLL3 FB_DL: 0x15, 1/0 = 631/393 55000000
do DDR setting..[00320381]
Apply DDR3 Setting…(use customer AC)

        0    8   16   24   32   40   48   56   64   72   80   88   96  104  112  120
    --------------------------------------------------------------------------------

0000:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0001:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0002:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0003:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0004:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0005:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0006:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0007:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0008:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0009:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
000A:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
000B:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
000C:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
000D:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1
000E:| 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1
000F:| 0 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0
0010:| 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0
0011:| 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0
0012:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0013:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0014:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0015:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0016:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0017:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0018:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0019:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
001A:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
001B:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
001C:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
001D:| 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0
001E:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
001F:| 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
rank 0 coarse = 15
rank 0 fine = 64
B:| 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0
opt_dle value:10
DRAMC_R0DELDLY[018]=00001E20

              RX      DQS perbit delay software calibration

1.0-15 bit dq delay value

bit| 0 1 2 3 4 5 6 7 8 9


0 | 11 10 11 12 11 11 12 9 7 10
10 | 9 11 9 13 9 12


2.dqs window
x=pass dqs delay value (min~max)center
y=0-7bit DQ of every group
input delay:DQS0 =32 DQS1 = 30

bit DQS0 bit DQS1
0 (1~62)31 8 (1~56)28
1 (1~60)30 9 (1~58)29
2 (1~61)31 10 (1~58)29
3 (1~62)31 11 (1~56)28
4 (1~62)31 12 (1~58)29
5 (1~63)32 13 (1~57)29
6 (1~60)30 14 (1~58)29
7 (1~64)32 15 (1~59)30

3.dq delay value last

bit| 0 1 2 3 4 5 6 7 8 9


0 | 12 12 12 13 12 11 14 9 9 11
10 | 10 13 10 14 10 12

   TX  perbyte calibration

DQS loop = 15, cmp_err_1 = ffff0000
dqs_perbyte_dly.last_dqsdly_pass[0]=15, finish count=1
dqs_perbyte_dly.last_dqsdly_pass[1]=15, finish count=2
DQ loop=15, cmp_err_1 = ffff00a8
dqs_perbyte_dly.last_dqdly_pass[1]=15, finish count=1
DQ loop=14, cmp_err_1 = ffff0080
DQ loop=13, cmp_err_1 = ffff0080
DQ loop=12, cmp_err_1 = ffff0000
dqs_perbyte_dly.last_dqdly_pass[0]=12, finish count=2
byte:0, (DQS,DQ)=(9,8)
byte:1, (DQS,DQ)=(8,8)
20,data:89
[EMI] DRAMC calibration passed

              MT7621   stage1 code done
              CPU=50000000 HZ BUS=16666666 HZ

U-Boot 1.1.3 (Dec 31 2019 — 10:03:16) 0.00

Board: Ralink APSoC DRAM: 256 MB
relocate_code Pointer at: 8ff88000

Config XHCI 40M PLL
Allocate 16 byte aligned buffer: 8ffc8030
Enable NFI Clock
# MTK NAND # : Use HW ECC
NAND ID [EF F1 00 95 00]
Device found in MTK table, ID: eff1, EXT_ID: 9500
Support this Device in MTK table! eff1
select_chip
[NAND]select ecc bit:4, sparesize :64 spare_per_sector=16
Signature matched and data read!
load_fact_bbt success 1023
load fact bbt success
[mtk_nand] probe successfully!
mtd→writesize=2048 mtd→oobsize=64, mtd→erasesize=131072 devinfo.iowidth=8
..

Ralink UBoot Version: 5.0.0.2


ASIC MT7621A DualCore (MAC to MT7530 Mode)
DRAM_CONF_FROM: Auto-Detection
DRAM_TYPE: DDR3
DRAM bus: 16 bit
Xtal Mode=3 OCP Ratio=1/3
Flash component: NAND Flash
Date:Dec 31 2019 Time:10:03:16

icache: sets:256, ways:4, linesz:32 ,total:32768
dcache: sets:256, ways:4, linesz:32 ,total:32768

##### The CPU freq = 880 MHZ ####
estimate memory size =256 Mbytes
#Reset_MT7530
set LAN/WAN LLLLW

Please choose the operation:

 1: Load system code to SDRAM via TFTP.
 2: Load system code then write to Flash via TFTP.
 3: Boot system code via Flash (default).
 4: Entr boot command line interface.
 7: Load Boot Loader code then write to Flash via Serial.
 9: Load Boot Loader code then write to Flash via TFTP.

default: 3 0

3: System Boot system code via Flash[0].
## Booting image at bc300000 …

 Verifying Trx ... OK
 Image Name:   Linux Kernel Image
 Image Type:   MIPS Linux Kernel Image (lzma compressed)
 Data Size:    4194240 Bytes =  4 MB
 Load Address: 81001000
 Entry Point:  817da420

………………………………………………………. Verifying Checksum … OK

 Uncompressing Kernel Image ... OK

No initrd
## Transferring control to Linux (at address 817da420) …
## Giving linux memsize in MB, 256

Starting kernel …

for led test (red off) …

LINUX started…

THIS IS ASIC

SDK 5.0.S.0
Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled
serial8250: ttyS0 at MMIO 0x1e000d00 (irq = 27) is a 16550A
serial8250: ttyS1 at MMIO 0x1e000c00 (irq = 26) is a 16550A
Ralink gpio driver initialized
SSFDC read-only Flash Translation layer
MediaTek Nand driver init, version v2.1 Fix AHB virt2phys error
Allocate 16 byte aligned buffer: 81b444b0
Enable NFI Clock
# MTK NAND # : Use HW ECC
NAND ID [EF F1 00 95 00, 00009500]
Device found in MTK table, ID: eff1, EXT_ID: 9500
Support this Device in MTK table! eff1
NAND device: Manufacturer ID: 0xef, Chip ID: 0xf1 (Unknown NAND 128MiB 3,3V 8-bit), 128MiB, page size: 2048, OOB size: 64
[NAND]select ecc bit:4, sparesize :64 spare_per_sector=16
Scanning device for bad blocks
Signature matched and data read!
load_fact_bbt success 1023
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
in find_rootfs_partitions off=0x00300000 end=0x02300000
The trx header magic offset 0x00420000
MT7621-NAND: squash filesystem found at offset 0x00720000
Found image1 partition off 0x00720000 size 0x01be0000
in find_rootfs_partitions off=0x02300000 end=0x04300000
The trx header magic offset 0x00420000
MT7621-NAND: squash filesystem found at offset 0x02720000
Found image2 partition off 0x02720000 size 0x01be0000
Creating 13 MTD partitions on “MT7621-NAND”:
0x000000000000-0x000007f80000 : “ALL”
0x000000000000-0x000000100000 : “Bootloader”
0x000000100000-0x000000200000 : “Config”
0x000000200000-0x000000300000 : “Factory”
0x000000300000-0x000002300000 : “Kernel”
0x000000720000-0x000002300000 : “RootFS”
0x000002300000-0x000004300000 : “Kernel2”
0x000002720000-0x000004300000 : “RootFS2”
0x000004300000-0x000004500000 : “glbcfg”
0x000004500000-0x000004600000 : “board_data”
0x000004600000-0x000004800000 : “glbcfg2”
0x000004800000-0x000004900000 : “board_data2”
0x000004900000-0x000007f80000 : “data”
[mtk_nand] probe successfully!
IMQ driver loaded successfully. (numdevs = 16, numqueues = 1)

      Hooking IMQ after NAT on PREROUTING.
      Hooking IMQ before NAT on POSTROUTING.

PPP generic driver version 2.4.2
PPP BSD Compression module registered
NET: Registered protocol family 24
PPTP driver version 0.8.5
register mt_drv

pAd = c0281000, size = 6831936, Status=0

pAd→PciHif.CSRBaseAddress =0xc0180000, csr_addr=0xc0180000!
RTMPInitPCIeDevice():device_id=0x7615
mt_pci_chip_cfg(): HWVer=0x8a10, FWVer=0x8a10, pAd→ChipID=0x7615
mt_pci_chip_cfg(): HIF_SYS_REV=0x76150001
AP Driver version-5.0.4.0
RtmpChipOpsHook(223): Not support for HIF_MT yet! MACVersion=0x0
mt7615_init()-→
Use the default ePAeLNA bin image!
Use the default /etc_ro/wlan/MT7615E_EEPROM1.bin bin image!
←-mt7615_init()
←- RTMPAllocTxRxRingMemory, Status=0
rdm_major = 253
GMAC1_MAC_ADRH — : 0x0000000c
GMAC1_MAC_ADRL — : 0x43288036
Ralink APSoC Ethernet Driver Initilization. v3.1 1024 rx/tx descriptors allocated, mtu = 1500!
GMAC1_MAC_ADRH — : 0x0000000c
GMAC1_MAC_ADRL — : 0x43288036
PROC INIT OK!
ehci_hcd: USB 2.0 ‘Enhanced’ Host Controller (EHCI) Driver
ehci-pci: EHCI PCI platform driver
ehci-platform: EHCI generic platform driver
ohci_hcd: USB 1.1 ‘Open’ Host Controller (OHCI) Driver
*run project phy.
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
FM_OUT value: u4FmOut = 0(0x00000000)
xhci-hcd xhci-hcd: xHCI Host Controller
xhci-hcd xhci-hcd: new USB bus registered, assigned bus number 1
xhci-hcd xhci-hcd: irq 22, io mem 0x1e1c0000
usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: xHCI Host Controller
usb usb1: Manufacturer: Linux 3.10.14 xhci-hcd
usb usb1: SerialNumber: xhci-hcd
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
xhci-hcd xhci-hcd: xHCI Host Controller
xhci-hcd xhci-hcd: new USB bus registered, assigned bus number 2
usb usb2: New USB device found, idVendor=1d6b, idProduct=0003
usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb2: Product: xHCI Host Controller
usb usb2: Manufacturer: Linux 3.10.14 xhci-hcd
usb usb2: SerialNumber: xhci-hcd
hub 2-0:1.0: USB hub found
hub 2-0:1.0: 1 port detected
usbcore: registered new interface driver usb-storage
usbcore: registered new interface driver ums-alauda
usbcore: registered new interface driver ums-sddr09
usbcore: registered new interface driver ums-sddr55
GACT probability on
Mirror/redirect action on
netem: version 1.3
u32 classifier

  Performance counters on
  input device check on
  Actions configured

Netfilter messages via NETLINK v0.30.
nfnl_acct: registering with nfnetlink.
nf_conntrack version 0.5.0 (3875 buckets, 15500 max)
ctnetlink v0.93: registering with nfnetlink.
xt_time: kernel timezone is -0000
ip_set: protocol 6
ipip: IPv4 over IPv4 tunneling driver
gre: GRE over IPv4 demultiplexor driver
ip_gre: GRE over IPv4 tunneling driver
ip_tables: (C) 2000-2006 Netfilter Core Team
Type=Restricted Cone
ipt_CLUSTERIP: ClusterIP Version 0.8 loaded successfully
arp_tables: (C) 2002 David S. Miller
TCP: cubic registered
Initializing XFRM netlink socket
NET: Registered protocol family 10
ip6_tables: (C) 2000-2006 Netfilter Core Team
sit: IPv6 over IPv4 tunneling driver
ip6_gre: GRE over IPv6 tunneling driver
NET: Registered protocol family 17
Ebtables v2.0 registered
l2tp_core: L2TP core driver, V2.0
l2tp_ppp: PPPoL2TP kernel driver, V2.0
l2tp_ip: L2TP IP encapsulation support (L2TPv3)
l2tp_netlink: L2TP netlink interface
l2tp_eth: L2TP ethernet pseudowire support (L2TPv3)
l2tp_ip6: L2TP IP encapsulation support for IPv6 (L2TPv3)
8021q: 802.1Q VLAN Support v1.8
Key type dns_resolver registered
boot_part=0 /dev/mtdblock5
Boot from /dev/mtdblock5
VFS: Mounted root (squashfs filesystem) readonly on device 31:5.
devtmpfs: mounted
Freeing unused kernel memory: 292K (81ae7000 — 81b30000)
Arcadyan the primary config checkout succeed.
Arcadyan the second config checkout succeed.
arca.dbus.mng: is ready
agent_handler(236):arca.dbus.misc: is ready

Please press Enter to activate this console. MD5=[6a22c2ca805fe15a6cdd4c4d1558f597]
30:FFFFFFB1:FFFFFFB5:51:FFFFFFB1: 9
Raeth v3.1 (Tasklet)
set CLK_CFG_0 = 0x40a00020!!!!!!!!!!!!!!!!!!1
phy_free_head is 0xc1c000!!!
phy_free_tail_phy is 0xc1dff0!!!
txd_pool=a0c20000 phy_txd_pool=00C20000
ei_local→skb_free start address is 0x8ec6a6cc.
free_txd: 00c20010, ei_local→cpu_ptr: 00C20000
POOL HEAD_PTR | DMA_PTR | CPU_PTR
—————-+———+———

   0xa0c20000 0x00C20000 0x00C20000

phy_qrx_ring = 0x00c1e000, qrx_ring = 0xa0c1e000

phy_rx_ring0 = 0x00c28000, rx_ring[0] = 0xa0c28000
MT7530 Reset Completed!!
change HW-TRAP to 0x17c8f
set LAN/WAN LLLLW

fe_sw_init[7042] …. Power Down Ether PHY >>>>>>>>>>>>>>>

fe_sw_init[7045] …. Ether PHY End of Initialization >>>>>>>>>>>>>>>

GMAC1_MAC_ADRH — : 0x000030b1
GMAC1_MAC_ADRL — : 0xb551b109
GDMA2_MAC_ADRH — : 0x0000000c
GDMA2_MAC_ADRL — : 0x4328803a
eth3: ==⇒ VirtualIF_open
MT7621 GE2 link rate to 1G
CDMA_CSG_CFG = 81000000
GDMA1_FWD_CFG = 20710000
GDMA2_FWD_CFG = 20710000
GDMA2_MAC_ADRH — : 0x000030b1
GDMA2_MAC_ADRL — : 0xb551b106
eth3: ==⇒ VirtualIF_open
ffp: module license ‘Proprietary’ taints kernel.
Disabling lock debugging due to kernel taint
FFP module version 1.2.1 (Jan 14 2020 14:38:25) loaded successfully.
Ralink HW NAT Module Enabled
eth2 ifindex =13
eth3 ifindex =1b
ra0: ==⇒ main_virtual_if_open
load l1profile succeed!
driver_own()::Try to Clear FW Own…
driver_own()::Success to clear FW Own
multi-profile merge success, en:1,pf1_num:4,pf2_num:4,total:8
Open file “/etc/Wireless/RT2860/DBDC_card0.dat” to store DBDC cfg! (21)
RT_CfgSetMacAddress : invalid length (0)
RT_CfgSetMacAddress : invalid length (0)
RT_CfgSetMacAddress : invalid length (0)
RT_CfgSetMacAddress : invalid length (0)
RT_CfgSetMacAddress : invalid length (0)
RT_CfgSetMacAddress : invalid length (0)
RT_CfgSetMacAddress : invalid length (0)
E2pAccessMode=2
SSID[0]=Beeline_2G_F14892, EdcaIdx=0
SSID[1]=Beeline_2G_F14892-Guest, EdcaIdx=0
SSID[2]=ARC_Guest2, EdcaIdx=0
SSID[3]=ARC_Guest3, EdcaIdx=0
SSID[4]=Beeline_5G_F14892, EdcaIdx=0
SSID[5]=Beeline_5G_F14892-Guest, EdcaIdx=0
SSID[6]=ARC_5G_Guest2, EdcaIdx=0
SSID[7]=ARC_5G_Guest3, EdcaIdx=0
DBDC Mode=1, eDBDC_mode = 1
BSS0 PhyMode=14
wmode_band_equal(): Band Equal!
BSS1 PhyMode=14
BSS2 PhyMode=14
BSS3 PhyMode=14
BSS4 PhyMode=48
BSS5 PhyMode=48
BSS6 PhyMode=48
BSS7 PhyMode=48
auto_ch_select_set_cfg(): BandIdx0, AutoChannelAtBootup=1, AutoChannelAlg = 3
auto_ch_select_set_cfg(): BandIdx1, AutoChannelAtBootup=1, AutoChannelAlg = 3
BandSteering=0
BndStrgBssIdx=0;0;0;0;0;0;0;0
[TxPower] BAND0: 100, BAND1: 100
Power Boost (CCK, OFDM): RTMPSetProfileParameters[PowerUpCckOfdm] BAND1: (0)-(0)-(0)-(0)-(0)-(0)-(0)
Power Boost (HT20): RTMPSetProfileParametersPower Boost (HT40): RTMPSetProfileParametersPower Boost (VHT20): RTMPSetProfileParametersPower Boost (VHT40): RTMPSetProfileParametersPower Boost (VHT80): RTMPSetProfileParametersPower Boost (VHT160): RTMPSetProfileParameters[PERCENTAGEenable] BAND0: 1, BAND1: 1
[BFBACKOFFenable] BAND0: 0, BAND1: 0
CalCacheApply = 0
FragThreshold[0]=2346
FragThreshold[1]=2346
FragThreshold[2]=2346
FragThreshold[3]=2346
FragThreshold[4]=2346
FragThreshold[5]=2346
FragThreshold[6]=2346
FragThreshold[7]=2346
Valid=1
APAifsn[0]=3
APAifsn[1]=7
APAifsn[2]=1
APAifsn[3]=1
Valid=1
APAifsn[0]=3
APAifsn[1]=7
APAifsn[2]=1
APAifsn[3]=1
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
DfsZeroWait Support=0/0
DfsZeroWaitCacTime=255/255
RTMPSetProfileParameters(): ACSCheckTime[0]=86400 seconds
RTMPSetProfileParameters(): ACSCheckTime[1]=86400 seconds
read_etxbf: ETxBfEnCond = 0
read_etxbf: BSSID[0]
read_etxbf: MBSS[0] ETxBfEnCond = 0
read_etxbf: ETxBfEnCond = 0
read_etxbf: BSSID[1]
read_etxbf: MBSS[1] ETxBfEnCond = 0
read_etxbf: ETxBfEnCond = 0
read_etxbf: BSSID[2]
read_etxbf: MBSS[2] ETxBfEnCond = 0
read_etxbf: ETxBfEnCond = 0
read_etxbf: BSSID[3]
read_etxbf: MBSS[3] ETxBfEnCond = 0
read_etxbf: ETxBfEnCond = 1
read_etxbf: BSSID[4]
read_etxbf: MBSS[4] ETxBfEnCond = 1
read_etxbf: ETxBfEnCond = 1
read_etxbf: BSSID[5]
read_etxbf: MBSS[5] ETxBfEnCond = 1
read_etxbf: ETxBfEnCond = 1
read_etxbf: BSSID[6]
read_etxbf: MBSS[6] ETxBfEnCond = 1
read_etxbf: ETxBfEnCond = 1
read_etxbf: BSSID[7]
read_etxbf: MBSS[7] ETxBfEnCond = 1
[rtmp_read_ap_client_from_file] pf1=4 pf2=4
AndesSendCmdMsg: Could not send in band command due to diablefRTMP_ADAPTER_MCU_SEND_IN_BAND_CMD
AndesSendCmdMsg: Command type = ed, Extension command type = 48
HT: WDEV[0] Ext Channel = BELOW
HT: WDEV[1] Ext Channel = BELOW
HT: WDEV[2] Ext Channel = BELOW
HT: WDEV[3] Ext Channel = BELOW
HT: WDEV[4] Ext Channel = BELOW
HT: WDEV[5] Ext Channel = BELOW
HT: WDEV[6] Ext Channel = BELOW
HT: WDEV[7] Ext Channel = BELOW
HT: greenap_cap = 0
ICapMode = 0
WtcSetMaxStaNum: BssidNum:8, MaxStaNum:117 (WdsNum:0, ApcliNum:2, MaxNumChipRept:16), MinMcastWcid:118
Top Init Done!
Use alloc_skb
RX[0] DESC a0c14000 size = 16384
RX[1] DESC a0c12000 size = 8192
cut_through_init(): ct sw token number = 4095
cut_through_token_list_init(): TokenList inited done!id_head/tail=0/4096
cut_through_token_list_init(): 8d61d908,8d61d908
cut_through_token_list_init(): TokenList inited done!id_head/tail=0/4096
cut_through_token_list_init(): 8d61d918,8d61d918
Hif Init Done!
ctl→txq = c08ff688
ctl→rxq = c08ff694
ctl→ackq = c08ff6a0
ctl→kickq = c08ff6ac
ctl→tx_doneq = c08ff6b8
ctl→rx_doneq = c08ff6c4
Parsing patch header

      Built date: 20180518100604a
      Platform: ALPS
      HW/SW version: 0x8a108a10
      Patch version: 0x00000010
      Target address: 0x80000, length: 11072

patch is not ready && get semaphore success
EventGenericEventHandler: CMD Success
MtCmdPatchFinishReq
EventGenericEventHandler: CMD Success
release patch semaphore
WfMcuHwInit: Before NICLoadFirmware, check ICapMode = 0
Parsing CPU 0 fw tailer

      Chip ID: 0x04
      Eco version: 0x00
      Region number: 0x00
      Format version: 0x00
      Ram version: _reserved_
      Built date: 20191220015534
      Common crc: 0x0

Parsing tailer region 0

      Feature set: 0x01
      Target address: 0x84000, Download size: 409600

Parsing tailer region 1

      Feature set: 0x01
      Target address: 0x209c400, Download size: 48320

EventGenericEventHandler: CMD Success
EventGenericEventHandler: CMD Success
MtCmdFwStartReq: override = 0x1, address = 0x84000
EventGenericEventHandler: CMD Success
Parsing CPU 1 fw tailer

      Chip ID: 0x04
      Eco version: 0x00
      Region number: 0x00
      Format version: 0x00
      Ram version: _reserved_
      Built date: 20190415154149
      Common crc: 0x0

Parsing tailer region 0

      Feature set: 0x01
      Target address: 0x90000000, Download size: 122608

EventGenericEventHandler: CMD Success
MtCmdFwStartReq: override = 0x4, address = 0x0
EventGenericEventHandler: CMD Success
MCU Init Done!
efuse_probe: efuse = 10000212
RtmpChipOpsEepromHook::e2p_type=2, inf_Type=5
RtmpEepromGetDefault::e2p_dafault=1
RtmpChipOpsEepromHook: E2P type(2), E2pAccessMode = 2, E2P default = 1
NVM is FLASH mode. dev_idx [0] FLASH OFFSET [0x0]
NICReadEEPROMParameters: EEPROM 0x52 b300
NICReadEEPROMParameters: EEPROM 0x52 b300
Country Region from e2p = 101
mt7615_antenna_default_reset(): TxPath = 4, RxPath = 4
mt7615_antenna_default_reset(): DBDC BAND0 TxPath = 2, RxPath = 2
mt7615_antenna_default_reset(): DBDC BAND1 TxPath = 2, RxPath = 2
RcRadioInit(): DbdcMode=1, ConcurrentBand=2
RcRadioInit(): pRadioCtrl=8f2cef04,Band=0,rfcap=3,channel=1,PhyMode=2 extCha=0xf
RcRadioInit(): pRadioCtrl=8f2cf20c,Band=1,rfcap=2,channel=36,PhyMode=1 extCha=0xf
rcUpdateBandForBFMU PhyCtrl[0].RadioCtrl.IsBfBand = 1
rcUpdateBandForBFMU PhyCtrl[1].RadioCtrl.IsBfBand = 0
TxBfModuleEnCtrl:i = 0, pRadioCtrl→IsBfBand = 1
TxBfModuleEnCtrl:i = 1, pRadioCtrl→IsBfBand = 0
TxBfModuleEnCtrl:u1BfNum = 1, u1BfBitmap = 1, u1BfSelBand[0] = 0
MtCmdSetDbdcCtrl:(ret = 0)
MtSingleSkuLoadParam: RF_LOCKDOWN Feature OFF !!!
MtBfBackOffLoadParam: RF_LOCKDOWN Feature OFF !!!
EEPROM Init Done!
mt_mac_init()-→
mt7615_init_mac_cr()-→
mt7615_init_mac_cr(): TMAC_TRCR0=0x82783c8c
mt7615_init_mac_cr(): TMAC_TRCR1=0x82783c8c
←-mt_mac_init()
CmdRxHdrTransBLUpdateRsp::EventExtCmdResult.u4Status = 0x0
CmdRxHdrTransBLUpdateRsp::EventExtCmdResult.u4Status = 0x0
CmdRxHdrTransBLUpdateRsp::EventExtCmdResult.u4Status = 0x0
MAC Init Done!
MT7615BBPInit():BBP Initialization…..

      Band 0: valid=1, isDBDC=0, Band=2, CBW=1, CentCh/PrimCh=1/1, prim_ch_idx=0, txStream=2
      Band 1: valid=0, isDBDC=0, Band=0, CBW=0, CentCh/PrimCh=0/0, prim_ch_idx=0, txStream=0

MT7615BBPInit() todo
PHY Init Done!
MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
WifiFwdSet::disabled=0
ap_ftkd> Initialize FT KDP Module…
Main bssid = 00:00:00:00:00:00
MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
⇐=== mt_wifi_init, Status=0
TxBfModuleEnCtrl:i = 0, pRadioCtrl→IsBfBand = 1
TxBfModuleEnCtrl:i = 1, pRadioCtrl→IsBfBand = 0
TxBfModuleEnCtrl:u1BfNum = 1, u1BfBitmap = 1, u1BfSelBand[0] = 0
MtCmdEDCCACtrl: BandIdx: 0, EDCCACtrl: 1
MtCmdEDCCACtrl: BandIdx: 1, EDCCACtrl: 1
WtcSetMaxStaNum: BssidNum:8, MaxStaNum:117 (WdsNum:0, ApcliNum:2, MaxNumChipRept:16), MinMcastWcid:118
RedInit: set CR4/N9 RED Enable to 1.
RedInit: RED Initiailize Done.
cp_support_is_enabled: set CR4 CP_SUPPORT to Mode 2.
RTMP_COM_IoctlHandle → CMD_RTPRIV_IOCTL_VIRTUAL_INF_UP
wifi_sys_open(), wdev idx = 0
wdev_attr_update(): wdevId0 = 30:pr:iv:at:e0:07
[RcGetHdevByPhyMode]— channel 0 fix for rdev fetching
rcUpdateBandForBFMU PhyCtrl[0].RadioCtrl.IsBfBand = 1
rcUpdateBandForBFMU PhyCtrl[1].RadioCtrl.IsBfBand = 0
TxBfModuleEnCtrl:i = 0, pRadioCtrl→IsBfBand = 1
TxBfModuleEnCtrl:i = 1, pRadioCtrl→IsBfBand = 0
TxBfModuleEnCtrl:u1BfNum = 1, u1BfBitmap = 1, u1BfSelBand[0] = 0
MtCmdSetDbdcCtrl:(ret = 0)
[RadarStateCheck] RD_NORMAL_MODE
phy_freq_adjust : no prim_ch value for adjust!
Caller: wlan_operate_init+0xa4/0x11c
phy_mode=14, ch=0, wdev_type=1
ht_cap→HtCapInfo: ldpc=0,ch_width=1,gf=0,sgi20=1,sgi40=1,tx_stbc=1,rx_stbc=1,amsdu_size=1
ht_cap→HtCapParm: mdpu_density=5, ampdu_factor=3
AP inf up for ra_0(func_idx) OmacIdx=0
AsicRadioOnOffCtrl(): DbdcIdx=0 RadioOn
ApAutoChannelAtBootUp—————-→
ApAutoChannelAtBootUp: AutoChannelBootup[0] = 1
MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 1,control_ch2=0, central_chl = 1 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 2,control_ch2=0, central_chl = 2 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 3,control_ch2=0, central_chl = 3 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 4,control_ch2=0, central_chl = 4 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
:MtCmdPktBudgetCtrl: bssid(255),wcid(65535),type(0)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 5,control_ch2=0, central_chl = 5 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 6,control_ch2=0, central_chl = 6 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 7,control_ch2=0, central_chl = 7 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 8,control_ch2=0, central_chl = 8 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 9,control_ch2=0, central_chl = 9 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 10,control_ch2=0, central_chl = 10 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 11,control_ch2=0, central_chl = 11 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)

Channel 1 : Busy Time = 3704, Skip Channel = FALSE, BwCap = TRUE
Channel 2 : Busy Time = 1595, Skip Channel = FALSE, BwCap = TRUE
Channel 3 : Busy Time = 1067, Skip Channel = FALSE, BwCap = TRUE
Channel 4 : Busy Time = 114, Skip Channel = FALSE, BwCap = TRUE
Channel 5 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 6 : Busy Time = 1256, Skip Channel = FALSE, BwCap = TRUE
Channel 7 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 8 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 9 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 10 : Busy Time = 1256, Skip Channel = FALSE, BwCap = TRUE
Channel 11 : Busy Time = 6, Skip Channel = FALSE, BwCap = TRUE

Rule 3 Channel Busy time value : Select Primary Channel 5
Rule 3 Channel Busy time value : Min Channel Busy = 0
Rule 3 Channel Busy time value : BW = 20
[SelectClearChannelBusyTime] — band0 END
ApAutoChannelAtBootUp : Auto channel selection: Selected channel = 5, IsAband = 0
AutoChSelUpdateChannel(): Update channel for wdev for this band PhyMode = 14, Channel = 5
[RadarStateCheck] RD_NORMAL_MODE
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 5,control_ch2=0, central_chl = 3 DBDCIdx= 0, Band= 0
BW = 1,TXStream = 2, RXStream = 2, scan(0)
[DfsCacNormalStart] Normal start. Enable MAC TX
ApAutoChannelAtBootUp←—————-
[PMF]APPMFInit:: apidx=0, MFPC=0, MFPR=0, SHA256=0
wifi_sys_linkup(), wdev idx = 0
wtc_acquire_groupkey_wcid: Found a non-occupied wtbl_idx:127 for WDEV_TYPE:1
LinkToOmacIdx = 0, LinkToWdevType = 1
bssUpdateBmcMngRate (BSS_INFO_BROADCAST_INFO), CmdBssInfoBmcRate.u2BcTransmit= 0, CmdBssInfoBmcRate.u2McTransmit = 128
MtCmdSetDbdcCtrl:(ret = 0)
UpdateBeaconHandler, BCN_UPDATE_INIT, OmacIdx = 0
APStartUpForMbss: BssIndex = 0 channel = 5
MtCmdTxPowerDropCtrl: ucPowerDrop: 100, BandIdx: 0
[update_mgmt_frame_power] disable mgmt pwr ctrl
Enable 20/40 BSSCoex Channel Scan(BssCoex=1)
ExtEventBeaconLostHandler::FW LOG, Beacon lost (30:pr:iv:at:e0:07), Reason 0x10

Beacon lost - AP disabled!!!

MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 1,control_ch2=0, central_chl = 1 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 2,control_ch2=0, central_chl = 2 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 3,control_ch2=0, central_chl = 3 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 4,control_ch2=0, central_chl = 4 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 5,control_ch2=0, central_chl = 5 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 6,control_ch2=0, central_chl = 6 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 7,control_ch2=0, central_chl = 7 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 8,control_ch2=0, central_chl = 8 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
Channel[Idx=0, Ch=1].bEffectedChannel=0x2!
needFallBack=TRUE due to OP/OT!
Channel[Idx=1, Ch=2].bEffectedChannel=0x0!
Channel[Idx=2, Ch=3].bEffectedChannel=0x0!
Channel[Idx=3, Ch=4].bEffectedChannel=0x0!
Channel[Idx=4, Ch=5].bEffectedChannel=0x1!
needFallBack=TRUE due to OS!
Channel[Idx=5, Ch=6].bEffectedChannel=0x0!
Channel[Idx=6, Ch=7].bEffectedChannel=0x0!
Channel[Idx=7, Ch=8].bEffectedChannel=0x0!
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 5,control_ch2=0, central_chl = 3 DBDCIdx= 0, Band= 0
BW = 1,TXStream = 2, RXStream = 2, scan(0)
[DfsCacNormalStart] Normal start. Enable MAC TX
[DfsCacNormalStart] Normal start. Enable MAC TX
apidx 0 for WscUUIDInit
Generate UUID for apidx(0)
*dev→ifindex = 12
rax0: ==⇒ mbss_virtual_if_open
RTMP_COM_IoctlHandle → CMD_RTPRIV_IOCTL_VIRTUAL_INF_UP
wifi_sys_open(), wdev idx = 4
wdev_attr_update(): wdevId4 = 30:pr:iv:at:e0:07
[RcGetHdevByPhyMode] channel 0 fix for rdev fetching
rcUpdateBandForBFMU PhyCtrl[0].RadioCtrl.IsBfBand = 0
rcUpdateBandForBFMU PhyCtrl[1].RadioCtrl.IsBfBand = 1
TxBfModuleEnCtrl:i = 0, pRadioCtrl→IsBfBand = 0
TxBfModuleEnCtrl:i = 1, pRadioCtrl→IsBfBand = 1
TxBfModuleEnCtrl:u1BfNum = 1, u1BfBitmap = 1, u1BfSelBand[0] = 1
MtCmdSetDbdcCtrl:(ret = 0)
[RadarStateCheck] RD_NORMAL_MODE
phy_freq_adjust : no prim_ch value for adjust!
Caller: wlan_operate_init+0xa4/0x11c
phy_mode=48, ch=0, wdev_type=1
ht_cap→HtCapInfo: ldpc=1,ch_width=1,gf=0,sgi20=1,sgi40=1,tx_stbc=1,rx_stbc=1,amsdu_size=1
ht_cap→HtCapParm: mdpu_density=5, ampdu_factor=3
AP inf up for ra_4(func_idx) OmacIdx=20
AsicRadioOnOffCtrl(): DbdcIdx=0 RadioOn
ApAutoChannelAtBootUp—————-→
ApAutoChannelAtBootUp: AutoChannelBootup[1] = 1
MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
[AutoChSelBuildChannelListFor5G] ChListNum5G = 14
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 36,control_ch2=0, central_chl = 36 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 40,control_ch2=0, central_chl = 40 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 44,control_ch2=0, central_chl = 44 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 48,control_ch2=0, central_chl = 48 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 52,control_ch2=0, central_chl = 52 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 56,control_ch2=0, central_chl = 56 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 60,control_ch2=0, central_chl = 60 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 64,control_ch2=0, central_chl = 64 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
====================================================================
Channel 36 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 40 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 44 : Busy Time = 227, Skip Channel = FALSE, BwCap = TRUE
Channel 48 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 52 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 56 : Busy Time = 181, Skip Channel = FALSE, BwCap = TRUE
Channel 60 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 64 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
====================================================================
Rule 3 Channel Busy time value : Select Primary Channel 52
Rule 3 Channel Busy time value : Min Channel Busy = 181
Rule 3 Channel Busy time value : BW = 80
[SelectClearChannelBusyTime] — band1 END
ApAutoChannelAtBootUp : Auto channel selection: Selected channel = 52, IsAband = 1
AutoChSelUpdateChannel(): Update channel for wdev for this band PhyMode = 48, Channel = 52
[RadarStateCheck] RD_NORMAL_MODE
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 52,control_ch2=0, central_chl = 58 DBDCIdx= 1, Band= 0
BW = 2,TXStream = 2, RXStream = 2, scan(0)
[DfsCacNormalStart] Normal start. Enable MAC TX
[WrapDfsRadarDetectStart]: DfsChBand[0]: 0, DfsChBand[1]: 0
ApAutoChannelAtBootUp←—————-
[PMF]APPMFInit:: apidx=4, MFPC=0, MFPR=0, SHA256=0
wifi_sys_linkup(), wdev idx = 4
wtc_acquire_groupkey_wcid: Found a non-occupied wtbl_idx:126 for WDEV_TYPE:1
LinkToOmacIdx = 14, LinkToWdevType = 1
bssUpdateBmcMngRate (BSS_INFO_BROADCAST_INFO), CmdBssInfoBmcRate.u2BcTransmit= 8192, CmdBssInfoBmcRate.u2McTransmit = 8320
MtCmdSetDbdcCtrl:(ret = 0)
UpdateBeaconHandler, BCN_UPDATE_INIT, OmacIdx = 14
APStartUpForMbss: BssIndex = 1 channel = 52
MtCmdTxPowerDropCtrl: ucPowerDrop: 100, BandIdx: 1
[update_mgmt_frame_power] disable mgmt pwr ctrl
apidx 4 for WscUUIDInit
Generate UUID for apidx(4)
ExtEventBeaconLostHandler::FW LOG, Beacon lost (30:pr:iv:at:e0:07), Reason 0x10
Beacon lost — AP disabled!!!
*dev→ifindex = 1f
MtCmdGetThermalSensorResult:(ret = 0)
device eth2 entered promiscuous mode
device ra0 entered promiscuous mode
device rax0 entered promiscuous mode
br0: port 3(rax0) entered forwarding state
br0: port 3(rax0) entered forwarding state
br0: port 2(ra0) entered forwarding state
br0: port 2(ra0) entered forwarding state
br0: port 1(eth2) entered forwarding state
br0: port 1(eth2) entered forwarding state
ra0: ==⇒ main_virtual_if_close
wifi_sys_linkdown(), wdev idx = 0
ExtEventBeaconLostHandler::FW LOG, Beacon lost (30:pr:iv:at:e0:07), Reason 0x10

Beacon lost - AP disabled!!!

bssUpdateBmcMngRate (BSS_INFO_BROADCAST_INFO), CmdBssInfoBmcRate.u2BcTransmit= 0, CmdBssInfoBmcRate.u2McTransmit = 0
wifi_sys_close(), wdev idx = 0
*PpeDevUnRegHandler
*PpeDevUnRegHandler
*PpeDevUnRegHandler
br0: port 2(ra0) entered disabled state
rax0: ==⇒ mbss_virtual_if_close
wifi_sys_linkdown(), wdev idx = 4
ExtEventBeaconLostHandler::FW LOG, Beacon lost (30:pr:iv:at:e0:07), Reason 0x10
Beacon lost — AP disabled!!!
bssUpdateBmcMngRate (BSS_INFO_BROADCAST_INFO), CmdBssInfoBmcRate.u2BcTransmit= 0, CmdBssInfoBmcRate.u2McTransmit = 0
wifi_sys_close(), wdev idx = 4
APStop(), oper(0) bssid(0)=30:pr:iv:at:e0:07
wifi_sys_close(), wdev idx = 0
ap_ftkd> Release FT KDP Module…
MtCmdFdFrameOffloadSet(): Enable = 0, OwnMacIdx = 0, WlanIdx = 0, Band = 0, Len = 0
wifi_sys_close(), wdev idx = 1
wifi_sys_close(), wdev idx = 2
wifi_sys_close(), wdev idx = 3
wifi_sys_close(), wdev idx = 4
wifi_sys_close(), wdev idx = 5
wifi_sys_close(), wdev idx = 6
wifi_sys_close(), wdev idx = 7
⇐== APStop()
CmdReStartDLRsp: WiFI FW Download Success
RT28xxPciAsicRadioOff(): Not support for HIF_MT yet!
RTMPDrvClose call RT28xxPciAsicRadioOff fail !!
tx_kickout_fail_count = 0
tx_timeout_fail_count = 0
rx_receive_fail_count = 0
alloc_cmd_msg = 1435
free_cmd_msg = 1435
cut_through_token_list_destroy(): 8d61d908,8d61d908
cut_through_token_list_destroy(): 8d61d918,8d61d918
fw_own()::Set Fw Own
RTMP_AllTimerListRelease: Size=65
RTMP_AllTimerListRelease: Cancel timer obj c039bc0c, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c039bc44, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03a2aac, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03a2ae4, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03a994c, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03a9984, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03b07ec, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03b0824, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03b768c, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03b76c4, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03be52c, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03be564, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03c53cc, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03c5404, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03cc26c, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03cc2a4, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03d310c, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03d3144, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03d9fac, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03d9fe4, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03e0e4c, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03e0e84, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03e7cec, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03e7d24, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03eeb8c, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03eebc4, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03f5a2c, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03f5a64, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03fc8cc, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03fc904, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c040376c, name: &pOceCtrl→Scan11bOceAPTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x8c/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c04037a4, name: &pOceCtrl→MaxChannelTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0xb0/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c0797ea0, name: &pAd→ApCfg.APAutoScanNeighborTimer!
RTMP_AllTimerListRelease: Timer is allocated by OceInit+0x1b8/0x240,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c039bb74, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c039bba8, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03a2a14, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03a2a48, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03a98b4, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03a98e8, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03b0754, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03b0788, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03b75f4, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03b7628, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03be494, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03be4c8, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03c5334, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03c5368, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03cc1d4, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03cc208, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03d3074, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03d30a8, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03d9f14, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03d9f48, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03e0db4, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03e0de8, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03e7c54, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03e7c88, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03eeaf4, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03eeb28, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03f5994, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03f59c8, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03fc834, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c03fc868, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c04036d4, name: &pRrmCfg→QuietCB.QuietOffsetTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x80/0x194,Valid:1,Lock:c0904b64,State:0
RTMP_AllTimerListRelease: Cancel timer obj c0403708, name: &pRrmCfg→QuietCB.QuietTimer!
RTMP_AllTimerListRelease: Timer is allocated by RRM_CfgInit+0x9c/0x194,Valid:1,Lock:c0904b64,State:0
fw_own()::Return since already in Fw Own…
←—HwCtrlThread
*PpeDevUnRegHandler
*PpeDevUnRegHandler
*PpeDevUnRegHandler
br0: port 3(rax0) entered disabled state
ra0: ==⇒ main_virtual_if_open
load l1profile succeed!
driver_own()::Try to Clear FW Own…
driver_own()::Success to clear FW Own
multi-profile merge success, en:1,pf1_num:4,pf2_num:4,total:8
Open file “/etc/Wireless/RT2860/DBDC_card0.dat” to store DBDC cfg! (21)
RT_CfgSetMacAddress : invalid length (0)
RT_CfgSetMacAddress : invalid length (0)
RT_CfgSetMacAddress : invalid length (0)
RT_CfgSetMacAddress : invalid length (0)
RT_CfgSetMacAddress : invalid length (0)
RT_CfgSetMacAddress : invalid length (0)
RT_CfgSetMacAddress : invalid length (0)
E2pAccessMode=2
SSID[0]=Beeline_2G_F14892, EdcaIdx=0
SSID[1]=Beeline_2G_F14892-Guest, EdcaIdx=0
SSID[2]=ARC_Guest2, EdcaIdx=0
SSID[3]=ARC_Guest3, EdcaIdx=0
SSID[4]=Beeline_5G_F14892, EdcaIdx=1
SSID[5]=Beeline_5G_F14892-Guest, EdcaIdx=1
SSID[6]=ARC_5G_Guest2, EdcaIdx=1
SSID[7]=ARC_5G_Guest3, EdcaIdx=1
DBDC Mode=1, eDBDC_mode = 1
BSS0 PhyMode=14
wmode_band_equal(): Band Equal!
BSS1 PhyMode=14
BSS2 PhyMode=14
BSS3 PhyMode=14
BSS4 PhyMode=48
BSS5 PhyMode=48
BSS6 PhyMode=48
BSS7 PhyMode=48
auto_ch_select_set_cfg(): BandIdx0, AutoChannelAtBootup=1, AutoChannelAlg = 3
auto_ch_select_set_cfg(): BandIdx1, AutoChannelAtBootup=1, AutoChannelAlg = 3
BandSteering=0
BndStrgBssIdx=0;0;0;0;0;0;0;0
[TxPower] BAND0: 100, BAND1: 100
Power Boost (CCK, OFDM): RTMPSetProfileParameters[PowerUpCckOfdm] BAND1: (0)-(0)-(0)-(0)-(0)-(0)-(0)
Power Boost (HT20): RTMPSetProfileParametersPower Boost (HT40): RTMPSetProfileParametersPower Boost (VHT20): RTMPSetProfileParametersPower Boost (VHT40): RTMPSetProfileParametersPower Boost (VHT80): RTMPSetProfileParametersPower Boost (VHT160): RTMPSetProfileParameters[PERCENTAGEenable] BAND0: 1, BAND1: 1
[BFBACKOFFenable] BAND0: 0, BAND1: 0
CalCacheApply = 0
FragThreshold[0]=2346
FragThreshold[1]=2346
FragThreshold[2]=2346
FragThreshold[3]=2346
FragThreshold[4]=2346
FragThreshold[5]=2346
FragThreshold[6]=2346
FragThreshold[7]=2346
Valid=1
APAifsn[0]=3
APAifsn[1]=7
APAifsn[2]=1
APAifsn[3]=1
Valid=1
APAifsn[0]=3
APAifsn[1]=7
APAifsn[2]=1
APAifsn[3]=1
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
BSSAifsn[0]=3
BSSAifsn[1]=7
BSSAifsn[2]=2
BSSAifsn[3]=2
DfsZeroWait Support=0/0
DfsZeroWaitCacTime=255/255
RTMPSetProfileParameters(): ACSCheckTime[0]=86400 seconds
RTMPSetProfileParameters(): ACSCheckTime[1]=86400 seconds
read_etxbf: ETxBfEnCond = 0
read_etxbf: BSSID[0]
read_etxbf: MBSS[0] ETxBfEnCond = 0
read_etxbf: ETxBfEnCond = 0
read_etxbf: BSSID[1]
read_etxbf: MBSS[1] ETxBfEnCond = 0
read_etxbf: ETxBfEnCond = 0
read_etxbf: BSSID[2]
read_etxbf: MBSS[2] ETxBfEnCond = 0
read_etxbf: ETxBfEnCond = 0
read_etxbf: BSSID[3]
read_etxbf: MBSS[3] ETxBfEnCond = 0
read_etxbf: ETxBfEnCond = 1
read_etxbf: BSSID[4]
read_etxbf: MBSS[4] ETxBfEnCond = 1
read_etxbf: ETxBfEnCond = 1
read_etxbf: BSSID[5]
read_etxbf: MBSS[5] ETxBfEnCond = 1
read_etxbf: ETxBfEnCond = 1
read_etxbf: BSSID[6]
read_etxbf: MBSS[6] ETxBfEnCond = 1
read_etxbf: ETxBfEnCond = 1
read_etxbf: BSSID[7]
read_etxbf: MBSS[7] ETxBfEnCond = 1
[rtmp_read_ap_client_from_file] pf1=4 pf2=4
AndesSendCmdMsg: Could not send in band command due to diablefRTMP_ADAPTER_MCU_SEND_IN_BAND_CMD
AndesSendCmdMsg: Command type = ed, Extension command type = 48
HT: WDEV[0] Ext Channel = BELOW
HT: WDEV[1] Ext Channel = BELOW
HT: WDEV[2] Ext Channel = BELOW
HT: WDEV[3] Ext Channel = BELOW
HT: WDEV[4] Ext Channel = BELOW
HT: WDEV[5] Ext Channel = BELOW
HT: WDEV[6] Ext Channel = BELOW
HT: WDEV[7] Ext Channel = BELOW
HT: greenap_cap = 0
ICapMode = 0
WtcSetMaxStaNum: BssidNum:8, MaxStaNum:117 (WdsNum:0, ApcliNum:2, MaxNumChipRept:16), MinMcastWcid:118
Top Init Done!
Use alloc_skb
RX[0] DESC a0c14000 size = 16384
RX[1] DESC a0c12000 size = 8192
cut_through_init(): ct sw token number = 4095
cut_through_token_list_init(): TokenList inited done!id_head/tail=0/4096
cut_through_token_list_init(): 8d624108,8d624108
cut_through_token_list_init(): TokenList inited done!id_head/tail=0/4096
cut_through_token_list_init(): 8d624118,8d624118
Hif Init Done!
ctl→txq = c08ff688
ctl→rxq = c08ff694
ctl→ackq = c08ff6a0
ctl→kickq = c08ff6ac
ctl→tx_doneq = c08ff6b8
ctl→rx_doneq = c08ff6c4
Parsing patch header

      Built date: 20180518100604a
      Platform: ALPS
      HW/SW version: 0x8a108a10
      Patch version: 0x00000010
      Target address: 0x80000, length: 11072

patch is ready, continue to ILM/DLM DL
WfMcuHwInit: Before NICLoadFirmware, check ICapMode = 0
Parsing CPU 0 fw tailer

      Chip ID: 0x04
      Eco version: 0x00
      Region number: 0x00
      Format version: 0x00
      Ram version: _reserved_
      Built date: 20191220015534
      Common crc: 0x0

Parsing tailer region 0

      Feature set: 0x01
      Target address: 0x84000, Download size: 409600

Parsing tailer region 1

      Feature set: 0x01
      Target address: 0x209c400, Download size: 48320

EventGenericEventHandler: CMD Success
EventGenericEventHandler: CMD Success
MtCmdFwStartReq: override = 0x1, address = 0x84000
EventGenericEventHandler: CMD Success
Parsing CPU 1 fw tailer

      Chip ID: 0x04
      Eco version: 0x00
      Region number: 0x00
      Format version: 0x00
      Ram version: _reserved_
      Built date: 20190415154149
      Common crc: 0x0

Parsing tailer region 0

      Feature set: 0x01
      Target address: 0x90000000, Download size: 122608

EventGenericEventHandler: CMD Success
MtCmdFwStartReq: override = 0x4, address = 0x0
EventGenericEventHandler: CMD Success
MCU Init Done!
efuse_probe: efuse = 10000212
RtmpChipOpsEepromHook::e2p_type=2, inf_Type=5
RtmpEepromGetDefault::e2p_dafault=1
RtmpChipOpsEepromHook: E2P type(2), E2pAccessMode = 2, E2P default = 1
NVM is FLASH mode. dev_idx [0] FLASH OFFSET [0x0]
NICReadEEPROMParameters: EEPROM 0x52 b300
NICReadEEPROMParameters: EEPROM 0x52 b300
Country Region from e2p = 101
mt7615_antenna_default_reset(): TxPath = 4, RxPath = 4
mt7615_antenna_default_reset(): DBDC BAND0 TxPath = 2, RxPath = 2
mt7615_antenna_default_reset(): DBDC BAND1 TxPath = 2, RxPath = 2
RcRadioInit(): DbdcMode=1, ConcurrentBand=2
RcRadioInit(): pRadioCtrl=8f2cef04,Band=0,rfcap=3,channel=1,PhyMode=2 extCha=0xf
RcRadioInit(): pRadioCtrl=8f2cf20c,Band=1,rfcap=2,channel=36,PhyMode=1 extCha=0xf
rcUpdateBandForBFMU PhyCtrl[0].RadioCtrl.IsBfBand = 1
rcUpdateBandForBFMU PhyCtrl[1].RadioCtrl.IsBfBand = 0
TxBfModuleEnCtrl:i = 0, pRadioCtrl→IsBfBand = 1
TxBfModuleEnCtrl:i = 1, pRadioCtrl→IsBfBand = 0
TxBfModuleEnCtrl:u1BfNum = 1, u1BfBitmap = 1, u1BfSelBand[0] = 0
MtCmdSetDbdcCtrl:(ret = 0)
MtSingleSkuLoadParam: RF_LOCKDOWN Feature OFF !!!
MtBfBackOffLoadParam: RF_LOCKDOWN Feature OFF !!!
EEPROM Init Done!
mt_mac_init()-→
mt7615_init_mac_cr()-→
mt7615_init_mac_cr(): TMAC_TRCR0=0x82783c8c
mt7615_init_mac_cr(): TMAC_TRCR1=0x82783c8c
←-mt_mac_init()
CmdRxHdrTransBLUpdateRsp::EventExtCmdResult.u4Status = 0x0
CmdRxHdrTransBLUpdateRsp::EventExtCmdResult.u4Status = 0x0
CmdRxHdrTransBLUpdateRsp::EventExtCmdResult.u4Status = 0x0
MAC Init Done!
MT7615BBPInit():BBP Initialization…..

      Band 0: valid=1, isDBDC=0, Band=2, CBW=1, CentCh/PrimCh=1/1, prim_ch_idx=0, txStream=2
      Band 1: valid=0, isDBDC=0, Band=0, CBW=0, CentCh/PrimCh=0/0, prim_ch_idx=0, txStream=0

MT7615BBPInit() todo
PHY Init Done!
MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
WifiFwdSet::disabled=0
ap_ftkd> Initialize FT KDP Module…
Main bssid = 30:pr:iv:at:e0:07
MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
⇐=== mt_wifi_init, Status=0
TxBfModuleEnCtrl:i = 0, pRadioCtrl→IsBfBand = 1
TxBfModuleEnCtrl:i = 1, pRadioCtrl→IsBfBand = 0
TxBfModuleEnCtrl:u1BfNum = 1, u1BfBitmap = 1, u1BfSelBand[0] = 0
MtCmdEDCCACtrl: BandIdx: 0, EDCCACtrl: 1
MtCmdEDCCACtrl: BandIdx: 1, EDCCACtrl: 1
WtcSetMaxStaNum: BssidNum:8, MaxStaNum:117 (WdsNum:0, ApcliNum:2, MaxNumChipRept:16), MinMcastWcid:118
RedInit: set CR4/N9 RED Enable to 1.
RedInit: RED Initiailize Done.
cp_support_is_enabled: set CR4 CP_SUPPORT to Mode 2.
RTMP_COM_IoctlHandle → CMD_RTPRIV_IOCTL_VIRTUAL_INF_UP
wifi_sys_open(), wdev idx = 0
wdev_attr_update(): wdevId0 = 30:pr:iv:at:e0:07
[RcGetHdevByPhyMode]— channel 0 fix for rdev fetching
rcUpdateBandForBFMU PhyCtrl[0].RadioCtrl.IsBfBand = 1
rcUpdateBandForBFMU PhyCtrl[1].RadioCtrl.IsBfBand = 0
TxBfModuleEnCtrl:i = 0, pRadioCtrl→IsBfBand = 1
TxBfModuleEnCtrl:i = 1, pRadioCtrl→IsBfBand = 0
TxBfModuleEnCtrl:u1BfNum = 1, u1BfBitmap = 1, u1BfSelBand[0] = 0
MtCmdSetDbdcCtrl:(ret = 0)
[RadarStateCheck] RD_NORMAL_MODE
phy_freq_adjust : no prim_ch value for adjust!
Caller: wlan_operate_init+0xa4/0x11c
phy_mode=14, ch=0, wdev_type=1
ht_cap→HtCapInfo: ldpc=0,ch_width=1,gf=0,sgi20=1,sgi40=1,tx_stbc=1,rx_stbc=1,amsdu_size=1
ht_cap→HtCapParm: mdpu_density=5, ampdu_factor=3
AP inf up for ra_0(func_idx) OmacIdx=0
AsicRadioOnOffCtrl(): DbdcIdx=0 RadioOn
ApAutoChannelAtBootUp—————-→
ApAutoChannelAtBootUp: AutoChannelBootup[0] = 1
MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 1,control_ch2=0, central_chl = 1 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 2,control_ch2=0, central_chl = 2 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 3,control_ch2=0, central_chl = 3 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 4,control_ch2=0, central_chl = 4 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
:MtCmdPktBudgetCtrl: bssid(255),wcid(65535),type(0)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 5,control_ch2=0, central_chl = 5 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 6,control_ch2=0, central_chl = 6 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 7,control_ch2=0, central_chl = 7 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 8,control_ch2=0, central_chl = 8 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 9,control_ch2=0, central_chl = 9 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 10,control_ch2=0, central_chl = 10 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 11,control_ch2=0, central_chl = 11 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)

Channel 1 : Busy Time = 4740, Skip Channel = FALSE, BwCap = TRUE
Channel 2 : Busy Time = 633, Skip Channel = FALSE, BwCap = TRUE
Channel 3 : Busy Time = 1066, Skip Channel = FALSE, BwCap = TRUE
Channel 4 : Busy Time = 13, Skip Channel = FALSE, BwCap = TRUE
Channel 5 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 6 : Busy Time = 1256, Skip Channel = FALSE, BwCap = TRUE
Channel 7 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 8 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 9 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 10 : Busy Time = 1256, Skip Channel = FALSE, BwCap = TRUE
Channel 11 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE

Rule 3 Channel Busy time value : Select Primary Channel 5
Rule 3 Channel Busy time value : Min Channel Busy = 0
Rule 3 Channel Busy time value : BW = 20
[SelectClearChannelBusyTime] — band0 END
ApAutoChannelAtBootUp : Auto channel selection: Selected channel = 5, IsAband = 0
AutoChSelUpdateChannel(): Update channel for wdev for this band PhyMode = 14, Channel = 5
[RadarStateCheck] RD_NORMAL_MODE
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 5,control_ch2=0, central_chl = 3 DBDCIdx= 0, Band= 0
BW = 1,TXStream = 2, RXStream = 2, scan(0)
[DfsCacNormalStart] Normal start. Enable MAC TX
ApAutoChannelAtBootUp←—————-
[PMF]APPMFInit:: apidx=0, MFPC=0, MFPR=0, SHA256=0
wifi_sys_linkup(), wdev idx = 0
wtc_acquire_groupkey_wcid: Found a non-occupied wtbl_idx:127 for WDEV_TYPE:1
LinkToOmacIdx = 0, LinkToWdevType = 1
bssUpdateBmcMngRate (BSS_INFO_BROADCAST_INFO), CmdBssInfoBmcRate.u2BcTransmit= 0, CmdBssInfoBmcRate.u2McTransmit = 128
MtCmdSetDbdcCtrl:(ret = 0)
UpdateBeaconHandler, BCN_UPDATE_INIT, OmacIdx = 0
APStartUpForMbss: BssIndex = 0 channel = 5
MtCmdTxPowerDropCtrl: ucPowerDrop: 100, BandIdx: 0
[update_mgmt_frame_power] disable mgmt pwr ctrl
Enable 20/40 BSSCoex Channel Scan(BssCoex=1)
ExtEventBeaconLostHandler::FW LOG, Beacon lost (30:pr:iv:at:e0:07), Reason 0x10

Beacon lost - AP disabled!!!

MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 1,control_ch2=0, central_chl = 1 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 2,control_ch2=0, central_chl = 2 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 3,control_ch2=0, central_chl = 3 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 4,control_ch2=0, central_chl = 4 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 5,control_ch2=0, central_chl = 5 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 6,control_ch2=0, central_chl = 6 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 7,control_ch2=0, central_chl = 7 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 8,control_ch2=0, central_chl = 8 DBDCIdx= 0, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
AP OBSS SYNC — BBP R4 to 20MHz.l
Channel[Idx=0, Ch=1].bEffectedChannel=0x2!
needFallBack=TRUE due to OP/OT!
Channel[Idx=1, Ch=2].bEffectedChannel=0x0!
Channel[Idx=2, Ch=3].bEffectedChannel=0x2!
needFallBack=TRUE due to OP/OT!
Channel[Idx=3, Ch=4].bEffectedChannel=0x0!
Channel[Idx=4, Ch=5].bEffectedChannel=0x1!
needFallBack=TRUE due to OS!
Channel[Idx=5, Ch=6].bEffectedChannel=0x0!
Channel[Idx=6, Ch=7].bEffectedChannel=0x0!
Channel[Idx=7, Ch=8].bEffectedChannel=0x0!
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 5,control_ch2=0, central_chl = 3 DBDCIdx= 0, Band= 0
BW = 1,TXStream = 2, RXStream = 2, scan(0)
[DfsCacNormalStart] Normal start. Enable MAC TX
[DfsCacNormalStart] Normal start. Enable MAC TX
apidx 0 for WscUUIDInit
Generate UUID for apidx(0)
*dev→ifindex = 12
br0: port 2(ra0) entered forwarding state
br0: port 2(ra0) entered forwarding state
MtCmdGetThermalSensorResult:(ret = 0)
rax0: ==⇒ mbss_virtual_if_open
RTMP_COM_IoctlHandle → CMD_RTPRIV_IOCTL_VIRTUAL_INF_UP
wifi_sys_open(), wdev idx = 4
wdev_attr_update(): wdevId4 = 30:pr:iv:at:e0:07
[RcGetHdevByPhyMode] channel 0 fix for rdev fetching
rcUpdateBandForBFMU PhyCtrl[0].RadioCtrl.IsBfBand = 0
rcUpdateBandForBFMU PhyCtrl[1].RadioCtrl.IsBfBand = 1
TxBfModuleEnCtrl:i = 0, pRadioCtrl→IsBfBand = 0
TxBfModuleEnCtrl:i = 1, pRadioCtrl→IsBfBand = 1
TxBfModuleEnCtrl:u1BfNum = 1, u1BfBitmap = 1, u1BfSelBand[0] = 1
MtCmdSetDbdcCtrl:(ret = 0)
[RadarStateCheck] RD_NORMAL_MODE
phy_freq_adjust : no prim_ch value for adjust!
Caller: wlan_operate_init+0xa4/0x11c
phy_mode=48, ch=0, wdev_type=1
ht_cap→HtCapInfo: ldpc=1,ch_width=1,gf=0,sgi20=1,sgi40=1,tx_stbc=1,rx_stbc=1,amsdu_size=1
ht_cap→HtCapParm: mdpu_density=5, ampdu_factor=3
AP inf up for ra_4(func_idx) OmacIdx=20
AsicRadioOnOffCtrl(): DbdcIdx=0 RadioOn
ApAutoChannelAtBootUp—————-→
ApAutoChannelAtBootUp: AutoChannelBootup[1] = 1
MtCmdSetMacTxRx:(ret = 0)
MtCmdSetMacTxRx:(ret = 0)
[AutoChSelBuildChannelListFor5G] ChListNum5G = 14
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 36,control_ch2=0, central_chl = 36 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 40,control_ch2=0, central_chl = 40 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 44,control_ch2=0, central_chl = 44 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 48,control_ch2=0, central_chl = 48 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 52,control_ch2=0, central_chl = 52 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 56,control_ch2=0, central_chl = 56 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 60,control_ch2=0, central_chl = 60 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 64,control_ch2=0, central_chl = 64 DBDCIdx= 1, Band= 0
BW = 0,TXStream = 2, RXStream = 2, scan(1)
====================================================================
Channel 36 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 40 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 44 : Busy Time = 227, Skip Channel = FALSE, BwCap = TRUE
Channel 48 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 52 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 56 : Busy Time = 181, Skip Channel = FALSE, BwCap = TRUE
Channel 60 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
Channel 64 : Busy Time = 0, Skip Channel = FALSE, BwCap = TRUE
====================================================================
Rule 3 Channel Busy time value : Select Primary Channel 52
Rule 3 Channel Busy time value : Min Channel Busy = 181
Rule 3 Channel Busy time value : BW = 80
[SelectClearChannelBusyTime] — band1 END
ApAutoChannelAtBootUp : Auto channel selection: Selected channel = 52, IsAband = 1
AutoChSelUpdateChannel(): Update channel for wdev for this band PhyMode = 48, Channel = 52
[RadarStateCheck] RD_NORMAL_MODE
mt7615_apply_cal_data() : eeprom 0x52 bit 1 is 0, do runtime cal , skip RX reload
mt7615_apply_cal_data() : eeprom 0x52 bit 0 is 0, do runtime cal , skip TX reload
MtCmdChannelSwitch: control_chl = 52,control_ch2=0, central_chl = 58 DBDCIdx= 1, Band= 0
BW = 2,TXStream = 2, RXStream = 2, scan(0)
[DfsCacNormalStart] Normal start. Enable MAC TX
[WrapDfsRadarDetectStart]: DfsChBand[0]: 0, DfsChBand[1]: 0
ApAutoChannelAtBootUp←—————-
[PMF]APPMFInit:: apidx=4, MFPC=0, MFPR=0, SHA256=0
wifi_sys_linkup(), wdev idx = 4
wtc_acquire_groupkey_wcid: Found a non-occupied wtbl_idx:126 for WDEV_TYPE:1
LinkToOmacIdx = 14, LinkToWdevType = 1
bssUpdateBmcMngRate (BSS_INFO_BROADCAST_INFO), CmdBssInfoBmcRate.u2BcTransmit= 8192, CmdBssInfoBmcRate.u2McTransmit = 8320
MtCmdSetDbdcCtrl:(ret = 0)
UpdateBeaconHandler, BCN_UPDATE_INIT, OmacIdx = 14
APStartUpForMbss: BssIndex = 1 channel = 52
MtCmdTxPowerDropCtrl: ucPowerDrop: 100, BandIdx: 1
[update_mgmt_frame_power] disable mgmt pwr ctrl
apidx 4 for WscUUIDInit
Generate UUID for apidx(4)
ExtEventBeaconLostHandler::FW LOG, Beacon lost (30:pr:iv:at:e0:07), Reason 0x10
Beacon lost — AP disabled!!!
*dev→ifindex = 1f
br0: port 3(rax0) entered forwarding state
br0: port 3(rax0) entered forwarding state
Jan 1 00:00:54 udevd[849]: starting version 173
udevd[848]: error: runtime directory ‘/run/udev’ not writable, for now falling back to ‘/dev/.udev’
udevd[849]: converting old udev database
Jan 1 00:00:54 udevd[892]: [truncated] m

start syslog-ng…
Port 4’s link state is changed from up to down!
The parameteres wan_stop needs. [wan_idx=0 ]
[as_load_key_cert] load CERT/KEY files OK
[as_load_key_cert] load CERT/KEY files OK
[as_load_key_cert] load CERT/KEY files OK
[as_load_key_cert] load CERT/KEY files OK
[as_load_key_cert] load CERT/KEY files OK
[as_load_key_cert] load CERT/KEY files OK
[as_load_key_cert] load CERT/KEY files OK
[as_load_key_cert] load CERT/KEY files OK
[as_load_key_cert] load CERT/KEY files OK
[as_load_key_cert] load CERT/KEY files OK
< boot_account: 344>: cmd =arc_usbapp_accountmgr boot
< set_account: 354>: cmd =arc_usbapp_accountmgr set
try to start samba daemon
nf_conntrack: automatic helper assignment is deprecated and it will be removed soon. Use the iptables CT target to attach helpers instead.
start miniupnpd
Call Update Tr69 Rule.
MtCmdGetThermalSensorResult:(ret = 0)
UBI: attaching mtd12 to ubi0
UBI: scanning is finished
UBI: attached mtd12 (name “data”, size 54 MiB) to ubi0
UBI: PEB size: 131072 bytes (128 KiB), LEB size: 126976 bytes
UBI: min./max. I/O unit sizes: 2048/2048, sub-page size 2048
UBI: VID header offset: 2048 (aligned 2048), data offset: 4096
UBI: good PEBs: 436, bad PEBs: 0, corrupted PEBs: 0
UBI: user volume: 2, internal volumes: 1, max. volumes count: 128
UBI: max/mean erase counter: 2/1, WL threshold: 4096, image sequence number: 1641389745
UBI: available PEBs: 0, total reserved PEBs: 436, PEBs reserved for bad PEB handling: 20
UBI: background thread “ubi_bgt0d” started, PID 1241
UBIFS error (pid 1267): ubifs_read_node: bad node type (4 but expected 6)
UBIFS error (pid 1267): ubifs_read_node: bad node at LEB 0:0, LEB mapping status 1
Not a node, first 24 bytes:
00000000: 68 73 71 73 30 05 00 00 b1 9e d5 61 00 00 04 00 1b 00 00 00 04 00 12 00 hsqs0……a…………
CPU: 1 PID: 1267 Comm: mount Tainted: P 3.10.14 #1
Stack : 81b37e72 0000003e 00000000 81a20000 00000000 000004f3 81927fdc 81b33ddc

        8d711838 81a1b4e7 00000000 000004f3 00000006 00000001 00000001 817dc870
        00000001 8102ab70 00000000 00000000 81929f64 8b4b9c9c 8b4b9c9c 81927fdc
        8b4c6000 00000000 00000000 00000000 00000000 00000000 00000000 00000000
        00000000 00000000 00000000 00000000 00000000 00000000 00000000 8b4b9c30
        ...

Call Trace:
[<8100b974>] show_stack+0x64/0x7c
[<81241628>] ubifs_read_node+0x1a4/0x2b8
[<8123e0e4>] ubifs_read_sb_node+0x50/0xb4
[<8123e954>] ubifs_read_superblock+0x7b0/0xf78
[<8123ce6c>] ubifs_mount+0x878/0x18ac
[<810cc578>] mount_fs+0x1c/0xf4
[<810e8a60>] vfs_kern_mount+0x5c/0xe8
[<810eb198>] do_mount+0x1ec/0x908
[<810eb938>] SyS_mount+0x84/0xe8
[<81010fb0>] stack_done+0x20/0x40

killall: updatedd: no process killed
killall: updatedd-wrapper: no process killed
multi-wan stop wan_idx=0
killall: pppd: no process killed
killall: pptp: no process killed
killall: listen: no process killed
wan_idx=0 stop bridge qos
[as_client_init_tlsv1] as_client_init_tlsv1: done!
[as_setup_verify] Load trusted CA: [/etc/Verisign_Class3.pem][(null)]
wan_idx=0 stop bridge mode
wanx enable, should not downbr the iface 0
brdel start
brdel start
brdel all
Get signal 16! It took more than 9 seconds!
Call Update Tr69 Rule.
MtCmdGetThermalSensorResult:(ret = 0)

Smart Box Flash представляет собой многофункциональное устройство, которое позволяет превратить обычный телевизор в современный Smart TV. Однако, как и любая электронная техника, оно требует периодического обновления прошивки для оптимальной работы. В данной статье мы расскажем вам, как установить и обновить прошивку для Smart Box Flash.

Процесс установки и обновления прошивки для Smart Box Flash довольно простой, но требует некоторых навыков и внимательности. Прежде чем приступить к процедуре, важно убедиться, что у вас есть все необходимые материалы: само устройство Smart Box Flash, компьютер, доступ к интернету и USB-кабель. Также следует обратить внимание на то, что процесс обновления прошивки может занять некоторое время, поэтому рекомендуется убедиться, что у вас есть достаточно времени для этой операции.

Первым шагом в установке и обновлении прошивки для Smart Box Flash является подключение устройства к компьютеру при помощи USB-кабеля. После подключения необходимо скачать последнюю версию прошивки для устройства с официального сайта производителя. Затем следует разархивировать загруженный файл и открыть его. Внутри папки с прошивкой обычно находится подробная инструкция по ее установке, ее следует внимательно прочитать.

Содержание

  1. Зачем обновлять прошивку Smart Box Flash?
  2. Повышение производительности и функциональности
  3. Исправление ошибок и уязвимостей
  4. Подготовка к обновлению прошивки
  5. Создание резервной копии данных
  6. Проверка доступного места на устройстве
  7. Установка прошивки на Smart Box Flash
  8. Шаг 1: Подготовка
  9. Шаг 2: Проверка совместимости
  10. Шаг 3: Установка прошивки
  11. Шаг 4: Завершение обновления
  12. Скачивание последней версии прошивки
  13. Подключение Smart Box Flash к компьютеру
  14. Запуск процесса установки

Зачем обновлять прошивку Smart Box Flash?

Прошивка — это программное обеспечение, которое управляет работой вашего устройства Smart Box Flash. Обновление прошивки имеет несколько причин и преимуществ:

  • Улучшение функциональности: Обновление прошивки может добавить новые функции, улучшить работу устройства и исправить ранее обнаруженные ошибки. В результате вы получите лучшее и более стабильное использование вашего Smart Box Flash.
  • Безопасность: Обновление прошивки также может включать исправления уязвимостей безопасности. Это важно для защиты вашего устройства от вредоносных программ и несанкционированного доступа.
  • Совместимость: Новая прошивка может быть необходима для поддержки новых версий операционной системы или приложений. Обновляя прошивку, вы можете быть уверены, что ваш Smart Box Flash будет работать без проблем с новыми программными продуктами.
  • Улучшение производительности: Обновление прошивки может привести к улучшению производительности вашего Smart Box Flash. Это может включать повышение скорости работы, оптимизацию ресурсов и увеличение общей производительности устройства.

Обновление прошивки Smart Box Flash является важным шагом для поддержания и улучшения работы устройства. Регулярные обновления помогут вам получить больше возможностей, улучшить безопасность и обеспечить совместимость с новыми программными продуктами и операционными системами.

Повышение производительности и функциональности

Установка и обновление прошивки для Smart Box Flash может значительно повысить производительность и функциональность устройства. В данном разделе мы рассмотрим несколько способов достижения этой цели:

  1. Обновление прошивки

    Регулярное обновление прошивки вашего Smart Box Flash позволит исправить ошибки, улучшить совместимость с различными приложениями и улучшить общую производительность устройства. Обновление прошивки можно выполнить через интерфейс устройства или с помощью специальной программы, предоставляемой производителем.

  2. Удаление ненужных приложений

    Чем больше приложений установлено на вашем Smart Box Flash, тем меньше свободного пространства остается для работы системы. Периодически просматривайте список установленных приложений и удаляйте ненужные или малоиспользуемые. Это поможет освободить память и улучшить производительность устройства.

  3. Оптимизация настроек

    Многие устройства Smart Box Flash имеют настройки, которые можно изменить для повышения производительности. Например, вы можете отключить ненужные анимации, ограничить фоновые процессы или настроить энергосберегающие режимы. Просмотрите настройки вашего устройства и настройте их в соответствии с вашими предпочтениями.

  4. Установка оптимизированных приложений

    Некоторые приложения могут быть более ресурсоемкими, чем другие. При выборе и установке новых приложений для вашего Smart Box Flash обратите внимание на их оптимизацию и минимальные системные требования. Установка оптимизированных приложений поможет снизить нагрузку на процессор и улучшит общую производительность устройства.

Следуя этим простым рекомендациям, вы сможете повысить производительность и функциональность вашего Smart Box Flash и получить более комфортное использование устройства.

Исправление ошибок и уязвимостей

Установка и обновление прошивки для Smart Box Flash — процесс, который обеспечивает исправление ошибок и устранение уязвимостей, связанных с работой устройства. Последняя версия прошивки содержит все актуальные исправления, улучшения и новые функции, которые обеспечивают стабильность и безопасность работы Smart Box Flash.

Обновление прошивки регулярно выпускается производителем устройства, чтобы пользователи могли получить все последние исправления и улучшения. Важно обновлять прошивку Smart Box Flash, поскольку это поможет предотвратить возникновение ошибок и проблем, а также укрепит безопасность вашего устройства.

Исправление ошибок и уязвимостей включает в себя:

  • Исправление ошибок, с которыми могут сталкиваться пользователи при использовании устройства.
  • Устранение уязвимостей, которые могут быть использованы злоумышленниками для несанкционированного доступа к вашему устройству.
  • Улучшение работы устройства, обеспечение стабильной и оптимальной производительности.

В зависимости от конкретной проблемы или уязвимости, исправления могут быть сделаны различными способами. Обычно процесс обновления прошивки включает в себя следующие шаги:

  1. Проверка наличия новой версии прошивки для устройства.
  2. Загрузка и установка последней версии прошивки.
  3. Перезагрузка устройства и его проверка на наличие ошибок и уязвимостей.

Таким образом, установка и обновление прошивки является важным шагом в обеспечении безопасности и надежности работы Smart Box Flash. Регулярное обновление прошивки поможет предотвратить возникновение проблем и улучшить функциональность вашего устройства.

Для выполнения установки или обновления прошивки рекомендуется следовать инструкциям, предоставленным производителем устройства, чтобы убедиться, что процесс выполняется правильно и безопасно.

Необходимо помнить, что во время обновления прошивки могут быть потеряны некоторые данные или настройки устройства, поэтому перед началом процесса рекомендуется создать резервные копии важных файлов и данных.

Подготовка к обновлению прошивки

Перед тем как приступить к обновлению прошивки для Smart Box Flash, необходимо выполнить несколько предварительных действий:

  • Убедитесь, что у вас есть доступ к Интернету и стабильное подключение.
  • Создайте резервную копию всех важных данных, которые хранятся на устройстве. В процессе обновления прошивки могут возникнуть проблемы, поэтому лучше предусмотреть все возможные риски.
  • Зарядите Smart Box Flash или подключите его к источнику питания. Во время установки прошивки устройство должно находиться в режиме работы и быть подключено к электричеству.
  • Определитеся с файлом прошивки, который вы хотите установить на устройство. Обычно файлы прошивки предоставляются производителем и доступны для скачивания на его официальном сайте.

После выполнения всех вышеперечисленных условий вы будете готовы приступить к обновлению прошивки на Smart Box Flash. Следующий шаг – установка прошивки. Внимательно ознакомьтесь с инструкцией производителя устройства и следуйте всем указаниям. Это поможет избежать ошибок и проблем в процессе обновления.

Создание резервной копии данных

Перед установкой или обновлением прошивки для Smart Box Flash рекомендуется создать резервную копию всех важных данных на устройстве. Это позволит избежать потери информации в случае непредвиденных ситуаций. В данном разделе представлены инструкции по созданию резервной копии данных на Smart Box Flash.

  1. Подготовка к созданию резервной копии:
    • Убедитесь, что у вас есть доступ к устройству Smart Box Flash с установленной прошивкой.
    • Подключите устройство к компьютеру с помощью USB-кабеля.
    • Откройте проводник на компьютере и найдите Smart Box Flash в списке устройств.
    • Откройте папку устройства и скопируйте все нужные вам файлы на компьютер.
  2. Создание резервной копии приложений:
    • Откройте меню Smart Box Flash и перейдите в раздел «Настройки».
    • Выберите раздел «Приложения» и найдите список установленных приложений.
    • Перейдите в каждое приложение и выберите функцию «Создать резервную копию».
    • Дождитесь завершения процесса создания резервной копии для каждого приложения.
  3. Создание резервной копии контактов и сообщений:
    • Откройте меню Smart Box Flash и перейдите в раздел «Контакты» или «Сообщения».
    • Выберите все контакты или сообщения, которые вы хотите сохранить.
    • Нажмите на опцию «Экспорт» или «Создать резервную копию» и выберите место сохранения файлов.
    • Дождитесь завершения процесса экспорта или создания резервной копии.
  4. Создание резервной копии на облачном хранилище:
    • Откройте приложение облачного хранилища на Smart Box Flash.
    • Войдите в свою учетную запись или зарегистрируйтесь, если у вас еще нет аккаунта.
    • Выберите папку или файлы, которые вы хотите сохранить в облачном хранилище.
    • Нажмите на опцию «Сохранить в облако» или «Загрузить» и дождитесь окончания загрузки.

После выполнения всех вышеперечисленных действий вы получите полную резервную копию данных Smart Box Flash. Сохраните эту копию на надежном носителе информации, чтобы в случае необходимости восстановить все данные на устройстве. И помните: регулярное создание резервных копий является важной составляющей безопасности и сохранности ваших данных.

Проверка доступного места на устройстве

Перед установкой или обновлением прошивки на Smart Box Flash необходимо убедиться, что на устройстве есть достаточно свободного места. Это позволит избежать проблем с установкой и обновлением прошивки.

Для проверки доступного места на устройстве выполните следующие шаги:

  1. Перейдите в меню настройки на устройстве.
  2. Найдите раздел «Система» или «О устройстве».
  3. В этом разделе найдите информацию о доступной памяти на устройстве.

В зависимости от модели устройства и версии прошивки, информация о доступном месте может быть представлена в разных разрезах (например, общее количество памяти и количество свободного места).

Убедитесь, что на устройстве есть достаточно свободного места для установки или обновления прошивки. Если доступного места недостаточно, удалите ненужные файлы или приложения, чтобы освободить память.

Если у вас не хватает памяти даже после удаления ненужных файлов, вы можете воспользоваться возможностями расширения памяти, например, подключить внешний накопитель или использовать облачное хранилище.

Установка прошивки на Smart Box Flash

Правильное обновление прошивки на Smart Box Flash позволяет получить все новые функции, исправить ошибки и повысить общую производительность устройства. Использование официальных методов обновления поможет избежать потери данных и неполадок в работе вашего устройства.

Шаг 1: Подготовка

  1. Зарядите Smart Box Flash до полной емкости. Убедитесь, что устройство подключено к источнику питания и зарядка завершена.

  2. Загрузите актуальную версию прошивки с официального сайта производителя или другого надежного источника.

Шаг 2: Проверка совместимости

  1. Убедитесь, что загруженная прошивка соответствует модели вашего устройства.

  2. Ознакомьтесь с ограничениями и требованиями прошивки. Обратите внимание на необходимость резервного копирования данных перед обновлением.

Шаг 3: Установка прошивки

  1. Подключите Smart Box Flash к компьютеру с помощью USB-кабеля.

  2. Откройте файловый менеджер на компьютере и найдите загруженную прошивку.

  3. Распакуйте или запустите файл с прошивкой.

  4. Запустите процесс обновления и следуйте инструкциям на экране. В случае необходимости, введите пароль администратора.

Шаг 4: Завершение обновления

После завершения процесса установки прошивки, Smart Box Flash автоматически перезапустится. Не отключайте устройство от компьютера и не выключайте питание во время процесса обновления.

После завершения установки прошивки, рекомендуется проверить работу Smart Box Flash и убедиться, что все функции работают корректно. В случае возникновения проблем, обратитесь к документации или поддержке производителя.

Скачивание последней версии прошивки

Для того чтобы обеспечить наш Smart Box Flash самой последней и стабильной версией прошивки, необходимо скачать соответствующий файл с официального сайта производителя. Следуйте инструкциям ниже, чтобы скачать последнюю версию прошивки:

  1. Откройте веб-браузер и перейдите на официальный сайт производителя вашего Smart Box Flash.
  2. На главной странице сайта найдите раздел «Поддержка» или «Скачать прошивку».
  3. Нажмите на ссылку, чтобы перейти на страницу загрузки прошивки.
  4. На странице загрузки обычно доступны несколько файлов прошивки. Выберите последнюю версию, которая указана с датой и описанием изменений. Также убедитесь, что прошивка предназначена для вашей модели Smart Box Flash.
  5. Щелкните правой кнопкой мыши на ссылке для скачивания выбранного файла и выберите опцию «Сохранить ссылку как» или «Сохранить объект как».
  6. Выберите место на вашем компьютере, где хотите сохранить файл прошивки, и нажмите «Сохранить».

Теперь у вас есть последняя версия прошивки для вашего Smart Box Flash, и вы готовы обновить его.

Подключение Smart Box Flash к компьютеру

Для того чтобы начать процесс установки или обновления прошивки на вашем Smart Box Flash, необходимо подключить устройство к компьютеру. Для этого следуйте инструкциям ниже:

  1. Возьмите кабель USB и подключите его одним концом к порту USB компьютера.
  2. Возьмите другим концом кабеля USB и подключите его к порту USB вашего Smart Box Flash.
  3. Убедитесь, что оба конца кабеля USB надежно подключены к соответствующим портам.

После того, как вы успешно подключили Smart Box Flash к компьютеру, вы можете переходить к следующей части инструкции: «Установка и обновление прошивки для Smart Box Flash».

Запуск процесса установки

1. Подключите Smart Box Flash к сети электропитания и к телевизору при помощи кабелей.

2. Включите телевизор и выберите соответствующий источник сигнала для Smart Box Flash.

3. В меню Smart Box Flash найдите раздел «Настройки» и выберите «Обновление прошивки».

4. Убедитесь, что на экране отображается актуальная версия прошивки, которую вы хотите установить. Если это так, нажмите кнопку «Установить».

5. Подождите, пока процесс установки завершится. Во время установки не отключайте питание Smart Box Flash и не нажимайте кнопки на пульте дистанционного управления.

6. Когда процесс установки будет завершен, Smart Box Flash автоматически перезагрузится.

7. После перезагрузки проверьте, что новая прошивка успешно установлена. Если прошивка была установлена корректно, на экране телевизора должны отобразиться основные настройки Smart Box Flash.

8. Если прошивка не была установлена или произошла ошибка в процессе установки, повторите шаги снова или обратитесь к инструкции пользователя для дополнительной информации.

Благодарности

Коллективными усилиями участников тематического tg чата особенно UnameOne, M, Karim, Nicky F. с форума 4pda, удалось разобраться в запутанных хитросплетениях исходного кода прошивок, архитектуре смартбоксов, чипа MT7621, технологиях пайки микросхем. Все эти модные софт скилы «командная работа», «межличностное взаимодействие», «креативность», «проактивность», «самостоятельность», «дисциплина» все еще слабоваты, но что-то точно улучшилось. Сотни часов с дымящимся паяльником и перед монитором, но я не бросил. Спасибо за это товарищам!

Спасибо Ватрушкину из Израиля, который натолкнул на идею сборки собственного программатора чипов NAND из грязи и палок. Про это возможно напишу отдельную статью, если будет настроение.

Хочу отдельно отметить человека по имени Андрей он же inflabz, который начал заниматься темой смартбоксов очень давно. Сейчас он отошел от темы, с ним очень сложно разговаривать. Люди, кто знал его раньше говорят: «Очень плохая музыка! Раньше лучше было». Тем не менее его вклад первопроходца нельзя не отметить. Кажется, что он чем-то тяжело и неизлечимо болеет. Мужайся, не раскисай, держись! Общение с ним недавно закончилось выпиливанием меня из телеграма до 1 февраля по чьей-то жалобе. Сразу вспомнились офисные интриги, сплетни, сенсации, которые я уже за время пока не работаю успел забыть. В общем если это он меня выпилил, я не держу зла. А если кто-то другой, то мне нет дела до этой жалкой ничтожной личности. :-)

Спасибо компании Билайн, которая постаралась и запустила на рынок сразу несколько отличных моделей роутеров, которые дадут фору многим аналогичным моделям, в том числе известных марок.

Тем, кого незаслуженно забыл, простите и не обессудьте.

Введение


Я занимаюсь прошивками маршрутизаторов Билайн Смартбокс Флеш и Гига на базе чипа Mediatek MT7621A уже больше полугода. За это время чего только не было. Я заказывал программаторы чипов NAND с Али, возвращал их обратно, купил кучу флюсов, припоя, 3 паяльника, паяльную станцию, коврик для пайки, кучу проводков и raspberry pi. Накоплены бесценные знания и опыт, которые пришлось доставать по крупицам из сообщений форумов, китайских мануалов на просторах сети, репозиториев github тоже в основном китайских, исходных кодов программ.

Пришлось это все собрать, проанализировать, просеять, снова проанализировать, потом структурировать и обобщить. У меня короткая память, поэтому если так случится и через месяц или год я снова займусь чем-то подобным, то эта статья будет отличным мануалом. Надеюсь, что кому-то она понравится. Людям JS скрипта вряд ли будет интересно, но статья для настоящих пусть и начинающих инженеров/программистов, кто любит не только нажимать педали, но и залезть под капот.

Зачем понадобилось менять загрузчик, если он и так работал?

Резонный вопрос. Ответ очень прост. Лень. Дело в том, что скомпилированный автором загрузчик брид недоступен в исходных кодах, не уверен, что автор знает, что в России есть устройство, которое используется десятками (если не сотнями) тысяч людей по всей стране. Автор китаец поэтому логично, что он сделал загрузчик для китайского роутера Xiaomi mi router 3g. Этот роутер хоть и построен на том же чипе MT7621A, но все же отличается. В роутере Xiaomi кнопка reset подключена к 18 выводу GPIO, а в билайновских смартбоксах кнопки reset на всех моделях подключены к другим выводам. В smartbox flash reset на GPIO 3, а в smartbox giga на GPIO 4. Если установить на smartbox flash или giga загрузчик breed для Xiaomi mi router 3g, то кнопка reset не работает.

Кнопка reset в breed используется для прерывания загрузки, чтобы если в нем настроен автозапуск прошивки, этот запуск не производился, а брид продолжал бы работать. Если у вас настроенный роутер, который сразу запускает прошивку, то может быть довольно сложно прервать этот процесс без работающей кнопки reset. Если ты делаешь прошивки, или испытываешь чужие, то прерывать загрузку приходится очень часто. Автор брид предусмотрел еще 2 альтернативных способа прерывания загрузки. Всего мне известно 4 способа прерывания загрузки breed, 3 штатных и 1 нештатный.

Первый способ прерывания загрузки breed

Можно использовать специальную программу, которую написал автор самого брида. Программа отправляет специальный пакет через сетевой интерфейс, чтобы брид, получив такой пакет приостановил дальнейшую загрузку. Во-первых программе breedenter.exe требуется для работы качественное сетевое соединение, нужно подключиться к роутеру патчкордом от компьютера. Во-вторых программа на китайском языке. В-третьих программа под windows и требует установки дополнительного ПО для своей работы.

Второй способ прерывания загрузки breed

Если у вас есть подключение к роутеру через интерфейс UART, то брид готов остановится, если получит любые данные через интерфейс. Проблема тут в том, что для подключения по UART требуется последовательный порт COM или USB устройство, которое будет эмулировать наличие такого порта. Нужно разобрать роутер и распаять контакты для UART подключения. Конечно распаянный UART вещь в хозяйстве полезная. Но разбирать и паять только для прерывания загрузки, как стрелять из пушки по воробьям.

Третий и лучший способ прерывания загрузки breed

Прерывание загрузки breed с помощью кнопки reset — самый простой и надежный способ. Только именно он и не работает на роутерах smartbox без модификаций загрузчика. Чтобы починить кнопку и понадобилось изменять загрузчик. В сообществе на форуме 4pda уже были люди, которые проделали трюк с изменением загрузчика. Но ни описаний, ни скриптов они не выложили, поэтому старые версии breed с переключенной кнопкой для smartbox, которые имелись в наличии, не решали проблему. До того, как полез в дебри реверс-инжинеринга я пытался достучаться до этих людей.

velomas

Первым выложил измененный брид с переводом интерфейса с китайского на английский. Он за пару недель не ответил ни на одно сообщение на форуме. Поскольку он время от времени появлялся на форуме, я ждал, что именно он что-то мне скажет. Скажи он, что именно нужно делать, результат был бы тот же, но удовольствия было бы гораздо меньше.

inflabz

Второго человека, который делал изменения кнопок (inflabz) на форуме уже давно не было, от дел он кажется уже отошел и пропал с горизонта. Он в свое время довольно сильно продвинулся в адаптации прошивки openwrt для smartbox, выкладывал все в паблик. Вел свой чат по смартбоксам. Он делал изменение кнопок. Я смог на него выйти через другого человека из прошивочной тусовки. Уважаемый inflabz, говорил как препод в шараге, отвечал вопросом на вопрос, но скриптов так и не дал, сам менять брид отказался. Кое-что полезное он таки сказал, а главное не дал моему интересу к теме угаснуть.

Sedy

Довольно одиозная личность в узких кругах. У него огромный опыт работы с различными моделями устройств, какое-то чумовое кол-во сообщений и ачивка супермодератор на gsm-forum. Он изгнан с форума 4pda за ведение коммерческой деятельности, но в нашем чате он состоит. Поскольку он сделал прошивки своим заработком, бесплатно делится знаниями он не настроен. По имеющимся данным он является обладателем нужных скриптов для модификации, который получил по блату от velomas. В чате пишет часто, но очень осторожно, больше читает. Его я даже не спрашивал.

Четвертый (нештатный) способ прерывания загрузки breed

Опытным путем был открыт этот способ, который пару раз выручал меня, когда первые три не работали.

Перед моментом запуска прошивки, когда брид уже передал управление следующей программе есть примерно 2 секунды, в которые брид уже загружен и работает, но еще не успел запустить прошивку. Если отключить DHCP и вручную установить IP адрес компьютера и шлюза (192.168.1.1), то за эти 2 секунды можно подключиться к брид через telnet и передать команды на отключение автозагрузки. Вот эти:

env unset autoboot.command; env save

Успеть за это время довольно сложно, поэтому получается через раз. Но на безрыбье и рак — рыба.

Описание структуры загрузчика breed

Для истории и тех, кто захочет поковыряться самостоятельно.
Структура загрузчика breed для xiaomi mi3g:
Размер заголовка 64 байта. Вот как выглядит этот участок памяти в редакторе.

/* uboot image header 64B */
typedef struct image_header {
    uint32_t        ih_magic;       /* 4B Image Header Magic Number */
    uint32_t        ih_hcrc;        /* 4B Image Header CRC Checksum */
    uint32_t        ih_time;        /* 4B Image Creation Timestamp  */
    uint32_t        ih_size;        /* 4B Image Data Size           */
    uint32_t        ih_load;        /* 4B Data   Load  Address      */
    uint32_t        ih_ep;          /* 4B Entry Point Address       */
    uint32_t        ih_dcrc;        /* 4B Image Data CRC Checksum   */
    uint8_t         ih_os;          /* 1B Operating System          */
    uint8_t         ih_arch;        /* 1B CPU architecture          */
    uint8_t         ih_type;        /* 1B Image Type                */
    uint8_t         ih_comp;        /* 1B Compression Type          */
    uint8_t         ih_name[12];    /* 12B Image Name               */
    nand_header_t   ih_nand;        /* 20B Этого куска нет в обычном заголовке uboot image, image name занимает не 12, а все 32 байта */
} image_header_t;

Применительно к MT7621, который установлен в smartbox flash, giga, turbo nand_header_t устроен так:

typedef struct nand_header {
    uint32_t                nand_ac_timing;             /* 4B */
    uint32_t                ih_stage_offset;            /* 4B stage1 offset */
    uint32_t                ih_bootloader_offset;       /* 4B bootloader offset */
    uint32_t                nand_info_1_data;           /* 4B */
    uint32_t                crc;                        /* 4B Хитрый crc, который поддавался дольше остальных */
} nand_header_t;

После заголовка идет предзагрузчик, который настраивает чип, распаковывает сжатый lzma загрузчик, загружает его и передает ему управление. Место, где начинается основной код загрузчика содержит заголовок с минимальным числом параметров. Для поиска заголовка загрузчика используется уникальный идентификатор Breed. 32 битное число 0x37540178. Затем идет 4 байта размера тела загрузчика, потом 4 байта адреса памяти, куда предзагрузчик записывает загрузчик, дальше 4 байта адреса точки входа, откуда будет запущен загрузчик.

Это участок программы, где с волшебного числа 0x37540178 начинается заголовок breed.

#define BOOTSTRAP_HDR_MAGIC     0x37540178
/* breed bootstrap kernel header */
typedef struct bootstrap_kernel_header_type {
    uint32_t magic; /* 0x37540178 */
    uint32_t length;
    uint32_t load_address;
    uint32_t entry_point;
} bootstrap_kernel_header_t;

Сразу после заголовка Breed идет заголовок lzma длиной 13 байт.

typedef struct lzma_header_type { 
 uint8_t lzma_props;                    /* 1B параметры сжатия (lc, lp, pb) */
 uint32_t dictSize;                     /* 4B размер словаря */
 uint64_t uncompressedSize;             /* 8B распакованный размер данных */
} lzma_header_t;

Значение байта с параметрами сжатия вычисляются по формуле: pb * 5 + lp * 9 + lc. Обратно значения параметров вычисляются так:

lc = lzma_props % 9; /* остаток от деления на 9 */
lzma_props /= 9;     /* Заменяем исходное число на полученное целое число при делениии на 9 */
pb = lzma_props / 5; /* целое число при делении на 5 */
lp = lzma_props % 5; /* остаток от деления на 5 */

В самом начале запуска чипа, после того как контроллер памяти MT7621A в состоянии считывать данные NAND памяти, он умеет работать только с uimage заголовком. Т.е. он умеет проверять только 1 контрольную сумму заголовка, копировать себя в нужный участок оперативной памяти, а потом начать выполнять код предзагрузчика из заданной в заголовке точки входа (ep). Предзагрузчик становится умнее, понимает lzma. Распаковывает из архива код breed и уступает ему место. Все это довольно очевидно. Для человека, который знаком с работой подобных устройств, все становится понятно сразу при виде знакомых идентификаторов. Я не такой, поэтому очень здорово, что Nicky F. посмотрел и любезно согласился все объяснить мне. В этом плане в нашей мини-тусовке есть критическая масса людей, которые готовы начать объяснять «от печки» или чуть дальше алфавита. Новичков натыкающихся на бетонную стену профессионалов легко развернуть в направлении выхода. А ведь как тяжело бывает этим профессионалам опускаться на уровень новичка. Все компьютерщики, которым приходилось побывать в шкуре мастера по настройке исчезнувшего курсора мышки, хорошо поймут о чем я толкую.

Тайну всех контрольных сумм разбирали несколько дней, я старался без устали, но все понял только когда меня ткнули носом в нужный участок исходного кода другого загрузчика mt7621. Поскольку для запуска загрузчика вторая контрольная сумма nand crc не проверяется, то успешно, если как-то самостоятельно записать даже такой неполноценный загрузчик, то работать он будет не хуже нормального. На этом можно было бы и остановиться. Как говорится: «Работает — не трогай!» Но очень хотелось пройти этот квест, поэтому никто не бросил. Прошло еще несколько дней прежде, чем сначала обнаружилось присутствие этой спрятанной контрольной суммы, а потом нашелся алгоритм подсчета этой контрольной суммы. Кто-то может сказать: «Ну что тут такого? Открыл исходники и все увидел». Таким я хочу напомнить, что загрузчик breed это программа с закрытым исходным кодом, автор китаец, который на вопросы и просьбы через гитхаб не отвечает.

Как я сказал, вторая контрольная сумма, которая не предусмотрена каноническим заголовком uimage спрятана в том участке, в котором записывается имя образа (image name). 32 байта для имени образа сократили до 12, а оставшиеся 20 байт пошли под еще 1 заголовок с еще 1 контрольной суммой. Вторая контрольная сумма в отличие от первой подсчитывается не по алгоритму crc32, а по старому алгоритму crc стандарта POSIX.

Вот как это работает.

  1. В заголовке Breed проверяется длина lzma архива.
  2. В заголовке uimage:
    2.1. image size (preloader и сам bin файл брида без 64 байт заголовка)
    2.2. image data crc (crc32 checksum preloader + bin)
    2.3. nand crc (crc POSIX 1003.2 checksum uimage заголовка, перед вычислением уже должен быть выполнен п. 2.1, а значение контрольных сумм nand crc и header crc должны быть установлены нулями)
    2.4. header crc (crc32 uimage заголовка, перед вычислением должен быть выполнен п. 2.3)
    Если все чексуммы сходятся, брид готов записать такой загрузчик. Спасибо за внимание, пишите, как говорится, письма. Буду рад ответить на вопросы.

Как все было

Пару недель назад, не теряя надежды модифицировать брид, я забрел в соседний чат специлизирующийся на прошивке PADAVAN для SMARTBOX. Слово за слово и откликнулся человек %username%, который на 4pda Nicky F. Он согласился помочь в разборе breed, хотя у него даже нет тех моделей роутеров, для которых я хотел делать модификацию. Видимо увидел в чате приятные сердцу слова про реверс и дизасм. В чатах довольно много людей что-то постоянно просят, но в основном приходят те, у кого не работает модем или что-то не так с прошивкой. Nicky F. рассказал что и куда нажимать. Я отвечал впопад, поэтому дело заладилось. Так я в первый раз дизасембировал код программы. Я не могу назвать себя совсем нубом в вопросе, так как уже к тому времени приходилось использовать отладчик, делать какие-то вставки в программы на языке ассемблера. Я видел ассемблер, но это были либо вставки в собственные простейшие программы или полученный во время компиляции ассемблерный код, который производит компилятор.

Переводить именно машинный код в ассемблер мне не приходилось ни разу. Чистый ассемблер полученный без оптимизаций компилятора, перемежающийся с исходным кодом и оптимизированный до неузнаваемости машинный код, который преобразован дизассемблером — это, как говорят в Одессе, 2 большие разницы. Страшно сказать, но первый моим дизассемблером стала Ghidra, та самая, которая родилась в недрах АНБ, но с недавних пор выложена в публичный доступ.

Через пару дней мытарств и безуспешных поисков обращений к участкам памяти, которые чип MT7621 использует в качестве интерфейса взаимодействия и управления GPIO. У нас только вчера появился MT7621 ProgrammingGuide на английском, где все четко и понятно написано. А тогда у нас был исходный код ядра линукс с драйверами для MT7621 и какие-то обрывки данных с китайских сайтов на китайском языке. Это был поиск чего-то примерно такого, выполняющее что-то примерно этакое. Но удача любит смелых, поэтому она мне улыбнулась. Nicky F. написал, что нашел нужную функцию. Китаец hackpascal (Weijie Gao — автор breed) заботливо написал функцию, которая прямо первым аргументом брала в десятичном виде номер нужного GPIO. А ведь управление осуществляется установкой нужных битов, поэтому вполне могло быть что-то типа такого в исходном коде:

#define GPIO_HIGH(i,g)  (g) < 32 ? (*(reg32_t *)(i + GPSET0) = 1<<(g)) : (*(reg32_t *)(i + GPSET1) = 1<<(g))  

Тут еще, поморщив брови, можно разобраться. Но чем это станет на ассемблере? Ведь тут код в виде MACRO, который компилятору попадает уже в виде просто чисел.

Для наглядности покажу то место в коде breed.

Я быстро сделал версии для обоих роутеров. Чик, чик и чудо случилось. Не пришлось даже сильно рисковать. Так как брид позволяет запустить себя без физической записи на чип памяти. Можно просто загрузить код в оперативную память и указать точку входа для запуска. Брид с работающей кнопкой сброса заработал. Затем я прошил его на место старого загрузчика и скрестив пальцы выключил и включил питание. Роутер включился, но к тому времени я уже несколько раз портил загрузчик и успешно перепаивал микросхему памяти. Паяльная станция стояла рядом, поэтому я переживал не сильно.

Заключение

Денег мне за это не платят, в значительной степени я занимаюсь всем этим ради таких моментов. Когда своими руками и головой удается заставить что-то работать это непередаваемое чувство. И почти неважно что именно ты создаешь этими руками. Это может быть сделанная стяжка пола в квартире, замена дисплея на разбитом айфоне сестры. Упорный труд плюс успешный результат дает это чувство. Я много лет работал в офисе, там этого сильно меньше. Офисный планктон с 9 до 18 перекатывают ручку с одного конца стола на другой, потом покупает форд фокус или даже бмв и квартиру в ипотеку, а потом едет в ГОА искать смысл жизни. А я с китайской паяльной станцией ковыряюсь с микросхемой памяти в общем не сильно нужного мне роутера, но я делаю и от этого счастлив, чего и вам желаю.

На чтение 10 мин Просмотров 15.5к.

Сергей Сакадынский

Сергей Сакадынский

Работал в сфере IT-консалтинга, занимался созданием и администрированием интернет-ресурсов. 10 лет опыта работы по проектированию и обслуживанию компьютерных сетей.

Своим клиентам оператор Beeline устанавливает брендовые роутеры Smart Box. В этой статье мы разберём их технические характеристики, отличия разных версий и расскажем об особенностях настройки роутера Билайн Smart Box.

Содержание

  1. Технические характеристики версий
  2. Индикаторы и кнопки
  3. Подключение и вход в админку
  4. Автоматическая настройка
  5. Ручная настройка
  6. Настройка на другого провайдера
  7. USB модем
  8. Настройка USB
  9. Wi-Fi
  10. IPTV
  11. Прошивка
  12. Сброс

Технические характеристики версий

Роутеры Smart Box внешне похожи, но разные модели, помимо технических характеристик, различаются количеством и расположением портов.

внешний вид

Выпускаются в белом и чёрном корпусах с логотипом Beeline. Антенны встроенные. Все модели роутеров двухдиапазонные. Основное отличие версий – скорость Wi-Fi и сетевых портов. Самый быстрый в линейке Smart Box Turbo. При работе в двух диапазонах одновременно он может выдавать скорость до 2000 Мбит/сек. Также устройство оборудовано четырьмя гигабитными сетевыми портами. Версии One и Flash с самым медленным Wi-Fi – до 300 Мбит/сек. При этом у Smart Box Flash всего один LAN-разъём.

Все роутеры оснащены USB портом 2.0 или 3.0.

Основные характеристики разных версий Билайн Smart Box приведены в таблице.

Модель Smart Box One Smart Box Flash Smart Box Turbo Smart Box Giga Smart Box Pro
Диапазоны, ГГц 2,4/5 2,4/5 2,4/5 2,4/5 2,4/5
Скорость Wi-Fi, Мбит/с 300 300 2032 1200 867
LAN-порты

Скорость, Мбит/с

4

100

1

1000

4

1000

2

100

4

1000

USB порт 1 х 2.0 1 х 3.0 1 х 3.0 1 х 3.2 1 х 2.0

Индикаторы и кнопки

Индикаторы состояния на роутерах Smart Box работают так.

  1. STATUS – если есть доступ к интернету. Красный индикатор сигнализирует об отсутствии связи с провайдером.
  2. WPS – сигнализирует об активности этого режима.
  3. WAN – горит синим, когда к порту подключен кабель. При отсутствии подсоединения не горит.
  4. LAN (по числу портов) – информирует о подключении устройств по кабелю.
  5. WI-FI – показывает, включено беспроводное вещание или нет.

индикаторы

На передней панели роутера расположена кнопка WPS для быстрого подключения устройств к беспроводной сети. На задней панели размещены кнопка включения питания и утопленная в корпусе кнопка сброса настроек. Там же находится переключатель режимов работы устройства (роутер и репитер).порты

Подключение и вход в админку

Переключатель режимов работы роутера должен находиться в положении ROUT. Режим REP предназначен для работы устройства в качестве усилителя Wi-Fi сигнала другого роутера.

подключение

  1. Подсоедините адаптер питания к разъёму на задней панели. К порту WAN подключите кабель провайдера. Адаптер питания включите в сеть и нажмите кнопку включения. Должны загореться индикаторы WAN, STATUS и беспроводной сети.
  2. Для настройки роутера с компьютера соедините один из сетевых портов с разъёмом сетевой карты вашего ПК кабелем. В настройках подключения на компьютере должна быть включена опция «Получать IP-адрес автоматически».
  3. Для подключения по беспроводной сети используйте параметры входа, указанные на этикетке на роутере.
  4. Теперь можно зайти в настройки. На компьютере запустите любой интернет-браузер. В адресной строке впишите 192.168.1.1. Вы попадёте в веб-интерфейс роутера.

Автоматическая настройка

Настройка вайфай роутера Билайн Smart Box версий One, Turbo, Giga, Pro выполняется одинаково.

Ручная настройка

Для того, чтобы вручную изменить настройки роутера, войдите в веб-интерфейс и выберите раздел «Расширенные настройки». На верхней панели переходим во вкладку «Другие» и выбираем пункт WAN (подключение к интернету).

wan

По умолчанию здесь доступны только подключения L2TP и DHCP. То есть вы можете только изменить логин и пароль, но создать другой тип подключения не получится. Однако настройка под другого провайдера всё-таки возможна.

Настройка на другого провайдера

Некоторые пользователи думают, что для ручной настройки интернета нужно перепрошить роутер Билайн под всех операторов. На самом деле в этом нет необходимости. Расширенные настройки подключения заблокированы в базовом интерфейсе. Но есть возможность войти в настройки с правами суперпользователя.

Чтобы настроить Wi-Fi роутер Beeline Smart Box под другого провайдера, войдите в веб-интерфейс по обычному адресу 192.168.1.1. Когда устройство попросит ввести учётные данные, в поле «логин» впишите SuperUser, а в качестве пароля используйте Beeline$martB0x. В новых версиях прошивки (начиная с 2.0.25) в поле «пароль» нужно вводить серийный номер роутера. Он указан на наклейке на дне устройства и выглядит примерно так: SF16F4FF2F78. Теперь перейдите в настройки подключения «Другие» — WAN. Теперь здесь можно настроить роутер для работы с любым провайдером.

другой пр

Если ваш провайдер использует привязку по МАС-адресу, клонировать его или задать вручную можно на этой же странице.

USB модем

Первоначально USB-порт на роутерах Smart Box был предназначен только для подключения внешних носителей информации и организации файлового сервера. Возможность подключать мобильный интернет появилась в новой прошивке начиная с версии 2.0.25. Поэтому, если вы хотите подключить 3G модем к вашему роутеру Smart Box, обновите программное обеспечение.

Также учтите, что Smart Box работает с немногими моделями USB модемов. Уточните, поддерживается ли конкретная модель на сайте.

Подключите модем к порту USB. Войдите в веб-интерфейс роутера с учётной записью суперпользователя. Перейдите в раздел «Другие» — WAN. В списке WAN подключений найдите интерфейс 3G и установить галочку «Включено». Других действий чаще всего не требуется. В случае отсутствия подключения попробуйте перезагрузить роутер.

Если роутер не распознаёт модем, свяжитесь с техподдержкой разработчика и уточните, поддерживается ли использование этой модели модема с вашей версией Smart Box.

Настройка USB

Для того, чтобы настроить общий доступ к файлам на USB-накопителе, войдите в веб-интерфейс и выберите опцию «USB-функции». Здесь вы можете включить или выключить доступ к файлам.

доступ

Для доступа к дополнительным параметрам нажмите ссылку «Дополнительные настройки». Или войдите в меню «Расширенные настройки» и перейдите на вкладку USB.

параметры

Подсоедините к роутеру флешку и нажмите кнопку «Обновить». Когда она определится, откройте раздел «Сетевой файловый сервер». В разделе «Сетевые папки» ставим галочку, чтобы открыть доступ к корневому каталогу флешки А:\ или жмём «Добавить» и выбираем на ней папку, к которой хотим дать доступ по сети. Доступ к файлам настроен.

usb

Теперь, когда флешка подключена к роутеру, вы можете на компьютере в проводнике найти Beeline Smart Box, кликнуть на него и открыть сетевую папку.

Wi-Fi

Для изменения параметров подключения к интернету по Wi-Fi права суперпользователя не нужны. Вы можете войти в веб-интерфейс с обычной учётной записью, открыть «Расширенные настройки» — Wi-Fi.

wifi

На странице «Основные параметры» вы можете изменить имя сети, режим работы (рекомендуется ставить смешанный), выбрать вручную канал, указать его ширину, настроить мощность сигнала. На странице «Безопасность» можно изменить ключ сети и настройки шифрования. Если вы ранее настраивали другие роутеры, то сложностей возникнуть не должно: всё работает точно так же.

IPTV

Вся настройка Билайн ТВ сводится к выбору порта, к которому будет подключена приставка. Если вы сделали это на этапе быстрой настройки, больше ничего не нужно. А вот при подключении к другому провайдеру придётся кое-что изменить вручную. Smart Box поддерживает виртуальные сети VLAN, так что проблем с онлайн-ТВ от Дом.ру или Ростелеком не будет.

Прошивка

Роутеры Beeline Smart Box не поддерживают возможность автоматического обновления. Для того, чтобы загрузить в устройство новую версию микропрограммы, нужно скачать её с сайта и прошить маршрутизатор вручную. Давайте разберёмся, как прошить роутер Билайн.

Проверьте, какую версию прошивки вы используете. Для этого войдите в расширенные настройки и внизу страницы найдите строку «Информация о системе».

инфо

Сравните цифры в версии ПО с данными последней версии на сайте. Если ваша микропрограмма устарела, вам следует обновить прошивку роутера Билайн Smart Box. Для этого скачайте актуальную версию и сохраните на компьютер. Запомните расположение файла.

  • В веб-интерфейсе роутера перейдите в раздел «Другие» и в меню слева внизу нажмите пункт «Обновление ПО».обновление
  • Нажмите кнопку «Выберите файл» и через проводник укажите путь к скачанной прошивке. После этого нажмите кнопку «Выполнить обновление». Дождитесь завершения процесса. Не выключайте при этом роутер из сети.
  • После обновления параметры подключения и другие пользовательские настройки сохранятся.

Сброс

Если нет доступа в веб-интерфейс роутера или устройство не заходит по адресу 192.168.1.1, перестал работать интернет, сбились настройки или вы хотите настроить маршрутизатор с нуля, воспользуйтесь опцией аппаратного сброса настроек. Точно так же можно сбросить пароль на роутере Билайн Smart Box, если вы его не знаете или забыли. Обратите внимание, что будет выполнен сброс всех настроек, а не только параметры входа в веб-интерфейс.

Кнопка сброса RESET находится на задней панели рядом с сетевыми портами. Возьмите зубочистку или разогнутую скрепку, вставьте её в отверстие, где расположена кнопка, нажмите и удерживайте 15 секунд или дольше. Роутер при этом должен быть включен. Индикаторы погаснут и устройство перезагрузится. При этом будут удалены все настройки и обновления. Маршрутизатор включится с исходными заводскими параметрами. Чтобы заново его настроить, войдите в веб-интерфейс и запустите быструю настройку.

Другие наши интересноые статьи:

  • Обновление прошивки на роутере tp link tl wr741nd
  • Обновление мтс роутера dir 822
  • Обновить роутер tp link ac1750
  • Обнаружен конфликт ip адресов asus роутер
  • Обновление прошивки на роутер тенда

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии