I had the same problem like yours a few months ago and I also posted the same question here:
Here are a few things that I did to resolve this problem. Use whatever you see fit.
1) I intended to boot the 32-bit kernel on a router but accidentally created a busybox binary on a 64-bit machine and incorporated it in to the initramfs/. After realizing this mistake, I switched to a 32-bit server and compile busybox source natively.
2) Create /dev/console device help resolve the "unable to open an initial console" problem.
3) For the "Kernel panic - not syncing: No init found. Try passing init= option to kernel", it's because the way I created initramfs/ and link it in with the kernel source is not correct. I'm pretty sure you have the same problem too. To fix it, I have to move initramfs/ to the local hard drive of the machine I'm trying to build the kernel, not an NFS space. In my case, I move it under /home/huyhoang/initramfs. Here is what I have in /initramfs:
bin/ dev/ etc/ init* lib/ proc/ root/ sbin@ sys/ tmp/
My bin/init is linked with bin/busybox and I copied the same init up one level to /initramfs:
huyhoang@achanta-lnx-001> cd bin
huyhoang@achanta-lnx-001> ls -l init*
lrwxrwxrwx 1 huyhoang led-grp 7 Sep 14 15:40 init -> busybox*
huyhoang@achanta-lnx-001> cd etc
fstab* hosts* inittab* mdev.conf* passwd*
group* init.d/ ld.so.cache* nsswitch.conf* profile*
Content of my inittab:
console::respawn:/bin/getty -L 9600 ttyS0 vt100
When building the kernel, in make menuconfig, I enabled:[*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
and specified: (/home/huyhoang/initramfs) Initramfs source file(s)
Those are the things that I did and my kernel booted successfully after that. Good luck and let me know how that goes.