авто определение "безопасных" видео режимов

Kernel-side graphics support
  • Проверил в Qemu.

    По-умолчанию стояло 640х480. Прокроутка не работает. Выставил 800ч600, нажал запомнить.
    Выкключил машину. Включил.

    На синем экране снова 640х480, но когда входишь в режимы выделен 800х600!!!!11 Притом прокрутка вверх работает!!! Значит не работает только вниз.

    Бинарники ядра прилагаю (несжатые).

    И ещё, объясните лаймеру дизайнеру простому человеку понятным языком какой профит с этой правки.
    Attachments
    kernel.7z (76.71 KiB)
    Скомпилированное ядро.
    Downloaded 381 times
    Из хаоса в космос
  • Имеет смысл объединить две темы - они прямо связаны решаемой проблемой.
    Насчет комментариев - их наличие или отсутствие не является решающим вопросом. Есть хорошо, нет так все равно придется разбираться. В Колибри (в общем случае) принято давать меткам осмысленные имена и это часто помогает не смотря на отсутствие комментариев.

    Протестирую на своих машинах и отпишусь.

    З.Ы. Забавно, но когда я работал в "Прикладных технологиях" мне достаточно явно было сказано "Знаешь чем хороший программист отличается от просто программиста - он не задает лишних вопросов и не оправдывается, просто делает то что ему говорят". В тот момент у меня это вызывало удивление, но со временем начинаешь понимать скрытую часть логики. :lol:
  • Roverbook U800
    При выборе всего один режим осмысленный:
    Spoiler:
    IMGP7666.JPG
    IMGP7666.JPG (100.35 KiB)
    Viewed 10794 times
    При движении вниз выбираются несуществующие режимы - мусор по большому счету.
    При загрузке нетбук ресетнулся.

    eBox-3300MX (Vortex86MX)
    При выборе всего один режим осмысленный:
    Spoiler:
    IMGP7667.JPG
    IMGP7667.JPG (75.88 KiB)
    Viewed 10794 times
    При движении вниз выбираются несуществующие режимы - мусор по большому счету.
    При загрузке система зависла выдав зеленую отрыжку:
    Spoiler:
    IMGP7672.JPG
    IMGP7672.JPG (16.61 KiB)
    Viewed 10794 times
    Результаты тестов неутешительны - код настолько сырой, что я бы на месте автора не стал выкладывать вообще для постороннего тестирования.
    Текущую версию далее (у меня есть еще 3 физические машины разные) тестировать не имеет практической целесообразности.
  • Код который написал я вполне рабочий. Если есть по нему вопросы то можете задавать. Итеграция сырая.
    Авто определение надо чтобы пользователью не пришлось самому выбирать разрешение. Нет, это не панацея потому как мы говори о bios.

    Если у вас только 640x480 то значит код не нашёл LFB режимов. Правильный сособ их найти - установить lfb бит перед функцией ax=4f01. И незабывайте минимальная версия vbe2.
    Прокрутка не должна работать. Лучше не трогать.

    Если есть разные режимы в списке режимов то у вас есть vbe2. Но если выбран 640x480x0 то edid либо отсутствует либо нету standart & established полей структуры edid.

    Leency, твой бинарник по твоему описанию работает как следует. У меня он тоже работает. Запоминание не работает.
    Mario wrote:Имеет смысл объединить две темы - они прямо связаны решаемой проблемой.
    Насчет комментариев - их наличие или отсутствие не является решающим вопросом. Есть хорошо, нет так все равно придется разбираться. В Колибри (в общем случае) принято давать меткам осмысленные имена и это часто помогает не смотря на отсутствие комментариев.

    Протестирую на своих машинах и отпишусь.

    З.Ы. Забавно, но когда я работал в "Прикладных технологиях" мне достаточно явно было сказано "Знаешь чем хороший программист отличается от просто программиста - он не задает лишних вопросов и не оправдывается, просто делает то что ему говорят". В тот момент у меня это вызывало удивление, но со временем начинаешь понимать скрытую часть логики. :lol:
    В следущий раз говори по делу и прекрати оправдывться.

    Roverbook U800
    eBox-3300MX (Vortex86MX)
    Mario, должно быть 640x480x0. Ты может неправильно собрал. Файл "bootvesa.asm" а не "bootvesa.inc". Или другие проблемы со сборкой.
    EDIT: Пожалуйста пользуйся публично доступными скриптами а не своими личными.
    Last edited by ilya on Thu Jan 05, 2012 8:14 am, edited 2 times in total.
  • С какого перепуга я оправдываюсь то? Я выразил свое мнение по предмету отмазок к выкладыванию сырого кода.
    Mario, должно быть 640x480x0. Ты может неправильно собрал. Файл "bootvesa.asm" а не "bootvesa.inc". Или другие проблемы со сборкой.
    Я сделал ровно так как описано - ядро последнее с SVN, закинул файлы куда велено и скомпилировал. Пожал kpack в режиме сжатия ядра.
  • Mario wrote:Пожал kpack в режиме сжатия ядра.
    Это не есть настройки по умолчанию. Это дополнительный слой, дополнительные баги и дополнительные доки читать (которых я не нашёл).
  • ilya wrote:
    Mario wrote:Пожал kpack в режиме сжатия ядра.
    Это не есть настройки по умолчанию. Это дополнительный слой, дополнительные баги и дополнительные доки читать (которых я не нашёл).
    Нет-нет, уже лет пять ядро сжимается kpack всегда.
  • Вообще-то сжималось оно kerpack, а kpack я допилил несколько позже, что впрочем сути не меняет - пожатое ядро работает, а код выбора режимов безбожно сырой. Несжатое ядро показало все тот же результат. Обычное trunk ядро работает без проблем.
  • На этом сайте обычно принято начинать рассуждения с каких то идей которые как правило выливаются в одну болтовню. Я же начал с рабочего кода. Вам надо это авто определение или нет? Есть ли смысл продолжать дальше? Когда то на форуме читал что было бы неплохо.
    Покачто вероятность 99% что не надо. Если передумаете постите сюда.

    PS: Я личкой(private messages) не пользуюсь.
  • Все равно в конце концов авто определение будет востребованным, т.к. ОС хотят (и наверняка будут) пользоваться не только прогеры..
    Да и по-современному это, нежели в ручную выбирать режимы..
  • ilya
    Надо продлжать. Не обращай внимания на Марио - его обиде на мир нет предела. Ему когда-то пафосно сказали, что его проблемы никого не интересуют и теперь он думает что в праве это пафосно повторить, но уже здесь. Ведь у него есть опыт. Но ведь здесь нет начальников и подчинённых, так ведь.

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

    Не нравится синий экран - забей свои параметры в (свою) рабочую копию ядра и займись чем-нибудь полезным.

    И еще пара правил хорошего тона:

    1) насвинячил - прибери за собой.
    2) не нарывайся на конфликт с теми, кто взялся тестировать твой код, и всегда старайся уважительно принимать их мнения (какими бы спорными они тебе ни казались). Иначе больше никто не возьмется...
  • ilya
    1. Да, надо -однако автор выкладывая код должен быть готов к обоснованной критике. Я в свое время также воспринимал в штыки любое замечание. Пока что код сырой и я выразил свое частное мнение о его сырости - ты имеешь полное право забить на мое частное мнение.
    2. Посмотри лог SVN - я не только болтаю. За 8 лет участия так немножко код ковырял, совсем чуть чуть, иногда. :mrgreen:

    Leency
    Православные дизайнеры-программисты негодуют. :lol:
  • Фактически я написал автоматическое определение экранов видеорежима, точнее взял ранние разработки Mike.dld + свои мысли и допилил до рабочего состояния. В различных вариантах видеокарт данные режимы реализованы совершенно по разному, только по этому была возможность выбора пользователем режима, т.к. после загрузки изменение режима затруднительно.
  • Who is online

    Users browsing this forum: No registered users and 3 guests