본문 바로가기
리눅스

VMWare에서 OpenWRT 사용하기.

by Joseph.Lee 2015. 7. 31.

2014.05.18. 20:3



 VMWare ESXi 에서 OpenWRT을 사용하려고 했더니 하드디스크를 찾지 못하는 등 문제가 발생하였습니다..

그래서.. 커널을 새로 컴파일해서 넣어주니 부팅은 잘 되었는데...

VMWare 에서 사용하는데 VMWare-tools 가 작동하지 않으면 무슨 소용일까요?..

그래서 일단 vmware-tools 바이너리 파일을 싹다 복사한 다음에 시도했는데 안되더라구요..ㅠㅠ

해서 open-vm-tools이란걸 찾아서 컴파일 하는데 엄청난 오류들이;;

보니 기본으로 있는 uClibc 가 locale을 지원하지 않더군요...

그래서 또 OpenWrt 컴파일러랑 uClibc도  새로 컴파일하고...

그런데 또 hotplug, opkg등 다른 프로그램에서 __ctype_b 가 없다면서 실행이 안되길래...

몇번이나 uClibc 을 컴파일했네요...

근데 또 locale관련 오류도 나고..ㅠㅠ

쨋든 openwrt buildroot을 다운받아서 gcc와 uClibc 파일들은 분석하며;;

locale와 ctype, nl_langinfo... 등을 모두 사용할 수 있게 했네요.. (libc_hidden_proto 을 다 주석해서...)

..근데 또 다 된줄 알았는데 open-vm-tools 에서 라이브러리를 못찾는다고 해서;;;

소스를 막 분석하다가 glib까지 갔네요...

결론만 말하면 gmoduleconf.h 에서 G_MODULE_NEED_USCORE 을 define 하면 안됩니다.

그럼 심볼로 모듈을 로드할때 앞에 '_' 을 붙히더라구요.

여기까지 한 오일은 소비한거 같네요...

​---여기까지 주절주절...---

 

쨋든 어찌어찌 open-vm-tools을 컴파일 했습니다. (추가로 ncurses, procps, libdnet, gettext, glib까지 컴파일했습니다. 그래서 만약 openwrt opkg에서 이것들은 설치하면 안됩니다!)

 

아 글구 커널에 대부분 필요한걸 포함시켰기 때문에 kmod-~등등 iptables 커널도 따로 설치할 필요가 없습니다.

 

https://www.dropbox.com/s/ioxib1c8xop1k2g/js-openwrt-x86-boot.tar.gz

https://www.dropbox.com/s/uwqu92frbuu46gj/js-openwrt-x86-rootfs.tar.gz

https://www.dropbox.com/s/qqfq3dtrh592ufj/js_openwrt_x86_kernel.config

https://www.dropbox.com/s/xxxx/js-toolchain-i386_i486_gcc-4.8.0_uClibc-0.9.33.2.tar.gz

 

링크 준비중입니다. (글을 쓰다가 문제를 발견해서..ㅠㅠ) 

 

VMWare x86 사용가능한 OpenWRT ROOTFS 압축파일과 커널 설정파일(kernel-3.3.8) 그리고 컴파일러 입니다.

(* 이게 잘 작동하고 그럴지는 보증하지 않습니다.

    우선 저는 이걸로 잘 쓰고는 있습니다.)

참고로 하드디스크에 ext4 로 파티션을 두개 만든 후 (첫번째 파티션 최소 32MB, 두번째 나머지)

tar xfz js-openwrt-x86-boot.tar.gz -C /boot(첫번째파티션) 위치​

tar xfz js-openwrt-x86-rootfs.tar.gz​ -C /rootfs(두번째파티션) 위치 로 압축을 푸시면 됩니다.

​(최소 필요한 하드 용량 : 512MB)

 

VMWare vSphere Client에서는 



VMWare Tools: 실행 중 (타사/독립 회사) 라고 나오고 잘 작동하네요~


현재 문제

 1. open-vm-tools서비스 관리 스크립트에서 원래는

 vmtoolsd --background=... 을 하면 데몬으로 실행되는데 이상하게 이걸로 하면 프로그램이 계속 죽고 다시 시작하는 문제가 발생합니다....

 그래서 & 으로 서비스를 시작하는데 서비스가 잘 시작되었나 확인을 못합니다.

하지만 뭐 잘 작동은 합니다.

되네요... 아무래도 so파일관련해서 오류가 났었는데 그것때문에 그랬나 봅니다.


2. 시스템종료시 문제.

 OpenWRT가 원래 스스로는 안꺼지는.. 용도라서 정상적인 시스템 종료를 지원하지 않습니다.

 이것에 관해서는 좀더 찾아봐야 되겠습니다.

 참고로 halt등으로 끄면  System halted 라고만 나오고 꺼지진 않습니다;; 수동으로 리셋하지 않는 이상

 이러지도 저러지도 못하는...

 그냥 안끄거나 수동으로 리셋하거나 reboot만 사용하면 됩니다.

 뭐 Router용인데 reboot외에 끌일은 필요없겠죠..

 *** halt명령으로는 정상적으로 종료되지 않지만

 *** open-vm-tools 가 작동중인 상태에서 VMWare콘솔에 있는 전원끄기 버튼으로

 *** 전원을 종료하면 정상적으로 종료가 됩니다. (희안하네요;;;) 

반응형

댓글