2017-02-05 54 views
1

我是FreeBSD的新手。我在VMware上安裝了FreeBSD-11.0-RELEASE-amd64。我想添加第一個新的系統調用。我找到這linkFreeBSD-11.0-RELEASE-amd64中簡單的新系統調用

我所做的:

CD/usr/src目錄/ SYS /克恩

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); 
} 

我說我的系統調用來結束/克恩/ syscalls.master

550  AUE_NULL  STD { int func(int k);} 

然後我做了

CD/usr/src目錄

須藤讓-C/SYS /克恩/的sysent

接下來,我添加的文件到/ SYS/conf目錄/文件

kern/mykern.c  standard 

而且,我加入了系統調用/kern/capabilities.conf

## 
    ## Allow associating SHA1 key with user 
    ## 
    func 

最後,而在/ usr/src目錄/我跑的命令

須藤使-j8內核

而在這一步,我得到:

make don't know how to make kernel. Stop 

make stopped in /usr/src 
+1

這是'make buildkernel',我懷疑。 – arrowd

+0

make buildkernel,同樣的錯誤!我失去了我的希望! – user7194905

+0

[在FreeBSD-11.0-RELEASE-amd64上添加新的系統調用]的可能重複(http://stackoverflow.com/questions/42186375/add-a-new-system-call-at-freebsd-11-0-釋放-AMD64) – arved

回答

1

檢查兩個MakefileMakefile.inc1存在於/usr/src中。後者實際上是定義目標buildkernel的地方。驗證該目標實際上是否存在於該文件中。