Basic question about kernel modules

i’m interested in understanding the status of this kernel module.

i’m on 4.4.154-90-rockchip-ga14f6502e045. when i do “lsmod”, i get surprisingly few results:

Module                  Size  Used by
ip_tables              24576  0
x_tables               32768  1 ip_tables
autofs4                40960  3

when i go to search for available kernel modules (find /lib/modules/$(uname -r) -name .ko), i don’t see many of the expected results, for example snd-usb-audio, despite the fact that USB audio appears to work… in fact, the entire kernel/sound/ directory appears to be missing from /lib/modules

where are all the modules associated with sound/alsa?

The -90 kernel is too old, most of the modules are built-in. Try to update to a newer kernel.

https://wiki.radxa.com/Rockpi4/radxa-apt

thanks for the info. i installed linux-4.4-latest, which got me 4.4.154-108, but i still see the same thing: very few modules listed in “lsmod”, and no sound/ directory in /lib/modules/kernel/

is there some other kernel you recommend?

What’s the dmesg if you plug and unplug the USB audio device?

[   48.730503] usb 4-1: new full-speed USB device number 2 using ohci-platform
[   48.935279] usb 4-1: New USB device found, idVendor=0d8c, idProduct=000c
[   48.935304] usb 4-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
[   48.935319] usb 4-1: Product: C-Media USB Headphone Set  
[   49.108058] input: C-Media USB Headphone Set   as /devices/platform/fe3e0000.usb/usb4/4-1/4-1:1.3/0003:0D8C:000C.0005/input/input2
[   49.166097] hid-generic 0003:0D8C:000C.0005: input,hidraw2: USB HID v1.00 Device [C-Media USB Headphone Set  ] on usb-fe3e0000.usb-1/input3

and still no snd_usb_audio in the output of “lsmod”

The USB device is recognized by the kernel and working already, no need the module.

oh, i think you misunderstood my original question - i’m actually interested in the rockchip-i2s driver module. i was just using snd-usb-audio as an example of a common module that i couldn’t seem to find, either.

anyway, i guess what you’re saying is that these drivers are built into the kernel. and indeed, i was able to find “snd-soc-rockchip-i2s” in /lib/modules/$(uname -r)/modules.builtin. so i guess that answers my question.

the next step is figuring out how to use this driver to control an external codec (i’m currently working with the WM8731). if anyone has advice about that, let me know!

Currently the I2S on ROCK Pi 4 working only in master mode, which means WM8731 works in slave mode. You can refer what we’ve done with hifiberry DAC.

https://github.com/radxa/kernel/blob/release-4.4-rockpi4/arch/arm64/boot/dts/rockchip/overlays-rockpi4/hifiberry-dac-overlay.dts

Currently the I2S on ROCK Pi 4 working only in master mode

is it, though? when i un-comment the intfc:dtoverlay=hifiberry-dac line in /boot/hw_initfc.conf, i don’t see it working (see my other post here). to add to that, aplay -l shows no new device with this overlay.