# $\pi: E \rightarrow M$ ($E$ is a vector bundle) admits a global frame iff $E$ is a trivial vector bundle over $M$.

(Proof of backward direction is clear: if $$F$$ is a diffeomorphism between $$E$$ and $$M \times \mathbb R^k$$, then $$p \mapsto (p, e_i) \mapsto F^{-1}(p, e_i)$$ forms a basis of $$E$$ for $$i = 1, \cdots, k$$.)

Proof of forward direction: Let $$E$$ be a vector bundle over $$M$$ of dimension $$k$$, and let $$s_1, \cdots, s_k$$ be a global frame. For all $$p \in M$$, there exists a local trivialization $$\Phi: \pi^{-1}(U_p) \rightarrow U_p \times \mathbb R^k$$. Since $$\Phi|_{E_p}$$ is a linear isomorphism of vector spaces, and $$s_1(p), \cdots, s_k(p)$$ forms a basis of $$E_p$$, $$\Phi(s_1(p)), \cdots, \Phi(s_k(p))$$ forms a basis of $$\{p\} \times \mathbb R^k$$.

Note that $$(p, e_1), \cdots, (p,e_k)$$ is a basis of $$\{p\} \times \mathbb R^k$$. Hence, I can form a linear mapping between basis $$\Phi(s_1(p)), \cdots, \Phi(s_k(p))$$ and another basis $$(p, e_1), \cdots, (p,e_k)$$,

$$(p, e_i) = \sum_{j=1}^k a_j^i(p) \Phi(s_j(p))$$

It suffices to prove that $$a_j^i$$ is smooth, but how do I prove so? Any suggestions?

By a partition of unity argument, one can show that any vector bundle admits an inner product, that is a smooth symmetric $$2$$-tensor that is symmetric positive definite: for any smooth sections $$v$$ and $$w$$, the function $$p \mapsto \langle v,w\rangle_p$$ is smooth.
Suppose $$E$$ is a vector bundle over $$M$$, of rank $$k$$, and chose an inner product. Suppose $$E$$ admits a global frame $$(v_1,\ldots,v_k)$$. Then \begin{align*} \Phi : E &\to M \times \mathbb{R}^k \\ (p,u) &\mapsto \left(p,(\langle u,v_1\rangle_p,\ldots,\langle u , v_k \rangle_p)\right) \end{align*} is a global trivialization.
Here is a construction of a smooth inner product on any finite rank smooth vector bundle $$E$$. Choose a locally finite open cover $$\{U_i\}_{i\in I}$$ such that $$E$$ is locally trivial on each $$U_i$$: $$\forall i \in I,~ \exists \Phi_i : E \overset{\sim}{\to} U_i\times \mathbb{R}^k$$ where $$\Phi_i$$ is smooth. Define on $$E|_{U_i}$$ the smooth inner product $$\langle u,w\rangle_i = \langle {\Phi_i}_*u,{\Phi_i}_*w\rangle_{\mathbb{R}^k}$$ that is $$\langle \cdot,\cdot \rangle_i = (\Phi_i)^* \langle\cdot,\cdot\rangle_{\mathbb{R}^k}$$. Then $$\langle\cdot,\cdot \rangle_i$$ is smooth over $$U_i$$ because so is $$\Phi_i$$ and the natural inner product of $$\mathbb{R}^k$$.
Chose a smooth partition of unity $$\{\varphi_i\}_{i\in I}$$ with respect to the locally finite open cover $$\{U_i\}_{i\in I}$$, and define, for $$u$$ and $$w$$ sections of $$E$$:
$$\langle u,v \rangle = \sum_{i\in I} \varphi_i \cdot \langle u,w\rangle_i$$
It is clearly smooth because it is a locally finite sum of smooth sections. It is clearly bilinear and symmetric. Moreover, at a point $$p$$: $$\langle u,u\rangle_p = \sum_{i \in I} \varphi_i(p) \langle u,u \rangle_i$$ As all terms are nonnegative, it is nonnegative. Moreover, it is zero if and only if in every $$U_i$$, $$u|_{U_i} = 0$$ (this is because $$\Phi_i$$ are diffeomorphisms and $$\langle\cdot, \cdot \rangle_{\mathbb{R}^k}$$ is positive definite). Thus, it is an inner product on $$E$$.