20101027 :: 우분투 리눅스에서 아이폰 테더링하기

아이폰을 사용하면서 한 가지 아쉬웠던 것 들 중 하나는 윈도나 맥이 아니면 테더링을 할 수 없었다는 것이었습니다. 아이폰 자체가 업무 등에 도움이 되기는 하지만 정작 노트북을 가지고 다니면서 네트워크에 접속해야 할 필요가 있는 경우에는 아이튠즈가 설치된 윈도가 참 아쉽다는 생각을 했었지요. 요 문제로 KT 다니는 아는 동생에게 물어보았더니, 애플이 안해주면 어쩔 수 없다고 ㅠㅠ 하더군요.

하지만 우분투에서도 아이폰 테더링용 드라이버가 나와있더군요. 애플이 공식적으로 배포한 것은 아닌 듯 합니다. 아 여기서 오픈소스의 위력을 새삼 또 깨닫게 되네요.

테더링 드라이버 설치

아이폰 테더링 드라이버는 Mike Sierra 님이 소개해주신 Ubuntu Tweak 이라는 프로그램을 통해 설치할 수 있습니다.

Ubuntu Tweak을 설치하여 실행한 후, 프로그램 > 소스센터에서 “other” 항목을 선택하면 iPhone Ethernet Driver for USB 항목을 발견할 수 있습니다. 이 항목을 선택하기 위해서는 우측 하단에 “잠금풀기”를 클릭하여 비밀번호를 입력합니다.

아이폰 테더링 드라이버의 저장소를 추가한 후, ‘새로고침’ 버튼을 클릭하여 소프트웨어를 내려받을 수 있도록 준비합니다.

그런 다음, 우분투 소프트웨어센터에서 iPhone으로 검색하여 드라이버를 설치할 수 있습니다.

아이폰에서 테더링하기

아이폰에서 테더링을 설정하는 방법은 다음과 같습니다.

1. 설정 > 일반 > 네트워크로 진입합니다.

2. 인터넷 테더링을 선택하고, ‘켬’으로 설정합니다.

인터넷 테더링이 작동하는 방식은 블루투스를 이용하거나 USB 연결 케이블을 이용하는 방법이 있습니다. 아이튠즈에서는 이 둘 모두를 지원하지만, 여기서 설치할 수 있는 드라이버는 USB를 통한 연결만을 지원합니다.

3. 테더링이 켜진 상태에서 아이폰을 USB 케이블로 노트북에 연결합니다.

4. 우분투에서는 새로운 유선 네트워크를 감지하고 인터넷에 연결됩니다.

5. 연결이 완료되면, 아이폰 상단에는 푸른색 막대가 신비스럽게 깜빡이며 테더링 연결 중임을 알려줍니다.

20101010 :: [회상] 우분투 리눅스를 재설치한 사연

하지말라면 하지 말자

역시, 하지말란 건 하면 안되는 것이었나 봅니다. 우분투 10.04를 잘 쓰고 있었고, 게다가 이 버전은 장기지원판으로 상당한 안정성을 자랑하고 있었습니다만, 몇 일 전 우분투 10.10의 개발버전 (알파인지 베타인지는 정확히 기억이 나지 않는 군요)이 배포된다는 소식을 듣고 또 몹쓸 “최신 버전 선호 사상”이 돋아나는 바람에 사고를 치고 말았습니다.

sudo update-manager -d

네, 뭣도 모르고 그 위험하다는 배포판 업그레이드를 감행해 버린 것이었습니다. 사실 상 우분투 10.04 버전도 알파2 상태에서 업그레이드를 감행했으나, 의외로 상당히 안정적으로 동작해주었고 (당시에는 무선랜이 안잡힌다던가 하는 많은 문제들이 있었음에도) 또, 9.10 버전부터는 대략 설치 후에 이것 저것 손봐야 하는 부분도 별로 없었기에 큰 두려움은 없었습니다.

어쨌든 배포판업그레이드는 무리 없이 끝이 났고 매일 매일 새로이 업데이트 되는 백여개의 패키지들을 꼬박꼬박 설치해가면서 잘 사용하고 있었는데, 몇 일전에 드디어 문제가 발생했습니다.

