What is the source of lava of volcano? From magma below crust? Or from molten crust by rubbing?
Both are correct to some degree.

Basalts are usually the result of direct mantle melting, below the crust. This is the case in the famous volcanos of Hawaii and this is also the case in the most common type of volcanism on Earth: the mid-ocean ridges (albeit hidden below several kilometres of sea water).

Most other eruptive rocks (rhyolite, andesite, etc) are usually the result of either melting of the crust, or interaction of mantle melts (basalts) with crustal rocks. A very large portion of these rocks erupt above subduction zones (most obvious example being the Ring of Fire). The reason is that wet subducting oceanic lithospheres get heated and lose their water. We usually think of water as something that puts out fires, but in the deep Earth it actually lowers the melting point of rocks. This causes melting in the crust, and eventually erupts as volcanoes.

This is a very simplified overview of the subject, and it's a very active area of scientific research with sometimes opposing opinions. But the basic story is somewhat established: some volcanoes (mostly basalts) are products of mantle melting, while others (mostly other stuff) are products of crustal melting.