If the OPL and wLE have got common USBHDFSD module then it shouldn't be problem with the module, am I right?
Not really. OPL doesn't use the modules in the same way that normal software do. There's also this long-running problem, whereby something gets stuck during initialization of the USB device.
The PS2 has a CPU that is dedicated for I/O, known as the IOP. It provides an interface with the peripheraps, and so we load our software drivers on it. The IOP is also always reboot at the beginning of each program, so that compatible modules can be loaded in.
However, since we want to load a game from a USB device, this means that the USB device has to be accessible for the game's ELFs to be loaded. Which requires it to exist in memory during more of the PS2's boot phases. So the USB modules are loaded many times, repeatedly. If your device always had some potential issue with getting recognized, then the odds of getting stuck after a reboot is suddenly so much higher.
I'm not a programmer, but I've inspected the commits of the OPL. Since the problems have started somewhere with May-June time frame, I've found such a thing:
https://github.com/ifcaro/Open-PS2-Loader/commit/18780d5a2100dd2e0de73afe80f80275cc1b545c
Could it be the source of the problems? If someone would be able to provide me the build from this commit and the one preceding it, I could test it.
The recent changes were to relax the restriction on the transfer lengths, by breaking up transfers at the USB transfer function instead of at the SCSI layer; Transfers over USB are still restricted to units of 4KB, due to the USB 1.1 spec. So it's not really something new, but we're just doing things in a different order.
The code is also likely working fine, for probably a lot of other people. Otherwise, the situation should be reversed: we would probably find it incredibly difficult to find devices that will work reliably with the PS2, with the new software design.
Since the change most greatly affects long transfers, we should also expect long transfers (i.e.g file copying) to fail easily. But for reasons, it affects detection of games in OPL. I am not really sure what to make of this. It is not so easy to understand either, as OPL will also just display an empty list, upon encountering any I/O errors with the device.
For your case: if you use an older version of the USB driver code, you will probably be right to say that it'll work. But if it does, it likely starte dworking again, as a product of sheer coincidence. Especially if it is unrelated to this software issue.
There is no problem with detecting the USB HDD in OPL. Problem is with loading the game, as it hangs on the golden or black screen.
I'm suggesting that it might not really a freeze that you cannot work around.
But, you're free to believe what you want though. It is a fact that I have no direct solution for you and neither do I know why it happens, but I can only share my experience with some incompatible USB devices, with you. Maybe someday, somebody who can actually work with the USB spec can help to debug this properly.
The recent problems have different symptoms, so I don't think you are having the same problem. It seems like some people suddenly have issues with getting OPL to detect their USB device. It seems to affect some people and has no known way to work around. The interesting part is that it also seems to come and go, even when unrelated changes are made.
However, I cannot tell whether it is really a USB-related issue or an OPL issue. It's a bit sad, but a lot of bugs are auto-magically associated with OPL because it is one of the most popular pieces of PlayStation 2 software at the moment, although the PS2SDK is used for building PS2 homebrew software in general.
I'm certainly not affected, regardless of the PS2 models or USB device I use. And so, I have this feeling it might be hardware-related.
As for OPL getting stuck between IOP reboots: I did look into it in 2011:
https://github.com/ps2dev/ps2sdk/issues/74
However, I don't know why we have some values. But yet the value I used in 2011 was found by trial and error, and is significantly higher than even the Sony value. So something else might be wrong, something I do not understand.
Until then, a workaround is to disconnect and reconnect the USB device.