2017-02-02 11 views
1

Я новичок в freebsd. Я установил freebsd на VMware. Я хочу написать первый модуль ядра freebsd. Я нахожу эту ссылку: How to write a FreeBSD Kernel Moduleмодуль ядра freebsd - команда «make»: не удается найти исходное дерево ядра. Установите SYSDIR для переопределения

Но в шаге 3, после сделать команды я получаю: не в состоянии найти дерево исходных текстов ядра. Установите SYSDIR для переопределения.

Что такое вывод make command? Что мне теперь делать?

+1

Вы пробовали ** google ** это сообщение об ошибке? У вас установлены источники ядра на вашем компьютере (обычно под '/ usr/src')? – Tsyvarev

+0

Да, я ищу, Но никакого успеха! Как мне это сделать? ** Команда sysinstall ** не найдена! – user7194905

+0

Итак, ваша ** актуальная проблема ** - это «как установить исходные коды ядра», не так ли? Тогда почему вы спрашиваете о создании модуля, если вы знаете, что это не работает без исходных текстов ядра? – Tsyvarev

ответ

0

Вообще говоря, там, где вы хотите начать, следует проверить источник FreeBSD. Как это:

svnlite со http://svn.freebsd.org/base/head

Это создаст "голова" каталог. Затем: переместите каталог с исходным кодом вашего модуля в head/sys/dev /. Go do head/sys/modules /, используйте 'pty' в качестве примера (cp -r pty yourmodule), измените head/sys/modules/yourmodule/Makefile (это самоочевидно, просто измените имя вывода и имена исходных файлов), изменить head/sys/modules/Makefile для добавления «yourmodule» (опять же, просто найдите «pty» там, скопируйте, вставьте, переименуйте). Voila - вы подключили свой модуль ядра к сборке наилучшим образом; теперь вы можете использовать «make buildkernel installkernel», kgdb (8) будет знать, где источники для вашего кода, у вас есть ИНВАРИАНТЫ и т. д.

0

Перед созданием/тестированием собственного модуля я бы предложил сначала попытаться скомпилировать generic kernel, следующее пользовательское ядро ​​и только после успешного выполнения всего этого попробуйте начать тестирование ваших модулей. Идея этого заключается в том, чтобы ознакомиться с тем, как работает процесс сборки freebsd, и помочь вам быстрее реализовать свои модули.

Это основные "быстрые" шаги (skiping mergemaster) для выполнения полной очистки обновление:

  1. кд/USR/SRC
  2. svnlite со СВН: //svn.freebsd.org/base/стабильный/11/USR/SRC
  3. делают компиляция системы (если есть несколько ядер, вы можете попробовать сделать -j40 компиляция системы)
  4. делают ядро ​​(или сделать -j40 ядро)
  5. делают installworld (пропустить Mergemaster -p)
  6. yes | сделать удалить старый
  7. ср -R/и т.д. /etc.old & & кд/USR/SRC & распределение DESTDIR & делают =/
  8. кд /etc.old & & ср группа PASSWD master.passwd/и т.д. & & pwd_mkdb/etc/master.passwd
  9. reboot
  10. yes | сделать Delete-старые-ЛИЭС

После всего этого, вы можете начать настраивать вас строит либо редактирования /etc/src.conf файла и /etc/make.conf в том, где вы можете определить компилировать только ваш модуль и, следовательно, сделать процесс сборки быстрее ниже и пример /etc/make.conf, который будет только компилировать zfs и opensolaris модули, помимо использования собственного ядра /usr/src/sys/amd64/conf/TEQUILA:

MODULES_OVERRIDE=zfs opensolaris 
KERNCONF=TEQUILA 

делая это, вы можете скомпилировать/тест намного быстрее, вы можете действительно сделать только:

MODULES_OVERRIDE=mymodule