linux与虚拟机
dujunqiu
汽车电子单片机,linux的嵌入式软件开发;会用一些python来进行开发辅助和自动化测试工作
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
abort()ing pseudo client by server request. See https://wiki.yoctoproject.org/wiki/Pseudo_Abort for
abort()ing pseudo client by server request.;path mismatch [4 links]: ino 45132677 db原创 2025-08-04 10:15:17 · 484 阅读 · 0 评论 -
emmc初始化加载失败--mmc0: error -110 whilst initialising MMC card
文章摘要 调试新硬件时发现eMMC无法挂载,内核报错-110(ETIMEDOUT)。通过硬件排查确认电源和数据线连接正常后,重点进行软件排查。在mmc_switch函数中添加调试日志,发现多次CMD6命令交互成功(如设置索引0xaf、0x22等参数时均返回成功响应0x00000800),但最终仍初始化失败。问题可能出在时序切换或状态检查环节,需进一步分析CMD6命令执行后的总线时序切换和状态校验流程。日志显示所有CMD6命令均成功完成,但后续流程仍导致超时,需检查硬件兼容性或时序参数配置。原创 2025-07-09 15:09:03 · 2014 阅读 · 0 评论 -
执行shell指令的时候,设置了 grep 过滤, 还是输出了一些无关数据
在使用grepstderrgrep确保grep的正则表达式能准确匹配目标数据。如果匹配不完整或过于宽松,可能会导致意外的数据被匹配。-w-i可以借助在线工具(如)调试正则表达式。stderr默认情况下,grep只作用于标准输出 (stdout),而命令的错误流 (stderr) 可能仍然直接输出到终端。grepstderr如果你只想过滤输出流而不关心错误流,可以将错误流重定向到/dev/null。原创 2025-02-13 15:38:32 · 1150 阅读 · 0 评论 -
./full_ota.sh: 93: Syntax error: redirection unexpected
IFS=’ ’ read -a allopts <<< “$@” 使用了 <<<(Here String)语法。这是 bash 提供的特性,但在 dash 或其他 POSIX 兼容的 sh 中是不支持的。我这边报错对应的语句 " IFS=’ ’ read -a allopts <<< “$@”"修改之后可以正常执行成功。查看.sh脚本,开头为。原创 2025-02-07 18:13:06 · 375 阅读 · 0 评论 -
./build.sh: 9: Syntax error: “(“ unexpected
如果必须使用/bin/sh,需要改用dash支持的函数定义方式,即不使用function关键字,而直接定义函数名称并加上括号()。/bin/sh# 一键编译生成烧写包# 先批量使用ts_fakeroot增加一下root权限./build.sh。原创 2025-02-07 08:35:49 · 654 阅读 · 0 评论 -
bash: ./xxx: No such file or directory
在使用开源或他人可执行文件的时候,可能会遇到 bash: ./squashfs2sparse: No such file or directory 的报错;实际测试发现该文件存在,并且有可执行权限;我们可以使用 patchelf 工具,来修改 动态库的依赖路径;前提是个人环境下必须要有该动态库,才可以进行修改;3:可执行文件依赖一个私人路径的.so库,在当前电脑是没有该路径的。2:文件编译的系统和当前系统一致;1:文件具有可执行权限;通过对报错文件的分析。原创 2025-01-22 14:24:50 · 937 阅读 · 0 评论 -
使用sync和 blockdev --flushbufs同步保存文件之后,reboot重启文件还是丢失了
使用如下代码将缓存刷写回磁盘,但是reboot之后,还是存在偶现数据丢失;并且最大跳转sleep 10, 都不能完全解决问题;后续使用tar指令,将文件夹压缩之后,再使用sync指令重启;测试多次,,reboot都可以保存back.tar文件;在linux设备上做文件备份,共复制了四个文件夹大约100多个文件,合计大小约1MB;如果想深入了解的话,还是要去研究 sync指令刷写背后的原理,区分文件和文件夹的区别;没有太过深入的了解sync和blockdev指令;原创 2024-11-14 15:37:52 · 579 阅读 · 0 评论 -
inode mismatch: ‘/xxx/bbb‘ ino 37099689 in db, 37099721 in request
大概率是编译过程中间,bbb这个文件进行了变动;所以需要吧所有的文件进行删除或者初始化,保证实际存在的文件和编译过程记录的文件是一致的即可。出现这个问题的原因为实际存在的文件,和历史记录的文件,索引节点存在冲突,可通过 ls -i /xxx/bbb 进行查看;文件索引节点不匹配,数据库中记录的是 37099689, 实际需要的是 37099721;原创 2024-11-14 15:37:12 · 613 阅读 · 0 评论 -
LINUX设备可以上网,但是外部设备连接linux设备之后,外部设备无法上网
在linux设备上有一个WIFI模组,linux设备可以正常上午,可以ping外网;确保Linux设备上运行的DHCP服务器已正确配置,以分配IP地址、网关和DNS服务器地址给连接的设备。确保DNS配置正确,手机可以解析域名。可以在DHCP配置中指定DNS服务器。检查是否有防火墙阻止了流量。如果完成上述步骤后问题仍未解决,您可能需要检查日志文件(如。请确保用正确的外部网络接口(如eth0)替换上面的命令。如果禁用防火墙后问题解决,您需要调整规则以允许流量。检查路由配置,确保没有错误的路由规则阻止流量。原创 2024-10-25 11:48:11 · 634 阅读 · 0 评论 -
linux设备上使用 ntfs-3g 挂载ntfs格式U盘
mount: /huali/emmc: unknown filesystem type 'ntfs'.;ntfs-3g-mount: fuse device is missing, try 'modprobe fuse' as root;modprobe: FATAL: Module fuse not found in directory /lib/modules/4.14.98;modprobe: ERROR: could not insert 'fuse': Exec format error原创 2024-10-24 22:16:42 · 1979 阅读 · 0 评论 -
libserailport交叉编译适配说明
github路径自己的gitee路径libserialport 是一个跨平台的串口通信库,由 sigrok 项目开发。它简洁、易用,并且支持多种操作系统。libserialport 支持阻塞和非阻塞模式,可以根据你的需求选择适当的模式。阻塞模式下,操作会等待完成或超时,而非阻塞模式下,操作会立即返回。通过使用 sp_blocking_* 和 sp_nonblocking_* 函数,你可以轻松实现这两种模式。原创 2024-09-20 09:06:07 · 1241 阅读 · 0 评论 -
linux进程脚本开机自启动异常,手动执行正常问题分析
其它的也有可能比如权限问题,依赖文件问题都有可能;最主要是根据当前脚本的内容,寻找依赖项,再来确认解决方法;确认进程或脚本是否依赖其它.so库;可能是开机自启动环境变量是系统自带的,没有加载用户自定义的路径;请确认当前进程或脚本是否依赖其它基础功能或自定义功能,可能开机启动时候,部分功能还未加载完成;可通过在脚本中打印 环境变量对比查看。原创 2024-08-01 20:58:33 · 1076 阅读 · 0 评论 -
Linux上WIFI作为发射端(AP端),如何查看已连接的设备信息
通过如下两种方式只能获取MAC地址信息,需要确认当前环境设备的MAC信息,才能知道是谁连接上了;或者查看自己的手机或电脑MAC地址信息,确认是否是自己连接的。iw dev wlan1 station dump # 获取station 的统计信息;hostapd_cli 是一款用作无线 AP 功能的客户端程序原创 2024-08-01 20:58:08 · 2305 阅读 · 0 评论 -
date获取时间并提取相关信息
date 获取时间戳,从 1970年1月1日0点0分0秒到现在历经的秒数。date 提取年月日信息,需要单独一个数据,使用一个%date 提取时分秒信息,需要单独一个数据,使用一个%date 显示时间是上午 AM 还是下午 PM。查询 date 指令,里面描述的非常详细。date 获取当前时区信息。详细使用信息,可以参考。date原始数据输出。原创 2024-07-12 15:15:54 · 466 阅读 · 0 评论 -
linux系统中,pwd获取当前路径,dirname获取上一层路径;不使用 ../获取上一层路径
在实际项目中,我们通常可以使用 pwd 来获取当前路径,但是如果需要获取上一层路径,有不想使用 …/ 的方式,可以尝试使用 dirname指令。dirname命令去除文件名中的非目录部分,仅显示与目录有关的内容。dirname命令读取指定路径名保留最后一个/及其后面的字符,删除其他部分,并写结果到标准输出;可使用 dirname --help 查看更多帮助由此可见,当使用 pwd 获取当前路径之后,也可以使用其它的分词或过滤方式,来获取我们想要的路径;原创 2024-06-19 22:22:38 · 632 阅读 · 0 评论 -
error: ‘return’ with no value, in function returning non-void [-Werror]
解释:返回没有值,但是函数返回时非空的;处理方法:1:关闭 warning转error的编译选项,"-Wall -Werror";2:根据函数定义,给函数设置对应返回值;原创 2024-05-29 08:36:42 · 958 阅读 · 0 评论 -
linux下将WIFI模块作为STA客户端连接路由器WIFI的操作
2:确认 Linux设备支持 iw, wpa_supplicant, udhcpc 等指令, 可以先搜索一下这三个指令的用法,也可以 “iw --help” 来查看帮助信息。WIFI连接之后,还要设置一下 DHCP, 不然自带的 ip(ifconfig查看)可能和WIFI的IP不匹配,还是无法上网;这里修改的是系统配置的账号密码,也可以通过 “add_network” 手动输入;扫描当前网络条件下,可以接收到哪些WIFI信号,就是手机连接的WIFI名称。再次查看一下路由信息,已经可以获取到 网关的信息;原创 2024-05-23 17:18:20 · 1151 阅读 · 0 评论 -
.a .so .bin 文件格式分析--文件格式是32位还是64位,数据是大端还是小端,运行在 arm 上还是 x86上
可通过readelf指令,分析文.a .so .bin 文件是在什么系统上编译的,文件格式是32位还是64位,数据是大端还是小端,运行在 arm 上还是 x86上。通过 readelf -a libbrd.a 读取文件的格式内容原创 2024-03-09 18:19:51 · 724 阅读 · 0 评论 -
查找库文件中是否包含某个函数,库文件是否包含某个全局变量,库文件是否包含某个文件
用法:需要结合 grep 指令;可以把库文件直接文本打开看下,有字符串的内容,都是可以搜到的。扩展:另外还有 objdump 和 nm 指令也可以查看。原创 2024-02-23 09:32:00 · 647 阅读 · 0 评论 -
sh脚本 kill一次杀掉多个进程
通过 pgrep -f 指令来获取进程的pid之后,赋值给变量app;然后使用 kill -9 来结束进程;注意也可以使用 pidof 指令,来获取进程 pid。原创 2024-01-30 09:10:34 · 871 阅读 · 0 评论 -
undefined reference to symbol ‘sem_close@@GLIBC_2.2.5‘
4:增加了依赖库之后,还要注意库的先后关系;先后关系不一致,也可能导致报错;3:所以编译的时候,需要增加 -lpthread -lrt 编译选项;2:需要依赖 libpthread和librt 库;1:sem_close 为信号量相关操作;原创 2023-12-23 09:55:02 · 744 阅读 · 0 评论 -
error: too many arguments to function ‘system‘
system功能说明:把 command 指定的命令名称或程序名称传给要被命令处理器执行的主机环境,并在命令完成后返回。如果发生错误,则返回值为 -1;报错原因:system函数里面出现了太多参数。用法2:利用数组来组合存储想要执行的命令。用法1:直接在参数里面填写字符串。原创 2023-12-16 09:44:01 · 1487 阅读 · 0 评论 -
linux查看当前路径的所有文件大小;linux查看当前文件夹属于什么文件系统
1:指令查看当前路径所有文件内存空间大小;这样可以方便查询每个文件大小情况,根据需要进行删除。2:查看linux文件系统分布。查看当前路径属于什么文件系统。df -h df -T原创 2023-12-09 09:40:56 · 935 阅读 · 0 评论 -
报了一堆 undefined reference to `__cyg_profile_func_enter‘,`__cyg_profile_func_exit‘
在一个新的linux环境下编译程序,编译.a的时候正常;编译.so和app的时候异常,报了一堆 undefined reference to `__cyg_profile_func。。。错误,检查代码的编译工具链和依赖库路径,未发现异常;因为使用的makefile,在别的linux环境下验证过是正常的,怀疑是芯片的编译工具链差异导致;最终排查到是 CFLAGS 里面的 “-finstrument-functions” 编译选项不支持,去掉就好了;原创 2023-11-25 14:32:54 · 912 阅读 · 0 评论 -
git拉代码 使用SSH克隆,配置代理
正常我们很容易配置 http和https 的代理来克隆代码,但是 使用SSH克隆 方式的代理用的比较少。which nc原创 2023-11-22 09:38:02 · 2673 阅读 · 0 评论 -
shell脚本执行传递参数注意事项,$1参数消失
1:执行命名 ./test.sh dev, 通过$1 获取的参数,需要及时分配变量保存;2:如果需要在后续的函数中使用 $1, 需要用 方法2,继续将 $1 当做参数传递。原创 2023-11-01 09:19:13 · 1846 阅读 · 4 评论 -
linux下alias别名设置说明
我们想将某个可执行程序,命名为其它名称;比如为python指定对应的python版本给python39指定python版本。查看已设置的 alias别名;取消alias别名设置原创 2023-10-29 10:19:08 · 601 阅读 · 0 评论 -
error: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its
错误:“strncpy”输出可能会被截断,从长度为254的字符串复制100字节。1:在编译选项里面去掉 "-Werror -Wall", 忽略告警。所指向的字符串复制到。2:使用memcpy函数。error: ‘strncpy’ output may be truncated copying 100 bytes from a string of length 254原创 2023-09-10 16:39:48 · 4005 阅读 · 0 评论 -
error: writing 4 bytes into a region of size 1 [-Werror-stringop-overflow]
错误含义:将4byte写入大小为1byte的区域;自己检查多次之后,发现代码写法并没有问题,那么就很有可能是 结构体对齐 的问题,导致实际使用内存区域和结构体命名内存区域不一致;1:去掉 makefile 里面的编译选项 “-Werror -Wall”,这样会忽略该警告;2:修改结构体对齐顺序原创 2023-09-02 16:22:54 · 2360 阅读 · 0 评论 -
pthread创建单线程和多线程实例,并且多线程循环执行
下面代码示例是使用C语言编写的pthread多线程执行,注意使用 编译指令 gcc -o test main.c -lpthread。原创 2023-08-24 23:48:39 · 356 阅读 · 0 评论 -
VMware Workstation下载不同的版本
4:大版本选择之后,就可以选择对应的小版本。各位再根据自己的选择进行下载就好了。2:拉倒下面去选择对应的下载内容。原创 2023-08-06 09:41:48 · 649 阅读 · 0 评论 -
makefile报错:linker input file unused because linking not done
如上所示,在编译时候报错“linker input file unused because linking not done”;虽然提示编译成功了,但是实际生成的文件是空的,没有包含对应代码内容;出现这个的原因就是因为 .o 文件没有生成,可以再编译的时候注意观察一下有没有生成对应的 .o文件;然后进一步检查一下 gcc 的编译指令是否配置正确;大概率就是 gcc 的编译指令没对上导致的;原创 2023-06-27 09:09:11 · 6279 阅读 · 0 评论 -
shell脚本批量执行chmod指令
在实际使用linux指令的时候,有时候我们希望大量重复性的指令能够通过脚本去完成,不需要每一个都单独通过指令操作; 下面这个里程,通过 for 循环 和 ${x[@]} 取数据,来批量进行 chmod 的指令设置 ;如果有其它类似的功能,也可以通过这个脚本来实现 # 先通过 find / -name debug.sh 查找到所有的debug.sh 路径# 将查找的路径复制到下面的脚本目录来;遍历每一个路径,进行chmod设置;注意 ${x[@]} 语法的使用原创 2023-05-24 21:49:40 · 726 阅读 · 0 评论 -
undefined reference to `__cyg_profile_func_enter‘
在linux下,使用makefile编译源文件的时候,发现报如下错误 "undefined reference to `__cyg_profile_func_enter'" ;根据报错去查找对应行的时候,发现报错行号在 { 这里,很是奇怪;而且搜索代码,也搜索不到 相关内容产生这个报错的原因,是因为我们在编译选项里面增加了 -finstrument-functions,该选项可以增加对应的debug信息处理这个报错的方式,就是不用 debug 方法来编译;或者 在 DEBUG_FLAGS 去原创 2023-05-23 20:55:31 · 554 阅读 · 1 评论 -
cmd指令无法从C盘切到D盘或E盘
在windos下使用cd指令的时候,发现可以在当前磁盘切换,不能跨磁盘切换,如下所示。直接使用cd 指令无法切换;还是返回当前路径;2:切换工作磁盘,其命令形式是 [盘符]冒号,比如 “E:”1:cd命令的功能是:在同一个磁盘下切换不同的工作路径;3:“cd /d xxx” 表示直接转换到后面的路径;原创 2023-05-05 22:01:36 · 6334 阅读 · 1 评论 -
shell脚本使用 curl 获取服务器目录的最新文件
curl: (3) URL using bad/illegal format or missing URL: 路径不对,检查路径是否正确,不要包含特殊字符,检查是否有空格;User user_name is not permitted to deploy: 当前账号没有访问权限,需要开通对应权限;原创 2022-09-05 19:48:38 · 2092 阅读 · 0 评论 -
linux shell常用指令
linux shell常用指令原创 2022-09-05 15:24:31 · 297 阅读 · 1 评论 -
将虚拟机的文件,共享至主机
可以通过安装 samba ,来实现共享的效果具体的方法,这个博主说的很详细了 ,实测可用Ubuntu 安装Samba服务器及配置转载 2022-01-25 13:47:27 · 230 阅读 · 0 评论 -
VMware虚拟机如何修改登录密码
1:登录虚拟机之后,搜索“用户”2: 点击 添加或删除用户及更改密码3:进入之后,就可以修改密码啦原创 2021-07-10 10:01:02 · 13276 阅读 · 1 评论
分享