# Livox Viewer 2 Linux启动SIGSEGV：getifaddrs返回ifa_addr。

> 原文链接：https://robotics.hellobike.com/pitfalls/2026-09-22-livox-ros-driver2-263
> 频道：pitfalls | 更新日期：2026-09-22 | 标签：auto, github-issue, livox_ros_driver2
> 核心摘要：代理TUN接口致getifaddrs返回空地址引发崩溃，可通过停用代理服务或LD_PRELOAD补丁修复。

# Livox Viewer 2 Linux启动SIGSEGV：getifaddrs返回ifa_addr。

::: v-pre
> 本文由 AI 根据公开内容整理，可能有误，请以原文为准：[Livox Viewer 2 Linux SIGSEGV when getifaddrs() returns ifa_addr == NULL](https://github.com/Livox-SDK/livox_ros_driver2/issues/263)（GitHub Livox-SDK/livox_ros_driver2 #263）

**状态**：有绕过办法

## 问题

Livox Viewer 2在Linux启动时触发SIGSEGV，GDB定位到访问struct ifaddrs::ifa_addr偏移0x18处。因Clash Verge等代理创建的TUN接口使getifaddrs()返回ifa_addr==NULL条目，程序未做空指针检查直接解引用sa_family导致崩溃。该问题与LiDAR硬件无关，在Viewer 2.3.0至2.6.0版本均复现。

## 环境

Ubuntu 22.04 x86_64；NVIDIA RTX 3080/3060 Laptop；Driver 550/575/580；Livox Viewer 2.3.0-2.6.0；Clash Verge Rev/Mihomo代理软件。

## 解决办法

1. 彻底停止创建TUN/TAP接口的代理/VPN服务及其后台核心进程（仅关闭GUI无效），执行ip link确认虚拟接口消失后运行./LivoxViewer2.sh。
2. 若需保留代理，将fix_ifaddrs.c与LivoxViewer2-fixed.sh置于LivoxViewer2.sh同级目录。
3. 执行gcc -shared -fPIC -O2 fix_ifaddrs.c -o libfix_ifaddrs.so -ldl编译兼容库。
4. 通过LivoxViewer2-fixed.sh脚本以LD_PRELOAD方式加载libfix_ifaddrs.so启动Viewer，拦截并过滤空地址条目。

讨论原作者：@ENDLESS0321 等，版权归原作者所有。
:::

## 原始参考来源 (Sources)

- [GitHub Livox-SDK/livox_ros_driver2 #263：Livox Viewer 2 Linux SIGSEGV when getifaddrs() returns ifa_addr == NULL](https://github.com/Livox-SDK/livox_ros_driver2/issues/263)