(EDIT 2009.03.13 windows에서 rsync server를 사용하는 것은 포기했음. 자세한 사정은 이 글 끝의 덧..들을 참고. 아래는 그냥 기록상 남겨둠. 다른 사람에게는 도움이 될 지도 모르니...)


서설

노트북에서 작업을 하다가 갑자기 비교적 대량의 데이터를 백업해야 할 일이 생겼는데 FTP로 옮기고 있자니 짜증이 났다. 뭔가 일이 자동으로 일어났으면 좋겠는데... 그런 생각을 하다가 노트북 데이터의 자동 백업 방법을 생각해 보니 제일 바람직한 것은 rsync를 사용하는 것이었다. 버젼 컨트롤이 필요한 것들은 lab 한 구석에 돌리는 debian 서버에 subversion(옛날 것들)과 git(요즘 것들)을 혼합하여 저장하지만, 특별히 버젼 컨트롤은 필요 없이 단순히 동기화만 필요한 것들에는 굳이 subversion이나 git을 사용할 필요가 없어 보였기 때문이다. 버젼 컨트롤에는 아무래도 이러저러한 추가 정보들이 필요하다 보니 단순히 동기화를 위해서 버젼 컨트롤 소프트웨어를 사용하는 것도 낭비라고 여겨졌다. 그래서 lab에서 사용하는 windows 데스크탑이 HDD도 넉넉하니 단순 무식하게 rsync로 자동으로 동기화가 되도록만 해 놓고 싶었다.

이 글은 linux client(ubuntu 사용)와 windows server(win xp 사용) 사이에 rsync 설정을 한 삽질기이다.


서버

일단 windows가 서버가 되어야 하니 rsync server를 설치해야 하는데 찾아 보니 이런 것들이 있다.

DeltaCopy는 rsync server이긴 한데 이 글을 읽어보면 domain controller하고 얽혀서 별로 좋지가 않다고 한다. 서버가 windows xp인데다가 우리 랩도 windows domain controller하고는 담 쌓고 지낸지가 몇년이 됐으니 DeltaCopy는 나도 패스다.

cwRsync는 특별히 새로 나온 소프트웨어라기보다는 기존에 cygwin과 rsync를 직접 설치하던 것을 cygwin에서 필요한 부분만을 가져오고 rsync를 그 위에 설치해 주고 rsync 서버를 daemon mode로 (그러니까 윈도우즈 서비스로) 설정하는 것까지를 편하게 해 준다. cygwin에서 뭘 가져올지를 시간들여 생각할 필요가 없다. 그러니 나를 위해서도 이것이 좋은 선택이다.

cwRsync는 위 홈페이지에서 링크를 따라가면 sourceforge에서 다운로드할 수 있는데, client는 필요 없으니 서버만 다운로드한다. (cwRsyncServer_3.0.1_Installer.zip) 설치는 간단하다. 특별히 신경 써서 뭘 할 필요도 없다. 단, 설명을 읽어보면 서비스 시작 형태가 수동으로 설정된다고 하는데, 관리도구->서비스 에서 rsync server를 찾아서 자동으로 시작하도록 해 준다. (시작은 좀 있다가 한다.) 그리고 실제의 서버 설정을 하는데, 시작메뉴에서 cwRsync를 찾아서 rsyncd.conf를 누르면 설정파일 내용이 메모장에 뜬다.

rsync는 기본적으로 module 단위로 동작한다. 서버의 설정 파일에 모듈들을 지정하면 외부에서는 서버이름과 그 서버에 있는 모듈들이 보이는 식이다. 서버이름/모듈이름 의 형식으로 접근하게 된다. 설정파일에서 기본적인 것은 그냥 있는 것(test라는 모듈이 이미 하나 정의돼 있을 거다.)을 대충 고쳐서 써도 되는데 중요한 것은 charset을 처리하도록 손을 봐 줘야 한다는 거다. 일단 upload할 모듈의 끄트머리에 charset = utf-8을 적어준다. 한글 파일 이름만을 위해서는 윈도우즈 기본 charset인 cp949나 euc-kr을 써도 되는데 유럽쪽 글자들이 들어 있는 파일 이름을 위해서는 아무래도 유니코드가 좋다. 여기에서 utf-8로 정해줬다고 바로 그대로 동작하는 건 아니다. 이 글이나 이 글을 읽어 보면 cwRsync에 딸려 오는 cygwin이 유니코드를 사용하도록 돼 있지 않다고 한다. 그 글들에서 따라가 보면 어떤 일본어로 된 utf8-cygwin이라는 페이지가 뜨는데 거기에서 cygwin1-dll-20-11-18.tar.bz2을 다운로드한다. 압축파일을 열면 cygwin1.dll이라는 파일이 나오는데 그걸 C:\Program Files\ICW\Bin 아래에 덮어 씌운다.

그럼 그 다음에 rsync 서비스를 시작해 준다. 이 이후에 중간 중간 설정 파일을 바꾸면서 시험해 볼 때는 매번 서비스를 중지하고 다시 시작해야 할 필요는 없다. 설정파일을 바꾸면 바로 적용되는 듯하다.


클라이언트

클라이언트는 뭐 특별히 설명할 것이 없다. 한가지만 언급하자면 rsync 프로그램에 먹일 옵션으로는 -ausx --iconv=utf-8 정도가 좋은 것 같다. 물론 리눅스 클라이언트에서 사용하는 charset이 utf-8일 때 얘기고 옛날 식 euc-kr을 쓴다면 -ausx --iconv=euc-kr로 하면 될 것이다.


자동화

자동화는 클라이언트가 리눅스이니 cron 같은 것을 쓰면 된다. 이것도 여기서 특별히 설명할 것은 없네. 다른 데 더 좋은 설명이 많을 테니까.



