PDA

Bekijk de volledige versie : Обновление CFE на Asus RT-N66U для расширения NVRAM до 64KB



ryzhov_al
15-09-2012, 21:25
Исправлен ли достаточно паршивый глюк (https://github.com/RMerl/asuswrt-merlin/issues/84) с NVRAM 64K узнаем вечером.
У Мерлина то? Так к нему и вопросы )) У Асуса никаких тройных ребутов )Глюк есть (http://forum.ixbt.com/topic.cgi?id=14:56360-70#2786). Скорее всего, он воспроизводится не на всех версиях CFE (http://wl500g.info/showthread.php?25929-NEW-ASUS-RT-N66U-ROUTER!&p=250491#post250491).

Вообще, на стоковой прошивке два глюка:

1. Тройной ребут роутера.
Тест кейс:
а) устанавливаем ip-адрес роутера 192.168.1.1 для того, чтобы ping'ом можно было мониторить как загруженную систему, так и CFE.
б) запускаем в консоли Windows бесконечный ping роутера

> ping -t 192.168.1.1
и посылаем роутер в перезагрузку любым способом. В консоли Windows можно будет наблюдать следующую картину (https://github.com/RMerl/asuswrt-merlin/issues/84#issuecomment-8322405):

<force to reboot>
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Общий сбой.
Общий сбой.
Общий сбой.
Ответ от 192.168.1.1: число байт=32 время=188мс TTL=100
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=100
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=100
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=100
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=100
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.1: число байт=32 время=500мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=100
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
<booted>
Видно что загруженный Linux по какой-то причине дважды падает.

1. Невозможность передать переменные NVRAM для CFE.
Тест кейс:
а) смотрите текущие частоты и производительность Bogomips:

$ cat /proc/cpuinfo
$ nvram get clkfreq
б) задаёте новую частоту работы, которую должен установить CFE при следующей перезагрузке и перегружаете роутер:

$ nvram set clkfreq=500,250,125
$ nvram commit
$ reboot
в) проверяете производительность и текущую уставку частоты:

$ cat /proc/cpuinfo
$ nvram get clkfreq
Производительность останется прежней, хотя уставка частоты будет новая. Ещё весной всё работало (http://wl500g.info/showthread.php?30000-%CC%EE%E4%E4%E8%ED%E3-%F1%E8%F1%F2%E5%EC%FB-%EE%F5%EB%E0%E6%E4%E5%ED%E8%FF-%F0%EE%F3%F2%E5%F0%E0-Asus-RT-N66U&p=250703#post250703), теперь - нет.


А с Мерлином, на мой взгляд, совершенно иная проблема: стоковая прошивка развивается очень бодрыми темпами и Эрик просто не успевает бэкпортировать все её новшества на свой, теперь уже достаточно развесистый мод. IMHO, повторюсь, его проект постепенно теряет управляемость. Именно по этой причине я в Entware далеко не отклоняюсь (http://wl500g.info/entry.php?21-%CF%F0%EE%F8%F3-%E4%EE%E1%E0%E2%E8%F2%FC-%EF%E0%EA%E5%F2-%E2-%F0%E5%EF%EE%E7%E8%F2%EE%F0%E8%E9) от первоисточника: я не хочу, чтобы с моим проектом вышло то же самое.

Кстати, больше с Эриком я прошивку не допиливаю. Мне не хватало от стоковой прошивке всего две вещи: /jffs-раздела (аналога flashfs) и стартовых скриптов (аналога /tmp/local/sbin/{post,pre}-*). Теперь я использую свою прошивку (https://github.com/ryzhovau/asuswrt-ryzhov), которая отличается от стоковой только этими двумя вещами.

TReX
16-09-2012, 02:32
Глюк есть (http://forum.ixbt.com/topic.cgi?id=14:56360-70#2786). Скорее всего, он воспроизводится не на всех версиях CFE (http://wl500g.info/showthread.php?25929-NEW-ASUS-RT-N66U-ROUTER!&p=250491#post250491).

Вообще, на стоковой прошивке два глюка:

1. Тройной ребут роутера.
.

1. Насчет неработающего проброса большое тестирование уже проходило )
(результат отрицательный )
2. Тройная перезагрузка (можно определить не только по пингу но и по индикаторам роутера )
(результат отрицательный)
3. Установка частот - без анализа текущего кода, сказать что действует неправильно невозможно, вполне может быть и заблокировано на программном уровне, а проводить эксперементы затрагивающие CEF на боевом железе совершенно нет настроения ))

P.S. С Мерлином ожидаемо, попытка навеса "колокольчиков и звоночков" всегда к такому приводила )

ryzhov_al
16-09-2012, 09:53
2. Тройная перезагрузка (можно определить не только по пингу но и по индикаторам роутера )
(результат отрицательный)Мы с theMIROn до трёх ночи вчера по этому поводу развлекались. Безрезультатно.


3. Установка частот - без анализа текущего кода, сказать что действует неправильно невозможно, вполне может быть и заблокировано на программном уровне, а проводить эксперементы затрагивающие CEF на боевом железе совершенно нет настроения ))Либо работает, либо нет. Остальное - шелуха.

