리눅스에서 삼바와 XMBC 스트리밍 느린문제 해결기 ( Very Slow Samba and CCX(XBMC) Stre
윈도우에서 삼바로 스트리밍이 느린 경우 조치 , How to solve that streaming is very slow by Samba and CCX (XBMC) Streaming on Linux
윈도우에서 사용하던 CCXStream Server 를 Linux 깔고 XBMC(XBOX용 미디어플레이라고 보면된다) 에서 연결 했을때 뚝뚝 끊김 현상이있어서 프로그램문제려니 했다.
윈도우에서는 잘되는데 리눅스에는 뭔가 잘 안맞나 보다 했는데 이문제가 Samba에서도 발생하는 것이었다.
리눅스에서 구동하는 Samba에서 공유하는 폴더에 대해 파일복사는 빠른데 바로 영화를 플레이하는 경우에는 플레이어가 먹통이 되는 현상이 발생했다.
그래서 파일복사를 해봤는데 파일은 금방 복사가 잘되는 것이다. 그래서 Samba가 Vista에서는 뭔가 좀 잘 안되나, 혹시 설정을 좀 바꿔줘야 되나 싶어서 구글링을 해보았는데
(http://forums.whirlpool.net.au/forum-replies-archive.cfm/1048809.html) 뜻하지 않았던 내용을 찾게되었는데... 내용중에는
1) /etc/samba/smb.conf 에 다음 옵션 추가라하는 내용
socket options=TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF 8092
2) 하드디스크 퍼포먼스를 확인해보라는 내용
hdparm -tT /dev/sda /dev/sdb /dev/sdc /dev/sdd /dev/sde
3) 마지막으로 해결했다는 질문자의 내용이 있었는데 뜻밖에 랜카드드라이버 문제였다. 그래서 혹시나해서 확인해보았는데 같은 문제였던것이다.
내용인즉 보드내장형 리얼텍(Realtek) 8111B gigabit ethernet 내장형( chip on-board )을 쓰고있는데 리눅스에는 r8169 드라이버 설치되어있다는 문제였다. 그래서 얼른 확인해보니 (요즘은 그놈에 있는 장치관리자에서 바로확인가능하다 편리...)
아닌게 아니라 똑 같은 상황이었다. 그래서 얼른 리얼텍 사이트(http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&PNid=5&PFid=5&Level=5&Conn=4&DownTypeID=3&GetDown=false)에 접속해서 드라이버를 다운 받고 설치했다. 다운받은 파일에는 설치과정이 친절하게 잘 안내되어있다. 그리고 위와 같은 문제가 많았는지 r8169를 제거하는 내용부터 기술도 잘 되어 있었다.
그리고 설치끝에 재 부팅하고 나니... 그동안 느리던 삼바(Samba)나 XBMC 스트리밍이 빵빵 뚤린다. ㅎㅎ 이럴게 좋을수가. 스트리밍일 때는 뭔가 (파일전송과는) 다른 방식으로 처리되는가 보다 싶은 생각이들었다.
어째든 의외 방법으로 해결되었지만... 드라이버설치가 예전 같지 않게 요즘은 참 설치가 잘되다 싶어서 좋다.
다음은 드라이버 설치방법 (다운받으면 Readme 에 포함되어있다.) CentOS5 였고 아래대로 하면 순조로왔다.
================ Readme ========================
Check whether the built-in driver, r8169.ko (or r8169.o for kernel 2.4.x), is installed.
# lsmod | grep r8169
If it is installed, please remove it.
# rmmod r8169
note: If the built-in driver cannot removed by rmmod, please edit /etc/modprobe.conf and comment 'alias eth0 r8169'. Then, remmove it again or reboot your computer.
Unpack the tarball :
# tar vjxf r8168-8.aaa.bb.tar.bz2
Change to the directory:
# cd r8168-8.aaa.bb
If you are running the target kernel, then you should be able to do :
# make clean modules (as root or with sudo)
# make install
# depmod -a
# insmod ./src/r8168.ko (or r8168.o in linux kernel 2.4.x)
You can check whether the driver is loaded by using following commands.
# lsmod | grep r8168
# ifconfig -a
If there is a device name, ethX, shown on the monitor, the linux
driver is loaded. Then, you can use the following command to activate
the ethX.
# ifconfig ethX up
,where X=0,1,2,...
=============================================