어째 용두사미 격의 삽질기네. 뭐, 삽질에 시간이 제일 많이 걸린 부분이 저 위에 utf-8 관련한 정보를 찾는 시간이었으니 오히려 이런 식이 제 격인 것 같기도 하고. ㅋㅋ


그 날 이후

덧. 2009. 03. 12 컴퓨터를 갈아 엎고 나서 위에 기록한 거 대로 다시 설치했는데 이게 제대로 안된다. 문제는 아직 뭔지 모르겠다. cygrunsrv.exe를 실행하면 error 1053을 내고 서비스가 시작되지 않는다.

덧. 2009. 03. 13 cwRsync도 어차피 cygwin과 rsync를 설치하기 쉽게 패키징 한 것이다. 그래서 cygwin을 사용하지 않는 것을 찾아보았는데 Unison이라는 것을 찾았다. 그런데 이것도 문제가 있다. windows에 server로 설치하기 위해서는 socket method와 remote shell method를 선택할 수 있는데 socket method는 보안을 구현하기 거시기하다. 그런데 remote shell method로서 추천하고 있는 것이 결국 cygwin + ssh을 설치하는 것이다. 이래서는 어차피 다시 cygwin으로 돌아온 것이다. 그럴 바에는 그냥 cygwin + ssh + rsync로 가는 것이 훨씬 나을 것 같다. 그런데 다시 cygwin + ssh + rsync로 한다고 해도 앞에 덧. 03.12에서처럼 cwRsync에서의 알 수 없는 문제가 또 생길지도 모르겠다.

덧. 2009. 03. 13 cygwin을 직접 설치하고 rsync를 setup하려고 해도 같은 문제가 생긴다. cygwin 설치와 관련된 것은 아닌 것 같다. 그보다는 win xp에서의 permission setting 같은 것과 관련이 있는 것으로 보인다. 이것을 해결하기 위해서는 cygrunsrv.exe 프로그램에 관계된 자세한 문서를 찾아봐야 할 것 같은데 잘 못찾겠다. 정 안되면 소스를 분석해봐야겠다. 근데 그러려면 일이 커질 확률이 꽤 있다.

또 다른 해결책으로는 windows 머신에 virtualbox 같은 가상 머신을 설치하고 windows 방화벽에서 port forwarding을 할 수 있다. 그런데 이렇게 하는 것은 문제 해결 자체보다 해야 할 것이 많아서(가상 머신 설치와 설정 등) 별로 내키지 않는다. 그래도 이 방법에 대해서는 내가 잘 알고 있기 때문에 cygrunsrv.exe를 분석하는 것 보다는 빨리 해결할 수 있을 것 같다.

덧. 2009. 03. 13 이것 저것 살펴 보고 나서 내가 cygrunsrv.exe의 문제를 해결할 수 없을 것이라고 판단했다. 물론 시간을 들이면 못 하지는 않을 것 같지만 들이는 시간에 비해서 얻는 것이 미약하다. 당분간은 rsync 없이 ftp로 살아야겠다. 어차피 데이터는 한쪽으로만 흐르고 지워지는 데이터는 거의 없고 주로 교내 네트웍에서 자료를 옮기기 때문에 네트웍 대역폭을 신경 쓸 필요가 없고 공용 서버들도 아니고 critical service를 돌리는 컴퓨터들도 아니기 때문에 시스템 load에도 신경 쓸 필요가 없다.

고로... 그냥 ftp만 이용하다가 여름 정도 도면 cygwin과 cygrunsrv.exe에 중요한 변화가 있는지 체크해 보는 것이 좋을 것 같다.

SET LANG=ko_KR.EUC-KR

환경을 변경해 주면 해결이 되네요..
4.0.4 에서 테스트 되었습니다.

이미 알고 계실지도 모르겠으나..
해결한 방법을 전해 드립니다.
2010.05.31 10:33

이것 저것 찾아보았지만 dualhead를 사용하기 위해서는 xrandr(Xorg RandR)을 통해서 하는 것이 현재로서는 가장 수월한 것 같다. (실제로는 옛날 방법들은 잘 먹질 않는다 -.-;)

Virtual screen 설정
일단 xrandr로 dualhead를 사용하기 위해서는 내부화면이든 외부 화면이든 이것들을 합한 것은 하나의 virtual screen에 들어가야 한다. 그런데 intel 945GM chipset의 경우 virtual screen의 크기가 2048x2048을 넘으면 그래픽 가속 기능이 지원되지 않는다고 한다. 그렇게 되면 화면이 진짜 답답하게 움직인다. 그건 용납할 수가 없으니 어쩔 수 없이 virtual screen의 크기는 일단 최대로 잡아서 2048x2048로 설정한다. 이것은 /etc/X11/xorg.conf 에서

Section "Screen"
   Identifier "Default Screen"
   Monitor "Configured Monitor"
   Device "Configured Video Device"
   SubSection "Display"
     Virtual 2048 2048
   EndSubSection
EndSection

와 같이 수정하여 설정할 수 있다.

외부 monitor 활성화 방법
터미널에서 xrandr 명령어를 통해서 활성화할 수 있다. intel 945GM 칩셋의 문제로 virtual screen이 2048x2048을 넘을 수 없기 때문에 외부 화면은 내부 화면의 아래쪽에 붙도록 설정한다. (오른쪽이나 왼쪽에 붙게 하면 가로 길이가 2048을 넘는다. ex, 1366 + 1024 = 2390. 위, 아래로는 여유가 있다. ex, 768 + 1200 = 1968. 그런데 오른쪽이 아니라 아래에 붙게 하면 간혹 좀 헷갈린다. 뭐, 그래도 어쩔 수 없다.)
$ xrandr --output VGA --auto --below LVDS
위 명령에서 VGA는 외부 output이고 LVDS는 내부 output이다. 끌 때는
$ xrandr --output VGA --off
라고 한다.