Я не исключаю, что при последовательной примерке каждой из стоковых прошивок был один билд (этот? (http://wl500g.info/showthread.php?25929-NEW-ASUS-RT-N66U-ROUTER!&p=250491#post250491)), который обновляет CFE. Если есть желание помочь, выложи личкой дамп своего CFE:

$ cat /dev/mtd0 | gzip > cfe.dump.gz


Выложите, пожалуйста, скомпиленую версию Вашей прошивки)Лежит в разделе Downloads. Сразу скажу, что asuswebstorage не использую и его работоспособность не проверял. Я не заинтересован в широкой экспансии этой прошивки, проект заведён с целью обмена опытом с другими энтузиастами.

skuwakin
16-09-2012, 13:17
Эх.. Как было бы здорово, если бы все прошивописатели объединились и сотворили нечто... Например, web-интерфейс и наполнение от помидор, тонкие, эффективные штуки от энтузиастов и ко... и т.д. и т.п. А так все потихоньку двигают свое...

TReX
16-09-2012, 14:53
Мы с theMIROn до трёх ночи вчера по этому поводу развлекались. Безрезультатно.

Либо работает, либо нет. Остальное - шелуха.

Я не исключаю, что при последовательной примерке каждой из стоковых прошивок был один билд (этот? (http://wl500g.info/showthread.php?25929-NEW-ASUS-RT-N66U-ROUTER!&p=250491#post250491)), который обновляет CFE. Если есть желание помочь, выложи личкой дамп своего CFE:

$ cat /dev/mtd0 | gzip > cfe.dump.gz


Я так и думал )) А то с чего бы уважаемый theMIROn вдруг стал просить меня проверить работает ли проброс портов ))
Далеко не всегда все что орут на хоботе правда... В большинстве случаев либо не делается элементарный сброс или делают сброс но загружают старый конфиг ))

По поводу прошивок версии 9.х.х.х - никогда не шил и не собираюсь, причина проста - не знаю меняет ли он CFE, но вот некоторые установки NVRAM она корежит, с этим столкнулись еще люди при первых утечках этой ветки )

CFE выглядит вот так -


secret_code=хххххххх pmon_ver=CFE 5.100.127 bl_version=1.0.1.2 pci/1/1/regrev=3

Тут я соглашусь с hggomes - I guess CFE is the same...

А теперь посмотрим - на мой роутер ни Мерлиновские ни Томатовские ни DD-WRT прошивки не ставились, только стоковые, исключая ветку 9.х.х.х и все работает, вывод напрашивается сам, у вас остались какие-то хвосты от экспериментов, они то и вызывают "странности поведения" )

Специально для вас ваш любимый ping тест -


C:\>ping 192.168.1.1 /t

Pinging 192.168.1.1 with 32 bytes of data:
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Request timed out.
Request timed out.
Request timed out.
Reply from 192.168.1.2: Destination host unreachable.
Reply from 192.168.1.1: bytes=32 time<1ms TTL=100
Reply from 192.168.1.1: bytes=32 time<1ms TTL=100
Request timed out.
Request timed out.
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time=26ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64
Reply from 192.168.1.1: bytes=32 time<1ms TTL=64

Ping statistics for 192.168.1.1:
Packets: Sent = 93, Received = 88, Lost = 5 (5% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 26ms, Average = 0ms
Control-C
^C
C:\>


Как видите все как богом и Броадкомом положенно, при перезагрузке вылез CFE (видно по значению TTL=100), подождал, ответа не получил, загрузил прошивку и дальше все хорошо, никаких тройных перезагрузок )

ryzhov_al
16-09-2012, 15:45
Эх.. Как было бы здорово, если бы все прошивописатели объединились и сотворили нечто... Например, web-интерфейс и наполнение от помидор, тонкие, эффективные штуки от энтузиастов и ко... и т.д. и т.п. А так все потихоньку двигают свое...Вы готовы стать объединяющей силой? Я даже не верю, что вы готовы на бесконечные тесты промежуточных результатов.


CFE выглядит вот так -


secret_code=хххххххх pmon_ver=CFE 5.100.127 bl_version=1.0.1.2 pci/1/1/regrev=3CFE выглядит по другому. Так выглядят переменные из NVRAM, которые могут туда затесаться из дефолтных значений, поэтому дамп CFE и важен. А NVRAM доверия нет: посмотрите в /dev/mtd3, если вначале нет маркера "FLSH", а дамп раздела до середины забит нулями, то CFE, как Влад говорит, плевать на такой NVRAM хотел.

theMIROn
16-09-2012, 15:50
А NVRAM доверия нет: посмотрите в /dev/mtd3, если вначале нет маркера "FLSH", а дамп раздела до середины забит нулями, то CFE, как Влад говорит, плевать на такой NVRAM хотел.
наоборот же. раздел с nvram всегда 64K, заполнение с начала к концу - 64K, с середины к концу - 32K

ryzhov_al
16-09-2012, 15:56
наоборот же. раздел с nvram всегда 64K, заполнение с начала к концу - 64K, с середины к концу - 32KУгу. Но дамп-то будет выглядеть с нулевого адреса как FF FF FF..., и FLHS... c 0x8000. Т.е. глядя из линукса, NVRAM буд-то бы начинается с 32Кб.

theMIROn
16-09-2012, 15:57
Угу. Но дамп-то будет выглядеть с нулевого адреса как FF FF FF..., и FLHS... c 0x8000. Т.е. глядя из линукса, NVRAM буд-то бы начинается с 32Кб.
Да. CFE ждет начало nvram с 0x8000

skuwakin
16-09-2012, 16:09
Вы готовы стать объединяющей силой? Я даже не верю, что вы готовы на бесконечные тесты промежуточных результатов.

Что бы сталь об-ей силой, надо, помимо всего прочего, иметь таллант орг-ра. А чтобы проводить качественное тестирование, нужны хорошие знания предмета и наличие неограниченного свободного времени... Я не распологаю ни первым, ни вторым. Я просто высказал "а хорошо бы...если бы..."

p.s. искренне удивляюсь, как у вас находится столько времени на все это дааалеко не простое дело...

TReX
16-09-2012, 16:21
CFE выглядит по другому. Так выглядят переменные из NVRAM, которые могут порождаться дефолтными значениями, вшитыми в CFE. Поэтому дамп CFE и нужен. А NVRAM верить нельзя: проверьте как у вас выглядит начало дампа /dev/mtd3. Если вначале дампа вместо маркера "FLSH" до середины дампа всё будет забито нулями, то CFE, как Влад раскопал, плевать на эти настройки хотел.

Take it easy man! Какими дефолтными значениями вшитыми в CFE?? Я специально ключ WPS ххх забил, это не дефолтное а актуальное значение, и находится оно извините в CFE, там практически в начале файла таблица с актуальными значениями установок роутера, да, не всех, а только тех что необходимы чтобы подсоединится к роутеру после полного сброса причем даже при отсутствии проводного клиента, беспроводка тоже полностью инициализируется (включая и WPS, если до сброса он был выставлен ))

