Board.KolibriOS.org

Официальный форум KolibriOS
Текущее время: Чт окт 19, 2017 2:02 pm

Часовой пояс: UTC+03:00




Начать новую тему  Ответить на тему  [ 21 сообщение ]  На страницу 1 2 След.
Автор Сообщение
 Заголовок сообщения: mnt -> img, сборка проекта
СообщениеДобавлено: Чт авг 15, 2013 12:54 am 
Не в сети

Зарегистрирован: Чт авг 15, 2013 12:25 am
Сообщения: 5
Доброго времени суток!
В дистрибутиве есть файл kolibri.img, который можно запустить, к примеру, посредством VirtualBox. В репозитории сценарии build.bat и makefile строят kernel.mnt и ещё несколько файлов в папке bin:
...kolibrios.org/kernel/trunk/bin> ll
итого 172
-rw-r--r-- 1 user users 512 авг 6 00:39 boot_fat12.bin
drwxr-xr-x 2 user users 4096 авг 6 00:39 drivers
-rw-r--r-- 1 user users 167320 авг 6 00:39 kernel.mnt

Мой вопрос такой: как преобразовать полученное после построения в kolibri.img? Или эквивалентный вопрос: можно ли запустить содержимое папки bin без дополнительных преобразований, и если да, то как? Если совсем обобщенно, как пройти путь от сборки проекта до его запуска? Заранее благодарю.


Последний раз редактировалось cadabr Вс авг 18, 2013 1:06 am, всего редактировалось 1 раз.

Вернуться к началу
 Заголовок сообщения: Re: mnt -> img
СообщениеДобавлено: Чт авг 15, 2013 2:09 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
kernel.mnt - ядро
*.obj - драйверы и библиотеки.
kolibri.img - образ IMG дискеты

Linux - mount
Windows - ImDisk Virtual Disk Driver

Под самой Колибри есть утилита RDSAVE, которая записывает содержимое текущего рамдиска куда укажет пользователь.

Сервер автосборок собирает из исходников готовые образы, поднять такое можно у себя на Linux (как поднять не скажу, так как не задавался такой задачей), но гораздо проще закинуть ядро и драйвера в готовый IMG образ дискеты.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img
СообщениеДобавлено: Чт авг 15, 2013 11:19 pm 
Не в сети

Зарегистрирован: Чт авг 15, 2013 12:25 am
Сообщения: 5
Mario_r4 писал(а):
...
Linux - mount
Windows - ImDisk Virtual Disk Driver

На сколько я знаю, эти утилиты получают на вход уже готовый *.img и преобразуют его в виртуальное устройство или что-то ещё. Или это не так?


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img
СообщениеДобавлено: Пт авг 16, 2013 1:07 am 
Не в сети
Public Relations
Аватара пользователя

Зарегистрирован: Пн июн 07, 2010 12:01 pm
Сообщения: 1879
cadabr писал(а):
На сколько я знаю, эти утилиты получают на вход уже готовый *.img и преобразуют его в виртуальное устройство или что-то ещё. Или это не так?
Если вопрос был "Как вручную создать kolibri.img из всех файлов?", то в Windows - WinImage (она платная, но можно скачать Shareware на 30 дней), а в Linux:
Код:
dd if=/dev/zero of=build/kolibri.img count=2880 bs=512 2>&1
dd if=build/boot_fat12.bin of=build/kolibri.img count=1 bs=512 conv=notrunc 2>&1
и далее, по скрипту, mmd и mcopy
Но так как обычно за один раз меняется только один исполняемый файл (например, ядро kernel.mnt), то проще всего открыть существующий файл kolibri.img с помощью WinImage, и просто заменить один файл и сохранить. Я так делаю - очень удобно.


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img
СообщениеДобавлено: Пт авг 16, 2013 1:47 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
Зачем создавать новый, когда можно просто так взять и удалить в старом все файлы, и сохранить. Будет пустой файл.
Не рекомендую пользоваться WinImage по двум причинам:
1) платный, а воровать все же нехорошо.
2) на N-ное открытие/сохранение IMG образа он создает в его файловой системе необъяснимые "глюки".

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img
СообщениеДобавлено: Пт авг 16, 2013 11:47 pm 
Не в сети