내부/외부 monitor의 우선순위
xrandr이 훌륭히 일을 처리해 주긴 하지만 중요한 문제가 하나 있다. xrandr로 외부 모니터를 활성화시키면 이것이 주화면이 된다는 것이다. 이것은 VAIO의 내부 LCD가 두번째 CRTC에서만 구동되기 때문이고, 외부 VGA output은 첫번째와 두번째 CRTC 중 어느쪽이라도 사용할 수 있기 때문이다. 그리고 모니터 두개가 다 활성화되면 첫번째 CRTC에서 구동되는 외부 모니터가 목록상 첫번째 녀석이기 때문에 이것이 주화면이 된다. 이걸 제대로 바로잡는 것은 내 힘으로 해결할 수 있는 건 아닌 듯하다.

어쨌거나 이것이 일으키는 가장 큰 문제는 dualhead 상황에서 gnome-panel이 외부 화면으로 옮겨 붙어 버린다는 것이다. 보통의 경우라면 그다지 큰 문제는 아니겠지만 presentation을 하는 경우라면 외부 모니터가 활성화되자마자 사람들은 내 gnome-panel을 보게 될 것이다. 뭔가 찜찜해지게 된다. 다음 글에서 이것을 해결하기 위한 트릭을 찾았다. (아래 URL 참조) 모든 것이 자동으로 후다닥 일어나게 하려면 Fn+F7 펑션키로 구동되는 스크립트에 위 글에서 찾은 꽁수도 포함시켜야 할 듯 하다. 어쨌든 다음의 간단한 명령어를 사용한다.
$ gconftool-2 --type int --set /apps/panel/toplevels/top_panel_screen0/monitor 1
위의 명령어는 외부 모니터가 활성화될 때마다 항상 실행해야 한다. 내부 모니터 하나만 활성화되어 있을 때에는 gnome이 이것을 monitor 0로 인식한다. 실제로 CRTC 1에서 돌고 있더라도 순서만 인식한다. 여기에 외부 모니터가 활성화되면 CRTC 0에서 구동되는 외부 모니터가 순서상 앞이기 때문에 monitor 0가 되고 내부 모니터는 밀려서 monitor 1이 된다. 외부 모니터를 끄면 다시 내부 모니터가 monitor 0가 되는 식이다.

Function key (Fn+F7) 동작 설정
이를 위해서는 두가지 일을 해야 한다.
  • Function key (Fn+F7)를 누르는 acpi event가 발생했을 때 어떤 스크립트가 실행될 것인지를 정한다.
  • 실제 실행될 스크립트를 작성한다.

첫번째 것은 /etc/acpi/events/ 에 acpi가 구동될 때 읽어들일 file을 만들어서 스크립트를 등록하는 작업이다.


곁다리 열기



VAIO TZ27LN 모델의 경우에 등록해야 하는 키 입력 event는 acpi_listen 명령으로 알 수가 있다. terminal에서 다음과 같이 명령하고
$ acpi_listen -t 10
10초 안에 Fn+F7 (LCD와 모니터 그림이 있음) 키를 두세번 천천히 누른다. (-t 10은 10초 동안 acpi event를 잘 듣고 화면에 출력해 준다는 뜻. 그런데 man page를 다 읽어보진 않았지만 acpid에 의해 잡히지 않는, 그러니까 이미 등록돼 있지 않은 event만 여기에 잡히는 것 같음.)
yhyang@beren:~$ acpi_listen -t 5
sony/hotkey SPIC 00000001 00000012
sony/hotkey SPIC 00000001 0000003b
sony/hotkey SPIC 00000001 00000012
sony/hotkey SPIC 00000001 0000003b
sony/hotkey SPIC 00000001 00000012
sony/hotkey SPIC 00000001 0000003b
대충 위와 같은 결과를 보여준다. 0012로 끝나는 것은 키가 눌렸을 때, 003b로 끝나는 것은 키가 release됐을 때의 event이다. (위의 예에서는 Fn+F7 키를 5초 안에 세번 눌렀음.) http://ubuntuforums.org/showthread.php?p=3986738&highlight=VGA#post3986738 에 있는 것과는 약간 다른데 HKEY가 아니고 SPIC가 붙어 있다. 무슨 차이가 있는지는 잘 모르겠지만 일단은 실제 acpi_listen으로 알아낸 것을 쓰기로 한다.

앞에서 알아낸 event를 등록하기 위해서는 /etc/acpi/events/ 에 설정 file을 만들어 넣어야 한다. 이름은 아무거나 해도 되는데 http://ubuntuforums.org/showthread.php?p=3986738&highlight=VGA#post3986738 에 있는 것을 따라서 sony-lcd-mode로 한다. 내용도 거의 그대로 하는데 screen_VGAon() 함수에서 외부 모니터를 켜는 방법을 그냥 --auto가 아니고 --below LVDS가 되게 한다.

function screen_VGAon(){
$SU "export DISPLAY=$DISPLAY; xrandr --output $EXTERNAL_OUTPUT --auto --below $INTERNAL_OUTPUT"
}


패널 위치 조정

그리고 앞에서 panel의 위치를 재조정해주는 것을 추가한다. (이게 잘 안되네)


잘 안되는 이유를 찾아봤는데 다음 글에서와 같이 dbus session id와 관련이 있는 듯하다.
http://ubuntuforums.org/archive/index.php/t-961726.html

일단 DBUS_SESSION_BUS_ADDRESS를 읽어들이는 부분을 추가한다.
# Figure out DBUS session id
source /home/$ON_USER/.dbus/session-bus/`cat /var/lib/dbus/machine-id`-0
export DBUS_SESSION_BUS_ADDRESS