Посмотрел дамп NVRAM, разумное доброе вечное начинается с 0000010000


000000FFD0: FF FF FF FF FF FF FF FF │ FF FF FF FF FF FF FF FF ****************
000000FFE0: FF FF FF FF FF FF FF FF │ FF FF FF FF FF FF FF FF ****************
000000FFF0: FF FF FF FF FF FF FF FF │ FF FF FF FF FF FF FF FF ****************
0000010000: 46 4C 53 48 F8 80 00 00 │ D9 01 00 00 00 00 00 00 FLSH°А ┘☺
0000010010: 00 00 00 00 70 72 69 6E │ 74 65 72 5F 69 66 6E 61 printer_ifna
0000010020: 6D 65 3D 75 73 62 00 77 │ 6C 31 2E 33 5F 77 66 69 me=usb wl1.3_wfi
0000010030: 5F 65 6E 61 62 6C 65 3D │ 30 00 77 6C 30 2E 31 5F _enable=0 wl0.1_


Т.е. если длина файла 1FFFF, вычитаем FFFF, получаем обещанные 64К)
P.S. При условии что у меня например при моих больших таблицах пробросов все заканчивается на 000180F7 (т.е. занято 33015), то запас еще огромный )

ryzhov_al
16-09-2012, 16:55
Take it easy man! Какими дефолтными значениями вшитыми в CFE?? Я специально ключ WPS ххх забил, это не дефолтное а актуальное значение, и находится оно извините в CFE, там практически в начале файла таблица с актуальными значениями установок роутера, да, не всех...Ты всё в кучу свалил. Дефолтные значения в CFE находятся в /dev/mt0 по смещению 0x400 и до 0x1400 вместе с самим CFE. А ты говоришь про образ NVRAM в /dev/mtd3.

При установке нового значения WPS у тебя загрузчик в /dev/mtd0 не перезатирается:). И отдельно WPS в нём не правится, т.к. целостность блока дефолтных значений NVRAM по указанным смещениям проверяется контрольной суммой.


...вывод напрашивается сам, у вас остались какие-то хвосты от экспериментов, они то и вызывают "странности поведения" )В каком месте флеша? В CFE, который достался мне с завода или в остальной области вплоть до board config, что заливается прямиком из *.trx?

TReX
16-09-2012, 18:03
Ты всё в кучу свалил. Дефолтные значения в CFE находятся в /dev/mt0 по смещению 0x400 и до 0x1400 вместе с самим CFE. А ты говоришь про образ NVRAM в /dev/mtd3.

При установке нового значения WPS у тебя загрузчик в /dev/mtd0 не перезатирается:). И отдельно WPS в нём не правится, т.к. целостность блока дефолтных значений NVRAM по указанным смещениям проверяется контрольной суммой.

В каком месте флеша? В CFE, который достался мне с завода или в остальной области вплоть до board config, что заливается прямиком из *.trx?

Читаем внимательнее, в начале я писал про CFE, потом уже про NVRAM, самому стало интересно какой у него стал размер )

По поводу затирающихся значений NVRAM, тогда следуя вашей логике при каждой переустановке роутера с полным сбросом я должен терять запуск файла .asusrouter, поскольку роутер у меня RT-N66u,


apps_dev=sda1
apps_install_folder=asusware
apps_mounted_path=/tmp/mnt/sda1

a эти значения добавляются в NVRAM только при инсталяции Download Master )
http://wl500g.info/showthread.php?30086-Подключение-репозитария-Entware-на-оригинальной-прошивке-Asus-RT-N66U&p=248473#post248473
Хотя на самом деле все прекрасно продолжет работать, даже после установки билда .220, хотя уж он то по идее точно должен был все потереть ))
А мы видим вот это -


admin@RT-N66U:/tmp/home/root# nvram show | grep apps
apps_state_upgrade=
apps_swap_enable=0
apps_state_autorun=4
apps_local_space=/rom
apps_state_switch=
apps_state_update=
apps_dev=sda1
apps_swap_file=.swap
apps_pool_error=0
apps_ipkg_server=http://dlcdnet.asus.com/pub/ASUS/wireless/ASUSWRT
apps_wget_timeout=30
apps_u2ec_ex=1
apps_state_stop=
apps_state_remove=
apps_mounted_path=/tmp/mnt/sda1
apps_state_action=
apps_state_enable=
apps_swap_threshold=
apps_state_error=0
apps_state_autofix=1
apps_install_folder=asusware
apps_state_install=
apps_swap_size=33000
size: 32870 bytes (32666 left)
admin@RT-N66U:/tmp/home/root#

