ETC
ubuntu 7.10 x86_64 & x-fi
EcusE
2008. 1. 20. 14:48
2008.4 추가:
OSS(Open Sound System - 이하 OSS) 4.0 Build 1013버전부터 x-fi(creative Sound Blaster X-FI - 이하 x-fi)를
지원하기 시작했습니다.자세한것은 아래 코멘트에서 보실수 있습니다.creative에서 제공하는 베타드라이버를
직접설치하는것 보다 oss에서 제공하는 드라이버를 사용하시길 권합니다. 무리한 삽질(?)은 피로의 원인입니다 :)
creative에서 거의 1년만에 X-FI 리눅스용 드라이버를 내 놓았는데 베타인것은 그렇다 쳐도
x86_64용을 내놓았더군요.
오랜만에 ubuntu 리눅스를 데스크탑용으로 사용해 보려다
64bit 리눅스도 사용해보게 됐군요! 개인적으로 pc사용중 아무소리도 안나는것을 끔찍히(?)도
싫어하기에 소리없는 os는 싫습니다. 
아래링크는 ubuntu포럼의 글입니다.
http://ubuntuforums.org/showthread.php?t=571656&highlight=xfi
위 링크대로 해서 잘 되는사람도 있고 저의 경우는 커널 컴파일까지 마치고 드라이버인스톨 과정
에서 (make install) 커널 패닉으로 죽어버리더군요. 그런경우는 위 링크된 쓰레드의 후반
20~30번째 글의 커널 패닉 메세지를 참고해서 드라이버를 별도 패치해야 합니다.
smp머신과 문제가 있는것으로 보이는데 관련 패치는 아래 패치내용을 참고하세요.
-
diff
--git
a/XFiDrv_Linux_US-1.04/XFiDrv_Linux_US-1.04/ctsound
b/XFiDrv_Linux_US-1.04/XFiDrv_Linux_US-1.04/ctsound
-
index
04519f9..c4bbe8f 100755
-
---
a/XFiDrv_Linux_US-1.04/XFiDrv_Linux_US-1.04/ctsound
-
+++
b/XFiDrv_Linux_US-1.04/XFiDrv_Linux_US-1.04/ctsound
-
@@ -7,6
+7,45 @@
-
#
chkconfig: 2345 95 5
-
#
description: Load or unload Creative X-Fi Linux driver.
-
-
+set -e
-
+
-
+# Wolf: allow for cpu handling
-
+
-
+# Disable all cpus except cpu0
-
+# and return their current status
-
+disable_cpus()
-
+{
-
+ set -e
-
+ state=`cat
/sys/devices/system/cpu/cpu[!0]/online`
-
+ set $state
-
+ for i in
/sys/devices/system/cpu/cpu[!0]/online;
do
-
+ # Don't disable a cold cpu
-
+ if [ $1 ==
1 ]; then
-
+ echo 0
>$i
-
+ fi
-
+ shift
-
+ done
-
+ echo $state
-
+}
-
+
-
+# Enable cpus except cpu0
-
+# based on the state argument
-
+enable_cpus()
-
+{
-
+ set -e
-
+ if [ $# -eq 0
]; then
-
+ echo
1>&2 "enable_cpus: states
expected"
-
+ return 1
-
+ fi
-
+ # TODO: sanity check on state
-
+ for i in
/sys/devices/system/cpu/cpu[!0]/online;
do
-
+ if [ $1 ==
1 ]; then
-
+ echo $1
>$i
-
+ fi
-
+ shift
-
+ done
-
+}
-
+
-
if
[ -x /sbin/lsmod ]; then
-
lsmod=/sbin/lsmod
-
else
-
@@ -100,6
+139,8 @@ load_mods()
{
-
chmod 666 /dev/x-fi;
-
fi
-
-
+ # Disable SMP during modprobe
-
+ state=`disable_cpus`
-
if [ -f /etc/creative/creative.state ];
then
-
#echo "Restore Drv Default Mix Val"
-
$modprobe ctalsa && alsactl -f /etc/creative/creative.state
restore > /dev/null 2>&1 || :
-
@@ -108,6
+149,7 @@ load_mods()
{
-
#echo "alsactl restore"
-
$modprobe ctalsa && alsactl restore >/dev/null
2>&1 || :
-
fi
-
+ enable_cpus $state
-
}
-
-
#
Unload all modules
저의 경우 위의 패치까지 해서 겨우 성공했습니다. 드라이버를 설치하고 소리를 들어봤는데
가장 기본적인 스테레오 사운드 정도만 들려주더군요.
5.1채널이나 cmss등은 아직 안됩니다

또한 커널을 새로 컴파일 해야하니 기존의 nvidia, ati의 restricted 드라이버를 사용했다면 X가 뜨는데 지장이 있거나 glx등의 사용에 문제가 있을겁니다.그문제는 envy를 사용해 보세요.
http://albertomilone.com/nvidia_scripts1.html
관련 링크 : http://ubuntuforums.org/showthread.php?t=571656&highlight=xfi
gentoo 리눅스 관련 링크 : http://forums.gentoo.org/viewtopic-t-587921.html