Linux
Linux分类文章
sensetime阿清
嵌入式AI研发人员,不定期发布学习笔记
展开
-
Linux解决“No space left on device“问题
维护一个后台运行的程序时,突然报了"No space left on device"的错。因为程序需要一直向磁盘写入图片文件,因此第一反应怀疑是不是图片太多导致磁盘空间不足?但事实并不是这样。通过命令df -h查看磁盘占用率发现用量并没有满。接着自然联想到是不是图片数量太多了,超过了系统最大的文件范围?通过命令df -i看到这条假设也是不对的。带着疑问在网上搜索答案,发现了这篇文章:https://blog.merovius.de/2013/10/20/ext4-mysterious-no-sp原创 2021-06-15 15:37:33 · 582 阅读 · 1 评论 -
shell实现嵌入式软件看门狗
shell实现嵌入式软件看门狗长时间运行的嵌入式程序,有时会因为莫名其妙的原因挂掉,这时就需要有其他的程序来一直监控我们的程序。由于监控程序属于软件层面,因此这种程序被称为“软件看门狗”。这里用一个shell脚本实现该功能,这个脚本会一直监控后台的名为“XXX”的程序,如果程序挂掉,就会重启设备。设备启动时,会自动开启程序和这个脚本。代码如下:#!/bin/shwhile :do stillRunning=$(ps |grep "XXX" |grep -v "grep") if [ "$s原创 2021-10-11 14:01:30 · 344 阅读 · 0 评论 -
Debug的好帮手,C/C++神奇的编译选项
Debug的好帮手,C/C++神奇的编译选项嵌入式代码的debug一直是一个比较麻烦的问题,这些代码通常无法在本地PC调试,而在开发板上显示的错误有时又太过简单(例如经典的Segmentation Fault和Bus Error),无法追溯到错误的具体位置,有时甚至都不会报错,程序就莫名其妙的中断了。这里提供一个非常好用的解决办法,就是在你的编译选项中加入下列内容:-fsanitize=address -fno-omit-frame-pointer加入后,原本的CMake就变成了下面的样子。#原创 2021-10-11 10:41:10 · 397 阅读 · 0 评论 -
Qt解决Linux/ARM下QSound无法播放的问题
Qt解决Linux/ARM下QSound无法播放的问题Qt在Linux/ARM环境下使用QSound播放音频时,有时会遇到音频无法播放的问题。这有可能是音频文件与Qt不兼容的问题。QSound只能播放.wav格式的音频,无法播放诸如.mp3格式的音频。但即使是.wav格式的音频,也存在 NIST/Sphere和Microsoft WAVE类型的区别。注意!Qt只支持Microsoft WAVE的.wav格式音频,不支持NIST/Sphere的。 因此当你怀疑你的.wav音频格式时,建议使用文件转换器将原创 2021-02-20 15:50:10 · 1701 阅读 · 1 评论 -
ARM上搜索WIFI并解析字符串
ARM上搜索WIFI并解析字符串背景:项目部署在ARM上,现要实现软件层面的WIFI模块,需要在Qt上通过system指令搜索wifi并解析字符串。方案1:Qt可以使用system命令,使用iwlist指令并配合grep和sed指令将搜索结果过滤为我们想要的格式,即下面这样的格式:wifi名wifi信号强度wifi加密模式...最后Qt通过readLine()的方式逐行读取文件中的内容。代码如下:system("sudo iwlist wlan0 scan >./temp ");原创 2021-01-25 11:51:30 · 1778 阅读 · 8 评论 -
在Rockchip RK3399 Pro开发板上跑通第一个Qt程序
在Rockchip RK3399 Pro开发板上跑通第一个Qt程序准备工作:将Qt从Windows移植到Linux一、交叉编译器的准备下载交叉编译工具安装交叉编译工具二、交叉编译Qt库三、在QtCreator上交叉编译安装QtCreator四、在ARM开发板上跑通第一个Qt程序开发板Qt配置执行Qt程序参考资料这是我毕业后做的第一个项目。项目过程中,要求把之前在Windows上编译的Qt程序移植到Rockchip RK3399 Pro开发板上。参考了网上的诸多资料后,现在已经可以在开发板上跑通Qt程序原创 2020-11-16 09:38:21 · 4359 阅读 · 0 评论