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

KoOS network development
  • В общем выяснилось что в ALT Linux у меня стоит версия 0.12.1
    Я использую для запуска оболочку AQemu и выставил в ней сетевую карту NE2000 PCI. Все заработало через zeroconfig. Адреса назначились сами. Единственно по прежнему сжатые ресурсы не открываются.
  • Раньше у меня вроде бы downloader вместо board.kolibrios.org показывал всякую кашу, а теперь вообще отказывается сохранять.
    Насколько я понимаю, сжатие производится с помощью gzip, так что в теории в Колибри распаковать страницу можно...
  • Я подправила драйвер RTL8139 в ядре из trunk, теперь должно работать и под qemu. Дело было в том, что драйвер записывал некоторые конфигурационные регистры, используя out размером в слово, а эмулятор карты внутри qemu умеет обрабатывать только записи размером в двойное слово - в результате конфигурационный регистр приёма оставался нулевым и приёмник успешно отбрасывал пришедшие пакеты как не прошедшие фильтр.

    Sorcerer, насколько я понимаю, дело не в сжатии: сжатие в протоколе HTTP исключительно опционально, и если клиент не говорит явным образом серверу "я поддерживаю сжатие, если хочешь, отдавай сжатую страницу" путём указания HTTP-заголовка "Accept-Encoding: gzip", то сервер не имеет права посылать сжатую страницу. Проблема называется "chunked transfer coding": сервер имеет право генерировать страницу по кускам и посылать её тоже по кускам, в заголовках задавая вместо полной длины страницы Content-Length - которая в этом случае заранее неизвестна - кодировку Transfer-Encoding: chunked, в которой перед каждым куском идёт его длина.
    Сделаем мир лучше!
  • CleverMouse
    Я подправила драйвер RTL8139 в ядре из trunk, теперь должно работать и под qemu.
    Большое спасибо. Я рад, что ты еще участвуешь в проекте. Для нас было бы тяжело потерять грамотного специалиста по сетевым вопросам.
    Проблема называется "chunked transfer coding": сервер имеет право генерировать страницу по кускам и посылать её тоже по кускам, в заголовках задавая вместо полной длины страницы Content-Length - которая в этом случае заранее неизвестна - кодировку Transfer-Encoding: chunked, в которой перед каждым куском идёт его длина
    Чем-то похоже на структуру PNG, там тоже данные кусками могут идти и идут.
  • Я посмотрела на код downloader. Он нормально обрабатывает chunked coding, а спотыкается на ситуациях, когда длина явным образом не указана - нет ни Content-Length, ни Transfer-Encoding - а определяется по закрытию соединения. Я добавила обработку таких ситуаций, теперь http://board.kolibrios.org скачивается. Я сейчас приложу новую версию downloader в теме, посвящённой ему. К сожалению, иногда страницы не докачиваются до конца, по-видимому, это более глубокая проблема где-то в старом сетевом стеке ядра из trunk.
    Сделаем мир лучше!
  • Я протестировал на версии 0.9.1 под Виндовс ХП. С новым ядром и с новым downloader'ом.
    Вот лог
    BOARDLOG.TXT (5.53 KiB)
    Downloaded 353 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 10059 times
    [/url]
  • Протестировал на ALT Linux c Qemu 0.12.1
    В AQemu выбрал RTL8139.
    Лог:
    boardlog.txt (7.26 KiB)
    Downloaded 358 times
    Похоже что cо ссылки таки на каком-то этапе режутся, например прямо вбитая ссылка на тему: FASM - flat assembler открывается тема заполнение нулями, ну и по некоторым ссылкам вообще "белиберда" и ничего не открывается.
    downloader_2sm.png
    downloader_2sm.png (39.19 KiB)
    Viewed 10047 times
    [/url]
    А вот всем известный Гугль.
    downloader_3sm.png
    downloader_3sm.png (37.43 KiB)
    Viewed 10047 times
    [/url]
  • Подозрительно, сейчас проверил код htmlv - аж 4 кбайта под URL.
    Сравнивая ссылки, приходим к выводу, что все же кто-то что-то обрезает.
    viewtopic.php?f=9&t=1514&start=0
    viewtopic.php?f=2&t=151

    Ровно 48 байт слева осталось
  • 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 символов; учитывая, что урл большей длины через командную строку передать нельзя, пока такого ограничения должно хватать.
    Сделаем мир лучше!
  • CleverMouse
    Таким образом, это баг qemu; судя по всему, в более свежих версиях баг устранили.
    Буду искать более свежий эмулятор под Виндовс.
    Обрезание урла - следствие ограничения в 50 символов, введённого автором httpc и унаследованного в downloader. Я увеличила ограничение до 256 символов; учитывая, что урл большей длины через командную строку передать нельзя, пока такого ограничения должно хватать.
    Спасибо. Осталось только автора браузера найти.
  • Mario, я качала с http://homepage3.nifty.com/takeda-toshiya/qemu/ и запускала с "-net nic,model=ne2k_pci -net user".
    Сделаем мир лучше!
  • CleverMouse
    Спасибо за ссылку.
    Вот здесь есть еще вроде новее:
    http://lassauge.free.fr/qemu/

    UPD Хотя нет это только для i386
  • К HTMLv можно прикрутить в принципе формы для GET-запросов, и тогда можно будет искать в гугле легко и непринужденно. Но пока используется downloader, и, как следствие, невозможна отправка POST, на форуме писать будет нельзя :(
  • Who is online

    Users browsing this forum: Ahrefs [Bot] and 5 guests