ryzhov_al
23-09-2012, 07:36
По поводу тройной перезагрузки (http://wl500g.info/showthread.php?30368-%CF%F0%EE%F8%E8%E2%EA%E8-%E4%EB%FF-Asus-RT-N66U&p=254814#post254814) роутера на стоковых прошивках: ситуация возникает в случае, если выключен один или оба беспроводных интерфейсов. Когда оба PHY работают - всё работает. Соважо раскопал (https://github.com/RMerl/asuswrt-merlin/issues/84#issuecomment-8794630).

TReX
23-09-2012, 10:05
По поводу тройной перезагрузки (http://wl500g.info/showthread.php?30368-%CF%F0%EE%F8%E8%E2%EA%E8-%E4%EB%FF-Asus-RT-N66U&p=254814#post254814) роутера на стоковых прошивках: ситуация возникает в случае, если выключен один или оба беспроводных интерфейсов. Когда оба PHY работают - всё работает. Соважо раскопал (https://github.com/RMerl/asuswrt-merlin/issues/84#issuecomment-8794630).

А на своем роутере именно такое вам поведение подтвердить удалось?

ryzhov_al
13-10-2012, 22:41
Ниже представлена информация по апгрейду загрузчика CFE на роутере Asus RT-N66U с заводской версии 1.0.1.2 до версии 1.0.1.3.

Цель обновления - вернуть CFE (http://wl500g.info/showthread.php?30368-%CF%F0%EE%F8%E8%E2%EA%E8-%E4%EB%FF-Asus-RT-N66U&p=254814#post254814) возможность читать переменные из NVRAM, которую он утратил при расширении в новых прошивках
NVRAM до 64Кб не без помощи инженеров Asus летом 2012 года. Кроме этого архива (https://github.com/downloads/ryzhovau/asuswrt-ryzhov/cfe_n66u-1.0.1.3.tgz) вам понадобится ПК с Linux.

Disclaimer

Если вы в восстановлении указанной возможности не нуждаетесь или просто не представляете о чём идёт речь, то лучше загрузчик
в своём роутере не трогать. Порча загрузчика приведёт роутер в неработоспособное состояние, после которого роутеру одна дорога
- в сервис-центр. Вы должны чётко представлять последствия своих действий, иначе рискуете получить вместо роутера красивый
кирпич ценой в 200$. Вы должны понимать, что происходит в процессе обновления, т.к. никто другой, кроме вас, не несёт никакой
ответственности за то, чтобы этот процесс завершился успешно. Или не завершился.

Диагностика проблемы

Достаточно установить любую используемую CFE переменную NVRAM и убедиться в том, что CFE при загрузке роутера её игнорирует.
Например, запомните текущее значение BogoMIPS в выводе:

$ cat /proc/cpuinfo | grep BogoMIPS
и попробуйте изменить частоту работы процессора установкой:

$ nvram set clkfreq=300 && nvram commit && reboot
Если после перезагрузки CFE проигнорировал ваши установки, то значение BogoMIPS останется прежним,
следовательно, CFE новую частоту работы процессора не установил.

Процесс обновления

Обновление проводится в несколько этапов:

считывание и резервирование текущего CFE,
распаковка из него заводских значений NVRAM (в т.ч. уникальных MAC-адресов вашего роутера)
и последующее внедрение распакованной NVRAM в новый бинарный файл загрузчика,
прошивка нового загрузчика.


1. Считывание текущего CFE.
Проводится в командной строке роутера:

$ cat /dev/mtd0 > ./cfe.original
Полученный файл надо переместить на ПК, в ту же папку, где распаковано содержимое архива (https://github.com/downloads/ryzhovau/asuswrt-ryzhov/cfe_n66u-1.0.1.3.tgz).


2. Подготовка нового загрузчика.
Процесс автоматизирован, в папке с архивом выполните скрипт:

$ ./cfe_update.sh cfe.original cfe.new
где cfe.new - произвольное имя для нового бинарника CFE.


3. Прошивка нового CFE.
Полученный файл cfe.new необходимо перенести на роутер и прошить во flash-память:

$ mtd-write -i cfe.new -d pmonВсё!

Дополнение

Содержимое архива:

cfe_n66u-1.0.1.3.empty.bin - новый бинарник CFE версии 1.0.1.3 для RT-N66U,
cfe_update.sh - скрипт, облегчающий подготовку нового загрузчика,
nvserial - утилита для внедрения NVRAM в бинарник CFE, проприетарная, (с) Broadcom,
nvsimple - утилита по распаковке NVRAM из CFE, open source, (c) theMIROn,
nvsimple.c - её исходники.

Azur4
14-10-2012, 06:33
ryzhov_al

вам понадобится ПК с Linux.
Linux надо видать только х86 (либо ставить ia32-libs) т.к. на х64 nvserial не стартует.

А х86 (Ubuntu 12.04.1) выдала вот такое:

root@ubuntu:/temp/CFE/# ./cfe_update.sh cfe.original cfe.new
[1/4] Dumping default NVRAM settings from your CFE...
./nvsimple: 1: ./nvsimple: Syntax error: "(" unexpected
[2/4] Modifying NVRAM settings (silent step)...
[3/4] Creating new CFE...
4092+0 записей считано
4092+0 записей написано
скопировано 4092 байта (4,1 kB), 0,0237157 c, 173 kB/c
[4/4] Checking differences between NVRAM from old and new CFE's
If you see only two differences: one is for 'bl_version' and second is a new 'odmpid=ASUS' variable then all step are done! New CFE image 'cfe.new' is prepared for flash.
И размер cfe.new = 133428 при том что размер cfe.original=262144. Это нормально?

Пересобрал nvsimple

gcc nvsimple.c -o nvsimple -g -O2
Ошибки пропали:

root@ubuntu:/temp/CFE/# ./cfe_update.sh cfe.original cfe.new
[1/4] Dumping default NVRAM settings from your CFE...
nvram start 0x400
nvram end 0x13d8
nvram len 4036
nvram crc 0x3e
nvram ver 0x01
[2/4] Modifying NVRAM settings (silent step)...
[3/4] Creating new CFE...
4092+0 записей считано
4092+0 записей написано
скопировано 4092 байта (4,1 kB), 0,0167647 c, 244 kB/c
[4/4] Checking differences between NVRAM from old and new CFE's
4c4
< bl_version=1.0.1.2
---
> bl_version=1.0.1.3
19a20
> odmpid=ASUS
If you see only two differences: one is for 'bl_version' and second is a new 'odmpid=ASUS' variable then all step are done! New CFE image 'cfe.new' is prepared for flash.
Но вопрос с размером актуален...

ryzhov_al
14-10-2012, 07:42
И размер cfe.new = 133428 при том что размер cfe.original=262144. Это нормально?Нормально.

Azur4
14-10-2012, 08:13
Нормально.

Спасибо всё получилось... Вроде не "кирпич".

Но при разгоне BogoMIPS остаётся прежним (Прошивка Мерлина последняя):

admin@(none):/tmp/home/root# nvram show | grep clkfreq
clkfreq=600,300,150
size: 45948 bytes (19588 left)
admin@(none):/tmp/home/root# nvram set clkfreq=662,331,165
admin@(none):/tmp/home/root# nvram show | grep clkfreq
clkfreq=662,331,165
size: 45948 bytes (19588 left)
admin@(none):/tmp/home/root# nvram commit
admin@(none):/tmp/home/root# nvram show | grep clkfreq
clkfreq=662,331,165
size: 45948 bytes (19588 left)
admin@(none):/tmp/home/root# cat /proc/cpuinfo | grep BogoMIPS
BogoMIPS : 299.82
admin@(none):/tmp/home/root# reboot
Rebooting...
admin@(none):/tmp/home/root#
Session is closed
Disconnected from server


ASUSWRT RT-N66U_3.0.0.4 Tue Sep 25 02:53:14 UTC 2012
admin@(none):/tmp/home/root# cat /proc/cpuinfo | grep BogoMIPS
BogoMIPS : 299.82
admin@(none):/tmp/home/root# nvram show | grep clkfreq
clkfreq=662,331,165
size: 45948 bytes (19588 left)

TReX
14-10-2012, 13:58
Сейчас напишу про разгон.

Upd: Готово (http://wl500g.info/showthread.php?30454-%D0%E0%E7%E3%EE%ED-%EF%F0%EE%F6%E5%F1%F1%EE%F0%E0-%ED%E0-Asus-RT-N66U-RT-AC66U&p=255527#post255527).

А почему бы сборку нового CFE не организовать на роутере, если уж так лениво портировать програмку на Win платформу )

theMIROn
14-10-2012, 14:37
А почему бы сборку нового CFE не организовать на роутере, если уж так лениво портировать програмку на Win платформу )
nvserial x86 бинарником. можно nvsimple допилить до ее функционала, чтобы умело интегрировать nvram, и кросскомпилировать.
но мне пока не до этого

ryzhov_al
18-10-2012, 08:17
Новый CFE пошёл в люди (http://forums.smallnetbuilder.com/showthread.php?t=8259), жалоб пока нет.

Annihilator666
11-11-2012, 07:10
Вполне корректная прошивка, шустренькая и приятная, разбираемся с руками )
И с глазами. Я же написал ниже. Или у вас роутер как и положено грузиться за 15 секунд при ребуте и вы спустя эти секунды уже пингуете любой адрес инета?
С этой прошивкой у меня роутер грузиться минимум минуту. А так да, всё работает как и раньше, т.е. ничего в принципе и лучше не стало, можно откатиться на старую, чтобы грузился быстрее)))

TReX
11-11-2012, 09:11
И с глазами. Я же написал ниже. Или у вас роутер как и положено грузиться за 15 секунд при ребуте и вы спустя эти секунды уже пингуете любой адрес инета?
С этой прошивкой у меня роутер грузиться минимум минуту. А так да, всё работает как и раньше, т.е. ничего в принципе и лучше не стало, можно откатиться на старую, чтобы грузился быстрее)))

) У меня он никогда за 15 секунд не грузился, ему еще надо в моем случае L2TP поднимать, а Билайн неспешно отвечает, однако и тройной перезагрузки при старте как не было так и нет. Если верить ryzhov_al, то проблема тройной перезагрузки в кривом загрузчике на некоторых партиях RT-N66u, у себя проверить это к сожалению не могу, так как мне попался из правильной...

P.S. Если поищите на форуме то ryzhov_al выкладывал решение для этой проблемы )

Annihilator666
11-11-2012, 14:28
) У меня он никогда за 15 секунд не грузился, ему еще надо в моем случае L2TP поднимать, а Билайн неспешно отвечает, однако и тройной перезагрузки при старте как не было так и нет. Если верить ryzhov_al, то проблема тройной перезагрузки в кривом загрузчике на некоторых партиях RT-N66u, у себя проверить это к сожалению не могу, так как мне попался из правильной...

P.S. Если поищите на форуме то ryzhov_al выкладывал решение для этой проблемы )
На счёт соединения не подумал, у меня прямое, оно конечно побыстрее.
На счёт кривого загрузчика, непонятно... Раньше я не помню таких морганий, ладно бы всегда так было. Ранее, кстати, я разбирал роутер и там была ревизия платы поновее всех тех, что были в первых обзорах, так что сомнительно, что у меня настолько ранняя версия роутера. Что это может быть тогда? Может какие-то специфичные функции роутера стали по другому работать, которые кто-то не использует и поэтому у него этого нет, а у меня проявляется?
И кстати у меня 5-терная перезагрузка а не тройная)) Уже 2 раза пересчитывал.

ryzhov_al
11-11-2012, 14:55
И кстати у меня 5-терная перезагрузка а не тройная)) Уже 2 раза пересчитывал.Оба беспроводных интерфейса включены?
Для чистоты экперимента я бы сбросил роутер в заводское состояние и настроил бы всё с нуля.

Annihilator666
11-11-2012, 16:31
Оба беспроводных интерфейса включены?
Для чистоты экперимента я бы сбросил роутер в заводское состояние и настроил бы всё с нуля.
На счёт первого уже думал об этом, потому, что это начинается после некоторых настроек, 5Ghz выключено за ненадобностью пока.
Роутер сбрасывал 2 раза и перенастаривал с нуля соотв. cтолько же.
Попробовал включить 5ghz и роутер стал загружаться практически как обычно. Первый раз все индикаторы загораются тухнут и загораются только индикаторы проводных интерфейсов, ещё 5 сек опять все загораютя тухнул и уже загораются проводные и беспроводные индикаторы интерфейсов и далее роутер начинает работать. Лучше не 5 раз уже)) С чем связано то в итоге?

