Jianqing's Blog Archive

drcom的安装之千辛万苦

在ubuntu上安装drcom很简单

只要make&&make install就行了

但在gentoo却遇到了很多问题 ,先是不能编译,少了什么变量,security_ops,然后到网上搜,好不容易找到了一个解决方法,(当时我的内核是2.6.22,后来才更新到2.6.24)

在网友zrx550 http://hi.baidu.com/z%5Fr%5Fx那看到这篇文章 ---------- linux下的drcom是在2.6的内核中开发的,用到了- 中的security_ops。>但是这个 EXPORT_SYMBOL 在2.6.24的内核中被取消了,导致drcom不能被成功的编译。随之 而来的问题就是新内核在需要drcom的网络环境中不能上网了。就这个问题我请教了开源版>本drcom开发者之一的Wheelz。目前最简单的办法只能修改内核,重新编译。针对2.6.24的>内核,具体办法如下: 1) 在内核的security/security.c文件的最后加上EXPORT_SYMBOL(security_ops); 2) 重新编译一下内核。 3) drcom-1.3.7/kmod/proto.c在#include - 后面加上一句: extern struct security_operations *security_ops; 4)编译安装drcom。

但却始终不起作用,编译了好几次内核,始终没用,后来在.config 中加入

先 grep SECURITY .config 然后vim .config

CONFIG_SECURITY=y CONFIG_SECURITY_NETWORK=y

前几次编译都不成功,好像编译时重新配置内核,立马^C,

然后又一次次偿试,终于可以了。

到这里我发现了一个问题,一般情况了我重新编译内核都不会

make clean 而这次编译了7分钟,所以我觉得它应该将内核重新编译了一遍,以前编译时只要很短的时间,特别是改动很少的时候,因为它没有全部重新编译,只是编译了那些配置改变了的部分,而当它们的依赖关系比较严重时,系统就会自动全部重新编译,所以以后当内核改0动比较大时,最好先make clean下

最后终于安装成功了,但确不能登录,试了好几个方法

drcomcd

drcomc login

drcomc logout

都不行,经过好多次试验才可以上网了

后来发现只有以root用户登录后,

1。drcomd

2登录:drcomc login

3.登出:drcomc logout

然后就一切OK了,然后再以普通用户登录就可以了。

我是在用普通用户登录后,然后Ctrl +Alt +F1,进入一个终端用root登录, 再dromd,drcomc login

登录成功后,再返回到图形界面: Ctrl +Alt +F7

下面是我的调试信息,希望你在检索进能够检索到:

