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