OT: ARM a Linux

Michal Grunt michal.grunt na vynet.cz
Pátek Březen 7 16:23:10 CET 2014


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č...

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


Další informace o konferenci Hw-list