Зарегистрирован: Вс фев 18, 2007 8:34 pm
Сообщения: 158
cadabr писал(а):
На сколько я знаю, эти утилиты получают на вход уже готовый *.img и преобразуют его в виртуальное устройство или что-то ещё. Или это не так?
Да, но пустой отформатированный образ получить значительно проще. Потом ты его монтируешь, выполняешь файловые операции, после чего размонтируешь. Есть утилиты, которые позволяют напрямую (без монтирования) выполнять файловые операции внутри образа, например, mtools. Я помимо спец. утилит всегда использовал fasm для формирования образа с файлами и каталогами, причем исходные файлы могли находиться в разных местах, т.е. их не нужно предварительно собирать в какой-то определенной папке. Примеры использования можно поискать на forum.osdev.org по ключику mkfloppy. Я пока прикрыл эти исходники, т.к. в них жестко закодирована обычная разметка ФС для флоппиков 1,44 мб и используется старый стиль описания структуры каталогов. Могу опубликовать на время старые исходники, но не хотелось бы, т.к. сейчас я четко вижу их несовершенство. Новый стиль описания структуры каталогов значительно удобнее и нагляднее (посмотреть образец можно здесь), но работа над новой версией еще не завершена. Если у кого-то есть желание потом потестить новую версию, я могу оставлять ссылки здесь.


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img
СообщениеДобавлено: Вс авг 18, 2013 1:05 am 
Не в сети

Зарегистрирован: Чт авг 15, 2013 12:25 am
Сообщения: 5
yogev_ezra писал(а):
и далее, по скрипту, mmd и mcopy
Спасибо, чтение этого лога проясняет. Но оказалось что, сборка проекта в локальной копии проекта без дополнительных усилий затруднительна. В логе видно, что файлы, копируемые в образ, разбросаны по многим директориям.
Phantom-84 писал(а):
причем исходные файлы могли находиться в разных местах, т.е. их не нужно предварительно собирать в какой-то определенной папке. Примеры использования можно поискать на forum.osdev.org по ключику mkfloppy.
Обязательно изучу этот форум, но нельзя ли от вас услышать немного вводной информации по этому поводу?
Таким образом тема ветки плавно переходит к вопросу сборки проекта. Я правильно понял, что сейчас в репозитории нет средства для сборки такой же, какую выполняет сборочная машина?


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img
СообщениеДобавлено: Вс авг 18, 2013 1:39 am 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
cadabr писал(а):
Таким образом тема ветки плавно переходит к вопросу сборки проекта. Я правильно понял, что сейчас в репозитории нет средства для сборки такой же, какую выполняет сборочная машина?

Нет, поскольку не возникало такой необходимости. Разработчики обычно работают с одной программой в единицу времени. Максимум еще могут править код библиотеки. Соответственно забросить изменения в образ не составляет проблемы. Обычные же пользователи пользуются готовой бинарной сборкой. Вам хочется "странного", потому вы будете вынуждены сами решать этот вопрос.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img
СообщениеДобавлено: Вс авг 18, 2013 8:07 am 
Не в сети

Зарегистрирован: Вс фев 18, 2007 8:34 pm
Сообщения: 158
cadabr писал(а):
Спасибо, чтение этого лога проясняет. Но оказалось что, сборка проекта в локальной копии проекта без дополнительных усилий затруднительна. В логе видно, что файлы, копируемые в образ, разбросаны по многим директориям.
А как вы хотели? В образ входит множество файлов, которые логически распределены по разным папкам, причем как перед сборкой образа, так и после, т.е. внутри него.

Цитата:
Обязательно изучу этот форум, но нельзя ли от вас услышать немного вводной информации по этому поводу?
Можно. Вместо сборочного скрипта используется исходник на fasm'е, описывающий размещение файлов и папок внутри образа и то, откуда можно взять исходные файлы.

Edited.
Цитата:
В репозитории сценарии build.bat и makefile строят kernel.mnt и ещё несколько файлов в папке bin
Ммм... Из ядра и драйверов вы не сможете получить нормально работающую систему. Определитесь сначала, нужен ли вам загрузочный образ с ядром или же с полноценной системой.


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img
СообщениеДобавлено: Вс авг 18, 2013 7:28 pm 
Не в сети

