'개인메모(진짜재미없음)'에 해당되는 글 74건

  1. 2010.02.16 :: bash에서 파일 이름 갖고 놀기 (2)
  2. 2010.02.02 :: bash 명령 줄에서 편집 기능 쓰기
  3. 2010.01.15 :: 우분투 리눅스에서 이클립스가 말을 안들을 때
  4. 2010.01.14 :: samba 파일 시스템 마운트 하기
  5. 2010.01.05 :: svn으로 작업하다가 이전 버전을 보고 싶을 때
  6. 2009.12.18 :: vim 기반의 똘똘한 개발 환경
  7. 2009.12.01 :: Windows 환경에서 gVim을 쓸 때 설정 파일 변경하기
  8. 2009.11.20 :: awk 에서 여러 파일을 동시에 다루기
  9. 2009.11.20 :: 다른 디렉토리에 있는 파일을 하나씩 가져와서 내용을 바꿔서 새 파일로 만들기
  10. 2009.10.07 :: 우분투 데스크탑 설정을 원상 복구 하기
  11. 2009.07.17 :: Qualnet 에서 포워딩 되는 패킷 hook 하기?
  12. 2009.07.08 :: Eclipse(이클립스)에서 C/C++ 파일 편집하기
  13. 2009.06.19 :: 우분투 버추얼박스에서 USB 장치를 쓰고 싶을 때
  14. 2009.06.17 :: JNI 잡상식 정리
  15. 2009.06.12 :: 블루투스 개발 관련 잡상식 정리
  16. 2009.06.11 :: SRT 포맷의 자막 파일에서 텍스트만 빼내기
  17. 2009.05.29 :: vnc4server 에서 gnome 세션 이용하기
  18. 2009.05.07 :: NOKIA N810 인터넷 타블렛을 위한 비디오 변환 (10)
  19. 2009.05.01 :: 그림 두개
  20. 2009.04.27 :: 리눅스에서 커널 업그레이드 후 VirtualBox가 안뜰때
  21. 2009.04.21 :: svn 에서 checkout 하기
  22. 2009.04.16 :: Zotero의 문헌 정보 또는 BibTeX 정보를 Microsoft Word 2007 에서 이용하기 (5)
  23. 2009.04.09 :: 파워포인트로 그린 그림을 LaTeX에 삽입하기
  24. 2009.03.28 :: 텍스트 문서에 숨어있는 7비트 ASCII 아닌 글자 찾아내기 (1)
  25. 2009.03.11 :: Ubuntu 버전을 아는 간단한 방법
  26. 2009.02.19 :: 우분투 리눅스에서 구글 비디오 업로더 실행하기
  27. 2009.02.19 :: 신* 카드 해지 성공 (1)
  28. 2009.01.16 :: 우분투에서 구글 데스크탑을 쓸 때 Microsoft Office 문서도 제대로 찾으려면
  29. 2009.01.15 :: 우분투에서 대기모두에서 되돌아 왔을 때 USB 마우스/키보드 복구하기
  30. 2008.12.20 :: 우분투에서 여러 개의 네트워크 인터페이스가 있는 것 처럼 만들기
