estimate the impulse response after equalization I want to estimate the impulse response of the channel at the receiver. Assuming
some arbitrary impulse response: h=[1  0.2 -0.4 0.0 0.6]. Once the equalizer is constructed, I get the equalizer weights in  w1. 

Question1) How to get back the channel estimates: Say, 

x is the input to the channel,

d is the output of the channel which is the input to the equalizer, 

w is the equalizer,

y is the output of the equalizer or is the equalized signal.

Ideally, y and x must be same. Then would the channel estimates be the least square solution i.e., inv(w^Tw)*w*d' or  inv(w)? 

Question2) Can I apply the LMS method for any source input --- Gaussian and non-Gaussian?

Below is the code for LMS equalizer    

N=1000;       
% number of samples       

np = 0.01; 
% noise power is 0.01 
sp = 1; 
% signal power is 1 which implies SNR = 20dB 
h=[1  0.2 -0.4 0.0 0.6];  %unknown   impulse  response       

x = sqrt(sp).*randn(1,N); 
d = conv(x,h); 
d = d(1:N) + sqrt(np).*randn(1,N); 
w0(1) = 0; 
% initial filter weights are 0 
w1(1) = 0; 
mu = 0.005; 
% step size is fixed at 0.005 
y(1) = w0(1)*x(1); 
% iteration at “n=0” 
e(1) = d(1) - y(1); 
% separate because “x(0)” is not defined 
w0(2) = w0(1) + 2*mu*e(1)*x(1); 
w1(2) = w1(1); 

for  n=2:N       

    y(n) = w0(n)*x(n) + w1(n)*x(n-1); 
    e(n) = d(n) - y(n); 
    w0(n+1) = w0(n) + 2*mu*e(n)*x(n); 
    w1(n+1) = w1(n) + 2*mu*e(n)*x(n-1); 
end
Note that what you're trying to do is equalization, as opposed to channel estimation. If we ignore the noise for the moment then, ideally, the concatenation of the equalizer and the channel (modeled as a linear system) should be a pure delay:

$$(h\star w)[n]\stackrel{!}{=}\delta[n-K]\tag{1}$$

where $h[n]$ is the channel impulse response, $w[n]$ are the coefficients of the linear equalizer, and $K$ is some delay that depends on the system design. So by using the LMS algorithm to adapt a linear equalizer you do not directly estimate the channel coefficients $h[n]$. As far as I know there is no straightforward way to reliably estimate the channel weights directly from the equalizer weights.

Regarding your second question, the LMS algorithm doesn't require the source signal to be Gaussian.

A final comment on your code: with only $2$ filter taps you won't be able to sufficiently equalize the given channel. And I would recommend to use vectors in the coefficient update, so you can use different filter lengths without changing your code.