커널 컴파일 시 모듈 요구사항 편집

커널 컴파일 시 모듈 요구사항 편집

Raspberry Pi용 실시간 커널을 컴파일하고 싶습니다(https://github.com/emlid/linux-rt-rpi) 사운드 카드와 함께 pi를 사용하고 싶습니다 - tascam 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
    

관련 정보