Odroid C4 and UAS driver

Ok, I tried it for the second time and I got:
Kernel md5 failed and system md5 failed.

You must have corrupted file for some reason.
Yes, put file in update folder and reboot.

cd /storage/.update
megadl https://mega.nz/file/eM5yzZ7B#lSpLaXQvfLpLxS3OLADCgTmljzfnBTdbS5BJSw-xqD8
reboot
1 Like

Ok, it turned out my FTP client corrupted the file and I used a different one to copy the file.

The write tests results:
Without UAS
CoreELEC:~ # dd if=/dev/zero of=/var/media/CR/speed.test bs=1M count=8000
8000+0 records in
8000+0 records out
8388608000 bytes (7.8GB) copied, 35.110141 seconds, 227.9MB/s

With UAS
CoreELEC:~ # dd if=/dev/zero of=/var/media/CR/speed.test bs=1M count=8000
8000+0 records in
8000+0 records out
8388608000 bytes (7.8GB) copied, 26.322702 seconds, 303.9MB/s

Thanks a lot @vpeter

Can you run this command and post link you get? First please reboot to get clean state. And drive must be attached.

dmesg | paste

Here:
http://ix.io/3LDe

@vpeter will automatic update override your UAS settings? I still get update available notification even though I turned it off.

You need to use my special image if you want to use UAS. Default images doesn’t have enabled.

Ok, that’s what I thought. Thanks.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.

@vpeter would it be too much if I asked you to concoct a UAS enabled version of Matrix stable version for Odroid C4 like the one you did with 9.2.8 version for me before? Thanks.

Here it is.

1 Like

Thanks a lot, much obliged.

1 Like

@vpeter
Kernels built with UAS=Y or even UAS=M with a UAS-capable drive as bootup drive will freeze during init and has no interactive console through UART to debug. After some digging I found even when a driver is built as a split module instead of built-in it will still be included in the initramfs, and then be loaded during init if needed. The module however, can’t be loaded for wierd reason and freezes inits as a result.

Some manual tweaks and I found a workaround: avoiding uas driver entirely before sysroot is mounted. Having kernel+system images on sd and storage partition on uas drive does the trick.

I’m guessing UAS is disabled by default due to this, and Amlogic didn’t test nor wanted to support this since the use cases for a UAS drive on Android TV box is not that demanding. There’s also a lot of fixes made to uas.c after 4.9 was branched from mainline Linux, so I don’t think uas support in Amlogic’s 4.9 kernel is that robust.

Do you have any idea why loading uas driver during init would freeze the system entirely? Or what should I do to at least get more logs from UART?

Last time I check booting worked just fine.

But from what I read there can be multiple issues with UAS driver and that’s why we decided to not include it. It is safe for wider audience. And if some user really want it self build is possible.

1 Like

Also with a UAS-capable drive as bootup drive?

No, I didn’t boot it from UAS drive.

Booting from non-UAS drive is also OK for me, the problem is when a kernel.img with UAS module is loaded from a UAS-drive. As long as uas need to be loaded during init to initialize the bootup drive, the kernel hangs and nothing helpful for debug can be gotten from uart.

Then you need to put uas kernel module to initramfs.

1 Like

Thanks, I thought the module was already included given it would also hang when uas is set to built-in and didn’t check the options here. Would test about it tomorrow.