makefile을 실행하면 "/sbin/modprobe: 잘못된 옵션 -- 'l'"이 발생합니다.

makefile을 실행하면 "/sbin/modprobe: 잘못된 옵션 -- 'l'"이 발생합니다.

Asus EEE PC Flare 시리즈 넷북에 Slackware 14.0을 설정하려고 합니다. 현재 Wi-Fi를 구성하려고합니다. 다음을 입력할 때:

# iwconfig

나는 얻다:

lo        no wireless extensions.

나는 이것이 무선 카드용 드라이버가 설치되어 있지 않다는 것을 의미한다는 것을 알았습니다(이를 바탕으로 - 무선 소제목 참조). 확인해 보니 lspci내 네트워크 카드의 정보는 다음과 같습니다.

02:00.0 Network controller: Atheros Communications Inc. AR9285 Wireless Network Adapter (PCI-Express) (rev-01)

가이드를 찾았어요여기올바른 드라이버를 설치하는 방법에 대한 자세한 지침입니다. 튜토리얼에서 타르볼을 다운로드하고 USB를 통해 Slackware를 실행하는 컴퓨터로 전송한 후 압축을 풀고 튜토리얼의 명령을 실행했습니다. 그러나 실행 부분에 도달하면 make다음과 같은 출력이 표시됩니다.

# make
/sbin/modprobe: invalid option -- 'l'
/sbin/modprobe: invalid option -- 'l'
./scripts/gen-compat-autoconf.sh config.mk > include/linux/compat_autoconf.h

그 때 막혔어요. 결국 Ctrl+로 취소 C하고 실행해 보았습니다 make clean. 이 역시 /sbin/modprobe: invalid option -- 'l'실수가 많았지만 결국 해냈다.

이때 구글링해서 결국 찾았어요이것2년전부터 -l당시 커널에는 플래그가 구현되어 있지 않았지만 TODO 목록에는 있었다고 합니다. man modprobe를 확인했는데 -l해당 플래그는 어디에도 언급되어 있지 않으며 TOOD 섹션도 없습니다. 또한 make 파일을 확인한 결과 /sbin/modprobe해당 -l플래그를 사용하여 호출을 시도하여 make프로세스가 실패하게 되었습니다.

이전에 이 문제를 겪은 사람이 있나요 modprobe? 대체할 수 있는 다른 명령이 있나요? (메이크파일을 편집할 수 있습니다) 어떤 도움이라도 대단히 감사하겠습니다.

답변1

modprobeUbuntu 12.04 버전(부터 module-init-tools version 3.16)하다-l설명이 있는 옵션이 있습니다 .

   -l --list List  all  modules  matching the given wildcard (or "*" if no
             wildcard is given).  This option is  provided  for  backwards
             compatibility  and  may  go  away  in future: see find(1) and
             basename(1) for a more flexible alternative.

예를 들어,

$ modprobe -l 'ath*'
kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
kernel/drivers/net/wireless/ath/ath6kl/ath6kl.ko
kernel/drivers/net/wireless/ath/ath.ko
kernel/drivers/bluetooth/ath3k.ko

이를 바탕으로 이 명령은 다음 find /path/to/kernel/drivers -name 'xxx'과 같은 명령으로 대체될 수 있습니다.

$ find /lib/modules/`uname -r` -name 'ath*.ko' -type f -printf '%P\n'
kernel/drivers/net/wireless/ath/ath6kl/ath6kl.ko
kernel/drivers/net/wireless/ath/ath.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_htc.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_hw.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k_common.ko
kernel/drivers/net/wireless/ath/ath9k/ath9k.ko
kernel/drivers/net/wireless/ath/ath5k/ath5k.ko
kernel/drivers/bluetooth/ath3k.ko

관련 정보