RU/2: Форум. Общение пользователей и разработчиков OS/2 (eCS). : arca5.1


Список сообщений | Написать новое | Ответить на сообщение | Домой Поиск:
Предыдущее сообщение | Следующее сообщение
From : dixie
To : DDP
Subj : arca5.1

Некоторые пояснения по EFI.
Мало ли что и где и кому потребуется ...
Всякое разное, к чему я прикладываю руку, обычно стараются потом как-то урезать в функциональности - тут не исключение ;)

Исходно EFI лодырь может:
a). работать в BIOS режиме, подменяя BIOS своей эмуляцией. Видео в этом случае может быть:
- EFI-подобным режимом "всегда одно неизменное разрешение экрана".
- обычным VESA

Чтобы загрузиться в BIOS режиме - найдите любой не используемый для загрузки HPFS/JFS раздел, сделайте на него sysinstx и положите в корень OS2LDR.BIN от EFI загрузчика и OS2LDR, распакованный из этого OS2LDR.BIN. Грузитесь с этого раздела и выбираете в меню раздел с котого грузить ось (или добавляете defvolume=x: в OS2LDR.CFG там же).
Поставить можно и на FAT/FAT32 - тут правила сходны с QSINIT (надо апдейтить код бутсектора).

Строчка "alt_video = 1" в OS2LDR.CFG форсирует попытку использовать VESA BIOS, которая будет всегда успешна в этом случае.

Например, у меня есть гигабайтная мать, где VDM трапается в биосе. Не где-то ещё, а прямо в сегменте биоса, в F000:xxxx. И вот с EFI загрузчиком в этом режиме я могу запускать VDM в обычной eCS 2/0. BIOS эмулируется, а VESA биос работает как раньше.

EFI-подобный режим "всегда одно неизменное разрешение экрана" тоже может помочь - вот тут ниже тема "тонкий клиент hp t5630", где текстовые режимы VGA на железяке сходу битые (и это уже не единичный случай). Просто стартуем в одном фиксированном графическом режиме, так, как это происходит в EFI. Этот режим никогда не переключается, в VDM и полноэкранных сессиях всё эмулируется.

b). работать в EFI режиме. Тут тоже возможны два варианта:
- полный EFI, у нас нет ничего кроме EFI фирмвари - эмулируется всё, один видеорежим, установленный на старте, не меняется всё время работы. PM, WinOS/2 и VDM используют только его. В VDM, соответственно, весь вывод эмулируется.
- VESA BIOS есть и он живой, даже если нет обычного биоса. Это было нужно для старта семёрки, поэтому на железе среднего возраста такое встречается часто. Там может быть дикий бардак, когда в переменных и векторах прерываний биоса мусор, но всё, что относится к видео настроено правильно (биоса нет, но VESA BIOS отработал свой инит).

И этот VESA биос обычно можно нормально использовать.
Добавлям в OS2LDR.CFG строчку "alt_video = 1" и пробуем.

Загрузчик точно знает - какой вариант видео используется и изначально мог патчить config.sys, предельно упрощая жизнь юзера.

В том, что идёт в 5.1 это сломано - ну чтобы всем было легче. Поэтому юзер теперь должен сам редактировать config.sys при смене режима видео с EFI на VESA BIOS и наоборот. Исходно надо было просто оставить BIOS вариант конфига и EFI загрузчик сам фиксил его копию, которую получало ядро. Это делало все установленные системы универсальными - вообще без изменений в конфиге оно могло стартовать и в BIOS режиме и в EFI.

Как превратить вашу eCS в EFI версию:
- копируем из 5.1 \OS2\MDOS\VEFI.SYS, \OS2\MDOS\VBIOS.SYS (почти опционально) и \OS2\DLL\BVHEFI.DLL (строго обязательно).
- как верно отмечено на os2world, всё отличие в конфиге - в двух строчках:
[CSM]
DEVICE=C:\OS2\MDOS\VSVGA.SYS
SET VIO_SVGA=DEVICE(BVHVGA,BVHSVGA)

