All you should need is update-rc.d
So I'm guessing you or raspbmc inadvertently changed something from default debian/raspbian/rpi-raspbian making one of the tests in /etc/init.d/ntp
fail.
@ppumkin said
sudo apt-get remove ntpdate
As It can conflict. (they use the same port) You can also just disable it's invocation if you want to keep using it.
This is what it looks like on my raspbmc where ntp seems to be working
root@raspbmc:~# service ntp status
ntp start/running, process 941
root@raspbmc:~# grep ntp /var/log/daemon.log | tail
Jan 31 11:27:24 raspbmc ntpd[920]: ntpd [email protected] Sat Dec 20 21:33:54 UTC 2014 (1)
Jan 31 11:27:24 raspbmc ntpd[941]: proto: precision = 1.000 usec
Jan 31 11:27:24 raspbmc ntpd[941]: Listen and drop on 0 v4wildcard 0.0.0.0 UDP 123
Jan 31 11:27:24 raspbmc ntpd[941]: Listen and drop on 1 v6wildcard :: UDP 123
Jan 31 11:27:24 raspbmc ntpd[941]: Listen normally on 2 lo 127.0.0.1 UDP 123
Jan 31 11:27:24 raspbmc ntpd[941]: Listen normally on 3 eth0 192.168.0.153 UDP 123
Jan 31 11:27:24 raspbmc ntpd[941]: Listen normally on 4 lo ::1 UDP 123
Jan 31 11:27:24 raspbmc ntpd[941]: Listen normally on 5 eth0 fe80::ba27:ebff:fec1:c508 UDP 123
Jan 31 11:27:24 raspbmc ntpd[941]: peers refreshed
Jan 31 11:27:24 raspbmc ntpd[941]: Listening on routing socket on fd #22 for interface updates
root@raspbmc:~# dpkg -l | grep -i ntp
ii ntp 1:4.2.6.p5+dfsg-2+deb7u1 armhf Network Time Protocol daemon and utility programs
root@raspbmc:~# find /etc/ -iname '*ntp*'
/etc/dhcp/dhclient-exit-hooks.d/ntp
/etc/init/ntp.conf
/etc/rc2.d/S17ntp
/etc/rc5.d/S17ntp
/etc/rc4.d/S17ntp
/etc/cron.daily/ntp
/etc/default/ntp
/etc/ntp.conf
/etc/rc3.d/S17ntp
/etc/init.d/ntp
root@raspbmc:~# nice grep -RiP "[^a-z]ntp" /etc/ 2>/dev/null | perl -pe 's/:.*//g' | grep -v ntp | sort -u
/etc/dhcp/dhclient-enter-hooks.d/debug
/etc/dhcp/dhclient-exit-hooks.d/debug
/etc/dhcp/dhclient.conf
/etc/init.d/.depend.start
/etc/init/early-network-time.conf
/etc/passwd
/etc/passwd-
Binary file /etc/alternatives/net matches
root@raspbmc:~# runlevel
2
Start by looking at the log and comparing the other commands I showed, then if nothing jumps out add /bin/date >> /home/pi/ntp.log
on the 11th line of /etc/init.d/ntp
to see if the service is being called at all, if not, remove soft links and re-run update-rc.d
if it is then move the log line down the script file until you find where it's failing. Use a binary like search for the log line position (0%,50%,100%,75%,62%,etc)
service ntp start
to/etc/rc.local
unable to bind to wildcard address 0.0.0.0 - another process may be running - EXITING
is the problem. Its saying something is already running and bound to that port... doesn't say what though. One step at a time.