Board.KolibriOS.org

Official KolibriOS board
It is currently Wed Dec 11, 2019 8:01 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 102 posts ]  Go to page Previous 1 2 3 4 57 Next
Author Message
 Post subject: Re: Opera в BIOSе
PostPosted: Sat May 15, 2010 4:09 pm 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 796
Вот теперь мы вместе с coreboot более или менее официально: Possible future payloads


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Thu May 20, 2010 12:33 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1358
XVilka
Ещё раз: CoreBoot+Колибри как конечная цель - это замечательно.

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

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

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

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


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Thu May 20, 2010 1:48 pm 
Offline

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


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Thu May 20, 2010 1:57 pm 
Вот потому я люблю лицензию BSD - в любой момент можно закрыть и продолжать разработку. Старые версии, конечно будут доступны всем, но новые никто не сможет потребовать открыть.


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Fri May 21, 2010 1:49 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
art_zh wrote:
сейчас ядро опирается на многочисленные BIOS-костыли

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

_________________
Ушёл к умным, знающим и культурным людям.


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Fri May 21, 2010 4:24 pm 
Offline
Kernel Developer
User avatar

Joined: Fri Aug 14, 2009 1:46 am
Posts: 1358
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-лицензии...

_________________
Узкий специалист подобен флюсу: полнота его - односторонняя.
Козьма Прутков


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Fri May 21, 2010 5:04 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Nov 28, 2005 8:00 pm
Posts: 1601
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). А то почитаешь разные темы на форуме - и складывается ощущение, что ядро просто целиком состоит из самых разнообразных костылей.

_________________
Ушёл к умным, знающим и культурным людям.


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Fri May 21, 2010 10:47 pm 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 796
Quote:
- почти теми же усилиями можно построить ещё более крутую ROM-KOS без BIOS и CoreBoot, с "холодной" инициализацией одной, отдельно взятой платформы.


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

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

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


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Mon May 24, 2010 7:56 pm 
Offline
Kernel Developer
User avatar

Joined: Mon Mar 20, 2006 10:44 am
Posts: 557
Зря вы BIOS к костылям относите, как будто ACPI не костыль ))) это такой костыль что система превращается в марионетку. ИМХО сделать систему не зависимую от вспомогательных сервисов утопично (ну конечно если вы не собираетесь изобретать новую платформу).


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Mon Jun 28, 2010 1:25 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 796
Вот еще полезная для изучения работы BIOS и работы без BIOS штука - http://git.linuxtogo.org/?p=kevin/seabios.git;a=summary

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


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Wed Apr 27, 2011 4:44 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 796
Вот инструкция по загрузке 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
Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Wed Apr 27, 2011 7:06 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 796
Щас ковыряюсь и пробую выкинуть 16-битный код и загрузчик из ядра, а также пробую сделать из него elf, чтобы из coreboot грузиться напрямую.


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Wed Apr 27, 2011 10:43 am 
Offline
Public Relations
User avatar

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

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


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Wed Apr 27, 2011 11:00 am 
Offline
User avatar

Joined: Tue Aug 25, 2009 4:45 pm
Posts: 796
Найти человека, который будет готов портировать :)
И, желательно документы Memory Reference Code - как инициализировать память для Vortex


Top
   
 Post subject: Re: KolibriOS в BIOS
PostPosted: Wed Apr 27, 2011 11:06 am 
Offline
Public Relations
User avatar

Joined: Mon Jun 07, 2010 12:01 pm
Posts: 1879
XVilka wrote:
Найти человека, который будет готов портировать :)
И, желательно документы Memory Reference Code - как инициализировать память для Vortex

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


Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 102 posts ]  Go to page Previous 1 2 3 4 57 Next

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 0 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited