In this paper, we first identify several challenges in designing a Joint Channel Assignment and Routing (JCAR) protocol in heterogeneous Multi-radio Multi-channel Multi-hop Wireless Networks (M3WN) using commercial hardware (e.g., IEEE 802.11 Network Interface Card (NIC)). We then propose a novel software solution, called Layer 2.5 JCAR, which resides between the MAC layer and routing layer. JCAR jointly coordinates the channel selection on each wireless interface and route selection among interfaces based on the traffic information measured and exchanged among two-hop neighbor nodes. Since interference is one of the major factors that constrain the performance in a M3WN, in this paper, we introduce an important Channel Cost Metric (CCM) which actually reflects the interference cost and is defined as the sum of expected transmission time weighted by the channel utilization over all interfering channels (for each node). In CCM, both the interference and diverse channel characteristics are taken into account. An expression for CCM is derived in terms of equivalent fraction of air time by explicitly taking the radio heterogeneity into consideration. Using CCM as one of the key performance measures, we propose a distributed algorithm (heuristic) that produces near optimal JCAR solution. To evaluate the efficacy of our heuristics, we conduct extensive simulations using the network simulator NS2. To demonstrate implementation feasibility, we conducted various experiments for the proposed distributed JCAR algorithm on a multi-hop wireless network testbed with 9 wireless nodes, each is equipped with single/multiple 802.11 a/g cards. Both experimental and simulation results demonstrate the effectiveness and implementation easiness of our proposed software solution.