그리고 screen_VGAon() 함수에 panel 위치를 재조정해주는 것을 추가한다.
function screen_VGAon(){
$SU "DISPLAY=$DISPLAY xrandr --output $EXTERNAL_OUTPUT --auto --below $INTERNAL_OUTPUT"
sleep 2
$SU "DISPLAY=$DISPLAY DBUS_SESSION_BUS_ADDRESS=$DBUS_SESSION_BUS_ADDRESS gconftool-2 --type int --set /apps/panel/toplevels/top_panel_screen0/monitor 1"
}

여기에서 중간에 sleep 2가 들어간 것은 외부 모니터를 켠 후에 2초간 기다렸다가 panel 위치를 재조정하라는 것인데, 외부 모니터를 켜고 바로 gconftool을 실행하면 panel이 먹통이 돼 버린다. 이유는 아직 못 찾았다. 최소 2초 기다려서 panel이 외부 모니터로 넘어가면 gconftool을 실행한다. sleep 2 정도면 외부 모니터가 켜지고 약간의 지연 시간이 있는 것을 감안하면 외부 모니터에 실제 보이는 시간은 정말 순간이다. 외부 모니터가 반응이 너무 좋다면 낭패 -.-;;



TODO
  • 화면을 두개를 쓰면 배경화면이 두 화면에 늘어져서 보인다. 한 화면에 하나씩 보이도록 설정 할 것. 이것은 nautilus와 compiz의 충돌 때문이다.
    그런데, 다음 글에 보면 Ubuntu 9.04에 가서나 해결될 것이라고 한다. -.-;;
    http://brainstorm.ubuntu.com/idea/93/


참조 URL들

ps. Tomboy에 적어 놓았던 것을 그냥 긁어 붙이니 영 이상하다. html로 export해서 그것을 그냥 긁어 붙여도 이상하고 html 모드에서 소스를 긁어 붙여도 역시 이상하다. 깔끔하게 옮겨지질 않네.


아... 이건 별로 영양가도 없고 시간 많이 잡아먹는 삽질인데, 어쨌든 시작한 거라 일단은 어디까지 할 수 있나 알아보도록 하자. (이런 거 할 때가 아닌데...)

연결 준비

일단 PC쪽 환경은 VAIO VGN-TZ27LN 노트북에 ubuntu 8.10 Ibex Intrepid가 깔려 있는 상태이다. PC쪽에서 bluetooth를 가능하게 하려면 대충 다음의 패키지들을 설치해야 한다. 다른 패키지가 필요하다고 하면 그것들도 같이 설치해 준다.

  • bluez-gnome: bluetooth applet을 띄우고 각종 bluetooth 기기들의 등록과 연결을 처리한다. (이건 아마 대부분 깔려 있을 것임)
  • gnome-vfs-obexftp: bluetooth 기능이 있는 기기와 파일을 주고 받으려면 필요하다고 한다.
  • gnome-bluetooth: gnome-obex-server가 들어 있다. 폰 쪽에서 연결할 때 필요하다.

폰 쪽은 모델마다 다르겠지만, IM-S370 모델의 경우는 메뉴->sky 프로그램->블루투스에서 설정을 할 수가 있다. 일단 블루투스 on/off 에 들어가서 bluetooth 장치의 전원을 켠다.(당연하지) 그리고 자기정보에서 이름을 바꿔준다. 안 바꿔줘도 되지만 기왕이면 자기가 알아보기 쉬운 이름을 정해주는 것이 좋겠다. 그리고 환경설정에서 보안모드1(보통)으로 바꿔준다. 폰의 설명서에는 모드1에서는 경우에 따라서 패스키를 생략할 수 있는 모드라고 돼 있는데, 다른 문서(Service authorization issues 부분)를 보면 bluetooth에 본래 security mode가 셋 있다. 1에서는 패스키를 아예 사용하지 않고, 2에서는 service level에서만 사용하고, 3에서는 link level에서 사용한다고 한다. 즉, 3에서는 서비스 레벨에서 패스키를 이미 교환했던 건 어쨌건 link를 만들기 전에 항상 패스키를 사용하는 것이고, 2에서는 서비스 레벨에서 패스키를 이미 교환했으면 다시 또 패스키를 교환하지는 않는 것으로 추정된다. (더 자세한 것은 내가 bluetooth를 전공할 것도 아니라 살펴보지 않았다.) 어쨌든, 폰에서 보안모드2(패스키 항상 확인)을 선택하면 PC와 연결할 때 PC쪽에서 패스키를 설정할 수가 없다. 폰에서 보안모드1(패스키 때때로 생략)을 선택하면 처음 연결할 때 한번 패스키를 확인한다.

기기 등록

PC에서 블루투스 애플릿에 오른쪽 클릭을 하고 Setup new device...를 누르면 bluetooth device wizard가 실행된다. 여기에서 다음을 누르고 조금 기다라면 자신의 폰이 목록에 나온다. (앞에서 이름을 설정했으면 그 이름이 보인다.) 폰을 선택하고 다음을 누르면 connecting... 어쩌구 하면서 그 다음 줄에 패스키(PIN) 번호가 나온다. 폰 쪽에서는 패스키를 입력하라는 화면으로 바뀌었을 것이고 PC쪽에서 나온 PIN 번호를 폰에서도 입력해 준다. 그러면 일단 service level에서 키를 교환하고 이게 계속 유지되는 모양이다. 이렇게 한번 인증하고 나면 나중에 폰의 등록 기기 목록에서도 PC 쪽이 나오는 것을 확인할 수 있다.

사용하기

일단 인증은 했지만 그 다음에 할 수 있는 것은 사실 그리 많지 않은데 (사실은 다른 건 어떻게 하는지 못 찾아봤다.) 우선 파일 전송을 해 보도록 한다. PC에서 bluetooth applet을 오른쪽 클릭하고 Browse files on device...를 선택하면 기계들 목록이 나온다. 거기에서 자신의 폰을 선택하면 nautilus 창이 하나 새로 뜨고 거기에 폰에 저장돼 있는 사진 목록이 뜬다. 여기에서 파일을 옮기거나 이것 저것을 할 수 있다. 그외에 nautilus 창에서 전송하고 싶은 file에 오른쪽 클릭을 한 후에 보내기 context menu에서 바로 폰으로 file을 전송할 수도 있다.

