Основные компоненты:
Процессор AT91RM9200CJ-002
Флэш AT49BV641670TU (8Мб)
ОЗУ MT48LC16M16A2 (2х32Мб)
Система - свой Линукс на ядре 2.6.17, собран тулчейном от heavy.
После загрузки остаётся около 40 Мб свободной оперативы:
Код
# cat /proc/meminfo
MemTotal: 62136 kB
MemFree: 44296 kB
Buffers: 9752 kB
Cached: 3328 kB
SwapCached: 0 kB
Active: 4768 kB
Inactive: 9952 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 62136 kB
LowFree: 44296 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 8 kB
Writeback: 0 kB
Mapped: 3260 kB
Slab: 1784 kB
CommitLimit: 31068 kB
Committed_AS: 10852 kB
PageTables: 256 kB
VmallocTotal: 956416 kB
VmallocUsed: 9688 kB
VmallocChunk: 946172 kB
MemTotal: 62136 kB
MemFree: 44296 kB
Buffers: 9752 kB
Cached: 3328 kB
SwapCached: 0 kB
Active: 4768 kB
Inactive: 9952 kB
HighTotal: 0 kB
HighFree: 0 kB
LowTotal: 62136 kB
LowFree: 44296 kB
SwapTotal: 0 kB
SwapFree: 0 kB
Dirty: 8 kB
Writeback: 0 kB
Mapped: 3260 kB
Slab: 1784 kB
CommitLimit: 31068 kB
Committed_AS: 10852 kB
PageTables: 256 kB
VmallocTotal: 956416 kB
VmallocUsed: 9688 kB
VmallocChunk: 946172 kB
Примерно половина оперативы выделена под рам-диск:
Код
# mount
rootfs on / type rootfs (rw)
/dev/root on / type ext2 (rw)
proc on /proc type proc (rw)
sys on /sys type sysfs (rw)
/dev/ram1 on /var/tmp type ext2 (rw)
/dev/loop0 on /mnt/settings type ext2 (rw)
# df -h /var/tmp/
Filesystem Size Used Available Use% Mounted on
/dev/ram1 30.3M 464.0k 28.2M 2% /var/tmp
rootfs on / type rootfs (rw)
/dev/root on / type ext2 (rw)
proc on /proc type proc (rw)
sys on /sys type sysfs (rw)
/dev/ram1 on /var/tmp type ext2 (rw)
/dev/loop0 on /mnt/settings type ext2 (rw)
# df -h /var/tmp/
Filesystem Size Used Available Use% Mounted on
/dev/ram1 30.3M 464.0k 28.2M 2% /var/tmp
После загрузки файла размером 4-8Мб в рам-диск система рушится:
Код
Unable to handle kernel paging request at virtual address ecefbeb4
pgd = c3a3c000
[ecefbeb4] *pgd=00000000
Internal error: Oops: 5 [#2]
Modules linked in:
CPU: 0
PC is at fget_light+0x58/0xcc
LR is at 0xecefbeb4
pc : [<c0072a90>] lr : [<ecefbeb4>] Not tainted
sp : c082bb74 ip : 00000000 fp : c082bb84
r10: 00000000 r9 : 00000004 r8 : c0e74660
r7 : 00000000 r6 : 00000002 r5 : 00000002 r4 : 00000004
r3 : 572c85fa r2 : 00000000 r1 : c082bbcc r0 : 00000002
Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment user
Control: C000317F Table: 23A3C000 DAC: 00000015
Process inetd (pid: 783, stack limit = 0xc082a198)
Stack: (0xc082bb74 to 0xc082c000)
...
pgd = c3a3c000
[ecefbeb4] *pgd=00000000
Internal error: Oops: 5 [#2]
Modules linked in:
CPU: 0
PC is at fget_light+0x58/0xcc
LR is at 0xecefbeb4
pc : [<c0072a90>] lr : [<ecefbeb4>] Not tainted
sp : c082bb74 ip : 00000000 fp : c082bb84
r10: 00000000 r9 : 00000004 r8 : c0e74660
r7 : 00000000 r6 : 00000002 r5 : 00000002 r4 : 00000004
r3 : 572c85fa r2 : 00000000 r1 : c082bbcc r0 : 00000002
Flags: nzCv IRQs on FIQs on Mode SVC_32 Segment user
Control: C000317F Table: 23A3C000 DAC: 00000015
Process inetd (pid: 783, stack limit = 0xc082a198)
Stack: (0xc082bb74 to 0xc082c000)
...
или
Код
Unable to handle kernel NULL pointer dereference at virtual address 00000000
pgd = c3518000
[00000000] *pgd=23491031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1]
Modules linked in:
CPU: 0
PC is at dev_queue_xmit+0x68/0x224
LR is at ip_output+0x178/0x2dc
pc : [<c017998c>] lr : [<c019866c>] Not tainted
sp : c3493bf8 ip : c3493c14 fp : c3493c10
r10: 00000000 r9 : 00000000 r8 : c356eb10
r7 : c082a260 r6 : fffffff4 r5 : c356eae0 r4 : c0c4b000
r3 : 00000100 r2 : c3492000 r1 : 00000000 r0 : c356eae0
Flags: Nzcv IRQs on FIQs on Mode SVC_32 Segment user
Control: C000317F Table: 23518000 DAC: 00000015
Process httpd (pid: 886, stack limit = 0xc3492198)
...
pgd = c3518000
[00000000] *pgd=23491031, *pte=00000000, *ppte=00000000
Internal error: Oops: 17 [#1]
Modules linked in:
CPU: 0
PC is at dev_queue_xmit+0x68/0x224
LR is at ip_output+0x178/0x2dc
pc : [<c017998c>] lr : [<c019866c>] Not tainted
sp : c3493bf8 ip : c3493c14 fp : c3493c10
r10: 00000000 r9 : 00000000 r8 : c356eb10
r7 : c082a260 r6 : fffffff4 r5 : c356eae0 r4 : c0c4b000
r3 : 00000100 r2 : c3492000 r1 : 00000000 r0 : c356eae0
Flags: Nzcv IRQs on FIQs on Mode SVC_32 Segment user
Control: C000317F Table: 23518000 DAC: 00000015
Process httpd (pid: 886, stack limit = 0xc3492198)
...
Не понимаю, почему так происходит...
Вот кое-что интересное вылезло:
Код
u-boot> mtest
Testing 20000000 ... 23ede000:
Iteration: 1
FAILURE (read/write) @ 0x21edddac: expected 0x007b776c, actual 0xff848894)
Testing 20000000 ... 23ede000:
Iteration: 1
FAILURE (read/write) @ 0x21edddac: expected 0x007b776c, actual 0xff848894)
Адрес 1edddac - это где-то 32 Мб.
Попробовал передать ядру mem=32M вместо mem=64M. Файл успешно загрузился, но распаковать его не удалось - посыпались сообщения:
Код
Out of Memory: Kill process 916 (dnsmasq) score 397 and children.
Out of memory: Killed process 916 (dnsmasq).
oom-killer: gfp_mask=0x200d2, order=0
[<c0028bfc>] (dump_stack+0x0/0x14) from [<c0059b68>] (out_of_memory+0x158/0x184)
[<c0059a10>] (out_of_memory+0x0/0x184) from [<c005acf8>] (__alloc_pages+0x290/0x2b4)
[<c005aa68>] (__alloc_pages+0x0/0x2b4) from [<c007eae8>] (pipe_writev+0x36c/0x440)
[<c007e77c>] (pipe_writev+0x0/0x440) from [<c007ebe0>] (pipe_write+0x24/0x2c)
[<c007ebbc>] (pipe_write+0x0/0x2c) from [<c0071914>] (vfs_write+0xb0/0x178)
[<c0071864>] (vfs_write+0x0/0x178) from [<c0071aa4>] (sys_write+0x4c/0x7c)
r8 = 00000000 r7 = 00000000 r6 = C0D2BF78 r5 = C14E3260
r4 = C14E3280
[<c0071a58>] (sys_write+0x0/0x7c) from [<c0023d40>] (ret_fast_syscall+0x0/0x2c)
r8 = C0023EE4 r7 = 00000004 r6 = 40213830 r5 = 40018000
r4 = 00001000
Mem-info:
DMA per-cpu:
cpu 0 hot: high 6, batch 1 used:5
cpu 0 cold: high 2, batch 1 used:0
DMA32 per-cpu: empty
Normal per-cpu: empty
HighMem per-cpu: empty
Free pages: 1036kB (0kB HighMem)
Active:3430 inactive:2758 dirty:0 writeback:0 unstable:0 free:259 slab:507 mapped:784 pagetables:93
DMA free:1036kB min:724kB low:904kB high:1084kB active:13720kB inactive:11032kB present:32768kB pages_scanned:0 all_unreclao
lowmem_reserve[]: 0 0 0 0
DMA32 free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
Normal free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
HighMem free:0kB min:128kB low:128kB high:128kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
DMA: 103*4kB 24*8kB 5*16kB 1*32kB 1*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1036kB
DMA32: empty
Normal: empty
HighMem: empty
Free swap: 0kB
8192 pages of RAM
381 free pages
788 reserved pages
507 slab pages
285 pages shared
0 pages swap cached
Out of memory: Killed process 916 (dnsmasq).
oom-killer: gfp_mask=0x200d2, order=0
[<c0028bfc>] (dump_stack+0x0/0x14) from [<c0059b68>] (out_of_memory+0x158/0x184)
[<c0059a10>] (out_of_memory+0x0/0x184) from [<c005acf8>] (__alloc_pages+0x290/0x2b4)
[<c005aa68>] (__alloc_pages+0x0/0x2b4) from [<c007eae8>] (pipe_writev+0x36c/0x440)
[<c007e77c>] (pipe_writev+0x0/0x440) from [<c007ebe0>] (pipe_write+0x24/0x2c)
[<c007ebbc>] (pipe_write+0x0/0x2c) from [<c0071914>] (vfs_write+0xb0/0x178)
[<c0071864>] (vfs_write+0x0/0x178) from [<c0071aa4>] (sys_write+0x4c/0x7c)
r8 = 00000000 r7 = 00000000 r6 = C0D2BF78 r5 = C14E3260
r4 = C14E3280
[<c0071a58>] (sys_write+0x0/0x7c) from [<c0023d40>] (ret_fast_syscall+0x0/0x2c)
r8 = C0023EE4 r7 = 00000004 r6 = 40213830 r5 = 40018000
r4 = 00001000
Mem-info:
DMA per-cpu:
cpu 0 hot: high 6, batch 1 used:5
cpu 0 cold: high 2, batch 1 used:0
DMA32 per-cpu: empty
Normal per-cpu: empty
HighMem per-cpu: empty
Free pages: 1036kB (0kB HighMem)
Active:3430 inactive:2758 dirty:0 writeback:0 unstable:0 free:259 slab:507 mapped:784 pagetables:93
DMA free:1036kB min:724kB low:904kB high:1084kB active:13720kB inactive:11032kB present:32768kB pages_scanned:0 all_unreclao
lowmem_reserve[]: 0 0 0 0
DMA32 free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
Normal free:0kB min:0kB low:0kB high:0kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
HighMem free:0kB min:128kB low:128kB high:128kB active:0kB inactive:0kB present:0kB pages_scanned:0 all_unreclaimable? no
lowmem_reserve[]: 0 0 0 0
DMA: 103*4kB 24*8kB 5*16kB 1*32kB 1*64kB 0*128kB 1*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 1036kB
DMA32: empty
Normal: empty
HighMem: empty
Free swap: 0kB
8192 pages of RAM
381 free pages
788 reserved pages
507 slab pages
285 pages shared
0 pages swap cached
Система пока держится