Page 2 of 4 FirstFirst 1234 LastLast
Results 16 to 30 of 48

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

  1. #16

    Exclamation Обновление CFE для Asus RT-N66U

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

    Цель обновления - вернуть CFE возможность читать переменные из NVRAM, которую он утратил при расширении в новых прошивках
    NVRAM до 64Кб не без помощи инженеров Asus летом 2012 года. Кроме этого архива вам понадобится ПК с Linux.

    Disclaimer

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

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

    Достаточно установить любую используемую CFE переменную NVRAM и убедиться в том, что CFE при загрузке роутера её игнорирует.
    Например, запомните текущее значение BogoMIPS в выводе:
    Code:
    $ cat /proc/cpuinfo | grep BogoMIPS
    и попробуйте изменить частоту работы процессора установкой:
    Code:
    $ nvram set clkfreq=300 && nvram commit && reboot
    Если после перезагрузки CFE проигнорировал ваши установки, то значение BogoMIPS останется прежним,
    следовательно, CFE новую частоту работы процессора не установил.

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

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

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

    • 1. Считывание текущего CFE.
      Проводится в командной строке роутера:
      Code:
      $ cat /dev/mtd0 > ./cfe.original
      Полученный файл надо переместить на ПК, в ту же папку, где распаковано содержимое архива.

    • 2. Подготовка нового загрузчика.
      Процесс автоматизирован, в папке с архивом выполните скрипт:
      Code:
      $ ./cfe_update.sh cfe.original cfe.new
      где cfe.new - произвольное имя для нового бинарника CFE.

    • 3. Прошивка нового CFE.
      Полученный файл cfe.new необходимо перенести на роутер и прошить во flash-память:
      Code:
      $ 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 - её исходники.
    Last edited by Omega; 14-10-2012 at 22:57. Reason: fixed

  2. #17
    ryzhov_al
    Quote Originally Posted by ryzhov_al View Post
    вам понадобится ПК с 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.
    Но вопрос с размером актуален...
    Last edited by Azur4; 14-10-2012 at 06:28.

  3. #18
    Quote Originally Posted by Azur4 View Post
    И размер cfe.new = 133428 при том что размер cfe.original=262144. Это нормально?
    Нормально.

  4. #19
    Quote Originally Posted by ryzhov_al View Post
    Нормально.
    Спасибо всё получилось... Вроде не "кирпич".

    Но при разгоне 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)

  5. #20
    Join Date
    Mar 2009
    Location
    Default City
    Posts
    2,695
    Blog Entries
    4
    Quote Originally Posted by ryzhov_al View Post
    Сейчас напишу про разгон.

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

  6. #21
    Quote Originally Posted by TReX View Post
    А почему бы сборку нового CFE не организовать на роутере, если уж так лениво портировать програмку на Win платформу )
    nvserial x86 бинарником. можно nvsimple допилить до ее функционала, чтобы умело интегрировать nvram, и кросскомпилировать.
    но мне пока не до этого

  7. #22
    Новый CFE пошёл в люди, жалоб пока нет.
    Last edited by Omega; 18-10-2012 at 11:01. Reason: fixed

  8. #23
    Join Date
    Apr 2009
    Location
    РФ, Барнаул
    Posts
    45
    Quote Originally Posted by TReX View Post
    Вполне корректная прошивка, шустренькая и приятная, разбираемся с руками )
    И с глазами. Я же написал ниже. Или у вас роутер как и положено грузиться за 15 секунд при ребуте и вы спустя эти секунды уже пингуете любой адрес инета?
    С этой прошивкой у меня роутер грузиться минимум минуту. А так да, всё работает как и раньше, т.е. ничего в принципе и лучше не стало, можно откатиться на старую, чтобы грузился быстрее)))
    Во имя Ctrl, Alt и святого Delete.

  9. #24
    Join Date
    Mar 2009
    Location
    Default City
    Posts
    2,695
    Blog Entries
    4
    Quote Originally Posted by Annihilator666 View Post
    И с глазами. Я же написал ниже. Или у вас роутер как и положено грузиться за 15 секунд при ребуте и вы спустя эти секунды уже пингуете любой адрес инета?
    С этой прошивкой у меня роутер грузиться минимум минуту. А так да, всё работает как и раньше, т.е. ничего в принципе и лучше не стало, можно откатиться на старую, чтобы грузился быстрее)))
    ) У меня он никогда за 15 секунд не грузился, ему еще надо в моем случае L2TP поднимать, а Билайн неспешно отвечает, однако и тройной перезагрузки при старте как не было так и нет. Если верить ryzhov_al, то проблема тройной перезагрузки в кривом загрузчике на некоторых партиях RT-N66u, у себя проверить это к сожалению не могу, так как мне попался из правильной...

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

  10. #25
    Join Date
    Apr 2009
    Location
    РФ, Барнаул
    Posts
    45
    Quote Originally Posted by TReX View Post
    ) У меня он никогда за 15 секунд не грузился, ему еще надо в моем случае L2TP поднимать, а Билайн неспешно отвечает, однако и тройной перезагрузки при старте как не было так и нет. Если верить ryzhov_al, то проблема тройной перезагрузки в кривом загрузчике на некоторых партиях RT-N66u, у себя проверить это к сожалению не могу, так как мне попался из правильной...

    P.S. Если поищите на форуме то ryzhov_al выкладывал решение для этой проблемы )
    На счёт соединения не подумал, у меня прямое, оно конечно побыстрее.
    На счёт кривого загрузчика, непонятно... Раньше я не помню таких морганий, ладно бы всегда так было. Ранее, кстати, я разбирал роутер и там была ревизия платы поновее всех тех, что были в первых обзорах, так что сомнительно, что у меня настолько ранняя версия роутера. Что это может быть тогда? Может какие-то специфичные функции роутера стали по другому работать, которые кто-то не использует и поэтому у него этого нет, а у меня проявляется?
    И кстати у меня 5-терная перезагрузка а не тройная)) Уже 2 раза пересчитывал.
    Last edited by Annihilator666; 11-11-2012 at 13:31. Reason: Дополнено
    Во имя Ctrl, Alt и святого Delete.

  11. #26
    Quote Originally Posted by Annihilator666 View Post
    И кстати у меня 5-терная перезагрузка а не тройная)) Уже 2 раза пересчитывал.
    Оба беспроводных интерфейса включены?
    Для чистоты экперимента я бы сбросил роутер в заводское состояние и настроил бы всё с нуля.

  12. #27
    Join Date
    Apr 2009
    Location
    РФ, Барнаул
    Posts
    45
    Quote Originally Posted by ryzhov_al View Post
    Оба беспроводных интерфейса включены?
    Для чистоты экперимента я бы сбросил роутер в заводское состояние и настроил бы всё с нуля.
    На счёт первого уже думал об этом, потому, что это начинается после некоторых настроек, 5Ghz выключено за ненадобностью пока.
    Роутер сбрасывал 2 раза и перенастаривал с нуля соотв. cтолько же.
    Попробовал включить 5ghz и роутер стал загружаться практически как обычно. Первый раз все индикаторы загораются тухнут и загораются только индикаторы проводных интерфейсов, ещё 5 сек опять все загораютя тухнул и уже загораются проводные и беспроводные индикаторы интерфейсов и далее роутер начинает работать. Лучше не 5 раз уже)) С чем связано то в итоге?
    Во имя Ctrl, Alt и святого Delete.

  13. #28
    Quote Originally Posted by Annihilator666 View Post
    Попробовал включить 5ghz и роутер стал загружаться практически как обычно.
    ...
    С чем связано то в итоге?
    Вот с этим. Это вообще-то логика запуска роутера, но ASUS'овцы в ней что-то не допилили. Задумывалось так: если при старте роутера не удаётся инициализировать Wi-Fi интерфейс(ы), то роутер будет перезагружен dev_fail_reboot раз. Однако теперь в прошивке отключенный PHY-интерфейс стал считаться rc-логикой как неработоспособный.
    Для того, чтобы роутер не уходил в перезагрузку при отключенном интерфейсе (2,4 и/или 5ГГц), надо установить NVRAM-переменную dev_fail_reboot в «0»:
    Code:
    $ nvram set dev_fail_reboot=0
    $ nvram commit
    Кстати, с CFE этот глюк никак не связан. Это глюк userspace-логики.

    Это было первое. Теперь ко второму:
    Quote Originally Posted by Annihilator666 View Post
    ...Первый раз все индикаторы загораются тухнут и загораются только индикаторы проводных интерфейсов, ещё 5 сек опять все загораютя тухнул и уже загораются проводные и беспроводные индикаторы интерфейсов и далее роутер начинает работать.
    Запустите циклический ping роутера и отправьте его в перезагрузку:
    Code:
    > ping -t 192.168.1.1
    Тогда только подсчитаете точно сколько раз он перегружается.

  14. #29
    Join Date
    Apr 2009
    Location
    РФ, Барнаул
    Posts
    45
    Спасибо за инфу, Эта инфа уже донесена до разрабов офф прошивки))
    На счёт берута по пингу получается что всё-таки 3 раза, а не 5.
    Code:
    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%
    Во имя Ctrl, Alt и святого Delete.

  15. #30
    Quote Originally Posted by Annihilator666 View Post
    Спасибо за инфу, Эта инфа уже донесена до разрабов офф прошивки))
    Отлично. Чем больше раз она донесена, тем лучше.


    Quote Originally Posted by Annihilator666 View Post
    На счёт берута по пингу получается что всё-таки 3 раза, а не 5.
    Раз поменяли дефолтный ip адрес роутера, то эксперимент придётся повтроить. Если есть желание, конечно. Дело в том, что заводской CFE новый ip-адрес не сможет прочитать из расширенной до 64Кб NVRAM.
    Роутер перенастраивать не придётся. Необходимо:

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

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

Page 2 of 4 FirstFirst 1234 LastLast

Similar Threads

  1. Обновление репозитория Entware
    By ryzhov_al in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 47
    Last Post: 14-09-2017, 04:29
  2. Asus RT-N66U
    By Omega in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 728
    Last Post: 02-02-2017, 07:15
  3. Прошивка Олега и обновление на WL-500gP
    By BAA in forum Russian Discussion - РУССКИЙ (RU)
    Replies: 217
    Last Post: 15-11-2010, 16:49
  4. nvram: Cannot allocate memory - ASUS WL 500g V2
    By bloedefrage in forum WL-500gP Q&A
    Replies: 3
    Last Post: 27-07-2009, 10:24

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •