![编译内核时编辑模块要求](https://linux22.com/image/69020/%E7%BC%96%E8%AF%91%E5%86%85%E6%A0%B8%E6%97%B6%E7%BC%96%E8%BE%91%E6%A8%A1%E5%9D%97%E8%A6%81%E6%B1%82.png)
我想编译树莓派的实时内核(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 架构的模块。
在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
编译内核:
make -j5
编辑 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/
将驱动程序编译为模块
make modules M=sound/usb