ryzhov_al
11-11-2012, 17:21
Попробовал включить 5ghz и роутер стал загружаться практически как обычно.
...
С чем связано то в итоге?Вот с этим (https://github.com/RMerl/asuswrt-merlin/commit/b1bb41364e80ce1260abcfe72370b9ff187a72b2). Это вообще-то логика запуска роутера, но ASUS'овцы в ней что-то не допилили. Задумывалось так: если при старте роутера не удаётся инициализировать Wi-Fi интерфейс(ы), то роутер будет перезагружен dev_fail_reboot раз. Однако теперь в прошивке отключенный PHY-интерфейс стал считаться rc-логикой как неработоспособный.
Для того, чтобы роутер не уходил в перезагрузку при отключенном интерфейсе (2,4 и/или 5ГГц), надо установить NVRAM-переменную dev_fail_reboot в «0»:

$ nvram set dev_fail_reboot=0
$ nvram commit
Кстати, с CFE этот глюк никак не связан. Это глюк userspace-логики.

Это было первое. Теперь ко второму:
...Первый раз все индикаторы загораются тухнут и загораются только индикаторы проводных интерфейсов, ещё 5 сек опять все загораютя тухнул и уже загораются проводные и беспроводные индикаторы интерфейсов и далее роутер начинает работать.Запустите циклический ping роутера и отправьте его в перезагрузку:

> ping -t 192.168.1.1 Тогда только подсчитаете (https://github.com/RMerl/asuswrt-merlin/issues/84#issuecomment-8322405) точно сколько раз он перегружается.

Annihilator666
12-11-2012, 01:45
Спасибо за инфу, Эта инфа уже донесена до разрабов офф прошивки))
На счёт берута по пингу получается что всё-таки 3 раза, а не 5.

C:\>ping -t 192.168.66.1

Обмен пакетами с 192.168.66.1 по с 32 байтами данных:
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Общий сбой.
Общий сбой.
Общий сбой.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.66.1: число байт=32 время<1мс TTL=64

Статистика Ping для 192.168.66.1:
Пакетов: отправлено = 41, получено = 25, потеряно = 16
(39% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек
Но на предыдущих (каких точно не скажу) офф. прошивкак у меня такого не было 100%

ryzhov_al
12-11-2012, 06:06
Спасибо за инфу, Эта инфа уже донесена до разрабов офф прошивки))Отлично. Чем больше раз она донесена, тем лучше.



На счёт берута по пингу получается что всё-таки 3 раза, а не 5.Раз поменяли дефолтный ip адрес роутера, то эксперимент придётся повтроить. Если есть желание, конечно. Дело в том, что заводской CFE новый ip-адрес не сможет (http://forums.smallnetbuilder.com/showthread.php?t=8259) прочитать из расширенной до 64Кб NVRAM.
Роутер перенастраивать не придётся. Необходимо:


установить в св-вах сетевого интерфейса ip-адрес 192.168.1.2, шлюз 192.168.1.1,
запустить циклический ping -t 192.168.1.1,
выключить роутер и снова включить.

Количество секций с TTL=100 точно покажет количество рестартов.

Annihilator666
12-11-2012, 13:50
Сделал проще, сбросил в дефолт чтобы все нюансы откинуть. Загрузкился. Прошёлся по мастеру настройки, тыкал тока далее далее ничё не меняя. Первый ребут:

C:\>ping 192.168.1.1 -t

Обмен пакетами с 192.168.1.1 по с 32 байтами данных:
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время=1мс TTL=64

Статистика Ping для 192.168.1.1:
Пакетов: отправлено = 37, получено = 31, потеряно = 6
(16% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мсек, Максимальное = 1 мсек, Среднее = 0 мсек
Нормальный ребут, как обычно.
Далее из всех настроек отключаю только 5Ghz вафлю, применяется, тыкаю ребут и вижу:

C:\>ping 192.168.1.1 -t

Обмен пакетами с 192.168.1.1 по с 32 байтами данных:
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.70: Заданный узел недоступен.
Ответ от 192.168.1.70: Заданный узел недоступен.
Ответ от 192.168.1.1: число байт=32 время=900мс TTL=100
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=100
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=100
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=100
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.70: Заданный узел недоступен.
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Общий сбой.
Общий сбой.
Общий сбой.
Общий сбой.
Ответ от 192.168.1.1: число байт=32 время=66мс TTL=100
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=100
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=100
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=100
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=100
Превышен интервал ожидания для запроса.
Превышен интервал ожидания для запроса.
Ответ от 192.168.1.1: число байт=32 время=1497мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64
Ответ от 192.168.1.1: число байт=32 время<1мс TTL=64

Статистика Ping для 192.168.1.1:
Пакетов: отправлено = 66, получено = 52, потеряно = 14
(21% потерь)
Приблизительное время приема-передачи в мс:
Минимальное = 0мсек, Максимальное = 1497 мсек, Среднее = 50 мсек
Феерический 3,14сдедс...

Omega
17-11-2012, 16:10
Спасибо за инфу, Эта инфа уже донесена до разрабов офф прошивки))
На счёт берута по пингу получается что всё-таки 3 раза, а не 5.
http://www.lostrealm.ca/tower/node/79 ;)


Asuswrt-Merlin - Changelog
==========================

3.0.0.4.246.20:
- NEW: Wifi status icon will be half colored if only one radio is enabled.
- NEW: Wifi status icon popup will report the state of each radios.
- NEW: upnp custom config file for miniupnpd
- NEW: unmount user script
- NEW: led_ctrl and makemime (for use in conjunction with sendmail) applets.
- NEW: Implemented control for network switch LEDs (all four at once)
- NEW: Stealth Mode: option to disable all LEDs
- NEW: Added CONFIG_IP_NF_RAW and CONFIG_NETFILTER_XT_TARGET_NOTRACK modules.
- FIXED: Radio toggle through WPS button would be overriden by a scheduled
radio. Reverted "switch" to "toggle" code to prevent this.
- FIXED: You couldn't disable DMZ by clearing the IP field.
- FIXED: You couldn't edit entered text in DHCP/MAC/etc name field
- FIXED: clientid passing for some ISPs requiring it (like Sky UK)
was broken with the DHCP client change of build 220.
- FIXED: No longer reboot the router three times during boot time if one
of the radios is disabled by the user. (RT-N66U)
- FIXED: Changing the router login name to anything other than "admin"
would prevent radvd, ecmh and the cru script from working
properly - they all assumed "admin". Made then use
http_username instead (which is tied to the superuser)
- CHANGED: Improved SMB and vsftpd read performance by up to 30%
http://www.lostrealm.ca/asuswrt-merlin/changelog.txt :rolleyes:

