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
SOLVED: SSD Enclosures with Jmicron chips JMS580 and JMS583 don't boot up. RPi4. #266
Comments
Can confirm there is a similar issue with the JMS583 controller. |
I have exactly the same problem as above described. |
Please can you add screenshots showing the failure on the bootloader HDMI diagnostics screen or UART traces. |
You could try setting the |
Yes FREEZE_VERSION will prevent upgrades except for rescue image and because it's in the EEPROM will work if you swap SD cards. The most likely explanation is that the controller is fussy about exactly how long USB port power is off for and any delays during initialisation. However, we'd need screenshots / logs to confirm. N.B. Please can you also confirm that when booted from SD card the enclosure works reliably when mounted under Linux and will hotplug correctly if you connect/disconnect the cable without pressing any special power buttons on the enclosure? |
@timg236 This is it, but it's not Raspberry Pi OS. I can do it with it if you ask, this is HassOS. Is this ok? The disk enclosure Is visible when you boot Raspberry Pi OS and remember "If we plug the raspi on and after we connect the ssd, then it boots up." |
I add JMS578 too, to de list of controllers with the same issue. As being reported by other user. |
I just contacted Jmicron in case the need something to add, or they can help with the next message: When try to boot up from USB enclosure on a Raspberry Pi 4 your controllers JMS578, JMS580 and JMS583 are reported to be not working properly. I've open an issue in the Github page of the EEPROM firmware of the Raspberry Pi 4: There are many Raspberry Pi 4 users in world that would like to boot up with USB on a SSD and your chips are in many cases like ORICO (which I have two) or Kingspecs. As te result of your controller no working those brands and your brand is losing popularity over Realtech or ASM with apparently work better. Could you please investigate the issue and help the Raspberry Pi team to work on this problem? Thanks. |
I doubt this is anything to do with the JMicron chip because there are plenty of people on the forums using JMicron USB SATA adapters. Some of the older chips have issues with UAS but that's not relevant until Linux runs. |
Yes, SD card works! And cable SSD out and in again boot works. |
Please post links to the SSD enclosure. If it's still for sale and we should be able to get one for some interop testing in the new year. Please also confirm the exact EEPROM version that worked for you. It may be that a configurable timeout quirk could be added to support such devices. |
The one with the JMS583 chip https://www.amazon.nl/dp/B07QN2WFGB/ref=pe_19967891_404437601_TE_item |
Small investigation of my SSD (based on JMS583) |
I've got this bundle which I think its a really good quality/price: It uses JMS580 and a SATA m.2 SSD. |
@caro7372 I have this Orico enclosure with the JMS578 but it has the format of 2.5 inches disks. And it works perfectly to boot up with the Raspberry. Can you check with other ssd blade? Nevermind, you can not open your enclosure. |
Has anyone tried increasing the USB port power-off time by setting USB_MSD_PWR_OFF_TIME=5000 in the EEPROM config? This should look identical to a disconnect to the device. The default off-time may be less between 3rd September and subsequent releases. |
I will check and try! |
Well, this made the trick. I didn't make it 5000 I made it 0. Then it works. I've tried your 5000 suggestion but It didn't work. Solution: with the command "sudo -E rpi-eeprom-config --edit" you edit the EEPROM BOOTLOADER then you the next configuration: @timg236 I guess there is a reason for it. How much USB_MSD_PWR_OFF_TIME=1000 is necesary? Is it bad to have it at 0? Why is important to cut the power to the USB for some time before it boots? From release notes: The documentation can be found: |
@carras |
You get an SD-card with Raspberry Pi OS and boot with it. |
What I see know is that the 2020-10-28 has no stable release? After applying the USB ...... to 0 you reboot with or without the SD card in ( for the first time ? ). --> Okay, you nailed it. I was setting it on the wrong place. Once you pointed me in the right direction it is working!! |
USB port power is not guaranteed across a reboot, it goes away briefly on 2G, 4G during reset and for much longer on 8G. This is the same as a disconnect and for devices such as spinning hard drive enclosures, it's better to have a long power off than a short one. For an NVMe SSD it should be fine to have USB_MSD_PWR_OFF_TIME=0 because it will power on almost immediately. So changes to improve compatibility for spinning hard drive enclosures seems to be worse for some JMicron NVME adapters. There might be a common change which is good for both but NVME enclosures have been fairly low down the compatibility list because there's no performance benefit of USB SATA SSD |
2020-10-28 is the version number of a beta release. Stable releases are a subset of beta releases and default releases (and critical updates) are a subset of stable releases. Therefore, if you configure your system to track the beta releases you'll see all the images, some good, some bad. |
Yes, I understand that ( now ) but was a bit confused about Home Assistant 5.8 was setting it to 2020-10-28 although it now seems it was Beta. |
I released a new beta yesterday (12 Jan) which works with Oricio NVMe with Pi 4b R1.0, R1.1, R1.4 with/without USB_MSD_PWR_OFF_TIME set to zero. This will be the next stable release unless a major regression is found because the default configuration improves interop over 11th Dec release. N.B. The default Sep release does actually power off the ports but it looks as though the VLI is a little |
it worked for me, thanks! |
@sanyafifa Thanks for the test. Please could you update your comment to link to the USB device as well of the chipset? It helps others including RPi reproduce the setup in the future. |
Hello, I have a raspberry 3B+ with the Orico BH100, which as the: Until yesterday it worked fine, however after an update it won't boot anymore. also in my config.txt I already had and have: in cmdline.txt I have also tried changing the root=PARTUUID=85f65e63-02 to root=/dev/sda2. All to no avail. To be honest I am not sure how to reflash the eeprom back to 09-30 version, if that would help. The Orico drive now also has issues being recognized on my Mac; diskutil list shows no drive....(yesterday the mac first didn't find it, and then it does; the raspberry pi does see it clearly) |
A 3B+ does not have an EEPROM, so editing the EEPROM config will not do anything useful. |
I just figured that out ;-). Thanks for confirming that. |
That's because rpi-update (and the apt update mechanisms) is intended to maintain the image for all models of Pi, not just the one you are using. The only exception to this is if you are running an old image without Pi 4 support it won't add it - just in case the boot partition isn't large enough. |
Not sure if this is a good place to post or not. My issue is I use Home Assistant on the rpi-4 4 GB. My system boots off the SSD drive an has no issues with OS 5.2 any updates after this causes my system to freeze in 2 hours to 2 days. No useful information in the logs. CPU use rises, Memory, and everything else is normal. My Controller is a StarTech (USB3S2SAT3CB) and the SSD is a Kingston 120GB A400 SATA 3 2.5" Internal SSD SA400S37. Many comments in home-assistant/operating-system#1119. I am willing to help test. Let me know what addition information is needed and what I should try. |
testing |
That sounds like a Linux kernel update issue because the Linux kernel doesn't depend upon the bootloader USB stack. |
Hi guys a quick update (workaround) for those who own the Orico BH100 external SSD. This could potentially work for other models/brands as well. But it kind of defeats the purpose of this thread lol. Check out the gallery: http://imgur.com/gallery/plL1F0t I basically replaced the Jmicron controller with a ASM1153E bridge, it's super easy to do and works flawlessly. Open up the external case by removing the plastic tab on the front/back, slide out the SSD and detach the Jmicron controller. Plug in the ASM (of your choice) controller and slide back into the case. Mind you it's not secured in the case (need to figure out how to, but it's not necessary to do so). Jmicron is just not suitable in my opinion. |
The 3B+ doesn’t have a bootloader in SPI flash. This repo is specific to Pi4 |
Check out my answer... I have the Pi 4 but could be useful for you. |
Try the latest stable release (raspi-config advanced) 2021-01-16 if that doesn’t work raise a new bug. |
Any idea where I can ask for help? Thanks. |
Maybe it could be interesting for other users but I have also ORICO BH100 (JMicron 567) and encountered major issues trying to boot a Raspberry PI 3B+ with it. I think this drive may be poorly designed.
Conclusions???? maybe this is a faulty item? Or problems are related to USB on Linux? (as I mentined DuneHD probably has the same issues)? Or power problem with BH100 case (JMicron 567)? No idea.... Any hints? Final of the story... I replaced Orico BH100 with Kingston A400 120GB + IBox HD-05 (with JMicron 578 inside!) and it works fine. RPi 3B+ boots successfully even on Standard RPi power giving 2.5A. I even managed to enable FSTRIM on this disk but... hmmmm... it required downgrading firmware of the HD-05 case (JMicron 587) to 5.00.08 in my case (the process is to be found on the web)...
and after changing firmware to 5.00.88 it is....
and FSTRIM works! Now... I think I will try to replace JMicron in BH100 with ASM1153E as advised by @THX1180. |
@sstefanowski what version of VL805 firmware were you using on your latest test? |
Hi |
SOLVED: I’d been trying to get SSD to boot all day. Believe SABRENT enclosure is the problem.
Finally I saw articles suggesting SABRENT was the problem so I switched enclosure to a UGREEN enclosure I was using for another drive. Everything worked. I did come to realize that an intermittent green led that constantly flashes is not a sign that anything is wrong. I’m guessing it just means Pi is waiting for data. This would be different if it’s flashing 3x 4x 5x etc. But if it’s just flashing constantly then it’s ok. |
This can be solved using by appending the following argument to
Confirm with |
@tiagoboldt Yeah that's mentioned in the documentation here. |
I know this is quietly old but I still want to notice that JMicron chips do not work very well in many use cases. I just fell into the pit today.You may want to get a enclosure with rtl or asm chips instead. |
Yeah I gave up and wound up using nvme in a sabrent usb c case |
That's actually true, but those issues are only present when using USB 3. Think Raspberry Pi doesn't provide enough power (also with the official PS) to power the external NVMe and the PCIe bride. If you aren't in need for high transferrates just use USB 2, it's a bit slower, but works fine. @tablatronix @eebssk1 |
Might be incompatible instructions. Usb3/2 their difference are only max suppliable current. The disks use constant current when R/W. [Other information(off topic): It seems that JMS58* is incompatible with USB3.1 HUB that uses genesys logic chip. |
|
Hi there:
With the latest EEPROM firmware. I've try critical, stable and beta channels. My SSD enclosure from ORICO using the chip JMS580 from Jmicron doesn't boot up. And I've seen other people with the same issue with enclosure with JMS580.
If we plug the raspi on and after we connect the ssd, then it boots up.
And It was working before, but the latest critical and stable don't work now.
PD: I want to boot up HassOS form the SSD, but the implemented an auto firmware (EEPROM) update that it's always going to prevent me to use an older firmware.
Update: I add JMS578 too, to de list of controllers with the same issue.
TRY THIS SOLUTION:
Solution: with the command "sudo -E rpi-eeprom-config --edit" you edit the EEPROM BOOTLOADER then you the next configuration:
USB_MSD_PWR_OFF_TIME=0
The text was updated successfully, but these errors were encountered: