Before you got here, you are absolutely sure that:

It might be the problem that your device does not use the default IP addresses for the device and the computer to set up the communication. To see if this is the problem, we need to check the following.

  1. Check whether you don't have any odccm running anymore:

    ps -A | grep odccm
    
    should not return any processes running anymore.
  2. Connect your phone to the computer
  3. Check which ethernet device is created by the usb-rndis-lite driver. You can check this by running dmesg and look at the output:

    usb 2-1: new full speed USB device using uhci_hcd and address 76
    usb 2-1: configuration #1 chosen from 1 choice
    rndis_host 2-1:1.0: hard mtu 1558 (8192 from dev), rx buflen 16384, align 8
    rndis_host 2-1:1.0: status ep1in, 8 bytes period 3
    rndis0: register 'rndis_host' at usb-0000:00:0a.1-1, RNDIS device, 80:00:60:0f:e8:00
    udev: renamed network interface rndis0 to eth1
    

    In the above case the device rndis0 which is then renamed by udev to eth1. The device name you see mentioned here in dmesg should be used during the rest of this guide as device

  4. Run

    sudo dhclient device
    

    where you replace device with the ethernet device name found in the previous step. This should provide you with information like:

    Internet Systems Consortium DHCP Client V3.0.4
    Copyright 2004-2006 Internet Systems Consortium.
    All rights reserved.
    For info, please visit http://www.isc.org/sw/dhcp/
    
    Listening on LPF/eth0/00:50:ba:c0:a7:55
    Sending on   LPF/eth0/00:50:ba:c0:a7:55
    Sending on   Socket/fallback
    DHCPDISCOVER on eth1 to 255.255.255.255 port 67 interval 7
    DHCPOFFER from 169.254.2.1
    DHCPREQUEST on eth1 to 255.255.255.255 port 67
    DHCPACK from 169.254.2.1
    bound to 169.254.2.2 -- renewal in 230209 seconds.
    
    Now the above screen provides two numbers we will need:
    • The device-IP, which is the number after DHCP ACK from (in the above example output this is 169.254.2.1)

    • The computer-IP, which is the number after bound to (in the above example output this is 169.254.2.2)

  5. If you find that the device-IP equals 169.254.2.1 and the computer-IP equals 169.254.2.2 you can stop here with this troubleshooting guide, because these are the default addresses, while this guide is only there to figure out if your device uses different than default addresses. If they are different, you can go on with the next step.

  6. We still need one more piece of information that you can obtain by running

    sudo ifconfig device
    

    where again you replace device with the ethernet device found in step 3. This should give you an output like:

    eth1      Link encap:Ethernet  HWaddr 00:08:74:f7:2f:0c  
              inet addr:169.254.2.2  Bcast:169.254.2.255  Mask:255.255.255.0
              inet6 addr: fe80::208:74ff:fef7:2f0c/64 Scope:Link
              UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
              RX packets:6346887 errors:0 dropped:0 overruns:0 frame:0
              TX packets:929131 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:100 
              RX bytes:933765425 (890.5 MiB)  TX bytes:159985685 (152.5 MiB)
              Base address:0xecc0 Memory:ff8e0000-ff900000 
    
    This output provides us with the last detail we need:
    • The netmask, which is the number after Mask (in the above output this is 255.255.255.0)

  7. Disconnect the phone
  8. Start odccm with the following line:

    sudo odccm -f --device-ip DEVICE_IP --local-ip COMPUTER_IP --local-netmask NETMASK
    
    where you replace
    • DEVICE_IP with the numbers you found as device-IP

    • COMPUTER_IP with the numbers you found as computer-IP

    • NETMASK with the numbers you found as netmask

  9. Connect the phone

Now you should see more than one line of output from odccm.

OdccmTroubleshooting (last edited 2008-02-27 13:23:26 by GuidoDiepen)