디렉토리를 잘라내고, 파일 이름과 확장자를 분리
$ filename=$(basename $pathandfile)
$ extension=${filename##*.}
$ filename=${filename%.*}

posted by 신묘군
TAG bash
자세한 내용은 별도의 매뉴얼을 참조할 것.

자주쓰는 것
^A : 줄의 처음으로
^E : 줄의 끝으로
Alt-F (또는 Alt-오른쪽 화살표): 한 단어 앞으로 이동
Alt-B (또는 Alt-왼쪽 화살표) : 한 단어 뒤로 이동


posted by 신묘군
우분투 리눅스에서 이클립스를 쓰는데 갑자기 어떤 버튼이 안 눌러지는 등 이상한 증세가 있다. 한참을 해메이다가
Fixing Eclipse for Ubuntu Karmic Koala 9.10 라는 글을 발견하고 따라하니 해결되었다.
export GDK_NATIVE_WINDOWS=1
라고 환경변수를 잡아주고 그 창에서 이클립스를 실행하면 된다.
posted by 신묘군
smbmount 명령을 실행해서 하는 방법과 fstab에 넣어두는 방법이 있다. 더 자세한 것은 관련 글을 참조하기 바란다. 여기서는 간단히 명령으로 하는 방법만 기록

$ mkdir /마운트/할/빈/디렉토리
$ sudo smbmount //samba.서버.주소/공유_폴더_이름 /마운트/할/빈/디렉토리 -o username=접속아이디,password=접속암호,uid=나의_uid,mask=000
uid는 /etc/passwd에서 찾으면 된다.


posted by 신묘군
현재 파일과 가장 최근에 commit한 버전을 비교
svn diff -r HEAD DB.cpp

현재 파일과 직전 commit 버전을 비교
svn diff -r PREV DB.cpp

최근 commit 버전과 직전 commit 버전을 비교
svn diff -r PREV:HEAD DB.cpp

특정 버전을 받아 오기
svn update -r 2372 DB.cpp



posted by 신묘군
TAG
vi 또는 vim은 워낙 오랬동안 개발용 편집기로 쓰여서 이를 이용해서 편리하게 프로그래밍을 할 수 있는 도구가 많이 있다.

1. cscope

어떤 클래스를 쓰고 있는 그 클래스 정의를 보고 싶을 때 마우스 클릭이나 적절한 키 스트로크로 점프를 해준다. vim을 시작할 때 cscope.out이라는 파일을 읽어서 연결 상태를 알아내는데 이 파일은 물론 cscope이라는 명령으로 생성한다. 주의할 점은 cscope.out 안에 있는 파일이 상대경로로 되어 있으면 딴 디렉토리에서 vim을 시작했을 때 문제가 생긴다는점. 이를 피하는 간단한 방법은 아예 절대경로로 색인할 대상 파일을 정리해두는 것. 요런 식으로...

$ find /absolute/path/to/start -name '*.c' -o -name '*.cpp' -o -name '*.h' > cscope.files
$ cscope -b

2. omnicppcomplete

object-> 라고 치면 바로 그 다음에 붙을 수 있는 method를 자동으로 보여준다던지 하는 유용한 도구다. 사용법은 여기 -> http://design.liberta.co.za/articles/code-completion-intellisense-for-cpp-in-vim-with-omnicppcomplete/

ominicppcomplete는 ctags라고 역시나 cscope처럼 소스 파일의 색인을 만들어서 이동을 도와주는 도구를 활용한다. 상세한 설명은 생략하고 어쨌든 새로 색인을 생성하기 위해서는 이렇게 하면 된다.

$ cd /소스가/있는/디렉토리
$ ctags -R --c++-kinds=+p --fields=+iaS --extra=+q ./


posted by 신묘군
디폴트 설정 파일은 \Program Files\Vim\_vimrc 인데 이 파일은 읽기 전용으로 되어 있어서 수정하기가 불편하다. (게다가 여러 사용자가 공유하는 /* 물론 드문 경우지만 */ 경우라면 더더욱 고치기가 그렇다.) 그럴 때는 당연히 각 개인 사용자별 설정을 따로 만들어 사용해야 한다. 유닉스/리눅스 환경에서는 사용자의 홈 디렉토리에 있는 .vimrc를 참조하는데 윈도에서도 마찬가지로 사용자의 홈 디렉토리에 있는 _vimrc 파일을 참조한다. 그럼 사용자의 홈 디렉토리는 어디인가? 이는 gVim 안에서 확인 가능하다.
:echo $HOME
이렇게 하면 사용자의 홈 디렉토리를 알려준다. 대개는 (항상?) "내 문서", "내 사진" 등의 폴더가 자동으로 생성되어 있는 그 디렉토리가 홈 디렉토리이다. 여기에 _vimrc 라는 이름의 파일을 만들고 그 안에 원하는 설정값을 넣어주면 된다. 구식 프로그래머라면 이런 설정이 맘에 들 듯. ^^
syntax on
colorscheme darkblue
set guifont=Lucida_Console:h12:cDEFAULT
Lucidia Console 도 좋지한 한글이 맘에 안든다면 대신 "나눔고딕코딩"을 추천한다.


posted by 신묘군
몇 가지 방법이 있다는데 이런 식으로 할 수 있다.

BEGIN{
    i1 = 0; # 첫째 파일의 line index
    i2 = 0; # 둘째 파일의 line index
}
FILENAME==ARGV[1] {data1[i1]=$0; i1++; next} # 파일을 읽어서 배열에 저장
FILENAME==ARGV[2] {data2[i2]=$0; i2++; next} # 두번째 파일도
END{
    # 이제 파일을 갖고 논다
    j2 = 0;
    for(j1 = 0; j1 < i1; j1++) { # 첫째 파일의 모든 줄에 대하여 루프를 돈다
        print data1[j1];  # 그 내용을 인쇄
        if( 어떤 조건 ) continue; # 조건에 따라 건너 뛴다.
        for(; j2 < i2; j2++) { # 둘째 파일을 갖고 뭔가를 한다.
            print data2[j2]; # 둘째 파일의 내용을 인쇄하고 싶다면..
        }
    }
}
물론 실행은 이런 식으로 하면 된다.
awk -f 위의_스크립트_파일 첫째파일 둘째파일 > 결과파일


posted by 신묘군
./old 디렉토리 아래에 있는 모든 파일을 하나씩 읽어서 내용을 적절히 바꿔치기 한 다음 그 내용을 현재 디렉토리에 저장하되 파일 이름은 같게 하고 싶다면 다음과 같이 한다.
for x in old/*; do sed s/이전내용1/새내용/ $x | sed s/이전내용2/새내용2/ > `basename $x`; done



posted by 신묘군
제목은 낚시^^ 꼭 우분투에만 해당되는 것도 아니고 모든 설정을 원상복구하는 것은 아니지만 어쨌든 컴피즈(compiz) 설정을 원상 복구하려면
gconftool-2 --recursive-unset -a /apps/compiz
라고 하면 된다.
posted by 신묘군
정답은 모르겠다. Programmer's Guide 에 따르면 두 가지 가능성이 있다.

1. NetworkIpSetMacLayerAckHandler

MAC 계층에서 패킷을 보내고 ACK이 발생할 때마다 불러주는 callback 함수가 아닐까 싶다. 이름만으로 추측...

2. RoutePacketAndSendToMac

모든 IP 패킷의 포워딩은 이 함수를 지난다고 한다. 이 함수에 강제로 callback을 강제로 추가할 수도 있겠다.
posted by 신묘군
CDT라는 툴을 사용하면 파일 편집 수준이 아니라 프로젝트 관리까지 편리하게 해준다. 자바에서와 마찬가지로 힌팅도 해주고 에러도 잡아주고 정말 편하다. 게다가 소스도 당연히 자동 indentation 해준다. 내장된 indentation 기능이 맘에 안들면 원하는 스타일로 바꿀 수도 있다. 이를 위해서는 메뉴에서 Window -> Preferences 를 선택하고 왼쪽의 트리에서 C/C++ -> Code Style 을 선택하면 된다.
posted by 신묘군
기본으로 설치 가능한 OSE 버전으로는 안되고 PUEL 버전을 설치해야 한다. (버추얼박스 홈 페이지에 가면 설치하는 방법이 나와 있다.) 그리고 vbosusers 그룹이 usb 장치를 접근할 수 있도록 usb 를 usbfs로 마운트 해야 한다. 버전 별로 해결책이 약간씩 다르다. 자세한 설명은 우분투 쪽 도움말 파일을 참고 하면 된다. 설명에 약간 이상한 부분이 있는에 devgid는 그냥 아무 값이나 쓰면 안되고 vboxusers 그룹의 그룹 ID를 써주어야 한다. 다음과 같이 ID를 알 수 있다. 사용자를 vboxusers 에 추가해야 한다는 주장도 있으나 이를 했을 때와 안 했을 때를 비교해보진 않았다.
$ grep vboxusers /etc/group

posted by 신묘군
(1) 유닉스/리눅스 계열에서는 소스에서 보는 라이브러리 이름과 라이브러리 파일의 이름이 다르다 (즉, lib 가 붙는다) 는 점에 유의해야 한다. 소스에서 JNIExample1 으로 loadLibrary를 했다면 이때 끌려가는 라이브러리의 이름은 libJNIExample1.so 가 된다.

(2) 리눅스+GCC 에서 공유 라이브러리(shared library)를 만드는 방법
gcc  -fPIC -shared -I/usr/lib/jvm/java-6-sun-1.6.0.13/include -I/usr/lib/jvm/java-6-sun-1.6.0.13/include/linux JNIExample1.c -o libJNIExample1.so
(3) 공유 라이브러리를 끌어가는 것은 리눅스의 시스템 변수인 LD_LIBRARY의 영향을 받는다. 만약 현재 클래스 파일과 라이브러리가 같은 디렉토리에 있고 그 디렉토리에서 실행한다면,
export LD_LIBRARY_PATH=`pwd`
(4)  CeGCC를 이용해서 리눅스에서 마이크로소프트 윈도 모바일에서 돌아가는 JNI용 dll 만드는 법 (lib를 붙이지 않음에 주의!!!)
arm-mingw32ce-gcc -g --shared -I/usr/lib/jvm/java-6-sun-1.6.0.13/include -I/usr/lib/jvm/java-6-sun-1.6.0.13/include/linux -o JNIExample1.dll JNIExample1.c
(5) MySaifu JVM에서는 JNI용 dll 파일을 여기에 복사해줘야 한다.
/장치/프로그램 파일/Mysaifu JVM/jre/bin

posted by 신묘군
(1) 우분투 리눅스에서 Bluecov를 쓰려면 해당 jar 파일을 적당한 디렉토리에 넣고 이를 자바 프로젝트에서 user library로 잡아주면 된다.

(2) 우분투 리눅스에서 Bluecov를 깔고 자바/이클립스에서 실행하려는데 (64비트 버전의 경우) "Bluecov_x64 not available" 에러 또는 (그 외 버전의 경우) "BlueCove library bluecove not available" 에러가 날 때 libbluetooth-dev 패키지를 설치해주면 된다.
sudo aptitude install libbluetooth-dev
(3) 우분투 리눅스에서 블루투스가 잘 안되는데 (Hardy까지는 괜찮은데 그 이후 버전에서는 잘 안된다는 사람들이 많음) 일단 bluetooh-gnome, blueman 등 모두 삭제하고 bluez-gnome 설치하고 /usr/bin/bluetooth-applet 띄워서 하니까 일단은 된다. 다 지우고 blueman 으로 해서 되었다는 사람도 있음.
posted by 신묘군
cat xxx.srt | grep -v "..:.." | grep -vE "[[:digit:]]+$" | grep -v "$" > xxx.txt

posted by 신묘군
미리 gnome 세션으로 접속하여 로그인을 한 채로 내버려 두면 vino / vinagre 를 이용해서 접속이 가능한 것으로 생각된다. 하지만 내 경우에는 ssh로만 접속이 가능한 상태라... 할 수 없이 vnc4server를 이용했다. ssh 로 로그인하여 vnc4server를 실행하고 (물론 그 전에  vnc4passwd 로 암호를 지정해줘야 되겠지) 원격에서 적절한 remote desktop client (e.g. vinagre)로 접속하면 된다. 여기서 gnome 세션이 되게 하려면 vnc4server가 돌아갈 기계에서 사용자 홈 디렉토리 아래의 .vnc/startup 파일의 마지막 줄에 gnome-session 이라고 넣어주면 된다.
posted by 신묘군

그냥 볼 수 있으면 좋겠는데 조금만 화질이 높은 것은 제대로 못 보여준다. 그나마 mplayer를 깔면 조금 더 나아지기는 해도 근본적인 해결은 안된다. 그래서 비디오 변환을 해줘야 된다. (참고자료 링크) 실제로 해보면 best나 OK 나 화질 차이는 눈으로 못 느끼겠다.

For best quality:
$ mencoder INPUT -vf scale=400:240 -ovc lavc -lavcopts vcodec=msmpeg4v2:vhq:vbitrate=430 -oac mp3lame -lameopts br=128:vol=9 -o OUTPUT

For “Ok” quality:
$ mencoder INPUT -vf scale=400:240 -ovc lavc -lavcopts vcodec=msmpeg4v2:vhq:vbitrate=320 -oac mp3lame -lameopts br=96:vol=9 -o OUTPUT

posted by 신묘군
사용자 삽입 이미지

사용자 삽입 이미지

posted by 신묘군
요렇게 하면 된다.
$ sudo /etc/init.d/vboxdrv setup
[sudo] password for xxxxxx:
 * Stopping VirtualBox kernel module                                             *  done.
 * Recompiling VirtualBox kernel module                                          *  done.
 * Starting VirtualBox kernel module                                             *  done.

posted by 신묘군
svn + http server 조합으로 설치된 서버에서 checkout을 할 때는 다음과 같이 하면 된다.
$ svn checkout http://서버주소/svn/대상디렉토리

posted by 신묘군
Zotero에서 관리하는 문헌 정보를 Microsoft Word 2007이 제공하는 Bibliography 정보로 활용하기 위해서는 다음과 같은 방법을 사용하면 된다.

(1) 윈도에서만 생활하는 사용자의 경우

Zotero에서 윈도용 플러그인을 제공하므를 이를 설치하면 그만이다.

(2) 리눅스와 윈도를 오가는 사용자의 경우

나는 대부분의 작업 (Zotero 포함) 을 리눅스에서 하고 문서 편집만 (그것도 다른 사람들이 윈도 밖에 안 쓰는 이유로... ㅠ.ㅠ) Microsoft Word를 사용한다. 이런 경우에는 Microsoft Word 의 Bibliography 포맷으로 Zotero의 문헌 정보를 변환해줘야 한다. 이 과정에 사용하는 도구는 bibutils 이다. 설치는
$ sudo apt-get install bibutils
그리고 변환은 우선 Zotero에서 Library의 BibTeX 포맷으로 export 하고 (export 된 파일 이름을 mine.bib 이라고 하자) 다음과 같이 변환하면 된다.
$ bib2xml mine.bib | xml2wordbib > mine.xml
그리고 Microsoft Word 2007 의 Bibliography 에서 mine.xml을 로드해주면 된다. 이상 끝.
posted by 신묘군
/* 주의: 여기서 다루는 도구는 대부분 리눅스용 도구이므로 윈도에서는 사용 불가능할 수 있습니다. */

여러가지 방법이 있을 수 있다. 파워포인트에서 파일로 인쇄하기 기능을 이용하여 eps 파일을 만들고 이를 삽입하는 방법, 이 과정에서 bounding box가 없다면 ps2epsi 를 이용하는 방법 등 여러가지가 있으나 원하는 크기로 다시 crop을 한다던지 수정이 필요한 경우에는 그것도 간단하지가 않다. 다음의 절차는 최적은 아닐지라도 픽셀 수준의 편집을 가능하게 하는 방법이다.

(1) 일단 PPT 에서 어떻게든지 PDF 로 내보낸다. 최신판의 파워포인트에서는 PDF로 내보내는 기능이 있으니 이를 활용하면 된다. 그 외에도 한글과 컴퓨터의 PDF 인쇄 패키지를 써도 되고 여러가지 방법이 있을 수 있다.

(2) 저장된 PDF 파일을 GIMP로 읽는다. 이때 화질을 유지하고 싶다면 해상도를 높게 잡아주자. 600 dpi 정도?

(3) GIMP에서 원하는 편집을 모두 한다.

(4) 파일을 다른 이름으로 저장하기를 선택하여 eps 파일로 저장한다.

(5) TeX 문서에 삽입한다.

끝.


posted by 신묘군
대부분의 사람들을 평생 겪을 일이 없는 것이겠지만 LaTeX으로 영어 문서를 편집하는 사람들에게는 유니코드가 여간 말썽이 아니다. 예를 들어, MS Word 에서 작성한 초고를 LaTeX으로 붙여 넣기를 해버리면 ASCII 코드로 표시되어야 할 따옴표, 겹따옴표 따위가 '이쁜' 따옴표 (MS Word 표현으로는 둥근 따옴표) 로 바뀌어 버리고 LaTeX 에서는 이를 가벼이 무시해 버린다. 그래서 LaTeX 으로 처리한 문서에서 I don't know 가 I dont know 로 표시되는 등의 부작용이 생긴다. Vim 에서 이렇게 7비트 ASCII 가 아닌 글자를 다 찾아내는 법은 다음과 같다.

우선 문서를 latin1 코딩으로 새로 저장한다.
:set fenc=latin
:wq!
그리고 문서를 다시 열어서 다음과 같이 검색해서 걸리는 놈이 있어서 잡아 족치면 된다.
/[\x80-\xff]/
물론, 애초에 MS Word 등에서 자동으로 둥근 따옴표 등의 이상하게 "이쁜" 글자로 만들어 주는 기능을 꺼두는 것도 이런 경우에는 도움이 될 수 있다. 자동 고침 기능을 끄려면, 오피스 단추 --> Word 옵션 --> 언어 교정 --> 자동 고침 에서 조정할 수 있다.
posted by 신묘군
몇 가지 방법이 있다.
$ cat /etc/issue
Ubuntu 8.10 \n \l

$ cat /etc/issue.net
Ubuntu 8.10
$ lsb_release -a
No LSB modules are available.
Distributor ID:    Ubuntu
Description:    Ubuntu 8.10
Release:    8.10
Codename:    intrepid


posted by 신묘군
$ cd 업로더가 깔린 디렉토리
$ java -cp ./GoogleVideoUploader.jar com.google.uploader.Uploader *

그리고 주의할 사항!!! 사용자 이름 칸에 @gmail.com 을 붙이면 안된다. 그냥 @ 앞 부분까지만 써주고 암호는 구글 메일 암호와 같다.
posted by 신묘군
하도 안쓰는 카드가 쌓여서 해지하려고 전화를 했는데... 우후... 해지 안 시켜 주려고 카드 발급 정보가 모든 금융 기관에 공유되기 때문에 신용도에 악영향을 준댄다... 어이구 무서워라. 그래도... "긴 얘기 듣고 싶지 않구요. 그냥 해지해주세요. 했더니" 그래도 뭐라고 뭐라고.. 한번 더 "그냥 해지 할 께요" 마침내 성공. 카드 두 장 줄였다. 앞으로 몇 장을 더 줄여야 하나...
posted by 신묘군
wvware와 catdoc을 깔아야 된단다. 관련 링크 --> http://desktop.google.com/support/linux/bin/answer.py?hl=en&answer=76816
posted by 신묘군
왜 그런지 모르지만 usb 마우스/키보드가 복구가 되지 않는 경우가 있다. 그럴 때는 해당 커널 모듈을 다시 올려주면 되더라.
$ sudo rmmod uhci_hcd
$ sudo modprobe uhci_hcd

posted by 신묘군
단순히 Ethernet card를 여러 개 있는 것 처럼 하는 거나 loopback 장치를 여러 개 만드는 것은 "ifconfig" 명령 만으로 간단히 할 수 있지만 내가 원하는 것은 진짜로 여러 개의 인터페이스가 있는 것 처럼 동작하게 하는 것이다. 시나리오는 이렇다. 특정한 고정 포트에서 수신을 기다리는 데몬 프로세스가 있는데 이런 데몬 프로세스가 컴퓨터마나 한 개씩 떠 있고 이들 간의 통신을 통해서 뭔가 일을 처리하는 프로그램을 만들었다고 하자. 그것을 여러 대의 컴퓨터가 아니라 한대의 컴퓨터에서 실험을 하고 싶은데 한 컴퓨터에서 띄우면 두번 째 데몬부터는 해당 포트를 잡을 수가 없다. (이미 처음의 데몬이 그 포트를 잡고 있으니까.)

네트워크 카드가 여러 개 있다면 각 네트워크 카드를 지정해서 데몬을 띄우게 함으로써(자바의 경우 NetworkInterface.getByName 메쏘드로 이것을 구현할 수 있다.) 해결이 되지만 컴퓨터에 네트워크 카드도 하나 뿐이다. 그럼 어떻게 해야 하나?

자세히 알지도 못하고 자세히 쓸 힘도 안 남아 있으므로 간단히 요약한다. 리눅스에서는 가짜 인터페이스를 만드는 기능이 있는데 이를 tap 이라 한다. tap을 하나 만들고 또 브리지를 만들고 이 브리지에 tap과 진짜 네트워크 카드를 연결한 뒤 한 데몬은 tap 인터페이스에서 다른 데몬은 진짜 네트워크 카드 위에서 실행하면 된다. 설정하는 과정은 다음과 같다. (tap은 여러 개 만들 수 있으므로 여러 개의 데몬으로도 가능할 것 같다. 안해봤음.)
$ sudo tunctl -u newcat -t tap0
Set 'tap0' persistent and owned by uid 1000
$ sudo ifconfig eth0 <주소> up promisc
$ sudo ifconfig tap0 <주소> up promisc
$ sudo brctl addbr br0
$ sudo brctl addif br0 eth0
$ sudo brctl addif br0 tap0
eth0 (진짜 네트워크 카드)의 주소를 DHCP로 받아온다면 ifconfig에서 주소를 주지말고 대신
$ sudo dhclient eth0
라고 해주면 된다. 이 상태에서 만약 데몬이 자신이 동작할 네트워크 인터페이스 이름을 인자로 가지고 실행된다고 하면 다음고 같이 실행하면 된다.
$ daemon eth0
$ daemon tap0
(주의: 무슨 이유에서인지 이렇게 해 놓으면 외부 네트워크와는 연결이 안되는 증세가 나타났다. 뭘 잘못 한건지... 실험이 끝나면 다음과 같이 브리지에서 인터페이스를 떼내어 주면 되살아 난다.)
$ sudo brctl delif br0 eth0
posted by 신묘군