make make -C drcomc make[1]: Entering directory /home/pjq/drcom-1.3.7/drcomc' gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o drcomc.o drcomc.c gcc drcomc.o -o drcomc make[1]: Leaving directory /home/pjq/drcom-1.3.7/drcomc’ make -C drcomd make[1]: Entering directory /home/pjq/drcom-1.3.7/drcomd' gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o drcomd.o drcomd.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o daemon.o daemon.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o cleanup.o cleanup.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o dialog.o dialog.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o handle.o handle.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o init.o init.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o keepalive.o keepalive.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o login.o login.c login.c: 在函数 ‘drcom_login’ 中: login.c:50: 警告:未使用的参数 ‘timeout’ gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o logout.o logout.c logout.c: 在函数 ‘drcom_logout’ 中: logout.c:34: 警告:未使用的参数 ‘timeout’ gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o md5.o md5.c md5.c:131:36: 警告:使用 C99 long long 整数常量 gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o misc.o misc.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o passwd.o passwd.c passwd.c: 在函数 ‘drcom_passwd’ 中: passwd.c:32: 警告:未使用的参数 ‘timeout’ gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o readconf.o readconf.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o watchport.o watchport.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o getaddr.o getaddr.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o log.o log.c log.c: 在函数 ‘dbg’ 中: log.c:34: 警告:未使用的参数 ‘format’ gcc -lm -lpthread drcomd.o daemon.o cleanup.o dialog.o handle.o init.o keepalive.o login.o logout.o md5.o misc.o passwd.o readconf.o watchport.o getaddr.o log.o -o drcomd make[1]: Leaving directory /home/pjq/drcom-1.3.7/drcomd’ make -C kmod make[1]: Entering directory /home/pjq/drcom-1.3.7/kmod' make -C /lib/modules/2.6.22-gentoo-r9/build M=/home/pjq/drcom-1.3.7/kmod modules make[2]: Entering directory /usr/src/linux-2.6.22-gentoo-r9’ CC [M] /home/pjq/drcom-1.3.7/kmod/init.o CC [M] /home/pjq/drcom-1.3.7/kmod/proc.o CC [M] /home/pjq/drcom-1.3.7/kmod/proto.o /home/pjq/drcom-1.3.7/kmod/proto.c: 在函数 ‘init_hijack’ 中: /home/pjq/drcom-1.3.7/kmod/proto.c:450: 错误:‘security_ops’ 未声明 (在此函数内第一次使用) /home/pjq/drcom-1.3.7/kmod/proto.c:450: 错误:(即使在一个函数内多次出现,每个未声明的标识符在其 /home/pjq/drcom-1.3.7/kmod/proto.c:450: 错误:所在的函数内只报告一次。) /home/pjq/drcom-1.3.7/kmod/proto.c: 在函数 ‘cleanup_hijack’ 中: /home/pjq/drcom-1.3.7/kmod/proto.c:461: 错误:‘security_ops’ 未声明 (在此函数内第一次使用) make[3]: ** [/home/pjq/drcom-1.3.7/kmod/proto.o] 错误 1 make[2]: ** [module/home/pjq/drcom-1.3.7/kmod] 错误 2 make[2]: Leaving directory /usr/src/linux-2.6.22-gentoo-r9' make[1]: *** [default] 错误 2 make[1]: Leaving directory /home/pjq/drcom-1.3.7/kmod’ make: ** [kmod] 错误 2 make make -C drcomc make[1]: Entering directory /home/pjq/drcom-1.3.7/drcomc' make[1]: Nothing to be done for all’. make[1]: Leaving directory /home/pjq/drcom-1.3.7/drcomc' make -C drcomd make[1]: Entering directory /home/pjq/drcom-1.3.7/drcomd’ make[1]: Nothing to be done for all'. make[1]: Leaving directory /home/pjq/drcom-1.3.7/drcomd’ make -C kmod make[1]: Entering directory /home/pjq/drcom-1.3.7/kmod' make -C /lib/modules/2.6.22-gentoo-r9/build M=/home/pjq/drcom-1.3.7/kmod modules make[2]: Entering directory /usr/src/linux-2.6.22-gentoo-r9’ CC [M] /home/pjq/drcom-1.3.7/kmod/proto.o /home/pjq/drcom-1.3.7/kmod/proto.c: 在函数 ‘init_hijack’ 中: /home/pjq/drcom-1.3.7/kmod/proto.c:453: 错误:提领指向不完全类型的指针 /home/pjq/drcom-1.3.7/kmod/proto.c:454: 错误:提领指向不完全类型的指针 /home/pjq/drcom-1.3.7/kmod/proto.c: 在函数 ‘cleanup_hijack’ 中: /home/pjq/drcom-1.3.7/kmod/proto.c:461: 错误:提领指向不完全类型的指针 /home/pjq/drcom-1.3.7/kmod/proto.c:462: 错误:提领指向不完全类型的指针 make[3]: ** [/home/pjq/drcom-1.3.7/kmod/proto.o] 错误 1 make[2]: ** [_module_/home/pjq/drcom-1.3.7/kmod] 错误 2 make[2]: Leaving directory /usr/src/linux-2.6.22-gentoo-r9' make[1]: *** [default] 错误 2 make[1]: Leaving directory /home/pjq/drcom-1.3.7/kmod’ make: ** [kmod] 错误 2 localhost drcom-1.3.7 # make make -C drcomc make[1]: Entering directory /home/pjq/drcom-1.3.7/drcomc' gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o drcomc.o drcomc.c gcc drcomc.o -o drcomc make[1]: Leaving directory /home/pjq/drcom-1.3.7/drcomc’ make -C drcomd make[1]: Entering directory /home/pjq/drcom-1.3.7/drcomd' gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o drcomd.o drcomd.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o daemon.o daemon.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o cleanup.o cleanup.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o dialog.o dialog.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o handle.o handle.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o init.o init.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o keepalive.o keepalive.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o login.o login.c login.c: In function ‘drcom_login’: login.c:50: warning: unused parameter ‘timeout’ gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o logout.o logout.c logout.c: In function ‘drcom_logout’: logout.c:34: warning: unused parameter ‘timeout’ gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o md5.o md5.c md5.c:131:36: warning: use of C99 long long integer constant gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o misc.o misc.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o passwd.o passwd.c passwd.c: In function ‘drcom_passwd’: passwd.c:32: warning: unused parameter ‘timeout’ gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o readconf.o readconf.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o watchport.o watchport.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o getaddr.o getaddr.c gcc -Wall -W -Wstrict-prototypes -Wmissing-prototypes -pedantic -I/home/pjq/drcom-1.3.7/include -O2 -c -o log.o log.c log.c: In function ‘dbg’: log.c:34: warning: unused parameter ‘format’ gcc -lm -lpthread drcomd.o daemon.o cleanup.o dialog.o handle.o init.o keepalive.o login.o logout.o md5.o misc.o passwd.o readconf.o watchport.o getaddr.o log.o -o drcomd make[1]: Leaving directory /home/pjq/drcom-1.3.7/drcomd’ make -C kmod make[1]: Entering directory /home/pjq/drcom-1.3.7/kmod' make -C /lib/modules/2.6.22-gentoo-r9/build M=/home/pjq/drcom-1.3.7/kmod modules make[2]: Entering directory /usr/src/gentoolinux/linux-2.6.22-gentoo-r9’ CC [M] /home/pjq/drcom-1.3.7/kmod/init.o CC [M] /home/pjq/drcom-1.3.7/kmod/proc.o CC [M] /home/pjq/drcom-1.3.7/kmod/proto.o /home/pjq/drcom-1.3.7/kmod/proto.c: In function ‘init_hijack’: /home/pjq/drcom-1.3.7/kmod/proto.c:453: error: dereferencing pointer to incomplete type /home/pjq/drcom-1.3.7/kmod/proto.c:454: error: dereferencing pointer to incomplete type /home/pjq/drcom-1.3.7/kmod/proto.c: In function ‘cleanup_hijack’: /home/pjq/drcom-1.3.7/kmod/proto.c:461: error: dereferencing pointer to incomplete type /home/pjq/drcom-1.3.7/kmod/proto.c:462: error: dereferencing pointer to incomplete type make[3]: ** [/home/pjq/drcom-1.3.7/kmod/proto.o] 错误 1 make[2]: ** [module/home/pjq/drcom-1.3.7/kmod] 错误 2 make[2]: Leaving directory /usr/src/gentoolinux/linux-2.6.22-gentoo-r9' make[1]: *** [default] 错误 2 make[1]: Leaving directory /home/pjq/drcom-1.3.7/kmod’ make: *** [kmod] 错误 2 localhost drcom-1.3.7 # drcomcd 1206323834 DEBUG drcomcd: Redirecting stderr to /var/log/drcomcd… Segmentation fault localhost drcom-1.3.7 # drcomc login 1206323840 DEBUG drcomc: Creating socket… 1206323840 DEBUG drcomc: Connecting… drcomc: Connect: No such file or directory localhost drcom-1.3.7 # drcomc logout 1206323843 DEBUG drcomc: Creating socket… 1206323843 DEBUG drcomc: Connecting… drcomc: Connect: No such file or directory

Tags: