Home > Allwinner H-Series, Hardware, Linux > Received Your Orange Pi One Board? You’ll Need to Tweak Your FEX File / script.bin

Received Your Orange Pi One Board? You’ll Need to Tweak Your FEX File / script.bin

February 13th, 2016 Leave a comment Go to comments

[Update: I’ve been informed that for some unknown reasons the voltage regulator outputs 1.3 and 1.5V instead of 1.1 and 1.3V on Orange Pi One with the settings and FEX file below, which could lead to overheating, and possibly damage the board under heavy load. A workaround is available here]

[Update2: And the temperatures reported by the kernel are wrong (too low), so it’s better not to use the higher voltage at all. More details and tests @ http://forum.armbian.com/index.php/topic/617-wip-support-for-the-upcoming-orange-pi-one/page-4#entry5261]

Orange Pi One is arguably the cheapest ARM Linux development board with networking available today for $9.99 plus shipping. It is very similar to Orange Pi PC with an Allwinner H3 quad core Cortex A7 processor, Ethernet, and HDMI, but has less memory as it comes with 512MB RAM instead of 1GB, and comes with a few less features too. The bad news is that Shenzhen Xunlong did not release any new firmware for Orange Pi One so far, but the good news is that Orange Pi PC firmware files work on Orange Pi One board.

Click to Enlarge

Orange Pi One (Click to Enlarge)

However, there’s an important hardware modification between Orange Pi PC and Orange Pi One, as SY8106A voltage regulator used in the former is controlled via I2C, while the former as a simpler SY8113B adjustable through GPIO, so thermal throttling wont work by default, and you’ll get plenty of error messages in the log that look like:


So Thomas, a developer and member of sunxi-linux community, looked into it and found that all you needed to do what to modify cooler_table and dvfs_table sections in the FEX file used to configure the hardware based on Allwinner processors:


So the new and lower cost PMIC only supports 1.1 and 1.3V which will let the processor run up to 648 MHz and 1.2 GHz respectively. The chart below shows the number of active CPUs, CPU voltage and CPU frequency (right scale), CPU usage in percent and SoC temperature (left scale) over about 20 minutes. In the first part the system is made to switch between , and after sysbench and cpuburn-a7 utility running, and showing how the system decreases the frequency, then voltage, then number of cores used as the temperature gets to close to 90 C.

Orange_Pi_One_CPU_Frequency_Voltage_Chart

If you just want something that works, you’ll just need to replace script.bin in the FAT partition of the SD card after you flash the firmware. I don’t own have the board to test, but I created Orange Pi One FEX file from the Orange Pi PC one, with modification from Thomas (See comments below) and generated the corresponding script.bin, which you need to rename and copy to your bootable SD card.  This will most probably soon be included in the latest community firmware releases. You can experiment with FEX files (text) and script.bin (resulting binary) using sunxi-tools in Linux.

  1. tkaiser
    February 13th, 2016 at 17:49 | #1

    Four things to mention: The SY8113B is not a real PMIC but just a simple voltage regulator that will be adjusted via resistors which will be driven through GPIO from the H3’s internal AR100 OpenRISC core (that acts as an internal PMIC replacement in some way).

    You should better regenerate script.bin based on this fex file (contains some fixes regarding unnecessary high load due to misconfigured USB port for example): https://github.com/ThomasKaiser/lib/blob/master/config/orangepione.fex

    For reasons unknown to me the new script.bin shows not that good results when used together with loboris/Xunlong OS images (maybe since they rely on Allwinner’s u-boot from 2011 where these fixes also have to be applied). When combined with mainline u-boot (as the preliminary Armbian builds for H3 do) the temperatures are way lower.

    Currently the Armbian team is working on full support for the various H3 models and it’s always a good idea to monitor the respective thread in our developer section: http://forum.armbian.com/index.php/topic/617-wip-support-for-the-upcoming-orange-pi-one/?view=getlastpost

  2. yovio
    February 13th, 2016 at 18:32 | #2

    tkaiser :
    For reasons unknown to me the new script.bin shows not that good results when used together with loboris/Xunlong OS images (maybe since they rely on Allwinner’s u-boot from 2011 where these fixes also have to be applied). When combined with mainline u-boot (as the preliminary Armbian builds for H3 do) the temperatures are way lower.

    Its due too CPU governor setting set to Interactive in loboris images.

  3. tkaiser
    February 13th, 2016 at 19:17 | #3

    @yovio
    Hmm… I’ve also configured ‘interactive’ in Armbian and I get:

    I still have no clue where the differences originate from (maybe different code/calibration and in reality temperatures are identical — I don’t have a thermometer to check so I solely rely on the internal read-out that’s also used for ‘budget cooling’)

  4. February 13th, 2016 at 22:37 | #4

    Just inserted the card ( from a Orange Pi-PC ) and the Orange Pi One booted up and the details are here ,http://goo.gl/KyF85h .
    The ‘cpu speed’ of over 4GHz cannot be right!. Checked with rpimonitor (http://elinux.org/RPi-Monitor ) and it gave the value of 1200 MHz for the cpu speed.
    So far, I am happy with this board.

  5. Nz1
    February 14th, 2016 at 07:58 | #5

    With the old linux kernel there used to be a lot of swapping going on, and that was with 1gig of ram.
    Does anyone know if this has been fixed with the new mainline kernel, especially with boards with 1/2 gig of ram?
    Is it possible to access this board through a serial/usb cable somehow? or do people just use ssh?
    Thanks for all the good work by the Armbian team.

  6. February 14th, 2016 at 08:33 | #6

    This is why one shouldn’t cheap out. Spend the extra $25-$27 and buy a RPi2 or Odroid-C1. Believe me that extra money is more than worth it as it saves you all of these headaches.

  7. Nz1
    February 14th, 2016 at 10:12 | #7

    I actually think 1/2 gig of ram should be ample.
    I remember writing code on a Palm Tunsten E with 32mbytes of ram. I used Superwaba, a java interpreter that runs on Palms, and I never ran out of ram on a large application that I wrote for it.
    If 1/2gig of ram is not enough ram then I wonder whether something has gone wrong in the Linux world. I think Android is a bit of a mess. Some of those inexpensive smart watches could easily run apps if only the Android OS wasn’t so bloated. To run Android on a watch it needs gigs of ram, or so it seems.

  8. February 14th, 2016 at 10:26 | #8

    @tkaiser
    I’ve done so. Thanks. Any reason why boot frequency is set to 1008, and not 1200? Stability reasons?

  9. Iridiumsat
    February 14th, 2016 at 13:55 | #9

    I agree with invest a bit and go for Raspberry Pi. No one can beat it at all.

    No more pain for development because Raspberry Pi has a very large community to support and go beyond any competitors can catch up.

  10. jernej
    February 14th, 2016 at 17:49 | #10

    @Nz1
    My research showed that kswapd issue was due to enabled CMA. If you lower the amount of memory allocated to CMA, the issue (almost) goes away. You can actually disable CMA and you won’t have the issue. However, in that case, Linux won’t be able to use this memory for anything other than framebuffer and video decoding.

    You must know that, at the time, CMA wasn’t part of the kernel. Allocating big chunks of memory to CMA was later recognized as a problem and there are some suggestions how to fix that (https://lkml.org/lkml/2014/5/7/810), but I’m not sure if they did anything about that in the mainline kernel.

  11. February 14th, 2016 at 18:16 | #11

    @Iridiumsat
    Sorry to say but you’re reading the wrong site if you wanted no “pain for development”.. maybe you haven’t noticed but this site is about presenting new platforms and pushing the status quo.

    Raspberry Pi isn’t that good anyway and has plenty of problems. Also in value terms this H3 board is kicking its butt.

  12. Mark Birss
    February 14th, 2016 at 20:08 | #12

    Im running Orange Pi images on a Beelink X2 with modified uboot and get the same error messages

    http://nanospic.com/?p=618

    would need to figure out howto fix this on this device also

  13. February 14th, 2016 at 20:21 | #13

    @Mark Birss
    Are you using script.bin for Beelink X2? It should fix it.

  14. tkaiser
    February 14th, 2016 at 21:44 | #14

    @cnxsoft
    “boot_clock” isn’t used by the kernel but Allwinner’s u-boot (Armbian relies on mainline u-boot and you would’ve to compile/replace u-boot/SPL for changes to take effect). But it defaults to 1008 so we left it at this value and generally refrain from ‘overclocking’.

    Regarding the kswapd issue: We don’t experience this using a different kernel branch than the usual kernel used on H3 boards: https://github.com/O-Computers/linux-sunxi/commits/h3-wip

    In the meantime we applied tons of fixes to the kernel (3.4.39 –> 3.4.110) so now all the patches for the older Allwinner SoCs are useable with H3 too. Within the next few minutes I’ll also add support for the Orange Pi Lite.

  15. Mark Birss
    February 15th, 2016 at 01:18 | #15

    @cnxsoft

    Ah my bad !

    I was using the wrong script.bin, it all good now thanks

    i copied sys_config.bin to script.bin from http://nanospic.com/dld/beelink/uboot_beelink_x2.zip to get the correct script.bin
    http://nanospic.com/?p=618

  16. OsoloPL
    February 15th, 2016 at 04:14 | #16

    H8 in new cubietruck plus have problems with temperature too… Look here: http://www.jarzebski.pl/blog/2016/02/14/testujemy-cubieboard-5-aka-cubietruck-plus.html

  17. February 15th, 2016 at 05:10 | #17

    Just installed the latest Armbian from http://mirror.igorpecovnik.com on the Orange Pi One

    This is a sweet sweet board, super fast and the Ethernet is awesome – unbelievable value at $10.

  18. February 19th, 2016 at 09:13 | #18

    Added important update at the top of the post, as something wrong with the voltage (too high), and better stick to using the lower voltage settings only.

    The latest Armbian images should fix this.

  19. Mark Birss
    February 20th, 2016 at 00:51 | #19

    Mine has no HDMI output ?

  20. tkaiser
    February 20th, 2016 at 01:43 | #20

    @Mark Birss
    This is fixed in the meantime. Please visit the Armbian forum (see link in first comment) to get a clue how to fix this yourself (just a modification of boot.cmd), how to upgrade the image to a newer version (experienced people only) or check when to expect updates. We prepare 5.02 releases at this time already. Please don’t expect too much at the moment. For headless use the image is already fine but desktop stuff will take some time…

  21. tkaiser
    February 21st, 2016 at 23:26 | #21

    Small review on Orange Pi One trying to explain the most important differences to the OPi PC and especially the various issues with the new voltage regulator and how to fix them: http://forum.armbian.com/index.php/topic/724-quick-review-of-orange-pi-one/

    Also Armbian preliminary images for H3 boards have been updated to 5.03

  22. July 19th, 2016 at 09:56 | #22

    Sorry, only very slightly off-topic…

    The “ASIC ERROR” and “ASIC WARING” messages filling up the SD card is also a problem for the latest Armbian Ubuntu (Xenial – Armbian_5.14_Nanopim1_Ubuntu_xenial_3.4.112.7z) release for the NanoPi-M1 (first cousin to the OP).

    The quick fix I used was to modify the /etc/default/cpufrequtils file and change MIN_SPEED from 240000 to 480000, then reboot. The messages go away and there’s a CPU temperature drop of 10~20C as the throttling starts working again.

  23. tkaiser
    July 19th, 2016 at 12:52 | #23

    @PuceBaboon
    Thanks for bringing this to our attention (I added NanoPi M1 support to Armbian without physical access to such a board). In case you’re familiar with bin2fex/fex2bin you could adjust lines 733 and 743 in the fex file and try to replace all 480 MHz entries with 240 MHz again (NanoPi M1 is somewhat prone to overheating).

    But since FriendlyARM contacted me recently and is preparing to send out a few dev samples of NanoPi NEO I’ll have a look into next week, we will then provide an update for M1 too and then the problem will disappear by simply doing the usual ‘apt-get update/upgrade’.

  24. July 19th, 2016 at 18:40 | #24

    @tkaiser
    Excellent news (the NEO and the update)! I’m not stressing the M1 at all, so I’ll wait for your update to appear.
    Many thanks!!

  25. October 13th, 2016 at 23:17 | #25

    hi tkraiser,

    thanks for insulting me on cnx software’s website…. tho i am still looking for an answer.

    i know you’re a very knowledgeable tech. since knowledge is power, mind to enlighten me with details on how to turn off verbose on the orange pi.

    thanks.

    i have deeply searched the web for an answer, no luck.

    i have found ‘similar’ info for other PIs on other os, but no matter what i type on search engines, NOTHING comes up on the topic BUT QUESTIONS. if you have the answer, please kindly post it, so i can in return help others.

    thank you for your time tkraiser.

  26. October 13th, 2016 at 23:50 | #26

    @jp theroux

    Perhaps you are asking wrong questions at wrong place? You are asking a questions which are related to closed source boot loader which is not supported by community. You need to ask Allwinner Corporation – wish you luck.

    There is no grub.

  27. Moze
    January 15th, 2017 at 09:06 | #27

    Thank you very much for your work man! Confirmed, just replacing the script.bin file worked flawlessly on the OPi One!

  28. January 15th, 2017 at 09:59 | #28

    @Moze
    That’s odd that you still had to do this after one year. The change should have already been implemented in the firmware. Where did you download the firmware image?

  29. Moze
    January 16th, 2017 at 02:36 | #29

    from here: http://www.orangepi.org/orangepibbsen/forum.php?mod=viewthread&tid=342 tested it for khali 2.0 (it wouldnt boot as it couldnt set the cpu freq to 1536MHz) now testing for debian jessie mini

  30. January 16th, 2017 at 09:29 | #30

    @Moze
    The page won’t load here (I always have troubles with orangepi forums), but I guess there must be a bunch of older images.
    In case you don’t know already, most people appear to use armbian images now @ https://www.armbian.com/orange-pi-one/

  1. No trackbacks yet.