The /usr directory you have created resides in the read-only partition mounted in RAM when the image is decompressed/copied during the loading process. As it is read only, you will not be able to perform any write operations there.
To get around this, I mount a secondary partition (on a CF card in this case) and load the contents of /usr/bin, /usr/sbin into it. Unfortunately, the (hard-coded?) link from procnto (I presume) to collect ldqnx.so.2 from /usr/lib means that the contents of /usr/lib must reside in the read-only partition. So the image I build contains: /usr/lib (+ contents) and links /usr/bin and /usr/sbin pointing to the secondary partition which I load during startup. This allows the image to be the smallest possible (minimising both storage and RAM footprint in booting) but still leaves you with much flexibility.
See openqnx.com/PNphpBB2-viewtopic-t6989-.html for details of this process.