Jump to content

Recommended Posts

Posted

I am trtying to keep my pcduino 3 nano alive. It has been working perfectly under a debian bullseye distro from Johan Gunarsson for 4 years and now I can't get the OTG to work under any release (bullseye, bookworm or trixie) I have explored many avenues, but even a plain manual setup of g_mass_storage doesn't work in a workable way. The drive appears in Windows Explorer after several minutes, and any copy or delete to that gadget drive takes ages (3+ minutes for a 12kb file) before it fails or succeeds silently.

 

I am looking for a forum where pcduino users can help each other.

 

Thank you,

Gaetano.

Posted
13 hours ago, Gaetano said:

under any release


Userspace has nothing to do with hardware features. I don't know what is the case for A20, but for many others, OTG functionality is driven with overlays. If there are no overlays, you need to edit device tree and change its role. If that doesn't help, it is more complex problem.

 

13 hours ago, Gaetano said:

The drive appears in Windows Explorer after several minutes

 

More complex, perhaps days / weeks to debug and fix. Most of (Armbian) kernel developers are long gone from this 10+ years old platform :( and users can't help.

Also look into previous builds. Finding out when this broke is half of the solution https://fi.mirror.armbian.de/oldarchive/

or by finding a kernel that works https://docs.armbian.com/User-Guide_Armbian-Config/System/#alternative-kernels With any userspace (trixie/noble/jammy ...)

 

13 hours ago, Gaetano said:

I am looking for a forum where pcduino users can help each other.

 

Probably all A10 and A20 boards share this problem.

Posted

Hi Gaetano,

 

Maybe the issue is with g_mass_storage rather than OTG USB? "The "dr_mode" property controls whether OTG acts a peripheral or host. By default this is set to OTG mode so you shouldn't need to change anything. In my case I prefer to have OTG set as host for which I have this simple overlay:

dts-v1/;
/plugin/;

/{
    compatible = "allwinner,sun4i-a10", "allwinner,sun7i-a20";

    fragment@0{

        target = <&usb_otg>;

        __overlay__{

            dr_mode = "host";

        };

    };

};

 

 I find it works ok for reading a USB stick. It could be that you have to instead change dr_mode = "peripheral" but seeing as it shows up as a drive this may not be necessary.

 

What kernel version are you currently?

 

Are there any errors that show up in the logs? sudo dmesg | tail -n 20

 

There is also usb_f_mass_storage however this would need to be manually added as it is not currently included by default within the list of installed modules (Well at least was not on the last build I ran)

 

 

Best of luck

 

Ryzer

 

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...

Important Information

Terms of Use - Privacy Policy - Guidelines