linux
文章平均质量分 56
Aero Auto
learning...
展开
-
sudo: command not found
【代码】sudo: command not found。原创 2022-10-13 16:16:29 · 358 阅读 · 0 评论 -
pthread_cond_destroy死锁卡住问题处理记录
pthread_cond_destroy hang 阻塞原创 2022-09-27 17:06:03 · 1845 阅读 · 0 评论 -
error processing package libapache2-mod-php7.2
安装libpciaccess报错:Setting up php7.2-cli (7.2.24-0ubuntu0.18.04.11) ...dpkg: error processing package php7.2-cli (--configure): installed php7.2-cli package post-installation script subprocess returned error exit status 10No apport report written becaus原创 2022-05-05 15:05:58 · 789 阅读 · 0 评论 -
i2cTool交叉编译
https://i2c.wiki.kernel.org/index.php/I2C_ToolsI2C -tools包包含一组用于Linux的I2C工具:总线探测工具、芯片转储器、寄存器级SMBus访问助手、EEPROM解码脚本、EEPROM编程工具和用于SMBus访问的python模块。只要内核中包含I2C支持,就支持所有版本的Linux。这些工具曾经是航天器传感器软件包的一部分,但后来被拆分为一个单独的软件包。下载源码, 解压https://mirrors.edge.kernel.org/pub原创 2022-03-10 10:26:47 · 1317 阅读 · 0 评论 -
谁是卧底? 科普影子寄存器
寄存器是软件和硬件真正交互的接口. 影子寄存器是常常听到, 但很多人没有正常了解.简单科普一下.大多数寄存器是保存静态的数据, 比如某个屏幕的硬件分辨率,固定是1920x1080的.我们给摄像头的长宽寄存器分别设置为1920和1080.那么这个摄像头输出的图像大小就这么定好了.But, 有时候, 有的数据参数需要在运行时动态地更新, 比如用户用鼠标把窗口缩小成360P了, 这时候需要设置新的分辨率. 但是, 这些数据不能在当前正处理的帧上更新, 只能在某一帧处理结束并且新的一帧尚未开始这样的节点, 从采原创 2022-01-28 11:53:07 · 2044 阅读 · 1 评论 -
linux内存相关命令汇总
进程调度内存管理查看内存剩余free:e0005055@ibudev20:~$ free total used free shared buff/cache availableMem: 32791720 19499516 935896 2552 12356308 12824920Swap: 2097148 2048 2095100其中,原创 2021-11-23 19:40:11 · 5720 阅读 · 1 评论 -
vim环境配置
新入公司的电脑卡到爆,编译服务器居然是8核的。想用vim,没有安装权限,也不能联网。无奈只能自己在家里的虚拟机鼓捣好了,再上传到编译服务器。顺便记录一下过程。1. 安装依赖应用1.1 cscope1.2 ctags1.3 插件管理2. 使用方法2.1 cscope2.1.1 创建数据库cscope -Rbqk-R:为当前目录下所有子目录创建数据库-b:生成数据库之后退出,不启动自带界面-q:生成cscope.in.out和cscope.po.out,加快搜索速度-k:跳过/usr原创 2021-08-27 10:52:27 · 346 阅读 · 0 评论 -
ext4 exfat ntfs无法自动挂载问题
问题描述只有fat32可以识别,其它格式无法正常挂载。处理过程ext4处理# create /dev/sda create /dev/sda1 [ 340.311161] EXT4-fs (sda1): Unrecognized mount option "utf8=1" or missing value [ 340.323172]> EXT4-fs (sda1): Unrecognized mount option "utf8=1" or missing value [ > 3原创 2021-02-27 17:43:10 · 3661 阅读 · 0 评论 -
Linux打印函数调用栈
应用程序打印调用栈定义dump_stack函数如下:#include <execinfo.h> #include <stdlib.h> #include <unistd.h> #include <stdio.h> #define STR_SIZE 100 #define STACK_MUN 100 void dump_stack(){ int j, strack_num; void *strack_buffer[STACK_原创 2021-07-29 10:16:09 · 581 阅读 · 0 评论 -
全志T7/T507 Qt5.12.5移植记录
1.error “Qt requires C++11 support”1.1.Qt编译报错:…/…/…/include/QtCore/…/…/src/corelib/global/qglobal.h:1172:1:warning: identifier ‘nullptr’ is a keyword in C++11 [-Wc++0x-compat]Q_CORE_EXPORT int qEnvironmentVariableIntValue(const char *varName,bool *ok=原创 2021-06-18 11:37:07 · 4368 阅读 · 1 评论 -
Linux内核之进程1:进程的概念
本文援用ppipp笔记,略做修改。1.什么是进程?进程:资源的封装单位;linux用一个PCB来描述进程,即task_struct, 其包含mm,fs,files,signal…root目录,是一个进程概念,不是系统概念;每一个进程都可以用chroot命令设定属于自己的root路径,如果没有设置,继承父进程值。apropos chrootman chroot 2如下图,将分区/dev/sda5挂载到/mnt/a,调用chroot,改变root目录,当前进程下的文件b.txt即位于当前进程的根转载 2021-05-05 12:09:43 · 188 阅读 · 0 评论 -
random: crng init done导致应用启动慢的问题
现象:开机后,应用启动阻塞30秒,直到random: crng init done之后才能继续运行。原因:追查发现是由于getrandom后,进入系统调用SYSC_getrandom:SYSCALL_DEFINE3(getrandom, char __user *, buf, size_t, count, unsigned int, flags){ if (flags & ~(GRND_NONBLOCK|GRND_RANDOM)) return -EINVAL; if (co原创 2020-05-15 14:40:45 · 15167 阅读 · 3 评论 -
warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]
drivers/video/fbdev/disp2/disp/dev_fb.c:129:2: warning: ISO C90 forbids mixed declarations and code [-Wdeclaration-after-statement]s32 chanback = g_fbi.layer_hdl[fb_id][0];错误原因:ISO C90禁止变量声明在代码之后...原创 2020-04-22 17:13:11 · 770 阅读 · 0 评论 -
error: function declaration isn't a prototype [-Werror=strict-prototypes]
error: function declaration isn’t a prototype [-Werror=strict-prototypes]int show_fb_to_ui()警告原因是show_fb_to_ui函数参数没有时候,需要设置为void。修改方法一:int show_fb_to_ui(void)修改方法二:更改编译选项 -Werror=strict-proto...原创 2020-04-22 17:04:12 · 2061 阅读 · 0 评论 -
note: forward declaration of 'class QButtonGroup'
升级QT5.12.5之后,以前的一个应用编译失败,提示:error: invalid use of incomplete type ‘class QButtonGroup’Qt_5_12_5/include/QtWidgets/qabstractbutton.h:53:7: note: forward declaration of ‘class QButtonGroup’原因是没有变量声...原创 2020-03-09 16:39:41 · 1747 阅读 · 0 评论 -
linux入门 六大殿堂级神书
第一:《Linux内核设计与实现》 简称LKD,从入门开始,介绍了诸如进程管理、系统调用、中断和中断处理程序、内核同步、时间管理、内存管理、地址空间、调试技术等方面,内容比较浅显易懂,个人认为是内核新人首先必读的书籍。新人得有此书,足矣! 第二:《深入理解Linux内核》 简称ULK,相比于LKD的内容不够深入、覆盖面不广,ULK要深入全面得多。 前面这两本,一本提纲挈领,一本全面...原创 2020-05-15 20:03:54 · 1338 阅读 · 0 评论 -
Qt库的GDB调试
在移植Qt之后,运行测试程序报错,发生在lib/libQt5Gui.so.5如果针对Qt自身的库文件添加GDB调试信息呢?如下验证有效:framework\qt\qt-everywhere-src-5.12.5\qtbase\mkspecs\linux-aarch64-gnu-g++\qmake.conf添加QMAKE_CFLAGS +=-g QMAKE_CXXFLAGS +=-g# ...原创 2019-12-25 16:41:12 · 1348 阅读 · 0 评论 -
Failed to load EGL device integration "eglfs_mali" EGL library doesn't support Emulator extensions
QT移植到全志T芯片,生成应用程序运行报错:/analogclock qt.qpa.egldeviceintegration: Failed to load EGL deviceintegration “eglfs_mali” EGL library doesn’t support Emulatorextensions Aborted1.按照网络搜索,设置:export QT_QPA...原创 2019-12-24 16:29:39 · 4509 阅读 · 6 评论 -
多核快速编译模板
cpu_cores=`cat /proc/cpuinfo | grep "processor" | wc -l`if [ ${cpu_cores} -le 8 ] ; then LICHEE_JLEVEL=${cpu_cores}else LICHEE_JLEVEL=`expr ${cpu_cores} / 2`fimake -j${LICHEE_JLEVEL}原创 2019-12-23 15:59:50 · 153 阅读 · 0 评论 -
linux获取内存大小代码
代码:#include <sys/sysinfo.h> struct sysinfo s_info; int error = sysinfo(&s_info); if(s_info.totalram>1*1024*1024*1024) { logv("error0: %d, total: %lu free: %lu \n"...原创 2019-12-04 17:08:11 · 638 阅读 · 0 评论 -
linux设备驱动命令 lsmod insmod rmmod modinfo modprobe
lsmod 显示已经加载的模组:# lsmodmali 291301 0 - Live 0xbf1f5000 (O)xradio_core 231955 0 - Live 0xbf15b000xradio_mac 260629 1 xradio_core, Live 0xbf109000sunxi_eve 6574 0 - Live 0xbf103000gslX680new 64178...原创 2019-11-27 21:20:24 · 891 阅读 · 0 评论 -
shell 查找输入设备
shell 查找输入设备TouchDevice=gslX680for InputDevices in /sys/class/input/input*do DeviceName=`cat $InputDevices/name` #echo $InputDevices name:$DeviceName if [ $DeviceName == $TouchDevice ];...原创 2019-11-20 11:31:10 · 177 阅读 · 0 评论 -
makefile shell条件判断汇总
1.makefile判断文件是否存在使用wildcard函数与ifeq或者ifneq:格式:ifneq ($(MISC_CONFIG), $(wildcard $(MISC_CONFIG)))…else…endif示例,判断…/sdk_compose/config是否存在:MISC_CONFIG=../sdk_compose/configifneq ($(MISC_CON...原创 2019-03-27 20:43:13 · 4097 阅读 · 0 评论 -
libusb 解析描述符
static void dump_altsetting(libusb_device_handle *dev, const struct libusb_interface_descriptor *interface){// char cls[128], subcls[128], proto[128];// char *ifstr; // get_class_string(cls, siz...原创 2019-11-15 18:08:06 · 577 阅读 · 0 评论 -
软连接 硬链接 与cp -p
1.软连接可以链接目录和文件。ln -s 源文件 目标文件硬链接只可以链接文件,并且不能跨文件系统。ln 源文件 目标文件2.软连接是创建一个新的文件,指向原文件。硬链接是增加一个文件名到block里面,对应同样的inode号码。使用ls -i可以看到对应的区别:ll -i总用量 264812556092 lrwxrwxrwx 1 yuanguochao yuanguocha...原创 2019-11-13 20:40:30 · 5173 阅读 · 0 评论 -
一张图看懂git空间图例
一下git实验版本:git --versiongit version 1.9.1图例:resetlinux-3.10$:git st ./位于分支 airplay要提交的变更: (使用 "git reset HEAD <文件>..." 以取消暂存) 修改: README尚未暂存以备提交的变更: (使用 "git ad...原创 2019-10-21 13:51:37 · 309 阅读 · 0 评论 -
用sysfs查看linux下usb设备的描述符
/sys/bus/usb/devices/下的路径命名规则根hub-端口:设备-接口一般,1-0是hub自身信息,当hub上有插入设备时,就会出现1-1:1了。1.查看目录:ls /sys/bus/usb/devices/1-0:1.0 1-1.1:1.0 2-1 4-0:1.0 usb1 usb41-1 1-1:1.0 2...原创 2019-06-14 09:27:12 · 4842 阅读 · 0 评论 -
安卓-windows交叉编译调试脚本 adb+bat
覆盖原目标机测试文件:adb shell killall Testadb push %~dp0Test /usr/binadb shell chmod 777 /usr/bin/Test删除Windows当前输出目录,以及目标机远程输出目录rd /s /q %~dp0test_file\output\adb shell rm -r /tmp/output/*adb push %~d...原创 2019-06-12 19:12:24 · 216 阅读 · 0 评论 -
Cannot find user-level thread for LW
使用std thread创建线程,运行出错。gdb提示Cannot find user-level thread for LWP:gdb TestGNU gdb (GDB) 7.5Copyright © 2012 Free Software Foundation, Inc.License GPLv3+: GNU GPL version 3 or later http://gnu.org/l...原创 2019-06-05 15:23:25 · 1864 阅读 · 0 评论 -
超级有用的Makefile调试技巧
有时候makefile报错真是讨厌呢,找了一下发现这个资料不错,好喜欢好喜欢的呢。https://www.cnblogs.com/LoTGu/p/5936465.html转载 2019-04-23 14:14:36 · 173 阅读 · 1 评论 -
Kconfig原理与示例(二)常用语法关键词
上次进了Kconfig的原理,本文主要介绍写法1.comment 显示在菜单的注释:comment “YGC_CFG_TST”2.config 配置项,config USB意义就是定义CONFIG_USB变量:config YGC_CFG_TSTbool “ygc bool test”变量有几种类型:bool 只有y和ntristate 有y n和mdepends on 依赖,...原创 2019-04-17 12:32:11 · 432 阅读 · 0 评论 -
Kconfig原理与示例
1.举例讲,linux-3.10\drivers\usb\Makefile截取一段:## Makefile for the kernel USB device drivers.## Object files in subdirectoriesobj-$(CONFIG_USB) += core/obj-$(CONFIG_USB_DWC3) += dwc3/obj-$(CON...原创 2019-04-17 11:27:55 · 583 阅读 · 0 评论 -
linux设备树DTS摘要
1.设备树,是用树状结构,来描述系统硬件信息。这个树状结构是以根节点“/”开始的。每一个硬件信息单元,称为节点,挂在根节点或者其它节点上。/根节点 |-节点1 |-节点1-1 |节点1-2 |-节点2 |-节点32.节点结构与格式[label:] node-name[@unit-address] {[properties definitions][child...原创 2019-03-04 20:10:39 · 461 阅读 · 0 评论 -
linux设备节点侦测——基于NETLINK
class DeviceDetectNotifier{public:virtual int DeviceEvent(int event, char* dev_name) = 0;virtual ~DeviceDetectNotifier() {};};class DeviceDetecter{public:static DeviceDetecter* getInstence();...原创 2019-06-10 19:15:48 · 478 阅读 · 0 评论 -
linux设备节点侦测——基于inotify
接口:#ifndef DEVICE_DETECTER_H#define DEVICE_DETECTER_Hnamespace devicedetecter{class DeviceDetectNotifier{public: virtual int DeviceEvent(int event, char* dev_name) = 0; virtual ~Device...原创 2019-06-10 22:42:18 · 322 阅读 · 0 评论 -
Vim编辑器无法显示中文字符
Vim编辑器无法显示中文字符• 解决办法,添加编码格式“utf-8”– 打开文件“/etc/vim/vimrc”– 在最底部添加代码“set fencs=utf-8,GB18030,ucs-bom,default,latin1”...原创 2019-07-02 19:59:48 · 716 阅读 · 0 评论 -
rmmod: can't change directory to '/lib/modules': No such file or directory
用rmmod卸载模块的时候会弹出错误,如下– rmmod: can't change directory to '/lib/modules': No such file or directory• 提示没有’/lib/modules’目录– 使用命令“#mkdir /lib/modules”,新建一个目录• 用rmmod命令仍然会出现如下错误:– rmmod: can't change ...原创 2019-07-02 20:03:39 · 1063 阅读 · 0 评论 -
百度CarLife开发备忘
1.建立aoa通道可以通过libusb直接打开手机端的aoa模式,发送百度CarLife描述信息。此后会重新枚举aoa设备,手机端会提示是否需要下载carlife。也可以通过内核来建立一个aoa驱动节点,通过节点来读写数据。节点侦测程序参考linux设备节点侦测注意接口的独立性封装,这样在其它方案如Android Auto、Android 手机镜像时复用。2.建立socket通过aoa...原创 2019-08-24 17:37:19 · 2166 阅读 · 0 评论 -
Android Auto开发备忘
1.建立aoa通道可以通过libusb直接打开手机端的aoa模式,发送Android Auto描述信息。此后会重新枚举aoa设备,手机端会提示是否需要下载Android Auto。也可以通过内核来建立一个aoa驱动节点,通过节点来读写数据。节点侦测程序参考linux设备节点侦测注意接口的独立性封装,这样在其它方案如CarLife、Android 手机镜像时复用。2.准备开发环境需要连接...原创 2019-08-24 17:44:59 · 917 阅读 · 4 评论 -
苹果 Apple CarPlay开发备忘
1.建立iAP2通道与Android Auto不同,Apple CarPlay需要通过苹果CP IC芯片鉴权,在iAP初期进行鉴权核对。否则无法继续通信。 IC芯片需要单独购买。2.切换苹果手机iPhone到usb主机模式发送0x51的usb命令让手机切换到主机模式,此后苹果手机会反过来枚举,声明我方设备为NCM设备,此时iPhone可以打开网卡模式,来进行网络通信。3.准备开发环境可以...原创 2019-08-24 17:54:30 · 7787 阅读 · 33 评论