【发布时间】:2017-06-22 10:37:23
【问题描述】:
我是 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 内核
在这一步我得到:
make don't know how to make kernel. Stop
make stopped in /usr/src
【问题讨论】:
-
我怀疑是
make buildkernel。 -
make buildkernel ,同样的错误!我失去了希望!
标签: system-calls freebsd