Thursday, November 10, 2011

Howto get network card vendor, device or kernel module from the /proc and/or /sys filesystem

Work in progress - place to keep notes to myself - may help someone else - cheat sheet kinda page ;)

1. How to get NIC/network card vendor information (scripted example)

for i in `ls -d /sys/class/net/eth*` do   ETH="`basename $i`"   echo -n "$ETH "   NICID="`cat /sys/class/net/$ETH/device/vendor|cut -c3-`"   grep "^$NICID" /usr/share/hwdata/pci.ids done
2. How to get the NIC/network card MAC address (simple example)
cat /sys/class/net/eth0/address
3. How to get the NIC/network kernel module and PCI device info (DETAILS). This can also derive the vendor and device info like above (simple example)
VENDOR="`cat /sys/class/net/eth0/device/modalias |cut -c6-13`" DEVICE="`cat /sys/class/net/eth0/device/modalias |cut -c15-22`" grep -i $VENDOR /lib/modules/`uname -r`/modules.alias | grep -i $DEVICE
OR generally
grep `cat /sys/class/net/eth0/device/modalias |cut -c-22` /lib/modules/`uname -r`/modules.alias
External important links for PCI or kernel module information for Linux:
http://www.pcidatabase.com/

4. How to find the WWN for a SAS end device (the arrary for example) card on RHEL 6, CentOS 6 or similar (simple example)
cat /sys/class/sas_device/*/sas_address
5. How to find the WWN for a SAS card on RHEL 6, CentOS 6 or similar (simple example)
cat /sys/class/sas_phy/*/sas_address

OpenGTS client connection test with gps2opengts-free

WORK IN PROGRESS!!!

Just recently started playing setting up a GPS tracking server. Here is a follow up client connection on my Android phone with the free version of  gps2opengts. Here are some (incomplete) notes so far.

I hope you can at least find and install the gps2opengts-free on your own. I will skip that ;)
I will leave it up to you to figure out how to tunnel/port forward through your firewall as required.

OpenGTS server config change for "GPRMC" type of connections based on info from HERE.
Edit /var/lib/tomcat6/webapps/track/WEB-INF/webapp.conf and uncomment the the next 2 lines from the "# --- GPRMC properties" section:

gprmc.parm.account=acct
gprmc.parm.device=dev

Rebuild and deploy the tomcat container as noted from my server setup page:
ant all
ant track.deploy
ant gprmc.deploy

(re)Start tomcat:
service tomcat6 restart

OpenGTS web based vehicle setup for gps2opengts-free (should also work with GPS2OpenGTS_Pro):
1. Log into your OpenGTS server as a user "demo" (just playing with the demo install at this point!). 
1. From the "Main Menu" -> "Administration" tab -> "Vehicle Admin" -> create a new "Vehicle ID" of "test01".
2. From the "View/Edit Vehicle Information" section -> select the new vehicle and then "Edit" button.
3. "Unique ID" is required and will be the "test01" that is the only option for the free client gps2opengts-free. Otherwise add info to as many fields as you know/want. Make sure this vehicle is also "Active" = "Yes" and hit the "Change" button to save.

gps2opengts-free android app client setup:
I hope to document this tonight...

Note: As part of the frustration of initial install, I needed a little help from tcpdump to help figure out what was/was not happening. Again, my lack of tomcat knowledge was the reason for my issues:
tcpdump port 8080 -vvvvvv and not host THE_HOST_YOU_MAY_HAVE_SSHd_FROM

Note: I was hoping to find a handy to use wget to make local connection attempts. The assumption is that you are connecting via the "demo" default account like:
wget --post-data='/gprmc/Data?acct=demo&dev=test01&gprmc=$GPRMC,172413,A,3848.8028,N,08957.3521,W,0,000.0,171111,,*16' http://localhost:8080
But I have been unable to get this kinda thing to work. Wireshark shows the wget doing an http/1.0 post that is different that the gps2opengts_free http/1.1 post :(

Log information can be gotten from the /var/log/tomcat6/catalina.out  $GTS_HOME/logs/w-gprmc.log $GTS_HOME/logs/TrackWar.log or any other file in the $GTS_HOME/log/ directory.