Tools

Linux Source Code

The e1000e network driver uses some functions which are the part of Linux kernel. You can find their definitions in Linux source code. You can download latest Linux kernel source code from kernel.org.

Cscope and Ctags

A very good tool to help you browse your source code: cscope
Index your source code using ctags
Use cscope/ctags with vi: Vim/cscope tutorial, Vim/ctags tutorial

Subversion

Subversion (SVN) is installed on all machines in the department cluster. You can install it on your machine using "apt-get install subversion".
The Computer Services Center provides a subversion server. To create a repository called "e1000e-repo":
$ ssh ssh1.iitd.ernet.in   # use your proxy password
$ mkdir svn
$ cd svn
$ svnadmin create e1000e-repo
You should see a subdirectory called e1000e-repo in the svn directory. Read e1000e-repo/README.txt. Do not add, delete, or modify any files in this subdirectory. Edit the svn/authz file to provide read-write permissions to e1000e-repo to yourself and your partners, and read permissions to anz107537. For example, if users cs1012345 and cs1067890 are partners and user cs1012345 is currently logged in, here is a sample authz file to use:
[/]
[e1000e-repo:/]
cs1012345@IITD.ERNET.IN = rw
cs1067890@IITD.ERNET.IN = rw
anz107537@IITD.ERNET.IN = r
Notice that your username should be suffixed with @IITD.ERNET.IN and not cse.iitd.ernet.in. These statements provide read/write access to the group partners and read access to the TA.

Set the directory permissions so that they look like the following:

The responsibility of maintaining the security of your repository lies with you. You will be penalized if your repository is found to be readable by other unauthorized people.

Go to one of the machines in the department cluster (or your local machine). Use the following command to checkout the files from your repository:

$ svn checkout https://svn.iitd.ernet.in/~cs1012345/e1000e-repo
You will be prompted for your CSC password. Do not offer to save the password in plaintext format in your home directory as that is insecure. You can add the following line to ~/.subversion/servers to avoid getting prompted for saving passwords in future:
store-plaintext-passwords = no
This should create a directory called e1000e-repo. Type the following commands to add the base e1000e files to the repository:
$ cd e1000e-repo/
$ cp -r /path/to/e1000e/ .
$ svn add e1000e
$ svn commit
"svn add" adds the files to your local checked-out copy of the repository. "svn commit" commits the changes in your local repository to the main repository. You will be prompted for your CSC proxy password each time you access the main repository. At this point, you have successfully setup your repository. Your partner can use svn checkout https://svn.iitd.ernet.in/~cs1012345/e1000e-repo to checkout a copy of the code. Just like you, your partner is also authorized to make changes and commit them to the main repository.

If this does not work, carefully study the instructions given at the CSC Webpage on creating, accessing, and securing your repositories. Report any missing instructions that you find to the course staff so that we can fix the documentation.

Here are some more useful commands:

Version Control Software is used in almost all modern software development environments. Read this wikipedia article to know more about the theory. Here is a brief tutorial by the Computer Services Center on using the IITD Subversion repository. Here is a quick start document for basic SVN commands.