sytzz 写了:我发现我的蓝牙还是没办法打开,而且也没声音。。
蓝牙,首先要hciattach
hciattach -n /dev/ttyS4 bcm43xx 3000000 flow nosleep E9:AF:XX:XX:XX:XX
最后一个参数是蓝牙地址(你可以第一次不加这个参数让系统帮你随机生成一个然后以后一直用这个地址)。
如果不用这个参数,每次随机生成一个新的地址,以前配对的设备就无效了。
你可以在hciattach之前先做点检查工作
rfkill list
0: BCM2E3D:00: Bluetooth
Soft blocked: no
Hard blocked: no
1: LNV4752:00: GPS
Soft blocked: no
Hard blocked: no
2: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
看看模块在不在,应该是有 蓝牙 无线和 GPS 三个模块。
dmesg | grep -i ttyS
[ 5.604911] 80860F0A:00: ttyS4 at MMIO 0x90947000 (irq = 185, base_baud = 2764800) is a 16550A
[ 5.635867] 80860F0A:01: ttyS5 at MMIO 0x9094d000 (irq = 187, base_baud = 2764800) is a 16550A
看看S4 S5端口是否存在(S4接的蓝牙 S5接的GPS)
你hciattach成功了之后(这个守护进程要一直在后台运行),用hciconfig看看hci0在不在。
hciconfig
hci0: Type: Primary Bus: UART
调试正常了之后,自己写个开机运行的脚本就行了,放在后台运行。
====================================================================
声音:
dmesg 里,先看看底层的mapping是否成功:
[ 5.848574] bytcr_rt5640 bytcr_rt5640: quirk DMIC1_MAP enabled
[ 5.852896] bytcr_rt5640 bytcr_rt5640: quirk DMIC enabled
[ 5.858428] bytcr_rt5640 bytcr_rt5640: quirk MCLK_EN enabled
[ 5.858438] bytcr_rt5640 bytcr_rt5640: Failed to get MCLK from pmc_plt_clk_3: -2
[ 5.877986] bytcr_rt5640 bytcr_rt5640: snd-soc-dummy-dai <-> media-cpu-dai mapping ok
[ 5.878027] bytcr_rt5640 bytcr_rt5640: snd-soc-dummy-dai <-> deepbuffer-cpu-dai mapping ok
[ 5.878056] compress asoc: snd-soc-dummy-dai <-> compress-cpu-dai mapping ok
[ 5.880113] bytcr_rt5640 bytcr_rt5640: rt5640-aif1 <-> ssp2-port mapping ok
如果底层的mapping正常,应该就是上层的DSP routing的问题了。就是要做两个alsa的设置。
alsa 要做一些额外的设置,在我的默认branch: miix28 里有个目录
miix28audio
里面有个简单的README:
sudo cp -rf bytcr-rt5640 /usr/share/alsa/ucm/
alsactl store && alsactl restore
sudo cp asound.state /var/lib/alsa/
alsactl restore
如果还搞不定,参考那个 Asus T100 on Debian的文章,里面也有。
如果不行,应该是缺firmware,你升级一下你的系统的firmware。
我现在是用的archlinux,pacman 里面最新的firmware装上就好了。
ubuntu的你可以用apt找找看
或者
git://kernel.ubuntu.com/ubuntu/linux-firmware.git 里面 xenial 分支(16.04.LTS,你应该是这个版本吧)
firmware的位置在 /lib/firmware,你把整个git里的文件全部拷贝进去覆盖就可以。
PS:
我在arch里装的是这两个包
core/linux-firmware 20161222.4b9559f-2 [installed]
Firmware files for Linux
extra/alsa-firmware 1.0.29-1 [installed]
ALSA firmware package
debian 上是这个:
apt install firmware-intel-sound
ubuntu的忘记了。。。