Board.KolibriOS.org
http://board.kolibrios.org/

KolibriOS в BIOS
http://board.kolibrios.org/viewtopic.php?f=25&t=1368
Page 2 of 7

Author:  XVilka [ Sat May 15, 2010 4:09 pm ]
Post subject:  Re: Opera в BIOSе

Вот теперь мы вместе с coreboot более или менее официально: Possible future payloads

Author:  art_zh [ Thu May 20, 2010 12:33 pm ]
Post subject:  Re: KolibriOS в BIOS

XVilka
Ещё раз: CoreBoot+Колибри как конечная цель - это замечательно.

Но есть три серьезных соображения против:

1) сейчас ядро опирается на многочисленные BIOS-костыли. CoreBoot выбьет их все разом - фиг разберешься что, где и почему виснет.

2) не каждый потенциальный заказчик решится пожертвовать своим BIOSом ради тест-драйва шустрой, но никому не известной и (прямо скажем) сыроватой новой EOS.

3) Есть ещё цинично-коммерческая сторона вопроса. Лицензия не позволяет закрывать код, но явно разрешает брать плату за консультации и техническую поддержку конечного продукта.
Прошивку PCI Extension ROM можно привязать к конкретной фишке в железе, и консультировать только легальных владельцев этого железа.
А с CoreBoot_payload такой фикс не пройдет. Пробивные дармоеды успеют хапнуть первыми, а тебе оставят только строчку в коллективном копирайте.

Author:  SII [ Thu May 20, 2010 1:48 pm ]
Post subject:  Re: KolibriOS в BIOS

Ещё забыли про то, что проблематично самостоятельно сделать полноценную поддержку оборудования. Например, на современных матерях Gigabyte и других фирм используются хитрые системы управления электропитанием процессора, которыми управляет код SMM, зашитый в BIOS. В частности, он отвечает за переключение числа активных фаз преобразователя в зависимости от потребляемого тока. Ну и попробуй это сделать сам, если спецификации закрыты, а сама реализация может меняться от одной модели к другой (не говоря уже о том, что у разных производителей одна и та же идея реализуется по-разному, если говорить о тонкостях). В общем, BIOS -- зло, но на ПК это зло неизбежно.

Author:  Mario [ Thu May 20, 2010 1:57 pm ]
Post subject:  Re: KolibriOS в BIOS

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

Author:  diamond [ Fri May 21, 2010 1:49 pm ]
Post subject:  Re: KolibriOS в BIOS

art_zh wrote:
сейчас ядро опирается на многочисленные BIOS-костыли

"Многочисленные" - это поддержка не-ATA дисков и переключение в графический режим при запуске, что ли? 2 - это "много", что ли?

Author:  art_zh [ Fri May 21, 2010 4:24 pm ]
Post subject:  Re: KolibriOS в BIOS

diamond wrote:
art_zh wrote:
сейчас ядро опирается на многочисленные BIOS-костыли

"Многочисленные" - это поддержка не-ATA дисков и переключение в графический режим при запуске, что ли? 2 - это "много", что ли?

Я имею в виду не только эти явные опоры,- про них все знают.
И даже не разную мелочевку вроде E820, про которую, похоже, уже даже автор запамятовал.
PCI BIOS, init_mtrr в memory.inc и еще кое-что, сейчас навскидку всего не перечислить. Но опять-таки, это явно вызываемые ядром элементы BIOS-сервиса. При большом желании их все можно вычислить и профиксить. К тому же, открытый код CoreBoot-аналогов этих функций только пойдет ядру на пользу.

А вот чего нельзя профиксить на 100% на всех платформах - неявные заморочки, которые обязательно выползут при замене BIOS на CoreBoot всвязи со спецификой оборудования и нетождественной инициализацией холодной системы. Только на хорошо документированном железе есть шанс когда-нибудь вычесать всех багов.

Ув. SII привел лишь один частный пример. Общая же картина такова:

