OESF Portables Forum
Everything Else => Desktop Operating Systems Issues => Zaurus General Forums => Archived Forums => Linux Issues => Topic started by: raybert on November 29, 2005, 11:40:11 am
-
Howdy,
I recently discovered that Linux Kernel 2.6.14 breaks usbnet transfers from the Zaurus.
Specifically, I was using 2.6.14-1 from the Fedora Core 4 update server with a C860.
The first problem I noticed was that my connection hung when trying to enter a certain directory using samba (while browsing from my PC). Some directories worked fine and some hung.
I next noticed that certain file transfers would hang, regardless of the protocol (I tried scp, ftp, and samba). Some files transferred just fine, others hung.
I eventually determined that any file with a size >= 1458 bytes would hang. Any file with a size smaller than this transferred just fine.
Additionally, I'm assuming that the directory browsing issue is related to the number of entries in the directory and, therefore, the size of the directory contents transfer.
When I rebooted into kernel 2.6.12, everything worked fine again.
I later determined that kernel 2.6.13 is also fine.
I tried google'ing some kernel activity to try and find the cause and found some interesting stuff but nothing conclusive. I noticed that the kernel guys are still mucking around with usbnet: they've been engaged in a massive refactoring of that module since at least 2.6.11 (which I earlier discovered (https://www.oesf.org/forums/index.php?showtopic=14672&hl=kernel#) completely broke connectivity with the C860). I noticed one comment regarding the implementation of some sort of "hard mtu" feature which sounded somewhat suspicious to me. I haven't researched this any further though so it may be a red herring.
The latest stable kernel release is 2.6.14-3 (Fedora's latest is 2.6.14-1) so it's possible it's been fixed in -2 or -3 but I haven't been able to try them and I haven't seen any patch that addresses this issue (but I haven't looked really well yet either). The ChangeLogs for -2 and -3 don't mention anything that sounds related.
So, if you're a Linux & Zaurus user, I would recommend that you avoid 2.6.14 and try later versions with caution.
~ray
-
I've been using 2.6.14 on Gentoo for about 2 weeks now and regularily copy about 500Mb to/from the Z daily using usbnet. I haven't had any problems, but I use scp and ssh rather than samba.
Did yuo roll your own kernel or are you using a stock fedora one? I always roll my own, so maybe the fedora crew left out something that needs to be in there.
Stu
-
Howdy,
I recently discovered that Linux Kernel 2.6.14 breaks usbnet transfers from the Zaurus.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=105409\"][{POST_SNAPBACK}][/a][/div]
I have the same problem on debian 2.6.14. Damn.
-
I've been using 2.6.14 on Gentoo for about 2 weeks now and regularily copy about 500Mb to/from the Z daily using usbnet. I haven't had any problems, but I use scp and ssh rather than samba.
Did yuo roll your own kernel or are you using a stock fedora one? I always roll my own, so maybe the fedora crew left out something that needs to be in there.
Stu[div align=\"right\"][a href=\"index.php?act=findpost&pid=105502\"][{POST_SNAPBACK}][/a][/div]
Stock FC4 kernel. scp (and ftp) failed for me in addition to samba.
It sounds like debian 2.6.14 has the same problem though. So maybe Gentoo left the offending patch out?
~ray
-
The problem lies in the usbnet module. Since kernel 2.6.14 the module is split up in several sub-modules. The module needed to talk to your zaurus is now 'cdc_subset' in stead of 'usbnet'. It works perfectly fine after adjusting this.
-
You have to select one option more to get usbnet working with Zaurus.
config USB_NET_ZAURUS
tristate "Sharp Zaurus (stock ROMs) and compatible"
depends on USB_USBNET
select USB_NET_CDCETHER
select CRC32
default y
help
Choose this option to support the usb networking links used by
Zaurus models like the SL-5000D, SL-5500, SL-5600, A-300, B-500.
This also supports some related device firmware, as used in some
PDAs from Olympus and some cell phones from Motorola.
If you install an alternate image, such as the Linux 2.6 based
versions of OpenZaurus, you should no longer need to support this
protocol. Only the "eth-fd" or "net_fd" drivers in these devices
really need this non-conformant variant of CDC Ethernet (or in
some cases CDC MDLM) protocol, not "g_ether".
It's in:
- Device drivers
- USB support
- USB Network Adapters
- Multi-purpose USB Networking Framework
- Sharp Zaurus (stock ROMs) and compatible
-
The problem lies in the usbnet module. Since kernel 2.6.14 the module is split up in several sub-modules. The module needed to talk to your zaurus is now 'cdc_subset' in stead of 'usbnet'. It works perfectly fine after adjusting this.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=105609\"][{POST_SNAPBACK}][/a][/div]
I rmmod zaurus, cdc_ether and usbnet and then modprobe cdc_subset. The problem remain.
-
The problem lies in the usbnet module. Since kernel 2.6.14 the module is split up in several sub-modules. The module needed to talk to your zaurus is now 'cdc_subset' in stead of 'usbnet'. It works perfectly fine after adjusting this.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=105609\"][{POST_SNAPBACK}][/a][/div]
A minor point but: If I'm not mistaken, the usbnet split happened in 2.6.11 or earlier. 2.6.11 completely broke usbnet connectivity with C860s (specifically) as a result of these changes. (This was fixed by 2.6.12.)
~ray
-
You have to select one option more to get usbnet working with Zaurus.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=105668\"][{POST_SNAPBACK}][/a][/div]
Fedora has always maintained support for the Zaurus by setting all of the applicable kernel configs, so I'd be surprised if they missed any new ones (although, anything's possible). I'm running 2.6.12 here at work and it's kernel config includes:
CONFIG_USB_ZAURUS=y
CONFIG_USB_CDCETHER=y
CONFIG_USB_USBNET=m
I'll check 2.6.14 later...
~ray
-
The problem lies in the usbnet module. Since kernel 2.6.14 the module is split up in several sub-modules. The module needed to talk to your zaurus is now 'cdc_subset' in stead of 'usbnet'. It works perfectly fine after adjusting this.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=105609\"][{POST_SNAPBACK}][/a][/div]
I rmmod zaurus, cdc_ether and usbnet and then modprobe cdc_subset. The problem remain.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=105672\"][{POST_SNAPBACK}][/a][/div]
Your signature says you use Debian. If you use stock kernels in stead of custom ones, try linux-image-2.6.14-2, since 2.6.14-1 didn't work out of the box.
-
As promised, these are the config options in FC4, 2.6.12-1.1637:
CONFIG_USB_USBNET=m
CONFIG_USB_NET_ZAURUS=m
CONFIG_USB_NET_CDCETHER=m
I think that CONFIG_USB_NET_ZAURUS was the one that Hrw was concerned with and it is there.
Since my last post, Fedora has posted an updated release of 2.6.14 (2.6.14-1.1644). The announcement only mentions security updates. I'll install and try it a little later and post my results.
~ray
-
The problem lies in the usbnet module. Since kernel 2.6.14 the module is split up in several sub-modules. The module needed to talk to your zaurus is now 'cdc_subset' in stead of 'usbnet'. It works perfectly fine after adjusting this.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=105609\"][{POST_SNAPBACK}][/a][/div]
Hello,
I've tried the module manipulation but my zaurus still stalls on scp. My zaurus module shows its using cdc_ether, from I read here, I need to get it to use cdc_subset? How do I do that? Can someone recommend a build change to "adjust" this?
Thanks,
-
The problem lies in the usbnet module. Since kernel 2.6.14 the module is split up in several sub-modules. The module needed to talk to your zaurus is now 'cdc_subset' in stead of 'usbnet'. It works perfectly fine after adjusting this.
[div align=\"right\"][a href=\"index.php?act=findpost&pid=105609\"][{POST_SNAPBACK}][/a][/div]
Hello,
I've tried the module manipulation but my zaurus still stalls on scp. My zaurus module shows its using cdc_ether, from I read here, I need to get it to use cdc_subset? How do I do that? Can someone recommend a build change to "adjust" this?
Thanks,
[div align=\"right\"][a href=\"index.php?act=findpost&pid=107660\"][{POST_SNAPBACK}][/a][/div]
You need do this:
$rmmod zaurus cdc_ether usbnet
$modprobe cdc_subset
I using Gentoo 2.6.14 (2.6.14-gentoo-r5) and my copnection stalls too.... and cdc_subset dont works too!
I'm go try 2.6.15
-
Hi,
Has anyone managed to find a solution to this?
The suggested "modprobe cdc_subset" solution doesn't work for me. Furthermore, from reading cdc_subset.c, it does not support the non-standard Zaurus framing, therefore it appears to me that it is not intended for the Zaurus and is NOT the solution for Sharp-ROM-based Zauriis (is it perhaps needed for OZ or others who have done away wth Sharp's non-standard implementation?).
I just realized that I forgot to follow-up on my earlier post about testing 2.6.14-1.1644 -- it didn't work. I'm now running 2.6.15-1.1831 and it fails also. I've been avoiding the problem by sticking with the last release that worked (2.6.13-1.1532) but I think I now need to update because of a mouse driver problem, so this issue has now been pushed back to the top of my queue.
I've been google'ing like crazy and I can find plenty of references to the 2.6.14 usbnet work but I can't (so far) find anything that addresses this problem. Someone out there must have solved this, no???
~ray
-
try this:
On the Z:
# ifconfig usbd0 mtu 576
(from https://www.oesf.org/forums/index.php?showtopic=15583 (https://www.oesf.org/forums/index.php?showtopic=15583)
according to this https://www.oesf.org/forums/index.php?showtopic=17006 (https://www.oesf.org/forums/index.php?showtopic=17006)
it should be ok)
-
pgas,
Thanks for the pointer; I missed those threads. It works for me also.
It's not permanent though. I was able to make it permanent by tweaking some of the /etc/hotplug scripts.
These are the changes I made, in case anyone wants to know:
/etc/hotplug/usbdnet.conf: add the line: MTU=576
/etc/hotplug/net.agent: Look for the 'ifconfig' line under the "register)" and "usbd0)" cases (line ~74): ifconfig usbd0 $IP netmask $NETMASK
Change to: if [ -n "$MTU" ]; then SETMTU="mtu $MTU"; fi
ifconfig usbd0 $IP netmask $NETMASK $SETMTU
If you'd rather just hard-code it, you can just tack "mtu 576" onto the "ifconfig" line in net.agent.
------
This solution begs a couple of questions though:
1. WHY is this needed? The Z has worked fine with its default MTU of 1500 for ages.
2. Will the smaller MTU result in slower transfers?
Perhaps I'll try to dig up the code for the "hard MTU" patch that I wrote about earlier; it seems even more likely to be the culprit now...
~ray
-
FYI: The above solution also seems to work if applied on the PC-side. Apparently, the fix works so long as you apply the MTU=576 to either side of the connection.
Those of us running Fedora/Red Hat or distros derived from them probably have a /etc/sysconfig/network-scripts/ifcfg-usb0 script to set-up the Z's usbnet connection. I added MTU=576 to mine (after disabling my edits, described above, from the Z) and transfers don't hang.
This strikes me as a "better" solution. IMO, the problem lies in Linux 2.6.14+ (and sounds like a bug to me) and so the fix should reside there as well.
~ray
-
FYI: The above solution also seems to work if applied on the PC-side. Apparently, the fix works so long as you apply the MTU=576 to either side of the connection.
Those of us running Fedora/Red Hat or distros derived from them probably have a /etc/sysconfig/network-scripts/ifcfg-usb0 script to set-up the Z's usbnet connection. I added MTU=576 to mine (after disabling my edits, described above, from the Z) and transfers don't hang.
This strikes me as a "better" solution. IMO, the problem lies in Linux 2.6.14+ (and sounds like a bug to me) and so the fix should reside there as well.
~ray
[div align=\"right\"][a href=\"index.php?act=findpost&pid=115489\"][{POST_SNAPBACK}][/a][/div]
Has anyone heard of a fix for this? I am trying to NAT my Z on FC4 and it seems I also need to set the MTU on my wireless card to 576 to get it to work....
Thanks,
Henry
-
Has anyone heard of a fix for this? I am trying to NAT my Z on FC4 and it seems I also need to set the MTU on my wireless card to 576 to get it to work....
Thanks,
Henry
[div align=\"right\"][a href=\"index.php?act=findpost&pid=120893\"][{POST_SNAPBACK}][/a][/div]
I haven't, but I haven't been looking either. I haven't had a problem since installing the fix and I haven't had time to research it more. I recently upgraded to 2.6.15-1.1833_FC4 with no trouble.
I thought this problem only effected usbnet though; I don't know why your wireless card is effected. (I haven't used mine in a while; perhaps I'll have to check it.)
~ray