输入 cat /proc/asound/card0/codec#0 >~/Desktop/codec_dump.txt
或者 cat /proc/asound/card0/codec#1 >~/Desktop/codec_dump.txt
或者 cat /proc/asound/card0/codec#2 >~/Desktop/codec_dump.txt
直到将你要的文件拷出,偶尔会多一个HDMI音频相关的文件,不要拷错了。
打开我的电脑(相当于windows的C盘),进入路径proc/asound/card0,将文件夹里面的所有名为codec#开头的文件都复制出来,其中一个就是你的声卡codec,千万不要把HDMI音频的文件复制出来了(如果card0没有就一定在card1文件夹。
输入命令行:
./verbit codec_dump.txt>verbs.txt
注意这一步生成的 ConfigData 中可能会有数字错误显示为了10进制,可以用系统
内置的计算器转换回16进制数。生成并换算16进制以后的结果,无用的节点已经被
自动剔除:
另外这一步生成的 ConfigData 并不完全正确 ,仍然需要手动进行更改。
4.1 ConfigData 各位定义
Address 在你的 codec_dump.txt 开头定义,而 Node 则是对应的接口序号,
71c,71d,71e,71f 是固定的,所以需要改的内容分别是每组的最后两位数,一共是8位置:
Line Out at Ext 0x13 和 Modem Line at Ext 0x1d是屏蔽设备,应该是用不到的,但是先放在里面一起把ConfigData改正确。
和 Sequence 一起用来表示设备间的关联,用来处理多声道,按照之前提取高孝的 codec_dump.txt 信息选择。也可以按次序安排,只要每个设备独立不一样就可以。
一般键携设置为0即可,多声道需要分别设定
接口颜色,依然按照上面提取的 codec_dump.txt 设置
插口侦测设置,定义如下
修改:
有教程说外置麦克风 Mic Ext 设置为Line In,但是surface pro 3是combination设备稿念伏,我个人觉得没什么用,沿用了本来的。
注意这里的外置麦克风 Mic Ext 设置为 Combination 设备
连接类型,圆形的 3.5 mm 接口设为1,笔记本内置的设备如果标有 ATAPI 则设为3,其他内置未知的设为0,屏蔽的设备也设置为0
修改:
端口,用来确定是否有外部接口
修改:
外部插孔所在位置,一般设为1,屏蔽的装置设为0
修改:
最后得到的正确结果为:
移除0x, 整理, 如果你的 codec_dump.txt 文件里面出现过 EAPD 字样的节点后加上 Address+节点+71c+02 ,找到EAPD节点的方法:那就是它通常会位于Speaker Out和HP Out这两个输出节点上..
最终修正过的 ConfigData:
<01271c10 01271d01 01271ea6 01271f90 01371c20 01371d00 01371e00 01371f40 01471c30 01471d01 01471e17 01471f90 01470c02 01871c40 01871d10 01871eab 01871f03 01d71c50 01d71d80 01d71e65 01d71f40 02171c60 02171d10 02171e2b 02171f03>
Line Out at Ext 0x13 和 Modem Line at Ext 0x1d是屏蔽设备 为了更符合苹果规范用f0000040修饰
改为
<01271c10 01271d01 01271ea6 01271f90 01371cf0 01371d00 01371e00 01371f40 01471c30 01471d01 01471e17 01471f90 01470c02 01871c40 01871d10 01871eab 01871f03 01d71cf0 01d71d00 01d71e00 01d71f40 02171c60 02171d10 02171e2b 02171f03>
如果加上所有屏蔽设备,configdata为
打开 AppleHDA.kext/Contents/PlugIns/AppleHDAHardwareConfigDriver.kext/Contents/Info.plist 文件,找到 IOPersonalities ->HDA Hardware Config Resource ->HDAConfigDefault ->Item 0 这一项的子项:
先把第一步的到的 codec_dump.txt 里的 AFG Function Id: 0x1 (unsol 0) 一行删除,然后在terminal中进入你保存 codec_dump.txt 文件所在文件夹输入:
./codecgraph codec_dump.txt
用于生成节点图
用 convert_hex_to_dec.rb 脚本将其中的十六进制数字转换为十进制
./convert_hex_to_dec.rb codec_dump.txt.svg >codec_dump_dec.txt.svg
从图中可以得到我们在后面步骤中修改 Platforms.xml.zlib 文件所需要的路径(尽量选择实线)。
为我们四个有效节点分配路径
对于输入设备: AudioInput ->Audio Mixer/Audio Selector ->Pin Complex
对于输出设备: Pin Complex ->Audio Mixer ->Audio Output
实际规则是尽量保持路径的独立性,尽量不要共用节点和路径。这里 [Mic Int] 和 [Mic Ext] 选择相同节点的路径的原因是,由于 surface pro 3 的耳机插口是二合一设备,这种耳机插口 Hackintosh的 Ext Mic 驱动处理起来很麻烦,于是插入带Mic耳机时,我让它直接用内置Mic输入声音。同时像 MacBook Pro 5 , 2,内外Mic路径是 7 ->36 ->然后才是各自的节点。之后我将所有备选方案也都放入了platform中。所以Mic 下共有四个路径。
知道路径后,修改 Platforms.xml.zlib 。将文件 Platforms.xml.zlib 拖入 Zlib 软件可以得到 Platforms.xml 文件,这个文件可以打开编辑,我是直接使用 Xcode 编辑。
输入设备的 PathMap,按照上面确定的节点数字修改:
加入备选路径后的PathMap设定
输出设备的 PathMap:
输出设备的 PathMap设定:
修改完成后,重新拖入 Zlib 软件压缩为 zlib 文件。
由 codec_dump.txt 文件计算出 layout 相关数值
计算 MuteGPIO:
MuteGPIO = VREF(Hex) + 0100 + NodeID
当你的 codec_dump.txt 对应节点信息中存在 VREF_HIZ 时, MuteGPIO = 0 。
例如:
Node 18 = 50(VREF 80) + 0100 + 18 = 0x50010018 = 1342242840
HeadsetMic_dBV为1,088,421,888
解压 LayoutXX.xml.zlib, 我这里是 Layout03.xml.zlib:
如图:
修改完成后,重新压缩为 zlib:
HDEF_Patch
system_IRQ
经过实验测试后的一些精细修改
从windows中查到的configdata并改为苹果的格式
外置Mic 和耳机输出改为combination ,并且将外置Mic 改为LineIn与前面layoutid里 设置匹配
Mic 路径设置 内置于外置分开最后为
9 ->34 ->18
8 ->35->24
其实主要是匹配设置,如果你在configdata里的Mic 设为Mic 而不是LineIn,你在layoutID为ExtMic添加设置即可。
直接提取windows的Codec 也可以,唯一要改的就是把二合一插孔相关的两个节点,改为Combination,并且外置Mic改为LineIn,最后的config为
AFGLowPowerState 为3
我只知道一些Linux下可氏耐以用的压缩库。libzip,C语言,zip格式。
libbz2,C语言,bzip2格式。
libtar,C语言,tar格式。
不歼辩春知道这些库能不能灶知在Windows上用。
I. 安装devel库yum install pam-devel libc-client libc-client-devel -y
如果使用了yum安装了libc-client,那么在以后编译参数--with-imap=/usr/local/php-imap中的路径应该删除,即--with-imap。
如果这样还不能解决,那么就需要手动编译imap2007f了!
II. 手动编译imap2007f
脚本取自 http://forum.directadmin.com/showthread.php?t=45434
在/usr/src目录下运行以下脚本,将会在/usr/local/php-imap目录下生成imap需要的库
#!/bin/sh
# Script for PHP-IMAP installation. 0.1b
# Written by Martynas Bendorius (smtalk)
CWD=`pwd`
OS=`uname`
#Is it a 64-bit OS?
B64=0
B64COUNT=`uname -m | grep -c 64`
if [ "$B64COUNT" -eq 1 ]then
B64=1
LD_LIBRARY_PATH=/lib64:/usr/lib64:/usr/local/lib64:/lib:/丛粗镇usr/lib:/usr/local/lib
export LD_LIBRARY_PATH
fi
if [ ! -e /usr/include/krb5.h ] &&[ -e /etc/redhat-release ]then
echo "Installing krb5-devel"
yum -y install krb5-devel
fi
VERSION=2007f
PROTOCOL=ftp
URL="${PROTOCOL}://ftp.cac.washington.edu/imap/imap-${VERSION}.tar.Z"
FILENAME=imap-${VERSION}
TARBALL=${FILENAME}.tar.Z
echo "Downloading ${TARBALL}..."
wget -O ${TARBALL} ${URL}
tar xzf ${TARBALL}
cd ${FILENAME}
echo "Installing ${FILENAME}..."
if [ ${OS} = "FreeBSD" ]then
if [ ${B64} -eq 0 ]then
make bsf
else
make bsf EXTRACFLAGS=-fPIC
fi
else
perl -pi -e 's#SSLDIR=/usr/local/渗粗ssl#SSLDIR=/etc/pki/tls#' src/osdep/unix/Makefile
perl -pi -e 's#SSLINCLUDE=\$\(SSLDIR\)/include#SSLINCLUDE=/usr/include/openssl#' src/osdep/unix/Makefile
perl -pi -e 's#SSLLIB=\$\(SSLDIR\)/lib#SSLLIB=/usr/lib/openssl#' src/osdep/unix/Makefile
if [ ${B64} -eq 0 ]then
make slx
else
make slx EXTRACFLAGS=-fPIC
fi
fi
echo "Copying files to /usr/local/凳迹php-imap"
mkdir -p /usr/local/php-imap/include
mkdir -p /usr/local/php-imap/lib
chmod -R 077 /usr/local/php-imap
cp -f c-client/*.h /usr/local/php-imap/include/
cp -f c-client/*.c /usr/local/php-imap/lib/
cp -f c-client/c-client.a /usr/local/php-imap/lib/libc-client.a
cd ..
rm -rf ${FILENAME}
if [ -d /usr/lib/x86_64-linux-gnu ] &&[ ! -d /usr/kerberos/lib ]then
mkdir -p /usr/kerberos
ln -s /usr/lib/x86_64-linux-gnu /usr/kerberos/lib
fi
exit 0
III. 开始编译
下面是编译PHP的参数,如果出现问题,请参考编译PHP5.6 和 PHP编译错误的解决办法。
./configure --prefix=/usr/local/php --with-pdo-pgsql --with-zlib-dir --with-freetype-dir --enable-mbstring --with-libxml-dir=/usr --enable-soap --enable-calendar --with-curl --with-mcrypt --with-zlib --with-gd --with-pgsql --disable-rpath --enable-inline-optimization --with-bz2 --with-zlib --enable-sockets --enable-sysvsem --enable-sysvshm --enable-pcntl --enable-mbregex --enable-exif --enable-bcmath --with-mhash --enable-zip --with-pcre-regex --with-mysql --with-pdo-mysql --with-mysqli --with-jpeg-dir=/usr --with-png-dir=/usr --enable-gd-native-ttf --with-openssl --enable-ftp --with-imap=/usr/local/php-imap --with-imap-ssl --with-kerberos --with-gettext --with-xmlrpc --with-xsl --enable-opcache --enable-fpm --with-fpm-user=www --with-fpm-group=www --disable-fileinfo
IV. 其他问题
在本次编译中,老高又遇到了几个怪事
set --enable-opcache=no
configure: error: Don't know how to define struct flock on this system, set --enable-opcache=no
这个问题还是库文件的链接问题
解决:
echo /usr/local/lib >/etc/ld.so.conf.d/local.conf
ldconfig -v
让编译的PHP支持memcache
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)