부팅 중 그래픽 모드로 전환이 되지 않고 커서만 검은 화면에서 껌뻑거리는 형태로 가만히 멈춰있더군요.

라이브 CD로 부팅해서 손을 볼까했는데, 어쩐 일인지 라이브CD 부팅 불가. 환장하고 미칠 노릇이었습니다. 결국 밀어버리고 새로 설치하기로 결심하였는데, 문제는 설치시디(라이브시디)로 설치절차를 로드하지도 못하고 그냥 먹통이 되는 경우가 있었습니다. (이는 10.04 버전의 새 설치시디의 문제였는지는 모르겠습니다. 하지만 9.10 으로 설치해서 업그레이드하기에는 도저히 엄두가 나지 않더군요)

어찌어찌해서 껐다 켰다를 반복하다보니, 열 번 중 한 번 꼴로 설치 화면이 정상적으로 노출되어 설치를 시작합니다. 윈도 7을 설치해보지 않아서 비교가 어렵지만 우분투의 설치 과정은 버전이 올라갈수록 조금씩 조금씩 더 다듬어져 사용하기 편리하게 업그레이드가 확실히 되고 있다고 느껴집니다. (게다가 속도도 아주 빠릅니다.)

재설치 후 문제

이것은 확실히 10.04를 클린 셋업했을 때 생기는 문제가 확실해 보입니다만, 설치를 마치고 재부팅을 하고 나니, 역시 또 부팅이 되지 않습니다. (부팅은 되는 것으로보이는데, 로그온 화면의 그 뚜둥하는 사운드가 들리고 커서도 나타나지만 여기에서 더 이상 진전이 되지 않습니다.) GRUB 화면에서 복구 모드를 선택하여 failsafe graphic mode로 부팅을 하면 정상적인 화면으로 로그인이 가능했습니다. 아마 그래픽 드라이버의 버전 문제인 듯 합니다. 여기서 가장 먼저 그래픽 드라이버 업데이트를 실시해야 합니다. 다른 업데이트를 아무 생각없이 설치하고 재부팅되면 나아지겠지…라고 했더니, 왠걸 이번에는 복구 모드로 부팅 중에 아예 벽돌이 되어버리더군요. 결국 눈물을 머금고 다음의 과정을 반복하여 다시 설치했습니다.

  1. 설치 시디를 넣고 설치 선택 화면을 기다린다. (많은 경우 설치 화면 윈도우를 제대로 그리지 못하는데, 이것은 설치 시디의 문제 혹은 CD롬의 문제로 보입니다.)
  2. 설치 언어는 ‘영어’를 선택한다. 한 번 이상 우분투를 설치해 본 경험이 있다면, 설치 과정을 영어로 선택한다고 해서 문제가 될 것은 없다.
  3. 설치 시에는 기존에 우분투가 설치되어 있던 파티션을 지정할 수 있도록 파티션을 수동으로 나누는 과정을 반드시 선택해야 한다.
  4. 설치가 완료되면 재부팅이 된다. 이 때 Recovery mode를 선택하고, 이후 나타나는 모드 선택화면에서 Failsafe Graphic Mode를 선택한다.
  5. 정상적으로 로그인 화면이 뜬다.
  6. 로그인하여 곧바로 SYSTEM > Administration > Hardware Drivers 를 선택한다. 사용 가능한 드라이버의 목록이 표시되는데, 이 때 recommended라 표시된 최신 버전 (current version)의 드라이버를 설치한다.
  7. 재부팅한다. 이 후부터는 정상적으로 부팅이 된다.

이상하게 느껴지는 것이 있다면, 9.04부터 설치하여 사용하고 9.04  > 9.10 > 10.04 > 10.10의 순차적인 버전 업데이트를 실시한 컴퓨터가 한 순간에 맛이 간다는게 좀 이상합니다. 아무래도 10.04 버전의 그래픽 드라이버가 제 노트북과 잘 맞지 않았는데 10.10 업그레이드 시에 해당 버전으로 회귀 (혹은 강제 업데이트)가 되어 문제가 발생한 것이 아닌가 싶습니다. 그전까지는 잘 사용했는데 10.04를 시디로 설치하고 맨 처음에 그 문제가 반복해서 나타났었거든요.

아무튼 오늘의 교훈은

고수님들의 말씀은 조상님들의 그것과 크게 다르지 않다. 위험하니 하지 말라면 하지 말자.

가 되겠군요.  우리 날짜로 내일이면 우분투 10.10의 정식 릴리즈가 있을 거라는 블로터 기사를 본 듯 합니다. (수상합니다. 전통적으로 해당 월의 거의 마지막 즈음에 릴리즈가 되어 왔는데, 특별히 10년 10월 10일에 배포하는 이벤트라도 준비하나 봅니다) 어쨌거나 정식버전이 릴리즈 되었다 하더라도 통상 RC에서는 베타를 거친 사람들은 어지간한 문제는 손수 해결했고, 그것이 RC에서는 보완되지 않아 문제가 발견되지 않는 경우가 많습니다. 또 문제가 발생했을 때 그 해법이 인터넷에 돌아다니기 시작하려면 어느 정도 시간이 필요하니, 우분투 새 버전은 서둘러 릴리즈 날짜에 업그레이드 하는 것은 추천하고 싶지 않습니다. 아 이 건 저 뿐만 아니라 다른 고수님들도 많이 하시는 말씀이니 들으시면 손해볼 것은 없다고 생각되네요 🙂

(그럼에도 불구하고 전 데스크톱 2대에는 모두 10.10을 또 냉큼 설치했더랬습니다. 뭐하는 짓인지…)

20100608 :: 리눅스에서 아이폰 동영상 인코딩하기 (ffmpeg)

지난 포스팅에서 문제가 되었던 부분은 결국 극복을 못했습니다. 워드프레스가 RC 버전이라 생긴 문제인지.. 암튼 계속 이어나갑니다.

Medibuntu의 힘을 빌리다.

Medibuntu 라는 Ubuntu의 사촌쯤 되는 배포판이 있습니다. 미디어 처리에 특화된 녀석으로 온갖 비디오, 오디오 코덱들을 많이 가지고 있는 녀석입니다. 이 녀석을 사용하면 아이폰용 동영상을 거뜬히 인코딩할 수 있다고 합니다.

그렇다고 사용하고 있는 우분투 배포판을 미디분투로 변신 시킬 필요는 없습니다. 다만 코덱 설치와 관련하여 Medibuntu의 저장소(repository)만 살짝 빌려올 생각입니다. 이 부분은 우분투 공식 문서 사이트를 참조하여 설치하도록 합니다. (해당 링크의 페이지에서 Adding The Repository 부분의 명령을 복사하여 터미널에서 실행합니다.)[1. 이 부분을 본문에 삽입하니 포스트가 저장이 안되는 문제가 있어서 뺐습니다.]

이 명령은 Medibuntu에서 사용하는 저장소를 추가하고, 키 인증을 받고, 패키지 목록을 새로 고치는 과정을 수행합니다. 이 과정 중에 인증에 실패했다는 경고가 나올 수 있지만 무시하면 됩니다.

그럼 혹시 모르니, 다음 패키지들을 설치 및 재설치 해보도록 하겠습니다.

  • ffmpeg
  • x264
  • faac
  • libavcodec-extra-52

명령어는 다음과 같습니다.

[bash]$ sudo apt-get –reinstall install ffmpeg x264 faac libavcodec-extra-52[/bash]

여기까지 하면 거의 준비가 끝났습니다. 다만, ffmpeg의 옵션이 매우 복잡합니다. 그래서 역시 구글링에서 얻은 옵션 값을 이용하여 스크립트를 하나 만들었습니다.

단 두 줄로 이루어졌습니다만, 좀 깁니다..

[bash]#!/bin/bash
ffmpeg -i "$1" -r 29.97 -vcodec libx264 -s 480×320 -aspect 16:9 -flags +loop -cmp +chroma -deblockalpha 0 -deblockbeta 0 -b 1000k -maxrate 1250k -bufsize 4M -bt 256k -refs 1 -coder 0 -me_method umh -me_range 16 -subq 7 -partitions +parti4x4+parti8x8+partp8x8 -g 250 -keyint_min 35 -level 30 -qmin 10 -qmax 51 -qcomp 0.6 -trellis 2 -sc_threshold 40 -i_qfactor 0.71 -acodec libfaac -ab 80k -ar 48000 -ac 2 "$1.mp4"[/bash]

