我正在尝试使用 Cinnamon 桌面在 Debian Buster 上播放声音。
电脑:宏碁 TravelMate 8371 LXTTD0Z230927029412300
BIOS:V1.28 08/11/2010
CPU:奔腾 M 1400 MHz
尝试过:
# uname -r
4.19.0-6-amd64
# alsactl init
Found hardware: "HDA-Intel" "Realtek ALC269" "HDA:10ec0269,10250283,00100004 HDA:80862802,80860101,00100000" "0x1025" "0x0283"
Hardware is initialized using a generic method
# lspci | grep -i audio
00:1b.0 Audio device: Intel Corporation 82801I (ICH9 Family) HD Audio Controller (rev 03)
# alsa force-reload
-bash: alsa: command not found
# speaker-test -t wav -c 2 -D plughw:CARD=Intel,DEV=0
(no sound)
这就是我现在陷入困境的地方;我以为应该是alsa-base
打包的,但是现在好像买不到了。
最后,alsamixer
似乎没问题:
RealTek驱动程序编译(0002-LinuxPkg_5.18rc8.tar.bz2):
$ ./configure --with-cards=hda-intel
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables...
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether we are using the GNU C compiler... yes
checking whether gcc accepts -g... yes
checking for gcc option to accept ISO C89... none needed
checking for ranlib... ranlib
checking for a BSD-compatible install... /usr/bin/install -c
checking how to run the C preprocessor... gcc -E
checking for grep that handles long lines and -e... /bin/grep
checking for egrep... /bin/grep -E
checking for ANSI C header files... yes
checking for an ANSI C-conforming const... yes
checking for inline... inline
checking whether time.h and sys/time.h may both be included... yes
checking whether gcc needs -traditional... no
checking for current directory... /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa
checking cross compile...
checking for directory with ALSA kernel sources... /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18
checking for directory with kernel source... /lib/modules/4.19.0-6-amd64/source
checking for directory with kernel build... /lib/modules/4.19.0-6-amd64/build
checking for kernel linux/version.h ... generated/uapi/linux/version.h
checking for kernel linux/autoconf.h generated/autoconf.h... generated/autoconf.h
checking for kernel linux/utsrelease.h generated/utsrelease.h... generated/utsrelease.h
checking for kernel version... 4.19.0-6-amd64
checking for GCC version... Kernel compiler: Used compiler: gcc (Debian 8.3.0-6) 8.3.0
*** NO PREDEFINED KERNEL COMPILER IS DETECTED
*** Assuming the same compiler is used with the current system compiler.
*** Please make sure that the same compiler version was used for building kernel.
checking for built-in ALSA... no
checking for existing ALSA module... yes
checking for Red Hat kernel... auto
checking for Red Hat kernel... no
checking for SUSE kernel... auto
checking for SUSE kernel... no
checking for updating alsa-kernel version.h... yes
checking for CONFIG_EXPERIMENTAL... yes
checking for directory to store kernel modules... /lib/modules/4.19.0-6-amd64/kernel/sound
checking for verbose procfs... on
checking for verbose printk... on
checking for debug level... none
checking for ISA support in kernel... no
checking for processor type... x86_64
checking for ISA DMA API... yes
checking for 32bit compat support... yes
checking for kernel linux/config.h... no
Creating <linux/config.h>...
checking for deprecated linux/config.h... checking to modify of kernel linux/kmod.h... no
checking for kernel linux/kconfig.h... yes
checking for kernel linux/utsrelease.h... no
Creating a dummy <linux/utsrelease.h>...
checking for kernel linux/compiler.h... yes
checking for kernel linux/pm.h... yes
checking for kernel linux/pm_runtime.h... yes
checking for kernel linux/spinlock.h... yes
checking for kernel linux/irq.h... yes
checking for kernel linux/threads.h... yes
checking for kernel linux/rwsem.h... yes
checking for kernel linux/gameport.h... yes
checking for kernel linux/export.h... yes
checking for kernel media/v4l2-dev.h... yes
checking for kernel media/v4l2-device.h... yes
checking for kernel linux/devfs_fs_kernel.h... no
Creating a dummy <linux/devfs_fs_kernel.h>...
checking for kernel linux/highmem.h... yes
checking for kernel linux/ratelimit.h... yes
checking for kernel linux/kconfig.h... yes
checking for kernel linux/workqueue.h... yes
checking for kernel linux/dma-mapping.h... yes
checking for kernel asm/hw_irq.h... yes
checking for kernel linux/device.h... yes
checking for kernel linux/platform_device.h... yes
checking for kernel linux/isa.h... yes
checking for kernel linux/jiffies.h... yes
checking for kernel linux/compat.h... yes
checking for kernel linux/log2.h... yes
checking for kernel linux/adb.h... yes
checking for kernel linux/cuda.h... yes
checking for kernel linux/pmu.h... yes
checking for kernel linux/io.h... yes
checking for kernel linux/moduleparam.h... yes
checking for kernel linux/syscalls.h... yes
checking for kernel linux/firmware.h... yes
checking for kernel linux/err.h... yes
checking for kernel linux/bitmap.h... yes
checking for kernel linux/mutex.h... yes
checking for kernel linux/pm_qos.h... yes
checking for kernel linux/pm_qos_params.h... no
Creating <linux/pm_qos_params.h>...
checking for kernel linux/kthread.h... yes
checking for kernel asm/irq_regs.h... yes
checking for kernel linux/seq_file.h... yes
checking for kernel linux/debugfs.h... yes
checking for kernel linux/gpio.h... yes
checking for kernel linux/bug.h... yes
checking for kernel linux/math64.h... yes
checking for kernel linux/regulator/consumer.h... yes
checking for kernel linux/dmi.h... yes
checking for kernel linux/bitrev.h... yes
checking for kernel linux/hrtimer.h... yes
checking for kernel linux/vgaarb.h... yes
checking for kernel linux/vga_switcheroo.h... yes
checking for kernel linux/gcd.h... yes
checking for kernel linux/gfp.h... yes
checking for kernel pcmcia/cs_types.h... no
Creating <pcmcia/cs_types.h>...
checking for kernel pcmcia/cs.h... no
Creating <pcmcia/cs.h>...
checking for kernel linux/lzo.h... yes
checking for kernel linux/async.h... yes
checking for kernel linux/bitrev.h... yes
checking for kernel linux/smp_lock.h... no
Creating a dummy <linux/smp_lock.h>...
checking for kernel linux/i8253.h... yes
checking for kernel linux/atomic.h... yes
Copying trace/events headers
checking for kernel linux/tracepoint.h... yes
checking for kernel trace/define_trace.h... yes
Creating a workaround <linux/tracepoint.h>...
checking for kernel module symbol versions... yes
checking for has ioport support... no
checking for PCI support in kernel... yes
checking for I2C driver in kernel... yes
checking for I2C_POWERMAC in kernel... unknown
checking for firmware loader... yes
checking for input subsystem in kernel... yes
checking for pc-speaker platform in kernel... yes
checking for SMP... yes
checking for Video device support in kernel... yes
checking for ISA PnP driver in kernel... yes
checking for PnP driver in kernel... yes
checking for Kernel ISA-PnP support... no
checking for Kernel ISA-PnP module support... no
checking for strlcpy... yes
checking for snprintf... yes
checking for vsnprintf... yes
checking for scnprintf... yes
checking for sscanf... yes
checking for vmalloc_to_page... yes
checking for vzalloc... yes
checking for div_u64... yes
checking for dev_name... yes
checking for dev_set_name... yes
checking for put_pid... yes
checking for pid_vnr... yes
checking for old kmod... no
checking for PDE... no
checking for pci_set_consistent_dma_mask... yes
checking for pci_dev_present... yes
checking for msleep... yes
checking for msleep_interrupt... yes
checking for msecs_to_jiffies... yes
checking for tty->count is the atomic type... yes
checking for video_drvdata... yes
checking for V4L1 layer... no
checking for V4L2 layer... yes
checking for kernel media/v4l2-ctrls.h... yes
checking for io_remap_pfn_range... yes
checking for kcalloc... yes
checking for kstrdup... yes
checking for kstrndup... yes
checking for kzalloc... yes
checking for create_workqueue with flags... no
checking for pci_ioremap_bar... yes
checking for register_sound_special_device... yes
checking for driver extra-version...
checking for driver version... 1.0.2x-130606-v5.18rc8
checking for dynamic minor numbers... no
checking for sequencer support... yes
checking for OSS/Free emulation... checking for OSS CORE... yes
yes
checking for OSS PCM plugin system inclusion... yes
checking for RTC support... no
checking for HPET support... yes
checking for Procfs support... yes
checking for USB support... yes
checking for kernel linux/usb/audio-v2.h... yes
checking for kernel linux/usb/audio.h... yes
checking for valid v1 in linux/usb/audio.h... yes
checking for invalid v2 in linux/usb/audio.h... no
checking for valid linux/usb/audio-v2.h... no
Creating <linux/usb/audio-v2.h>...
checking for kernel linux/usb/ch9.h... yes
checking usb_alloc_coherent... yes
checking for class_simple... no
checking for old driver suspend/resume callbacks... no
checking for removal of page-reservation for nopage/mmap... no
checking for vm_iomap_memory... yes
checking for nested class_device... no
checking for new IRQ handler... yes
checking for gfp_t... yes
checking for GFP_DMA32... yes
checking for page_to_pfn... yes
checking for PnP suspend/resume... yes
checking for device_create_drvdata... no
checking for pm_qos_request... yes
checking for static pm_qos_request... no
checking for new pm_qos_request... no
checking for new unlocked/compat_ioctl... yes
checking for builtin _Bool support... yes
checking for x86-compatible PC... no
checking for High-Res timers... yes
checking for kernel PCMCIA
checking for PCMCIA support... yes
checking for PC9800 support in kernel... no
checking for parallel port support... yes
checking for power management... yes
checking for CONFIG_HAS_DMA... yes
checking for FireWire support... yes
checking for set_pages_array_wc... no
checking for cards to compile driver for... hda-intel
checking for additonal options to compile driver for... all
configure: creating ./config.status
config.status: creating version
config.status: creating Makefile.conf
config.status: WARNING: 'Makefile.conf.in' seems to ignore the --datarootdir setting
config.status: creating snddevices
config.status: creating utils/alsa-driver.spec
config.status: creating utils/buildrpm
config.status: creating toplevel.config
config.status: creating utils/alsasound
config.status: creating utils/alsasound.posix
config.status: creating include/pci_ids_compat.h
config.status: creating include/i2c-id_compat.h
config.status: creating include/config.h
config.status: include/config.h is unchanged
config.status: creating include/config1.h
config.status: include/config1.h is unchanged
config.status: creating include/version.h
config.status: include/version.h is unchanged
config.status: creating include/autoconf-extra.h
config.status: include/autoconf-extra.h is unchanged
config.status: creating include/alsa-kconfig.h
config.status: include/alsa-kconfig.h is unchanged
Hacking autoconf.h...
+
$ make
...
make -C /lib/modules/4.19.0-6-amd64/build SUBDIRS=/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa CPP="gcc -E" CC="gcc" modules
make[1]: Entering directory '/usr/src/linux-headers-4.19.0-6-amd64'
CC [M] /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/mixer_oss.o
LD [M] /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/snd-mixer-oss.o
CC [M] /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.o
In file included from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:40:
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/include/sound/pcm.h: In function ‘snd_pcm_gettime’:
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/include/sound/pcm.h:1017:3: error: implicit declaration of function ‘do_posix_clock_monotonic_gettime’ [-Werror=implicit-function-declaration]
do_posix_clock_monotonic_gettime(tv);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c: In function ‘snd_pcm_oss_sync1’:
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:1560:2: error: unknown type name ‘wait_queue_t’; did you mean ‘wait_event’?
wait_queue_t wait;
^~~~~~~~~~~~
wait_event
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:1563:23: error: passing argument 1 of ‘init_waitqueue_entry’ from incompatible pointer type [-Werror=incompatible-pointer-types]
init_waitqueue_entry(&wait, current);
^~~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/linux/mmzone.h:10,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/gfp.h:6,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/umh.h:4,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/kmod.h:22,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/module.h:13,
from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/include/adriver.h:50,
from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:1:
/usr/src/linux-headers-4.19.0-6-common/include/linux/wait.h:79:66: note: expected ‘struct wait_queue_entry *’ but argument is of type ‘int *’
static inline void init_waitqueue_entry(struct wait_queue_entry *wq_entry, struct task_struct *p)
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:1564:34: error: passing argument 2 of ‘add_wait_queue’ from incompatible pointer type [-Werror=incompatible-pointer-types]
add_wait_queue(&runtime->sleep, &wait);
^~~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/linux/mmzone.h:10,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/gfp.h:6,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/umh.h:4,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/kmod.h:22,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/module.h:13,
from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/include/adriver.h:50,
from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:1:
/usr/src/linux-headers-4.19.0-6-common/include/linux/wait.h:150:86: note: expected ‘struct wait_queue_entry *’ but argument is of type ‘int *’
extern void add_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:1587:7: error: implicit declaration of function ‘signal_pending’; did you mean ‘timer_pending’? [-Werror=implicit-function-declaration]
if (signal_pending(current)) {
^~~~~~~~~~~~~~
timer_pending
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:1597:37: error: passing argument 2 of ‘remove_wait_queue’ from incompatible pointer type [-Werror=incompatible-pointer-types]
remove_wait_queue(&runtime->sleep, &wait);
^~~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/linux/mmzone.h:10,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/gfp.h:6,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/umh.h:4,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/kmod.h:22,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/module.h:13,
from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/include/adriver.h:50,
from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:1:
/usr/src/linux-headers-4.19.0-6-common/include/linux/wait.h:152:89: note: expected ‘struct wait_queue_entry *’ but argument is of type ‘int *’
extern void remove_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c: In function ‘snd_pcm_oss_open’:
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:2396:2: error: unknown type name ‘wait_queue_t’; did you mean ‘wait_event’?
wait_queue_t wait;
^~~~~~~~~~~~
wait_event
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:2431:23: error: passing argument 1 of ‘init_waitqueue_entry’ from incompatible pointer type [-Werror=incompatible-pointer-types]
init_waitqueue_entry(&wait, current);
^~~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/linux/mmzone.h:10,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/gfp.h:6,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/umh.h:4,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/kmod.h:22,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/module.h:13,
from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/include/adriver.h:50,
from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:1:
/usr/src/linux-headers-4.19.0-6-common/include/linux/wait.h:79:66: note: expected ‘struct wait_queue_entry *’ but argument is of type ‘int *’
static inline void init_waitqueue_entry(struct wait_queue_entry *wq_entry, struct task_struct *p)
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:2432:34: error: passing argument 2 of ‘add_wait_queue’ from incompatible pointer type [-Werror=incompatible-pointer-types]
add_wait_queue(&pcm->open_wait, &wait);
^~~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/linux/mmzone.h:10,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/gfp.h:6,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/umh.h:4,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/kmod.h:22,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/module.h:13,
from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/include/adriver.h:50,
from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:1:
/usr/src/linux-headers-4.19.0-6-common/include/linux/wait.h:150:86: note: expected ‘struct wait_queue_entry *’ but argument is of type ‘int *’
extern void add_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:2459:37: error: passing argument 2 of ‘remove_wait_queue’ from incompatible pointer type [-Werror=incompatible-pointer-types]
remove_wait_queue(&pcm->open_wait, &wait);
^~~~~
In file included from /usr/src/linux-headers-4.19.0-6-common/include/linux/mmzone.h:10,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/gfp.h:6,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/umh.h:4,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/kmod.h:22,
from /usr/src/linux-headers-4.19.0-6-common/include/linux/module.h:13,
from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/include/adriver.h:50,
from /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.c:1:
/usr/src/linux-headers-4.19.0-6-common/include/linux/wait.h:152:89: note: expected ‘struct wait_queue_entry *’ but argument is of type ‘int *’
extern void remove_wait_queue(struct wait_queue_head *wq_head, struct wait_queue_entry *wq_entry);
~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~
cc1: some warnings being treated as errors
make[6]: *** [/usr/src/linux-headers-4.19.0-6-common/scripts/Makefile.build:309: /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss/pcm_oss.o] Error 1
make[5]: *** [/usr/src/linux-headers-4.19.0-6-common/scripts/Makefile.build:549: /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore/oss] Error 2
make[4]: *** [/usr/src/linux-headers-4.19.0-6-common/scripts/Makefile.build:549: /home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa/acore] Error 2
make[3]: *** [/usr/src/linux-headers-4.19.0-6-common/Makefile:1534: _module_/home/vlastimil/Rt-Linux-HDaudio-5.18/alsa-driver-RTv5.18/alsa] Error 2
make[2]: *** [Makefile:146: sub-make] Error 2
make[1]: *** [Makefile:8: all] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-4.19.0-6-amd64'
make: *** [Makefile:167: compile] Error 2
答案1
说“alsa 已被弃用”的人是不正确的。 Pulseaudio 是一个运行在 ALSA 之上的声音守护进程。 ALSA 仍然存在于幕后。
但确实,您的问题可能是由于pulseaudio造成的。打开 pavucontrol 并修改其中的选项,这可能会对您有所帮助。
答案2
Alsa 已经被废弃了。现在,大多数发行版(包括 Debian)都依赖于pulseaudio
管理声音。
您的系统上运行有pulseaudio吗?如果是,这可能是您问题的根本原因。不管怎样,我建议忘记alsa并使用pulseaudio及其混音器(pavucontrol
非常好)。在其中,您有一个configuration
选项卡,您可以在其中选择输出。
在我的笔记本电脑上,默认情况下,pulseaudio 将声音发送到 HDMI 输出......