Bekijk de volledige versie : Скелетик вводного FAQ по конструкции роутера
Цель этой темы - создание абстрагированного от особенностей софта FAQ по железу роутера и процедуре смены его прошивки
Что делать, если в результате настройки или обновления софта вы привели свою железку в сомнительное состояние?
Вариантов действия множество, они описаны в разрозненных местах и не всегда применимы в ваших обстоятельствах.
Здесь пытаемся сформулировать дешёвую по затратам времени процедуру восстановления с гарантированным результатом.
Роутер это компьютер, только специализированный. В его железо вшит загрузчик,который грузит в RAM операционную систему с внутреннего флеша. Флеш - это энергонезависимая память, функционально подобная жесткому диску. nvram (non-volatile memory) - часть флеша, адрес и размер которой определяется при компиляции текущей прошивки её разработчиком, используется для хранения параметров конфигурации текущей прошивки. Отсюда необходимость специальных процедур очистки nvram: свежезалитая операционка может сойти с ума, по-своему интерпретировав неизвестные ей параметры конфигурации, роутер окажется временно неработоспособным.
Прошивка (firmware) это именно операционная система. Она может быть заменена целиком - и для этого существует способ, не зависящий от текущей прошивки и ее настроек <верно только для асусов? для кого-то еще?>.
Процесс восстановления роутера после неудачной прошивки
(годится и после неудачного конфигурирования без смены прошивки - хотя для этого в прошивках имеются свои специализированные процедуры. В простейшем случае достаточно шага 1)
Дано: роутер с неизвестной прошивкой в неизвестном состоянии.
Задача - получить известную прошивку в "чистом" (исходном) состоянии.
1) Пытаемся загрузить существующую прошивку и сделать erase nvram
Если это невозможно, то запоминаем неуспех и <усиленно камлаем> на шаге 3)
2) Меняем прошивку. Универсальная процедура описана ниже.
3) Производим <шаманские манипуляции по списку> для очистки nvram.
В тяжёлых случаях может понадобиться многократное прохождение шага 2) с использованием специальных "чистящих" прошивок.
Универсальная процедура смены прошивки
При включении с зажатой кнопкой ресторе, роутер грузится в независимый от прошивки (вшитый в железо) "биос" (или если угодно в "роммон"), заводит TCP/IP стек, поднимает LAN-интерфейс с адресом 192.168.1.1/24 и tftp сервер на нём.
На этот сервер можно затолкать по проводу tftp-клиентом (неважно, линуксовым или виндовым) любую прошивку в формате trx. Любую - в смысле любого производителя и номера версии; попытка затолкать прошивку, предназначенную для другого железа или в неправильном формате, будет ошибкой - но может быть исправлена тем же самым способом.
Существуют процедуры софтовой очистки nvram с помощью зажатия кнопки restore во включенном/выключенном состоянии и выжидания определённых сроков. Применимость этих процедур определяется прошивкой - но существуют успешные рецепты, пригодные в широком классе ситуаций.
<Здесь следует описать эти процедуры, с указанием условий, при которых они применимы >
Совершенно не зависящий от прошивки способ чистки нврам (известен на этом и некоторых других форумах как "метод 9-й ноги") заключается в заземлении контакта флэш-памяти маршрутизатора и подачи питания. Это приводит к ошибке при проверке контрольной суммы nvram, а на этот счет у маршрутизатора в "биос" записана инструкция: "очистить nvram" Способ несет в себе риск уничтожения флеш-памяти (и маршрутизатора).
Более подробная информация о функционировании роутера - в нижней части заглавного поста этой темы (http://wl500g.info/showpost.php?p=19983&postcount=1).
Огромная англоязычная инструкция по перепрошивке (http://www.dd-wrt.com/phpBB2/viewtopic.php?t=51486) для всех разновидностей dd-wrt - много инфы по железу. Здорово, если бы кто-то взялся её дополнить и обобщить (отфильтровать тамошнюю специфику).
Гарантийный случай (http://wl500g.info/showthread.php?t=20502). Такое бывает при выдергивании питания в момент загрузки роутера, либо неисправном БП роутера.
-
Цель этой темы - создание FAQ по железу роутера, абстрагированного от особенностей прошивки.
Роутер это компьютер, только специализированный. В его железо вшит загрузчик,который грузит операционную систему с внутреннего флеша.
Прошивка (firmware) это именно операционная система. Она может быть заменена целиком - и для этого существует способ, не зависящий от текущей прошивки и ее настроек <верно только для асусов? для кого-то еще?>.
Верно для любого маршрутизатора, осуществляющего свои функции (маршрутизацию) на программном уровне . Каталисты Cisco, например, осуществляют маршрутизацию на аппаратном уровне.
Нврам (non-volatile memory) - это <здесь моих знаний не хватает> Там сохраняются параметры конфигурации текущей прошивки, которые скорее всего не подойдут для другой версии прошивки <описать, в каких ситуациях с какими последствиями>.
Не зависящий от прошивки способ чистки нврам: <???>
nvram = энергонезависимая часть памяти маршрутизатора (данные в ней сохраняются и при отсутствии питания). Не зависящий от прошивки способ чистки нврам известен на этом и некоторых других форумах как "метод 9-й ноги", заключающийся в заземлении контакта флэш-памяти маршрутизатора и подачи питания. Это приводит к ошибке при проверке контрольной суммы nvram, а на этот счет у маршрутизатора в "биос" записана инструкция: "очистить nvram" :) Способ несет в себе риск уничтожения флеш-памяти (и маршрутизатора).
Верно для любого маршрутизатора, осуществляющего свои функции (маршрутизацию) на программном уровне . Каталисты Cisco, например, осуществляют маршрутизацию на аппаратном уровне.
Спасибо, ценное замечание - но я видимо неясно сформулировал вопрос
речь о железках класса WRT. Где-то я встречел упоминание, что независимый от прошивки режим Firmware Recovery - особенность асусов.
Хорошо бы ТОЧНО указать круг таких роутеров.
Не зависящий от прошивки способ чистки нврам известен на этом и некоторых других форумах как "метод 9-й ноги", заключающийся в заземлении контакта флэш-памяти маршрутизатора и подачи питания. Это приводит к ошибке при проверке контрольной суммы nvram, а на этот счет у маршрутизатора в "биос" записана инструкция: "очистить nvram" :) Способ несет в себе риск уничтожения флеш-памяти (и маршрутизатора).
гммм. Тоже очень ценно, но я-то имел в виду довольно часто встречающиеся рекомендации типа "тройной очистки" заливкой трех разных trx
а также шаманские процедуры с нажатием кнопок и выдерживанием сроков.
дано: роутер с неизвестной прошивкой в неизвестном состоянии.
Задача - залить туда известную прошивку в дефолтном состоянии.
1) Пытаемся загрузить существующую прошивку и сделать erase nvram
Если это невозможно, то запоминаем неуспех и <усиленно камлаем> на шаге 3)
2) Грузимся в роммонрежим восстановления, скармливаем ему прошивку
3) Производим <шаманские манипуляции по списку>
Нужны детали алгоритма и подробности о факторах, ограничивающих его применимость.
"Я скажу один умный вещь, только ты не обижайся" (с)
(а если обидешься - удалим пост) ;)
Цель этой темы - создание FAQ
Нврам (non-volatile memory) - это <здесь моих знаний не хватает> Там сохраняются параметры <???>
Будучи полным нулем в linux (и нашем роутере) долго думал, что такое "Нврам"... правда, может быть я один такой:confused:
Обещанный "умный вещь":
- называйте одни и те же вещи, одними и теми же терминами
- лучше использовать "оригинальные" названия (в данном случае nvram), т.к. с ними приходится сталкиваться намного чаще.
я специально так сделал: чтобы усугубить впечатление незавершённости и спровоцировать коллективный мозговой штурм :)
разумеется, итоговый документ надо будет подправить - но до него имхо далеко ещё.
LevT
DD-WRT Novice
Ладно, попробую всё повторить заново с нуля из гуя вебморды - но скриптов остро не хватает.
И Вам тоже было бы с ними легче объяснять
AndreyPopov
DD-WRT User
ЗАЧЕМ скрипты? если в вэб морде все нормально работает!!!!
LevT
DD-WRT Novice
а чтобы успех был гарантированным и не зависел от отсутствующего(!) опыта сношений пациента с этой самой мордой
AndreyPopov
DD-WRT User
когда идет речь об изменении значений nvram, то командная строка не лучший вариант, одна опечатка и у вас в руках "трупик"!
это не компьтер с линуксом, где винт форматнул, по-новой накатил операционку и снова нырнул в командную строку.
LevT
DD-WRT Novice
Не надо интерактивно работать в комстроке, надо копипастить скрипты. Проверенные, без опечаток. Любой рекомендованный скрипт должен состоять из двух независимых частей:
1) очистка интересного аспекта (настройки свича или скажем беспроводного ифейса) из произвольного неизвестного состояния в дефолт и
2) пересоздание правильной конфигурации.
Пока скриптов мало, можно обойтись только второй частью - а очистку производить из вебморды или через erase nvram
Если возьмётесь написать - я готов у себя тестить и отлаживать.
LevT
DD-WRT Novice
Впоследствии надо будет документировать самые скучные части - а именно, доделать описание безопасного фреймворка для смены конфигурации в "скелетике FAQ" (обновлён!).
Например, как копипастить и запускать неинтерактивные скрипты? (Я лично вроде знаю, но, возможно, буду переспрашивать, если засомневаюсь на каком-то шаге).
Ну и расписать шаманство c nvram, потребное в случае небольшой неудачи (для dd-wrt оно вроде как известно: это 30/30/30).
Есть ли свободное место в nvram? Сколько?
Хочется сохранять там избранные скриптики (чтобы бэкапить/восстанавливать их ВМЕСТЕ с конфигурацией). Если места нет - встречал ли кто-нибудь специальные билды прошивок с такой фичей?
-
-
Upd. Нашел
size: 22605 bytes (10163 left)
По-моему, для эксприментов места достаточно. Кто-нибудь видел реализации этой идеи?
Где документирован формат значений словаря?
Чисто практически меня интересует, как запихнуть в переменную читабельный форматированный скрипт.
Если действие сложнее одной короткой строчки, то нужны два скрипта: nvpack и nvunpack
-
(раскатал губу...) точнее, ещё третий nvrun, ага.
-
theMIROn
17-07-2009, 11:39
Есть ли свободное место в nvram? Сколько?
Хочется сохранять там избранные скриптики (чтобы бэкапить/восстанавливать их ВМЕСТЕ с конфигурацией). Если места нет - встречал ли кто-нибудь специальные билды прошивок с такой фичей?
скриптики сохраняем в /usr/local/..., которое и есть flashfs, которое сохраняется.
в nvram держатся только переменные, причем достаточно четко определенные.
Если действие сложнее одной короткой строчки, то нужны два скрипта: nvpack и nvunpack
-
(раскатал губу...) точнее, ещё третий nvrun, ага.
-
все это уже придумано.
flashfs save && flashfs commit, flashfs load, flashfs start
Цель этой темы - создание абстрагированного от особенностей софта FAQ по железу роутера и процедуре смены его прошивки
Вот меня конкретно интересует схема железа wl500gp V1
Приветствую !!! Только где взять схему :confused:
скриптики сохраняем в /usr/local/..., которое и есть flashfs, которое сохраняется.
На бэкап-ресторе nvram можно полагаться в части сохраненных там скриптов? Как это называется у Олега - сохранение конфига?
Сори, если в олеговой прошивке другая терминология. Сам перепрошился на dd-wrt. Там то же самое?
в nvram держатся только переменные, причем достаточно четко определенные.
Кем и где определённые? Различаются ли ключи словаря скажем у Олега и в dd-wrt?
Типы значений всегда строковые, а интерпретацией занимаются прошивка и проги - или возможны варианты с жесткой типизацией? Символы допустимы любые или есть ограничения?
-
На бэкап-ресторе nvram можно полагаться в части сохраненных там скриптов?
-
Вам, уважаемый, религия поиском не позволяет пользоваться???
Тема не просто избита во всех закреплённых вариантах FAQ, но и разжёвана во множестве тем, может Вы, банально, сохраняете то, чего нет? (http://wl500g.info/showpost.php?p=122017&postcount=15) ?
Как это называется у Олега - сохранение конфига?-
Каким боком тут конфиг?
Вы веб-морду видели?
System Setup>Flashfs Management>Move your cursor over HERE.
Сори, если в олеговой прошивке другая терминология. Сам перепрошился на dd-wrt. Там то же самое?-
Вы вопрос задали не на форуме dd-wrt. Будьте корректны, хотябы так: "на форуме dd-wrt другая терминология".
Кем и где определённые? Различаются ли ключи словаря скажем у Олега и в dd-wrt?-
Поиск.
PS. Ху из "ключи словаря"?
Типы значений всегда строковые а интерпретацией занимается прошивка - или возможны варианты?-
Один дурак (это не на Ваш счёт, просто цитата) задаст такие вопросы, что и сто мудрецов не ответят.
ЗЫ. Если, вдруг, Вы захотите услышать лаконичный ответ, попробуйте задать лаконичный вопрос.
ничего не понял.
Давайте по пунктам. В каждой прошивке есть сервис бэкап-ресторе конфига.
Мне предложили вариант хранить скрипты на flashfs. Вопрос: что будет если я залью на роутер-двойник по вышеизложенной процедуре (т. е. с очисткой состояния) ту же самую прошивку, которой бэкап сделан, и туда отресторю бэкап конфига?
Содержимое flashfs с первой железки на двойнике окажется - или нет? Если ответ зависит от прошивки, просьба явно указать различия.
PS. Ху из "ключи словаря"?
Нврам - это что-то вроде IHashtable или IDictionary. Реализация меня сейчас не интересует. Интересует документация на интерфейс.
-
theMIROn
17-07-2009, 17:14
Мне предложили вариант хранить скрипты на flashfs. Вопрос: что будет если я залью на роутер-двойник по вышеизложенной процедуре (т. е. с очисткой состояния) ту же самую прошивку, которой бэкап сделан, и туда отресторю бэкап конфига? Восстановится те параметры конфигурации, которые разрешены к восстановлению (описаны в broadcom/src/gateway/shared/flash.default)
Содержимое flashfs с первой железки на двойнике окажется - или нет? Если ответ зависит от прошивки, просьба явно указать различия.Если восстановите flashfs с первой железки на двойнике - да. Если нет - нет.
Интересует документация на интерфейс.Ее нет, кроме как в исходных текстах. nvram сохраняется кстати в бинарном виде.
p.s а вообще бредовая какая то тема, имхо, абсолютно не соответствующая цели - созданию абстрагированного от особенностей софта FAQ по железу роутера и процедуре смены его прошивки
Тема-родитель, посвященная реанимации сбойнувшего роутера, радикальной смене прошивки и очистке конфигурации:
Скелетик вводного FAQ по конструкции роутера (http://wl500g.info/showthread.php?t=20351)
А в этой теме выясняем не зависящие от прошивки общие приемы обращения с софтом роутера, а также уточняем существующие зависимости.
Вебинтерфейс у всех прошивок разный, подробное изучение его в этой теме не предполагается. Зато (в идеальном идеале!) предполагается складирование здесь переносимых скриптов. Также здесь будет накапливаться указатель несовместимостей.
Шапка будет пополняться мною по мере систематизации накопленной информации. Приветствуются ссылки на систематические источники (изобретать велосипед я не любитель).
-
Просьба к модераторам перенести офтопик сюда:
http://wl500g.info/showthread.php?p=153113
p.s а вообще бредовая какая то тема, имхо, абсолютно не соответствующая цели - созданию
абстрагированного от особенностей софта FAQ по железу роутера и процедуре смены его прошивки
+1 :) IMHO: Впрочем, как и остальные темы топикстартера ... :cool:
Просьба к модераторам перенести офтопик сюда:
http://wl500g.info/showthread.php?p=153113 (http://wl500g.info/showthread.php?t=20413)
Да, а ещё лучше захоронить все эти "скелетики" в родовом склепе: :D
http://wl500g.info/showthread.php?t=20413
(рассчитываю, что это сообщение будет перенесено вместе со всей веткой в новую тему)
Восстановится те параметры конфигурации, которые разрешены к восстановлению (описаны в broadcom/src/gateway/shared/flash.default)
Интернет-ссылка на содержимое существует?
Если нет - то со временем появится в созданной мною теме.
Исходники нужны компилятору и разработчикам. А для продвинутых пользователей (которые не собираются становиться ядерно-сишными програмерами, а лишь хотят овладеть уже имеющимися в наличии возможностями конфигурации) - подробности реализации лишь инфошум.
Если восстановите flashfs с первой железки на двойнике - да. Если нет - нет.
Значит, Ваше предложение не отвечает моему требованию к ПО роутера - возможность атомарного бэкапа-восстановления конфигурации (включая особо избранные скрипты).
Скажем, ценность для пользователей любой прошивки представлял бы скрипт "сделать несколько ssid, а порт N - dot1q транком с такими-то ssid".
Каждый раз его искать или создавать, выяснять пригодность для конкретной прошивки и вспоминать как обращаться с роутером - ДОРОГО. Я предлагаю это делать однократно, а далее воспользоваться готовым дешевым бэкапом-ресторе.
Получится эдакий объектно-ориентированный роутер со свойствами и методами. Именно то, что нужно БОЛЬШИНСТВУ (которые не гуру и не совсем тупые блондинки). А у гуру появится общий язык с этим большинством.
Ее нет, кроме как в исходных текстах. nvram сохраняется кстати в бинарном виде.
Я же писал, что реализация неинтересна. Интересен интерфейс.
nvram set схавает любые символы, или есть ограничения? Многострочные параметры туда кто-нибудь пытался запихивать?
-
====
Просьба не гадить офтопиком, не учить меня "истинному" мировоззрению и ценностям, принятым в тех или иных кругах. Технические возражения приветствуются, но если нечего сказать по теме - проходите мимо.
-
theMIROn
18-07-2009, 07:56
Интернет-ссылка на содержимое существует?
Если нет - то со временем появится в созданной мною теме.Зачем?
Значит, Ваше предложение не отвечает моему требованию к ПО роутера - возможность атомарного бэкапа-восстановления конфигурации (включая особо избранные скрипты).Это не было предложением, это было утверждением. Любой бэкап возможен, с настроек и скриптов через web интерфейс.
Каждый раз его искать или создавать, выяснять пригодность для конкретной прошивки и вспоминать как обращаться с роутером - ДОРОГО. Я предлагаю это делать однократно, а далее воспользоваться готовым дешевым бэкапом-ресторе.Пишите, а дальше пользуясь дешевым backup/restore flashfs вставляете его на место.
Кстати, на какое?
Получится эдакий объектно-ориентированный роутер со свойствами и методами. Именно то, что нужно БОЛЬШИНСТВУ (которые не гуру и не тупые блондинки).А разве сейчас они уже не такие, подходящий большинству?
Я же писал, что реализация неинтересна. Интересен интерфейс.Что вы понимаете под интерфейсом?
nvram set схавает любые символы, или есть ограничения? Многострочные параметры туда кто-нибудь пытался запихивать?Зачем?
Зачем?
Объясняю, зачем это мне. Поддерживать в своей консерватории специальную виртуалку с линуксом и деревом исходников для меня сейчас обременительно. Тем более, что нужна только ридонли инфа из заголовков, желательно уже отфильтрованная.
Каждый раз заново применять фильтр - ДОРОГО. Еще дороже - восстанавливать инфраструктуру исходников.
Любой бэкап возможен, с настроек и скриптов через web интерфейс.
Всё возможно верующему. Для истинного линуксоида нет преград на пути к гуруизму. Но большинство не исповедует эту веру и не собирается туда обращаться. Некоторые даже позой тупых блондинок, в которую его по этой причине ставят - удовлетворяться не собираются.
Пишите, а дальше пользуясь дешевым backup/restore flashfs вставляете его на место.
Кстати, на какое?
Что за бэкап-ресторе flash? Я правильно понял, что "бэкап-ресторе конфигурации" в вебморде этого не делает? Вот когда будет делать, тогда вопрос и обессмыслится (для тех прошивок, где будет. А для остальных сохранит актуальность.)
Что вы понимаете под интерфейсом?
Не сишник - но, по-моему, там это заголовочные файлы.
Разделение интерфейса и реализации - хтонический принцип ООП.
Только линуксоиды могут дорасти в своем уютном кругу до высот гуруизма, оставаясь незамутнёнными этим знанием.
Зачем?
Затем, чтобы упаковать туда скрипт, отлаженный для этой конкретной прошивки.
Сие сможет проделать и не гуру. А воспользоваться - даже не совсем тупая блондинка.
А гуру таким образом смогут распространять свои творения, не отвлекаясь на дорогую коммуникацию с негуру.
-
theMIROn
18-07-2009, 09:06
Вы вообще как, нормально-адекватны?
Хватит нести чушь и бред, пересыпанный абсолютно не к месту и не к смыслу техническими терминами. Исповедуйте веру овладеть искусством открыть web интерфейс роутера и прочитать (http://translate.google.com никто не отменял) что там написано.
Забудьте об интерфейсах, вообще никогда не вспоминайте, так же как и про ООП, пользуйтесь тем, что дали, не вводите в заблуждение других пользователей, они могут всерьез отнестись к вамим "идеям" и утверждениям.
[admin@router root]$ nvram
usage: nvram [get name] [set name=value] [unset name] [show]
[admin@router root]$ flashfs
Usage: /sbin/flashfs status|start|enable|enabled|disable|clear|load|lis t|save|commit
Несмотря на внешнюю привлекательность мышекликанья в DD-WRT:
ЛЮБЫЕ действия с переменными nvram ТРЕБУЮТ перезагрузки роутера, чтобы воспользоваться результатами этих изменений НОРМАЛЬНО!
потому как в ЛЮБОЙ инструкции по изменению переменных nvram в конце стоят команды :
nvram commit
reboot
лучше все делать постепенно МАЛЕНЬКИМИ шажками с перезагрузкой роутера после каждого шажка.
Источник:
http://wl500g.info/showpost.php?p=154144&postcount=75
2 AndreyPopov
А как определить в dd-wrt, какое действие меняет nvram? Мне представляется, что любое... (причём возможны самые удивительные побочные эффекты)
Значит, Вашу рекомендацию следует читать: "после любого(?) действия в вебморде следует перезагружаться". Что на мой взгляд лишает вебморду ценности.
Местная прошивка этого недостатка лишена, я надеюсь? Или здесь ограничение мягче?
Следует различать временную переконфигурацию прошивки командами линукса - которая НЕ СОХРАНЯЕТСЯ при перезагрузке (пример (http://wl500g.info/showpost.php?p=149353&postcount=41)) - и постоянную настройку конкретной прошивки сохраненными в nvram параметрами.
Команды можно поместить в автоматические скрипты. Вопрос: какой способ ПОСТОЯННОЙ настройки меньше зависит от конкретной прошивки? Моё ламерское впечатление - скрипты.
Комментарии приветствуются.
-