- в принципе, на связке CoreBoot + KOS можно построить мощную встраиваемую систему с уникальными характеристками.
- но сложно.
- и работать она будет не на всех аппаратных платформах.
- гораздо меньшими усилиями можно добиться практически тех же результатов на базе BIOS - для любых чипсетов и материнок.
- почти теми же усилиями можно построить ещё более крутую ROM-KOS без BIOS и CoreBoot, с "холодной" инициализацией одной, отдельно взятой платформы.

Большим плюсом этих двух альтернативных решений была бы их независимость от "чужой" GPL-лицензии...

Author:  diamond [ Fri May 21, 2010 5:04 pm ]
Post subject:  Re: KolibriOS в BIOS

art_zh wrote:
И даже не разную мелочевку вроде E820, про которую, похоже, уже даже автор запамятовал.
PCI BIOS, init_mtrr в memory.inc и еще кое-что, сейчас навскидку всего не перечислить.

PCI BIOS по существу используется только для определения номера последней PCI-шины (и, естественно, для инициализации (в процессе POST) всего хозяйства PCI-мостов), но не в процессе работы. Для init_mtrr прямо в транке есть запасной вариант на случай, когда BIOS не инициализировала регистры MTRR. Аналогичный обход есть и вместо E820 (хотя там он несколько неэквивалентен, сканируя только до первой возможной "дыры"). Фразу "всего не перечислить" считаю отговоркой.
Собственно, наличие кучи действий BIOSа в SMM посреди работы основной системы есть неоспоримый факт. Меня возмущает, что вышеупомянутые вещи приписываются к "костылям" основного ядра, хотя это совершенно не так (за исключением, естественно, не-ATAшного int 13h и, возможно, ненативного int 10h). А то почитаешь разные темы на форуме - и складывается ощущение, что ядро просто целиком состоит из самых разнообразных костылей.

Author:  XVilka [ Fri May 21, 2010 10:47 pm ]
Post subject:  Re: KolibriOS в BIOS

Quote:
- почти теми же усилиями можно построить ещё более крутую ROM-KOS без BIOS и CoreBoot, с "холодной" инициализацией одной, отдельно взятой платформы.


Мне почему-то кажется что многих этот вариант более заинтересует чем просто BIOS+KOS :)
Кстати libpayload из coreboot - BSD-лицензирован.

Но как упоминалось AMD по-максимуму старается открывать работу на низком уровне и присылает патчи для coreboot.
Intel предоставляет достаточно хорошую документацию (правда часто с ошибками, но лучше чем ничего).

Самая большая проблема с NVIDIA железом.

Author:  Ghost [ Mon May 24, 2010 7:56 pm ]
Post subject:  Re: KolibriOS в BIOS

Зря вы BIOS к костылям относите, как будто ACPI не костыль ))) это такой костыль что система превращается в марионетку. ИМХО сделать систему не зависимую от вспомогательных сервисов утопично (ну конечно если вы не собираетесь изобретать новую платформу).

Author:  XVilka [ Mon Jun 28, 2010 1:25 am ]
Post subject:  Re: KolibriOS в BIOS

Вот еще полезная для изучения работы BIOS и работы без BIOS штука - http://git.linuxtogo.org/?p=kevin/seabios.git;a=summary

То есть open-source реализация стандартных сервисов BIOS

Author:  XVilka [ Wed Apr 27, 2011 4:44 am ]
Post subject:  Re: KolibriOS в BIOS

Вот инструкция по загрузке kolibri с coreboot (Писалось с учетом linux-системы)
Также ссылка на готовый образ для ленивых:

1. Скачать и собрать coreboot:
Code:
svn co svn://coreboot.org/coreboot/trunk coreboot
cd coreboot
make menuconfig

В меню выбираем Target -> QEMU, payload -> SeaBIOS (master) (пока только SeaBIOS)
меняем что хотим, и собираем командой
Code:
make

1a. Как вариант, возможно собрать SeaBIOS отдельно:
Code:
git clone git://git.seabios.org/seabios.git seabios
cd seabios
make menuconfig
make

только в menuconfig надо выбрать опцию build for coreboot
Потом скопируем файл out/bios.bin.elf в каталог, где собираем coreboot, и в опции Payload в make menuconfig выбираем elf - указываем путь к файл bios.bin.elf