ryzhov_al
17-11-2012, 16:12
Omega, тройной ребут на RT-N66U к CFE отношения не имеет, это исключительно userspace проблема в логике rc.

AndreyPopov
03-10-2014, 14:38
собственно сабж:
Изменение размера NVRAM с 32к до 64к - реально?

как понимаю размер NVRAM и адресное пространство как-то зашито в CFE.


реально поправить размер NVRAM по методу RT-N66U скажем на RT-N16, RT-N15U?

ryzhov_al
03-10-2014, 19:27
как понимаю размер NVRAM и адресное пространство как-то зашито в CFE.Тут это уже несколько раз обсасывалось: с областью NVRAM на флеше работают:

а) загрузчик CFE,
б) загруженный Linux.

До появления RT-N66U, 32КБ хватало на все нужды, но Asus стал класть в NVRAM всё, что только можно, поэтому раздел NVRAM пришлось расширять. Был период, когда разбивка флеша на RT-N66U для linux-ядра была объявлена расширенной до 64КБ, но CFE остался не обновлён и утратил способность читать переменные NVRAM за определённым адресным пределом. Собственно, тема с обновлением CFE (http://forums.smallnetbuilder.com/showthread.php?t=8259) как раз из-за этого и стала актуальной. С определённого момента Аsus обновил CFE на RT-N66U, это обновление приезжает с любой актуальной заводской прошивкой.

Пока вы не обновите на RT-N15U CFE, о расширенной NVRAM можно не мечтать. Даже если вы расширите размер NVRAM для linux будут возникать случаи, когда при перезагрузке CFE будет считать NVRAM битой и сбрасывать все настройки.

Чем больше фич вы разрешаете в прошивке для младших моделей (включая DualWAN), тем выше вероятность переполнения NVRAM.

AndreyPopov
04-10-2014, 12:07
ну так весь вопрос в том, как сказать CFE пользовать 64к? есть какая-то возможность?


Jan 1 02:00:18 kernel: 0x00000000-0x00020000 : "pmon"
Jan 1 02:00:18 kernel: 0x00020000-0x007f0000 : "linux"
Jan 1 02:00:18 kernel: 0x001382f8-0x007a0000 : "rootfs"
Jan 1 02:00:18 kernel: 0x007f0000-0x00800000 : "nvram"
Jan 1 02:00:18 kernel: 0x007a0000-0x007f0000 : "jffs2"

потому как размер nvram вроде и так 64к.

ryzhov_al
04-10-2014, 16:25
ну так весь вопрос в том, как сказать CFE пользовать 64к? есть какая-то возможность?Есть. Пересборка CFE.

AndreyPopov
04-10-2014, 17:45
Есть. Пересборка CFE.

в исходниках есть вроде есть cfe_RT-N12HP_B1.5.110.27.9 - может помочь?

ryzhov_al
04-10-2014, 18:31
в исходниках есть вроде есть cfe_RT-N12HP_B1.5.110.27.9 - может помочь?Скорее всего да.

AndreyPopov
04-10-2014, 18:58
Скорее всего да.

а вы поможете?

я глянул там есть команда
nvserial -i compressed/cfez.bin -o RTN12P_boot_0.11.bin -s 45 RT-N12P_boot_1.0_16.txt

из старого cfe я так понимаю получится вытянуть bin и txt для RT-N15U?

и в каком месте надо поправить, чтобы NVRAM 64к был?

ryzhov_al
05-10-2014, 05:33
а вы поможете?Нет, т.к. не вижу необходимости подвергать пользователей риску убиения роутеров из-за довольно сомнительных новшеств. В случае RT-N66U я выкладывал обновлённый CFE для решения явных косяков, которые теперь не актуальны. Я бы предпочёл ту тему закрыть, но у пользователей обновление CFE до сих пор пользуется популярностью. К моему сожалению.


из старого cfe я так понимаю получится вытянуть bin и txt для RT-N15U?Я не понимаю что значит «вытянуть». Команда выше запаковывает образ NVRAM из текстового файла в готовый бинарник CFE.

AndreyPopov
05-10-2014, 10:48
Я не понимаю что значит «вытянуть». Команда выше запаковывает образ NVRAM из текстового файла в готовый бинарник CFE.

ну бинарник и текстовый файл для RT-N15U тоже ведь надо где-то взять.
в указанном исходнике лежит только для RT-N12P

AndreyPopov
06-10-2014, 12:28
нашел в cfe_update.sh
как из CFE nvram переменные достать понятно
./nvsimple-mipsel -e $1 -v -o 1024 | sort > nvram_orig.txt


вопрос в том, bin где взять? или как его получить? скомпилить? или млжет в старом что-то поправить и пересобрать?

в вашем cfe_update.sh упоминается 1.0.1.9.empty.bin - он откуда?

будет ли достаточно для поддержки 64k nvram пересобрать оригинальный cfe:

./nvsimple-mipsel -i nvram.txt cfe.new -v -o 1024 -l 4092

при извлечении он писал:

./nvsimple-mipsel -e /dev/mtd0ro -v -o 1024 | sort > nvram_orig.txt
nvram header found:
start 0x400
end 0xa00
len 1536
crc 0x87
ver 0x01

после пересборки:


./nvsimple-mipsel -i nvram.txt cfe.new -v -o 1024 -l 4092
nvram header created:
start 0x400
end 0xa24
len 1572
crc 0x0d
ver 0x01

ryzhov_al
06-10-2014, 17:58
вопрос в том, bin где взять? или как его получить? скомпилить? или млжет в старом что-то поправить и пересобрать?Для MIPS-платформы исходные коды в GPL-архиве не были доступны, они появились только для ARM-устройств.


в вашем cfe_update.sh упоминается 1.0.1.9.empty.bin - он откуда?Слит из более нового устройства.

AndreyPopov
06-10-2014, 19:28
Для MIPS-платформы исходные коды в GPL-архиве не были доступны, они появились только для ARM-устройств.



ну вот для MIPS в папке src-rt есть cfe_RT-N12HP_B1.5.110.27.9 - он может помочь?
https://github.com/AndreyPopovNew/asuswrt-merlin-rt-n/tree/rt-nu/release/src-rt/cfe-RT-N12HP_B1-5.110.27.9

просто я уже подготовил вариант прошивки для rt-n10u, rt-n15u, rt-n14uhp - где часть прошивки вынесена в отдельный кит, который надо скопировать на USB диск и слинковать с /jffs

ftp://85.198.188.40/pub/ASUS/ASUSWRT_MODDED/mod6b1/RT-N15U_3.0.0.4_376_2678-gb2dcaa5-m6b1-app-exp-ftp-samba-nfs-openvpn-wimax-smtp-64k.trx
ftp://85.198.188.40/pub/ASUS/ASUSWRT_MODDED/mod6b1/RT-N15U-ext.tgz

осталась проблема с тем, что для дополнительных пакетов нужно место в nvram!

хотелось бы поправить это в cfe, в том числе и для RT-N16.

а не лазить в "туче" кода, пытаясь заставить приложения пользовать /jffs или /opt для хранения переменных.

kermy
22-08-2016, 10:09
Вопрос по обновлению CFE bootloader
есть такое руководство к действию
http://www.snbforums.com/threads/cfe-bootloader-update.8259/
НО утверждается что работает всё только на мерлиновской прошивке.

В скрипте cfe_update.sh встречаем такое условие


if [ ! -f /www/merlin.js ] ; then
echo "Works only on Asuswrt-Merlin firmware, sorry."
exit 1
fi

Вопрос к более опытным товарищам. Если его убрать, сработает ли всё на томате?

cfe_update.sh

#!/bin/sh

if [ ! -f /www/merlin.js ] ; then
echo "Works only on Asuswrt-Merlin firmware, sorry."
exit 1
fi

if [ -z "$1" ] ; then
cat << EOF
This script updates CFE boot loader on RT-N66U B1 to v1.0.1.9
Use it ONLY if you know what you are doing.
See http://forums.smallnetbuilder.com/showthread.php?t=8259 for details.

Usage:
'./cfe_update.sh /dev/mtd0ro' - upgrade current CFE on RT-N66U
'./cfe_update.sh ./cfe.old' - upgrade CFE using a backup CFE image cfe.old
EOF
exit 1
fi

cfe_ver=`strings $1 | grep bl_version | sed 's/bl_version=//g'`
case $cfe_ver in
1.0.1.2)
<------>echo "Current CFE version is $cfe_ver"
;;
1.0.1.3)
<------>echo "Current CFE version is $cfe_ver"
;;
1.0.1.4)
<------>echo "Current CFE version is $cfe_ver"
;;
1.0.1.9)
<------>echo "Original CFE is already updated! Exiting..."
<------>exit 1
;;
*)
<------>echo "Unknown CFE version. Update canceled for safety reasons."
<------>exit 1
;;
rm -f nvram*.txt cfe.new diff.txt

echo "[1/4] Dumping default NVRAM settings from original CFE..."
./nvsimple-mipsel -e $1 -v -o 1024 | sort > nvram_orig.txt
echo "[2/4] Preparing new CFE..."
cat nvram_orig.txt| grep -v ^odmpid > nvram.txt
sed -i 's|^\(bl_version\)=.*|\1=1.0.1.9|g' nvram.txt
cp -f 1.0.1.9.empty.bin cfe.new
./nvsimple-mipsel -i nvram.txt cfe.new -v -o 1024 -l 4092

echo "[3/4] Checking differences between old and new NVRAM areas:"
./nvsimple-mipsel -e cfe.new -o 1024 | sort > nvram_updated.txt
diff -u nvram_orig.txt nvram_updated.txt | grep -E "^\+|^\-" | grep -v ".txt$" >
cat diff.txt
if [ -z "$(cat diff.txt | grep -v bl_version | grep -v odmpid)" ] ; then
echo "Everything looks good."
else
echo "Something goes wrong, unexpected NVRAM values, exiting..."
exit 1
fi

read -n1 -p "[4/4] Are you sure you want to flash a new CFE? [y,n]: " answer
if [ "$answer" == "y" ] ; then
echo " flashing..."
cat /dev/mtd0 > cfe.old
mtd-write -i cfe.new -d pmon
cat << EOF
Update completed. An old CFE is stored to cfe.old file, a new one - to cfe.new
It's strongly recommended to store them, just in case.
Please note, your personal MAC addresses in there, do not distribute them.
EOF
else
echo " Flashing canceled!"
exit 1
fi

ryzhov_al
22-08-2016, 10:40
НО утверждается что работает всё только на мерлиновской прошивке.Утилиты для правки раздела флеша с CFE собраны тулчейном прошивки, другими словами, зависят о прошивочных библиотек в папке /lib.

Как себя поведёт утилита на другой прошивке. Что взбредёт в голову томатовской логике в момент правки флеша я в душе́ не знаю. Если уж для вас так необходимо обновить CFE, смените временно прошивку, не добавляйте в процесс русскую рулетку.

kermy
22-08-2016, 12:01
Если уж для вас так необходимо обновить CFE, смените временно прошивку, не добавляйте в процесс русскую рулетку.

Так не хотелось этого делать. Запустил без условия проверки наличия мерлина.
:cool:

написало

" flashing..."
system busy
Update completed. An old CFE is stored to cfe.old file, a new one - to cfe.new
It's strongly recommended to store them, just in case.
Please note, your personal MAC addresses in there, do not distribute them.
EOF
reboot
и и и
ничего не произошло:mad:
видимо дело в system busy хотя секунд на 15 железяка задумалась до появления system busy