With this method, my bpi_m2u was able to normally run for 10 days since last manually restart. Many thanks to @charles. He suggested me the right way to work out this method.
This method is unofficial because @sinovoip or any other stuff of bpi_m2u maker never give any solution to solve instability problem, but instability seems to be a common problem among customers. See frequent-freeze-ups-of-m2u and what-can-i-do-with-a-defect-board.
#Principle We have to tweak frequency of ram in sys_config.fex. Someone says the default frequency of ram is to high(648MHz). The max frequency shoud be 576MHz. See http://www.cnx-software.com/2017/05/29/banana-pi-bpi-m2-berry-allwinner-v40-development-board-allwinner-business-units-sdksoftware-management/#comment-542610.
Besides frequency, voltage should also be tweak a litte higher. See frequent-freeze-ups-of-m2u.
#Solution The frequency of ram and voltage can only be tweaked by changing their values in sys_config.fex of source code, compiling the source code and writing it to SD card.
##Step 1. (I have pushed my revised source code to facat/BPI-M2U-bsp, you may skip this step)
First, you have to fetch kernel source from official code repository. At the time this article is written, it’s 3.10.65 version.
Go to sunxi-pack/allwinner/azalea-m2ultra/configs
. You will see 7 folders.
I recommend you edit sys_config.fex in each of these folders.
For example, go to BPI_M2U_720P and edit sys_config.fex with any editor you like.
Replace
dcdc2_vol = 1001160
dcdc3_vol = 1001100
dcdc4_vol = 1100
dc5ldo_vol = 1100
with
dcdc2_vol = 1001280
dcdc3_vol = 1001150
dcdc4_vol = 1160
dc5ldo_vol = 1200
This is for tweaking voltage of ram.
Also, replace
dram_clk = 648
with
dram_clk = 576
This is for tweaking frequency of ram.
#Step 2.
Compile the source code as described in BPI-M2Ultra_Compiler_SOP.pdf
When choosing what to compile, choose 1. Build all, uboot, kernel, and pack to download images.
#Step 3.
Write new images bach to your SD card as described in BPI-M2Ultra_Compiler_SOP.pdf
!Important: You must write back files in 100MB, BPI-BOOT-bpi-m2u.tgz and 3.10.65-BPI-M2U-Kernel.tgz. Do it as the pdf file says.
###For those who are not good at compiling kernel, I supply my kernel (my BPI-M2U kernel image).