Вот что у меня получилось на выходе (я собирал образ для 4мбитной флешки)
Code:
coreboot.rom: 4096 kB, bootblocksize 1504, romsize 4194304, offset 0x0
Alignment: 64 bytes

Name                           Offset     Type         Size
cmos_layout.bin                0x0        unknown      1159
fallback/romstage              0x4c0      stage        12720
fallback/coreboot_ram          0x36c0     stage        27797
fallback/payload               0xa3c0     payload      40596
(empty)                        0x142c0    null         4110104

То есть есть место для KolibrioOS :) Даже более чем достаточно!

2. Собираем QEMU, желательно последний, из гита
3. Загружаем образ видеобиоса: http://www.coreboot.org/images/0/0d/Vgabios-cirrus.zip
4. В каталог, где будем работать копируем файлы:
а) coreboot.rom из coreboot/build и переименовываем в bios.bin
б) vgabios-cirrus.bin из архива Vgabios-cirrus.zip
в) образ колибри (я проверял на исо, флоп тоже работает)
5. Запускаем:
Code:
qemu -L . -cdrom kolibri.iso -serial stdio

Опция -L указывает на каталог с нашими биосами и образом колибри.
6. PROFIT!

7. Также возможно включить образ колибри в образ биоса:
Скачиваем kolibri.img
Упаковываем:
Code:
lzma -zc kolibri.img > kolibri.img.lzma
./build/cbfstool coreboot.rom add kolibri.img.lzma floppyimg/Kolibri.lzma raw

cbfstool находиться в каталоге coreboot/build
Проверим результат командой:
Code:
./build/cbfstool coreboot.rom print

А потом так же переименовываем coreboot.rom в bios.bin и используем для загрузки

Точно так же возможно собрать все и для работы на реальном железе и прошить с помощью утилиты flashrom (http://www.flashrom.org) - справедливо только для поддерживаемого coreboot-ом железа, а также на свой страх и риск!

Готовые образы и конфиги, по которым собрано, прикрепляю - только добавить образ колибри и вуаля!
Дополнительно почитать про сборку можно здесь:

http://www.coreboot.org/Build_HOWTO
http://www.coreboot.org/SeaBIOS


Пишем отзывы, пожелания :)

Attachments:
File comment: coreboot image + config files
kolibri-coreboot.tar.gz [102.47 KiB]
Downloaded 310 times

Author:  XVilka [ Wed Apr 27, 2011 7:06 am ]
Post subject:  Re: KolibriOS в BIOS

Щас ковыряюсь и пробую выкинуть 16-битный код и загрузчик из ядра, а также пробую сделать из него elf, чтобы из coreboot грузиться напрямую.

Author:  yogev_ezra [ Wed Apr 27, 2011 10:43 am ]
Post subject:  Re: KolibriOS в BIOS

XVilka wrote:
Вот инструкция по загрузке kolibri с coreboot (Писалось с учетом linux-системы)
Точно так же возможно собрать все и для работы на реальном железе и прошить с помощью утилиты flashrom (http://www.flashrom.org) - справедливо только для поддерживаемого coreboot-ом железа, а также на свой страх и риск!
Пишем отзывы, пожелания :)

Круто 8) А что нужно сделать, чтобы eBox стал поддерживаемым coreboot-ом железом? :wink:

Author:  XVilka [ Wed Apr 27, 2011 11:00 am ]
Post subject:  Re: KolibriOS в BIOS

Найти человека, который будет готов портировать :)
И, желательно документы Memory Reference Code - как инициализировать память для Vortex

Author:  yogev_ezra [ Wed Apr 27, 2011 11:06 am ]
Post subject:  Re: KolibriOS в BIOS

XVilka wrote:
Найти человека, который будет готов портировать :)
И, желательно документы Memory Reference Code - как инициализировать память для Vortex

А ты не готов? :wink: Могу подарить железку для опытов 8)
С документами сложнее, как ты уже понял. Но есть документ на процессор RDC, который имеет много общего.

Page 2 of 7 All times are UTC+03:00
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/