ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Debian Squeeze에서 iPhone 자동 마운트 팝업 해제 (usbmuxd)
    Operating System/Linux & Unix 2012. 5. 3. 15:09

    회사에서 사용하는 리눅스 배포판 Ubuntu 10.04 LTS를 

    사장님의 지시로 인해 Debian으로 설치를 하였습니다.


    데스크탑으로 사용하기에는 Debian은 굉장히 불편하다고 생각하지만

    뭐 회사 기자재를 이용하는지라 지시에 따라서

    Debian Stable 버전인 Squeeze를 설치했습니다.


    Testing 버전인 Wheezy가 아니라 이 Squeeze를 설치한 이유는 

    Wheezy는 Gnome버전이 3.x대고 Squeeze는 2.x버전이기 때문입니다.


    아직까지는 Gnome 3.x버전이 너무 불편해서....

    Compiz 설정도 마치고 Firefox 12버전도 설치하고 여러 셋팅을 하고 

    사용하고 있던 중에 컴퓨터에 연결해둔 iPhone Dock에 iPhone을 거치시킬때마다

    이미지와 같은 팝업창이 뜨는게 굉장히 신경이 거슬렸습니다.




    이 팝업을 띄우는놈이 대체 누군가 해서 찾아보았습니다.


    우선 synaptic에서 iphone으로 검색을 해보았습니다.

    apt-cache가 아닌 synaptic으로 한 이유는 검색된 패키지들중에서

    현재 설치되어있는 패키지와 미설치 패키지를 구분하기 쉬워서입니다.


    이미지에서 보다싶이 usbmuxd 라는 놈이 검색결과에 나타나면서

    설치되어있는 패키지로 표시가 되는군요


    그래서 저 패키지를 삭제하려했더니만....

    뭔 의존성이 그리 많이 걸려있는지 Gnome까지 삭제한다고 나와버립니다.

    다음과 같은 방법으로 해결했습니다.


    터미널에서 


    $ ps aux | grep usbmuxd

    usbmux    5293  0.0  0.0  19076   944 ?        S    14:30   0:00 /usr/sbin/usbmuxd -u -U usbmux


    요렇게 현재 실행중인게 나와주네요

    그래 이놈이 범인이구나 해서 사용법을 확인하기 위해 --help를 해보았습니다.

    $ /usr/sbin/usbmuxd --help

    usage: usbmuxd [options]

    -h|--help                 Print this message.

    -v|--verbose              Be verbose (use twice or more to increase).

    -f|--foreground           Do not daemonize (implies one -v).

    -U|--user USER            Change to this user after startup (needs usb privileges).

    -u|--udev                 Run in udev operation mode.

    -x|--exit                 Tell a running instance to exit if there are no devices

                             connected (must be in udev mode).

    -X|--force-exit           Tell a running instance to exit, even if there are still

                             devices connected (always works).



    usage를 확인해보니

    /usr/sbin/usbmuxd -u -U usbmux

    -u가 udev모드로 실행이 되고 

    -U로 usbmux유저로 실행이 되는 중이라는것을  파악했습니다.

    실행 옵션중에 -u가 udev모드라니...

    혹시나 해서 저 프로세스를 죽이고 iPhone을 다시 뺏다 꼽으니 

    역시나 저 프로세스가 다시 실행이 되어버리더군요.....


    그래서 udev rules.d디렉토리에 가보았습니다.

    $ cd /lib/udev/rules.d

    $ ls

    .... 85-usbmuxd.rules ....

    바로 저 rules 파일때문에 프로세스를 죽여도 이벤트(?)가 발생하면

    프로세스가 다시 실행이 되어버리는 거였습니다.


    udev man 페이지를 살펴보아도 udev rules를 제거하는 명령이 딱히 보이지가 않아서

    저는 저 파일을 vim으로 열어서 실행 명령들을 모두 주석으로 처리해줬습니다.


    $ sudo vim 85-usbmuxd.rules

    # ACTION=="add", SUBSYSTEM=="usb", OWNER="usbmux", ......

    # ACTION=="remove", SUBSYSTEM=="usb", .......


    파일을 저장한뒤 udev를 재시작합니다.

    $ sudo /etc/init.d/udev restart

    현재 실행중인 usbmuxd를 종료합니다.

    $ sudo /usr/sbin/usbmuxd -X

    이제 다시 iPhone을 Dock에서 뺐다 다시 꼽으면


    와 같이 팝업이 뜨게 되는데 저는 이 기능도 사용하지 않을 것이기때문에 

    다음과 같이 설정하고 확인을 눌러줬습니다.



    왜 이런 패키지를 Gnome과 같이 의존성으로 묶어놨는지 이해가 안되는군요 ~_~ㅋ


    댓글 0

Designed by Tistory.