폰 쪽에서 PC로 연결하기 위해서는 gnome-obex-server라는 것이 필요한데 gnome-bluetooth 패키지를 설치하면 들어 있다. 설치 후에 주메뉴->보조 프로그램->Bluetooth File Sharing을 선택해서 실행하면 서버가 실행되고 시스템 트레이(notification area)에 서버 동작 상태를 알려주는 아이콘이 생긴다.

file 전송 중일 때는 아이콘이 움직임


폰 쪽에서 PC로 연결을 하면 PC 쪽에서는 연결을 허용할 것인지를 묻는 화면이 나오는데, 자신의 폰이라면 "이 기기에서 항상 연결"을 선택하면 다시 허용 여부를 묻지 않고 항상 연결한다. 폰 쪽에서 PC로 연결할 때에는 그냥 file 전송 외에 주소록 항목을 전송할 수도 있다. vcf 형식으로 항목 하나당 한 file로 전송된다.

폰에서 이미지 파일을 전송했을 때

폰에서 주소록 항목을 전송했을 때


문제점들

문제는 몇 가지가 있는데, 일단 gnome-phone-manager라는 것이 동작하지 않는다. 이 프로그램은 bluetooth를 통해서 폰의 이러저러한 소소한 기능들(메시지 보내기/받기, 주소록 싱크, 일정 싱크 등등)을 PC에서 이용할 수 있도록 해준다고 한다. 이 패키지를 깔면 gnokii-common, libbtctl4, libgnokii3, libgnomebt0, libical0 등이 같이 깔린다. 하지만 SKY 폰하고는 연결이 되지 않는다. nokia 계열 폰하고는 잘 붙는 모양이다.

폰에서 PC로 파일을 전송하면 이미지 파일이든 주소록 항목이든 모두 사용자의 홈 디렉토리에 저장된다. 성가신데 저장 위치를 바꾸려면 gconf-editor로 설정을 바꿔줘야 한다. gnome-obex-server 인터페이스 자체에서 설정할 수 있는 방법을 제공하지 않으니 불편하다.

PC에서 폰으로 전송할 수 있는 것은 이미지 파일 중에서도 jpg 형식 뿐인 것 같다. (주소록 항목(vcf file)을 전송하는 것은 시험해 보지 않았음) 그것도 보통 아무 file이나 전송하면 SKY 폰의 문제인지 file 크기가 지원되지 않는 것이라고 메시지를 내고 폰에 저장되지 않는다.

결론

뭐, 결국 현 상황에서 bluetooth로 폰을 활용하는 것은 폰에서 찍은 사진을 데이터 케이블을 사용하지 않으면서(당연이 sky에서 제공하지 않는 데이터 매니저를 사용하지 않으면서) ubuntu가 돌아가는 PC로 전송하는 것이다. 다른 것은 잘 안되거나 문제가 있거나 활용도가 떨어진다.


사실 이건 google에서 "ubuntu wlan blinking" 정도로만 검색해도 답이 나오는 것이긴 한데, 문제는 눈에 바로 보이는 답을 적용하면 해결이 안된다는 것이다. -.-;

구글링으로 바로 얻게 되는 답은 아마도 이것이 될 터인데:
http://blog.drinsama.de/erich/en/linux/2008052101-iwlwifi-blinking.html
VAIO-TZ27 모델의 경우는 저걸로 해결이 안된다. 보다 자세한 얘기들이 launchpad에 있는데, 한참을 읽어 보면 어떤 모델에서는 이렇게 하면 되고, 어떤 모델에서는 다르게 해야 하고 하는 얘기들이 한참 나온다. 결론부터 얘기하면 VAIO-TZ27의 경우에는 다음의 스크립트를 써야 한다.

#!/bin/sh
if [ "$IFACE" = "wlan0" ]; then
    for dir in /sys/class/leds/iwl-phy*assoc; do
        echo none > $dir/trigger
    done
fi

/sys/class/leds 디렉토리에 보면 총 4개의 subdirectory들이 있는데 "iwl-phy*:" 같은 접두어가 붙어 있는 TX, RX, assoc, radio이다. 추측해 보자면, TX, RX는 말 그대로 데이터가 송신/수신될 때, assoc는 무선랩 접속이 일어날 때 (associate이라고 부르는 동작이다), radio는 주변에 AP가 있을 때(그러니까 어디선가 전파가 잡히고 있을 때이다) wlan LED를 깜빡이게 하는 것 같다. 첫번째 링크에 있는 해결책이 본래 정석이 맞을 거다: AP가 잡힐 때와 association이 일어날 때는 깜빡여주는 게 좋고, TX/RX 일 때에는 성가시니 끈다. 그런데, 문제는 노트북 모델마다 저게 다른 것 같다는 거다. 아마 현재 커널(2.6.27-11)의 driver가 VAIO 모델에서 정확하게 들어맞지 않기 때문인 것 같다. 그래서 각각의 subdirectory의 trigger를 끄나 안 끄나 동작이 좀 요상해 지는데, 데이터가 송수신되고 있을 때 깜빡이는 건 assoc에 연결돼 있는 모양이다. VAIO는 이래저래 하드웨어가 잘 지원되지 않는 면이 있네. -.-;


  
트랙백 0  |  댓글   |
이 삽질을 시작한 이유: 그냥 windows가 싫어졌다. 랩에 있는 데스크탑이야 들어 있는 데이터도 많고 파티션이 분리 돼 있다고 해도 이것 저것 다시 설정하는 데에는 한 세월이다. 그리고 몇가지 OS 의존적인 프로그램들이 있어서 Linux로 갈아 엎는다는 것이 굉장한 스트레스를 준다. 어쩌면 갈아 엎고 나서 얼마 안 가 다시 windows로 돌아가야 할 일이 생길지도 모른다. 그래서, 노트북을 TZ25에서 TZ27로 바꾸게 된 김에 거기에 Linux를 깔기로 했다.

