"cat: write error: No space left on device"当我使用"cat"写入字符设备时



我正在尝试在Linux 4.14上使用VS1053音频解码器来播放音乐。该设备通过SPI总线进行通信,我已经开发了一个驱动程序并将VS1053注册为字符设备,感谢您 https://github.com/rvp-nl/vs10xx-linux。问题来了。

播放音乐的方式是:

cat musicfile.mp3 > /dev/VS1053_device

当我将WAV音乐文件扔到设备时,一切正常,音乐播放良好。但是,当我将mp3音乐文件扔到设备时,Linux会引发错误

cat:写入错误:设备上没有剩余空间

我已经在许多网站上搜索了原因。许多人说,检查文件系统上的可用空间和可用索引节点,但这是我的结果:

root@s32v234sbc:~# df -i                                                        
Filesystem     Inodes IUsed  IFree IUse% Mounted on                             
/dev/root      956592 10795 945797    2% /                                      
devtmpfs       234285   308 233977    1% /dev                                   
tmpfs          234333   205 234128    1% /run                                   
tmpfs          234333    10 234323    1% /var/volatile                          
root@s32v234sbc:~# df -h                                                        
Filesystem      Size  Used Avail Use% Mounted on                                
/dev/root        15G  412M   14G   3% /                                         
devtmpfs        916M     0  916M   0% /dev                                      
tmpfs           916M   84K  916M   1% /run                                      
tmpfs           916M   28K  916M   1% /var/volatile                             
root@s32v234sbc:~# 

音乐文件限制在100MB以内,空间不可能用完。

我试图编写一个打印文件程序来替换"cat",但这也不起作用。我不知道为什么以及如何发生此错误。

如果有人能在这方面帮助我,我非常感谢!!

请尝试以下命令:

tune2fs -l /dev/VS1053_device | grep -i reserved

而且猫不适合您正在执行的操作。MP3格式有各种各样的垃圾,可以潜伏在文件的前端和结尾,这需要被剥离。尝试使用ffmpeg 或 mp3wrap 或

播放

您正在使用的驱动程序似乎有问题。当您得到"设备上没有剩余空间"时,这并不意味着在这种情况下本地文件系统已满。这可能意味着SPI总线的本地或另一端存在一些问题。您使用的驱动程序可能会从 linux 内核的 SPI 驱动程序接收 -ENOSPC 状态,但您的驱动程序无法正确处理此错误。因此,需要对您正在使用的驱动程序进行一些深入研究。

相关内容

  • 没有找到相关文章

最新更新