Yuri Posted July 14, 2015 Posted July 14, 2015 I have tested Armbian with mainline kernel on A10-OLinuxino-Lime-4G board. The only one change is : diff --git a/configuration.sh b/configuration.sh index 7f439a7..be27778 100644 --- a/configuration.sh +++ b/configuration.sh @@ -130,7 +130,7 @@ lime) # Olimex Lime #-------------------------------------------------------------------------------------------------------------------------------- REVISION="1.9" -BOOTCONFIG="A20-OLinuXino-Lime_defconfig" +BOOTCONFIG="A10-OLinuXino-Lime_defconfig" MODULES="hci_uart gpio_sunxi rfcomm hidp bonding spi_sun7i 8021q a20_tp" MODULES_NEXT="" ;; After this patch correct version of U-boot (.config file) is build and correct dtb-file is used at boot. It can't be committed "as is" because this patch removes support of A20-OLinuXino-Lime. So some refactoring of $BOARDS in main.sh is needed to support A10-OLinuXino-Lime, A20-OLinuXino-Lime and A20-OLinuXino-Lime2 boards. Dear Igor! Please, add support of this boards to Armbian! Best regards, Yuri
Igor Posted July 14, 2015 Posted July 14, 2015 Gr8! I'll add later on. Thanks.How about kernel 3.4.x? Have you try booting that too?
Igor Posted July 14, 2015 Posted July 14, 2015 Lime A10 image with kernel 3.4.108 and HW accelerated MATE desktop http://mirror.igorpecovnik.com/Lime-a10_Debian_1.0_wheezy_3.4.108.zip Lime A10 image with kernel 4.1.2 http://mirror.igorpecovnik.com/Lime-a10_Debian_1.0_wheezy_4.1.2.zip Try when u find time and please report if it's working properly.
Yuri Posted July 14, 2015 Author Posted July 14, 2015 1) Lime A10 image with kernel 4.1.2 Boots OK. Serial and HDMI consoles work. Only one error during first boot: "/etc/init.d/armhwinfo: line 51: echo: write error: Input/output error". I think it is due to only one core in A10. Do you need dmesg or /var/log/* files?
Yuri Posted July 14, 2015 Author Posted July 14, 2015 2) Lime A10 image with kernel 3.4.108 and HW accelerated MATE desktop It starts boot, but it hangs. Output from serial console is below: U-Boot SPL 2015.04-dirty (Jul 14 2015 - 19:32:48) DRAM: 512 MiB CPU: 912000000Hz, AXI/AHB/APB: 3/2/2 U-Boot 2015.04-dirty (Jul 14 2015 - 19:32:48) Allwinner Technology CPU: Allwinner A10 (SUN4I) I2C: ready DRAM: 512 MiB MMC: SUNXI SD/MMC: 0 *** Warning - bad CRC, using default environment HDMI connected: EDID: invalid EDID data Setting up a 1024x768 dvi console Error: no valid bmp image at 66000000 In: serial Out: vga Err: vga SCSI: SUNXI SCSI INIT SATA link 0 timeout. AHCI 0001.0100 32 slots 1 ports 3 Gbps 0x1 impl SATA mode flags: ncq stag pm led clo only pmp pio slum part ccc apst Net: emac starting USB... USB0: USB EHCI 1.00 scanning bus 0 for devices... cannot reset port 1!? 1 USB Device(s) found USB1: USB EHCI 1.00 scanning bus 1 for devices... cannot reset port 1!? 1 USB Device(s) found scanning usb for storage devices... 0 Storage Device(s) found Hit any key to stop autoboot: 0 6944 bytes read in 192 ms (35.2 KiB/s) switch to partitions #0, OK mmc0 is current device Scanning mmc 0:1... Found U-Boot script /boot/boot.scr 1548 bytes read in 181 ms (7.8 KiB/s) ## Executing script at 43100000 ** File not found /boot/.next ** 43508 bytes read in 458 ms (91.8 KiB/s) 5605360 bytes read in 657 ms (8.1 MiB/s) Kernel image @ 0x48000000 [ 0x000000 - 0x5587f0 ] Starting kernel ... <6>Booting Linux on physical CPU 0 <6>Initializing cgroup subsys cpuset <6>Initializing cgroup subsys cpu <5>Linux version 3.4.108-lime (root@kitchen) (gcc version 4.8.2 (Ubuntu/Linaro 4.8.2-16ubuntu4) ) #14 SMP PREEMPT Sun Jul 12 16:43:47 CEST 2015 CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache Machine: sun4i <6>Memory Reserved: <6> SYS : 0x43000000 - 0x4300ffff ( 64 kB) <6> LCD : 0x44000000 - 0x44ffffff ( 16 MB) Memory policy: ECC disabled, Data cache writeback <6>sunxi: Allwinner A10 revision C (AW1623/sun4i) detected. <7>On node 0 totalpages: 131072 <7>free_area_init_node: node 0, pgdat c0a7bb40, node_mem_map d0000000 <7> DMA zone: 512 pages used for memmap <7> DMA zone: 0 pages reserved <7> DMA zone: 65024 pages, LIFO batch:15 <7> Normal zone: 512 pages used for memmap <7> Normal zone: 65024 pages, LIFO batch:15 <6>PERCPU: Embedded 8 pages/cpu @d0405000 s8256 r8192 d16320 u32768 <7>pcpu-alloc: s8256 r8192 d16320 u32768 alloc=8*4096<c> <7>pcpu-alloc: <c>[0] <c>0 <c> Built 1 zonelists in Zone order, mobility grouping on. Total pages: 130048 <5>Kernel command line: console=tty1 root=/dev/mmcblk0p1 rootwait rootfstype=ext4 sunxi_ve_mem_reserve=0 sunxi_g2d_mem_reserve=0 sunxi_no_mali_mem_reserve sunxi_fb_mem_reserve=16 hdmi.audio=EDID:0 disp.screen0_output_mode=1920x1080p60 panic=10 consoleblank=0 enforcing=0 loglevel=1 <6>PID hash table entries: 2048 (order: 1, 8192 bytes) <6>Dentry cache hash table entries: 65536 (order: 6, 262144 bytes) <6>Inode-cache hash table entries: 32768 (order: 5, 131072 bytes) <6>allocated 1048576 bytes of page_cgroup <6>please try 'cgroup_disable=memory' option if you don't want memory cgroups <6>Memory: 512MB = 512MB total <5>Memory: 489616k/489616k available, 34672k reserved, 0K highmem <5>Virtual kernel memory layout: vector : 0xffff0000 - 0xffff1000 ( 4 kB) fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) vmalloc : 0xe0800000 - 0xff000000 ( 488 MB) lowmem : 0xc0000000 - 0xe0000000 ( 512 MB) pkmap : 0xbfe00000 - 0xc0000000 ( 2 MB) modules : 0xbf000000 - 0xbfe00000 ( 14 MB) .text : 0xc0008000 - 0xc09d1b00 (10023 kB) .init : 0xc09d2000 - 0xc0a0b040 ( 229 kB) .data : 0xc0a0c000 - 0xc0a842b8 ( 481 kB) .bss : 0xc0a842dc - 0xc0c596b8 (1877 kB) <6>SLUB: Genslabs=11, HWalign=64, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 <6>Preemptible hierarchical RCU implementation. <6> RCU dyntick-idle grace-period acceleration is enabled. <6> Additional per-CPU info printed with stalls. <6>NR_IRQS:192 <6>sched_clock: 32 bits at 24MHz, resolution 41ns, wraps every 178956ms <6>Console: colour dummy device 80x30 <6>console [tty1] enabled <6>Calibrating delay loop... And A10 CPU was very hot. And to you previous question: no, I don't check kernel 3.4.x before.
Igor Posted July 15, 2015 Posted July 15, 2015 Thanks. 1. I don't need logs. You are right ... I'll fix asap. 2. No ideas at this point. I guess it's not a proper FEX script. I use the one from here. Access to hardware would be nice to conduct more tests. It would be glad to have this working ... some day
tkaiser Posted July 15, 2015 Posted July 15, 2015 2. No ideas at this point. I guess it's not a proper FEX script. I use the one from here. This one initialises DRAM with 480 MHz which according to Olimex (when they released the A20 Lime2 they talked about "much better routing of DDR3 memory" and what's said regarding A20-Lime should apply to the A10-Lime as well) might not work reliable. @Yuri: Can you try to have a look what Olimex sets in the script.bin they use with their own images? Might be 384 MHz instead. BTW: Using A10 together with HW accelerated desktop (or desktop at all) is no good idea: http://linux-sunxi.org/Optimizing_system_performance#Using_a_lower_resolution_graphics_mode
Yuri Posted July 15, 2015 Author Posted July 15, 2015 I have tried image from https://www.olimex.com/wiki/A10-OLinuXino-LIME. It works fine with HW desktop (with FBTURBO and MALI drivers). script.bin and Xorg.log are here.
Yuri Posted July 15, 2015 Author Posted July 15, 2015 I looked through kernel config files and found than in config for Lime A10 image with kernel 3.4.108 and HW accelerated MATE desktop there are: # CONFIG_ARCH_SUN4I is not set # CONFIG_ARCH_SUN5I is not set CONFIG_ARCH_SUN7I=y It is not good... Config file is here. 1
tkaiser Posted July 15, 2015 Posted July 15, 2015 script.bin and Xorg.log are here. Also 480 MHz but I still doubt that this is correct since A10-Lime and A20-Lime are the same regarding PCB layout.
Igor Posted July 15, 2015 Posted July 15, 2015 I recompile the kernel and image. Lime A10 image with kernel 3.4.108 and HW accelerated MATE desktop Same link: http://mirror.igorpecovnik.com/Lime-a10_Debian_1.0_wheezy_3.4.108.zip
Yuri Posted July 15, 2015 Author Posted July 15, 2015 Result is the same. It seems that in 3.4 kernel it is impossible to have both CONFIG_ARCH_SUN4I=y and CONFIG_ARCH_SUN7I=y. In last image only CONFIG_ARCH_SUN7I is set. Now I am compiling 3.4 kernel with only CONFIG_ARCH_SUN4I=y.
Yuri Posted July 15, 2015 Author Posted July 15, 2015 Hm. Only now I have found than I can't build linux-sunxi-3.4 kernel (with Lime-A20 and Lime2-A20 config file). Something wrong with return_address function, but right now I can't correct it. init/do_mounts_rd.o: In function `return_address': do_mounts_rd.c:(.text+0x0): multiple definition of `return_address' init/do_mounts.o:do_mounts.c:(.text+0x34): first defined here init/do_mounts_initrd.o: In function `return_address': do_mounts_initrd.c:(.text+0x0): multiple definition of `return_address' init/do_mounts.o:do_mounts.c:(.text+0x34): first defined here scripts/Makefile.build:429: recipe for target 'init/mounts.o' failed ... arch/arm/kernel/return_address.c:62:2: warning: #warning "TODO: return_address should use unwind tables" [-Wcpp] #warning "TODO: return_address should use unwind tables" ^ arch/arm/kernel/return_address.c:65:7: error: redefinition of ‘return_address’ void *return_address(unsigned int level) ^ In file included from include/linux/ftrace.h:19:0, from arch/arm/kernel/return_address.c:12: /home/yura/work/chudom/lime1-3.4/output/linux-sunxi/arch/arm/include/asm/ftrace.h:48:21: note: previous definition of ‘return_address’ was here extern inline void *return_address(unsigned int level) ^
Igor Posted July 16, 2015 Posted July 16, 2015 Where do you build it? There are troubles on some systems and compilers.
Yuri Posted July 16, 2015 Author Posted July 16, 2015 Debian Testing: gcc - 4.9.3l; gcc-5-arm-linux-gnueabihf - 5.1.1-8cross1.
Igor Posted July 16, 2015 Posted July 16, 2015 I am working on Ubuntu 14.04 with it's defaults. gcc version 4.8.4 / gcc version 4.7.3 Recommended to avoid problems. Perhaps this is related.
tkaiser Posted July 30, 2015 Posted July 30, 2015 I am working on Ubuntu 14.04 with it's defaults. Hmm... I thought installing Linaro's standalone cross-compiler toolchain is recommended? I use http://releases.linaro.org/14.11/components/toolchain/binaries/arm-linux-gnueabihf/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf.tar.xz and unpacked it in /usr/local and define export PATH="/usr/local/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/:$PATH" @Yuri: Since you're using an A10 I would love to get feedback regarding reading out thermal values from its TP's thermal sensor inside. Please have a look at this thread. Would be great if you could unpack the sunxi-monitor.tar.gz archive and provide the output of /usr/share/rpimonitor/scripts/sunxi_tp_temp 1447 to get a clue whether this approachs works on A10/A13 as well. Thx (and sorry for thread hijacking)
Yuri Posted August 4, 2015 Author Posted August 4, 2015 tkaiser! root@lime-a10:~/sunxi-monitor/usr/share/rpimonitor/scripts# ./sunxi_tp_temp 1447 78.8 root@lime-a10:~/sunxi-monitor/usr/share/rpimonitor/scripts# ./sunxi_tp_temp 1447 79.0 P.S. I use mainline (4.1.1) kernel.
Kafanti Posted August 17, 2015 Posted August 17, 2015 Hello I bought Olimex A10Lime two weeks ago. Since I have no prior UNIX/Linux experience I have just booted it with official Olimex's Debian image* with wheezy on it. It has EGLIBC with 2.13 and GCC with 4.6. *https://www.olimex.com/wiki/A10-OLinuXino-LIME The main reason why I bought this card was to learn embedded Linux while developing some applications over it with Qt Framework. But I am struggling to cross compile Qt for it. Firstly, I have noticed that if I use cross toolchain with different version of C libraries than those on my target OS, it fails linking and stops compilation. But because GCC-4.6 has no C++11 support I wouldn't like to actually use a crosstoolchain with it. So I have tried to upgrade my EGLIBC and GCC on my target OS. But I found some comments on the internet saying that upgrading EGLIBC wouldn't be the safe way. So I tried to transit from wheezy to jessie using the same image. But it has failed because of a package(which is udev) that is not compatible with the kernel on my target OS. After those tries I tried to use Debian installer like explained on this link, https://wiki.debian.org/InstallingDebianOn/Allwinner But because of the u-boot that Debian provides, the system was headless which can not be the case for my purpose. I researched Ubuntu trusty or Debian jessie is the completely perfect environment for me. those have GCC with 4.8 and EGLIBC with 2.19. And those are also stable as well.. My question is; do you have any advice for me to accomplish my purpose on Olimex A10 Lime? I don't mind if there aren't any X desktops on my target OS but I know that I would need OpenGL ES 2 support on it to use EGL on Qt. Thank you, Sina
Kafanti Posted August 17, 2015 Posted August 17, 2015 Ah!! Finally I have an environment with gcc 4.9! Thanks for your efforts. I have used that image http://mirror.igorpecovnik.com/Lime-a10_Debian_1.0_wheezy_4.1.2.zip and followed Igor's FAQ* about upgrading from wheezy to jessie.. Thats it * http://www.igorpecovnik.com/2014/11/18/olimex-lime-debian-sd-image/ How to upgrade from Debian Wheezy to Debian Jessie? dpkg -r ramlog cp /etc/apt/sources.list{,.bak} sed -i -e 's/ \(stable\|wheezy\)/ jessie/ig' /etc/apt/sources.list apt-get update apt-get --download-only dist-upgrade apt-get dist-upgrade After I just checked my release info, lsb_release -a it is jessie But now I have another problem with it. I guess that kernel-4.1.2 is linux-kernel, which is not sunxi-kernel. So it does not have the Mali Binary Libraries. So is it possible to install this driver on that kernel? I need Mali for Opengl ES 2 support. Also is it possible to have LCD support on that system? Btw is there any recomendations for cross compiler? Thank you, Sina
Recommended Posts