본문 바로가기

Studies

kernel 3.12.0에 vmware 설치 후 실행 시, 컴파일 오류 해결하기


GNOME을 싫어하는 나는

xubuntu 14.04 를 설치하여

vmware를 설치하려고 하는데

설치는 아주 잘 되는데

실행할 때 컴파일 오류가 뜨는 것이다.


캡쳐를 해두지 않아서 사진은 없는데

Virtual Network Device 가 제대로 설치가 되지 않아 오류가 뜬다.


열심히 구글링을 해 본 결과,

결국 해결을 하였다.








0. 우선,

/usr/lib/vmware/modules/source/ 에 들어가서

vmnet.tar를 일단 백업해둔다.

만약을 대비해서.



1. test.c 파일을 생성하여 아래의 소스를 넣는다.


--- vmnet-only/filter.c 2013-10-18 15:11:55.000000000 -0400
+++ vmnet-only/filter.c    2013-12-21 20:15:15.000000000 -0500
@@ -27,6 +27,7 @@
 #include "compat_module.h"
 #include <linux/mutex.h>
 #include <linux/netdevice.h>
+#include <linux/version.h>
 #if COMPAT_LINUX_VERSION_CHECK_LT(3, 2, 0)
 #   include <linux/module.h>
 #else
@@ -203,7 +204,11 @@
 #endif
 
 static unsigned int
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
 VNetFilterHookFn(unsigned int hooknum,                 // IN:
+#else
+VNetFilterHookFn(const struct nf_hook_ops *ops,        // IN:
+#endif
 #ifdef VMW_NFHOOK_USES_SKB
                  struct sk_buff *skb,                  // IN:
 #else
@@ -252,7 +257,12 @@
 
    /* When the host transmits, hooknum is VMW_NF_INET_POST_ROUTING. */
    /* When the host receives, hooknum is VMW_NF_INET_LOCAL_IN. */
-   transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+  
+#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 13, 0)
+    transmit = (hooknum == VMW_NF_INET_POST_ROUTING);
+#else
+    transmit = (ops->hooknum == VMW_NF_INET_POST_ROUTING);
+#endif
 
    packetHeader = compat_skb_network_header(skb);
    ip = (struct iphdr*)packetHeader;






2. 그리고


tar xvf vmnet.tar vmnet-only/filter.c

patch vmnet-only/filter.c < test.c

tar -uvf vmnet.tar vmnet-only/filter.c

를 차례대로 입력한다.


끝이다.





3. 여담

vmware의 소스가 tar로 묶여있으므로

압축을 풀어 filter.c 파일을 패치한 다음에

다시 압축을 하면 된다.


그리고 vmware서비스를 껐다가 다시 실행해보면

이제는 오류가 뜨지 않고 아주 잘 실행이 된다.



4. ps

맨 위의 저 소스는 나도 여러번 고치다가 되었다.

커널버전에 따라 조금씩 다른건가?

여튼 저 위의 소스로 안되면 다른 소스를 구해서 해보길 바란다.


'Studies' 카테고리의 다른 글

webhacking.kr 33번  (0) 2014.08.08
공유 라이브러리란?  (0) 2014.08.01
ASCII 아스키 코드 표  (0) 2014.07.26
RTL공격  (0) 2014.07.23
vi와 친해지기  (0) 2014.07.01