위의 내용을 복사하여 메모장(gEdit)등에 붙여넣고 적당한 이름을 주고 저장합니다. 패스로 지정된 영역[1. /usr/share/bin 등에 저장하면 일반 내장 명령어처럼 호출할 수 있습니다.]에 저장해도 좋지만 여기서는 귀찮으니, 그냥 동영상 파일들이 있는 디렉터리에 저장하도록 합니다. 위 스크립트는 영상을 인코딩하여 원래 이름 뒤에 .mp4라는 확장자를 붙여서 그 결과를 만들어 내는 명령입니다.

예를 들어 이 스크립트를 aip 라는 이름을 주었다고 가정하겠습니다. 이제 해당 파일을 ‘실행가능하도록’ 만들어야 합니다. 리눅스는 파일 확장자 따위는 필요 없고 다만 ‘실행 가능한 권한’이 있으면 그냥 실행할 수 있습니다. (참 권한에 민감합니다…)

[bash]$ chmod 755 aip[/bash]

만약, 권한이 없다고 한다면 sudo chmod 755 aip로 해 줍니다. 제 경우에는 ntfs 드라이브에서 실행하니 권한이 없다고 하여 sudo 를 통해 실행 권한을 주었습니다.

그리고 해당 디렉터리에서 ./aip “개인의 취향 E01.avi” 라고 입력합니다. (이때 파일명 중간에 빈칸이 들어가서 따옴표로 일부러 둘러쌌습니다.) 그러자 인코딩이 됩니다. 조금 기다렸다 q를 눌러 중지하고 우선 컴퓨터 상에서 제대로 재생되는지 확인해 봅니다. 아무래도 제대로 재생이 되는 듯 하군요.

이제 인코딩을 한 방에 끝내버리겠습니다. 개인의 취향은 총 16편으로 구성되어 있고, 제 PC에는 “개인의취향.E01.avi”와 같은 식으로 이름이 정리되어 있습니다. 이를 한 방에 하려면 for 구문을 쓰면 되지요.

$ for x in 개인의*; do ./aip “$x” ;done

이렇게 작업을 시작한지 40분이 경과되었고, 고작 2편이 인코딩을 조금 전에 시작한 것 같습니다. h264 코덱은 인코딩에 엄청나게 많은 시간이 걸리는 군요. 인코딩 작업이 끝나면, 동영상이 제대로 아이폰에서 재생되는지 확인하고 후속 포스팅을 올리도록 하겠습니다.

긴 글 읽어주셔서 감사합니다.

20010607 :: 리눅스에서 아이폰 동영상 인코딩하기 (ffmpeg) – 예고편

아이폰으로 동영상을 볼 생각

저 보다 먼저 아이폰을 산 지인들의 이야기를 들어보면 다들 “16기가로는 좀 부족해요”라는 의견이 압도적이었습니다. 그래서 저도 32기가짜리를 샀습니다만… 80여개의 어플을 설치하고 100곡이 넘는 음악과 예닐곱편의 팟캐스트 동영상을 넣어 다니지만 고작 3기가 가량 썼을 뿐이더군요. 흠… 동영상을 넣어다니면서 볼 생각은 못했습니다. 가뜩이나 배터리 사정도 넉넉치 않은 아이폰에… 굳이 동영상을 이동하면서 볼 이유는 없을 것 같았거든요. 근데 최근에 드라마 ‘개인의 취향’을 너무 재밌게 봤는데, 이 녀석을 아이폰에 넣어 다녀 보고 싶었습니다. 아이폰용으로 동영상을 인코딩하는 방법은 H.264 / AAC 코덱을 사용하여 mpeg4 비디오로 인코딩을 하면 된다고 합니다. 다음 팟 인코더나 유마일 인코더 같은 무료 인코더는 예전 경험으로 화질이 매우 안습이었기 때문에, 다른 해법을 조금 더 찾아보기로 하였습니다.

