编译内核时编辑模块要求

编译内核时编辑模块要求

我想编译树莓派的实时内核(https://github.com/emlid/linux-rt-rpi)并且想要使用带声卡的 pi - tascam us122l。

我遇到的问题是us122l模块的编译需要选择X86,尽管我怀疑这是一个内核捏造,因为我知道驱动程序的代码,并且它与任何其他声卡驱动程序没有什么不同snd_usb*。我要询问 alsa 开发团队,但我现在想编译内核。

有没有办法编辑内核源脚本来更改此模块的要求?

│ 符号:SND_USB_US122L [=n]

|类型:三态 │
│ 提示:Tascam US-122L USB 驱动程序 │
│ 位置: │
│ -> 设备驱动程序 │
│ -> 声卡支持 (SOUND [=y]) │
│ -> 高级 Linux 声音架构 (SND [= m]) │
│ (1) -> USB 声音设备 (SND_USB [=y]) │
│ 定义于 sound/usb/Kconfig:92 │
│ 取决于:SOUND [=y] && !M68K && !UML && SND [ =m] && SND_USB [=y] && USB [=y] && X86 --- 这是问题所在

│ 选择:SND_HWDEP [=m] && SND_RAWMIDI [=m]

答案1

您好,请按照以下步骤将驱动程序编译为 ARM 架构的模块。

  1. 在Linux上交叉编译rt内核

    导出以下变量以指定交叉编译选项:

    export ARCH=arm
    
    export CROSS_COMPILE=~/tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf- raspbian/bin/arm-linux-gnueabihf-
    
    make bcmrpi_rt_defconfig
    
  2. 编译内核:

    make -j5
    
  3. 编辑 sound/usb 文件夹中的 Makefile。

例如

snd-usb-audio-objs :=   card.o \
                        clock.o \
                        endpoint.o \
                        format.o \
                        helper.o \
                        mixer.o \
                        mixer_quirks.o \
                        pcm.o \
                        proc.o \
                        quirks.o \
                        stream.o

snd-usbmidi-lib-objs := midi.o

# Toplevel Module Dependency
obj-m += snd-usb-audio.o snd-usbmidi-lib.o

obj-m += snd-usbmidi-lib.o
obj-m += snd-usbmidi-lib.o
obj-m += snd-usbmidi-lib.o

obj-m += misc/ usx2y/ caiaq/ 6fire/ hiface/ bcd2000/
  1. 将驱动程序编译为模块

     make modules M=sound/usb
    

相关内容