Hardware
아래 정보는 windows xp가 깔려 있던 상태에서 장치관리자 정보를 기록한 것이다.

모델명: VAIO VGN-TZ27LN

CPU+RAM: Intel Core2 CPU U7600 @ 1.20GHz, RAM 2GB

NICs: Marvell Yukon 88E8055 PCI-E Gigabit Ethernet Controller + Intel Wireless WiFi Link 4965AGN + Broadcom Bluetooth LAN Access Server Driver 20460A (확인요) + 1394 Net Adapter + HDAUDIO Soft Data Fax Modem with SmartCP

Block Devices: TOSHIBA MK1011GAH (100GB) + MATSHITA DVD-RAM UJ-852S USB Device + Ricoh Memory Stick Disk Device + Ricoh SD/MMC Disk Device

Display: Mobile Intel 945 Express Chipset x 2 + Plug-and-Play LCD Monitor

Pointing Devices: Alps Pointing-device for VAIO + HID 규격 마우스

Battery: MS ACPI-Compliant Control Method Battery (확인요)

Audio: Realtek High Definition Audio (확인요)

기타: Infineon Trusted Platform Module + Sony Visual Communication Camera VGP-VCC7 + TouchChip Fingerprint coprocessor

(확인요)라고 붙인 것은 windows가 알려주는 장치명이 정확한 것인지 확신하지 못하는 경우이다.

Linux Distribution
Linux 배포본이라면 본래 Debian을 좋아했지만 그거야 UI를 콘솔에서 직접 볼 일이 없을 때 얘기고, 노트북에 깔아서 쓰기에는 아무래도 Ubuntu가 좋을 것 같다. Ubuntu도 Debian에서 파생된 배포본이기 때문에 deb 패키징 시스템은 그대로 사용하고 있어서 RedHat 계열에 비해 패키지 관리는 수월할 것 같다(수월하다기보다 익숙하다고 해야 하려나 ㅋㅋ. 나는 Debian의 apt 시스템을 사랑한다). 같은 패키징 시스템을 쓴다고는 해도 Ubuntu가 Debian에 비해서 UI와 같이 사용자와의 interaction은 훨씬 친숙할 테니 이 점에서 Ubuntu가 Debian보다는 좋을 것 같다. 그런데 Ubuntu라고 해도 몇가지 종류 중에서 선택을 해야 하는데 예전부터 UI는 Gnome보다는 KDE를 좋아하긴 했지만 아무래도 Ubuntu에서는 Gnome 쪽이 KDE보다는 대세인 것으로 보인다. 잘 모를 때는 대세를 따르는 것이 좋다. 그래서 Ubuntu를 선택하기로 했다.

Ubuntu 정보: http://www.ubuntu.com/products/whatisubuntu/desktopedition

Ubuntu의 install disk는 Live CD로도 사용할 수 있고 설치용 disk로도 사용할 수 있다.

Install disk 다운로드 위치:
http://ftp.kaist.ac.kr/pub/ubuntu-cd/hardy/ubuntu-8.04.1-desktop-i386.iso

Live CD를 사용하지 안하고 netinst 이미지를 사용할 수도 있는데, 이 경우에는 사용자에게 보다 친숙한 GUI 환경에서 설치를 하지 않고 예전 Debian에서 사용되던 텍스트 형식의 설치 화면이 나온다. 그런데 네트웍 연결이 빠른 곳이라면 좋은 선택이지만 느린 곳에서 살고 있다면 netinst로 설치하는 작업이 스트레스가 될 수 있다. 기본적인 설치 시스템을 빼고 나머지 패키지들은 모조리 네트웍으로 다운로드 받아야 하기 때문이다.

Installation
일단 CD를 구운 다음 windows가 돌고 있는 상태에서 노트북에 삽입하면 이런 화면이 뜬다.

[Kubuntu CD Menu.png]

Full install을 선택하면 reboot option들이 나온다.

[reboot options]

물론, 꼭 windows가 도는 상태에서 CD를 넣어야 할 필요는 없다. 컴퓨터를 끄고 CD를 넣고 전원을 켜도 상관 없다. (오히려 이게 친숙한 방법이지) 어쨌거나 컴퓨터가 부팅될 때 CD가 들어가 있고 boot priority가 HDD보다 CD(혹은 DVD)가 높도록 돼 있기만 하면 된다.

[boot menu] 쿠분투 설치하기, 설치하지 않고 사용해 보기

설치하지 않고 사용해 보기를 선택해 보면, 아무런 설정을 하지 않고 동작되는 주변기기들은 대충 터치패드(두드리기 적용됨), 키보드 (function 키들 일부 동작함 - 음량조절 o, LCD 밝기 조절 o, sleep 모드 들어가기 x, LCD/외부화면 전환 x) 정도이다. 아무래도 노트북의 모든 기능들을 제대로 사용하기 위해서는 제대로 설치를 해봐야 알 듯하다.

Live CD로 부팅을 하고 나면 설치할 수 있는 방법이 두가지가 있다. 하나는 boot menu에서 "설치하지 않고 사용해 보기"를 선택하고 좀 둘러보다가 gnome 메뉴에서 설치 메뉴를 선택하는 방법이고, 또 하나는 boot menu에서 바로 설치 메뉴로 들어가는 방법이다. 결론적으로는 두 방법 모두 같은 GUI를 사용하기 때문에 차이는 없다고 봐도 된다.

