PDA

Bekijk de volledige versie : Запуск программ роутера в эмуляторе



Old
23-10-2006, 21:41
Олег! У меня такой вопрос. Мне не нравится необходимость постоянно перешивать флэшку при экспериментах с WL500gP.
Можно ли взять старый комп с частотой поближе к родной WL500gP, например 266 Мгц, по возможности повторить структуру внешних устройств и поставить туда прошивку WL500gP, возможно несколько адаптированную. Есть ли непреодолимые трудности в реализации идеи? На таком кадавре отлаживать прошивки и искать баги было бы не в пример проще чем на оригинальном WL500gP.
Или еще проще, может можно как то использовать виртуальную машину? Хотя это вряд ли.

Duke
23-10-2006, 22:15
Проще взят ьстарый комп, накатить линух и продолжить эксперименты на нем ;)

Old
24-10-2006, 09:21
Имелась в виду отладка прошивки WL500gP, а не постоянное использование компа в качестве рутера. Прошу Олега ответить. Это возможно?

Oleg
24-10-2006, 10:10
Я просто гружусь с USB драйва. Когда играюсь с прошивкой - просто копирую с помощью scp новые файлы и подменяю оригинальные. Единственное исключение - ядро, его нужно флешить.
Делать эмулятор очень трудоёмко.

Old
24-10-2006, 10:38
Извините, Олег, я спрашивал, нет ли на Ваш взгляд НЕПРЕОДОЛИМЫХ трудностей при создании эмулятора. Такой трудностью была бы например отличающаяся от I386 система команд или чересчур вычурная архитектура, например подключение внешнего устройства, как блока памяти. Вы в видимо в совершенстве изучили это устройство и надеюсь сможете мне ответить. Я эмбеддер с двенадцатилетним стажем, так что трудоемкость эмулятора меня нисколько не пугает.

Duke
24-10-2006, 10:41
ну mipsel явно не i386 ;)

mcwees
24-04-2008, 13:09
Доброго дня.

А нельзя ли прошивку запускать под QEMU? Может просветит кто?

dimokrat
24-04-2008, 13:29
Или под VMware, например? Тоже интересно!

mcwees
24-04-2008, 17:12
Или под VMware, например? Тоже интересно!

Сомневаюсь, что вмварь умеет мипсел. А вот кему - стопудово.
Мне интересно - как подсунуть trx-файл в кему.

ABATAPA
24-04-2008, 17:44
Доброго дня.

А нельзя ли прошивку запускать под QEMU? Может просветит кто?

Теоретически, под qemu-mipsel код работать будет, но как эмулировать окружение - чипсет, периферию?

al37919
24-04-2008, 17:53
http://forum.openwrt.org/viewtopic.php?id=5488

mcwees
25-04-2008, 05:31
Теоретически, под qemu-mipsel код работать будет, но как эмулировать окружение - чипсет, периферию?

Я это в целях компиляции программ. Всётаки на каком-нибудь 4процовом сервере это побыстрее будет.

mcwees
25-04-2008, 05:40
http://forum.openwrt.org/viewtopic.php?id=5488

Эээ... Изменю вопрос по причине того, что выяснил, как запустить trx - а как после внесения изменений собрать новый trx. Уверен, что описано, ссылку бы ;-)

al37919
25-04-2008, 06:16
Я это в целях компиляции программ. Всётаки на каком-нибудь 4процовом сервере это побыстрее будет.
Для этого есть вполне отработанная кросс компиляция и нет смысла огород городить.

Для пакетов optware: http://www.nslu2-linux.org/wiki/Optware/AddAPackageToOptware
Для прошивки: http://wiki.wl500g.info/index.php/compilingcustomfirmware

Если по 2й ссылке поставить систему кросс-компиляции прошивки, то там, естественно, есть и утиль для создания trx

mcwees
25-04-2008, 12:43
Для этого есть вполне отработанная кросс компиляция и нет смысла огород городить.

Для пакетов optware: http://www.nslu2-linux.org/wiki/Optware/AddAPackageToOptware
Для прошивки: http://wiki.wl500g.info/index.php/compilingcustomfirmware

Если по 2й ссылке поставить систему кросс-компиляции прошивки, то там, естественно, есть и утиль для создания trx

! Биг сенькс!

