최근 일부 독자는 잘못된 모듈 형식을 삽입할 때 오류 경고 오류 코드를 발견했습니다. 이 문제는 여러 가지 목적으로 발생합니다. 아래에서 논의해 보겠습니다.
승인됨: Fortect
“잘못된 요소 형식”은 일반적으로 다른 커널용 모듈을 빌드하려고 할 때마다 나타나는 오류 메시지입니다(예: 모듈을 설계하는 데 사용한 커널 헤더 또는 소스가 확실히 사용할 수 있는 커널 버전과 일치하는지 확인하십시오. .
저는 LDD3에 도움이 될 World Hello 모듈인 제 최초의 사람 모듈을 방금 만들었습니다. 죄송합니다. 다음 오류가 발생했습니다.
insmod: './hello.ko' 처리 오류: -1 잘못된 모듈 형식입니다.
<사전> <코드> $ uname -r2.6.38-8 일반
이유는 무엇입니까? insmod에 잘못된 모듈 구조가 있습니까?
나는 내 자신의 커널(4.8.15-rt10)을 사용하고 있으며 정확히 동일한 .config를 사용하여 동일한 커널에 연결된 모듈을 얻습니다(모든 것을 배포했습니다). insmod를 사용하여 모듈을 삽입할 때 “잘못된 단위 형식” 오류가 발생합니다.
sudo apt-cache 검색 linux-sourcelinux-source - Ubuntu 패치가 있는 Linux 커널 참조linux-source-2.6.38 - Ubuntu 패치가 있는 원본 2.6.38용 Linux 커널$ sudo 설정 apt-get linux-source-2.6.38
<사전> <코드> $ ls – usr / src /Linux-headers-2.6.38-8 linux-source-2 .6.38 vboxguest-5.0.10Linux-headers-2.6.38-8-generic linux-source-2.6.38.tar.bz2 <사전> <코드> $ sudo cp /boot/config-2.6.38-8-generic ./. 구성 만들기$ sudo menuconfig – .config 파일 로드$를 벌다$ 모듈 생성
$ make -C /usr/src/linux-source-2.6.38/linux-source-2.6.38 M = `pwd` 모듈
obj-m: hello.o와 같음
<사전> <코드> $ sudo insmod hello_world.koinsmod: hello_world.ko를 삽입하는 동안 오류가 발생했습니다: -1 잘못된 단위 형식
hello: module_layout과 관련된 마크 버전에 동의하지 않습니다.
또한 일부 Linux 헤더 가 -2.26.38-generic
이고 웹사이트 버전에 26.38이 포함되어 있다는 것을 알았습니다. 그게 문제인가요? 하지만 온라인에서 linux-source-2.26.38-generic
적합한 솔루션을 찾지 못했습니다.
상태 업데이트:start off / lib / modules / $ (name -r) per build / Makefile이 부팅 가능한 커널 버전을 표시하는 것을 확인했습니다:
<사전> <코드> 버전 = 2패치 레벨은 6을 의미합니다.PU 레벨은 38입니다.외향성 = 0.2
이 컴파일 외에도 Linux-2.6.38.2를 내보내지만 여전히 동일한 오류가 발생합니다.
왜 Ubuntu- insmod가 적절한 모듈을 삽입하지 못합니까?
샘플 모듈을 컴파일했지만 이 레벨이 실제로 작동하는 이유에 대한 가장 중요한 단서가 될 수 있는 경고가 있는 것 같았습니다. 경고는 이 사람에게 속한 것입니다. 경고: /usr/src/linux-3.0.0/Module.symvers의 기호 버전 덤프가 실제로 누락되었습니다. 모드에는 종속성이 없지만 모드 단위도 있습니다.
나는 또한 -r에 컬렉션이 있다는 것을 알았습니다:
CONFIG_VERSION_SIGNATURE = "Ubuntu / boot / config - rr (uname 2.6.38-8.42-generic 2.6.38.2")
이것이 무엇을 의미하는지 아는 사람이 있습니까? 내가 만들고 있는 커널 구성 파일과 관련하여 이것을 볼 수 없습니다.
승인됨: Fortect
Fortect은 세계에서 가장 인기 있고 효과적인 PC 수리 도구입니다. 수백만 명의 사람들이 시스템을 빠르고 원활하며 오류 없이 실행하도록 신뢰합니다. 간단한 사용자 인터페이스와 강력한 검색 엔진을 갖춘 Fortect은 시스템 불안정 및 보안 문제부터 메모리 관리 및 성능 병목 현상에 이르기까지 광범위한 Windows 문제를 빠르게 찾아 수정합니다.
여기에서 커널도 사용자 정의 커널 모듈을 만들고 모듈을 실제로 삽입하려면 동일한 스키마를 유지해야 합니다. 이것을 처리하고 싶지 않다면 다음 Makefile을 사용할 수 있습니다.
objâˆ''m + = helloâˆ'world.o모든 것: 'C/lib/modules/buck(shell uname' r) 달성/M = rrr(PWD) 모듈 빌드깨끗한: do 'C / lib / module - $ (shell uname 'r) / build M은 $ (PWD) clean을 의미합니다.
가능한 한 먼저 줄을 통해 이동하여 즉시 루트로 판명되었음을 제안합니다.
<인용>
sudo cp /boot/config-2.6.38-8-generic ./.config
$ su#cp /boot/config-2.6.38-8-generic ./.config#insmod hello_world.ko
ZIEL: = hello-world경고: = -W -벽 -Wstrict-Prototypes -Wmissing-PrototypesINCLUDE: -isystem / lib / 웹 템플릿 모듈 / `uname -r` / build / include를 의미합니다.CFLAG: -O2 -DMODULE -D__KERNEL__ $ WARN $ ENABLE과 같습니다.CC: gcc-3.0을 의미합니다.$ TARGET.o: $ TARGET.c.PHONY: 깨끗하다깨끗한: rm -rf $ TARGET.o
귀하의 부분은 이전 커널과 통합되었습니다(방금 업데이트됨).
최신 커널을 사용하려면 이것을 다시 시작해야 합니다.
소유 커널과 설치된 커널 헤더
버전이 맞는지 확인하십시오.
내 과정이 왜 필요한가요? Linux에서 형식이 유효하지 않습니까?
커널 매개변수는 커널 작동 방식을 크게 조정할 수 있으므로 실제로 solve 매개변수로 다른 사람의 커널을 빌드하지 않으면 일부는 커널과 일치하지 않으며 해당 커널은 부팅을 정당하게 거부할 것입니다. 코로나688 홈페이지를 방문해보세요! 1.IP 좌석
이 시점에서 현재 커널의 세그먼트로 다시 컴파일해야 합니다.
<사전> <코드> cd rtl8188eu깨끗한다하다설치변조 센서 -r 8188eu모드 8188eu 프로브
불행히도 커널을 업데이트할 때마다 이 드라이버를 통합해야 할 수도 있습니다. 결국 이 드라이버는 중요한 커널 패키지의 일부가 됩니다.
Hello World입니까? ldd3의 모듈이 유효하지 않습니까?
방금 실제 첫 번째 자동차 소유자 모듈인 LDD3 기반 Hello World 모듈을 만들었습니다. 죄송합니다. 이 오류가 발생했습니다: insmod: ./hello.ko를 삽입하는 동안 오류가 발생했습니다: -1 잘못된 모듈 형식입니다.
비용을 설치하기 위해 커널을 강화해야 할 때마다 트리에서 웹 테마를 생성하도록 자동으로 스키를 탈 수 있는 동적 커널 모듈 지원이라는 기능이 있을 것입니다. 추가 경력. 그만한 가치가 있는 노력이 더 필요하다는 것을 알 수 있습니다.
이것은 시스템의 측면에서 삶의 이면이 됩니다 😉
<사전> <코드> can_sleep();경고(! Intel_irqs_enabled(dev_priv), “IRQ 비활성화”);
버전 3.4.3으로 가는 도중에 gcc 컴파일러를 업데이트했고 ALSA-1.09rc4a 드라이버(가장 최근 것)를 설치하려고 했습니다. 모든 것이 정상인 것처럼 보였습니다. 최소한 오류는 없었지만 특정 AS 모듈을 실행할 때 강력한 오류가 발생했습니다. ens1371 카드가 있는 Linux 2.6.11.11 커널에서 RedHat 8을 사용하고 있습니다. 다음은 일반적인 실수에 대한 사본입니다.
주목! snd_page_alloc을 쓰는 동안 오류(/lib/modules/2.6.1.11/kernel/sound/acore/snd-page-alloc.ko): 잘못된 모듈 오류 형식
경고: snd 위치 지정(/lib/modules/2.6.1.11/kernel/sound/acore/snd.ko): 잘못된 코스 형식
경고: snd_timer 고정 중 오류(/lib/modules/2.6.1.11/kernel/sound/acore/snd-timer.ko): 잘못된 형식
경고: snd_pcm(/lib/modules/2.6.1.11/kernel/sound/acore/snd-pcm.ko)를 붙여도 코스 오류: 변수
의 형식이 잘못되었습니다.경고: snd_ac97_codec(/lib/modules/2.6.1.11/kernel/sound/pci/ac97/snd-ac97-codec.Invalid kb) 붙여넣기 중 오류: 구성 형식
경고: snd_seq_device(/lib/modules/2.6.1.11/kernel/sound/acore/seq/snd-seq-device.ko)를 붙여넣는 동안 오류: 잘못된 장치 테마
경고: snd_rawmidi를 붙여넣는 동안 오류(/lib/modules/2.6.1.11/kernel/sound/acore/snd-rawmidi.ko): 잘못된 소프트웨어 형식
심각한: 삽입 중 오류(/ lib – 모듈 / 2 snd_ens1371.6.11.11 / kernel / mp3 / pci / snd-ens1371.ko): 잘못된 모듈 프레임워크