Здравствуйте!!!
У меня возникла следующая проблема. После того как я скомпилировал свой модуль (банальный HelloWord) в ASP Linux 10 с ядром 2.6.9-1.677.
При подключении моего модуля комагдой insmod mydrv.ko выдается следующее сообщение
[root@localhost Nikolai]# insmod mydrv.ko
insmod: error inserting 'mydrv.ko’: -1 Invalid module format
Что это? Может быть я протос не правильно установил исходники ядра:
Был файл src.rpm с исходником ядра…. Запустил Install, затем в каталоге
/usr/src/asplinux/SOURCES. Там куча файлов типа .patch и .config. И есть 3 архива linux 2.6.9.tar.bz2, patch 2.6.9-final.bz2,patch 2.6.9-final.bk2.bz2 Дальше я распаковал linux 2.6.9.tar.bz2 в /usr/src/ и запустил make .config. Ответил на кучу вопросов и все…..
А что делать с патчами и всей остальной хренью?
Правильно ли я вообще делаю?
Заранее спасибо.
Последние комментарии
- OlegL, 17 декабря в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
После попытки загрузить модуль посмотри, что в dmesg.
Вот что:
[root@localhost Nikolai]# dmesg
Linux version 2.6.9-1.667asp (build@pylesos.asp-linux.com.ua) (gcc version 3.3.3 20040412 (ASPLinux 3.3.3-7)) #1 Fri Nov 12 22:29:40 EET 2004
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 — 000000000009fc00 (usable)
BIOS-e820: 000000000009fc00 — 00000000000a0000 (reserved)
BIOS-e820: 00000000000e6000 — 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 — 000000000ef2fc00 (usable)
BIOS-e820: 000000000ef2fc00 — 000000000ef30000 (ACPI NVS)
BIOS-e820: 000000000ef30000 — 000000000ef40000 (ACPI data)
BIOS-e820: 000000000ef40000 — 000000000eff0000 (ACPI NVS)
BIOS-e820: 000000000eff0000 — 000000000f000000 (reserved)
BIOS-e820: 00000000fecf0000 — 00000000fecf1000 (reserved)
BIOS-e820: 00000000fed20000 — 00000000feda0000 (reserved)
0MB HIGHMEM available.
239MB LOWMEM available.
zapping low mappings.
Built 1 zonelists
Kernel command line: root=/dev/hda3 rhgb
mapped 4G/4G trampoline to ffff4000.
Initializing CPU#0
CPU 0 irqstacks, hard=023e0000 soft=023df000
PID hash table entries: 1024 (order: 10, 16384 bytes)
Detected 2793.901 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80×25
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Memory: 238620k/244924k available (2080k kernel code, 5780k reserved, 675k data, 148k init, 0k highmem)
Calibrating delay loop… 5521.40 BogoMIPS (lpj=2760704)
Security Scaffold v1.0.0 initialized
SELinux: Initializing.
SELinux: Starting in permissive mode
There is already a security framework initialized, register_security failed.
selinux_register_security: Registering secondary module capability
Capability LSM initialized as secondary
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
monitor/mwait feature present.
using mwait in idle threads.
Enabling fast FPU save and restore… done.
Enabling unmasked SIMD FPU exception support… done.
Checking 'hlt' instruction… OK.
ACPI: IRQ9 SCI: Level Trigger.
checking if image is initramfs… it is
Freeing initrd memory: 357k freed
NET: Registered protocol family 16
Linux Plug and Play Support v0.97 (c) Adam Belay
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Using ACPI for IRQ routing
apm: BIOS version 1.2 Flags 0×03 (Driver version 1.16ac)
apm: overridden by ACPI.
audit: initializing netlink socket (disabled)
audit(1144835753.097:0): initialized
Total HugeTLB memory allocated, 0
VFS: Disk quotas dquot_6.5.1
Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)
SELinux: Registering netfilter hooks
Initializing Cryptographic API
ksign: Installing public key data
Loading keyring
- Added public key 5B36F29B439C91FB
- User ID: Red Hat, Inc. (Kernel Module GPG key)
pci_hotplug: PCI Hot Plug PCI Core version: 0.5
vesafb: probe of vesafb0 failed with error -6
ACPI: Processor [CPU1] (supports C1, 8 throttling states)
isapnp: Scanning for PnP cards…
isapnp: No Plug & Play device found
Real Time Clock Driver v1.12
Linux agpgart interface v0.100 (c) Dave Jones
agpgart: Detected an Intel 865 Chipset.
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing enabled
ttyS0 at I/O 0×3f8 (irq = 4) is a 16550A
RAMDISK driver initialized: 16 RAM disks of 16384K size 1024 blocksize
divert: not allocating divert_blk for non-ethernet device lo
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
ICH5: IDE controller at PCI slot 0000:00:1f.1
PCI: Enabling device 0000:00:1f.1 (0005 -> 0007)
ACPI: PCI interrupt 0000:00:1f.1[A] -> GSI 9 (level, low) -> IRQ 9
Probing IDE interface ide0…
hda: WDC WD800BB-00CAA1, ATA DISK drive
Using cfq io scheduler
ide0 at 0×1f0-0×1f7,0×3f6 on irq 14
SELinux: Disabled at runtime.
SELinux: Unregistering netfilter hooks
inserting floppy driver for 2.6.9-1.667asp
Floppy drive(s): fd0 is 1.44M
FDC 0 is a National Semiconductor PC87306
Linux Kernel Card Services
options: [pci] [cardbus] [pm]
ip_tables: (C) 2000-2002 Netfilter core team
ip_tables: (C) 2000-2002 Netfilter core team
e100: eth0: e100_watchdog: link up, 10Mbps, half-duplex
i2c /dev entries driver
parport0: PC-style at 0×378 [PCSPP,TRISTATE]
lp0: using parport0 (polling).
lp0: console ready
eth0: no IPv6 routers present
ACPI: PCI interrupt 0000:00:02.0[A] -> GSI 11 (level, low) -> IRQ 11
[drm] Initialized i915 1.1.0 20040405 on minor 0:
mtrr: base(0xf0020000) is not aligned on a size(0×180000) boundary
spurious 8259A interrupt: IRQ7.
mydrv: no version for «struct_module» found: kernel tainted.
mydrv: version magic '2.6.9y PENTIUM4 gcc-3.3\′ should be '2.6.9-1.667asp 686 REGPARM 4KSTACKS gcc-3.3\′
mydrv: version magic '2.6.9y PENTIUM4 gcc-3.3\′ should be '2.6.9-1.667asp 686 REGPARM 4KSTACKS gcc-3.3\′
mydrv: version magic '2.6.9y PENTIUM4 gcc-3.3\′ should be '2.6.9-1.667asp 686 REGPARM 4KSTACKS gcc-3.3\′
А какая была версия в названии src.rpm с исходниками ядра? Грубо говоря, ядро считает, что ты собрал свой модуль не для него (а для какой-то иной версии), и отказывается его заружать.
По ссылке ниже рассказывается, как устанавливать исходники ядра именно для ASPLinux (кстати, на примере 10):
http://community.asplinux.ru/documents/faq/03_04.html
Проделай всё в точности по инструкции (удалив перед этим всё то, что ты уже наустанавливал), а затем попытайся заново скомпилировать свой модуль (уже без всяких там 'make config' и ответов на кучу вопросов, о которых ты говорил в первом сообщении данной темы).
kernel-2.6.9-1.667asp.src.rpm
Удалять нужно и исходные тексты ядра?
А как тогда удалить все то что я на создавал, я не знаю куда что установилось?
Делаю все по примеру http://community.asplinux.ru/documents/faq/03_04.html
Получается следующая ошибка:
[root@localhost SPECS]# rpmbuild -bp kernel-2.6.spec
ошибка: Архитектура не включена: i386
Ето еще что?
должно прокатить вот что:
Нет… Таже фигня