@lex Posted September 2, 2016 Posted September 2, 2016 "but Friendy ARM OS images are pretty nice" Nano M2 image ubuntu 15.04 after update to 15.10 does not work, Kali linux no sound, Debian 8 suppoert 720p resolution. To change resolution 1080p please compile kernel - doesnot work. Android - works . Nano M3 the same as Nano M2 but without Kali and Ubuntu which doesnot exist I have Xenial 16.04 Desktop running on M3 and M2 if you would like to try it i can provide an image this weekend. Lean and Mean image, 720P. About the 1080P i would like to hear what did not work for you, and can prepare an image too, can you tell if you have a good PSU and what monitor you use?
eternalWalker Posted September 2, 2016 Author Posted September 2, 2016 @lex You can compile armbian for M3 ? ... with kernel... (v4) ... ///..........great , great thanks! .....if your ubuntu does not come by chance from sinovoip ? ...or not ?
@lex Posted September 2, 2016 Posted September 2, 2016 Oops, sorry i thought you were talking about NanoPi M3, BPI-M3 is on the way and if does not stop on customs... Not armbian yet, just old 3.4.39 kernel from FA. Waiting for Igor and the big guys to do the hard work.
eternalWalker Posted September 3, 2016 Author Posted September 3, 2016 @lex I 'm thinking that Igor has both ... (M3) . (Banana und Nano). And that one day will be the largest Creator of the New World to the M3 .... Thomas don't like bananas Gruß, salute & pozdrav
mihai.aldea Posted September 10, 2016 Posted September 10, 2016 +1 on the Armbian on M3 beggars list And here are my reasons: 1. I'm using FA's images on mine only because I couldn't use Armbian, however it took me a whole night of banging my head agains the walls and not understanding why several brand new Kingston 8GB cards were booting with I/O errors only to try the next day with some crappy Hama card and see it come to life. I have lots of SBC's around but none throws these errors with a specific card, they all work no matter what I throw at them. My second WiFi adapter pops an USB error message in the console after a couple of hours of operation. So I take your word for it that FA has decent support for its board but with my limited experience with them, it seems only decent comparing to other vendors. 2. Even if you obliterated it at first, you grew to be pretty fond if it, simply because what seemed to be a huge problem (eg. the USB power connector) turned out to be "workaround"-able. And come on, if someone wants minimal fuss, they can all rush in and buy and RPi-3 , however tweaking the hardware like adding a second or a bigger fan is half the fun. 3. You have to admit that the board does have a huge potential considering its price tag for the features it puts on the table. To the best of my knowledge the only board gets closest to this price is the pcDuino8 but that one is more of an Arduino clone on steroids, the M3 is way sexier . And while sometimes even the flimsy RPi Zero may be an overkill for a home automation project, there may be cases where some serious CPU grinding is required with the M3 giving the biggest bang for the buck IMHO. 4. I bet there are quite a few who are considering buying it if not already and not having Armbian on this board feels like a dent in their Armbian ecosystem. Because let's face it, after using Raspbian for years and finding out about Armbian only after getting and OrangePi Lite two months ago, i feel like comparing a walkie-talkie with a smartphone . Your work is really awesome guys !
@lex Posted September 11, 2016 Posted September 11, 2016 I have learnt the hard way after a lot of troubleshooting, i use only the cheap SanDisk Ultra 16GB (48 MB/s) on all my SBC and don't regret it. (seems to be harder to find a counterfeit for this brand/model, i have 20 or i may be lucky). The nice thing is that i am able to build the kernel on NanoPi M3 while Armbian is cooking and without FAN the temps are around 85C. I am using the BIG FA heat-sink without the FAN attached but with some mod for better convection, i don't have a picture right now to share but i will, seems working fine if not inside the case. I am using @tkaiser's script to monitor Temp. The build time is shorter than on Pine64+ (but the kernel is perhaps slimmer) and you can enjoy browsing while watching the build process! I have managed to build u-boot and kernel with gcc 5.4.
mihai.aldea Posted September 11, 2016 Posted September 11, 2016 Countrefeit cars are definitely not the issue here. I purchased them for one of the largest local electronics retailer. Moreover, every other board that I have, 3 types of RPi's, OrangePi Lite, OrangePi PC and NanoPi NEO is perfectly happy with them. I am still not sure if this is a hardware or software issue. However since using a different card manufacturer (Hama instead of Kingston) solved it, I'm inclining to say that this is hardware related.
@lex Posted September 11, 2016 Posted September 11, 2016 Just occurred to me a crazy theory, they provide a 4GB image that changes the layout of the sd card, there may be some sd cards prone to have problems with the layout, or it is just the PSU causing all sort of problems. Here is my ingenious heat-sink: 1
mihai.aldea Posted September 13, 2016 Posted September 13, 2016 Is this the standard FA heatsink with the fan removed and replaced with two small heatsinks? Or did you find a similar heatsink elsewehere?
tkaiser Posted September 13, 2016 Posted September 13, 2016 without FAN the temps are around 85C. The problem is that these 85°C are the fixed throttling treshold in M3's kernel right now and that the throttling strategy is rather inefficient. Please compare with http://forum.armbian.com/index.php/topic/1285-nanopi-m3-cheap-8-core-35/?p=14697 The CPU cores run at 1.4GHz until 85°C are reached and then not a slight decrease happens but cpufreq starts to oscillate between rather low clockspeeds and 1.4 GHz (I observed clockspeeds below 800 MHz). So when I did my tests with synthetic benchmarks limiting max cpufreq to 1.3 GHz showed better results compared to 1.4 GHz (when throttling jumped in) which is a clear indiciation that throttling settings needs some love/attention (and this is something that has to happen once we would support NanoPi M3 with Armbian -- but to be honest at least I've no time to dig deep into M3's kernel sources to do so). BTW: good idea of 'enhancing' FA's heatsink by adding two additional adhesive heatsinks (they look like 'my' former standard H3 heatsinks). I made the experience that then adding a large (and silent) fan blowing air from thelateral side shows even better results than with the small annoying fan on top
@lex Posted September 13, 2016 Posted September 13, 2016 (edited) @mihai.aldea iddle temperature is 46C (Ambient temp 17C) = 400 Mhz ** This is obviously wrong information, the Temp. were taken within 5 min. from a power on, please, take the correct Temp. as 55º C running idle for 3 hours. @tkaiser Yes, the adhesive heatsink is that one. And yes, it happened exactly as you described, the build started with 8 cores 100% CPU and 1400 Mhz and in the final stage the 8 cores were running 100% CPU and 400 Mhz. I have noticed the things are much more cool when using LCD instead of HDMI. I will have a look in the kernel and maybe with some guidance i can understand how the throttling settings works and try to improve something. I will do it this weekend if i can, i am about to receive BPI stuff and cameras to play. I will post my findings and ask the basic questions here or PM you. Edited September 16, 2016 by @lex
ejolson Posted September 16, 2016 Posted September 16, 2016 Now Linpack/OpenBlas with NEON optimizations: I followed these instructions: https://github.com/deater/performance_results/tree/master/build_instructions With a freshly built Linpack with NEON optimizations I thought I start with 800 MHz cpufreq: 7.476 GFLOPS, then using 900 MHz I got 8.227 GFLOPS and at 1000 MHz the M3 simply deadlocked -- most probably a sign that my PSU is too weak since at 900 MHz SoC temperature only reached 70°C so it was not a thermal issue (this Linpack version is known to power off SBCs with insufficient power supply 100 percent reliable). That means in case one uses a better PSU than mine, a more efficient heatsink+fan exceeding 12 GFLOPS should be possible but at the cost of insanely high consumption and huge efforts for cooling and power supply As a comparison: with quad-core H3 (Orange Pi PC) at 1296 MHz we get 1.73 GFLOPS and with quad-core A64 (Pine64+ overclocked/overvolted to 1296 MHz) we get 3.4 GFLOPS while a RPi 3 running at just 1.2 GHz achieves 3.6 GFLOPS. I can partially confirm your claim that 12 Gflops is possible with a more efficient heatsink+fan. In particular, I'm currently testing the M3's bigger brother the FriendlyArm NanoPi T3 which has the same 8-core SOC but a different heatsink. Following the same build_instructions, I obtained 12.49 Gflops with version 2.2 of the linpack benchmark linked against version 0.2.19 of the OpenBLAS library. My cooling arrangement looks like this. With the cover on the heat is trapped and the system throttles; however, upon removing the cover and due to the giraffe the system runs at full speed. The Raspberry Pi 3 does about 6.2 Gflops with a similar cooling system. 1
@lex Posted September 18, 2016 Posted September 18, 2016 While I was playing with NanoPi -M3 and following the tkaiser's advice to test Gbps I thought I could have some improvement by building the image with gcc 5.4 and I found that I could have the gcc 6.2 compilation tools in parallel without breaking anything . This is not new to kernel developers but it was to me because i keep using ubuntu 12.04 to compile for other platforms (have to use older gcc versions) and now using lubuntu 16.04. I compiled iperf3 with gcc 6.2 to see the results: ~/iperf3/src$ ./iperf3 -c 192.168.254.3 Connecting to host 192.168.254.3, port 5201 [ 4] local 192.168.254.87 port 58987 connected to 192.168.254.3 port 5201 [ ID] Interval Transfer Bandwidth Retr Cwnd [ 4] 0.00-1.00 sec 108 MBytes 901 Mbits/sec 0 819 KBytes [ 4] 1.00-2.00 sec 113 MBytes 949 Mbits/sec 0 1.72 MBytes [ 4] 2.00-3.00 sec 111 MBytes 937 Mbits/sec 0 1.72 MBytes [ 4] 3.00-4.00 sec 112 MBytes 940 Mbits/sec 0 1.72 MBytes [ 4] 4.00-5.00 sec 110 MBytes 927 Mbits/sec 0 1.72 MBytes [ 4] 5.00-6.00 sec 111 MBytes 929 Mbits/sec 0 1.72 MBytes [ 4] 6.00-7.00 sec 106 MBytes 895 Mbits/sec 0 1.72 MBytes [ 4] 7.00-8.01 sec 106 MBytes 887 Mbits/sec 0 1.72 MBytes [ 4] 8.01-9.00 sec 110 MBytes 924 Mbits/sec 0 1.72 MBytes [ 4] 9.00-10.01 sec 112 MBytes 942 Mbits/sec 0 1.72 MBytes - - - - - - - - - - - - - - - - - - - - - - - - - [ ID] Interval Transfer Bandwidth Retr [ 4] 0.00-10.01 sec 1.08 GBytes 923 Mbits/sec 0 sender [ 4] 0.00-10.01 sec 1.07 GBytes 921 Mbits/sec receiver iperf Done. The tips to use latest gcc-6 on Lubuntu Xenial 16.04 (armhf) I can have gcc linked to gcc-5 and arm-linux-gnueabihf-gcc linked to arm-linux-gnueabihf-gcc-6 just as this: gcc --version gcc (Ubuntu/Linaro 5.4.1-2ubuntu1~16.04) 5.4.1 20160904 Copyright (C) 2015 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. and arm-linux-gnueabihf-gcc --version arm-linux-gnueabihf-gcc (Ubuntu 6.2.0-3ubuntu11~16.04) 6.2.0 20160901 Copyright (C) 2016 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. We need to tell Ubuntu a higher precedence to gcc-6 if i want to use it. In my case i used 100 that is higher than gcc-5 as an example. Install gcc-6 on Xenial 16:04 in (armhf) but this possibly will work in arm64 and x86: sudo add-apt-repository ppa:ubuntu-toolchain-r/test sudo apt-get update sudo apt-get dist-upgrade sudo apt-get install gcc-6 g++-6 In my case, i want to use gcc-6 in all build using arm-linux-gnueabihf- and let gcc be linked to gcc-5: sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-cpp arm-linux-gnueabihf-cpp /usr/bin/arm-linux-gnueabihf-cpp-6 100 sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc arm-linux-gnueabihf-gcc /usr/bin/arm-linux-gnueabihf-gcc-6 100 sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-g++ arm-linux-gnueabihf-g++ /usr/bin/arm-linux-gnueabihf-g++-6 100 sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcov arm-linux-gnueabihf-gcov /usr/bin/arm-linux-gnueabihf-gcov-6 100 sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc-ar arm-linux-gnueabihf-gcc-ar /usr/bin/arm-linux-gnueabihf-gcc-ar-6 100 sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc-nm arm-linux-gnueabihf-gcc-nm /usr/bin/arm-linux-gnueabihf-gcc-nm-6 100 sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcov-tool arm-linux-gnueabihf-gcov-tool /usr/bin/arm-linux-gnueabihf-gcov-tool-6 100 sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-ranlib arm-linux-gnueabihf-ranlib /usr/bin/arm-linux-gnueabihf-ranlib-6 100 sudo update-alternatives --install /usr/bin/arm-linux-gnueabihf-gcc-ranlib arm-linux-gnueabihf-gcc-ranlib /usr/bin/arm-linux-gnueabihf-gcc-ranlib-6 100 This worked nicely and i could build the new image with arm-linux-gnueabihf- version 6.2 (test) 1
@lex Posted September 18, 2016 Posted September 18, 2016 soft ... A problem from FriendlyArm Forum: The question: "Hi Devs,Please test the M3 with the latest matrix from git. I am getting failures on initialising PMW & GPIO Regards" And the answer (FATechsupport) "Unfortunately the Matrix code may not work with M2 for now and we haven't tested the code yet. We only tested the code for M1/NEO and Pi2/Fire/M2/T2" Is not it great answer? Do you have some sample code to test (or to follow)? I don't have any Matrix device to test but i have some i2c lcd i could try. I see no reason not to work on M3, same kernel, same GPIO mapping of a M2... The kernel side of Matrix is built normally, maybe some KERNEL CONFIG? -- edited -- Oops: i have the GPS, but it is UART. I will try to compile the Matrix samples and check if GPIO can be at least initialized.
@lex Posted September 18, 2016 Posted September 18, 2016 I can't say for sure it works, but i have built the matrix samples and the GPIO are initialized: ubuntu@apps:ll /sys/class/gpio/export --w------- 1 root root 4096 Feb 11 2016 /sys/class/gpio/export ubuntu@apps:~/matrix/install/usr/bin$ sudo ./matrix-led LED blinking times 0 LED blinking times 1 LED blinking times 2 LED blinking times 3 LED blinking times 4 LED blinking times 5 LED blinking times 6 LED blinking times 7 LED blinking times 8 LED blinking times 9
eternalWalker Posted September 18, 2016 Author Posted September 18, 2016 @lex I think you're right , a month ago, added support M3 (common.c & common.h & ...) . Tomorrow I take out my M3 from the drawer and test . I have Ultrasonic Ranger Sensor and Relay.... Greetings eW
@lex Posted October 5, 2016 Posted October 5, 2016 If anyone interested I wired CR2032 on NanoPi M3 so i can have RTC backup and don't need to be connected to internet. The date and Time is saved in the rtc chip and restored with the correct time when you turn on. here is how to do: a) Use a cheap coincell battery holder like this: Wire like this: c) Careful not to invert the polarity, the silkscreen has a square rect on the (+) - red wire on the image above. refer to this: http://wiki.friendlyarm.com/wiki/index.php/File:NanoPi-M2-1602-if.png d) Atfter you update your current time / localization on your distro, you just type: sudo hwclock -w to save it. If you want to set the time/date in RTC chip manually: sudo hwclock --set --date "dd mmm yyyy HH:MM" or check the current date/time with: sudo hwclock 1
tkaiser Posted October 27, 2016 Posted October 27, 2016 Samsung's ARTIK 7 series seems to use the same SoC as NanoPi M3 at its core: https://www.artik.io/modules/artik-710/ They provide a Fedora image based on kernel 4.1 LTS so this is simply a call for testers to examine how/whether Samsung's new stuff can run on M3 too (won't look into that myself due to lack of time). They're talking about display and GPU stuff too this might be really interesting for M3.
kicker22004 Posted October 28, 2016 Posted October 28, 2016 Samsung's ARTIK 7 series seems to use the same SoC as NanoPi M3 at its core: https://www.artik.io/modules/artik-710/ They provide a Fedora image based on kernel 4.1 LTS so this is simply a call for testers to examine how/whether Samsung's new stuff can run on M3 too (won't look into that myself due to lack of time). They're talking about display and GPU stuff too this might be really interesting for M3. I got my M3 about a week ago and have spent some time trying to get a smooth working system going, I ran into a wall building Mali into the kernel and gave up but this seems more promising due to the newer kernel version. I couldn't find the Fedora image you where referring, do you have a link? Update: I found the link and looking over it. 1
@lex Posted October 28, 2016 Posted October 28, 2016 Update: I found the link and looking over it. I could not find it yet but found some interesting info: Next we will download the BSP source files from GitHub https://github.com/SamsungARTIKand extract them using: $ mkdir artik710 $ cd artik710 $ tar xf /opt/u-boot-artik7-0710GC0F-41F-01Q5.tar.gz $ tar xf /opt/linux-artik7-0710GC0F-41F-01Q5.tar.gz $ tar xf /opt/build-artik-0710GC0F-41F-01Q5.tar.gz $ tar xf /opt/boot-firmwares-artik710-0710GC0F-41F-01Q5.tar.gz . . . cd linux-artik7 $ make ARCH=arm64 artik710_raptor_defconfig $ make ARCH=arm64 menuconfig < - Edit your configurations - > $ make ARCH=arm64 savedefconfig $ mv defconfig arch/arm64/configs/artik710_raptor_defconfig So, there is arm64 linux somewhere.....
@lex Posted October 28, 2016 Posted October 28, 2016 Hummm.... maybe this: https://github.com/resin-os/linux-artik7.git
kicker22004 Posted October 30, 2016 Posted October 30, 2016 Hummm.... maybe this: https://github.com/resin-os/linux-artik7.git That is interesting, Here is the link for the images. It requires a signin to download. https://developer.artik.io/documentation/downloads.html#firmware
@lex Posted October 30, 2016 Posted October 30, 2016 That is interesting, Here is the link for the images. It requires a signin to download. https://developer.artik.io/documentation/downloads.html#firmware Did you test the image ? Samsung ARTIK 710 firmware image 10/25/2016 670 MB
kicker22004 Posted November 2, 2016 Posted November 2, 2016 Did you test the image ? Samsung ARTIK 710 firmware image 10/25/2016 670 MB I downloaded it and flashed it for kicks (figuring it wouldn't boot but hey FOR SCIENCE!) And yeah no boot just solid blue led. Side note, anyone get Kodi to load?
@lex Posted November 2, 2016 Posted November 2, 2016 I downloaded it and flashed it for kicks (figuring it wouldn't boot but hey FOR SCIENCE!) And yeah no boot just solid blue led. Side note, anyone get Kodi to load? Looks like it is trying to load kernel from eMMC. If you want to get your hands dirty you could look into how to change the env settings to boot from SD. Sorry, don't much about Kodi.
kicker22004 Posted November 2, 2016 Posted November 2, 2016 Interesting thought, I'm not too sure what i'm doing with this layout tho. This is what I get. $ sudo ./fw_printenv /dev/sddWarning: Bad CRC, using default environmentbootcmd=$bloader 0x48000000 $kernel;$bloader 0x49000000 root.img.gz;bootm 0x48000000bloader=ext4load mmc 2:1kernel=uImagebootdelay=0baudrate=115200ethaddr=00:e2:1c:ba:e8:60ipaddr=192.168.1.165serverip=192.168.1.164gatewayip=192.168.1.254netmask=255.255.255.0bootfile=uImage I changed the bloader to match that of my ubuntu image (bloader=ext4load mmc 0:1) with no success. Then added bootargs for kicks but also got nowhere. The bootargs I added here. bootargs=console=ttySAC0,115200n8 root=/dev/mmcblk0p3 rootfstype=ext4 rootwait init=/sbin/init systemd.show_status=false g_ether.host_addr=82:cf:ce:fa:68:18 initrd=0x49000000,0x400000 console=tty1 I don't have a way to connect to this board via serial so I think i'm done. The warning seems to suggest we need to run saveenv but I can't see anything
@lex Posted November 3, 2016 Posted November 3, 2016 Maybe changing env vars isn't enough, take a look deeply here: https://github.com/resin-os/build-artik/tree/master/prebuilt/artik710, you need specific blobs to boot from SD.
kicker22004 Posted November 3, 2016 Posted November 3, 2016 Hmm not really sure what to do with that. I'm no developer in this sense. More of a test dummy. You tell me what you want and i'll run it. I have 2 M3's sitting here doing nothing right now lol. From that it looks like I need to rebuild using sdboot.img i'm guessing.
@lex Posted November 3, 2016 Posted November 3, 2016 Give one last shot, try to write manually the blobs (SINGLE IMAGE and MULTIPLE IMAGE) and see if you get something: * Edited: PARAM_NAMES i am really not sure if would be raptor-sd-32.txt or the new environment,to make sure which one you would need to follow the scripts and check. It is all that comes to my mind. ** and also you will find two OFFSET for the Environment, maybe one if for the ARTIK710 and the other is for the other boards. export BOOTLOADER_SINGLEIMAGE=1 export LLOADER_BIN=$PREBUILT_DIR/$TARGET_BOARD/l-loader.bin export BL2_BIN=$PREBUILT_DIR/$TARGET_BOARD/bl2.bin export BL31_BIN=$PREBUILT_DIR/$TARGET_BOARD/bl31.bin export BL32_BIN=$PREBUILT_DIR/$TARGET_BOARD/tee.bin export NSIH_EMMC=$PREBUILT_DIR/$TARGET_BOARD/raptor-emmc-32.txt export NSIH_SD=$PREBUILT_DIR/$TARGET_BOARD/raptor-sd-32.txt export BL2_LOAD_ADDR=0x7fc00000 export BL2_JUMP_ADDR=0x7fe00000 export UBOOT_DEFCONFIG=artik710_raptor_config export BOOT_PART_TYPE=ext4 export BL1_OFFSET=1 export BL2_OFFSET=129 export ENV_OFFSET=6273 if [ "$BOOTLOADER_SINGLEIMAGE" == "1" ]; then cp $PREBUILT_DIR/$TARGET_BOARD/bl1-sdboot.bin $TARGET_DIR cp $PREBUILT_DIR/$TARGET_BOARD/bl1-emmcboot.bin $TARGET_DIR cp $PREBUILT_DIR/$TARGET_BOARD/partmap_emmc.txt $TARGET_DIR dd conv=notrunc if=$TARGET_DIR/bl1-sdboot.bin of=$IMG_NAME bs=512 seek=$BL1_OFFSET dd conv=notrunc if=$TARGET_DIR/singleimage-sdboot.bin of=$IMG_NAME bs=512 seek=$BL2_OFFSET dd conv=notrunc if=$TARGET_DIR/$PARAMS_NAME of=$IMG_NAME bs=512 seek=$ENV_OFFSET else cp $PREBUILT_DIR/$TARGET_BOARD/bl1.bin $TARGET_DIR/ if [ "$USE_BL2_BUILD" == "1" ]; then cp $TARGET_DIR/$UBOOT_SPL $TARGET_DIR/bl2.bin else cp $PREBUILT_DIR/$TARGET_BOARD/bl2.bin $TARGET_DIR/ fi cp $PREBUILT_DIR/$TARGET_BOARD/tzsw.bin $TARGET_DIR/ dd conv=notrunc if=$TARGET_DIR/bl1.bin of=$IMG_NAME bs=512 seek=$BL1_OFFSET dd conv=notrunc if=$TARGET_DIR/bl2.bin of=$IMG_NAME bs=512 seek=$BL2_OFFSET dd conv=notrunc if=$TARGET_DIR/u-boot.bin of=$IMG_NAME bs=512 seek=$UBOOT_OFFSET dd conv=notrunc if=$TARGET_DIR/tzsw.bin of=$IMG_NAME bs=512 seek=$TZSW_OFFSET dd conv=notrunc if=$TARGET_DIR/$PARAMS_NAME of=$IMG_NAME bs=512 seek=$ENV_OFFSET fi
Recommended Posts