OT: ARM a Linux

Pavel Troller patrol na sinus.cz
Pátek Březen 7 16:52:00 CET 2014


Zdravím,

> Tak už to částečně jde. Těch průserů tam bylo více:
> - špatný argument v u-bootu v bootagrs (mělo být bootargs console=ttyS0,115200)
> - špatná verze kompileru (tuším že jsem používal 4.7.1 a ta si s něčím nerozuměla, dal jsem tam sourcerycode 4.6.1)
> 
> Nicméně když se spustí kernel tak to vyhodí plno chyb (od řádku [0.507311] PC:... je to více méně podobné SP, LR, IP, FP atd. až asi do šestnácté vteřiny, pak je konec). Takže jdu zkoumat dál, proč...

Ne, ta první chyba začíná zde:
[    0.436185] Unhandled fault: alignment exception (0x801) at 0xe7c37fa6
To ostatní už je jen pokračování výpisu. Podle všeho opět chybná kompilace,
jde o chybu zarovnání (na hranici 4/8 byte), což je velice low-level problém.
Máte správně nastavenu platformu (typ CPU) ? Některé ARMy mohou umět věci,
které jiné ARMy neumí. Je to v devtmpfs_init(), to je generický kód, žádná
HW specialita ARMa.
  Další chyby mohou být zavlečeny touto první.

  Zdraví Pavel