아 이폰에 딱맞는 인코더, handbrake

그 러다 알게된 것이 handbrake라는 인코딩 프로그램입니다. 프랑스에서 만들었다고 하는데 아이폰에 적합한 설정을 자동으로 해준다는 훌륭한 프로그램이더군요. 그래서 설치해보려 하였지만, 윈도 환경에서는 .NET 프레임워크를 설치해야 하고 우분투 환경에서는 새 버전의 GNOME과 호환성 문제가 있어서 그냥은 설치가 안된다고 합니다. (저장소에서 일일빌드를 받아서 설치하면 된다고 하는데, 키 인증이 계속 실패해서 포기했습니다.)

결국 믿을 건 ffmpeg

역시 믿을 건 ffmpeg 밖에 없는 것 같습니다. 그런데 문제는 h.264비디오나 aac 오디오를 처리할 수 있는 코덱이 없다는 것입니다. 조금 알아보니 h264는 x264라는 이름으로 공개 코덱이 있다고 하는군요. aac 같은 경우에는 faac라는 이름으로 존재합니다. 그리고 이러한 코덱들을 설치하기 위해서는 몇 가지 준비가 필요하다고 합니다. 제한된 코덱이나 유틸리티들을 사용해야 하는데, (주로 특정 국가에서 저작권 등의 문제로 기본적으로 설치되지 않은 녀석들이라고 합니다.) 그래서 다음 명령어를 통해 제한된 요소들을 추가로 설치해 줍니다.

$ sudo apt-get install ubuntu-restritct-extras[1. $는 프롬프트 표시입니다. 실제 키보드로 입력하지 않습니다]

그리고 그 외의 음악 파일이나 영상 파일의 인코딩을 위해서는 다음 명령을 통해 제한된 일부 코덱을 추가로 설치할 수 있습니다.

$ sudo apt-get install libavcodec-extra-52

그런데, 이렇게 하더라도 AAC 인코더가 실질적으로 지원되지는 않는 문제가 있습니다. 그래서 또 구글링에 구글링… 대부분의 답변은 이 것들을 싹 밀어버리고 ffmpeg을 새로 컴파일해야 한다고 하는군요. (아 귀찮아 ㅠ_ㅠ)

이후 부분에 내용을 빼지 않으면 포스팅이 저장이 되지 않아, 굳이 예고편으로 먼저 발행합니다. 자세한 이야기는 다음편에….

20100427 :: 플래시 플레이어 10.1로 업그레이드 하기

Flash on Linux

리눅스에서 가장 신경이 많이 쓰이는 부분 중 하나는 바로 플래시가 사용된 웹사이트를 이용하는 순간입니다. 윈도 플랫폼에서는 비교적 성능도 나쁘지 않고 많이 안정된 상태이지만 리눅스 버전의 플래시 플레이어가 돌기 시작하면 대부분의 웹사이트에서는 CPU 사용률이 VirtualBox를 통해 윈도를 실행했을 때 보다도 더욱 미친 듯이 뛰어 오르기 시작합니다. 그러다 뻗어버리기도 하지요. 다행히 파이어폭스 3.6.3(4?)에서부터는 플러그인을 독립적인 프로세스로 실행하여 플래시가 죽더라도 웹 브라우저를 다시 시작해야 하는 불상사는 발생하지 않습니다만, 여전히 불안정하지요.

최신 버전 플래시로 업그레이드하기

게다가 요즘은 많은 웹사이트에서 파일 업로드 기능을 플래시로 제공하는 곳이 많습니다. 비교적 대용량의 파일을 업로드 하도록 한다거나, 혹은 여러 개의 파일을 동시에 업로드하는데는 기존의 웹 브라우저의 기능으로는 어려움이 많기 때문입니다.[1. HTML5에서는 멀티 파일 업로드가 지원되며, 파일 탐색기에서 끌어다 놓는 것도 지원됩니다. 이미 구글 크롬과 파이어폭스 3.6 이상을 사용하면 Gmail에서 이 기능을 사용할 수 있습니다.] 그런데 아무래도 불안정하다보니 파일을 업로드 하는 중간에 플러그인이 죽어버리거나, 파일 업로드가 완료되지 못하고 계속 멈추거나 하는 증상이 발생하곤 합니다.

