2

I have a device (high-speed camera) which communicates through an ethernet port. When I connect it to my computer (Scientific Linux 6.4 x64) I see indicator lights blink on both the computer's port and the camera, suggesting that there is some kind of data transmission going on, at least initially.

The problem is that the device isn't visible to any of the tools designed to work with it. So I would like to interact with this device at a lower level, partly for debugging, partly for education, and partly as a sanity-check.

I'm very new to networking and so am likely confused on some basic concepts, but I was wondering if there was some way to send a broadcast or a packet or some other way to investigate/communicate with the camera directly?

I have tried using nmap (to ping IP ranges) and this did not get me anywhere (I don't know if a camera directly connected to ethernet should necessarily have an IP). I have also tried using arp-scan, this also failed for similar reasons (no IP for eth0).

EDIT - More Information:

Camera Make: AOS

Camera Model: X-PRI

Software: AOS CaPIICam SDK (As an aside, this is intended to run on Windows, and I have tried to run it through both a native Windows environment and Wine, with identical results.)

I am not sure what type of cable I am using. The wire pattern on both ends is identical (orange-blue-green-brown) and so I am guessing that it is not crossed over. I am connecting directly from Camera -> Cable -> Computer.

As for the source code, here it is:

int main() {
    CCaPIICam   MyCam;
    CAM_RC      rc;
    int         ndev;
    char*       sNames[50];

    for (int i = 0; i < 50; i++)
        sNames[i] = new char[40];
    rc = MyCam.GetCamNames(ndev, sNames);

    camerror(rc);

    getchar();
    return EXIT_SUCCESS;
}

where camerror(int) is just a switch-case print-to-console routine for reporting the error codes in accordance with the API documentation. It compiles and links fine under native Windows and on a VM, but camerror() reports "invalid node" on GetCamNames() which is not defined in the documentation.

2
  • More information would be great: what make/model of camera? What software does it normally use? Is that software available for your version of Linux? Does it have source code that you need to compile? Also, are you using a cross-over cable if you're connecting directly between the devices? Otherwise, are you connecting through a switch or router? Commented Aug 8, 2013 at 19:39
  • I've updated the question.
    – fumigail
    Commented Aug 8, 2013 at 19:55

2 Answers 2

1

ping does have a broadcast option on Linux you may try.

Look somewhere on the camera for a MAC address, which, if it's Ethernet, should be somewhere on the device, or possibly in the device's set up menus if it has any. You can then arping to see if it obtained or tells you what it thinks is its IP. If you can get into the DHCP tables of your router or DHCP server you might check there for any hostname that suggests a camera, if it grabbed an IP address.

Otherwise, if you believe transmission is taking place, you'll need to fire up a packet analyzer and snoop on the interface it is connected to. tcpdump may help, as well as Wireshark or its command line equivalent tshark may be useful.

3
  • I can't find a MAC address anywhere. I've tried using tcpdump -i eth0 but it appears there is no traffic after all. I've only managed to successfully send a ping using ping6 -I eth0 ff02::1 and tcpdump picks this up but it only reports the computer itself.
    – fumigail
    Commented Aug 8, 2013 at 20:35
  • I should add that this is the case regardless of whether the camera is directly connected to the computer, or if I have connected them through a switch.
    – fumigail
    Commented Aug 8, 2013 at 20:36
  • On the other hand, when I connect another computer through the switch, tcpdump generates a ton of output. Perhaps there is simply something wrong with this camera.
    – fumigail
    Commented Aug 8, 2013 at 20:39
0

The DHCP server on your network ought to have information on the camera; it would be rather short-sighted for the manufacturer to hard-code IP configuration parameters.

To see if the camera is making DHCP requests, use tcpdump -nvv udp port 67 on your Linux box. On Mac OS X, I got the following output when I turned on my WiFi:

  0.0.0.0.68 > 255.255.255.255.67: [udp sum ok] BOOTP/DHCP, Request from 68:a8:6d:58:5b:f3, length 300, xid 0xd5752fa1, secs 2, Flags [none] (0x0000)
      Client-Ethernet-Address 68:a8:6d:58:5b:f3
      Vendor-rfc1048 Extensions
        Magic Cookie 0x63825363
        DHCP-Message Option 53, length 1: Discover
        Parameter-Request Option 55, length 9: 
          Subnet-Mask, Default-Gateway, Domain-Name-Server, Domain-Name
          Option 119, LDAP, Option 252, Netbios-Name-Server
          Netbios-Node
        MSZ Option 57, length 2: 1500
        Client-ID Option 61, length 7: ether 68:a8:6d:58:5b:f3
        Lease-Time Option 51, length 4: 7776000
        Hostname Option 12, length 10: "mini-nevie"

Hope this helps....

2
  • Actually, as it turns out, the camera defaults to 10.0.0.125, sends no requests, and only replies to pings from within 10.0.0.*
    – fumigail
    Commented Aug 13, 2013 at 2:29
  • 1
    wow, that's awful. :) Commented Aug 14, 2013 at 17:36

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .