We have had a Macbook Air (A1466) laying around for years after it became useless due to not getting any more updates so modern browsers wouldn’t run, etc. etc.

Today I decided to dust it off and install Ubuntu - that all went great. No issues with wifi drivers or anything. The only issues I am having are that I have no audio input or output (only device available is “dummy output”) and no webcam.

I’m not really sure where to start. I have used linux before, but it has been years (Ubuntu 11 or 12 was the latest I ever touched).

Any suggestions?

EDIT:

This is what I get from running lspci -V

00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09)
	Subsystem: Apple Inc. Haswell-ULT HD Audio Controller
	Flags: bus master, fast devsel, latency 0, IRQ 73
	Memory at b0a10000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [50] Power Management version 2
	Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit-
	Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel

00:03.0 Audio device: Intel Corporation Haswell-ULT HD Audio Controller (rev 09)
	Subsystem: Apple Inc. Haswell-ULT HD Audio Controller
	Flags: bus master, fast devsel, latency 0, IRQ 73
	Memory at b0a10000 (64-bit, non-prefetchable) [size=16K]
	Capabilities: [50] Power Management version 2
	Capabilities: [60] MSI: Enable+ Count=1/1 Maskable- 64bit-
	Capabilities: [70] Express Root Complex Integrated Endpoint, MSI 00
	Kernel driver in use: snd_hda_intel
	Kernel modules: snd_hda_intel

  • Jtskywalker@lemm.eeOP
    link
    fedilink
    arrow-up
    2
    ·
    1 year ago

    I was able to get alsamixer to show the HDMI audio output by adding options snd-hda-intel model=generic to the alsa-base.conf file, but that is all it can see, and that doesn’t utilize the speakers on the laptop.

    pacmd list-cards gives this - it looks like it is only the HDMI audio

    1 card(s) available.
        index: 0
    	name: 
    	driver: 
    	owner module: 22
    	properties:
    		alsa.card = "0"
    		alsa.card_name = "HDA Intel HDMI"
    		alsa.long_card_name = "HDA Intel HDMI at 0xb0a10000 irq 74"
    		alsa.driver_name = "snd_hda_intel"
    		device.bus_path = "pci-0000:00:03.0"
    		sysfs.path = "/devices/pci0000:00/0000:00:03.0/sound/card0"
    		device.bus = "pci"
    		device.vendor.id = "8086"
    		device.vendor.name = "Intel Corporation"
    		device.product.id = "0a0c"
    		device.product.name = "Haswell-ULT HD Audio Controller"
    		device.form_factor = "internal"
    		device.string = "0"
    		device.description = "Built-in Audio"
    		module-udev-detect.discovered = "1"
    		device.icon_name = "audio-card-pci"
    	profiles:
    		output:hdmi-stereo: Digital Stereo (HDMI) Output (priority 5900, available: unknown)
    		off: Off (priority 0, available: unknown)
    	active profile: 
    	sinks:
    		alsa_output.pci-0000_00_03.0.hdmi-stereo/#1: Built-in Audio Digital Stereo (HDMI)
    	sources:
    		alsa_output.pci-0000_00_03.0.hdmi-stereo.monitor/#1: Monitor of Built-in Audio Digital Stereo (HDMI)
    	ports:
    		hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: unknown)
    			properties:
    				device.icon_name = "video-display"
    
    
    • BaumGeist@lemmy.ml
      link
      fedilink
      arrow-up
      2
      ·
      1 year ago

      Looks like some people had success setting their specific model (auto detection failed for whatever reason), try changing to options snd-hda-intel model=mba42 (or model=mba6)—per kernel docs—in alsa-base.conf. This may (read: “probably will”) require a reboot for each model.

      Should this not work: we may have to dig into dmesg to figure out where it’s erroring. This is currently beyond my remote troubleshooting ability (I don’t know what I’m looking for, but might know it when I see it)… Also, will you please take note of the output from lsmod | grep 'snd' during each attempt, and share what you find if they both fail?

      Also per the docs: do headphones still work?

      • Jtskywalker@lemm.eeOP
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Didn’t have any luck setting the model - I read through those doc pages you linked and a lot of it is over my head but I think I was able to learn a few things.

        At this point - I am not seeing any of the errors mentioned anywhere - I only see HDMI audio as the only card and that is displaying no errors (this laptop doesn’t have an HDMI port, only thunderbolt, and I don’t have a cable or adapter to even test if that audio is working on an external monitor) I’m not sure if Linux is incorrectly reading the internal sound card as the HDMI output, if it’s all on the same card and the internal output is not being read, or if the internal sound card is just totally not working (hardware issue) - To my knowledge there was no issue with audio on Mac OSX but this laptop hasn’t been used in a while.

        I really appreciate your time and if you want to continue helping I will put more info below, but I also understand if you don’t want to think about it anymore 😄

        I didn’t see any of the errors mentioned on those pages when checking dmesg (assuming that is where they would be) - I read through all the errors, nothing related to sound that I could tell, and used grep to pull out the messages containing references to snd or audio, etc:

        [   10.711044] snd_hda_intel 0000:00:03.0: bound 0000:00:02.0 (ops i915_audio_component_bind_ops [i915])
        [   12.579602] input: HDA Intel HDMI HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:03.0/sound/card0/input14
        [   12.605430] input: HDA Intel HDMI HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:03.0/sound/card0/input15
        [   12.605925] input: HDA Intel HDMI HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:03.0/sound/card0/input16
        

        If you want I can put the whole dmesg here but it is a lot of text.

        I also ran lsmod |grep 'snd' after the changes and the result is exactly the same before any changes and after each change:

        snd_hda_codec_hdmi     94208  1
        snd_hda_intel          61440  1
        snd_intel_dspcfg       36864  1 snd_hda_intel
        snd_intel_sdw_acpi     20480  1 snd_intel_dspcfg
        snd_hda_codec         204800  2 snd_hda_codec_hdmi,snd_hda_intel
        snd_hda_core          135168  3 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec
        snd_hwdep              20480  1 snd_hda_codec
        snd_pcm               192512  4 snd_hda_codec_hdmi,snd_hda_intel,snd_hda_codec,snd_hda_core
        snd_seq_midi           20480  0
        snd_seq_midi_event     16384  1 snd_seq_midi
        snd_rawmidi            53248  1 snd_seq_midi
        snd_seq                94208  2 snd_seq_midi,snd_seq_midi_event
        snd_seq_device         16384  3 snd_seq,snd_seq_midi,snd_rawmidi
        snd_timer              49152  2 snd_seq,snd_pcm
        snd                   135168  11 snd_seq,snd_seq_device,snd_hda_codec_hdmi,snd_hwdep,snd_hda_intel,snd_hda_codec,snd_timer,snd_pcm,snd_rawmidi
        soundcore              16384  1 snd
        

        And here is the most recent pacmd list-cards output:

        1 card(s) available.
            index: 0
        	name: 
        	driver: 
        	owner module: 7
        	properties:
        		alsa.card = "0"
        		alsa.card_name = "HDA Intel HDMI"
        		alsa.long_card_name = "HDA Intel HDMI at 0xb0a10000 irq 73"
        		alsa.driver_name = "snd_hda_intel"
        		device.bus_path = "pci-0000:00:03.0"
        		sysfs.path = "/devices/pci0000:00/0000:00:03.0/sound/card0"
        		device.bus = "pci"
        		device.vendor.id = "8086"
        		device.vendor.name = "Intel Corporation"
        		device.product.id = "0a0c"
        		device.product.name = "Haswell-ULT HD Audio Controller"
        		device.form_factor = "internal"
        		device.string = "0"
        		device.description = "Built-in Audio"
        		module-udev-detect.discovered = "1"
        		device.icon_name = "audio-card-pci"
        	profiles:
        		output:hdmi-stereo: Digital Stereo (HDMI) Output (priority 5900, available: no)
        		output:hdmi-surround: Digital Surround 5.1 (HDMI) Output (priority 800, available: no)
        		output:hdmi-surround71: Digital Surround 7.1 (HDMI) Output (priority 800, available: no)
        		output:hdmi-stereo-extra1: Digital Stereo (HDMI 2) Output (priority 5700, available: no)
        		output:hdmi-surround-extra1: Digital Surround 5.1 (HDMI 2) Output (priority 600, available: no)
        		output:hdmi-surround71-extra1: Digital Surround 7.1 (HDMI 2) Output (priority 600, available: no)
        		output:hdmi-stereo-extra2: Digital Stereo (HDMI 3) Output (priority 5700, available: no)
        		output:hdmi-surround-extra2: Digital Surround 5.1 (HDMI 3) Output (priority 600, available: no)
        		output:hdmi-surround71-extra2: Digital Surround 7.1 (HDMI 3) Output (priority 600, available: no)
        		off: Off (priority 0, available: unknown)
        	active profile: 
        	ports:
        		hdmi-output-0: HDMI / DisplayPort (priority 5900, latency offset 0 usec, available: no)
        			properties:
        				device.icon_name = "video-display"
        		hdmi-output-1: HDMI / DisplayPort 2 (priority 5800, latency offset 0 usec, available: no)
        			properties:
        				device.icon_name = "video-display"
        		hdmi-output-2: HDMI / DisplayPort 3 (priority 5700, latency offset 0 usec, available: no)
        			properties:
        				device.icon_name = "video-display"
        

        Here are some screenshots of pavucontrol and alsamixer: https://imgur.com/a/W4mURaW

        Also FWIW here is the alsa-base.conf:

        # autoloader aliases
        install sound-slot-0 /sbin/modprobe snd-card-0
        install sound-slot-1 /sbin/modprobe snd-card-1
        install sound-slot-2 /sbin/modprobe snd-card-2
        install sound-slot-3 /sbin/modprobe snd-card-3
        install sound-slot-4 /sbin/modprobe snd-card-4
        install sound-slot-5 /sbin/modprobe snd-card-5
        install sound-slot-6 /sbin/modprobe snd-card-6
        install sound-slot-7 /sbin/modprobe snd-card-7
        
        # Cause optional modules to be loaded above generic modules
        install snd /sbin/modprobe --ignore-install snd $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-ioctl32 ; /sbin/modprobe --quiet --use-blacklist snd-seq ; }
        #
        # Workaround at bug #499695 (reverted in Ubuntu see LP #319505)
        install snd-pcm /sbin/modprobe --ignore-install snd-pcm $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-pcm-oss ; : ; }
        install snd-mixer /sbin/modprobe --ignore-install snd-mixer $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-mixer-oss ; : ; }
        install snd-seq /sbin/modprobe --ignore-install snd-seq $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; /sbin/modprobe --quiet --use-blacklist snd-seq-oss ; : ; }
        #
        install snd-rawmidi /sbin/modprobe --ignore-install snd-rawmidi $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq-midi ; : ; }
        # Cause optional modules to be loaded above sound card driver modules
        install snd-emu10k1 /sbin/modprobe --ignore-install snd-emu10k1 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-emu10k1-synth ; }
        install snd-via82xx /sbin/modprobe --ignore-install snd-via82xx $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist snd-seq ; }
        
        # Load saa7134-alsa instead of saa7134 (which gets dragged in by it anyway)
        install saa7134 /sbin/modprobe --ignore-install saa7134 $CMDLINE_OPTS && { /sbin/modprobe --quiet --use-blacklist saa7134-alsa ; : ; }
        # Prevent abnormal drivers from grabbing index 0
        options bt87x index=-2
        options cx88_alsa index=-2
        options saa7134-alsa index=-2
        options snd-atiixp-modem index=-2
        options snd-intel8x0m index=-2
        options snd-via82xx-modem index=-2
        options snd-usb-audio index=-2
        options snd-usb-caiaq index=-2
        options snd-usb-ua101 index=-2
        options snd-usb-us122l index=-2
        options snd-usb-usx2y index=-2
        # Ubuntu #62691, enable MPU for snd-cmipci
        options snd-cmipci mpu_port=0x330 fm_port=0x388
        # Keep snd-pcsp from being loaded as first soundcard
        options snd-pcsp index=-2
        # Keep snd-usb-audio from beeing loaded as first soundcard
        options snd-usb-audio index=-2
        # Troubleshooting
        options snd-hda-intel model=mba6
        
      • Jtskywalker@lemm.eeOP
        link
        fedilink
        arrow-up
        2
        ·
        1 year ago

        Thank you! I will try that out and read through those pages. I never had sound through speakers or headphones.

        I also changed to regular Debian desktop to see if that would fix the issue per the post about someone getting the same model working on plain Debian with no audio issues, but the behavior is the same. The post was a few years old so I’m guessing it’s a version difference.

        I will reply back with those outputs when I have a chance to try this. Currently the laptop is kind of unwieldy to use as I accidentally broke the teackpad (or track pad cable) while replacing the keyboard so I’m waiting on parts. External inputs work I just need to clear space to set it up for troubleshooting