-
Notifications
You must be signed in to change notification settings - Fork 52
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
odroid hc1: SSD not seen after soft reboot #278
Comments
I have seen a similar issue with the odroid hc4 and hc2. I think it's just a general bug with the odroid kernel. The odroid kernel version used in armbian is very out of date and based on the upstream hardkenrel kernel. The one we use is the tobetter fork which is up to date but might have a couple issues like this one. I'll update the odroid kernel to the latest possible version today and we can check if that resolves the issue (hopefully). |
Unfortunately the latest kernel does not fix the issue. Armbian kernel (or should I say hardkernel kernel) is 5.4, still supported until December 2025. They publish updates, for example latest 5.4 is 5.4.238 and they have 5.4.230. But yes, it's old! With a newer kernel the board runs much cooler. Initially I thought that 6.2 fixed the issue because after updating the board (running 6.1) with the new image with 6.2 using push_image.bash and soft rebooting, the sda1 partition remained visible. But then, when I soft rebooted 6.2, the sda1 partition was not visible anymore. Some logs, where you can see the partition (sda1) disappearing after soft reboot and the disk itself changing from a 60Gb disk to a 0 sized disk.
|
@danyer asked on forums and issue boards, let's see if anyone has any ideas on how to fix. |
@danyer Could you please provide the Thanks! |
Hi @paralin , please find below the requested output. Meanwhile I've switched my armbian setup from LE: changed "does not reproduce anymore" with "does not reproduce there", because I've never seen it on Armbian.
|
@danyer Please test this out: I updated the kernel on master & updated the kernel config to be in-line with what armbian has.
Hopefully this resolves the issue, if not, I'll keep looking. |
@danyer according to odroid support:
Let's see if the latest updates fixed it & ill reply there. |
I've tested with master but same behavior :( I've seen a message in my email account (but I'm not seeing here) to try using odroid-xu-mainline branch which was a mainline kernel. With that one (actually with odroid-xu-mainline-test since I was not able to see odroid-xu-mainline) I was not able to get network connectivity. I used an USB-UART connection, got the root prompt, but no password works. Since I cannot log via ssh keys (no network) and also not via serial port (no password), I cannot debug further. |
@danyer yeah I edited my message here and changed the branch name since I realized that mainline didn't work properly from my tests. As far as I can tell, armbian runs mainline 6.1.x in the edge config. So I'm not sure why it would run any differently. Maybe one of the patches on the skiffos branch breaks something. |
@danyer I think the mainline kernel wasn't working due to me accidentally enabling compressed kernel modules. I fixed the test branch if you want to give it another go. I'll try it out today as well.
|
Sorry, it took longer to test since I've just updated my machine to Ubuntu 23.04 (beta) and in doing so I guess I invalidated ccache so the build took longer. Unfortunately the issue still reproduces.
|
@danyer I checked armbian and they are just using the regular mainline 6.1.x kernel. I don't think there's any reason why it would perform any differently on armbian vs. here. So that's quite confusing. |
@danyer if you do also, please check |
I realize how confusing it is. If you want I can give you ssh access to the odroid-hc1, maybe you can see more. |
@danyer do you see any differences in the dmseg output between when it works and doesn't? I noticed this:
Physical block size -> 0 bytes, that's not going to work. |
This is when it's working:
and this is when it's not
Unit not ready... It might be a timing issue because always after a soft reboot the drive disappears until the next hard reboot (poweroff/poweron), but while trying to capture the messages, it once managed to appear even after soft reboot. But this is like one in twenty, no more than that. |
@danyer I added 1 more commit on that branch which disables the UAS protocol for the Jmicron sata drive, maybe it fixes the issue:
... should be all that's needed to apply the change. Let's see if that fixes it. Beyond that I don't have any ideas at the moment. Alternatively you can try applying the quirk by removing and inserting the module:
|
I've tried the new build and the disk is not recognized after soft reboot. This time the sda doesn't appear anymore, but I guess this is a feature of usb-storage (if there is no disk, don't display it) versus uas where if there is no disk, display it nevertheless, maybe someone with hotplug it...
and
Thank you very much for your help, I don't want to waste your time anymore!
maybe it will work. Thanks again, |
@danyer OK I will drop the commit adding the quirk since it doesn't work. Note that you will need to delete the file from your workspace as well as buildroot copies the root_overlay and doesn't know to remove the files:
|
@danyer The odroid developers said they don't know why this is happening 😆 so I guess we are on our own here. |
I have a hc1 with a ssd running home-assistant OS. they're also using buildroot & stock kernel. Could there be something there? https://github.com/home-assistant/operating-system |
@danyer @DavyLandman The main difference I see is they use the exynos defconfig, try this commit (latest master):
|
The other thing is using Uboot 2023.x instead of 2017.x. Mainline u-boot supports it with odroid-xu3 config. I also updated to use kernel 6.3.0 and dropped a lot of patches that probably were not needed. Tested on my odroid HC2 + xu4, but I don't have an SSD to test the particular issue mentioned here Latest version: 17f6685 |
I'm still waiting on my next hc1/2 to arrive, so I cannot test this, but thanks for trying to get it aligned to their config. I hope @danyer has time to test it out? |
I am on holiday right now so I cannot test...
…On Thu, May 4, 2023, 14:07 Davy Landman ***@***.***> wrote:
I'm still waiting on my next hc1/2 to arrive, so I cannot test this. I
hope @danyer <https://github.com/danyer> has time to test it out?
—
Reply to this email directly, view it on GitHub
<#278 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAJBOUB5B3E434446QWCQ6TXEOEXNANCNFSM6AAAAAAWGKWEQQ>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
I'm going to assume this is fixed as of release 2023.02.1 due to the update to U-boot 2023.02 and the updates to the 6.3.x kernel. Everything is at the latest version now. Feel free to message here if it's still an issue and I'll reopen! |
As the title says, on Odroid HC1 the SSD is not visible after the board is rebooted via
reboot
command.If it is powered off via
poweroff
and the power brick is physically removed from the socket and reinserted, the board boots again and sees the SSD.Since I want to install this somewhere remote, the manual power workaround doesn't seem feasible.
The SATA bridge firmware is updated to the latest version (the one from 2019) and the issue does not happen if using Armbian (kernel 5.4.230) while using it for over one year.
Maybe a kernel patch for 6.1 is missing?
During search, a similar issue was found here: https://forum.armbian.com/topic/15611-odroid-hc1-and-kernel-54-soft-reset-makes-the-sata-drive-disappear/ with the same error message "Unit not ready".
I am planing to use the "persist" partition on SSD instead of the "persist" partition on the SD card. It is pretty easy to do this since the mount-all.ssh script looks for
LABEL=persist
so I just need to mislabel the partition on SD card and apply the correct label to the (one and only) partition on the SSD.One workaround would be to power off SATA bridge after the SSD is unmounted (during reboot) and hopefully this will work. I found different ways to achieve it (in theory), but I did not try any.
The text was updated successfully, but these errors were encountered: