You must disable one to start the other. See if this code starts the SD and w5100 ok for you.
#include <SPI.h>
#include <Ethernet.h>
#include <SD.h>
byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED };
void setup() {
Serial.begin(9600);
// disable w5100 SPI while starting SD
pinMode(10, OUTPUT);
digitalWrite(10, HIGH);
Serial.print(F("Starting SD..."));
if(!SD.begin(4)) Serial.println(F("failed"));
else Serial.println(F("ok"));
Serial.print(F("Starting ethernet..."));
if(!Ethernet.begin(mac)) Serial.println(F("failed"));
else Serial.println(Ethernet.localIP());
digitalWrite(10, HIGH);
}
void loop() {
}
I used the F() function to keep the static strings in program memory.