파티션 문제
서버로 사용할 거라면 파티션을 잘게 나누는 것이 도움이 되지만 데스크탑으로 사용할 것이라면 굳이 이렇게 할 필요가 없다. lilo(linux loader, 예전에 kernel의 위치를 찾아서 부팅하기 위해서 사용되던 것으로 요즘에는 grub이 사용된다.)의 옛버전을 사용하던 리눅스에서는 서버로 쓰든 데스크탑으로 쓰든 /boot 디렉토리를 별도의 파티션으로 빼고 제일 첫번째 파티션으로 사용했다. 하지만 요즘의 lilo에서는 이렇게 할 필요가 없다. 또 요즘에는 lilo보다는 grub을 사용하는 경우가 대부분이다. 그러니 파티션을 여럿으로 쪼개야 하는 마지막 하나 남은 필요성도 없어진 셈이다. 그래서 일단은 전체 디스크를 사용한다. 그러면 swap 파티션만 따로 빼고 나머지는 남는 디스크를 통째로 사용한다.

설치 준비 단계는 6단계인데 사실 파티션 문제를 빼고 나면 고민할 만한 것들은 거의 없다. 실제 설치 단계에서는 따로 물어보거나 하는 것이 없다. 기다리다가 reboot하라는 메시지가 나오면 CD를 제거하고 reboot하면 된다.

Setup
Windows도 마찬가지이긴 하지만 Linux라는 물건은 설치가 끝났다고 만사가 끝나는 게 아니다. 동일한 목적을 위한 프로그램의 선택이 여러가지가 있기도 하고, 상업용으로 제작되어 돈주고 사는 OS가 아니기 때문에 어떤 패키지에는 직접 사용자가 이런 저런 설정을 해주어야 하는 경우도 있다. 또 나의 경우처럼 노트북에 설치하는 경우라면 노트북 하드웨어에 대한 자세한 기술 정보가 공개되지 않은 경우도 있어서 몇몇 주변기기에 대한 설정이 제대로 되어 있지 않을 수도 있고 아예 지원되지 않을 수도 있다. 이래저래 설치가 끝난 후에 진정한 삽질이 시작된다고 봐야 한다.

아래는 노트북에 따로 저장해 놓았던 설정 기록인데 한글로 적은 것도 있고 영어로 적은 것이 섞여있다. -.-;; 어쨌든 o가 앞에 붙은 것은 해결이 제대로 돼서 뒤에 더 손을 볼 필요가 없는 것이고, +는 어느정도 해결은 됐지만 언젠가 더 손을 봐야 하는 것이다. -의 경우는 문제는 있지만 아직 해결을 못 본 것이다.

o grub
USB로 설치를 했더니 주 HDD의 device가 이상해졌다. grub이 불평을 하면서 부팅을 중단하고 멈추면 일단 아무키나 누른다. 그러면 메뉴가 나온다. 첫번째 항목이 정상 부팅을 하는 옵션이다. 그런데 HDD device가 잘못 설정돼 있을 것이니 고쳐주지 않으면 제대로 부팅할 수 없다. 첫번재 항목을 선택한 상태에서 e를 누르면 부팅 명령을 수정한다. 몇가지 명령어로 구성돼 있는데, (hd1,0)라는 문자열이 있는 줄을 선택하고 e를 누른다. 그러면 그 명령줄이 화면에 표시되는데 hd1을 hd0로 바꾸고 enter를 친다. 다시 부팅 명령 화면으로 돌아간다. hd1이 hd0으로 바뀌어 있는지 확인한다. 그리고 b를 눌러 부팅한다. 일단 부팅하고 나면 /boot/grub/menu.lst를 열어서 hd1으로 돼 있는 것을 모두 hd0으로 바꾼다.

o firefox
ubuntu에는 kubuntu에서처럼 konqueror 같은 전용 browser가 설치되지 않고, 기본적으로 firefox가 설치됨. 한글화 돼 있음. 입맛에 맞는 addon을 설치하거나 개인적인 설정을 하는 것 외에 따로 손을 볼 만한 것은 없음.

o thunderbird
ubuntu에는 기본적으로 설치되지는 않음. aptitude를 이용하여 설치. 한글화 돼 있지 않음. 그러나 한글을 읽고 쓰는 데 문제는 없음.

font가 정말 보기 싫음. gnome 설정에서 모든 font를 Un Graphic으로 바꾸고 나도 제대로 적용되지 않음. gnome 설정을 따르지 않고 별도의 font 설정을 따르는 것으로 보임.
http://www.ubuntu.or.kr/viewtopic.php?f=11&t=785
위 글을 참고하여 ~/.mozilla-thunderbird/xxxx/chrome 디렉토리를 생성하고    userChrome.css를 새로 만들어 넣음.

o cpufreq
관련된 버그 리포트:
https://bugs.launchpad.net/ubuntu/+source/gnome-power-manager/+bug/156472

Run gconf-editor and set a gconf key:
/apps/gnome-power-manager/ui/cpufreq_show

o disable gnome zoom key binding (e.g. win+r)
gconf-editor를 열어서 /apps/compiz/plugins/ezoom 항목을 찾는다. 거기에서 win+r, win+c, win+l, win+v 등으로 설정돼 있는 항목들을 찾아서 disabled로 바꾼다. (win 키는 <Super>로 인식한다. 그러니 win+r이라면 <Super>r 로 돼 있다.)

o iPod sync
available via rhythmbox program

o automatic wifi connection at boot
solved by manual edit function of Gnome Network Manager

+ brightness control
밝기 조정은 원래 동작은 하지만 화면에 아이콘이 나오지는 않는다.
hal-system-lcd-get-brightness와 hal-system-lcd-set-brightness의 첫번째 line을 #!/bin/sh 에서 #!/bin/bash로 변경

