The host kernel configuration

Your next job is to configure the kernel on your host to support USB networking. How difficult you want to make this depends on your kernel version.

If you're working with a sufficiently new Linux kernel on your host (for Red Hat, the latest rawhide version 2.4.20-2.25, or anything 2.4.21-pre2 or newer), things should go fairly smoothly.

If, however, you have a slightly older kernel, then I refer you to the solution here. Trust me, you're much better off upgrading to a kernel which has the improved USB support so that you don't have to spend time patching the older kernel just to get it to work for this.

Provided you have a recent enough kernel, the kernel configuration options you want are under:

  USB support -->;
    --- USB Network Adaptors
    <M> USB Communication Class Ethernet device support (EXPERIMENTAL)
    <M> USB-to-USB Networking Cables, Linux PDAs, ... (EXPERIMENTAL)
I'm still a little fuzzy on the underlying functions of the first of these options -- apparently there are still some bugs but I'll just show you what works for me. For now, just select them both as modules, build and install your new kernel and modules. Don't reboot just yet.

Finally, due to a current glitch, if you try to plug in and turn on your Z via your host's USB hotplug feature, the CDCEther module (corresponding to the first one listed above in the config menu) will be loaded first and will prevent the correct usbnet module from being loaded.

If you legitimately need that CDCEther module for other reasons, the solution is to add a line with the single word CDCEther to the file /etc/hotplug/blacklist. This prevents the hotplug protocol from loading that module, at which point the correct usbnet module will be selected and loaded.


If you want to NAT your Z through your Linux host to the net, make sure you add the necessary iptables options while you're building your new kernel. You might want to jump ahead momentarily to the section on NATing your Z to the net to see which options you should add before building your new kernel.