前言
本文章是作为本人使用ns3仿真过程中遇到的问题及解决方法的一个记录,后续会持续更新更多关于ns3仿真相关内容。
ns3仿真第1篇为Ubuntu24.04安装ns-allinone-3.48步骤说明,本安装需要依托python3.12版本进行,参考ns3官方说明文档-LINUX和INSTALLATION STEPS FOR UBUNTU两部分。
1、环境更新及依赖安装
a.环境更新
打开命令端,复制以下指令并输入,进行系统环境更新,等待更新完成。
sudo apt update && sudo apt upgrade -yb.依赖安装
1)ns3仿真依赖
复制并输入以下指令安装必要的依赖。安装过程中若出现某个依赖包中断,可在网页搜索该依赖包,下载后单独安装,然后再次执行以下指令。
sudo apt install -y \ g++ python3 cmake ninja-build git ccache clang-format clang-tidy gdb valgrind \ tcpdump wireshark sqlite sqlite3 libsqlite3-dev \ qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools \ openmpi-bin openmpi-common openmpi-doc libopenmpi-dev \ doxygen graphviz imagemagick python3-sphinx dia texlive dvipng latexmk texlive-extra-utils texlive-latex-extra \ libeigen3-dev gsl-bin libgsl-dev libgslcblas0 \ libxml2 libxml2-dev libgtk-3-dev \ lxc lxc-templates iproute2 iptables \ libboost-all-dev上面将 ns3官方说明文档-LINUX部分对应安装包放到了一起;官方说明如下:
2)Sionna-RT仿真依赖
下面为INSTALLATION STEPS FOR UBUNTU部分,为了安装Sionna-RT;
sudo apt update && sudo apt upgrade -ysudo apt install -y \ build-essential git \ python3.12 python3.12-venv python3.12-dev \ cmake pkg-config \ libsqlite3-dev libxml2-dev libbz2-dev \ libssl-dev libc-ares-dev libgsl-dev libgtk-3-dev2. ns-allinone-3.48安装包下载
a.ns-allinone-3.48下载
ns-allinone-3.48官方下载链接:ns-3.48 | ns-3
访问外网下载时间可能会比较久,可以使用chrome下载。
b.ns-allinone-3.48安装说明
按照下图点开链接,即可找到官方安装说明文档,根据目录找到INSTALLATION STEPS FOR UBUNTU即可。
c.解压压缩包
建议将下载的ns-allinone-3.48.tar.bz2压缩包解压到指定的项目或工程目录下,如本机将其解压到/home/zxx/Project/NS3Projects/路径下,解压操作如下:
1)创建该目标路径:
mkdir -p /home/zxx/Project/NS3Projects2)解压该压缩包到目标路径
- 使用ubuntu自带解压工具:右击该压缩包,选择提取到(Extract to),选择目标文件路径,点击右上角的选择(select),等待解压完成;
- 使用tar指令将其解压到指定路径:跳转到压缩包所在文件夹,右击打开命令端,解压至目标目录(tar -xjf ns-allinone-3.48.tar.bz2 -C /home/ns3);
tar -xjf ns-allinone-3.48.tar.bz2 -C /home/zxx/Project/NS3Projects3、构建python虚拟环境并安装依赖
建议使用python3.12版本自行构建的虚拟环境来安装ns3,不要使用conda环境,可能会出现各种环境适配问题。
a.构建python虚拟环境
1)进入解压后的ns-allinone-3.48文件夹;
2)右击ns-3.48文件夹,选择在命令端打开(open in terminal);
3)创建ns3venv虚拟环境;
输入如下指令,该指令创建的名为ns3venv的虚拟环境默认路径在/home/ns3venv文件夹中;
python3.12 -m venv ns3venv激活该虚拟环境,若当前命令端在~/ns-allinone-3.48/ns-3.48$下,则输入:
source /home/zxx/ns3venv/bin/activate注:其中~/zxx为home文件下的系统用户名,需切换到个人用户中,后续路经不变;
确认当前命令端在ns3.48路径下:
b.安装环境依赖
1)安装pip
安装pip;
python -m pip install --upgrade pip修改pip源为清华镜像源:
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple2)安装其他环境依赖
安装sionna、cppyy等依赖,复制并执行以下指令;
pip install \ sionna==1.2.0 \ sionna-rt==1.2.0 \ pybind11==2.11.1 \ cppyy==3.5.0过程中会安装tensorflow2.21,无需再次安装,官方的安装到此已经结束;
3)安装pytorch(可选)
若需要安装pytorch,请在确保安装CUDA相关环境后,按照以下指令安装pytorch2.14:
查看cuda版本:
nvidia-smi在pytorch官网选择要装配置信息:
输入该指令进行安装;
pip3 install torch torchvision --index-url https://download.pytorch.org/whl/cu132等待安装完成即可。
4、编译和构建ns3
a.编译ns3;
./ns3 configure --enable-examples --enable-tests --enable-python-bindings编译完成后如下图示;
请注意中间的打印信息是否打印:“Sionna-RT support enabled: all required dependencies were found.”这句,若未找到相关的依赖,则需要重新编译;
若Sionna-RT编译跳过,则清除缓存后,重新编译;请逐行输入并执行以下指令:
rm -rf build rm -rf cmake-cache rm -rf .lock-ns3_linux_build ./ns3 configure --enable-examples --enable-tests --enable-python-bindingsb.构建ns3
复制并执行以下指令构建ns3:
./ns3 build等待构建完成,中间可能会打印很多警告,可以暂时忽略;
5、运行测试样例
输入以下指令测试安装是否成功,该样例为sionna无线信道模拟示例。
./ns3 run sionna-rt-channel-example至此,Ubuntu24.04安装ns-allinone-3.48结束。