|
|
(5 intermediate revisions by 3 users not shown) |
Line 1: |
Line 1: |
− | {{ARM/breadcrumb}}
| + | This page has been moved to the official NixOS Wiki: |
− | <div class="infobox">
| |
− | {|class="table"
| |
− | !colspan="2" class="title"|Firefly AIO-3399C
| |
− | |-
| |
− | |colspan="2"|[[File:Firefly_AIO-3399C.png|frameless|256px|A Firefly AIO-3399C attached to LVDS]]
| |
− | |-
| |
− | !Manufacturer
| |
− | |Firefly
| |
− | |-
| |
− | !Architecture
| |
− | |AArch64
| |
− | |-
| |
− | !Bootloader
| |
− | | u-boot with ARM trusted boot and Rockchip Miniloader
| |
− | |-
| |
− | !Boot order
| |
− | | official: eMMC
| |
− | |-
| |
− | !Maintainer
| |
− | |[[User:makefu|makefu]]
| |
− | |}
| |
− | </div>
| |
− | == Status ==
| |
| | | |
− | It can boot the image provided by firefly on [http://www.t-firefly.com/doc/download/54.html the chinese download page], click on '''Ubuntu (GPT)'''. The image has also been uploaded to [https://archive.org/details/AIO-3399C archive.org].
| + | ⇒ '''[https://wiki.nixos.org/wiki/NixOS_on_ARM/Firefly_AIO-3399C NixOS on ARM/Firefly AIO-3399C]''' |
| | | |
− | The official documentation, which is a pretty good state, can be found at [http://wiki.t-firefly.com/en/AIO-3399C/ the wiki of firefly]. However as of right now i was unable to:
| + | ''— samueldr, Lead of NixOS on ARM.'' |
− | | |
− | * build an nixos image which can be booted as root image from the emmc (root image must be build as "android" boot)
| |
− | * build an sd-image with a kernel which detects the card at stage one with NixOS (cannot find rootfs)
| |
− | * build the the bootloader with NixOS (blobs and trustedboot comes from rockchip)
| |
− | | |
− | == Board-specific installation notes ==
| |
− | | |
− | == Serial console==
| |
− | On the board there are 3 pins which have a 2.54mm pitch, this is the debug console with the text DEBUG on it. Starting from the middle to the side of the board:
| |
− | | |
− | * GND (Black Wire)
| |
− | * RX (White Wire)
| |
− | * TX (Green Wire)
| |
− | * VCC, only the silver trace point and not a pin
| |
− | | |
− | Baud rate is <code>1500000</code>
| |
− | Connect to it via:
| |
− | <syntaxHighlight lang=bash>
| |
− | nix-shell -p picocom --run "picocom -b 1500000 /dev/ttyUSB0"
| |
− | </syntaxHighlight>
| |
− | | |
− | When you build your own image, you need the following extra kernel command-line parameters to get serial output:
| |
− | <syntaxHighlight lang=nix>
| |
− | {
| |
− | boot.kernelParams = ["console=ttyS2,1500000n8" "earlycon=uart8250,mmio32,0xff1a0000" "earlyprintk"];
| |
− | }
| |
− | </syntaxHighlight>
| |
− | == Compatibility notes ==
| |
− | See the [http://opensource.rock-chips.com/wiki_Status_Matrix Rockchip compatibility matrix]. Uboot requires the Rockchip Miniloader and an arm trusted boot image.
| |
− | | |
− | === Downstream kernel ===
| |
− | | |
− | The downstream kernel sources can be found on github at [https://github.com/FireflyTeam/kernel]. The stable kernel branch they are maintaining is <code>4.4</code>, however mainline 4.19 should already work according to the [http://opensource.rock-chips.com/wiki_Status_Matrix Rockchip compatibility matrix].
| |
− | | |
− | === u-boot ===
| |
− | Firefly maintains an own u-boot fork at [https://github.com/FireflyTeam/u-boot]
| |
− | | |
− | === Flashing via Rockchip Loader Mode ===
| |
− | The board can easily be flashed by booting the device into the Rockchip ''loader'' mode.
| |
− | | |
− | To bring the device in the loader mode:
| |
− | # Disconnect from power
| |
− | # Connect USB-C from the board to your computer
| |
− | # Hold 'Recovery' button pressed
| |
− | # Connect power, wait for 2 (or more) seconds
| |
− | # Short press the 'reset' button and release the 'Recovery' button afterwards
| |
− | | |
− | ==== Firefly upgrade_tool ====
| |
− | Firefly provides an <code>upgrade_tool</code> which is a modified [http://opensource.rock-chips.com/wiki_Upgradetool rock-chip upgrade tool]. Using the upstream tool however may result in weird errors like being unable to flash the image or being unable to erase the flash. To be sure use the [https://archive.org/details/AIO-33399C archive.org mirror].
| |
− | | |
− | However, because the software is essentially a blob, you will need to either patchelf the thing or use '''steam-run''':
| |
− | <syntaxHighlight lang=bash>nix-shell -p steam-run --run "steam-run ./upgrade_tool"</syntaxHighlight>
| |
− | | |
− | === Rockchip MaskROM Mode ===
| |
− | Maskrom mode is a way to get extended privileges when flashing but you need to shorten two trace points on the board. Follow [http://wiki.t-firefly.com/en/AIO-3399C/maskrom_mode.html the official documentation]. However the loader mode should be enough for most things.
| |
− | | |
− | == Resources ==
| |
− | | |
− | * [http://en.t-firefly.com/product/industry/aio_3399c Official product page]
| |
− | * [http://wiki.t-firefly.com/en/AIO-3399C/ Firefly Wiki Page for the AIO-3399c]
| |