linux에서 nvidia 최신 그래픽카드 (케플러, 맥스웰 급)을 사용시 tearing이 생기는 문제가 있다. 이게 웹브라우저 페이지 스크롤만 해도 발생해서 눈에 거슬린다.

다행히도 해결책이 있다.

Option  "metamodes" "nvidia-auto-select +0+0 { ForceFullCompositionPipeline = On }"

위 코드를 X 설정 파일 Device 부분에 넣으면 해결된다.

출처 : https://wiki.archlinux.org/index.php/NVIDIA#Avoid_tearing_with_GeForce_500.2F600.2F700.2F900_series_cards

Posted by lispholic
,

지금까지 키매핑을 변경하려고 .Xmodmap 파일을 수정했는데 더 편한 방법을 알아냈다.

caps lock을 ctrl 로 바꾸려면 X 설정 파일의 키보드 관련 섹션에 아래 내용을 넣으면 된다.

Option                "XkbOptions" "ctrl:nocaps"


.Xmodmap을 쓸 때는 종종 X를 띄운 후 적용이 안되서 수동으로 적용해야 하는 경우가 있었는데, 이 방식으로 하니 잘 동작한다.

Posted by lispholic
,

linux 에서 TV 보기

linux 2011. 8. 17. 21:06

최근에 리눅스에서 TV를 보려고 삽질을 좀 했는데 내용을 간단히 정리해본다.

일단 삽질을 줄이려면 오디오가 DMA 출력이 되는 TV카드를 구해야 한다. 무슨 소린가 하면 TV카드에서 사운드 카드 쪽으로 별도로 케이블을 연결하지 않아도 사운드가 잘 나오는 카드라야 한다. DMA가 안되는 경우에도 잡는게 가능한 것 같지만 나는 실패했다. (화면만 나오거나 소리만 나오거나) 인터넷 검색을 해보면 "화면은 나오는데 소리가 안나요"하는 글을 매우 많이 볼 수 있다.
TV 카드 설명에 "오디오 버스 마스터링 지원" 같은 문구가 있으면 되는 것 같다. 내가 사용한 카드는 SKY HDTV 인데 꽤 오래된 모델인데도 이 기능이 잘 된다.

이런 카드를 구했으면 아래 링크된 내용을 참고하여 PC의 사운드 카드와, TV 카드의 사운드 장치 2개를 잡으면 된다. http://linuxtv.org/wiki/index.php/Cx88_devices_(cx2388x)
아래 블로그에 설명이 비교적 잘 되어있다.

두번째와 세번째 링크에 나오는 내용이 핵심이다. 저대로 잘 따라하면 mplayer 에서 영상과 사운드가 함께 나온다.

다만 mplayer 는 tv를 보기에는 좀 불편하다. 그래서 프로그램을 좀 찾아봤는데, tv-viewer 라는 게 쓸만하다. mplayer 에 대해 프론트 엔드로 동작한다.

사용하려면

  1. 설치한다. (당연한소리...)
  2. Options -> Preferences 를 선택하여 적당하게 환경설정을 한다. 주로 Analog , Video , Audio 쪽 옵션을 잘 설정하면 된다.
  3. 설정한 옵션 이외에 나머지 옵션 (위 링크한 블로그에서 mplayer 실행할 때 붙인 긴 옵션)을 Advanced -> Additional Options For Mplayer -> Additional Mplayer Options에 넣어준다. 나는 아래 내용을 넣었다.
    tv:// -tv driver=v4l2:forceaudio:immediatemode=0:alsa:adevice=hw.1,0:amode=2
  4. Options -> Station Editor 를 선택하여 채널 편집기를 띄운후 Station Search 를 눌러 채널을 검색한다.
  5. 화면 아래쪽의 목록 버튼을 누르면 채널 리스트 화면이 뜬다.
  6. TV 버튼을 누르면 화면과 소리가 나온다. (나와야 한다.)

이 프로그램을 쓰면 무려 마우스질로 채널을 변경하는게 가능해진다 !!! 키보드로도 가능하다. 다만 아쉬운게 좀 있는데

  • 채널 목록 순서가 잘못되어 UI동작이 약간 이상하다. 예를 들어 화면의 아래쪽 화살표를 누르거나 키보드의 Page Down을 누르면 한단계 아래 채널로 바뀌는데, 화면상으로는 채널 선택이 한 칸 위로 올라간다. 맞는 동작이긴 한데 보기에 이상하다. 목록을 반대순서로 보여주는게 더 좋지 않을까?
    이걸 해결해보려고 채널 목록 파일안의 채널 순서를 뒤집어보기도 했는데 이상한 동작은 그대로다.
  • TV를 보는중에 Preferences 메뉴를 선택하면 높은 확률로 죽는다. TV보다가 정지시키고 띄우려고 해도 마찬가지.

tvtime 에 비해 나은 점은 mplayer 기반이다보니 여러가지 설정할 수 있는게 많다는 것이다. 자체 옵션에 deinterlacing 설정도 있다. (다만 나는 막눈이다보니 이것저것 바꿔바도 차이점을 모르겠다.)

Posted by lispholic
,

요즘 안드로이드 프로그램을 만드는데, 테스트를 위해 회사 동료의 모토로이를 잠시 빌렸다(감사^^). 모토로이에 프로그램을 넣으려면 윈도우에서는 USB 드라이버를 깔아야 하지만, 리눅스에서는 그럴 필요없이 몇 가지 설정만 하면 된다.

일단 /etc/udev/rules.d/51-android.rules 파일을 만들고 아래 내용을 넣는다.

SUBSYSTEM=="usb", SYSFS{idVendor}=="22b8", MODE="0666"
SUBSYSTEM=="usb|usb_device", SYSFS{idVendor}=="22b8", MODE="0660", GROUP="plugdev"
SUBSYSTEM=="usb|usb_device", ATTR{idVendor}=="22b8", ATTR{idProduct}=="0c02", SYMLINK+="android_adb"
SUBSYSTEM=="usb|usb_device", ATTR{idVendor}=="22b8", ATTR{idProduct}=="0c01", SYMLINK+="android_fastboot"

idVendor22b8는 모토롤라 제조사 코드이다. 다른 회사 코드는 여기 에서 확인해보면 된다. 이 파일에 실행권한을 주고 자신을 usb,plugdev 그룹에 넣는다. 이렇게 하면 root가 아니어도 모토로이에 접근할 수 있다.

모토로이에 프로그램을 띄워보니 역시 에뮬레이터와는 크게 차이가 있다. 이것저것 테스트해보고 싶지만 내 것이 아니다보니 마음대로 할 수가 없다. (모토로이 너무 비싸...)

참고한 곳

Posted by lispholic
,
지난달에 nvidia에서 vdpau 라는 리눅스용 hd 가속 기능을 공개했다. (ms window 의 purevideo 와 같은 것으로 보면 될듯.)

http://www.phoronix.com/scan.php?page=article&item=nvidia_180_vdpau&num=1
http://en.wikipedia.org/wiki/VDPAU

mplayer 패치까지 함께 공개해서 mplayer 에서 이 기능을 써 볼 수 있다. (현재는 Xine , VLC , MythTV 등 다른 동영상 플레이어에서도 이 기능을 쓸 수 있다.)


설치방법
  1. ftp://download.nvidia.com/XFree86/Linux-x86/180.18/NVIDIA-Linux-x86-180.18-pkg1.run 를 다운받아 설치한다.
  2. subversion , gcc , make 등 소스를 받아서 컴파일하는데 필요한 프로그램을 설치한다.
  3. ftp://download.nvidia.com/XFree86/vdpau/mplayer-vdpau-3263604.tar.bz2 를 다운받아 압축을 푼다.
  4. gcc 버전이 4.3.2 인 경우 압축을 푼 디렉토리안의 checkout-patch-build.sh 파일의 ./configure 의 바로 위에 아래 내용을 추가한다.
       export CHOST="i686-pc-linux-gnu"
       export CFLAGS="-O3 -pipe -fomit-frame-pointer"
       export CXXFLAGS="${CFLAGS}"
  5. ./configure 에 자신이 필요한 옵션을 추가한다. (--language=ko 등 )
  6. 경건한 마음으로 checkout-patch-build.sh 를 실행시킨다.
  7. 빌드가 문제없이 끝났으면 make install 명령으로 설치한다.
  8. $HOME/.mplayer/codecs.conf 파일이 있으면 다른이름으로 바꾸어 놓는다.
  9. README.txt 파일에 나오는 샘플 동영상을 돌려보고 동영상 가속기능이 잘되면 마구 기뻐한다.
    http://samples.mplayerhq.hu.nyud.net/V-codecs/h264/PAFF/Grey.ts
    ./mplayer -vo vdpau -vc ffh264vdpau Grey.ts
                 
    http://samples.mplayerhq.hu.nyud.net/V-codecs/h264/nature_704x576_25Hz_1500kbits.h264
    ./mplayer -vo vdpau -vc ffh264vdpau nature_704x576_25Hz_1500kbits.h264

내 경우 vdpau 기능을 쓰지 않으면 cpu 점유율이 대략 20% 정도 나오는데 vdpau 를 쓰면 3% 이하로 떨어진다.

주의할 점은 geforce8xxx 부터 이 기능을 쓸 수 있다는 것이다. 그나마 8xxx 대는 vc1 가속기능은 제대로 안된다. 앞으로 드라이버가 좀더 안정화되면 제대로 지원될 것 같다.



Posted by lispholic
,