The termcap entry for terminal type `emacs' is ordinarily put in the TERMCAP environment variable of subshells. It may help in certain situations (eg., using rlogin from shell buffer) to add an entry for `emacs' to the system-wide termcap file. Here is a correct termcap entry for `emacs':
To make a terminfo entry for `emacs', use `tic' or `captoinfo'. You need to generate /usr/lib/terminfo/e/emacs. It may work to simply copy /usr/lib/terminfo/d/dumb to /usr/lib/terminfo/e/emacs.
Having a termcap/terminfo entry will not enable the use of full screen programs in shell buffers. Use M-x terminal-emulator for that instead.
A workaround to the problem of missing termcap/terminfo entries is to change terminal type `emacs' to type `dumb' or `unknown' in your shell start up file. `csh' users could put this in their .cshrc files:
if ("$term" == emacs) set term=dumb