"Ночные" сборки KolibriOS

Share your distros and discuss others'
  • Rock_maniak_forever wrote:Почему дискеты не читаются в ночной сборке? Кто испортил ядро?
    Перепробывал все manager'ы, но не один не читает. Пишут "ошибка файловой системы". А вот в оф. версии 0.7.7.0, всё читается. :twisted:
    В ревизии 1380 размаскировка прерываний при загрузке была убрана Евгением Гречниковым. Я уже сейчас не помню зачем он это сделал, где-то на форуме написано мельком, но была какая-то проблема вроде с загрузкой на некоторых конфигурациях компьютеров. По идее нужно размаскировать прерывание 6 для флопика либо при загрузке, либо при первом использовании.

    З.Ы. Может более разбирающиеся люди подскажут как лучше сделать? А то я давно уже в ядре не ковыряюсь и там некоторые моменты в работе с прерываниями менялись.
  • Лучше при первом обращении.
  • Поскольку наличие флопика определяется выставленным в BIOS значением (в свое время это было лучшее решение которое я смог найти), то и разрешение IRQ6 я сделал там-же. Если есть флопик - прерывание размаскируется, нет - оставляется как есть. SVN r. 2084.
    Если кто захочет прикрутить более элегантное решение, то никаких возражений у меня нет.
  • Спасибо за ответы. Теперь понятно, но не всё. Есть ещё пару вопросов.
    1. Я никагда не работал с IRQ, и не совсем понимаю, что значит маскировка. Это какая-то подмена вызова IRQ? Поясните вкратце, пожалуйста.
    2. А в каком исходнике(ах) ядра, находится код работы floppy'ка и маскировка? Хочу посматреть на будующее, может что пойму. А то вдруг опять, кто нибудь сделает такой сюрприз-подарок.
    Mario wrote:Поскольку наличие флопика определяется выставленным в BIOS значением (в свое время это было лучшее решение которое я смог найти), то и разрешение IRQ6 я сделал там-же. Если есть флопик - прерывание размаскируется, нет - оставляется как есть. SVN r. 2084.
    Если кто захочет прикрутить более элегантное решение, то никаких возражений у меня нет.
    Громадное спасибо! Щас проверю. :D
  • 1. Маскировка это запрет прерывания - зависит бит отвечающий за определенной прерывание в определенных портах.
    2. В драйвере флопика ничего не менялось. Сюрпризы возникают сами по себе - это темная сторона программирования x86. :mrgreen:
    /trunk/fs/fat12.inc
    /trunk/blkdev/flp_drv.inc
  • Для меня ничего не изменилось, всё так же позвращается file not found (хотя на самом деле там должно быть device error). Пробовал в VirtualBox и Bochs.

    EDIT: Откат r1380 также ничего не дал.
    in code we trust
  • Ну, так в эмуляторах никогда и не работало. Я проверял все относительно настоящего железа.
  • Mario wrote:1. Маскировка это запрет прерывания - зависит бит отвечающий за определенной прерывание в определенных портах.
    2. В драйвере флопика ничего не менялось. Сюрпризы возникают сами по себе - это темная сторона программирования x86. :mrgreen:
    /trunk/fs/fat12.inc
    /trunk/blkdev/flp_drv.inc
    Спасибо за разъяснение и быстрый ответ. Теперь вижу свет в конце тоннеля. Буду разбираться дальше. :D
    Last edited by Rock_maniak_forever on Sun Aug 21, 2011 1:12 am, edited 1 time in total.
  • Тестирование прошло удачно, теперь дискеты читаются. :D Правда почему-то гораздо медленнее, чем в оф. с. Даже FASM в н.с. компилирует один и тот же исходник медленнее, чем в оф. с (Время компиляции: н.с = 2.5 секунды, оф.с = 0.8 сек. ). В чём дело не знаю! :?
  • Насчет чтения тоже заметил что стало задумываться, но за 600 ревизий было столько изменений, что теперь сложно отследить что конкретно сказалось. Сам факт того что перестало работать отследить было проще.
  • Начиная с ревизии 1989 звуковой драйвер загружается с задержкой примерно 5-7 секунд. С чем это связано не понятно. Система не блокируется, диск тоже.

    Update.
    У меня в авозагрузке прописана BOARD с записью лога на hd2/1
    Пауза возникает только если BOARD пишет на жёсткий диск. Без BOARD или при обычной записи лога пауза не возникает. Загрузку проверял простым тестом
    Spoiler:

    Code: Select all

    use32
    
    db 'MENUET01'
    dd 1
    dd start
    dd i_end
    dd mem
    dd mem
    dd 0
    dd 0
    
    start:
            mov eax, 68
            mov ebx, 16
            mov ecx, szSound
            int 0x40
    
            mov eax, -1
            int 0x40
    
    szSound db 'SOUND',0
    
    align 4
    i_end:
    rb 128
    mem:
    
    Update 2.
    Пауза не связана с загрузкой драйвера. Проверил в отладчике, инициализация происходит мгновенно. Но вывод информации идёт с задержкой и воспроизведение музыки тоже. Причём пауза возникает только один раз. Последующие обращения идут без задержки.
  • Serge
    Вчера меня терзали смутные сомнения - сегодня проверил, так и есть начиная ревизии 1992 появляются тормоза с флопиком (разумеется когда он вообще работает, если добавить мои изменения от ревизии 2084). В отличии от твоей ситуации:
    Начиная с ревизии 1989 звуковой драйвер загружается с задержкой примерно 5-7 секунд. С чем это связано не понятно. Система не блокируется, диск тоже.
    в этом случае задержка очевидно проявляется постоянно.
  • Copyr просил удалить ещё давно, никто этого не сделал так что уже я постарался. Забавно то, что программа уже даже не работает - при нажатии на строке пути прога попросту вылетает.

    Теперь время пришло и за HTTPC - толку в нём уже никакого: есть отдельно Downloader для загузки файлов и отдельно HTMLv для посмотра страниц _в_куда_более_читаемом_виде_.

    Если никто не против, я удаляю из дистра.
    Из хаоса в космос
  • Похоже, что все операции записи на диск теперь идут с небольшой задержкой, примерно две секунды.
  • Who is online

    Users browsing this forum: No registered users and 0 guests