Колибри 0.7.5.0

Share your distros and discuss others'
  • Доброе время суток товарищи знатоки!
    Вопрос от телезрителей - можно ли добавить в меню загрузки больше режимов для VESA1.2?
    А то на экране 640х480х16 не то чтобы эстетического кайфа не словить, а и работать нельзя! :)
    У меня видео "Цироз логики" с 1 метром мозгов на борту.
    Заранее благодарен.
  • Рекомендую достать видео с поддержкой VESA 2.0 или более. и Озу желательно больше чем 1 мб ).
  • Анатоль
    Видеокарты с поддержкой Vesa 1.2 требуют процедуру переключения банков памяти, поскольку они не подерживают LFB. Процедуры переключения банков у каждой карточки зачастую индивидуальны, даже у одной фирмы и даже вроде похожих видеокарт отличающихся одной цифрой. Методики автодетктирования нету. Документации нету. Да даже если бы и была то проверять не на чем, ввиду огранченности парка компьютеров доступных одному конкретному разработчику. Люди которым требуется эта поддержка обычно закидывают свое желание на форум и благополчно сваливают больше не появляясь. Поскольку парк таких машин ограничен и с каждым годом он сокращается, то тратить время на их поддержку не самое приоритетное направление при малом количестве разработчиков в проекте.
  • Все понимаю, но есть ноутбук с которым я проковырялся бог знает сколько чтобы его запустить, и карточка там "вставленная", плюс к тому я не могу ставить другие Оси на рабочую машину, если что, то прийдется сидеть потом без хлеба! ;)
    А этот ноут я и взял для опытов с вашей ОСью, вот только незадача с видеорежимами! :(
    Может подскажите где в сырцах ядра поковыряться для прикручивания других режимов?
  • У телезрителей с другого фланга тоже вопрос есть :)
    Скажите, а 1280x800x32bpp - формату VESA-2.0 не соответствует :?:
    ((вообще-то, про себя оно говорит, что VESA-3.0))
  • Galkov
    В Vesa 3.0 тоже должно быть LFB.
    На ноутбуке моего брата стоит Geforce 9300GS(с собственной видео памятью) с поддержкой Vesa 3.0. Колибри именно так её определяет и без проблем работает с разрешением 1440*900*32.
  • Думаю, что Kolibri не опредяляет VESA-3.0, а просто копирует текст
    А вот когда перечисляет найденные режимы, то предоставляет выбор 2.0 и 1.2 вроде бы...

    У меня это примерно так :(
    Galkov wrote:С видюхой тоже проблемы: квадраты прямоугольные, и круги не по циркулю
    Kolibri читает интерфейс как VESA 3.0 и видит только режимы 640x480, 800x600, 1024x768
    А есть еще 1280x600, 1280x720, 1280x768, 1280x800 - этот штатный в винде, в нем круги - действительно круглые
    Про карту...
    Если смотреть на ярлык, то это: WXGA-14"
    Если на драйверы в винде, то: Mobile Intel(R) 965 Express ChipSet Family
    В подробностях этого драйвера: Строка контроллера - Mobile Intel(R) GMA X3100
    Ну и 256М видеоозу (что характерно - свои, от общей памяти ничего не отрезано)
    На эмуле красивше все (видюха stretch делает, резкость уже не та получается, конечно) :)
  • Galkov

    На i965 отличная документация http://www.intellinuxgraphics.org. Так что желающие могут сделать себе и курсоры и видеорежимы и 3D.
  • Serge, спасибо конечно :)
    Но это не самый мой больной вопрос: профессионально меня это не напрягает, помните наверное
    Просто небольшая домашняя заморочечка
    А в качестве "работы по-выходным", моя сверх-задача (многолетняя) - сделать компилятор (язык программирования) который кодит лучше человека... Ну скажем, чтобы diamond (к примеру) забросил АСМ в виду низкой эффективности конкуренции с ним в искусстве кодинга.

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

    А посему, просто пытаюсь проконсультироваться, мой режим вываливается из всех стандартов и нужны персональные дрова, или просто не все стандарты мы освоили ???
    Когда понимаешь причины, вроде как и беда меньше кажется :D
  • Galkov
    А посему, просто пытаюсь проконсультироваться, мой режим вываливается из всех стандартов и нужны персональные дрова, или просто не все стандарты мы освоили ???
    Есть стандартные Vesa 2 режимы 640*480*24 или 32, 800*600*24 или 32, 1024*768*24 или 32, 1280*1024*24 или 32. Это поддерживается при условии что видюха и монитор обеспечивают эти режимы.
    Все остальное может поддерживаться, а может не поддерживаться.
  • Подтверждая слова Марата, это дело производителя видеокарты - реализовывать или нет нестандартные разрешения. Мне кажется вполне логичным с их стороны добавлять нестандартные, но в то же время родные для матрицы ноутбука разрешения (речь о настольных компьютерах не идёт, там заранее неизвестно, какой будет монитор). У меня так же не было проблем с 1280x800, когда я тестировал gfx_kernel на своём лаптопе.

    Насчёт определения версии VESA - она именно определяется из структуры, возвращаемой BIOS'ом (а не просто выводится строка). В gfx_kernel реализация (насколько я сейчас могу помнить) была такова, что в таблицу режимов попадали все доступные, при этом если находился режим с одинаковым разрешением и битностью для 1.2 и 2.0 - использовался 2.0. Для 1.2 было написано несколько подпрограмм переключения банков и небольшая подпрограмма определения подходящей в зависимости от видеокарты. Естественно, при этом никто не гарантировал, что на какой-нибудь видеокарте ни одна из подпрограмм не подойдёт и всё равно ничего не будет работать. Не знаю вот, как сделано сейчас, после переноса Lrz этой функциональности в trunk.

    В vesa_probe (моей программе определения возможностей видео), которая легла в основу gfx_kernel, я в последней версии начал было добавлять чтение DCC и EDID, чтобы попытаться определить разрешения поддерживаемые не только видеокартой, но и самим монитором, что давало бы бОльшую свободу. Не доделал. А так, глядишь и фишки 3.0 использовал бы :)
    in code we trust
  • Кстати, у меня при загрузке на реальной машине видны видеорежимы, которые не поддерживаются, хотя Lrz это вроде правил. Чуть позже опишу подробнее.
  • Code: Select all

            test    [es:mi.ModeAttributes],00000001b   ;videomode support ?
            jz      @f
            test    [es:mi.ModeAttributes],00010000b   ;picture ?
            jz      @f
            test    [es:mi.ModeAttributes],10000000b   ;LFB ?
            jz      @f
    
            cmp     [es:mi.BitsPerPixel], 24	;It show only videomodes to have support 24 and 32 bpp
            jb      @f
    Видеорежимы, которые имеют меньше чем 24 бит на пиксель не должны отображаться в blue screen. В коде приведена выборка видеорежимов, которые сооствествуют данному критерию.
    Критерии проверки - поддерживается видео режим, графический режим, если ли LFB буфер, поддерживается ли 24 и более бит на пиксель.
    Как получаем информацию о VESA режиме:

    Code: Select all

    print_vesa_info:
            _setcursor 5,2
    
            mov     [es:vi.VESASignature],'VBE2'
            mov     ax,0x4F00
            mov     di,vi      ;0xa000
            int     0x10
            or      ah,ah
            jz      @f
            mov     [es:vi.VESASignature],'VESA'
            mov     ax,$4F00
            mov     di,vi
            int     0x10
            or      ah,ah
            jnz     .exit
      @@:
            cmp     [es:vi.VESASignature],'VESA'
            jne     .exit
            cmp     [es:vi.VESAVersion],0x0100
            jb      .exit
            jmp     .vesaok2
    
      .exit:
            mov     si,novesa
            call    printplain
            ret
    
      .vesaok2:
            mov     ax,[es:vi.VESAVersion]
            add     ax,'00'
    
            mov     [s_vesa.ver], ah
            mov     [s_vesa.ver+2], al
            mov     si,s_vesa
            call    printplain
    
            _setcursor 4,2
            mov     si,word[es:vi.OemStringPtr]
            mov     di,si
    
            push    ds
            mov     ds,word[es:vi.OemStringPtr+2]
            call    printplain
            pop     ds
    
            ret
    Код почти соответствует коду GFX_kernel
  • ясно, просто у меня еще можно выбрать:
    1400×1050×32
    1600×1200×32
    1856×1392×32
    1920×1440×32
    Естественно, что ни один из них правильно не работает
  • Who is online

    Users browsing this forum: No registered users and 2 guests