Yes you are right. So I compiled my module separatelly and then embedded it in the romfs. I still have some questions:
1
./ In the kernel code there a some goto statement, inC code. Isn't it a bit ugly?
2./ Do you know a nice book for embedded linux (ARM) using uCLinux?
3./ What can we say of the log here under?
/lib/modules> insmod -x etnamsw.o MswDebugLevel=2 Using etnamsw.o kernel BUG at page_alloc.c:117! kernel BUG at page_alloc.c:121! kernel BUG at page_alloc.c:117! kernel BUG at page_alloc.c:121! kernel BUG at page_alloc.c:117! kernel BUG at page_alloc.c:121! kernel BUG at page_alloc.c:117! kernel BUG at page_alloc.c:121! kernel BUG at page_alloc.c:117! kernel BUG at page_alloc.c:121! kernel BUG at page_alloc.c:117! kernel BUG at page_alloc.c:121! kernel BUG at page_alloc.c:117! kernel BUG at page_alloc.c:121! kernel BUG at page_alloc.c:117! kernel BUG at page_alloc.c:121! kernel BUG at page_alloc.c:117! kernel BUG at page_alloc.c:121! kernel BUG at page_alloc.c:117! kernel BUG at page_alloc.c:121! fault-common.c 243 Unable to handle kernel NULL pointer dereference at virtual address
0000003f fault-common.c(97): start_code=0x380040, start_stack=0x3bff70) Internal error: Oops: 0 CPU: 0 pc : [] lr : [] Not tainted sp : 003fdddc ip : e1a03803 fp : 003fddf8 r10: 001b7c64 r9 : 00372be0 r8 : 00000000 r7 : 60000013 r6 : 0025e218 r5 : 000000f0 r4 : 0025e210 r3 : 9a017fef r2 : 86b6e00c r1 : 000000f0 r0 : 0025e210 Flags: nzCv IRQs off FIQs on Mode SVC_32 Segment kernel Control: 107D Process insmod (pid: 16, stackpage=003fd000) Stack:
003fddc0: 00360000 000215fc 20000093 ffffffff 000872
60
003fdde0: 00000000 00000000 00000400 003fde10 003fddfc 000287d0
00021540 000000
00
003fde00: 00000c00 003fde38 003fde14 000288ec 0002878c 001b7c64
00000400 000004
00
003fde20: 00001f00 00000258 0037c0b0 003fde50 003fde3c 0002a888
000288cc 000000
96
003fde40: 002cb120 003fde74 003fde54 0002aad0 0002a814 00000000
00001f00 000004
00
003fde60: 00000258 00001000 003fde94 003fde78 00028378 0002a9e8
000000b0 000000 b0
003fde80: 00282b40 00096000 003fdeac 003fde98 00028678 00028344
00001000 000000 b0
003fdea0: 003fded8 003fdeb0 00047e8c 0002866c 00001000 001b6950
00372be0 0037c0
00
003fdec0: fffffffb 002c6120 000869e8 003fdf00 003fdedc 00048320
00047df4 002e2e f0
003fdee0: 001b6950 00000000 00372c90 00001000 00000000 003fdf44
003fdf04 0001ee e8
003fdf00: 00048250 00000001 00000061 00372be0 0001f308 003fdf50
002c6140 00065e f8
003fdf20: 002c6120 00000000 002c6120 002c6140 00000003 00000001
003fdf80 003fdf
48
003fdf40: 0001f400 0001ebbc 00000001 00085140 00060fcc 00004f2c
00360fd0 000000
00
003fdf60: 00065ef8 002c6120 ffffffea 00000000 00300004 003fdfac
003fdf84 00025f c0
003fdf80: 0001f3ac 003fdf90 00025e0c 00000000 0039e228 00065ef8
003fc000 00008b
20
003fdfa0: 00000000 003fdfb0 000089a0 00025ef4 00000000 000091b4
00000003 003000
04
003fdfc0: 00065ef8 0039dc94 00000000 0039e228 00065ef8 00300004
00000000 00065e f8
003fdfe0: 00000001 003bf954 00000000 003ba018 0039073c 00392984
60000010 000000
03 Backtrace: invalid frame pointer 0x003fddf8 Code: e59e300c e08e210c (e5921018) e5940018 e58e1014 Unable to handle kernel NULL pointer dereference at virtual address
0000003f fault-common.c(97): start_code=0x0, start_stack=0x0) Internal error: Oops: 0 CPU: 0 pc : [] lr : [] Not tainted sp : 003fdcc0 ip : 003fdce0 fp : 003fdcdc r10: 0006d8d0 r9 : 003fdd94 r8 : 0000000b r7 : 002be1a0 r6 : 000869c0 r5 : 000869bc r4 : 00264580 r3 : 00000000 r2 : e5820000 r1 : 60000013 r0 : 002be1a0 Flags: NzCv IRQs on FIQs on Mode SVC_32 Segment kernel Control: 107D Process insmod (pid: 16, stackpage=003fd000) Stack:
003fdca0: 0000ff54 00020894 a0000013 ffffff ff
003fdcc0: 002be1a0 003fdd94 003fc000 003fc000 003fdcf0 003fdce0
0000ff54 000208
70
003fdce0: 002be1a0 003fdd00 003fdcf4 00014924 0000ff18 003fdd18
003fdd04 0000ca
1c
003fdd00: 00014864 0000003f 003fdd94 003fdd38 003fdd1c 0000d4cc
0000c960 002be1 b4
003fdd20: 003fc000 00000000 002be1a0 003fdd6c 003fdd3c 0000d714
0000d474 003636 e0
003fdd40: 00000000 ffffffff 0000003f 003fdd94 0006cbb8 000000ef
20000093 001b7c
64
003fdd60: 003fdd90 003fdd70 0000dae4 0000d5fc ffffffff 003fddc8
0025e218 600000
13
003fdd80: 00000000 003fddf8 003fdd94 000083e0 0000daa0 0025e210
000000f0 86b6e0
0c
003fdda0: 9a017fef 0025e210 000000f0 0025e218 60000013 00000000
00372be0 001b7c
64
003fddc0: 003fddf8 e1a03803 003fdddc 00360000 000215fc 20000093 ffffffff 000872
60
003fdde0: 00000000 00000000 00000400 003fde10 003fddfc 000287d0
00021540 000000
00
003fde00: 00000c00 003fde38 003fde14 000288ec 0002878c 001b7c64
00000400 000004
00
003fde20: 00001f00 00000258 0037c0b0 003fde50 003fde3c 0002a888
000288cc 000000
96
003fde40: 002cb120 003fde74 003fde54 0002aad0 0002a814 00000000
00001f00 000004
00
003fde60: 00000258 00001000 003fde94 003fde78 00028378 0002a9e8
000000b0 000000 b0
003fde80: 00282b40 00096000 003fdeac 003fde98 00028678 00028344
00001000 000000 b0
003fdea0: 003fded8 003fdeb0 00047e8c 0002866c 00001000 001b6950
00372be0 0037c0
00
003fdec0: fffffffb 002c6120 000869e8 003fdf00 003fdedc 00048320
00047df4 002e2e f0
003fdee0: 001b6950 00000000 00372c90 00001000 00000000 003fdf44
003fdf04 0001ee e8
003fdf00: 00048250 00000001 00000061 00372be0 0001f308 003fdf50
002c6140 00065e f8
003fdf20: 002c6120 00000000 002c6120 002c6140 00000003 00000001
003fdf80 003fdf
48
003fdf40: 0001f400 0001ebbc 00000001 00085140 00060fcc 00004f2c
00360fd0 000000
00
003fdf60: 00065ef8 002c6120 ffffffea 00000000 00300004 003fdfac
003fdf84 00025f c0
003fdf80: 0001f3ac 003fdf90 00025e0c 00000000 0039e228 00065ef8
003fc000 00008b
20
003fdfa0: 00000000 003fdfb0 000089a0 00025ef4 00000000 000091b4
00000003 003000
04
003fdfc0: 00065ef8 0039dc94 00000000 0039e228 00065ef8 00300004
00000000 00065e f8
003fdfe0: 00000001 003bf954 00000000 003ba018 0039073c 00392984
60000010 000000
03 Backtrace: invalid frame pointer 0x003fdcdc Code: e3520000 0a00001f (e5923004) e2433001 e3530000 pid 16: failed 11 fault-common.c 243 Unable to handle kernel NULL pointer dereference at virtual address
0000003f fault-common.c(97): start_code=0x290040, start_stack=0x29ffb8) Internal error: Oops: 0 CPU: 0 pc : [] lr : [] Not tainted sp : 002d9ec8 ip : e1833c21 fp : 002d9ee4 r10: 0029ce74 r9 : 00000001 r8 : 003d1000 r7 : 40000013 r6 : 0025f0a8 r5 : 000001f0 r4 : 0025f0a0 r3 : e1a03421 r2 : 86333084 r1 : 000001f0 r0 : 0025f0a0 Flags: nzCv IRQs off FIQs on Mode SVC_32 Segment kernel Control: 107D Process sh (pid: 12, stackpage=002d9000) Stack:
002d9ea0:
00264000 000215 fc
002d9ec0: 20000093 ffffffff 00000000 000001f0 0025e280 000001f0
002d9f10 002d9e e8
002d9ee0: 00021364 00021540 0025e280 000001f0 0025e288 40000013
00008b20 000000
6a
002d9f00: 0029ce74 002d9f30 002d9f14 00021658 00021274 00087ec0 fffffff4 0029c2
4c
002d9f20: 002d9f78 002d9f54 002d9f34 00030128 00021540 002d9f78
0029ff28 000000
09
002d9f40: 002d9f78 00008b20 002d9f74 002d9f58 000318e8 00030114
002d9f78 0029ff
28
002d9f60: 0029db44 002d8000 002d9fac 002d9f78 0002da28 000318e0
002d9f84 000261
94
002d9f80: 00026e40 00000010 00290e0c 0029cc74 00000000 0000003b
0029ff28 0029d3
0c
002d9fa0: 00000000 002d9fb0 000089a0 0002da14 0000003b 0000e7f0
0029c24c 0029db
44
002d9fc0: 0029ff2a 00000000 0000003b 0029ff28 0029d30c 0029cc24
0029cc24 000000
01
002d9fe0: 0029ce74 00000000 0029db30 0029ff18 00295228 00298764
60000010 0029c2
4c Backtrace: invalid frame pointer 0x002d9ee4 Code: e59e300c e08e210c (e5921018) e5940018 e58e1014 Unable to handle kernel NULL pointer dereference at virtual address
0000003f fault-common.c(97): start_code=0x0, start_stack=0x0) Internal error: Oops: 0 CPU: 0 pc : [] lr : [] Not tainted sp : 002d9dac ip : 002d9dcc fp : 002d9dc8 r10: 0006d8d0 r9 : 002d9e80 r8 : 0000000b r7 : 002be120 r6 : 000869c0 r5 : 000869bc r4 : 002643e0 r3 : 00000000 r2 : e3a03001 r1 : 60000013 r0 : 002be120 Flags: NzCv IRQs on FIQs on Mode SVC_32 Segment kernel Control: 107D Process sh (pid: 12, stackpage=002d9000) Stack:
002d9d80: 0000ff
54
002d9da0: 00020894 a0000013 ffffffff 002be120 002d9e80 002d8000
002d8000 002d9d dc
002d9dc0: 002d9dcc 0000ff54 00020870 002be120 002d9dec 002d9de0
00014924 0000ff
18
002d9de0: 002d9e04 002d9df0 0000ca1c 00014864 0000003f 002d9e80
002d9e24 002d9e
08
002d9e00: 0000d4cc 0000c960 002be134 002d8000 00000000 002be120
002d9e58 002d9e
28
002d9e20: 0000d714 0000d474 00015d7c 00000000 ffffffff 0000003f
002d9e80 0006cb b8
002d9e40: 000000ef 20000093 0029ce74 002d9e7c 002d9e5c 0000dae4
0000d5fc ffffff ff
002d9e60: 002d9eb4 0025f0a8 40000013 003d1000 002d9ee4 002d9e80
000083e0 0000da a0
002d9e80: 0025f0a0 000001f0 86333084 e1a03421 0025f0a0 000001f0
0025f0a8 400000
13
002d9ea0: 003d1000 00000001 0029ce74 002d9ee4 e1833c21 002d9ec8
00264000 000215 fc
002d9ec0: 20000093 ffffffff 00000000 000001f0 0025e280 000001f0
002d9f10 002d9e e8
002d9ee0: 00021364 00021540 0025e280 000001f0 0025e288 40000013
00008b20 000000
6a
002d9f00: 0029ce74 002d9f30 002d9f14 00021658 00021274 00087ec0 fffffff4 0029c2
4c
002d9f20: 002d9f78 002d9f54 002d9f34 00030128 00021540 002d9f78
0029ff28 000000
09
002d9f40: 002d9f78 00008b20 002d9f74 002d9f58 000318e8 00030114
002d9f78 0029ff
28
002d9f60: 0029db44 002d8000 002d9fac 002d9f78 0002da28 000318e0
002d9f84 000261
94
002d9f80: 00026e40 00000010 00290e0c 0029cc74 00000000 0000003b
0029ff28 0029d3
0c
002d9fa0: 00000000 002d9fb0 000089a0 0002da14 0000003b 0000e7f0
0029c24c 0029db
44
002d9fc0: 0029ff2a 00000000 0000003b 0029ff28 0029d30c 0029cc24
0029cc24 000000
01
002d9fe0: 0029ce74 00000000 0029db30 0029ff18 00295228 00298764
60000010 0029c2
4c Backtrace: invalid frame pointer 0x002d9dc8 Code: e3520000 0a00001f (e5923004) e2433001 e3530000 fault-common.c 243 Unable to handle kernel NULL pointer dereference at virtual address
0000003f fault-common.c(97): start_code=0x2b0040, start_stack=0x2b7fb8) Internal error: Oops: 0 CPU: 0 pc : [] lr : [] Not tainted sp : 002f9ec8 ip : e1833c21 fp : 002f9ee4 r10: 002b47b4 r9 : 00000001 r8 : 003d0000 r7 : 40000013 r6 : 0025f0a8 r5 : 000001f0 r4 : 0025f0a0 r3 : e1a03421 r2 : 86333084 r1 : 000001f0 r0 : 0025f0a0 Flags: nzCv IRQs off FIQs on Mode SVC_32 Segment kernel Control: 107D Process init (pid: 1, stackpage=002f9000) Stack:
002f9ea0:
00264000 000215 fc
002f9ec0: 20000093 ffffffff 00000000 000001f0 0025e280 000001f0
002f9f10 002f9e e8
002f9ee0: 00021364 00021540 0025e280 000001f0 0025e288 40000013
00008b20 000000
0a
002f9f00: 002b47b4 002f9f30 002f9f14 00021658 00021274 00087ec0 fffffff4 002b40 dc
002f9f20: 002f8000 002f9f54 002f9f34 00030128 00021540 0000000c
002b4690 000000
01
002f9f40: 002f8000 00008b20 002f9f90 002f9f58 00032ba0 00030114
00000000 002f80
00
002f9f60: 00000000 00000000 0000000c 002b4690 00000001 0000000c
002b4690 000000
01
002f9f80: 002f8000 00000000 002f9f94 000089a0 00032b9c 0000000c
0000e80c 002b40 dc
002f9fa0: 002b7f2c 00000000 00000000 0000000c 002b4690 00000001
002b4694 002b46
98
002f9fc0: 002b7f44 002b47b4 00000000 00000045 002b7f2c 002b0170
002b33c4 600000
10
002f9fe0: 002b40dc 000869b0 0009c000 0007df14 00000000 002fa000
00009d2c 000080
4c Backtrace: invalid frame pointer 0x002f9ee4 Code: e59e300c e08e210c (e5921018) e5940018 e58e1014 Kernel panic: Attempted to kill init!