그래서 한 번 모험을 시도해보기로 했습니다. 플래시를 최신 버전으로 업그레이드 해보는 것입니다. * 주의 : 이 방법으로 제 경우에는 비교적 안정적인 동작을 보입니다만, 시스템의 상태에 따라서는 저와 반대되는 결과가 나타날 수 있습니다.

설치된 플래시 버전 확인

먼저 시스템에 설치된 플래시의 버전을 확인해 봅니다. 아마 패키지 형태로 설치가 되었을 것입니다. 제 기억이 맞다면 파이어폭스 설치 후 플래시 플러그인 설치 화면에서 더나은 버전이 저장소에 있다고 하여 apt-get 명령으로 설치했던 것 같습니다. [2. 플래시 플러그인 패키지의 이름은 adobe-flashplugin입니다. 따라서 sudo apt-get install adobe-flashplugin이라는 명령으로 터미널에서 설치가 가능합니다.] 패키지 상의 버전을 확인하기 위해서는 dpkg 명령을 사용합니다.

dpkg -l | grep flash

그럼 결과가 아래와 비슷하게 보입니다.

ii        adobe-flashplugin                                        10.0.45.2-1karmic1

현재 플래시 플레이어의 최신 버전은 10.1 입니다. 지금 설치되어 있는 버전보다는 최신 버전이군요. 최신 버전이긴하지만 아직 공식적으로 배포된 버전은 아닙니다.  다운로드는 adobe labs 사이트에서 내려 받을 수 있습니다. 리눅스용 파일은 tar.gz 포맷으로 압축되어 있는 파일입니다. 해당 파일을 다운로드 받아 압축을 풀어 놓습니다. (여기서는 홈 폴더 아래에 downloads 라는 폴더에 압축을 풀어 두었다고 가정합니다.) 압축을 푸니 눈에 익은 .deb 파일이 아니라 .so 파일입니다. 예전에 아파치 서버 같은 거 보면 .so 라는 확장자를 가진 파일을 종종 본 듯도 합니다만, 이거 어떻게 설치해야 하는지 난감합니다. 어쩌면 그냥 파일만 교체하면 될 듯도 합니다. 그래서 한 번 찾아보기로 합니다.

find / -name “libflashplayer.so” (/ 슬래시를 빼먹지 않도록 주의. 빼 먹으면 현재 디렉토리에서부터 찾게 됩니다.)

이렇게 찾으면 결과 중에 ‘/usr/lib/adobe-flashplugin/libflashplayer.so‘라는 항목이 보입니다. 이 곳이 플래시 플레이어 플러그인 파일이 존재하는 곳입니다. 해당 디렉터리로 이동하여, 혹시 모르니 기존 파일을 백업해 놓습니다.

cd /usr/lib/adobe-flashplugin

sudo mv libflashplayer.so libflashplayer.so.backup [3. 팁: 파일 이름이 긴 경우에는 앞에 몇 글자만 입력하고 tab 키를 누르면 자동 완성 됩니다.]

그리고 아까 압축을 풀어놓은 파일을 이 곳으로 가져옵니다.

sudo cp ~/downloads/libflashplayer.so ./

이렇게 파일 이름이 길 때는 탭 신공이 큰 위력을 발휘합니다. 이제 브라우저를 재시작하면 됩니다.

복구방법

문제가 발생한 경우에는 아래와 같이 원상 복구하면 됩니다.

cd /usr/lib/adobe-flashplugin

sudo rm libflashplayer.so

sudo mv libflashplayer.so.backup libflashplayer.so

혹은 다음과 같이 apt-get 명령을 통해서 삭제 후 재설치 하는 방법도 있겠네요

sudo apt-get remove adobe-flashplugin; sudo apt-get install adobe-flashplugin[4. 팁2 : 패키지 이름의 경우에도 자동완성이 됩니다. 그리고 세미 콜론은 두 줄로 나눠쓸 명령어를 한 줄로 합쳐주는 기능입니다]