그래도 별 변화는 못 느낀다. 저 workaround는 오래된 버그 리포트에서 찾은 것인데 화면에 아이콘이 나오는 것하고는 관계가 없는 것처럼 보인다.

+ HWP
http://charum.org/zb41/zboard.php?id=ubuntu&page=1&sn1=&divpage=1&category=5&sn=off&ss=on&sc=on&select_arrange=headnum&desc=asc&no=49
Install hwp2005 with a little hack. i.e. extend the trial period by removing install time info:
apps/haansoft/shared/installinformation/hwp2005trial/installedtime = 1216636557

window frame disappears! solve it!

+ bluetooth
https://answers.launchpad.net/ubuntu/+question/38592
Type in the command line:
$ sudo hciconfig hci0 reset
After that, vaio finds bluetooth mouse. anyway, it cannot connect to it using bluetooth manager.

http://ubuntuforums.org/showthread.php?p=609310
found a fix to work around a mouse problem. but this looks rather ugly.

Here is my own work around:
edit /etc/default/bluetooth and find HIDD_ENABLED and set to 1;
add "--connect xx:xx:xx:xx:xx:xx" option to the HIDD_OPTION;
restart a bluetooth service by run /etc/init.d/bluetooth start (or restart)

Still problem. I still need "hciconfig hci0 reset". I added this to /etc/rc.local. Now, mouse works. But, I don't know about other things.

See https://help.ubuntu.com/community/BluetoothSetup for further information.

+ sleep and hibernate mode
Commented out sonypi in /etc/init.d/hotkey-setup line 142, but sleep and hibernate still don't work. Anyway, sonypi module seems to have some problem with sony-laptop module. Remove it all the way.

https://bugs.launchpad.net/ubuntu/+source/linux-source-2.6.22/+bug/164398
This helps.
add the following line to /etc/default/acpi-support:
MODULES="iwl4965"
add the following line to /etc/pm/config.d/modules:
SUSPEND_MODULES="ehci_hcd uhci_hcd"
Now, suspend works.

Overall, wireless lan and usb things seem problematic.

Anyway, hibernation does not work yet.
See https://bugs.launchpad.net/ubuntu/+source/linux/+bug/129224 for future investigation

+ internet explorer
installed agent switcher plugin to firefox to fake agent type;
installed ies4linux;

see http://www.tatanka.com.br/ies4linux/page/Installation:Ubuntu
but, font setting is ugly, and there is no activex.

tried with --install-corefonts
noticed not a big change

According to http://www.gagme.com/greg/linux/activex-linux.php, I installed mfc42.dll to enable activex. Now, it seems to work in some cases, but not perfectly.

Bah! Long way to get it work! Forget about it, and just use real Windows XP in VirtualBox. (See virtual machine below)

o instant messenger (all using Pidgin)
MSN by MSN plugin

NateOn by NateOn plugin from http://dev.haz3.com/phpBB3/viewforum.php?f=9
added these two sources to /etc/apt/sources.list:
deb http://ppa.launchpad.net/pidgin-nateon/ubuntu hardy main
deb-src http://ppa.launchpad.net/pidgin-nateon/ubuntu hardy main
and then udpate and install pidgin-nateon package. However, apt will compain that the packages are from untrusted source. Nevermind. I need it.

o virtual machine
Installed virtualbox-ose + libqt3-mt + libxalan110 + libxerces27
Installed virtualbox-ose-modules-2.6.24-19-generic

Some tweaks: see https://help.ubuntu.com/community/VirtualBox
install scim-bridge-client-qt to solve Host key problem related to SCIM
run virtualbox with "taskset -c 1  virtualbox" to solve CPU consumption problem

Install VirtualBox Guest Addition to the guest OS. This will gives shared mouse activities between host and guest OS.

Run virtual machine without front-end screen by
$ taskset -c 1 VBoxSDL -vm <vmname>

VirtualBox doesn't start after I upgrade the kernel from 2.6.24-19 to 2.6.24-20. The reason is that VirtualBox needs a package named as virtualbox-ose-modules-2.6.24-20, but there is no such package yet. One solution is to revert to the previous kernel 2.6.24-19, and the other is to wait until virtualbox packages are updated. I don't have enough time to compile virtualbox-ose from scratch. :(

+ external monitor
found a hint at http://ubuntuforums.org/showthread.php?p=3986738&highlight=VGA#post3986738.
This post is pointing out a more detailed document at http://www.thinkwiki.org/wiki/Sample_Fn-F7_script. Check it out later.

+ webcam
It seems that I have to handle uvcvideo problem.

I found another solution without handling uvcvideo problem. (actually I don't know the relation between this solution and uvcvideo)
see http://wiki.mediati.org/Installation
svn co http://svn.mediati.org/svn/r5u870/trunk r5u870
cd r5u79
make
sudo make install
sudo sudo modprobe r5u870

Now, it works with ekiga. (I did not try other programs.)
Update: it works incorrectly after resuming from suspend.

+ printer driver
I could easily add HP 4300 dtn print driver using gnome's system-config-printer.

But, when I print plain ascii file containing unicode Korean characters, it prints as up-side-down question marks (?). There seems to be a font problem. I'll try installing Korean PS fonts.

o touchpad things
problems: touchpad sensitivity, tapping preference, tapped drag preference. See http://www.cs.utexas.edu/~erkin/home/tools/xorg.conf

o slow DNS problem

- evolution and google calendar

- battery care function
I need some way to handle battery care function.

- power saving!
I installed powertop to help enhancing battery life. let's do care about it later.

- cdrom auto power down for power saving



일단은 이 정도까지. 뭔가 더 건드리게 되면 update하기로 한다.

어라... 이미지는 캡쳐 안하고 그냥 글을 올렸었군.. -.-;;
2008.08.11 14:16

 이전  1   다음 

fotowall :: ncloud RSS Feeds today : 1   yesterday : 3
total : 177,043