Зарегистрирован: Чт авг 15, 2013 12:25 am
Сообщения: 5
Phantom-84 писал(а):
А как вы хотели? В образ входит множество файлов, которые логически распределены по разным папкам, причем как перед сборкой образа, так и после, т.е. внутри него.
Судя по логу, сборочный сценарий выполняется в окружении структуры файлов иной, чем в репозитории. Взять примеру (далее выдержки из логов сборки)
Код:
mcopy -moi build/kolibri.img @clip ::@CLIP
такого файла не нашёл в репозитории.
Код:
mcopy -moi build/kolibri.img @menu ::@MENU
есть только в programs/bin/
Код:
mcopy -moi build/kolibri.img File\ Managers/icons.bmp ::File\ Managers/ICONS.BMP
директория File Managers есть только в data/rus (ну или eng и тд) но файл icons.bmp лежит совершенно в другом месте. В какой директории не запускай указанные три команды, они корректно не выполнятся.
Я это всё к чему: обычно когда скачиваю какой-нибудь проект, одним из первых действий всегда знакомлюсь со сценариями сборки, и только потом приступаю к глубокому изучению кода, вдруг где-то что-то захочется "пошевелить" чтобы посмотреть, как это отразится в рантайме, тут уже нужно уметь осмысленно запускать сборку. С Колибри оказалось не так. Я так понял, что скрипт существует, но он не в паблике.
Цитата:
Определитесь сначала, нужен ли вам загрузочный образ с ядром или же с полноценной системой.
Тут я в затруднении ввиду того, что новичок, и ещё не освоился с проектом. Как протестировать только что внесённые изменения в ядро? Перестроить kolibri.mnt и обновить внутри kolibri.img? Значит целиком kolibri.img собирается только на сервере?


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img
СообщениеДобавлено: Вс авг 18, 2013 8:35 pm 
Не в сети
Public Relations
Аватара пользователя

Зарегистрирован: Пн июн 07, 2010 12:01 pm
Сообщения: 1879
cadabr писал(а):
Судя по логу, сборочный сценарий выполняется в окружении структуры файлов иной, чем в репозитории. Взять примеру (далее выдержки из логов сборки)
Код:
mcopy -moi build/kolibri.img @clip ::@CLIP
такого файла не нашёл в репозитории.
Физически репозиторий SVN и скрипт автосборки находятся на одном и том же сервере в разных директориях. Поэтому скрипт автосборки имеет доступ ко всем файлам репозитория. @CLIP находится в репозитории, он берётся из пути, указанного в Makefile (который тоже находится в репозитории и собственно, содержит почти весь скрипт автосборки).
Код:
PROGS:=$(REPOSITORY)/programs
...
FASM_PROGRAMS:=\
 @clip:@CLIP:$(PROGS)/system/clip/trunk/@clip.ASM \
итого, /programs/system/clip/trunk/@clip.ASM
cadabr писал(а):
Я это всё к чему: обычно когда скачиваю какой-нибудь проект, одним из первых действий всегда знакомлюсь со сценариями сборки, и только потом приступаю к глубокому изучению кода, вдруг где-то что-то захочется "пошевелить" чтобы посмотреть, как это отразится в рантайме, тут уже нужно уметь осмысленно запускать сборку. С Колибри оказалось не так. Я так понял, что скрипт существует, но он не в паблике.
Ну почему же? Makefile (линк на который я дал выше) и почти все другие файлы автосборки находятся в репозитории в директории /data.
cadabr писал(а):
Как протестировать только что внесённые изменения в ядро? Перестроить kolibri.mnt и обновить внутри kolibri.img?
Да, так проще всего.
cadabr писал(а):
Значит целиком kolibri.img собирается только на сервере?
На сегодняшний момент, да, но не потому, что это невозможно, а потому, что это никому не нужно.
Если Вам нужно, то Вы можете воспользоваться скриптами из директории /data, слегка изменив их.


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img
СообщениеДобавлено: Вс авг 18, 2013 9:27 pm 
Не в сети