Dom0voY
18-09-2008, 20:08
Можно ли в виртуальной машине (например, в QEmu) создать копию роутера, то есть не полную копию, просто чтобы можно было запустить прошивку и помучить ее?

DemonGloom
20-09-2008, 17:50
Я видел только openwrt в vmware... Брать на их сайте....

lly
24-02-2009, 17:38
Тип переменной менять - это еще и все окружение можно зацепить,
Извини, я вынужден согласиться с Олегом. Не стоит пытаться переплюнуть индусов в "локальных исправлениях".

ghost_ufa
24-02-2009, 18:39
да ни вопрос - дело личного вкуса. Просто если ваш, господа, подход довести до логического конца - то придется полностью переписывать ВСЕ пакеты. Может это и правильно - только вот времени нет...

К тому же касты - это не те исправления, которые способны на что-то влиять. По кр. мере на мой взгляд - ибо я начинал еще в те времена, когда компилятор ВООБЩЕ типы не проверял :)

Чем HolyWar затевать - лучше про kexec бы высказались, что ли...

lly
24-02-2009, 18:49
Чем HolyWar затевать - лучше про kexec бы высказались, что ли...
А что говорить то? Ты хочешь заменить cfe? Флаг в руки.
Для разнообразия посмотри тему http://wl500g.info/showthread.php?t=18191 и аналогичные. Без консоли отладка ядра проблематична, а если она есть - проблем нет.

ghost_ufa
24-02-2009, 19:04
Зачем менять CFE, если оно со своей задачей справляется - грузит ядро. Но грузит только то, которое во флеше - а для отладки-тестирования-прочего постоянно перешивать флеш как-то неправильно. Подход по приведеной линке выглядит как вполне разумная альтернатива, вот только - не работает :( А kexec -таки работает. И есть бакпорт на ядро 2.4.

"Флаг в руки" - я б с удовольствием, только вот знаний по ядру принципиально недостаточно для подобных опытов... :rolleyes:

lly
24-02-2009, 19:17
А kexec -таки работает. И есть бакпорт на ядро 2.4.
Сам то пробовал?

Мне мучать ядро так, чтобы оно не грузилось, пришлось только пару раз - в начале переезда на 2.4.36, и при попытке заставить его компилироваться gcc 4.1. В остальных случаях можно было отлаживаться без перепрошивки.


"Флаг в руки" - я б с удовольствием, только вот знаний по ядру принципиально недостаточно для подобных опытов... :rolleyes:
А ядро Linux к CFE имеет слабое отношение :cool:

Oleg
24-02-2009, 19:22
Зачем менять CFE, если оно со своей задачей справляется - грузит ядро. Но грузит только то, которое во флеше - а для отладки-тестирования-прочего постоянно перешивать флеш как-то неправильно. Подход по приведеной линке выглядит как вполне разумная альтернатива, вот только - не работает :( А kexec -таки работает. И есть бакпорт на ядро 2.4.

"Флаг в руки" - я б с удовольствием, только вот знаний по ядру принципиально недостаточно для подобных опытов... :rolleyes:
А что, kexec портировали для МИПСа? И оно работает с броадкомом?

На самом деле, самый простой способ отладки - консоль. Что касается флешки, то за её здоровье можно не беспокоиться. У нас "дорогая" NOR флешка, с числом циклов 10000+. Так что даже и думать не надо.

К слову, в 2003 году, когда я "начинал" никакой консоли ваще не было. Я отлаживал загрузку вслепую. :eek: В том числе и lzma загрузчик, который теперь используется практически во всех прошивках. Кстати, тот wl-500g (купленный в Германии, кстати), до сих пор жив и радует моего знакомого интернетом. А сколько раз я его "хоронил". :)

Сейчас вообще халява. Берёшь консоль и вперёд.

ghost_ufa
24-02-2009, 19:33
2 Illy

>Сам то пробовал?

На X86 c ядром 2.6 - да...


2 Oleg

>А что, kexec портировали для МИПСа?

Да. Линку давал, но вообще гугленье по "kexec mipsel 2.4" дает много интересных результатов.

>И оно работает с броадкомом?

Про то не ведаю, но неужто этот броадком настолько от канонического мипса отличается?

>К слову, в 2003 году, когда я "начинал" никакой консоли ваще не было. Я отлаживал загрузку вслепую

Опс :eek:

>Сейчас вообще халява. Берёшь консоль и вперёд

Ну да, все познается в сравнении - это мы тут избалованные символьной отладкой на ранних стадиях загрузки, куда уж нам "наощупь" :rolleyes:

lly
24-02-2009, 19:47
lly,
У меня просьба бэк портировать anydata.c из 2.6 в нашу. Именно этот модуль входит в чешский модуль modem.o
Пальцем ткни?! Ни в 2.6.27, ни в 2.6.28.7 я не вижу anydata.c.

2 ghost_ufa
x86 это неинтересно, ты хотя бы в qemu запусти MIPS.
У броадкома немного своё трактование стандарта MIPS32 :mad:

Oleg
24-02-2009, 19:57
x86 это неинтересно, ты хотя бы в qemu запусти MIPS.
У броадкома немного своё трактование стандарта MIPS32 :mad:
Дело даже не в этом. Просто МИПС он у каждого свой. :) Вот в писюке всё просто есть и биос и фиксированные точки входа. А здесь - кто на что горазд. Вот броадком изобрёл CFE. :)

Достаточно поглядеть на разницу в vmlinux.lds для разных мипсов, чтобы стало ясно, что тут всё как в дикой природе. :)

Вот для писюков собери ядро для i386 и сможешь грузить где угодно. С мипсом такое не пройдёт. Даже внутри одного семейства есть различия.

Консоль ведь сделать проще простого. Кабель от старого сотового телефона и всё.

Для отладки юзерспейса или модулей вообще флешить ничего не надо. Я специально для того и делал "загрузку с флешки", когда корень берётся с неё. Именно так я и отлаживаюсь.

tiny
05-03-2009, 07:27
Добрый день участникам форума!

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

Чтобы поставить в него полноценный Debian :)

angel_il
05-03-2009, 07:41
Добрый день участникам форума!

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

Чтобы поставить в него полноценный Debian :)

http://code.google.com/p/wl500g/wiki/colinux

tiny
05-03-2009, 08:17
Нет, я имел в виду запустить Debian 5.0 внутри роутера, внутри виртуальной машины.

Хоть и подозреваю что памяти может не хватить.

DrLabRus
05-03-2009, 12:25
Имхо, виртуалка на роутере плохая идея.
Недавно отвечал на похожий вопрос: http://wl500g.info/showpost.php?p=135261&postcount=211

ryzhov_al
19-12-2011, 08:04
Коллеги, если вдруг кто-то почему-то до сих пор не знает:)
Есть способ запуска любого роутерного бинарника в среде windows/linux в эмуляторе qemu:

$ qemu-mipsel-static -L ./qemu_root/ ./qemu_root/opt/bin/mc
где ./qemu_root - пустая папка, которая будет корневой для запускаемого процесса, ./qemu_root/opt - копия папки /opt, скопированная с роутера. Работают в т.ч. сетевые сервисы:

$ qemu-mipsel-static -L ./qemu_root/ ./qemu_root/opt/sbin/lighttpd -f /opt/etc/lighttpd/lighttpd.conf


В Ubuntu можно поставить эмулятор командой:

$ sudo apt-get install qemu-user-static
Пользователям Windows придётся поискать порт QEMU самостоятельно. Есть существенное ограничение - из запущенной программы не возможен запуск других программ.

ЗЫ Несмотря на то, что в декабре QEMU обновился до версии 1.0, в нём до сих пор нет поддежки ни Broadcom'овских процессоров, ни Broadcom'овских платформ. А жаль, можно было бы посмотреть на загрузку роутера начиная с CFE, просто подсунув эмулятору образ flash-памяти. Как в примере с Nokia N800 (http://www.rkeene.org/projects/info/wiki/106).

Sender
21-08-2012, 19:55
Доброго времени суток. Хотелось бы увидеть эмулятор QEMU (http://ru.wikipedia.org/wiki/QEMU) в нашем репозитории.

Это бы существенно расширило возможности роутеров. Так как с помощью режима User mode emulation (http://www.xakep.ru/magazine/xa/118/094/1.asp) можно запускать на родном процессоре программы, откомпилированные под другую платформу. Например под х86.

К слову, тут (http://en.sourceforge.jp/projects/sfnet_c200ipkg/downloads/qemu-system_0.12.3-1_mips.ipk/) уже есть, но для другой прошивки.


Я не лентяй :) , просто низкий опыт компиляции в Puppy Rus Linux.

MercuryV
21-08-2012, 20:57
запускать на родном процессоре программы, откомпилированные под другую платформу. Например под х86.
Например?


Я не лентяй :) , просто низкий опыт компиляции в Puppy Rus Linux.
Потрудиться придется (после ответа на предыдущий вопрос). Как минимум, убедить меня, что user emulation в принципе работает на MIPS хостах :-)


К слову, тут (http://en.sourceforge.jp/projects/sfnet_c200ipkg/downloads/qemu-system_0.12.3-1_mips.ipk/) уже есть, но для другой прошивки.
MIPS MIPS'у рознь. по ссылке пакет для устройств на мощных чипах от SigmaDesigns на ядре MIPS 74K с FPU и прочими радостями.

Sender
22-08-2012, 10:00
Ошибся немного) Я имел ввиду, intel-овские 32 битные приложения

Например?
ncdc (http://dev.yorhel.nl/download/ncdc-linux-i486-1.13.tar.gz) (за MIPS версию низкий поклон ).


Потрудиться придется (после ответа на предыдущий вопрос). Как минимум, убедить меня, что user emulation в принципе работает на MIPS хостах :-)

С последнего поста ryzhov_al всё стало понятнее..


Спасибо, всем удачного дня :)

ryzhov_al
22-08-2012, 11:00
Так как с помощью режима User mode emulation (http://www.xakep.ru/magazine/xa/118/094/1.asp) можно запускать на родном процессоре программы, откомпилированные под другую платформу. Например под х86.Мы беседовали об этом ранее. Даже если представить, что эмулятор мы портировали, то на что в нём смотреть без графики? На запущенный DOS 5.22?

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

ryzhov_al
01-12-2012, 18:29
Забыл сообщить. Мы ради забавы портировали Bochs (http://ru.wikipedia.org/wiki/Bochs) в Entware.

Запуск Windows 95 на роутере идёт 4,5 минуты. Можно подключаться к ней по VNC, правда ВендаТормозит™.

Omega
27-09-2013, 21:01
Забыл сообщить. Мы ради забавы портировали Bochs (http://ru.wikipedia.org/wiki/Bochs) в Entware.

Запуск Windows 95 на роутере идёт 4,5 минуты. Можно подключаться к ней по VNC, правда ВендаТормозит™.

Ну тогда запуск Windows 7&8 должен идти порядка ~45 минут :p
А уж тормозить оно должно вообще неподецки, может ну ее нах? :cool:

Ну и намного лучше запускать на девайсах типа просто Debian (https://code.google.com/p/mbl-common/) ;)

З.Ы. Может сделаем здесь тему по установке дополнений на MBL? :)
Думаю, что народу будет интересно проапгрейдить свои коробочки :D

ryzhov_al
03-10-2013, 06:36
З.Ы. Может сделаем здесь тему по установке дополнений на MBL? :)
Думаю, что народу будет интересно проапгрейдить свои коробочки :DНа мой взгляд, не надо: хватает профильной темы (http://forum.ixbt.com/topic.cgi?id=11:45429) на хоботе и проекта (https://code.google.com/p/mbl-common/) на гуглокоде.

Что до меня, то я получил что хотел — новое ядро со всеми плюшками и чистый Debian, поэтому «воевать» дальше на постоянной основе не стану. Права на гуглокоде передал ув.тов.AlexeyS (http://wl500g.info/member.php?23221-AlexeyS), который участвует в допиливании WD My Book куда активнее меня.

Omega
03-10-2013, 13:43
На мой взгляд, не надо: хватает профильной темы (http://forum.ixbt.com/topic.cgi?id=11:45429) на хоботе и проекта (https://code.google.com/p/mbl-common/) на гуглокоде.

Что до меня, то я получил что хотел — новое ядро со всеми плюшками и чистый Debian, поэтому «воевать» дальше на постоянной основе не стану.
Ну хозяин - барин, нет - так нет, народ может и туда сходить по ссылкам :rolleyes:
Вот тут нашлось еще кое-что про установку Debian на роутер Асус WL-500W: ;)
http://ajc.su/unix/linux-unix/ustanovka-distributiva-debian-na-marshrutizator-asus-wl-500w/