spurious cudaMalloc "initialization error" after cudaSetDevice on GF8600GS succeeds

int dev;

	cudaGetDeviceCount(&dev);

	for (int i = 0; i < dev; i++) {

  cudaDeviceProp prop;

  cudaGetDeviceProperties(&prop, i);

  if (prop.major >= 1) {

  	cudaError_t error = cudaSetDevice(i);

  	if (error != cudaSuccess) {

    cerr << "error setting device: " <<

    	cudaGetErrorString(error) << "\n" << flush;

  	}

  	else {

    cudaGetDevice(&i);

    cout << "selected CUDA device " << i;

    cout << ": " << prop.name << " - " << prop.major 

    	<< "." << prop.minor << " at " 

    	<< prop.clockRate / 1000 << " MHz \n" << flush;

 	}

  }

	}

After this runs, I attempt cudaMalloc((void **)&ptr, 120). cudaSetDevice succeeds, and yet cudaMalloc returns an error. cudaGetErrorString prints ‘initialization error.’ I have already run a CUDA program via nvcc --run that successfully allocates memory and such.

This is CUDA 1.1 on Ubuntu 7.10.

$ uname -a

Linux laptop 2.6.22-14-generic #1 SMP Sun Oct 14 23:05:12 GMT 2007 i686 GNU/Linux

$

Can anyone offer advice for proceeding? The system is an Intel Core2 Duo 2.0 GHz with a GeForce 8600 GS 256 MB GPU.

Thank you.