Кросс-компиляция ядер Linux и отладка с помощью VMware - PullRequest
2 голосов
/ 16 июня 2009

Я рассматриваю возможность разработки ядра Linux и драйвера устройства для виртуальной машины vmware для тестирования (Ubuntu 9.04 в качестве гостя на сервере vmware 2.0) во время компиляции на хосте Ubuntu 8.04.

Я не хочу испытывать снижение производительности при компиляции под виртуальной машиной.

Я знаю, что ядро, очевидно, не связывается ни с чем вне себя, поэтому не должно быть никаких проблем в этом отношении, но

  1. Есть ли какие-то особые ошибки, на которые мне нужно обращать внимание при этом?
  2. Помимо того, что на компьютере все еще работает работающий компьютер при сбоях ядра, есть ли другие преимущества для этой настройки?
  3. Есть ли какие-либо руководства по использованию такого рода настройки?

Редактировать

Я видел множество ссылок на удаленную отладку в VMware через Workstation 6.0 с использованием GDB на хосте. Кто-нибудь знает, работает ли это с любой из бесплатных версий VMWare, таких как Server 2.0.

Ответы [ 2 ]

2 голосов
/ 16 июня 2009

Я не уверен насчет Ubuntu. Учитывая, что вы не выполняете настоящую кросс-компиляцию (например, x86-> arm), я бы подумал об использовании пакета make-kpkg. Это должно привести к установке .deb архив с ядром для вашей системы. это будет работать для меня на Debian, это может быть для вас на Ubuntu.

подробнее о make-kpkg: http://www.debianhelp.co.uk/kernel2.6.htm

  1. Я не знаю ни о каких ошибках. Но в основном это зависит от того, какая часть ядра вы работаем с. Чем больше специальных HW / драйверов вам нужно, тем больше вероятность, что виртуальная машина вам не подойдет.

  2. вероятно, быстрее загружается, и моя любимая возможность сделать снимок экрана (cut'n'paste) сообщения о панике.

  3. попробуйте просмотреть сообщества vmware. эта тема выглядит очень многообещающе, хотя и требует тема для MacOS: http://communities.vmware.com/thread/185781

0 голосов
/ 16 июня 2009

Компиляция, редактирование, компиляция в любом случае довольно быстрая, вы не перекомпилируете все ядро ​​каждый раз, когда модифицируете драйвер.

Перед сбоем у вас может возникнуть тупик, неправильное использование ресурса, которое приводит к неустранимому модулю, утечке памяти и т. Д. Все виды вещей, которые требуют перезагрузки, даже если ваша машина не аварийно завершилась, так что да, это хорошая идея.

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

...