Commit aa215b76 authored by Raphael Defosseux's avatar Raphael Defosseux

doc(oran-integration): adding another pkg-config trick.

Signed-off-by: default avatarRaphael Defosseux <raphael.defosseux@eurecom.fr>
parent 92ae64fd
......@@ -215,7 +215,7 @@ cd
wget http://fast.dpdk.org/rel/dpdk-20.11.7.tar.xz
```
DPDK Compilation
### DPDK Compilation and Installation
```bash
# Installing meson : it should pull ninja-build and compiler packages
......@@ -228,7 +228,25 @@ tar xvf dpdk-20.11.7.tar.xz && cd dpdk-stable-20.11.7
meson build
ninja -C build
sudo ninja install -C build
sudo ldconfig -v | grep rte ## this way you will see the dpdk libraries
```
### Verify the installation is complete
Check if the LD cache contains the DPDK Shared Objects after update:
```bash
sudo ldconfig -v | grep rte_
librte_fib.so.0.200.2 -> librte_fib.so.0.200.2
librte_telemetry.so.0.200.2 -> librte_telemetry.so.0.200.2
librte_compressdev.so.0.200.2 -> librte_compressdev.so.0.200.2
librte_gro.so.20.0 -> librte_gro.so.20.0.2
librte_mempool_dpaa.so.20.0 -> librte_mempool_dpaa.so.20.0.2
librte_distributor.so.20.0 -> librte_distributor.so.20.0.2
librte_rawdev_dpaa2_cmdif.so.20.0 -> librte_rawdev_dpaa2_cmdif.so.20.0.2
librte_mempool.so.20.0 -> librte_mempool.so.20.0.2
librte_pmd_octeontx2_crypto.so.20.0 -> librte_pmd_octeontx2_crypto.so.20.0.2
librte_common_cpt.so.20.0 -> librte_common_cpt.so.20.0.2
....
```
On Fedora-based OS, you may not have the `/usr/local/lib` or `/usr/local/lib64` paths in the LD_LIBRARY_PATH:
......@@ -236,7 +254,21 @@ On Fedora-based OS, you may not have the `/usr/local/lib` or `/usr/local/lib64`
```bash
sudo echo "/usr/local/lib" > /etc/ld.so.conf.d/local-lib.conf
sudo echo "/usr/local/lib64" >> /etc/ld.so.conf.d/local-lib.conf
sudo ldconfig -v | grep rte ## this way you will see the dpdk libraries
sudo ldconfig -v | grep rte_
```
Check if the PDK-CONFIG tool discovers the libraries:
```bash
pkg-config --libs libdpdk --static
-lrte_node -lrte_graph -lrte_bpf -lrte_flow_classify -lrte_pipeline -lrte_table -lrte_port -lrte_fib -lrte_ipsec -lrte_vhost -lrte_stack -lrte_security -lrte_sched -lrte_reorder -lrte_rib -lrte_rawdev -lrte_pdump -lrte_power -lrte_member -lrte_lpm -lrte_latencystats -lrte_kni -lrte_jobstats -lrte_ip_frag -lrte_gso -lrte_gro -lrte_eventdev -lrte_efd -lrte_distributor -lrte_cryptodev -lrte_compressdev -lrte_cfgfile -lrte_bitratestats -lrte_bbdev -lrte_acl -lrte_timer -lrte_hash -lrte_metrics -lrte_cmdline -lrte_pci -lrte_ethdev -lrte_meter -lrte_net -lrte_mbuf -lrte_mempool -lrte_rcu -lrte_ring -lrte_eal -lrte_telemetry -lrte_kvargs -Wl,--whole-archive -lrte_common_cpt -lrte_common_dpaax -lrte_common_iavf -lrte_common_octeontx -lrte_common_octeontx2 -lrte_bus_dpaa -lrte_bus_fslmc -lrte_bus_ifpga -lrte_bus_pci -lrte_bus_vdev -lrte_bus_vmbus -lrte_mempool_bucket -lrte_mempool_dpaa -lrte_mempool_dpaa2 -lrte_mempool_octeontx -lrte_mempool_octeontx2 -lrte_mempool_ring -lrte_mempool_stack -lrte_pmd_af_packet -lrte_pmd_ark -lrte_pmd_atlantic -lrte_pmd_avp -lrte_pmd_axgbe -lrte_pmd_bond -lrte_pmd_bnxt -lrte_pmd_cxgbe -lrte_pmd_dpaa -lrte_pmd_dpaa2 -lrte_pmd_e1000 -lrte_pmd_ena -lrte_pmd_enetc -lrte_pmd_enic -lrte_pmd_failsafe -lrte_pmd_fm10k -lrte_pmd_i40e -lrte_pmd_hinic -lrte_pmd_hns3 -lrte_pmd_iavf -lrte_pmd_ice -lrte_pmd_igc -lrte_pmd_ixgbe -lrte_pmd_kni -lrte_pmd_liquidio -lrte_pmd_memif -lrte_pmd_netvsc -lrte_pmd_nfp -lrte_pmd_null -lrte_pmd_octeontx -lrte_pmd_octeontx2 -lrte_pmd_pfe -lrte_pmd_qede -lrte_pmd_ring -lrte_pmd_sfc -lrte_pmd_softnic -lrte_pmd_tap -lrte_pmd_thunderx -lrte_pmd_vdev_netvsc -lrte_pmd_vhost -lrte_pmd_virtio -lrte_pmd_vmxnet3 -lrte_rawdev_dpaa2_cmdif -lrte_rawdev_dpaa2_qdma -lrte_rawdev_ioat -lrte_rawdev_ntb -lrte_rawdev_octeontx2_dma -lrte_rawdev_octeontx2_ep -lrte_rawdev_skeleton -lrte_pmd_caam_jr -lrte_pmd_dpaa_sec -lrte_pmd_dpaa2_sec -lrte_pmd_nitrox -lrte_pmd_null_crypto -lrte_pmd_octeontx_crypto -lrte_pmd_octeontx2_crypto -lrte_pmd_crypto_scheduler -lrte_pmd_virtio_crypto -lrte_pmd_octeontx_compress -lrte_pmd_qat -lrte_pmd_ifc -lrte_pmd_dpaa_event -lrte_pmd_dpaa2_event -lrte_pmd_octeontx2_event -lrte_pmd_opdl_event -lrte_pmd_skeleton_event -lrte_pmd_sw_event -lrte_pmd_dsw_event -lrte_pmd_octeontx_event -lrte_pmd_bbdev_null -lrte_pmd_bbdev_turbo_sw -lrte_pmd_bbdev_fpga_lte_fec -lrte_pmd_bbdev_fpga_5gnr_fec -Wl,--no-whole-archive -lrte_node -lrte_graph -lrte_bpf -lrte_flow_classify -lrte_pipeline -lrte_table -lrte_port -lrte_fib -lrte_ipsec -lrte_vhost -lrte_stack -lrte_security -lrte_sched -lrte_reorder -lrte_rib -lrte_rawdev -lrte_pdump -lrte_power -lrte_member -lrte_lpm -lrte_latencystats -lrte_kni -lrte_jobstats -lrte_ip_frag -lrte_gso -lrte_gro -lrte_eventdev -lrte_efd -lrte_distributor -lrte_cryptodev -lrte_compressdev -lrte_cfgfile -lrte_bitratestats -lrte_bbdev -lrte_acl -lrte_timer -lrte_hash -lrte_metrics -lrte_cmdline -lrte_pci -lrte_ethdev -lrte_meter -lrte_net -lrte_mbuf -lrte_mempool -lrte_rcu -lrte_ring -lrte_eal -lrte_telemetry -lrte_kvargs -Wl,-Bdynamic -pthread -lm -ldl
```
Once again on Fedora-based OS, you may not have the `/usr/local/lib` or `/usr/local/lib64` paths in the PKG_CONFIG_PATH:
```bash
export PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib64/pkgconfig/
pkg-config --libs libdpdk --static
```
# 2. Build OAI-FHI gNB
......@@ -321,13 +353,29 @@ sudo apt install -y libnuma-dev
sudo dnf install -y numactl-devel
./build_oai --gNB --ninja -t oran_fhlib_5g (Add, -I if you are building for the first time on server for installing external dependencies)
#check if all the libraries are properly linked to liboai_transpro.so
ldd liboai_transpro.so
ldd ran_build/build/lliboran_fhlib_5g.so
linux-vdso.so.1 (0x00007ffc9bdfc000)
librte_node.so.0.200.2 => /usr/local/lib64/librte_node.so.0.200.2 (0x00007f2da93bd000)
librte_graph.so.0.200.2 => /usr/local/lib64/librte_graph.so.0.200.2 (0x00007f2da93b2000)
librte_bpf.so.0.200.2 => /usr/local/lib64/librte_bpf.so.0.200.2 (0x00007f2da93a2000)
librte_flow_classify.so.0.200.2 => /usr/local/lib64/librte_flow_classify.so.0.200.2 (0x00007f2da939c000)
librte_pipeline.so.20.0 => /usr/local/lib64/librte_pipeline.so.20.0 (0x00007f2da9376000)
librte_table.so.20.0 => /usr/local/lib64/librte_table.so.20.0 (0x00007f2da935a000)
librte_port.so.20.0 => /usr/local/lib64/librte_port.so.20.0 (0x00007f2da9340000)
librte_fib.so.0.200.2 => /usr/local/lib64/librte_fib.so.0.200.2 (0x00007f2da9332000)
...
libm.so.6 => /lib64/libm.so.6 (0x00007f2d974a4000)
libxran.so => /usr/local/lib/libxran.so (0x00007f2d49000000)
libnuma.so.1 => /lib64/libnuma.so.1 (0x00007f2d97494000)
libc.so.6 => /lib64/libc.so.6 (0x00007f2d48c00000)
/lib64/ld-linux-x86-64.so.2 (0x00007f2da93d3000)
```
In case `liboai_transpro.so` is missing `libxran.so` then you can copy XRAN shared library object:
```bash
sudo cp ~/phy/fhi_lib/lib/build/libxran.so /usr/local/lib
sudo ldconfig
```
# 3. Configure OAI gNB
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment