Page 2 of 2

Re: Снова qemu

Posted: Mon Oct 04, 2010 12:16 pm
by Mario
Sorcerer wrote:Просьба модераторам пометить тему как "[Решено]".
Чтобы проще было искать решения проблем.
Сделал, но разве сам не имеешь доступ к своему же посту?

Re: Снова qemu [РЕШЕНО]

Posted: Tue Oct 05, 2010 12:11 am
by Mario
В общем выяснилось что в ALT Linux у меня стоит версия 0.12.1
Я использую для запуска оболочку AQemu и выставил в ней сетевую карту NE2000 PCI. Все заработало через zeroconfig. Адреса назначились сами. Единственно по прежнему сжатые ресурсы не открываются.

Re: Снова qemu [РЕШЕНО]

Posted: Tue Oct 05, 2010 9:49 am
by SoUrcerer
Раньше у меня вроде бы downloader вместо board.kolibrios.org показывал всякую кашу, а теперь вообще отказывается сохранять.
Насколько я понимаю, сжатие производится с помощью gzip, так что в теории в Колибри распаковать страницу можно...

Re: Снова qemu [РЕШЕНО]

Posted: Tue Oct 05, 2010 1:51 pm
by CleverMouse
Я подправила драйвер RTL8139 в ядре из trunk, теперь должно работать и под qemu. Дело было в том, что драйвер записывал некоторые конфигурационные регистры, используя out размером в слово, а эмулятор карты внутри qemu умеет обрабатывать только записи размером в двойное слово - в результате конфигурационный регистр приёма оставался нулевым и приёмник успешно отбрасывал пришедшие пакеты как не прошедшие фильтр.

Sorcerer, насколько я понимаю, дело не в сжатии: сжатие в протоколе HTTP исключительно опционально, и если клиент не говорит явным образом серверу "я поддерживаю сжатие, если хочешь, отдавай сжатую страницу" путём указания HTTP-заголовка "Accept-Encoding: gzip", то сервер не имеет права посылать сжатую страницу. Проблема называется "chunked transfer coding": сервер имеет право генерировать страницу по кускам и посылать её тоже по кускам, в заголовках задавая вместо полной длины страницы Content-Length - которая в этом случае заранее неизвестна - кодировку Transfer-Encoding: chunked, в которой перед каждым куском идёт его длина.

Re: Снова qemu [РЕШЕНО]

Posted: Tue Oct 05, 2010 2:17 pm
by Mario
CleverMouse
Я подправила драйвер RTL8139 в ядре из trunk, теперь должно работать и под qemu.
Большое спасибо. Я рад, что ты еще участвуешь в проекте. Для нас было бы тяжело потерять грамотного специалиста по сетевым вопросам.
Проблема называется "chunked transfer coding": сервер имеет право генерировать страницу по кускам и посылать её тоже по кускам, в заголовках задавая вместо полной длины страницы Content-Length - которая в этом случае заранее неизвестна - кодировку Transfer-Encoding: chunked, в которой перед каждым куском идёт его длина
Чем-то похоже на структуру PNG, там тоже данные кусками могут идти и идут.

Re: Снова qemu [РЕШЕНО]

Posted: Tue Oct 05, 2010 3:24 pm
by CleverMouse
Я посмотрела на код downloader. Он нормально обрабатывает chunked coding, а спотыкается на ситуациях, когда длина явным образом не указана - нет ни Content-Length, ни Transfer-Encoding - а определяется по закрытию соединения. Я добавила обработку таких ситуаций, теперь http://board.kolibrios.org скачивается. Я сейчас приложу новую версию downloader в теме, посвящённой ему. К сожалению, иногда страницы не докачиваются до конца, по-видимому, это более глубокая проблема где-то в старом сетевом стеке ядра из trunk.

Re: Снова qemu [РЕШЕНО]

Posted: Tue Oct 05, 2010 5:05 pm
by Mario
Я протестировал на версии 0.9.1 под Виндовс ХП. С новым ядром и с новым downloader'ом.
Вот лог
BOARDLOG.TXT (5.53 KiB)
Downloaded 356 times
Строка запуска:

Code: Select all

qemu.exe -L . -m 128 -boot a -fda kolibri.img -hda c100.img -soundhw all -localtime -M pc -k ru
Памяти достаточно - снес директорию с игрушками и докпак.

1) zeroconfig карточку не настроил, настройки ввел вручную.
2) http://www.kolibrios.org и http://www.google.ru, http://board.kolibrios.org открылись, но в непосредственно в тему форума войти не получается - вероятно ссылка режется на каком-то этапе, предполагаю, что в HTML View.
downloader_sm.jpg
downloader_sm.jpg (67.54 KiB)
Viewed 10133 times
[/url]

Re: Снова qemu [РЕШЕНО]

Posted: Tue Oct 05, 2010 9:45 pm
by Mario
Протестировал на ALT Linux c Qemu 0.12.1
В AQemu выбрал RTL8139.
Лог:
boardlog.txt (7.26 KiB)
Downloaded 361 times
Похоже что cо ссылки таки на каком-то этапе режутся, например прямо вбитая ссылка на тему: FASM - flat assembler открывается тема заполнение нулями, ну и по некоторым ссылкам вообще "белиберда" и ничего не открывается.
downloader_2sm.png
downloader_2sm.png (39.19 KiB)
Viewed 10121 times
[/url]
А вот всем известный Гугль.
downloader_3sm.png
downloader_3sm.png (37.43 KiB)
Viewed 10121 times
[/url]

Re: Снова qemu [РЕШЕНО]

Posted: Tue Oct 05, 2010 10:13 pm
by SoUrcerer
Подозрительно, сейчас проверил код htmlv - аж 4 кбайта под URL.
Сравнивая ссылки, приходим к выводу, что все же кто-то что-то обрезает.
viewtopic.php?f=9&t=1514&start=0
viewtopic.php?f=2&t=151

Ровно 48 байт слева осталось

Re: Снова qemu [РЕШЕНО]

Posted: Wed Oct 06, 2010 4:08 pm
by CleverMouse
Mario, я посмотрела логи.

Необходимость вручную вбивать настройки сети под qemu 0.9.1 - следствие бага в qemu 0.9. По стандарту RFC2131 DHCP-сервер, посылающий DHCPOFFER на запрос DHCPDISCOVER без указания обратного адреса, должен отвечать широковещательно. Сервер, встроенный в qemu, отвечает на адрес 10.0.2.15, закреплённый за клиентом. Сетевой стек Колибри получает ответ, посланный сервером; обнаруживает, что пакет предназначен 10.0.2.15; в связи с тем, что IP-адрес ещё не настроен, не догадывается, что пакет пришёл по адресу; отбрасывает пакет, оставляя от него только воспоминание в виде записи на доске отладки, которое видно в логе - "K : ip_rx - dumped (ip: 10.0.2.15)". Таким образом, это баг qemu; судя по всему, в более свежих версиях баг устранили.

Обрезание урла - следствие ограничения в 50 символов, введённого автором httpc и унаследованного в downloader. Я увеличила ограничение до 256 символов; учитывая, что урл большей длины через командную строку передать нельзя, пока такого ограничения должно хватать.

Re: Снова qemu [РЕШЕНО]

Posted: Wed Oct 06, 2010 4:31 pm
by Mario
CleverMouse
Таким образом, это баг qemu; судя по всему, в более свежих версиях баг устранили.
Буду искать более свежий эмулятор под Виндовс.
Обрезание урла - следствие ограничения в 50 символов, введённого автором httpc и унаследованного в downloader. Я увеличила ограничение до 256 символов; учитывая, что урл большей длины через командную строку передать нельзя, пока такого ограничения должно хватать.
Спасибо. Осталось только автора браузера найти.

Re: Снова qemu [РЕШЕНО]

Posted: Wed Oct 06, 2010 5:01 pm
by CleverMouse
Mario, я качала с http://homepage3.nifty.com/takeda-toshiya/qemu/ и запускала с "-net nic,model=ne2k_pci -net user".

Re: Снова qemu [РЕШЕНО]

Posted: Wed Oct 06, 2010 5:05 pm
by Mario
CleverMouse
Спасибо за ссылку.
Вот здесь есть еще вроде новее:
http://lassauge.free.fr/qemu/

UPD Хотя нет это только для i386

Re: Снова qemu [РЕШЕНО]

Posted: Wed Oct 06, 2010 7:43 pm
by SoUrcerer
К HTMLv можно прикрутить в принципе формы для GET-запросов, и тогда можно будет искать в гугле легко и непринужденно. Но пока используется downloader, и, как следствие, невозможна отправка POST, на форуме писать будет нельзя :(