You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux Mint下VSCode+PlatformIO编译报错:No space left on device

问题场景与报错信息

我正在使用Linux Mint 21.1,搭配VSCode及PlatformIO扩展,项目文件夹位于通过Samba访问的服务器上。该配置在Windows系统中修改一处注册表后可正常运行,但编译代码时出现如下报错:

Compiling .pio/build/ESP32/lib1d9/WiFi/WiFiSTA.cpp.o
/tmp/ccE4gY8E.s: Assembler messages:
/tmp/ccE4gY8E.s:3187: Fatal error: can't write 4 bytes to section .literal._ZN11EEPROMClassC2Ev of .pio/build/ESP32/libed2/EEPROM/EEPROM.cpp.o: 'Operation not supported'
/tmp/ccE4gY8E.s:3187: Fatal error: can't close .pio/build/ESP32/libed2/EEPROM/EEPROM.cpp.o: No space left on device
*** [.pio/build/ESP32/libed2/EEPROM/EEPROM.cpp.o] Error 1
/tmp/cczanPYc.s: Assembler messages:
/tmp/cczanPYc.s:292: Fatal error: can't write 4 bytes to section .literal._ZN9WiFiClass9printDiagER5Print of .pio/build/ESP32/lib1d9/WiFi/WiFi.cpp.o: 'Operation not supported'
/tmp/cczanPYc.s:292: Fatal error: can't close .pio/build/ESP32/lib1d9/WiFi/WiFi.cpp.o: No space left on device
*** [.pio/build/ESP32/lib1d9/WiFi/WiFi.cpp.o] Error 1
/tmp/cc6b9P0Z.s: Assembler messages:
/tmp/cc6b9P0Z.s:1674: Fatal error: can't write 4 bytes to section .literal._Z18wifi_softap_configP13wifi_config_tPKcS2_h16wifi_auth_mode_thhbt of .pio/build/ESP32/lib1d9/WiFi/WiFiAP.cpp.o: 'Operation not supported'
/tmp/cc6b9P0Z.s:1674: Fatal error: can't close .pio/build/ESP32/lib1d9/WiFi/WiFiAP.cpp.o: No space left on device
*** [.pio/build/ESP32/lib1d9/WiFi/WiFiAP.cpp.o] Error 1
/tmp/cc5AEBw4.s: Assembler messages:
/tmp/cc5AEBw4.s:1583: Fatal error: can't write 4 bytes to section .literal._ZN9WiFiMultiD2Ev of .pio/build/ESP32/lib1d9/WiFi/WiFiMulti.cpp.o: 'Operation not supported'
/tmp/cc5AEBw4.s:1583: Fatal error: can't close .pio/build/ESP32/lib1d9/WiFi/WiFiMulti.cpp.o: No space left on device
*** [.pio/build/ESP32/lib1d9/WiFi/WiFiMulti.cpp.o] Error 1
/tmp/ccPCAQ20.s: Assembler messages:
/tmp/ccPCAQ20.s:5420: Fatal error: can't write 4 bytes to section .literal._ZN10WiFiClient7connectE9IPAddresst of .pio/build/ESP32/lib1d9/WiFi/WiFiClient.cpp.o: 'No space left on device'
/home/rj/.platformio/packages/toolchain-xtensa-esp32/bin/../lib/gcc/xtensa-esp32-elf/8.4.0/../../../../xtensa-esp32-elf/bin/as: BFD (crosstool-NG esp-2021r2-patch5) 2.35.1.20201223 assertion fail /builds/idf/crosstool-NG/.build/xtensa-esp32-elf/src/binutils/bfd/elf.c:3163

服务器和我的笔记本电脑都应该有充足的存储空间,但不清楚报错中提到的空间不足的目录是哪个,也不知道如何解决该问题,本人在Linux和编程方面经验较少,寻求解决建议。

解决建议

1. 排查本地/tmp目录空间

报错里的临时编译文件都存储在/tmp目录,先检查该目录剩余空间:

  • 打开终端执行命令:df -h /tmp
  • 若空间不足,可先重启系统自动清理临时文件;也可手动清理无用文件:sudo rm -rf /tmp/*(注意不要误删正在使用的文件)
  • 若/tmp频繁空间不足,可修改系统配置扩大临时分区,或指定PlatformIO临时目录到其他有充足空间的本地路径。

2. 将PlatformIO构建目录移至本地磁盘

项目在Samba共享目录上,编译时的构建文件写入共享目录可能触发权限或兼容性问题,建议将构建目录改到本地:

  • 编辑项目根目录的platformio.ini,添加一行配置:build_dir = /home/你的用户名/本地路径/build(替换为你本地有空间的路径)
  • 或修改全局配置:打开PlatformIO Home → Settings → Platforms → Build Path,设置为本地路径。

3. 调整Samba挂载参数

报错中的Operation not supported大概率是Samba共享不支持字节范围锁导致的,需修改挂载参数:

  • 查看当前挂载命令,确保添加nobrl参数,完整挂载命令示例:sudo mount -t cifs //服务器地址/共享目录 /本地挂载点 -o username=你的用户名,password=你的密码,nobrl
  • 若未添加该参数,先卸载共享:sudo umount /本地挂载点,再重新挂载并加上nobrl参数。

4. 验证实际磁盘空间

再次确认本地和服务器的磁盘剩余空间:

  • 本地磁盘检查:df -h
  • 服务器端(若能登录):df -h,重点查看共享目录所在分区的剩余空间。

5. 清理PlatformIO缓存

缓存文件可能占用空间或引发异常,清理缓存:

  • 打开PlatformIO Home,找到对应项目,点击Clean按钮
  • 或手动删除项目下的.pio目录,之后重新编译

内容的提问来源于stack exchange,提问作者Runar Jørgensen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 13:23:08