Зарегистрирован: Вс фев 18, 2007 8:34 pm
Сообщения: 158
cadabr писал(а):
Судя по логу, сборочный сценарий выполняется в окружении структуры файлов иной, чем в репозитории. Взять примеру (далее выдержки из логов сборки)
Код:
mcopy -moi build/kolibri.img @clip ::@CLIP
такого файла не нашёл в репозитории.
Код:
mcopy -moi build/kolibri.img @menu ::@MENU
есть только в programs/bin/
Код:
mcopy -moi build/kolibri.img File\ Managers/icons.bmp ::File\ Managers/ICONS.BMP
директория File Managers есть только в data/rus (ну или eng и тд) но файл icons.bmp лежит совершенно в другом месте. В какой директории не запускай указанные три команды, они корректно не выполнятся.
Я это всё к чему: обычно когда скачиваю какой-нибудь проект, одним из первых действий всегда знакомлюсь со сценариями сборки, и только потом приступаю к глубокому изучению кода, вдруг где-то что-то захочется "пошевелить" чтобы посмотреть, как это отразится в рантайме, тут уже нужно уметь осмысленно запускать сборку. С Колибри оказалось не так. Я так понял, что скрипт существует, но он не в паблике.
Перед сборкой образа выполняется предкомпиляция всех (или по крайней мере большинства) исполняемых файлов и сбор всех (или по крайней мере большинства) файлов данных в отдельной папке. Тебе посоветовали обеспокоиться подготовкой соответствующего скрипта самостоятельно (ну, или можешь попытаться попросить уже готовый). Сборка проекта (программы или комплекта программ) и сборка всего, что включается в дистр. образ ОС, с последующей сборкой самого образа - это немного разные вещи. Обычно в последнем случае значительно проще подключать нужные компоненты и отключать ненужные. Можешь попробовать собрать свой дистрибутив Колибри.

Цитата:
Тут я в затруднении ввиду того, что новичок, и ещё не освоился с проектом. Как протестировать только что внесённые изменения в ядро? Перестроить kolibri.mnt и обновить внутри kolibri.img? Значит целиком kolibri.img собирается только на сервере?
Зависит от того, что именно ты собираешься тестировать в ядре. Тебе точно не нужен полный дистрибутив. А часто вообще достаточно минимального комплекта. Помимо самого ядра и всего того, что ему нужно для нормальной работы, это обычно несколько утилит и несколько тестовых программ.


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img, сборка проекта
СообщениеДобавлено: Вс авг 18, 2013 11:31 pm 
Не в сети
Kernel Developer

Зарегистрирован: Вс фев 10, 2013 12:37 pm
Сообщения: 2329
@clip вообще нужно закопать уже, это попытка реализации буфера обмена исключительно для текстовой информации дурным методом. Хромал и полноценно не работал, потому я его убрал из автосборки. Реализация функции буфера обмена в ядре полностью снимет вопрос, но у меня в сутках только 25 часов, а еще летом я строю дом.

_________________
Всем чмоки в этом проекте! Засуньте эти 11 лет себе в жопу!


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img
СообщениеДобавлено: Пн авг 19, 2013 11:10 pm 
Не в сети

Зарегистрирован: Чт авг 15, 2013 12:25 am
Сообщения: 5
yogev_ezra писал(а):
Ну почему же? Makefile (линк на который я дал выше) и почти все другие файлы автосборки находятся в репозитории в директории /data.
Прояснилось! Большое спасибо!


Вернуться к началу
 Заголовок сообщения: Re: mnt -> img, сборка проекта
СообщениеДобавлено: Вт авг 27, 2013 10:08 pm 
Не в сети

Зарегистрирован: Вс окт 02, 2011 4:48 pm
Сообщения: 43
yogev_ezra писал(а):
то проще всего открыть существующий файл kolibri.img с помощью WinImage, и просто заменить один файл и сохранить. Я так делаю - очень удобно.

Mario_r4 писал(а):
Не рекомендую пользоваться WinImage

Virtual Floppy Drive 2.1 - по функциональности похож на ImDisk Virtual Disk Driver.
Монтирует имеющийся .img фаил как виртуальную дискетту или создает такой.
Спойлер: Показать
Инструкция:
Скачать, рапаковать, в папке запустить "vfdwin.exe".
В открывшемся окне в вкладке Driver нажать на Start.
Вложение:
111.jpg
111.jpg [ 32.2 КБ | 2537 просмотров ]

В вкладке Driver1 (или Driver0) нажать на Change и дать название дискетте
Вложение:
222.jpg
222.jpg [ 36.38 КБ | 2537 просмотров ]

Нажав на Open/Create... Нужно выбрать где будет лежать .img фаил и дать ему название или выбрать уже существующий
.img фаил. Или ничего не выбрав сначала работать как с RAM диком а потом сохранить.
Вложение:
333.jpg
333.jpg [ 45.73 КБ | 2537 просмотров ]

Дискетта открывается также и тамже где и все остальные диски


Вернуться к началу
Показать сообщения за:  Поле сортировки  
Начать новую тему  Ответить на тему  [ 21 сообщение ]  На страницу 1 2 След.

Часовой пояс: UTC+03:00


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и 1 гость


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Limited
Русская поддержка phpBB