태그 보관물: 리눅스

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 코덱은 인코딩에 엄청나게 많은 시간이 걸리는 군요. 인코딩 작업이 끝나면, 동영상이 제대로 아이폰에서 재생되는지 확인하고 후속 포스팅을 올리도록 하겠습니다.

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