It is a 2000 528i Touring with non-DSP 10 spk sound system with stock amp, cassette, no nav, no cd, no cd changer. I took out the cassette and mid, putted a kenwood excelon KDC-X592 head unit.
The problem is: the HU only plays radio

. when I switch to CD or USB mode, the faceplate shows the HU is playing the cd/mp3 correctly, but I can't hear anything.

Switch back to radio, the sound is loud and clear again.
My first thought is the HU is a bad one. Since I have the same HU (well, not exactly same, older model, but pretty much same including wiring socket) on my Mazda Miata. I swap the HUs to test it. The new HU plays everything perfectly on Miata, and the old unit still can't make any sound when playing cd/mp3.
I am stuck. What could be wrong? wiring problem? How can the stock amp tell the difference of signal from radio or cd/mp3, then decide to only play radio signal?