Jump to content

lanefu

Members
  • Posts

    1331
  • Joined

  • Last visited

Reputation Activity

  1. Like
    lanefu got a reaction from neomanic in [testing] running Armbian tools with Docker style VM   
    I fought the good fight over the weekend trying to get Armbian builder to build full images while running in a docker container.    I've had some success, and managed to build a armban 5.11 image for my Orange Pi One.. I'm running on it with wifi etc.
     
    I'm using a CentOS7 Docker 1.9.1 host and using Ubuntu 14.04 Trusty Docker Container for the Armbian builder container. (I just used the Dockerfile from the armbian git repo)
     
    Bottom line loopback management inside containers is a bad time.. especially when losetup implementations vary between host and container.   The partprobe step in the container doesn't seem to trigger appropriate feedback to udev to create partitiion devices on the /dev loop back devices.   I got around it by creating them ahead of time.
     
    Here's a few tricks to limp through.  I'll try to add more clarity later.
     
    1.  Don't. just go build a ubuntu 14.04 VM or use a turn key one on amazon and get your life back.
     
     
    From Docker Host
    #you need modules modprobe binfmt_misc modprobe loop #scrub loopbacks for good luck rm -rf /dev/loop[0-9]*     Launch armbian builder container with --privileged=true #sudo docker run --privileged=true --name=armbian -it armbianbuilder #or if you're re-using container #sudo docker start -i armbian From container   #start apt-cacher-ng service apt-cacher-ng start ​ #scrub loopbacks again in container for good luck rm -rf /dev/loop[0-9]* #create all your loop back devices mknod /dev/loop0 b 7 0 mknod /dev/loop0p1 b 259 0 mknod /dev/loop0p2 b 259 1 mknod /dev/loop0p3 b 259 2 mknod /dev/loop0p4 b 259 3 mknod /dev/loop1 b 7 1 mknod /dev/loop1p1 b 259 0 mknod /dev/loop1p2 b 259 1 mknod /dev/loop1p3 b 259 2 mknod /dev/loop1p4 b 259 3 mknod /dev/loop2 b 7 2 mknod /dev/loop2p1 b 259 0 mknod /dev/loop2p2 b 259 1 mknod /dev/loop2p3 b 259 2 mknod /dev/loop2p4 b 259 3 #build your dreams cd ~ ./compile.sh Every time you build an image you should destroy the loopbacks and recreate.  It's your best chances of getting the partitions in the loopback image to behave for mounting.
     
     
         
  2. Like
    lanefu reacted to tkaiser in [Documentation] software proposal for Armbian wiki   
    Just look at the screenshot, look how the URL is constructed. That's what mkdocs does for you after 2 minutes of 'tweaking'. Taking the structure that is present in the ckecked out .md documents and creating nice formatted HTML from it. URLs are called like documents, anchor names depend on internal structure. Everytime a clueless guy starts to edit wiki contents believing only wiki output would count everything breaks. It's that easy.
     
    Defining 'internal' structure inside _Sidebar.md worsens everything even more since now you have to parse this file to modify MD documents prior to feeding it to mkdocs. IMO bad.
     
    So by giving up on the 'presentation engine' in our github wiki and simply using a home page that states 'Do just edit the pages accessible on the right, don't change page titles, don't change section names, only add stuff and edit structure very carefully' you might get the wiki approach to work IF we want to postprocess the stuff therein (no idea if WE want that still)
     
    By adjusting structure levels inside the individual .md docs and minimizing their count the postprocessing efforts are MINIMAL. Just choose the right mkdocs theme, disable search therein and feed the output to htmldoc. And you get a full PDF manual with links, index and so on. And using a different theme you can use HTML output from mkdocs on armbian.com (given that nobody uses the github wiki like a wiki and starts there editing like crazy -- that's the whole point. As soon as people start to use the wiki in the usual wiki way all our persistent links get fucked up automatically)
     
    But since only @lanefu looked that much into (and might be able to understand me) I finally stop here since the whole discussion gets boring.
  3. Like
    lanefu reacted to Igor in Claim a task, set DUE date and start doing it!   
    @lanefu
     
    Yes, something like this. Just push it to wiki and add to menu, let's say "Report a problem" in section "General".
  4. Like
    lanefu reacted to tkaiser in [Documentation] software proposal for Armbian wiki   
    So you're talking about the order of horribly outdated information instead of the information itself (I thought we're talking about improving documentation? That means that every of these sentences has to be either deleted or reworked since this is outdated stuff back from the day Igor supported 5 boards and now we're dealing with +40)
     
    Then what do you suggest? Anyone should change something that comes to your mind right now? Don't we have a wiki now? Shouldn't we talk about the processes how to alter the wiki's contents (who is allowed to do what? How can we integrate people not allowed to edit directly to contribute?) instead of polluting this thread with random nonsense like "someone should add '&& sync' somewhere"?
     
    I stop here.
  5. Like
    lanefu got a reaction from wildcat_paris in [Documentation] software proposal for Armbian wiki   
    Okay, cool!  I did some tinkering.  It looks like using the GitHub wiki for the Single Point of Truth for the docs would work really well.
     
    here's my findings:
     
    you can SSH clone with your keys by inserting wiki in the main repo clone url (wiki gui only gives you https clone option) The raw wiki markdown files are named the same as the title, with no extra prefixes or suffixes The default wiki sidebar displays pages in a sorted fashion.  This allows us to rely on a naming convention to keep things grouped and allow for inserts direct access to the repo lets you add non-wiki files... ex: mkdocs.yml can reside within the wiki repo, along with style sheets etc
  6. Like
    lanefu reacted to Da Alchemist in I2S on Orange Pi H3   
    tkaiser has built a new Kernel with i2s Modules. With this Kernel and some cheap DAC  e.g. (http://www.ebay.de/itm/Audiophonics-I2S-DAC-ES9023-Sabre-to-Analog-24bit-192KHZ-fur-Raspberry-PI-/291573327639?hash=item43e31fe717:g:TTwAAOSw~OdVZXtm)  it is possible to get good quality sound  out of the Orange Pis. After installing the Kernel
    Two Things have to be changed in the fex File:
     
    Change Directory to boot:
    cd /boot Turn the script.bin to a fex-File and open it in an Editor
    sudo bin2fex script.bin script.fex sudo nano script.fex Now change the following Entries:
    [twi1] twi_used = 1 to
    [twi1] twi_used = 0 and
    [pcm0] daudio_used = 0 to
    [pcm0] daudio_used = 1 Save your changes and do :
    sudo fex2bin script.fex script.bin After a reboot your done.
     
     
    I do not know for what the Section [twi1] is good for, i hope nothing serious..
    This connections have to be made:
     
    5V > Pin 2
    Gnd > Pin6
    BCK > Pin 27
    LRCK > Pin 28
    Data > Pin37
     
    (according to the Picture "giachi" has posted on the diyaudio Forum http://www.diyaudio.com/forums/pc-based/285427-i2s-connection-orange-dac.html#post4587580
    see below)
     
    The second Picture is only for orientation on an Orangepi PC, the red Wire is 5V ! Be aware that the Header is rotated by 180°on the One!
     
    That´s all .
     
    Regards


  7. Like
    lanefu reacted to Igor in [Documentation] software proposal for Armbian wiki   
    OK, let's use Github wiki as a base. I already done some rework. First part is more or less done, now going to script part and fine tuning on the top of it.
     
    https://github.com/igorpecovnik/lib/wiki
  8. Like
    lanefu got a reaction from tkaiser in [Documentation] software proposal for Armbian wiki   
    Okay, cool!  I did some tinkering.  It looks like using the GitHub wiki for the Single Point of Truth for the docs would work really well.
     
    here's my findings:
     
    you can SSH clone with your keys by inserting wiki in the main repo clone url (wiki gui only gives you https clone option) The raw wiki markdown files are named the same as the title, with no extra prefixes or suffixes The default wiki sidebar displays pages in a sorted fashion.  This allows us to rely on a naming convention to keep things grouped and allow for inserts direct access to the repo lets you add non-wiki files... ex: mkdocs.yml can reside within the wiki repo, along with style sheets etc
  9. Like
    lanefu reacted to tkaiser in [Documentation] software proposal for Armbian wiki   
    The one problem I had with a github wiki was how to access the raw contents? But as usual it's quite easy. Editing wiki pages creates revisions and raw .md can be obtained in an automated fashion:
     
    The latest revision of https://github.com/ThomasKaiser/lib/wiki/01-User-documentation for example is always accessible as: https://raw.github.com/wiki/ThomasKaiser/lib/01-User-documentation.md
     
    The whole wiki is just a git repo in itself so cloning it locally is also possible: https://github.com/ThomasKaiser/lib.wiki.git
  10. Like
    lanefu got a reaction from wildcat_paris in [Documentation] software proposal for Armbian wiki   
    okay.. I'll volunteer now...based on my understanding of this thread
     
    A quick recap and some strategic questions about the direction we're heading.
     
    Documentation will be provided in the following formats:
    HTML / HTML Site w/ clean url ex: http://armbian.com/documentation/userdocs PDF (style of user manual) MD (github convenience  -- automatically renders individual files) Following tools will be used:
    mkdocs htmldoc Behavioral Requirements
    Functional TOC in PDF Search (for html site?) Questions:
    Should we move documentation to a separate repo and update lib/documentation to be a git submodule? Where should the documentation output be stored (html/pdf)? Should documentation resources automatically be updated after every documentation commit?
  11. Like
    lanefu reacted to Igor in [Documentation] software proposal for Armbian wiki   
    Few my ideas.
     
     
    I think no need for this. I expect lot's of changes now, since we need to add few things and apply better structure to what's already done.
     
    Let's see what do we have now:
     
    "user faq" - This suppose to be "Getting Started: Everything you need to get Armbian up and running". It's close to that, except some things might be too advanced for novice user.
    "enabling HW features" - is little more than this, but not many things present at the moment. Here we could add (move from) most important things: connecting spi / i2c displays, sensors, ... The main question remain "how far" should we go with all this?
    "h3_mini_faq" - logbook and user faq only for H3. How to deal with per board stuff? Generally.
    "geek faq" - how to deal with tools. We need 2-3 script user review to be done and merged into this documentation (can be claimed for board). Our / coder POW is not the best to write such manual. Basically one must start from scratch, test all functions and write down experiences, written in manual/howto style.
    "fel-boot" - features within tools. The same. Someone from outside should review / rewrite the docs.
     
     
    Current situation: docs sources are .md and they are rendered to .html within blog and there we can set permanent links per documents. This part is not that bad after all. "Getting started" and "Basic" is the same page just in case someone does not understand it properly. Next doc is "Building" aka "geek manual" and a log book.
     
    One idea is, to merge all those sections into one .pdf file "Armbian handbook". First part basic stuff, than few howtos and building howtos, walk trough and perhaps logbook at the end.
     
    Not necessarily but we can do that quickly in the future if needed. 
     
    One more exposed link on the download page would help, agree. Elsewhere is not critical since the page offers pretty strait links: download, docs, sources and forum. I think main problem is that we don't have proper docs internal organization, few things are doubled, build script needs much more explanation, examples, ... where to put log of changes? We even have separate, more detailed for H3. 
  12. Like
    lanefu reacted to martinayotte in RTL8189FS patches for Mainline   
    I've been working on the rtl8189fs patches for Mainline.
     
    Althouth the source code change between Legacy and Mainline is pretty trivial, preparing good and nice patches becomes a tedious task :
     
    - First, the original patch in Legacy contains tons of DOS file formatted (strange for a Linux driver, shame on Realtek) and even dos2unix failed on some files because of binaries character (probably Chinese), I had to edit many files because I wouldn't "signed-off" such ugly thing. (btw, maybe that dos2unix job should be done one Legacy to make it cleaner)
     
    - It is a quick big patch, but about the same size as the one in Legacy, about 10MB of text file.
     
    - Even after applying the patch, we still need to have some other patches, one for DefConfig in Igor's lib/config and one for DTS which I will work on tomorrow ...
     
    - Then, lots of testing need to be done, especially that I need to figured out that everything is working in the fresh build environment, then a PR will be sent to Igor.
  13. Like
    lanefu reacted to miked in [Documentation] software proposal for Armbian wiki   
    I did a bit of experimentation and have the following suggestions:
     
    1. On http://www.armbian.com/change "Getting Started" to "Documentation". Currently all documentation is under "getting started" which isn't an intuitive place to look for advanced stuff.
    However since you want a clear "where to start" sign that stands out to new visitors, we could have a prominent "Getting Started: Everything you need to get Armbian up and running" icon/link/banner stickied near the top of the Home page (and maybe Downloads page if people are directly linked there from external sites). It should take you to a documentation page that starts with an outline (with links) of the main steps a complete novice would take.
     
    2. If the html docs are going to be mainly mkdocs output with some post-processing, I would try to put the output underneath the Armbian nav bar, using a theme that has the Documentation navigation on a left sidebar to avoid crowding the top. Theme readthedocs does this. It should be possible to use html <embed> to shove the mkdocs webpage into the Armbian web page. Unless someone really wants to tweak the theme and process the output to look perfect, maybe as little as changing the theme's colors will be enough to make it look good.
     
    Edit: That is, either you could let mkdocs use the whole browser window, which is not ideal because it looks like the documentation is a different site. Or leave mkdocs output as a full webpage and embed it, which I think would be easiest to try. Or process the output a lot so that you combine the Armbian page and the mkdocs output into one generated page, which should be more work but give you more control.
  14. Like
    lanefu reacted to qweryt in Orange PI One OTG HID   
    Hi,
     
    I'm trying to make my opi one act as a keyboard. I've found that I need to activate g_hid module, but when I trying to execute:
    modprobe g_hid it says:
    modprobe: FATAL: Module g_hid not found. Also, g_ether, g_mass_storage, g_multi, g_ptinter and g_serial modules are available.
    So, what should I do and maybe anyone can provide me an example how to send a keystroke to my pc?
     
    Thanks.
  15. Like
    lanefu got a reaction from wildcat_paris in [Documentation] software proposal for Armbian wiki   
    Still grokking big picture -- interest piqued.   
  16. Like
    lanefu reacted to tkaiser in [Documentation] software proposal for Armbian wiki   
    Well, I just looked into MkDocs a little more (10 minutes). It seems all that's needed is an additional index.md that defines the final structure, eg.
    Site_name: Armbian ${temprevision} pages: - User FAQ: main-01-user-faq.md - Enabling Hardware Features: main-02-Enabling_hardware_features.md - H3 Mini FAQ: main-03-H3_mini_faq.md - Geek FAQ: main-04-geek-faq.md - FEL Boot guide: main-05-fel-boot.md - Version history: main-06-logbook.md (so no need for numerical prefixes since order can be defined here). I used also the wrong mode before (webserver on 127.0.0.1) but mkdocs can also produce a set of temporary static HTML files (which can then be adjusted easily, eg. making the youtube links work). If the search stuff will be deactivated and headers/footers in MkDocs then the raw material to be fed into htmldoc is already perfect.
     
    With htmldoc you then get clickable TOC generation, headers/footers, page numbers and the like for free (this tool is from Mike Sweet, main author of CUPS, so generated PDF is also not that dodgy as that produced by most other tools). I think it's pretty easy for someone familiar with MkDocs to provide perfect HTML (integrated into github workflow so that documentation commits trigger a new PDF manual version), piping that into htmldoc is easy too. The only 'real task' would be adjusting header levels in our various docs so that a nice 'PDF book' gets created in the end.
     
    That being said I won't look into this any more also. Any volunteers?
     
    Edit: IMO the final goal if MkDocs will be used together with htmldoc would be two sets of documentation. MkDocs should produce a set of static HTML files (generation triggered through github commits) and these should also be rendered to a nice looking PDF 'manual'. IMO we still suck when it's about documentation, especially the 'why do users do NOT look into available docs' part.
  17. Like
    lanefu reacted to Igor in [Documentation] software proposal for Armbian wiki   
    I found and apply "markdown-pdf" tool. Lightweight and looks good enough out of the box I would say.
    Preview result in attachment - without any corrections or order.
    Armbian_5.14_documentations.pdf
  18. Like
    lanefu got a reaction from tkaiser in [Documentation] software proposal for Armbian wiki   
    I'm a big fan of markdown-based solutions.
     
    I moved my team from a wiki to markdown + mkdocs and have great success.
     
    here's a few bullet points (i recognize some of these may be redundant to other posts in the forum)
     
    * typically content renders nicely out of the box with modern version control front ends such as github, bitbucket, gitlab
    * markdown's popularity lowers barrier to entry across masses
    * text file nature easy for *nix users and developers to quickly update docs while coding from their favorite editor or IDE
    * file ÷ git commit process makes writing the doc feel more deliberate / focused because process is the same as commiting code. ive experienced documentation quality go up because of it
    * output in multiple formats via post processing.
     
     
    as an example my doc repo has a git hook that executes mkdocs on post commit. my internal documentation is automatically updated with searchable documentation.
  19. Like
    lanefu reacted to tkaiser in Finishing vanilla kernel support for H3?   
    Hi all,
     
    since we're currently collecting tasks to be done by community to get a nice board (OPi Plus 2E) in return I thought I sum up where we currently are regarding working H3 OS images with mainline kernel:
     
    Our main showstoppers for releasing H3 images with mainline kernel are still: missing/non-working THS stuff (see explanation here), native Ethernet driver not finished and a few minor bits.
     
    My last attempt to check situation has been a few days ago. Since megi rebased his THS stuff (also containing the various USB and Ethernet patches) I chose his 4.6 branch to give it a try (see commit 224550b). Unfortunately I ran into kernel panics when testing on my OPi PC Plus and so I gave up again.
     
    But since we got another report (see below, issue #360) trying out the stuff on both OPi One and PC and reporting different/interesting results in the meantime I believe this THS stuff should be solveable quite easily and it's just one missing bit here or there. So this would be a great opportunity for someone claiming a task to finish:
     
    Get kernel 4.6 (or even better 4.7-rc) up and running including the following:
    Ethernet (required) USB, leds, serial and so on (required and works already since this is just .dts stuff) THS (required -- please also see issue #360)) WiFi (nice to have but then please both 8189ETV/8189FTV -- both patches for our legacy kernel are backported from mainline versions so it should be rather simple) HDMI (nice to have) SPI, I2C (nice to have, IIRC @martinayotte has everything up and running with 4.x already?) Anyone?   Edit: THS update: http://irclog.whitequark.org/linux-sunxi/2016-06-13#16729515;
  20. Like
    lanefu reacted to mariuszb in 3.95 inch display test   
    I plugged in and tested the 3.95 inch display with Orange Pi PC and Armbian Jessy. It can be used for own use, this is only a test program   
    http://pl.aliexpress.com/item/Free-shipping-LCD-module-Pi-TFT-3-6-inch-for-raspberry-pi-display-screen/32236159766.html
     
    https://github.com/flexiti/WiringOP

     
    Just compile and run displayTFT.c  file (display shows also CPU temperature )
  21. Like
    lanefu got a reaction from xcasex in Claim a task, set DUE date and start doing it!   
    Okay since i'm pretty much doing the same thing with my team at work,  I'll take on establishing clearer process / procedures for issue tracking.   Since both the forum and github support a concept of tagging there's some opportunities there for integration.    
     
    We want to make issue/task creation is easy, but deliberate enough that we don't end up with having to filter a bunch of noise.
  22. Like
    lanefu got a reaction from vlad59 in Is it possible to tweak the build script to build one image on my H3 ?   
    I don't know what your financial constraints are, but launching a Ubuntu 14.04 AWS EC2 instance and running armbian builder on it is cake....and fast..    AKA $1 of cloud computing will save you a lot of time and effort.
  23. Like
    lanefu reacted to tkaiser in H3 board buyer's guide   
    TL;DR: All available H3 boards do not differ that much. But the few differences sometimes really matter!
     
    The following is an attempt to compare the different available H3 SBC that are supported by Armbian. The majority of boards is made by Xunlong but in the meantime two more vendors started cloning the Xunlong boards (and also Olimex is preparing H3 boards as OSHW). Both Foxconn/SinoVoip with their Banana Pi M2+ and FriendlyARM with their NanoPi M1 tried really hard to copy everything as exact as possible (the so called pin mappings -- how the many contacts the used H3 SoC is providing are routed to the outside).
      All the boards share the same 40 pin GPIO header (trying to be compatible to the newer RPi boards) and since all the other pin mappings are also 99 percent identical you can for example boot a NanoPi M1 with an Armbian image for Orange Pi PC without loosing any functionality (except of camera module) and the same applies to BPi M2+ that will boot happily an Armbian image for Orange Pi Plus 2E (except of camera module and WiFi/BT)   In fact all the various H3 boards just differ in a few details:  Amount of DRAM No, Fast or GBit Ethernet Voltage regulator and 'thermal design' (responsible for performance in full load situations) Storage capabilities (pseudo SATA and eMMC or not) Count of available USB ports (with or w/o internal USB hub) Some additional features like camera modules, WiFi/BT and additional/optional connectors (here it's important to check for driver functionality/availability. If there's no driver providing the necessary functionality then these 'additional features' are pretty much useless -- camera connector for example) Why focussing on the H3 SoC for this comparison? Since some of these boards are priced pretty competitive Mainlining support for H3 SoC and these boards is progressing really nicely so we'll be able to run these boards with mainline kernel pretty soon (thanks to the great linux-sunxi community) 2D/3D/video HW acceleration is available with legacy kernels (again thanks to the great linux-sunxi community) The feature set is nice for many use cases (quad core SoC, GBit Ethernet and 4 useable USB ports on some boards make a really nice low cost/power server) It got somewhat confusing regarding the many available Oranges and now also the cloned Banana and NanoPi This is also in preparation of a broader overview of the capabilities of all the boards Armbian currently supports now focussing on the H3 family. So let's get into details:   Amount of DRAM   That's an easy one. The H3 SoC supports up to 2 GB DRAM. The available and announced boards use either 512MB, 1 GB or 2 GB DRAM (low-power DDR3L on the bigger Oranges and DDR3 on OPi One/Lite, BPi M2+ and NanoPi M1). In case you're using Armbian it simply depends on the use case. And also it's necessary to understand that Linux tries to use all your RAM for a reason: Since unused RAM is bad RAM. So don't be surprised that Armbian will eat up all your RAM to cache stuff which improves performance of some tasks but the kernel will immediately release it when other tasks have a demand for it. If still in doubt please enjoy http://www.linuxatemyram.com.   If you want to use your boards with the unofficial H3 OpenELEC fork too please be aware that OpenELEC benefits from at least 1 GB RAM since then the whole filesystem remains in memory and no accesses to a probably slow SD card happen. Prior to jernej/OpenELEC and Armbian resolving the kswapd bug a few weeks ago the 512 MB equipped boards performed rather poor. But now it seems that the unofficial OpenELEC fork runs pretty well also on the boards with less available RAM.   Whether 1 vs. 2 GB RAM make a difference absolutely depends on the use case and no general recommendations can be made.   Since OpenELEC has been mentioned it should be noted that the current implementation of the unofficial OpenELEC port for H3 boards makes use of the cedarx-license-issues-library (no clear license preventing the use if you care about legal issues -- please have a look at http://linux-sunxi.org/Kodi for further details)   Networking:   The H3 SoC contains an Ethernet implementation that is capable of 10/100 MBits/sec Ethernet and also GBit Ethernet. A PHY (that handles the physical interconnection stuff) for Fast Ethernet is already integrated into the H3 SoC but to be able to use GBit Ethernet an external GbE capable PHY is needed (the RTL8211E used on all boards adds approx 1.2$ to the costs of the board in question).   Most H3 boards use the internal Fast Ethernet PHY so wired networking maxes out at ~95 Mbits/sec. Orange Pi Plus, Plus 2, Plus 2E and BPi M2+ provide GBit Ethernet (+600 Mbits/sec with legacy and exactly 462 Mbits/sec with mainline kernel) while Orange Pi Lite saves an Ethernet jack at all. The good news: Even with the Lite you can use wired network adding a cheap RealTek USB3-Ethernet dongle like this which is confirmed to exceed 300 Mbits/sec in a single direction.   The currently available boards have either no WiFi (NanoPi M1, OPi 2 Mini, One and PC), rely on RealTek 8189ETV (OPi 2, Plus, Plus 2), the newer RealTek 8189FTV (OPi Plus 2E, Lite, PC Plus) or a WiFi/BT combination: AP6181 is used on the BPi M2+ but the vendor didn't manage to get BT working at the time of this writing. Currently only jernej's OpenELEC fork and Armbian have a working driver included for the new 8189FTV chip on the fresh Orange boards that seems to perform quite ok and provides client/AP/monitor mode. Can't say that much about that since in my very personal opinion all these 2.4GHz onboard WiFi solutions are simply crap   Voltage regulator and 'thermal design':   This is a very important differentation: All Orange Pi boards use a programmable voltage regulator to adjust the voltage the SoC is fed with. The SY8106A used on every Orange except of One and Lite can be controlled though I2C and adjusts the so called VDD_CPUX voltage in 20mV steps. This is important since 'dynamic voltage frequency scaling' relies on the principle of providing less voltage to the SoC/CPU when it clocks lower. So when the board is idle also the supplied voltage will be reduced resulting in less consumption and also less temperature.   Since H3 is somewhat prone to overheating being able to adjust VDD_CPUX is also important when we're talking about the opposite of being idle. The SY8106A equipped Oranges reduce very fine grained the core voltage when they start to throttle down in case overheating occurs under constant heavy load. As a direct result they will automagically perform better since reducing VDD_CPUX voltage also reduces temperature/consumption so both CPU and GPU cores in H3 due not have to throttle down that much.   Quite the opposite with BPi M2+. For whatever reasons SinoVoip saved put a the same programmable voltage regulator on their board as OPi One, Lite and NanoPi have but does not implement voltage switching so H3 there will always be fed with 1.3V. In addition it seems 'Team BPi' didn't take care of heat dissipation through PCB design (it seems Xunlong added a copper layer to the PCB that helps dramatically spreading the SoC's heat) and so with BPi M2+ (and NanoPi M1 too) you have to be prepared that you need both a heatsink and a fan to let this board perform under full load since otherwise heavy throttling occurs or when you use a kernel that does not implement throttling (4.6/4.7 right now for example) be prepared that H3 gets either destroyed or will crash through overheating if you run something heavy on BPi M2+ or NanoPi M1. We're still investigating whether this crappy thermal behaviour might be related to DRAM also (DDR3 vs. low power DDR3L on the Oranges) It seems this thermal behaviour is not that much related to the DRAM type used but more to PCB design (maybe using large internal ground/vcc planes optimizing heat dissipation on Oranges.   NanoPi M1 and Orange Pi One/Lite use a rather primitive GPIO driven voltage regulator that is able to just switch between 1.1V and 1.3V VDD_CPUX which already helps somewhat with throttling.   A rather demanding benchmark using cpuminer (a bitcoin miner making heavy use of NEON optimizations and assembler instructions) that knows a benchmark mode where it outputs the khash/s rate. On the left OPI+ 2E with the superiour SY8106A voltage regulator switching CPU frequency between 1200 and 1296 MHz. On the right little OPi Lite with the SY8113B voltage generator able to switch between 1.1V and 1.3V and with slightly lower performance since throttling prevents clocking that high. And in the middle as only board with applied heatsink on H3 poor Banana Pi M2+ using the same SY8113B voltage regulator but always feeding the H3 SoC with 1.3V (for whatever reasons!).      Storage capabilities:   The H3 SoC doesn't feature native SATA capabilities so the 2 boards that have a SATA connector (Orange Pi Plus and Plus 2) implement that using an onboard USB-to-SATA bridge. Unfortunately the chip used there -- a Genesys Logic GL830 -- is horribly slow limiting sequential transfer speeds to 15 MB/s write and 30 MB/s read. It also does not support the USB Attached SCSI Protocol (UASP) so when using mainline kernel attached disks an especially SSDs couldn't show their full random I/O performance.   Given that common USB-to-SATA bridges used in external USB enclosures show way better sequential performance (35 MB/s in both directions and close to 40 MB/s when using an UASP capable bridge together with mainline kernel) the SATA port on these 2 SBC can not be considered a feature worth a buy.   Every H3 board has a TF card slot (Micro SD card) and some of the boards feature onboard eMMC storage. The H3 can cope with TF cards that are compliant to the SD, SDHC and SDXC standards so rather large cards with more than 64 GB capacity can also be used (be aware that there do not exist that much cards with a capacity larger than 128 GB. Chances are pretty high to get a counterfeit card especially when the price looks too good to be true ). You should also be aware that all H3 boards show the same sequential speed limitations (maxing out at ~23 MB/s) so choosing cards that are rated way faster aren't worth a buy. Better have a look at random I/O performance that is more important in most use cases.   The eMMC used on various boards is pretty fast (sequential speeds maxing out at ~75 MB/s and especially random IO way faster than the fastest tested SD cards which is important for desktop useage and databases for example) so you don't make a mistake choosing any of the eMMC equipped H3 boards (BPi M2+, Orange Pi Plus, Plus 2, Plus 2E or PC Plus). You find detailed test results of current SD/TF cards as well as all the eMMC variants used in these two threads: http://forum.armbian.com/index.php/topic/954-sd-card-performance/ http://forum.armbian.com/index.php/topic/990-testers-wanted-sd-card-performance/ Count of available USB ports:   The H3 SoC features 3 USB2.0 host ports and one USB OTG port. With Armbian we configure the OTG port as a host port that shows pretty similar performance so on some H3 boards (Orange Pi PC, PC Plus and Plus 2E) you can benefit from 4 USB2 ports that do not have to share bandwidth.   Some other boards use an internal USB hub (Orange Pi 2, Plus, Plus 2) so the available USB ports have to share bandwidth in reality. Please keep that in mind when you compare the 4 USB Type A jacks OPi 2, Plus or Plus 2 feature (all being connected to a USB hub so having to share the bandwidth of a single USB 2.0 host port) with the 3 you can count on OPi PC, Plus 2E or NanoPi M1. On the latter boards you get full USB 2.0 bandwidth on each USB receptacle without the need to share bandwidth.   BPi M2+ does also not use an internal USB hub but only exposes 2 USB host ports on type A receptacles and the 3rd host port only without ESC protection via soldering (but since this board shows such a terrible thermal design and is relatively overpriced compared to other H3 boards that doesn't matter that much)   Additional features:   The only board featuring a Bluetooth capable chip from BroadCom is the BPi M2+. Currently the vendor admits that BT is not working so better don't count on this feature to be ever available.   Update: Jernej got BT already working in his OpenELEC fork so it's just a matter of time until it works with Armbian too.   The H3 SoC is able to output/intercept additional signals, eg. analog audio, Composite video (TV out), IrDA that are present on most of the boards. On the Orange Pi One many of those interfaces are only present as solder points (a bit too tiny to be used by the average maker) and on some other boards they are not present at all (BPi M2+ for example has neither composite video nor analog audio) so always check first what you need or want to use.   We have a nice sortable table in linux-sunxi wiki showing most of the important details: http://linux-sunxi.org/Table_of_Allwinner_based_boards   Camera modules:   Xunlong provides a pretty cheap 2MP camera module that should work with every H3 Orange Pi out there (they all have the necessary connector but for OPi One, Lite, PC and PC Plus you have to tell Xunlong that you also need a so called 'expansion board' that they ship free of charge if you add to your order that you need it. Starting with Armbian release 5.15 we also include an improved driver for this camera.   Regarding current state of available camera modules for Oranges, BPi M2+ and NanoPi M1 please look through this thread: http://forum.armbian.com/index.php/topic/1213-ov5640-camera-with-orange-pi/?view=getlastpost
  24. Like
    lanefu reacted to tkaiser in H3 board buyer's guide   
    Since we're now dealing with a few more H3 devices and some vendors also provide OS images and users get confused a small note regarding kernel situation with H3 at the moment and also an update regarding performance relevant settings (by tweaking these intelligently H3 devices might run multiple times faster!).
      Mainline kernel:   The linux-sunxi guys are doing a great job writing all the stuff necessary from scratch and sending it upstream so that H3 and boards are more and more supported by the stock linux kernel available from kernel.org. For us at Armbian the missing Ethernet driver for H3 was the showstopper that prevented us releasing Armbian images with kernel 4.x so far.    In the meantime or since we had to realize how horribly some H3 boards might overheat (BPi M2+ is currently the worst example but it turned out that NanoPi M1 and Beelink X2 behave the same) missing THS support in mainline kernel is another important reason that prevents Armbian releases for H3 boards. We tried to run the boards downclocked to just 816 MHz just to realize recently that BPi M2+ with specific test workloads has to throttle down to 240 MHz (and needs to kill CPU cores so under worst case conditions we could drive the M2+ only with 2 cores at 240 MHz which is a really bad joke -- so we need throttling working with mainline kernel to release Armbian vanilla images to the public)   BSP kernel:   So while we're testing with mainine kernel stuff from time to time all we now have to release to endusers are some variants of Allwinner's Android kernel for H3 devices (called BSP kernel -- BSP is for 'board support package', that's an ugly tarball with an 3.4.39 kernel Allwinner throws at manufacturers who want to create H3 devices).   Allwinner's 1st BSP kernel variant:   Allwinner published 3.4.39 Android kernel sources last year here. All the official OS images for Orange Pis rely on this stuff (still version 3.4.39 and not even a fix for the rootmydevice security issue). This BSP variant also shows somewhat strange throttling settings (not throttling down while still running on all 4 CPU cores but killing CPU cores one after another without bringing them ever back without a reboot). So be prepared that you get horrible performance results with these settings (that explains the horribly low performance scores that are published on phoronix.com for various H3 based Orange Pi boards)   Loboris' kernel:   The aforementioned kernel sources are basically the stuff Boris Lovosevic (loboris) used to provide the first useable OS images for Orange Pis. He did a really great job fixing tons of issues (eg. enabling GBit Ethernet on OPi Plus or 1-Wire, camera support and so on). Unfortunately he was member of team overclocking so with his so called dvfs settings (dynamic voltage frequency scaling) the Oranges were overvolted (to be able to provide overclocking) and showed all sorts of strange symptoms (insanely high temperatures and stability issues). But this wasn't related to kernel functionality, just settings influencing power supply to the SoC/CPU and enabled overclocking.   Yann Dirrson's fork:   When we at Armbian started supporting H3 boards we relied on different kernel sources (ssvb, one member of the linux-sunxi community used Allwinner's original BSP sources, patched Mali support in to create a small OS image being able to test DRAM reliability. Another linux-sunxi guy forked this kernel tree and patched in a few more stuff (also some of loboris' great work) so we started using this fork as our basis.   1st Armbian legacy kernel:   Igor immediately started to patch the horribly outdated 3.4.39 kernel up to the most recent 3.4.y version (3.4.110 back then IIRC) and we threw in a bunch of other patches to improve this and that. Also as the result of still ongoing efforts to maximize performance/throttling settings Armbian shipped with totally different thermal settings which led in the end to pretty good performance of the boards (since we refrained from overvolting and developed sane settings)   Alwinner's 2nd BSP kernel variant:   When FriendlyARM announced their H3 based NanoPi M1 they also released a newer H3 user manual and also a new BSP kernel variant they obviously both got from Allwinner in the meantime. Jernej maintaining the unofficial H3 OpenELEC fork looked immediately through and spotted a lot of changes.    2nd Armbian legacy kernel:   So we (Armbian and jernej/OpenELEC) decided to switch to this newer BSP kernel, Igor cleaned up some stuff and again rebased all patches (up to 3.4.112 IIRC) to the new kernel sources and we adopted all other patches that were still relevant (we could drop a few). This way we could solve the ugly kswapd bug that plagued us before (one CPU core 100% active and eating up memory) and if I understood correctly also some HDMI/display area improved a lot.   Currently only Armbian and Jernej's unofficial OpenELEC fork use this kernel with all our many patches on top (maybe a few hundred security relevant and also a lot of functionality improvements): https://github.com/igorpecovnik/lib/tree/master/patch/kernel/sun8i-default(currently exactly 112 rather large patches that add support for various hardware, new features, many fixes)   The SinoVoip experience:   While all this happened Foxconn/SinoVoip released their BPi M2+ (a close clone of Orange Pi PC/Plus) and decided to rely on loboris' unmaintained and outdated 3.4.39 kernel for whatever reasons. Since BPi M2+ doesn't use the superiour voltage regulator used on the bigger Oranges at least no overvolting/overclocking is possible here. But for yet unknown reasons this board overheats terribly so we at Armbian adjusted our throttling settings very very low so be prepared that with official SinoVoip OS images strange things might happen when you put some load on this board.   Further improvements:   In the meantime we further improved thermal/performance behaviour and patched also the kernel so that when the board recovers from heavy overheating killed CPU cores are brought back when temperatures are normal again. In addition to that we provide way more cpufreq steps to allow finetuning throttling behaviour based on environmental conditions (as example: when you're running your device in a small enclosure more throttling will occur and you will benefit from more cpufreq steps in lower regions around 900-1000 MHz. If you go the other route and add a good heatsink and some airflow through a fan Armbian will provide you with a tool able to unlook higher cpufreq steps later this year on supported boards)   Summary:   Now a short overview about kernel situation combined with thermal/performance settings: Official Orange Pi images from Xunlong: 3.4.39, no rootmydevice fix, tons of security fixes missing, performance issues after medium load due to killed CPU cores Orange Pi images from loboris: 3.4.39, no rootmydevice fix, tons of security fixes missing, thermal/stability problems due to overvolting, missing sane cpufreq steps (not possible to use 1.3GHz for example) Official Banana Pi M2+ images from SinoVoip: 3.4.39, rootmydevice fixed, tons of security fixes missing, performance issues after higher load due to killed CPU cores Official NanoPi M1 images from FriendlyARM: 3.4.39, still no rootmydevice fix, tons of security fixes missing, unknown status regarding thermal/performance settings Armbian/OpenELEC: 3.4.112, rootmydevice fixed within hours (not an issue on OpenELEC), applied all available fixes from 3.4.y LTS release, constantly improving thermal settings (which means: performance)
  25. Like
    lanefu reacted to @lex in OV5640 camera with Orange Pi   
    I hit this nasty blob long ago on a previous post.
     
    Some nice article why is closed source: http://www.anandtech.com/show/6777/understanding-camera-optics-smartphone-camera-trends/4
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines