Колибри 0630

Share your distros and discuss others'
  • Serge
    Можно сделать версию ядра с встроенным шрифтом и после каждого минимального шага выводить надпись. Таким нехитрым методом можно выяснить приблизительное место зависания.
    А если ошибка возникает еще в реальном режиме, так там вообще нет проблемы с выводом шрифта, по крайней мере, до переключения видеорежима.
  • Mario79 wrote:Ядро выложил Serge.
    Я тоже выкладывал ядро, только там изменения касались DMA. В общем, ревизия 210 вернулась к записи через PIO, чтение (которое работает нормально) остаётся через DMA.
  • diamond
    На Cyrix как раз чтение работает со сбоями (выявил при просмотре JPEG), а запись как ни странно нормально.
    А вообще так делать половинчатые вещи не лучший выход.
  • А можно как нибудь проверить,портиться ли файл(та его часть,что загружена в буфер) в буфере или он портиться после записи из буфера на диск ?

    Может какой-нибудь тестовый файлик создать с известрной чексуммой,а потом смотреть,что с ней происходит при чтении или записи.
  • Mario79
    Ядро уходит в перезагрузку ещё до того как можно будет увидеть надпись на экране, так что hlt надёжнее. Я бы давно этот баг исправил но у меня нет компа на котором система не грузится и похоже тема не очень актуальна.
  • >и похоже тема не очень актуальна.

    Актуальна,актуальна.Serge,завтра пойду в универ и протестирую ядро,которое ты выложил,на старых компах.Раньше протестировать не получилось.
  • Если кто-нибудь возьмётся найти ошибку я напишу что надо сделать.
  • Возник вопрос: текущее ядро если запускаешь колибри в qemu и выбираешь видеорежим с проверкой (vesa3) пишет "Ошибка: видеорежим не найден" и дальше загрузка не идет. Это немного раздражало, но думал что так и нужно, пока не попробовал запустить в qemu один из старых дистрибутивов menuetos. Даже при выборе "проверить другие режимы" система устанавливает 24 бита и нормально загружается. Перелопатив много дистров, пришел к выводу (поправьте, если ошибаюсь), что это появилось в поздних версиях дистрибутивов Ивана Поддубного и благополучно перекочевало в Колибри. Начал сравнивать исходники. Во всех дистрах Вилле (в последних тоже) в bootcode.inc в процедуре probemore есть такая строчка:
    cmp eax,24.
    В ядре Ивана (соответственно и в колибри) она заменена на следующую:
    cmp eax,32 ;24.
    Если изменить в колибри обратно на 24, то все нормально грузится в qemu (да и на реальных компах без поддержки vesa3)!
    Так вот собственно вопрос ;) : будет ли устанавливаться 32-битный режим, если вернуть 24 в эту строчку? Проверить это, насколько я понимаю, довольно сложно, но и изменения эти тоже ведь, наверное, не просто так делались... Может кто-нибудь прояснить ситуацию?
  • Итак,результаты тестирования ядра Serge-а на старых компьютерах.

    Pentium166MMX ,видеокарта S3(с VESA2.0),мышь на COM2.

    Система загрузилась,но мышь на COM2 не заработала,хотя раньше на этом компе мышь прекрасно работала.

    AMD-K5 75.17MHz(самый слабый из PC-шных процессоров,что я видел)
    видеокарта S3(с VESA1.2),мышь на COM1.

    Система загрузилась и нормально работала(в том числе и мышь).


    Serge писал:
    > Если кто-нибудь возьмётся найти ошибку я напишу что надо сделать.

    По суботам я гарантированно имею доступ к старым компам и могу тестировать.Если кто-то имеет дома старый комп,то лучше всего ему тестировать(так быстрее).
    Помоему у campera не запускается по той- же причине,по какой и на всех старых компах.

    Heavyiron писал:
    >Так вот собственно вопрос : будет ли устанавливаться 32-битный режим, если вернуть 24 в эту строчку?

    Если я правильно помню код,то 32-х битный режим устанавливаться не будет.
  • >COM2 мышь не работает.

    На некоторых компьютерах если COM-порты отключены БИОС, назначает IRQ3
    контроллерам AC97 или USB. Поэтому я отключил встроенный обработчик
    прерывания от COM2.

    поиск ошибки
    для проверки надо скачать исходники ядра с kolibrios.org и сделать
    следующие изменения в коде

    Code: Select all

    kernel.asm
    
    ; MEMORY MODEL
               call mem_test
               mov [MEM_AMOUNT], eax
    
    заменить на
    ; MEMORY MODEL
               call mem_test
               mov eax,  32*1024*1024
               mov [MEM_AMOUNT], eax
    
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    core/memory.inc
    
    proc map_LFB
    
               mov edi, [LFBSize]
               mov esi, [LFBAddress]
    
    заменить на
    proc map_LFB
               
               mov edi, 0x00400000   ;[LFBSize]
               mov esi, [LFBAddress]
               
    ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
    kernel.asm
    
    ; ENABLE PAGING
    
    ;           btr [cpu_caps], CAPS_SSE    ;test: dont't use sse code
    ;           btr [cpu_caps], CAPS_SSE2   ;test: don't use sse2
    
    ;           btr [cpu_caps], CAPS_FXSR   ;test: disable sse support
                                            ;all sse commands rise #UD exption
    ;           btr [cpu_caps], CAPS_PSE    ;test: don't use large pages
    ;           btr [cpu_caps], CAPS_PGE    ;test: don't use global pages
    ;           btr [cpu_caps], CAPS_MTRR   ;test: don't use MTRR
    ;           btr [cpu_caps], CAPS_TSC    ;test: don't use TSC
    
    заменить на
    ; ENABLE PAGING
    
               call test_cpu
               btr [cpu_caps], CAPS_PSE    ;test: don't use large pages
               btr [cpu_caps], CAPS_PGE    ;test: don't use global pages
               btr [cpu_caps], CAPS_MTRR   ;test: don't use MTRR
               
               btr [cpu_caps], CAPS_FXSR   ;test: disable sse support
                                            ;all sse commands rise #UD exption
               btr [cpu_caps], CAPS_SSE    ;test: dont't use sse code
               btr [cpu_caps], CAPS_SSE2   ;test: don't use sse2
    
               bts [cpu_caps], CAPS_TSC    ;test: don't use TSC
    потом вернуть всё назад начиная с MEMORY MODEL пока система не
    перестанет загружаться. Строки с btr комментировать по одной, по
    порядку сверху вниз.
  • andrew_programmer
    200 перезагрузок, 30 человеко/часов...
    Вот ядро для тестирования на компе где глючит DMA (проблему с загрузкой на старых машинах не решает):
    http://www.kolibri.hut1.ru/temp/kernel_207_fix_dma.7z
  • Mario79 wrote:А вообще так делать половинчатые вещи не лучший выход.
    Конечно, не лучший выход, но так по крайней мере работает, а на поиск/исправление ошибок у меня в данный период нету времени.
    Wildwest
    За ссылку спасибо. По поводу того, что "was a sound card": сейчас этот код кому-нибудь нужен? Скажем, несколько загадочно выглядит третий режим в mixer - установка громкости устройства, выводить на которое звук вроде бы никто (?) не умеет.
    Mario79 wrote:MPU401 это порт, к которому подключаются MIDI устройства, как входные (например, MIDI клавиатура, так и выходные, которые выводят звук.
    Ставлю вопрос таким образом: куда выводит звук midiplay? Конкретно на данном форуме, в данной теме существует ли человек, у которого он работает? (Для справки: у меня midiplay виснет, даже если попытаться поменять порт в setup).
  • diamond
    У меня одно время находился комп, на котором стояла старая ISA SB. На ней была поддержка как раз того, что ты спрашиваешь, и там попискивал набор тонов. А в целом на большинстве звуковух эта вещь отсутствует за ненадобностью.
  • Who is online

    Users browsing this forum: No registered users and 1 guest