カーネルコンパイル時のモジュール要件の編集

カーネルコンパイル時のモジュール要件の編集

Raspberry Pi用のリアルタイムカーネルをコンパイルしたい(https://github.com/emlid/linux-rt-rpi)サウンドカードでpiを使用したい - Taborm us122l。

私が経験している問題は、us122lモジュールをコンパイルするにはx86を選択する必要があることです。ドライバコードを知っていて、他のサウンドカードドライバsnd_usb *と変わらないので、これがカーネル製作だと疑われます。 alsa開発チームに尋ねようとしていますが、今カーネルをコンパイルしたいと思います。

このモジュールの要件を変更するためにカーネルソーススクリプトを編集する方法はありますか?

│記号:SND_USB_US122L [= n]

|タイプ: Tri-state │
│ ヒント: 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
    

関連情報