> 
> Starting kernel ...
> [    0.000000] Initializing cgroup subsys cpu
> [    0.000000] Linux version 2.6.34 (root na pole01) (gcc version 4.8.2 (4.8.2-16+8) ) #13 Fri Mar 7 13:52:17 CET 2014
> [    0.000000] CPU: ARMv7 Processor [412fc094] revision 4 (ARMv7), cr=10c53c7f
> [    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache
> [    0.000000] Machine: AMLOGIC MESON3 8726M SKT SH
> [    0.000000] Ignoring unrecognised tag 0x00000000
> [    0.000000] Memory policy: ECC disabled, Data cache writeback
> [    0.000000] BUG: mapping for 0x84000000 at 0xc4000000 overlaps vmalloc space
> [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 214528
> [    0.000000] Kernel command line: console=ttyS0,115200 root=/dev/mtdblock2 rw rootfstype=yaffs2 init=/sbin/init
> [    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)
> [    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)
> [    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)
> [    0.000000] Memory: 64MB 398MB 384MB = 846MB total
> [    0.000000] Memory: 849812k/849812k available, 16492k reserved, 393216K highmem
> [    0.000000] Virtual kernel memory layout:
> [    0.000000]     vector  : 0xffff0000 - 0xffff1000   (   4 kB)
> [    0.000000]     fixmap  : 0xfff00000 - 0xfffe0000   ( 896 kB)
> [    0.000000]     DMA     : 0xffc00000 - 0xffe00000   (   2 MB)
> [    0.000000]     vmalloc : 0xe8800000 - 0xf0000000   ( 120 MB)
> [    0.000000]     lowmem  : 0xc0000000 - 0xe8000000   ( 640 MB)
> [    0.000000]     pkmap   : 0xbfe00000 - 0xc0000000   (   2 MB)
> [    0.000000]     modules : 0xbf000000 - 0xbfe00000   (  14 MB)
> [    0.000000]       .init : 0xc0008000 - 0xc0037000   ( 188 kB)
> [    0.000000]       .text : 0xc0037000 - 0xc0828024   (8133 kB)
> [    0.000000]       .data : 0xc082a000 - 0xc0890a00   ( 411 kB)
> [    0.000000] SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
> [    0.000000] Hierarchical RCU implementation.
> [    0.000000] NR_IRQS:128
> [    0.000000] Console: colour dummy device 80x30
> [    0.000000] console [ttyS0] enabled
> [    0.178443] Calibrating delay loop... 1599.07 BogoMIPS (lpj=7995392)
> [    0.420143] Mount-cache hash table entries: 512
> [    0.422163] Initializing cgroup subsys cpuacct
> [    0.426219] Initializing cgroup subsys freezer
> [    0.430713] CPU: Testing write buffer coherency: ok
> [    0.436185] Unhandled fault: alignment exception (0x801) at 0xe7c37fa6
> [    0.442057] Internal error: : 801 [#1]
> [    0.445749] last sysfs file: 
> [    0.448701] Modules linked in:
> [    0.451742] CPU: 0    Not tainted  (2.6.34 #13)
> [    0.456266] PC is at devtmpfs_init+0x20/0xb4
> [    0.460512] LR is at driver_init+0x10/0x30
> [    0.464594] pc : [<c001caa8>]    lr : [<c001ca3c>]    psr: 80000013
> [    0.464599] sp : e7c37fa0  ip : e7c37fc8  fp : e7c37fc4
> [    0.476051] r10: 00000000  r9 : 00000000  r8 : 00000000
> [    0.481261] r7 : 00000000  r6 : 00000000  r5 : c0036288  r4 : c0036288
> [    0.487773] r3 : 00000035  r2 : 20000013  r1 : 3537303d  r0 : 65646f6d
> [    0.494287] Flags: Nzcv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
> [    0.501579] Control: 10c53c7f  Table: 80004059  DAC: 00000017
> [    0.507309] 
> [    0.507311] PC: 0xc001ca28:
> [    0.511562] ca28  e89da800 e1a0c00d e92dd800 e24cb004 eb000012 ebfffe49 ebfffe8b ebfffe9b
> [    0.519724] ca48  ebffffe8 ebffffcb ebfffe74 ebffffde e89da800 e1a0c00d e92dd800 e24cb004
> [    0.527885] ca68  e3a01000 e1a02001 eb09b766 e30f3680 e34c3084 e5830000 e3a00001 e89da800
> [    0.536047] ca88  e1a0c00d e92dd830 e24cb004 e24dd010 e30a3f04 e34c3079 e8b30003 e1d330b0
> [    0.544209] caa8  e50b001e e59f0084 e14b31b6 e50b101a eb031500 e2505000 0a000005 e30a0e88
> [    0.552370] cac8  e1a01005 e34c0079 eb17c81c e1a00005 ea000014 e24b101e e59f0050 eb02c674
> [    0.560532] cae8  e3700a01 e1a04000 9a000007 e1a01004 e30a0ebc e34c0079 eb17c810 e59f002c
> [    0.568694] cb08  eb031452 e1a00004 ea000006 e30137d8 e34c308d e30a0ee8 e34c0079 e5834000
> 
> -----Original Message-----
> From: Hw-list [mailto:hw-list-bounces na list.hw.cz] On Behalf Of d.petr
> Sent: Thursday, March 06, 2014 2:50 PM
> To: HW-news
> Subject: Re: OT: ARM a Linux
> 
> Michal Grunt wrote:
> >...
> > Takže nějaký základ v kernelu je, ale asi ne všechen. Našel jsem si 
> >tedy kernel
> > https://github.com/J1nx-Hackable-Gadgets/buildroot-linux-kernel-m3
> > upravil soubor meson_reff16_defconfig (zapnul podporu tuneru MXL101) a kernel zkompiloval.
> >
> > Ale teď nevím jak správně s výsledným uImage naložit. Zkusil jsem 
> > toto: když jsem stáhnul zmiňovaný alternativní firmware
> > http://www.j1nx.nl/downloads/?did=29
> > tak jsem v ZIPu nahradil uImage-2.6.34 mým souborem (přejmenovaným na uImage-2.6.34).
> > Firmware (ZIP) jsem nahrál do zařízení. Nabootoval jsem z SD karty clockworkmod  (podržením resetu a zapnutím napájení a vybral z menu install ZIP from SD) - takto jsem postupoval i s neupraveným ZIPem a v pohodě. Po nahrání restartuji a sleduji přes UART (na desce byl vyvedený, ale bez konektoru, takže jsem napájel konektor a připojil k PC přes USB převodník) co to bude dělat.
> > Naběhne u-boot a po něm:
> > Uncompressing Kernel Image ... OK
> > Starting kernel ...
> >
> > A to je vše, dál se nic neděje.
> 
> ARM je jedna tragédie a u-boot druhá. Ale nepodařilo by se (jestli se opravdu jedná o totožné jádro) zkompilovat potřebné věci jako moduly a přidat tam jen je do /lib/modules/... ?
> PM
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list


Další informace o konferenci Hw-list