我是FreeBSD的新手。我在VMware上安装了FreeBSD-11.0-RELEASE-amd64。我想添加第一个新的系统调用。我找到了link。
我做了:
cd / usr / src / sys / kern
ee mykern.c
#include <sys/sysproto.h>
#include <sys/proc.h>
#include <sys/types.h>
#include <sys/systm.h>
#ifndef _SYS_SYSPROTO_H_
struct myargs {
int k;
};
#endif
int func(struct thread *p, struct myargs *uap)
{
printf("Hello");
return (0);
}
我将系统调用添加到了结束/kern/syscalls.master
550 AUE_NULL STD { int func(int k);}
然后我做了
cd / usr / src
sudo make -C / sys / kern / sysent
接下来,我将文件添加到/ sys / conf / files
kern/mykern.c standard
另外,我将系统调用添加到/kern/capabilities.conf
##
## Allow associating SHA1 key with user
##
func
最后,在/ usr / src /中运行命令
sudo make -j8 kernel
在这一步中我得到:
make don't know how to make kernel. Stop
make stopped in /usr/src
答案 0 :(得分:1)
检查Makefile
中是否存在Makefile.inc1
和/usr/src
。后者实际上是定义buildkernel
目标的地方。验证该目标是否确实存在于该文件中。