[EFI]
DEVICE=C:\OS2\MDOS\VEFI.SYS
SET VIO_SVGA=DEVICE(BVHEFI)

Только назвать их надо было не CSM/EFI, а VESA/EFI. Первый вариант для случая, когда используется VESA биос, второй - фиксированный графический режим на всём протяжении работы (BVHEFI.DLL для полноэкранного VIO и VEFI с полной виртуализацией видео для VDM).

Стоит иметь в виду, что в первом случае VDM такой же убитый как и раньше.

Загружаемся, стартуем какой-ньть Wolfenstein3d и идём истреблять фашизм ;)
По крайней мере, в 1280x1024 на 2.4GHz процессоре всё бегает и резвится.

Чтобы вернуть шелл и SysView в EFI загрузчике идём в OS2LDR.BIN\bootmenu.ini и добавляем в секцию
[common]
F3 = cmd
F5 = sysview
ну или любые другие варианты кнопок. Это тоже убрано, чтобы сделать жизнь проще, да :)

EFI загрузчик сделан из QSINIT декабря 2018-го, BIOS загрузчик ArcaOS - из QSINIT декабря 2015-го. Если хотите сыграть в тетрис в аркалодыре - берёте тетрис из соответствующей версии QSINIT, патчите имя модуля в заголовке LX в бинарном редакторе с QSINIT на AOSLDR и допаковываете в OS2LDR.BIN :)

Ещё из "неподдерживаемого": BIOS версия _может_ грузиться с GPT диска :)
Что для этого нужно - GPT.FLT в конфиге, раздел ниже 2Tb и что-то, что вообще будет его стартовать. Для JFS, по идее, сгодится даже GRUB с его chainloader+1, но в общем случае надо просто заменить код MBR сектора (GPT диска) в QSINIT (или в EFI загрузчике) в SysView и поставить там же разделу флаг "BIOS Bootable" (Make active).

В BIOS загрузчике ArcaOS нет поддержки GPT, но код максимально приучен не просить лишнего, поэтому он молча отработает, если в бутсекторе раздела всё правильно (сделайте sysinstx ?: для гарантии). Дальше включится GPT.FLT и ось загрузится.

Наиболее безопасный вариант для HPFS - после sysinstx прописать код загрузки с HPFS из QSINIT ("Update bootstrap" в Disk Management в SysView), он куда менее капризен и не зависит от Boot Manager/MBR кода от IBM.

LVM букву диска GPT разделу с осевой GUID (ArcaOS Type 1) можно поставить не только в miniLVM, но и в SysView (что в QSINIT, что в EFI загрузчике).

Из того, о чём плакались на os2world - GPT.FLT отваливается если нет GPT дисков, поэтому если хочется установить на чистый диск - просто сначала проинициализируйте его в GPT в SysView в QSINIT или EFI загрузчике (или где угодно ещё).

Что ещё - не ожидайте, что эмуляция видео в VDM идеальна, особенно для текстовых режимов. Все 16-ти цветные EGA/VGA и 256-цветные Mode-x режимы работают через софтварную эмуляцию (т.е., когда вы бегаете в том Wolfenstein3d выше - каждая запись в видео идёт через исключение и ручной разбор инструкции ;)).

Ничего тут сделать нельзя, единственное - если вдруг выпадет попап "VEFI.SYS: Unemulated command sequence found" - лучше содержимое и причину записать и куда-ньть мявкнуть.

Все "плоские" режимы - CGA или VGA 320x200x256 и веса - бегают и резвятся.
Общие правила для игр:
- по возможности ставить VIDEO_RETRACE_EMULATION = ON
- если игра читает с диска прямо в VGA память - INT_DURING_IO = OFF, но это встречается очень редко.
- VIDEO_SWITCH_NOTIFICATION = ON _только_ для WinOS2

Эмуляции звука нет - увы ;)


Tue 12 Sep 2023 15:09 Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:90.0) Gecko/2010




Programmed by Dmitri Maximovich, Dmitry I. Platonoff, Eugen Kuleshov.
25.09.99 (c) 1999, RU/2. All rights reserved.
Rewritten by Dmitry Ban. All rights ignored.