Как протестировать модифицированный исходный код FreeBSD?

Я пытаюсь изменить алгоритм управления перегрузкой по умолчанию в FreeBSD (NewReno), создав копию исходного файла ( cc_newreno.c , находящегося в /usr/src/sys/netinet/cc ) с именем cc_newreno_mod.c и внося изменения в него ,

Предположим, я внес некоторые изменения. Как проверить их? Компиляция cc_newreno_mod.c напрямую (с использованием встроенного компилятора C) приводит к нескольким ошибкам, некоторые из которых кажутся странными (например, netinet/cc/cc_module.h file not found , хотя файл явно присутствует).

Должен ли я построить новое ядро? Будет ли автоматически создан модуль из измененного файла? Или я совершенно неправ, и я должен придерживаться другого подхода?

2 Solutions collect form web for “Как протестировать модифицированный исходный код FreeBSD?”

Для компиляции модуля ядра вы должны создать Makefile и включить файл makefile ядра /usr/src/share/mk/bsd.kmod.mk например:

 # Note: It is important to make sure you include the <bsd.kmod.mk> makefile after declaring the KMOD and SRCS variables. # Declare Name of kernel module KMOD = module # Enumerate Source files for kernel module SRCS = module.c # Include kernel module makefile .include <bsd.kmod.mk> 

И, наконец, вы запустите make, чтобы скомпилировать его, чтобы вы могли проверить его, если он правильно компилируется.
И поскольку он не представлен в модулях ядра ( /boot/kernel/*.ko ), но он указан в sys/conf/files я думаю, вы должны перекомпилировать ваше ядро ​​для применения изменений. Для получения дополнительной информации вы можете увидеть эту страницу . Поскольку это копия cc_newreno.c вы можете переименовать исходный /usr/src/sys/netinet/cc/cc_newreno.c в другое место, чтобы сохранить его, скопировав новый и перекомпилировав.

netinet в настоящее время не является модулем ядра, поэтому я предлагаю вместо этого добавить измененный файл в sys / conf / files.

  • Где исходный код реализации «scanf»?
  • Приложение GNOME / GTK установлено из исходных запусков с темой по умолчанию
  • Учитывая git commit hash, как узнать, какая версия ядра содержит его?
  • Получить исходный код ядра: apt-get install vs apt-get source
  • Где я могу получить исходный пакет для инструмента Perf
  • Linux и Unix - лучшая ОС в мире.