I manually compiled the kernel and OS, then burned the image using PhoenixCard, which lets me boot (only when I burn the image in ‘Startup mode’). However, NVMe doesn’t work, and I can’t replicate this setup on a Linux host. Flashing the SD card requires rebooting to Windows, which is a hassle. Are there any alternative tools for burning images on Linux? Trying to run PhoenixCard with Wine was not successful. I tried running OpenixCard on Linux and converting Allwinner images into namal one manually(then using dd), but GPT gets corrupted and it doesn’t boot. Any suggestions?
Burn Image to SDcard/NVME in Linux
Unfortunately, there is currently no dedicated software available in Linux for flashing images to an SD card for Allwinner chips. However, we are working on creating images that can be directly flashed using tools like Etcher. If your current development focuses mainly on the kernel, you can use the dd
command to copy boot.img
separately to the boot partition.
Thanks for your response @feng
It seems a good advice will give it a try, but for anyone else interested for a cross platform solution, here it is an unofficial convertor phoenix2img.py.
You can convert the image into a proper regular one
I appreciate you sharing the unofficial converter phoenix2img.py for those interested in a cross-platform solution. This will be very helpful for others who need to convert images into a proper regular format.
I have tried using the abovementioned phoenix2img.py script to create a dd-able image of the image at (https://mega.nz/file/orhjnTBZ#4Dm8xYIwVrYC1NxUrYZp7t5KKM7Ht44Qb4nMyozaRes), but I just get a boot loop.
The serial console shows the following:
[08.141]sunxi flash init ok
get value error
[08.161]Loading Environment from SUNXI_FLASH... OK
[08.179]Fail to get de's irq!
[08.181]sunxi_de_get_disp_sys:Get top udevice fail!
[08.219]failed to request regulator(power0-supply): -22
[08.224]failed to request regulator(power1-supply): -22
[08.229]failed to request regulator(power2-supply): -22
dsi1@5508000: detailed mode clock 70000 kHz, flags[5]
H: 0800 0818 0836 0854
V: 1280 1300 1304 1314
bus_format: 0
[08.382]irq no:127
[215]HELLO! BOOT0 is starting!
[219]BOOT0 commit : 33d8db429a
[223]periph0 has been enabled
i.e. it then loops back to the initial boot output “HELLO! BOOT0 is starting!”
Any ideas?
I was also unable to get into the u-boot console. It seems unnecessary to set bootdelay=0
, surely?
I have a same question, The reason is that it was powered using a USB port. Change to use a 5V 2A charger.
I will test that, thank you. This is very unfortunate, if that is the solution. I was counting on being able to power it from a computer and use the OTG feature of hte USB port.
I was able to boot with this file from https://mega.nz/file/g7AWVBZJ#xkDOIJYHvgUngdKUgW7D_aSaVPifyYZDOG0fUOtgAMk, but it’s limited to 8 GB of storage, and there were issues with the GPT partition table. I’m not sure what the problem is. Anyway, I wouldn’t recommend using this unofficial tool since there are multiple issues. Don’t expect it to work all the time.
To confirm this. The same SD card that failed to boot previously when powered from an Anker USB3 powered hub booted perfectly when powered using a Raspberry Pi 5V 3A USB-C power supply.
The thermal indicators climbed fairly quickly to around 64C:
root@localhost:/sys/class/thermal# cat thermal_zone*/temp
63765
63895
62855
62855
62920
58300
And crept higher towards 65C, until I disabled 7 of the 8 cores using chcpu -d 1,2,3,4,5,6,7
. Then it settled around 60C again:
cat thermal_zone*/temp
60775
61165
60515
60515
61100
57200
What you said is correct. Although this script can convert Allwinner’s image, it does indeed cause issues with the partition table. However, the impact is not significant. We can use some tools to fix the partition table, which can be helpful for those who prefer not to use Allwinner’s Phoenixcard tool.
I suspect that changing the boot commandline to limit maxcpus=1
might enable the board to boot on a “common” PC usb port. Will test it out and feedback in due course.
I encountered some issues while flashing the SSD. It wasn’t successful, and I suspect some configuration changes might be needed. Apparently, there’s a MUX switch on the board that allows either the SSD or the USB 3.0 port, but not both simultaneously. I’m not sure how to enable the SSD properly.
Looking at the logs, it seems that the NVMe SSD is detected but fails to load correctly. I also noticed in the documentation that the SPINOR flash file was removed—perhaps it’s still unstable and requires further development. Any news on SSD support?
Another strange issue occurred when I fixed the partition table and expanded the disk. After doing so, the board no longer boots from the SD card. Additionally, even when flashing with PhoenixCard, I end up with another large partition filling the entire disk (but not the root partition). Does anyone know how we can configure a root partition larger than 8GB?
Thanks in advance!
The software in the current documentation has SSD enabled by default. Regarding the expansion of the root filesystem partition you mentioned, you may need to perform the operation on a PC. The specific steps are as follows:
- Remove the last non-root filesystem partition (possibly
/dev/sdb5
). - Update the partition table (including the backup partition table).
- Run the
parted
command to resize the partition:
bash
resizepart 4 100%
- Run the
resize2fs
command to resize the filesystem:
bash
resize2fs /dev/sdb4
(Before this, the system may prompt you to run the e2fsck
command to check and repair the filesystem).
Here is the partition information after the changes:
mmcblk0 179:0 0 119.4G 0 disk
├─mmcblk0p1 179:1 0 32M 0 part
├─mmcblk0p2 179:2 0 16M 0 part
├─mmcblk0p3 179:3 0 64M 0 part
└─mmcblk0p4 179:4 0 119.2G 0 part /