Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Написать скрипт для создания патча для qemu #41

Closed
AndrewGavril opened this issue Jul 6, 2023 · 9 comments · Fixed by #48
Closed

Написать скрипт для создания патча для qemu #41

AndrewGavril opened this issue Jul 6, 2023 · 9 comments · Fixed by #48
Assignees
Labels
automation qemu Task related to qemu yocto Task related to yocto

Comments

@AndrewGavril
Copy link
Collaborator

No description provided.

@AndrewGavril
Copy link
Collaborator Author

AndrewGavril commented Jul 10, 2023

Скрипт должен:

  1. Определить директорию, в которой собирается запускаемая QEMU
  2. Сгенерировать .patch файл для изменений в данной директории (только для изменений в исходном коде qemu)
  3. Добавить патч в сборку qemu в yocto

Результат:

  1. скрипт для генерации патча в /scripts
  2. Изменение prepare_yocto_and_build.sh для применения изменений

@mirrin00 mirrin00 added qemu Task related to qemu yocto Task related to yocto labels Jul 10, 2023
@mirrin00
Copy link
Collaborator

Стоит обратить внимание на утилиту devtool в yocto. С её помощью можно модифицировать код ядра "на лету" (ссылка на гайд от ycoto). Кажется, что можно использовать devtool для модификации qemu. Нужно проверить это, и если это возможно, то сделать инструкцию по использованию

@mxkrsv
Copy link
Collaborator

mxkrsv commented Jul 12, 2023

Определить директорию, в которой собирается запускаемая QEMU
Сгенерировать .patch файл для изменений в данной директории

Если речь про (на текущий момент) build_vm_image/poky/build/tmp/work/x86_64-linux/qemu-native/7.1.0-r0/qemu-7.1.0, то я не нашел в дереве ничего, с чем можно было бы сравнивать ее содержимое для получения диффа, так что, подразумевая правдивость отсутствия эталона, возможно, лучше не редактировать исходники напрямую в директории, в которой собирается запускаемая QEMU.

Все-таки смотреть на devtool?

@mxkrsv
Copy link
Collaborator

mxkrsv commented Jul 13, 2023

Похоже, после сборки в докере все дерево build/ намертво привязывается к абсолютному пути /home/user/project/build_vm_image/.... На хосте он, понятное дело, не существует, так что devtool не запускается.

Остается вариант сборки без докера.

@AndrewGavril
Copy link
Collaborator Author

Что мешает сделать вызов скрипта через docker exec?

@AndrewGavril
Copy link
Collaborator Author

Определить директорию, в которой собирается запускаемая QEMU
Сгенерировать .patch файл для изменений в данной директории

Если речь про (на текущий момент) build_vm_image/poky/build/tmp/work/x86_64-linux/qemu-native/7.1.0-r0/qemu-7.1.0, то я не нашел в дереве ничего, с чем можно было бы сравнивать ее содержимое для получения диффа, так что, подразумевая правдивость отсутствия эталона, возможно, лучше не редактировать исходники напрямую в директории, в которой собирается запускаемая QEMU.

Все-таки смотреть на devtool?

А вы перед поиском изменения вносили?
Если нет, то они и не будут найдены, так как сейчас никакие изменения не вносятся.

@mxkrsv
Copy link
Collaborator

mxkrsv commented Jul 13, 2023

Если нет, то они и не будут найдены

А что должно их искать?

@AndrewGavril
Copy link
Collaborator Author

Если нет, то они и не будут найдены

А что должно их искать?

Смотрите: наша задача разработать виртуализацию NTB в qemu, соответственно при разработке постоянно нужно вносить в qemu изменения. Для того чтобы можно было быстро и удобно внести изменения в qemu нужен скрипт.

devtool это делать умеет

@AndrewGavril
Copy link
Collaborator Author

AndrewGavril commented Jul 14, 2023

Дополнительные требования:
-- вся работа с исходными файлами должна работать из docker
-- начало внесение изменений и конец внесения изменений должны быть в разных скриптах
-- так как у нас 2 основных сценария использования, то нужно предусмотреть внесение изменений в существующий исходный код и добавление в сборку qemu нового кода (@mirrin00 )

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
automation qemu Task related to qemu yocto Task related to yocto
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants