-
Posts
2075 -
Joined
-
Last visited
Content Type
Forums
Store
Crowdfunding
Applications
Events
Raffles
Community Map
Everything posted by jock
-
@Seth Very much thank you for the photos! I looked at them side by side trying to spot differences, and the board layout and printings seems exactly the same to me. The squared has a 2146 printed below the heatsink, the rounded has 2147; I may guess it is a something like lot number; the date "2020/06/29" maybe is the date when the board was designed. @FRIKIdelTO has the 2151 lot number but the same 2020/06/29 date on his board. The differences are, as you already noticed, in some pads being populated with components or just unpopulated. I may guess the fx8934 comes with an on-board crystal which is below the metal shield, instead the sp2734c requires an external crystal and the inductor too. I checked the nvram files, and both the default shipped with armbian and the alternative version for the 2734c have the crystal set to 37.4MHz. My HK1 board comes with an HK6334Q, has the external 37.4MHz crystal but works with the default firmware like the fx8934 that has no external crystal. Very messy 😄 About the HDMI, on kernel 5.19 it does not work on both of them or just on the "squared" one? I cleaned, sorted and finally made a diff of the two nvram fiels I attach here for curiosity and study purposes. You can see there are several calibration parameters that differs a bit, but there are also some obscure parameters like swctlmap that probably control some chip registers to behave in a way or another. Use zless -R to see it correctly with colors. diff-def-alt-nvram.txt.gz
-
@Max Sterg No disturb, but please read the first post that will answer all your questions. PS: the specs of your box are totally fake, you don't have 8GB + 128GB eMMC, you probably have 1GB of RAM and 8GB of eMMC
-
I understand; the problem is that those boards have some minor changes that makes them different than established boards. Maybe it is just a matter of tuning some little bits to get things perfectly working... I never stress enough that if you need something more serious, proper SBCs are the way, tv boxes are just for toying around and for those people that know perfectly how to work around in case they suddenly break because of the faulty components often they mount.
-
Modify the img.xz to do what? It will be overwritten as well with apt upgrade anyway
-
@SethI was inspecting an old dtb I have in my archive of a h96 max that someone posted time ago. Actually I don't know if it comes from the "rounded one" or the "squared one". I see that the one posted by @FRIKIdelTO has the RK3318_V1.4 marking and, searching through this thread, I see that also @kruzer had a h96max but on his photos the board marking is behind the heatsink. Anyway my guess is that SP6334, HY2734C, etc... are all clones of the AmPAK AP6334 which is, in turn, a combo of wifi and bluetooth chipsets from broadcom (BCM4334 for the wifi part, don't remember the name of the bluetooth chip). The driver is the very same broadcom driver that works fine for all the chips and the firmware is the very same. The only that changes is the "nvram" file, which is nothing more than the configuration settings of the firmware. Often, when you see the wireless network but can't associate with them, the problem is the crystal frequency that gives the clock to the wifi chip: the board mounts a crystal and the nvram says there is another one. @Seth do you have any photos of the boards? Or at least could you tell if both boards have RK3318_V1.x marking on them or are they quite different? It could just be that they are two different board from different manufacturers that have different internal designs. Also HDMI does work for you? As far as I understand, HDMI works for @FRIKIdelTO on this RK3318_V1.4
-
AFAIK you don't need a specific driver for sata to usb bridges; they will just work as a generic USB mass storage device. You may need some special applications (like smartmontools) to know the bridge chip to send sata commands directly to the drive, but that's not something related to OS.
-
Well, apart from making it read-only, honestly I don't know. It is part of the armbian firmware package and will get overwritten every time the package is updated. The reason I did not ship the alternative nvram for bcm4334 (your wifi chip is a broadcom bcm4334, 2734c is just a random name no one knows where it comes from) is that there is no easy way to switch from the "default" nvram to the "alternative" nvram.
-
Yes: follow instructions on first post, in particular always test image on sdcard first! You did a bad mix: with this command you installed part of the proprietary bootloader/u-boot (which is in use on multitool but not on armbian) over the armbian installation, which does not use anything from the proprietary code. multitool should still boot fine, if it booted before it should boot as well after the mistake, I don't know why you get a black screen, but you may try to access it via ssh if you don't see anything on screen.
-
Hello @rafaeldavid, thanks a lot, you're very kind! About the r29 board, yes as you noticed there are issues with that board. The HDMI problem is very well known and it is quite obscure, maybe some gpio has to be set to the right state but I wasn't able to find useful hints inspecting the device tree. The stability issues are very new to me, but looking at the board photos I see a bit of different design for the power section than usual boards. These differences may have some stability implications, but I'm just guessing. Another potential problem can be related with the Trust OS binary: during early development we noticed that the wront Trust binary could freeze the device after a predefined amount of time because it was triggering a sort of "sleep" mode, but the Trust (proprietary) binary now is working pretty fine for the vast majority of boards, so it would be quite strange that this is the offender. As you read in the other posts, this R29 board seems to be one of the bad ones and unfortunately I have no sample to study, so I'm very open to receive one sample. Recently I received a couple of rk322x boards from @Jason Duhamell and those were terribly useful to fix eMCP issues and support esp8089 wifi; having such R29 board on my desk to work with obviosuly increases a lot the chances to understand and fix those issues. edit: in the past we have encountered R29_MXQ boards, those may be a bit different than yours but the HDMI problem looks like is the same. You may try to apply led-conf7 from rk322x-config to see if stability problems goes away, but I'm afraid it won't really chance anything.
-
This is the download page for Tinkerboard / Tinkerboars-S: https://www.armbian.com/tinkerboard/ Well, there is still confusion in your steps: If you want to write a full image (step 7) to the eMMC, you don't need step 5 and step 6. If you want to erase the flash and let the device always boot from sdcard, you step 5 is not needed Also when you do step 6, the device is not automatically in maskrom mode... it will enter maskrom mode when you turn it off and turn it on again! Remember that you are in real maskrom mode when you first need to run rkdeveloptool db command. This is not exactly "activation" of the bootloader. ul means upgrade loader: it will write the bootloader on the eMMC in the famous first 0x2000 sectors. Although it is very harmless to run the command after db command, you don't really need ul if you're going to erase the internal flash right after with ef command. You also don't need to do ul if you're going to burn a full image, either taken from multitool backup or a pristine armbian image. I'm sorry about the confusion, but it is so because the instructions on the linked page assumed that you are going to do a manual backup in rockusb mode (that will skip the first 0x2000 sectors), and then restore in maskrom mode. Multitool came much later than those instructions, I left them there for reference. Multitool is the preferred way to do backup and restore because has no limitations and indeed is much easier to use.
-
Extensions have no meaning in the Unix world, you can even rename that file with a ".exe" extension but it does not change anything. What counts is the data in the file. The procedure requires that you first erase the eMMC with rkdeveloptool ef command; when done turn the box off, then turn the box on and you will be in MaskROM mode . Once there, follow the steps from "Restore backup" paragraph in the link above: you have to first use rkdeveloptool db command to upload a program to the SoC to program (no pun intended) the eMMC you can skip the rkdeveloptool ul command (it was necessary for manual backups, not for multitool backups) run the rkdeveloptool wl command Maybe the serial is switched to 1.5Mbps; some firmwares use 115200, some others use 1.5Mbps and may show you garbled data. On multitool and armbian by default I use 115200bps for compatibility. Yes, both of these behaviours are expected. The OTG port works as a power supply since it is supposed to be bidirectional. In fact when you do maintenance in maskrom mode you have not to connect the regular power supply but just the USB cable. Not all boards work this way though, but it looks like that both mine and yours behave this way. rkdeveloptool does not let you do anything with the box in MaskROM mode because you first have to upload the famous program with rkdeveloptool db I talked above. Once you do that, then you can use the other rkdeveloptool commands (including ef, wl, etc...) A lot of confusion comes from a fact: rockchip u-boot bootloader that is shipped with original firmwares, when stuck or when the reset button is pressed, provides the RockUSB mode, which is similar to MaskROM, but it is not the same! Unfortunately lsusb has no chances to recognize the difference and will tell you the board is in MaskROM mode, but it is not true. When you are in RockUSB mode, rkdeveloptool works without the bootstrap program because on the other side there is u-boot that is already answering. Another very very important difference between MaskROM and RockUSB modes is that the latter does not allow you to write the whole firmware: it will skip the first 0x2000 sectors, not allowing to overwrite the bootloader part, plus it will shift by the same amount the image you're going to write on the internal flash. Clearly this breaks everything, because partitions will not be in the expected positions anymore. To make the long story short: always operate on the internal flash when you're in real MaskROM mode. To get into real MaskROM mode you have to: erase the internal flash, or gate the clock pin with the screwdriver/whatever trick This is because the SoC on first instance tries to boot from eMMC. If it does not find a valid bootloader, then tries to boot from sdcard. If a valid bootloader is not there too, then stays there waiting in MaskROM mode waiting for an input from USB OTG port. No firmware/software has been loaded at this point, and that's the reason why you must upload the bootstrap program with rkdeveloptool db command before you can do anything else. Yes, this is the problem I talked you about the differences on the boards: the kernel is stuck somewhere because the device tree tells about a hardware configuration but your board has a different hardware configuration. If you burn the image on a sdcard, you can edit the file /boot/armbianEnv.txt and change verbosity=1 to verbosity=7 to let the kernel to show the whole log on the serial. This is of great help when you're debugging. You may also try armbian images for the Asus Tinkerboard-S, which has the rk3288 SoC as well and share many similarities. edit: you didn't say if you tried to just restore the backup with the multitool. Did you try? That's the easiest way to restore the backup...
-
Q8 boards are those with "Q8" in the name. Mine is a xt-q8l-v10, but there are others like eny-q8l-v10 and so on... all of them are pretty similar in the board design. Yours has a different signature, R36 you say, and in fact it is somehow different from q8 boards. All the boards have the rockchip rk3288 SoC, but as I said in the post of the other thread, some differences may be so important that some hardware may not work (wifi is one of the best candidates), or even don't the let kernel or the board boot at all. It happens 🤷♂️ The error message is not really an error message. That file does not exists and should not exist, therefore I don't see any other message: it looks like u-boot got stuck there because I don't see the usual messages about mmc/sdcard probing for the kernel. Are you sure it does not progress further? Anyway, you can even try to burn armbian on the sdcard and let it boot from there to see if it works or not; of course if multitool does not boot probably armbian neither will, but surely worth a try. As last resort, you can restore the original firmware using rkdeveloptool (and just that one, not other tools) following these instructions; just be sure to unpack the backup before running rkdeveloptool wl command No, the board is not recognized as Q8. The board can't be recognized in any way from the software; instead u-boot is configured to use a stripped-down version of the device tree originally made for xt-q8l-v10. It should be generic enough to run on more rk3288 boards. If you're questioning yourself about the device tree, it is a file that contains the specs of the board hardware. Maybe you heard about ACPI/Plug and Play on x86 world, so the specs of the hardware are supplied by the BIOS to the operating system; in the ARM world there is no such thing like BIOS and ACPI, except on some server hardware. The specs of the hardware are described in a static and handwritten file given to u-boot and linux kernel, so they can know what is the hardware they have to deal with.
-
Hello, I noticed the message on the Q8 thread yesterday and noticed this other thread here right now... one baby step after another I gave you some general hints on that thread (this post), but I guess it is more appropriate to keep the conversation here. From what I see from your logs, you installled something on the board which is a legacy android, if I understand correctly you still have the backup you took with the multitool and now you have this other rikomagic firmware installed which is not really working on the box. The backup took with multitool is just a raw gzipped imaged of the internal flash, I wonder what you intended with "the image was not recognized"; by whom? If the multitool is not able to recognize the backup image produced by itself probably the sdcard is faulty and the backup data is broken. Multitool should allow you to backup as well restore the backed up image. Surely if you want to use the backup in AndroidTool for windows or rkdeveloptool for linux you first need to unpack (I'm not even sure AndroidTool is capable to write a raw image). In the other post I mention to use maskrom mode to exclude eMMC and be able to use rkdeveloptool with USB male-to-male cable: rkdeveloptool can be used either to flash directly the backup image or erase the flash and let multitool boot again and flash image with it. Since the board is booting, it is possible that the multitool boots when you put in the sdcard and give power, but as long as the firmware you installed on the eMMC is not the original one it may not be true anymore.
-
@Mierscheid sorry for the late reply, but I didn't notice the post. The image you installed is for another board called xt-q8l-v10, which is based on rk3288 but surely not the same board. This is quite important, because each board, especially "high-end" boards like this, have their own design and usually have a different Power Management Integrated Chip (PMIC). This is important because this little chip drives all the currents of the board, and if it is not configured right won't allow the board to work the right way. There may be other differences that may break things, so it is not advisable in general to burn an image directly on the eMMC without carefully testing it via sdcard first. The board can surely be restored to working state, but without UART logs is impossible to even guess where is the problem; surely bringing the board into maskrom mode (see this post) will allow you to use rkdeveloptool to erase internal flash and force the board to boot from sdcard (either multitool or directly an armbian image). I guess you already tried to boot the multitool from sdcard without success, this makes me think that the u-boot installed on eMMC has issues or does not even boot, which is bad enough to guess you need to bring the board into maskrom mode and do a manual intervention. The maskrom mode link I posted above is for rk322x, but actually it works exactly the same because eMMC chips have all the same pin layout. Once you keep the short the emmc clock pin to ground, you are "clock gating" the emmc and in practice it excludes it from the system just like there is no eMMC at all. When you unshort the pins, the eMMC will start working again.
-
Interesting you found a way to put the device in maskrom mode, the testing points are not always obvious. I will link this thread in the rk3318 first post for future reference. However once in maskrom mode the board will boot from sdcard. As far as I remember, yours has the sdcard allocated to a "secondary" controller and for this reason probably is unable to boot multitool from sdcard when in maskrom mode. You could use rkdeveloptool to erase or program the internal flash manually when in maskrom mode with linux, or use the AndroidTool with Windows
-
@Buqan Kaleng Kaleng seriously, I really don't understand what you're talking about. 🤷♂️ You said you can run multitool from sdcard, then erase the eMMC from multitool if you want to zero-fill the eMMC and zap anything. If you can't, the emmc is not detected and thus probably broken. There is no bootloader involved in hardware detection. From armbian you can run blkdiscard /dev/mmcblk2 to do the same the multitool does. Again: any error here means the emmc is not detected and probably broken.
-
@Buqan Kaleng Kaleng I don't what you are talking about... if the multitool does not see the emmc, maybe it is just broken.
-
@mkultra yes, you can now unhold the packages
-
This looks very interesting, kswapd is essentially a cpu hungry process in nearly most common tasks that move memory around, glad to hear there is interesting work on to bring down cpu usage and make page swapping better. I would like to bring the patches in for some kernel and see if things would improve for light/medium desktop workloads. Anyone has some experience about?
-
DISCLAIMER (PLEASE READ): everything you can find in this thread (binaries, texts, code snippets, etc...) are provided AS-IS and are not part of official Armbian project. For this reason not people from Armbian project nor myself are responsible for misuse or loss of functionality of hardware. Please don't ask about support or assistance in other non-community forums nor in the official Armbian github repository, instead post your questions in this thread, in the TV Boxes forum section (hardware related) or in the Peer-to-peer support section (general linux/software related). Thank you! This thread is to give stable and mature long-term range support to rk3318/rk3328 found in many tv boxes in Armbian project as Community Supported Configuration (CSC). The current work is mainlined into Armbian project, but your mileage may vary; most recent developments live on my personal fork on github -> here <- Important notes: is just a personal opinion, but apparently widely supported, that rk3318 chip is not an official rockchip part. They probably are scrap rk3328 parts which have not passed conformance tests but are sold anyway to tv boxes manufacturers. They don’t reach the same operating frequency of the rk3328, have much higher leakage currents (and thus higher temperatures) and often the boards they are installed on are low quality with low quality components, in fact a very very common issue is the eMMC failure due to bad parts and bad soldering. So said, I personally suggest not to buy any rk3318 tv box, but instead find a properly supported SBC (Single Board Computer) if you need a reliable product. In the unfortunate case you already have such product, this thread may help you have some fun with them. What works: • Works on RK3318 and RK3328 TV boxes with DDR3 memories • Mainline u-boot • Mainline ATF provided as Trusted Execution Environment • All 4 cores are working • Ethernet • Serial UART (configured at stock 1.5Mbps) • Thermals and frequency scaling • OTG USB 2.0 port (also as boot device!) • EHCI/OHCI USB 2.0 ports and XHCI USB 3.0 ports • MMC subsystem (including , SD and sdio devices) • Hardware video acceleration (fully supported via RKMPP on legacy kernel, support via hantro and rkvdec kernel driver on mainline) • Various WIFI over SDIO are supported • Full acceleration on legacy kernel and mainline kernel • U-boot boot order priority: first the sdcard, then the USB OTG port and eventually the internal ; you can install u-boot (and the whole system) in the internal and u-boot will always check for images on external sdcard/USB first. Unbrick: Technically, rockchip devices cannot be bricked. If the internal flash does not contain a bootable system, they will always boot from the sdcard. If, for a reason, the bootable system on the internal flash is corrupted or is unable to boot correctly, you can always force the maskrom mode shorting the clock pin on the PCB. The procedure is explained here for rk322x, but for rk3318/28 is the same. In most of the rk3318/28 boards, shorting the clock pin is difficult or impossible because eMMC are BGA chips with no exposed pins. Pay double attention when burning something on the internal flash memory and always test first the image booting from the sdcard to be sure it works before burning anything in internal flash. This is a list of posts where forum users have been able to spot the eMMC clock pin to trigger the maskrom mode: H96 Max+ (board signature: RK3318_V1.4) by @Gausus X88 PRO 10 (board signature: X88_PRO_B) by @mathgaming HK1 Max (board signature YX_RK3318) by @Constantin Gatej Ninkbox N1 Max RK3318 by @enigmasphinx Partecipation and debugging: If you want to partecipate or need help debugging issues, do not hesitate to share your experience with the installation procedure of the boxes. In case of issues and missed support, provide as many as possible of these things is very useful to try and bring support for an unsupported board: some photos of both sides of the board. Details of the eMMC, DDR and Wifi chips are very useful! upload the device tree binary (dtb) of your device. We can understand a lot of things of the hardware from that small piece of data; and alternative is a link to the original firmware (you can do a full backup with the Multitool); dmesg and other logs (use armbianmonitor -u that automatically collects and uploads the logs online) attach a serial converter to the device and provide the output of the serial port; Multimedia: Mainline kernel: 3D acceleration is provided by Lima driver and is already enabled. Hardware video decoding: https://forum.armbian.com/topic/19258-testing-hardware-video-decoding-rockchip-allwinner/ Legacy kernel: If you need multimedia features, like OpenGL/OpenGL ES acceleration, hardware accelerated Kodi, ffmpeg and mpv you can take a look to this post Installation (via SD card): Building: You can build your own image follow the common steps to build armbian for other tv boxes devices: when you are in the moment to choose the target board, switch to /TVB/ boards and select "rk3318-box" from the list. Prebuilt images: Nightly stables - built from trunk by Armbian servers and GPG-signed: https://github.com/armbian/community Multitool: Multitool - A small but powerful image for RK3318/RK3328 TV Box maintenance. Download it from here Quick installation instructions on eMMC: Build or download your preferred Armbian image and a copy of the Multitool; Burn the Multitool on an SD card; once done, place the Armbian image in images folder of the SD card NTFS partition; Plug the SD card in the TV box and plug in the power cord. After some seconds the blue led starts blinking and the Multitool appears; OPTIONAL: you can do a backup of the existing firmware with "Backup flash" menu option; Choose "Burn image to flash" from the menu, then select the destination device (usually mmcblk2) and the image to burn; Wait for the process to complete, then choose "Shutdown" from main menu; Unplug the power cord and the SD card, then replug the power cord; Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt. On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user Run rk3318-config to configure the board specific options Run armbian-config to configure timezone, locales and other personal options Congratulations, Armbian is now installed! Despite the procedure above is simple and reliable, I always recommend to first test that your device boots Armbian images from SD Card. Due to the really large hardware variety, there is the rare chance that the images proposed here may not boot. If a bad image is burned in , the box may not boot anymore forcing you to follow the unbrick section at the top of this post. Quick installation instructions to boot from SD Card: If you are already running Armbian from eMMC, skip to the next step. Instead if you are running the original firmware you need to first erase the internal flash; to do so download the Multitool, burn it on an SD Card, plug the SD Card and power the TV Box. Use "Backup flash" if you want to do a backup of the existing firmware, then choose "Erase flash" menu option. Build or download your preferred Armbian image; Uncompress and burn the Armbian image on the SD Card; Plug the SD Card in the TV Box and power it on; Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt; On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user Run rk3318-config to configure the board specific options Run armbian-config to configure timezone, locales and other personal options, or also to transfer the SD Card installation to internal ; Congratulations, Armbian is running from SD Card! Tutorial - How to install Armbian on your TV Box (by @awawa) : https://www.hyperhdr.eu/2022/01/tv-box-mania-i-part-x88-pro-10.html A note about boot device order: With Armbian also comes mainline U-boot. If you install Armbian, the bootloader will look for valid bootable images in this order: External SD Card External USB Stick in OTG Port Internal The Multitool does not boot / How to burn image directly on eMMC: Some boards have the sdcard attached to an auxiliary (called also sdmmc_ext or external) controller which is not the common one. Forum findings declare that those boards are not able to boot from sdcard with stock firmware and they neither do in maskrom mode: the stock firmware always boots even if you put the multitool on sdcard. In such case, burning images directly on eMMC is the only way to have a working Armbian installation. You can follow these instructions by @fabiobassa to burn images directly on eMMC: https://forum.armbian.com/topic/17597-csc-armbian-for-rk3318rk3328-tv-box-boards/?do=findComment&comment=130453 Notes and special hardware: Script to change DDR memory frequency here Wireless chip AP2734, SP2734, HY2734C and similars: they are clones of AmPAK AP6334 which is combo wifi + bluetooth of broadcom BCM4334/B0 chips. You may need a special nvram file, instructions by @paradigman are here Critics, suggestions and contributions are welcome! Credits: @fabiobassa for his ideas, inspiration, great generosity in giving the boards for development and testing. The project of bringing rk3318 into armbian would not have begun without his support! @hexdump for his precious support in early testing, ideas and suggestions @MX10.AC2Nfor his patience in testing mxq-rk3328-d4 board support All the rockhip64 maintainers at Armbian project who have done and do most of the work to support the platform
- 1903 replies
-
19
-
DISCLAIMERS (PLEASE READ): Everything you can find in this thread (binaries, texts, code snippets, etc...) are provided AS-IS and are not part of official Armbian project. For this reason not people from Armbian project nor myself are responsible for misuse or loss of functionality of hardware. THIS POST explains very well the troubles with TV Boxes and why they are not suitable for everyone Please don't ask about support or assistance in other non-community forums nor in the official Armbian github repository, instead post your questions in this thread, in the TV Boxes forum section (hardware related) or in the Peer-to-peer support section (general linux/software related). Following the recent thread on LibreElec forum about an unofficial image for rk3229 devices, I would like to make public the work made by me and @fabiobassa about bringing rk322x support to armbian. The project is now in -> mainline Armbian <- development fork -> here <- This first page and the last 3 or 4 pages of the thread are enough to get up to date with recent developments. Many useful experiences are scattered through the thread, but the most important things are collected here in the first page, so please read it carefully! Mainline kernel is fully supported and will receive most support in the future. Legacy kernel 4.4 is deprecated, but is kept around only for special purposes. What works: Should boot and work flawlessy on all boards with RK3228a, RK3228b and RK3229, with either DDR2 and DDR3 memories. Mainline u-boot Proprietary OPTEE provided as Trusted Execution Environment (needed for DRAM frequency scaling) All 4 cores are working Ethernet Serial UART (configured at 115200 bps, not 1.5Mbps!) Thermals, CPU and DRAM frequency scaling OTG USB 2.0 port (also as boot device!) EHCI/OHCI USB 2.0 ports MMC subsystem (including eMMC, SD and sdio devices) Hardware video acceleration NAND is available only on legacy kernel. To fully boot from NAND, use the Multitool and its steP-nand installation (instructions are below) Various WIFI over SDIO are supported (SSV6051P, SSV6256P, ESP8089, Realtek chips, etc...), ssv6256p driver is available only on legacy kernel Full GPU acceleration U-boot boot order priority: first the sdcard, then the USB OTG port and eventually the internal eMMC; you can install u-boot (and the whole system) in the internal eMMC and u-boot will always check for images on external sdcard/USB first. Unbrick: Technically, rockchip devices cannot be bricked. If the internal flash does not contain a bootable system, they will always boot from the sdcard. If, for a reason, the bootable system on the internal flash is corrupted or is unable to boot correctly, you can always force the maskrom mode shorting the eMMC clock pin on the PCB. Here there is the procedure, but you can also google around if you get stuck on a faulty bootloader, the technique is pretty simple and requires a simple screwdriver. There are however some unfortunate cases (expecially newer boards) where shorting the eMMC clock pin is difficult or impossibile, like eMMC or eMCP BGA chips with no exposed pins. In those cases pay double attention when burning something on the internal eMMC/eMCP and always test first the image from the sdcard to be sure it works before burning anything on eMMC/eMCP. Some useful links with pins, pads or procedures for some boards: Generic procedure for boards with non-BGA eMMC MXQPRO_V71 - eMCP H20 - eMCP ZQ01 - eMCP NAND vs eMMC vs eMCP difference: RK3228 and RK3229 tv boxes comes with three different flash memory chips: eMMC, NAND and eMCP. It does not depend upon the market name of the tv box and neither the internal board; manufacturers put whatever they find cheaper when they buy the components. NAND chip is just the non-volatile memory eMMC chip contains both the non-volatile memory plus a controller. eMCP chip contains the non-volatile memory, a controller for the non-volatile memory (like eMMC), but also contains a bank of DDR SDRAM memory on the same physical chip. The difference is very important, because eMMC and eMCP are far easier to support at various levels: the controller deals with the physical characteristics of the non-volatile memory, so the software has no to deal with. NAND chips instead are harder to support, because the software is required to deal with the physical characteristics and non-standard things that depends upon the NAND manufacturer. If you have a NAND chips you're unlucky because mainline kernel currently cannot access it, but also because you need special care and instructions explained later. You can discover if you have a NAND, eMMC or eMCP chip looking on the board are reading the signature on the flash memory chip. The Multitool (see later) also can detect which chip you have onboard: the program will warn you at startup if you have a NAND chip. NAND bootloader upgrade: IMPORTANT: don't do this is you have an eMMC or eMCP; skip this paragraph if you are unsure too! For very expert people who are having issues when (re)booting images, there is the chance to upgrade the bootloader on NAND. The NAND bootloader is nothing else than a regular idbloader (see official rockchip documentation) but contains some bits to correctly access the data on your flash memory. Upgrading requires to erase the existing flash content, in the worst case will require you to follow the Unbrick procedure above or restore an older but more compatible bootloader. If you are not mentally ready to overcome possible further issues, don't do this! The detailed instructions and the binaries are available at this post Multimedia: Mainline kernel: 3D acceleration is provided by Lima driver and is already enabled. Hardware video decoding: https://forum.armbian.com/topic/19258-testing-hardware-video-decoding-rockchip-allwinner/ Deprecated legacy kernel: multimedia features, like OpenGL/OpenGL ES acceleration, hardware accelerated Kodi, ffmpeg and mpv you can take a look to this post An effective tutorial from @Hai Nguyen on how to configure a box as a hi-quality music player using an USB audio card, and controlling it via remote control is available in this post Brief explanation about kernel naming: current kernel is the mainline LTS kernel version, most maintained and tested. This is the suggested version for production devices. If you don't know what to pick, pick this. legacy kernel (version 4.4) is provided by manufacturer; it is deprecated, unmaintained and not suggested. edge kernel is the development mainline kernel version, with experimental features and drivers; usually stable but perhaps suitable for production devices. You can switch from one kernel flavour to another using armbian-config or manually via apt. Installation (via SD card): Building: You can build your own image follow the common steps to build armbian for other tv boxes devices: when you are in the moment to choose the target board, switch to CSC/TVB/EOL boards and select "rk322x-box" from the list. Download prebuilt images from the following links: Archive builds (GPG-signed) - https://imola.armbian.com/dl/rk322x-box/archive/ SUGGESTED - Nightly built from trunk each week by Armbian servers (GPG-signed) - https://github.com/armbian/community Old images provided by me (unsigned and outdated) - https://users.armbian.com/jock/rk322x/armbian/stable Archived/older images: https://armbian.hosthatch.com/archive/rk322x-box/archive/ Multitool: The Multitool is a small but powerful tool to do quick backup/restore of internal flash, but also burn images and general system rescue and maintenance via terminal or SSH. Compressed images will be uncompressed on fly. Multitool - A small but powerful image for RK322x TV Box maintenance (instructions to access via network here) Quick installation instructions on eMMC: Build or download your preferred Armbian image and a copy of the Multitool; Burn the Multitool on an SD card; once done, place the Armbian image in images folder of the SD card NTFS partition; Plug the SD card in the TV box and plug in the power cord. After some seconds the blue led starts blinking and the Multitool appears; OPTIONAL: you can do a backup of the existing firmware with "Backup flash" menu option; Choose "Burn image to flash" from the menu, then select the destination device (usually mmcblk2) and the image to burn; Wait for the process to complete, then choose "Shutdown" from main menu; Unplug the power cord and the SD card, then replug the power cord; Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt. On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user Run sudo rk322x-config and select your board characteristics to enable leds, wifi chips, high-speed eMMC, etc... Run sudo armbian-config to configure timezone, locales and other personal options Congratulations, Armbian is now installed and configured! Despite the procedure above is simple and reliable, I always recommend to first test that your device boots Armbian images from SD Card. Due to the really large hardware variety, there is the rare chance that the images proposed here may not boot. If a bad image is burned in eMMC, the box may not boot anymore forcing you to follow the unbrick section at the top of this post. Quick installation instructions on NAND: Build or download your preferred Armbian image and a copy of the Multitool; Burn the Multitool on an SD card; once done, place the Armbian legacy kernel image in images folder of the SD card NTFS partition; Plug the SD card in the TV box and plug in the power cord. After some seconds the blue led starts blinking and the Multitool appears; OPTIONAL: you can do a backup of the existing firmware with "Backup flash" menu option; Choose "Burn Armbian image via steP-nand" from the menu, then select the destination device (usually rknand0) and the image to burn; Wait for the process to complete, then choose "Shutdown" from main menu; Unplug the power cord and the SD card, then replug the power cord; Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt. On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user Run sudo rk322x-config and select your board characteristics to enable leds, wifi chips, etc... Run armbian-config to configure timezone, locales and other personal options Congratulations, Armbian is now installed! Alternative: you can install the bootloader in NAND and let it boot from SD Card or USB: Download a copy of the Multitool and burn it on an SD card; Plug the SD card in the TV box and plug in the power cord. After some seconds the blue led starts blinking and the Multitool appears; RECOMMENDED: make a backup of the existing firmware with "Backup flash" menu option; Choose "Install Jump Start for Armbian" menu option: the Jump Start uses the internal NAND to boot from external SD Card or external USB Stick; Follow the general instructions to boot from SD Card below, skip the first erase eMMC step. Quick installation instructions to boot from SD Card: If you are already running Armbian from eMMC, skip to the next step. Instead if you are running the original firmware you need to first erase the internal eMMC; to do so download the Multitool, burn it on an SD Card, plug the SD Card and power the TV Box. Use "Backup flash" if you want to do a backup of the existing firmware, then choose "Erase flash" menu option. Build or download your preferred Armbian image; Uncompress and burn the Armbian image on the SD Card; Plug the SD Card in the TV Box and power it on; Wait for 10 seconds, then the led should start blinking and HDMI will turn on. The first time the boot process will take a couple of minutes or more because the filesystem is going to be resized, so be patient and wait for the login prompt; On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user Run sudo rk322x-config and select your board characteristics to enable leds, wifi chips, high-speed eMMC or NAND, etc... Run armbian-config to configure timezone, locales and other personal options, or also to transfer the SD Card installation to internal eMMC; Congratulations, Armbian is running from SD Card! A note about boot device order: With Armbian also comes mainline U-boot. If you install Armbian or just the bootloader in the eMMC or the Jump Start on internal NAND, the bootloader will look for valid bootable images in this order: External SD Card External USB Stick in OTG Port Internal eMMC Installation (without SD card, board with eMMC) If you have no sd card slot and your board has an eMMC, you can burn the armbian image directly on the internal eMMC using rkdeveloptool and a male-to-male USB cable: Download your preferred Armbian image from Armbian download page and decompress it. Download the rk322x bootloader: rk322x_loader_v1.10.238_256.bin Download a copy of rkdeveloptool: a compiled binary is available in the official rockchip-linux rkbin github repository. Unplug the power cord from the tv box Plug an end of an USB Male-to-male cable into the OTG port (normally it is the lone USB port on the same side of the Ethernet, HDMI, analog AV connectors) while pressing the reset microbutton with a toothpick. You can find the reset microbutton in a hole in the back of the box, but sometimes it is hidden into the AV analog jack Plug the other end of the USB Male-to-male cable into an USB port of your computer If everything went well, run lsusb: you should see a device with ID 2207:320b Run sudo rkdeveloptool rd 3 (if this fails don't worry and proceed to next step) Run sudo rkdeveloptool db rk322x_loader_v1.10.238_256.bin Run sudo rkdeveloptool wl 0x0 image.img (change image.img this with the real Armbian image filename) Unplug the power cord Done! Installation (without SD card, board with NAND) If you are in the unfortunate case you can't use an SD card for installation and your board has a NAND chip, you still have an option to use the quick Multitool installation steps via USB. Obtain a copy of rkdeveloptool: a compiled binary is available in the official rockchip-linux rkbin github repository. Unplug the power cord from the tv box Plug an end of an USB Male-to-male cable into the OTG port (normally it is the lone USB port on the same side of the Ethernet, HDMI, analog AV connectors) while pressing the reset microbutton with a toothpick. You can find the reset microbutton in a hole in the back of the box, but sometimes it is hidden into the AV analog jack Plug the other end of the USB Male-to-male cable into an USB port of your computer If everyting went well, using lsusb you should see a device with ID 2207:320b Run sudo rkdeveloptool wl 0x4000 u-boot-main.img (download u-boot-main.img.xz , don't forget to decompress it!) Unplug the power cord Now you can follow the instructions on how to install on eMMC/NAND via SD card, just use instead an USB stick to do all the operations and plug it into the USB OTG port. Once you reboot, USB OTG port will be used as a boot device. NOTE: NAND users without SD slot may be unhappy to know that it will be difficult to do extra maintenance with Multitool in case something breaks in the installed Armbian system: installing u-boot-main.img makes the installed system unbootable because it is missing the NAND driver. Alternative backup, restore and erase flash for EXPERTS: These backup, restore and erase flash procedures are for experts only. They are kept here mostly for reference, since the Multitool is perfectly able to do same from a very comfy interface and is the suggested way to do maintenance. Backup: Obtain a copy of rkdeveloptool: a compiled binary is available in the official rockchip-linux rkbin github repository. If you prefer, you can compile it yourself from the sources available at official rockchip repository Unplug the power cord from the tv box Plug an end of an USB Male-to-male cable into the OTG port (normally it is the lone USB port on the same side of the Ethernet, HDMI, analog AV connectors) while pressing the reset microbutton with a toothpick. You can find the reset microbutton in a hole in the back of the box, but sometimes it is hidden into the AV analog jack Plug the other end of the USB Male-to-male cable into an USB port of your computer If everyting went well, using lsusb you should see a device with ID 2207:320b change directory and move into rkbin/tools directory, run ./rkdeveloptool rfi then take note of the FLASH SIZE megabytes (my eMMC is 8Gb, rkdeveloptool reports 7393 megabytes) run ./rkdeveloptool rl 0x0 $((FLASH_SIZE * 2048)) backup.data (change FLASH_SIZE with the value you obtained the step before) once done, the internal eMMC is backed up to backup.data file Restore: first we have to restore the original bootloader, then restore the original firmware. Running rkdeveloptool with these switches will accomplish both the jobs: ./rkdeveloptool db rk322x_loader_v1.10.238_256.bin Downloading bootloader succeeded. ./rkdeveloptool ul rk322x_loader_v1.10.238_256.bin Upgrading loader succeeded. ./rkdeveloptool wl 0x0 backup.data Write LBA from file (100%) Download here: Erase the flash memory: clearing the internal eMMC/NAND memory makes the SoC look for external SD Card as first boot option. If there isn't any suitable SD Card, the SoC enters maskrom mode, which can then be used for full eMMC/NAND access using rkdeveloptool. This is perfectly fine if your box has an eMMC flash memory. NOTE: In case you have a NAND flash memory this option is however discouraged. The original bootloader contains some special parameters to correctly access the data. Clearing the flash memory will probably garbage the NAND data and restoring the bootloader may require some special instructions. Obtain a copy of rkdeveloptool: a compiled binary is available in the official rockchip-linux rkbin github repository. If you prefer, you can compile it yourself from the sources available at official rockchip repository Unplug the power cord from the board Plug an end of an USB Male-to-male cable into the OTG port (normally it is the lone USB port on the same side of the Ethernet, HDMI, analog AV connectors) while pressing the reset microbutton with a toothpick. You can find the reset microbutton in a hole in the back of the box, but sometimes it is hidden into the AV analog jack Plug the other end of the USB Male-to-male cable into an USB port of your computer If everyting went well, using lsusb you should see a device with ID 2207:320b run ./rkdeveloptool ef and wait a few seconds once done, the internal eMMC is erased and the device will boot from the sdcard from now on Partecipation and debugging: If you want to partecipate or need help debugging issues, do not hesitate to share your experience with the installation procedure of the boxes. In case of issues and missed support, provide as many as possible of these things is very useful to try and bring support for an unsupported board: some photos of both sides of the board. Details of the eMMC, DDR and Wifi chips are very useful! upload the device tree binary (dtb) of your device. We can understand a lot of things of the hardware from that small piece of data; and alternative is a link to the original firmware (you can do a full backup with the Multitool); dmesg and other logs (use armbianmonitor -u that automatically collects and uploads the logs online) attach a serial converter to the device and provide the output of the serial port; Critics, suggestions and contributions are welcome! Credits: @fabiobassa for his ideas, inspiration, great generosity in giving the boards for development and testing. The project of bringing rk322x into armbian would not have begun without his support! Justin Swartz, for his work and research to bring mainline linux on rk3229 (repository here) @knaerzche for his great contribution to libreelec support and mainline patches @Alex83 for his patience in testing the NAND bootloader upgrade procedure on his board @Jason Duhamell for his generous donation that allowed researching eMCP boards and esp8089 wifi chip
- 2876 replies
-
22
-
DISCLAIMER (PLEASE READ): everything you can find in this thread (binaries, texts, code snippets, etc...) are provided AS-IS and are not part of official Armbian project. For this reason not people from Armbian project nor myself are responsible for misuse or loss of functionality of hardware. Please don't ask about support or assistance in other non-community forums nor in the official Armbian github repository, instead post your questions in this thread, in the TV Boxes forum section (hardware related) or in the Peer-to-peer support section (general linux/software related). Thank you! This is CSC Armbian for XT-Q8L-V10 boards, also known as Chiptrip Q8, Vsmart Q8, ENY 3288 Q8, etc... All source code has been merged into Armbian mainline project. I still keep my personal public Armbian fork for experimental features: https://github.com/paolosabatino/armbian-build Nightly images: download directory Quick installation instructions on eMMC: Build or download your preferred Armbian image from Download directory and a copy of the Multitool; Burn the Multitool on an SD card; once done, place the Armbian image in images folder of the SD card NTFS partition; Plug the SD card in the TV box and plug in the power cord. After some seconds the blue led starts blinking and the Multitool appears; OPTIONAL: you can do a backup of the existing firmware with "Backup flash" menu option; Choose "Burn image to flash" from the menu, then select the destination device (usually mmcblk2) and the image to burn; Wait for the process to complete, then choose "Shutdown" from main menu; Unplug the sd card, then push the power button for 1 second (the led will turn blue) After 10 seconds HDMI will turn on and you will get logging messages; On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user Run armbian-config to configure timezone, locales and other personal options Congratulations, Armbian is now installed! Boot from SD Card/USB stick (with Armbian already installed in eMMC, empty eMMC or no eMMC😞 Build or download your preferred Armbian image from Download directory; Burn the image on your SD card/USB stick; Plug the SD card/USB stick in the device; Push the power button for 1 second (the led will turn blue); After 10 seconds HDMI will turn on and you will get logging messages; On first boot you will be asked for entering a password for root user of your choice and the name and password for a regular user Run armbian-config to configure timezone, locales and other personal options Congratulations, Armbian is now installed! Boot from SD Card/USB stick (with original firmware or other firmware): In case your box has the original firmware installed, use the Multitool to erase the internal flash. Don't worry, you will not brick your box: once the eMMC is emptied, the box will automatically boot from SD Card. This is called Maskrom mode and is common to all Rockchip devices. Instructions and download links for the Multitool are at the bottom of this post. After erasing the internal eMMC, just follow the "Boot from SD Card" procedure above and then you are fine. Boot priority: Newer images (those with mainline kernel >= 4.14.50) now support booting from multiple devices. Priority is fixed and boot devices are probed in this order: External SD card External USB storage device (Any USB Stick/Hard drive attached to USB host ports) Internal eMMC This way even if you install armbian to internal eMMC, you can still easily test different images booting from external devices. Experts notes: when armbian is installed into eMMC you get U-boot installed too in eMMC. This is important to know because the box won't boot in Maskrom Mode, but instead will always boot the embedded U-boot, no matter if you put an sdcard/usb stick. In practice the embedded U-boot is totally responsible for the boot priority. If you want to restore the Maskrom Mode, just erase U-boot from eMMC using this command: dd if=/dev/zero of=/dev/mmcblk2 seek=64 count=8128 conv=sync,fsync Current status: Wireless: works. pretty fast and stable, signal is strong on my box; Bluetooth: works. I was able to transfer files and stream audio without problems USB ports: works, with autosuspend too. A quick benchmark show that transfer rate is quite good (topped at 34 MB/s) USB OTG: works in host mode. Transfer rate is very good (> 40 MB/s) MMC: works and is perfectly accessible as storage device. The images above with "eMMC friendly" have been tested and work when installed in eMMC using the standard armbian-config eMMC installer SDCard: works. legacy kernel is limited to high speed, while mainline works fine in UHS mode too. A quick benchmark with a Samsung EVO card shows the promised 48Mb/s read speed. Gigabit Ethernet: works, fast and reliably HDMI: works perfectly Serial: works Audio: both HDMI audio and SPDIF connector works IR remote: works on legacy and mainline kernels Reboot/Suspend process: rebooting the device is a working in progress, at the moment sometimes it works and sometimes it doesn't. Suspend is still not available. Hardware acceleration: everything which works for rk3288 boards applies here too. This guide or maybe the Media Testing Script will help you gain an hardware accelerated X11 and Chromium (using GL4ES I enjoyed Quake 2 from the start till the end, but also Quake and Quake III Arena work flawlessy, here a quick how-to to compile and install GL4ES) Multimedia: On mainline kernel 3D acceleration is provided by Panfrost driver and is already enabled. Hardware video decoding: https://forum.armbian.com/topic/19258-testing-hardware-video-decoding-rockchip-allwinner/ Multitool: The Multitool is a small but powerful tool to easy operate on internal eMMC flash of RK3288 devices. Features: Backup the content of internal eMMC Restore a previously backed-up image to eMMC Erase the eMMC (via fast blkdiscard or zero-fill as fallback) Burn an Armbian (or LibreELEC) image directly on the eMMC Provide a recovery shell for manual maintenance Windows-friendly: everything is placed in a NTFS partition Image compression format autodetection: they are decompressed on-the-fly during burn process Network support for remote maintenance via SSH (instructions to access via network here) Instructions are simple: Download the image from here Burn it on an sdcard Open the NTFS partition with your preferred file manager Place the images you want to burn on the device in images directory (backups will be stored in backups directory) Plug the sd card in the RK3288 device Power the device and wait few seconds, the Multitool menu will appear on screen and can be navigated with the keyboard Last edit: 07/06/2020 - updated installation instructions