Linux
小熊@XiaoXiong
这个作者很懒,什么都没留下…
展开
-
curl支持ssl错误:curl: (60) SSL certificate problem: certificate is not yet valid
在测试curl命令的时候发现curl: (60) SSL certificate problem: certificate is not yet valid出现这个错误,已经设置了ssl证书路径,最终发现是板子上时间不对,设置时间后可以正常使用。原创 2024-10-21 14:39:41 · 267 阅读 · 0 评论 -
curl支持ssl报错:SSL certificate problem: unable to get local issuer certificate
在使用curl时返回CURLE_OUT_OF_MEMORY,猜想可能是ssl的问题,用curl命令做实验发现访问http没问题,访问https会有问题,根据打印log判断是缺少证书,需要下载证书并声明证书路径。原创 2024-10-21 09:11:10 · 408 阅读 · 0 评论 -
ubuntu虚拟机安装samba server实现windows访问虚拟机文件
第一次访问需要输入用户名和密码,用户名和密码是我们在ubuntu下添加的用户和密码,可以固定到快速访问下,方便每次打开。修改sudo vim /etc/samba/smb.conf配置文件,添加用户guomq的配置参数即可。ifconfig 查看ubuntu的IP地址,然后在windows下输入访问。原创 2024-07-09 15:57:44 · 188 阅读 · 0 评论 -
嵌入式Linux开发,NFS文件系统挂载
不添加权限的话挂载可能会出现下面的错误。我已经安装过了,所以是下面的提示。原创 2023-11-15 19:44:53 · 376 阅读 · 0 评论 -
安装MinGW并在codeblocks下使用
选好以后在菜单栏选择 Installation->Apply changes 就会开始自动安装选中的包,安装好后就会在bin目录下看见安装好的exe可执行文件,也可以把bin文件夹添加到环境变量下。安装完成后会打开一个安装管理工具,在这个工具中我们选中想要安装的软件包然后安装到本地。安装好mingw后就可以在设置下编译器设置中的工具链设置中选择mingw使用。下载下来的知识一个安装器,我们双击安装会帮我们自动下载好相关文件。原创 2023-11-14 11:35:25 · 677 阅读 · 0 评论 -
linux amixer 设置和获取音量
linux amixer原创 2022-06-23 15:53:23 · 3235 阅读 · 0 评论 -
交叉编译libxls和xlslib用于excel xls文件的读写
1. 交叉编译libxls(读取xls文件)下载地址:http://sourceforge.net/projects/libxls/交叉编译tar -xvf libxls-1.6.2.tar.gz # 解压库文件sudo apt install autoconf-archive # 安装automake相关工具autoreconf -if # 生成configure文件./configure --host=arm-linux CFLAGS=-fPIC CXXFLAGS=-fPIC CC原创 2021-12-14 18:05:32 · 3141 阅读 · 4 评论 -
在linux系统中保存配置文件后重启系统内容不生效
前言我的设备是一个arm linux设备,在ui界面上写入ini配置文件后立即断电重启设备,发现被修改的内容并没有写入到配置文件中,还是原来的内容。1. 分析我的配置文件使用fopen()的方式打开,虽然在关闭之前调用了fflush()才fclose关闭文件,但是内容并没有被立即写入到真正的磁盘文件中, fflush()是一个c库的实现,并非系统调用,我们man 一下fflush, 在man手册中可以看到这样一句话:man 3 fflushfflush() 仅仅刷新用户空间的由 C 库提供的缓原创 2021-09-11 11:58:14 · 1012 阅读 · 0 评论 -
嵌入式linux gdb调试(段错误调试)
1. 下载gdbftp://ftp.gnu.org/gnu/gdb 2. 交叉编译tar -xvv gdb-7.12.1.tar.gz./configure --host=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc --prefix=`pwd`/_installmakemake install编译完成后我们把gdb可执行文件拷贝到目标板上3. ulimit 打开core文件ulimit -c unlimited打开core原创 2021-06-02 19:28:47 · 459 阅读 · 0 评论 -
linux下编译动态库时提示:`Curl_cmalloc‘ can not be used when making a shared object; recompile with -fPIC
1. 序言我在linux下编译动态库,其中使用到了curl的静态库,但是编译时报出错误:“`Curl_cmalloc’ can not be used when making a shared object; recompile with -fPIC”我们知道编译动态库的时候编译 .o 文件的时候需要加 -fPIC 这个连接,而我连接的culr库是没有...原创 2021-01-04 11:48:58 · 558 阅读 · 0 评论 -
Linux shell脚本中用expect实现自动输入密码
1. 安装 expectsudo apt-get install tcl tk expect2. 使用示例下面是一个scp的使用例子#! /usr/bin/expect # 表示使用expect的shell的交互模式set timeout 100 # 设置超时100秒,如果要执行的shell的命令很长可以设置超时时间长一些,expect超过超时时间没有检测到要找的字符串,则不执行,默认超时时间为10秒set password "root" # set对password赋值spawn s原创 2020-12-28 10:48:36 · 783 阅读 · 0 评论 -
OpenSSH移植
1. 简介OpenSSH 是 SSH (Secure SHell) 协议的免费开源实现。SSH协议族可以用来进行远程控制, 或在计算机之间传送文件。而实现此功能的传统方式,如telnet(终端仿真协议)、 rcp ftp、 rlogin、rsh都是极为不安全的,并且会使用明文传送密码。OpenSSH提供了服务端后台程序和客户端工具,用来加密远程控制和文件传输过程中的数据,并由此来代替原来的类似服务。2. 下载移植的的时候需要用到openssh、openssl、zlib这三个库(openssh依赖于原创 2020-12-11 18:50:25 · 1601 阅读 · 0 评论 -
linux内核配置make menuconfig: 报错 Unable to find the ncurses libraries or the
linux内核 meke menuconfig 进行配置时出现如下错误 Unable to find the ncurses libraries or the这个错误是因为这是缺少 ncurses 库导致的问题解决,安装ncuress库sudo apt-get install libncurses5-dev原创 2020-12-06 23:05:45 · 383 阅读 · 0 评论 -
在 linux 上安装 GitHub Desktop
1. ubuntu 安装 github desktop官方并没有提供github desktop,好在是开源的,所以有第三方的我们可以安装仓库地址安装方法$ wget -qO - https://packagecloud.io/shiftkey/desktop/gpgkey | sudo tee /etc/apt/trusted.gpg.d/shiftkey-desktop.asc > /dev/null$ sudo sh -c 'echo "deb [arch=amd64] https:/原创 2020-11-27 16:15:19 · 1361 阅读 · 0 评论 -
fatal error: sqlite3.h: 没有那个文件或目录
fatal error: sqlite3.h: 没有那个文件或目录这是因为没有安装sqllite3的相关库,安装以下库即可sudo apt-get install libsqlite3-dev原创 2020-11-27 14:17:15 · 1631 阅读 · 0 评论 -
ubuntu下NFS配置(用于嵌入式开发)
1. NFS简介NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。(引自百度百科)2. 配置ubuntu虚拟机如果开发使用的是虚拟机的话这块需要配置虚拟机的网络适配器为桥接模式,这样虚拟机才能跟主机在一个网段,跟你的目标板也才能在同一个网段3. 服务端安装3.1 使用命令安装直接使用apt inst原创 2020-11-26 17:06:57 · 272 阅读 · 0 评论 -
linux localtime_r()获取的时间比实际时间差八个小时
在linux下用localtime_r()获取的时间比实际时间差八个小时,这个一般是因为时区设置导致的,我们可以在 /etc/profile 中设置时区设置为CST时区,然后source /etc/profile export TZ='CST-8'关于时区的详解可以参考:https://www.douban.com/note/147740972/...原创 2020-11-19 18:20:41 · 2806 阅读 · 0 评论 -
linux下静态库动态库的编译和使用
静态库1.静态库的编译有时候我们需要把文件编译成库让我们使用,比如我们用的libc库,库要怎么制作呢,我们一起来看一下测试目录结构如下在main.c中调用a.c 和b.c 中的函数,main.c内容如下:#include <stdio.h>#include "a.h"#include "b.h"int main(){ printf("Hello world\n"); a(); b(); return 0;}所以我们需要把a.原创 2020-06-08 11:57:43 · 280 阅读 · 0 评论 -
交叉编译libcurl并支持openssl
1. 编译openssl下载openssl openssl地址我使用的版本是 openssl-1.1.0l配置openssl 生成makefile./config no-asm no-async shared --prefix=/opt/openssl-lib --cross-compile-prefix=arm-linux-参数解析:no-asm: 在交叉编译过程中不使用汇编代码代码加速编译过程.原因是它的汇编代码是对arm格式不支持的shared: 生成动态连接库no-as原创 2020-05-29 16:30:50 · 918 阅读 · 0 评论 -
makefile 中 $@ $^ %< 使用
这篇文章介绍在LINUX下进行C语言编程所需要的基础知识。在这篇文章当中,我们将会学到以下内容:源程序编译Makefile的编写程序库的链接程序的调试头文件和系统求助1.源程序的编译在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器。 下面我们以一个实例来说明如何使用gcc编译器。假设我们有下面一个非转载 2017-06-29 22:31:19 · 2391 阅读 · 0 评论 -
tiny4412,将u-boot烧录到eMMC中并启动
转自:http://www.techbulo.com/1792.html最近看了U-BOOT部分,并根据友善的资料将U-BOOT烧写到SD卡上,由SD卡启动U-BOOT,启动界面如下:SD卡启动U-BOOT今天试着将U-BOOT烧写到eMMC中,emmc其实和SD卡类似,都是SD设备,emmc是8-bit模式,SD是4-bit模式。将U-转载 2017-06-11 16:41:08 · 2926 阅读 · 0 评论 -
linux 下的mount
linux一切皆文件,插入的磁盘或者u盘都会在/dev下生成设备文件sda, sdb, sdc等,sda,sdb,sdc指的是cherub的第几块stat设备(在linux下usb插拔设备也会被识别为stat设备),sda1...2 3, sdb1...2 3 等指的是具体的磁盘分区,u盘,sd卡等设备插入后会被自动挂载在 /media 目录下,并可以显示u盘图标u盘等的自动挂载可参考以下原创 2017-06-12 14:46:37 · 245 阅读 · 0 评论 -
Makefile 的核心内容
1.Makefile的规则```target... : prerequisites...command......`target就是一个目标文件,可以是object文件,也可以是可执行文件等,或者是一个标签(伪目标),command是需要执行的shell命令,cc, echo, mkdir ...target这一个或多个目标文件依赖于一个或多个 prerequisite原创 2017-06-11 11:08:41 · 377 阅读 · 0 评论 -
多文件目录下makefile文件递归执行编译所有c文件
首先说说本次嵌套执行makefile文件的目的:只需make根目录下的makefile文件,即可编译所有c文件,包括子目录下的。意义:自动化编译行为,以后编译自己的c文件时可把这些makefile文件直接复制到相应目录即可方便编译出所有文件。这些makefile文件是通用的,只需根据自己的工程情况改动少许内容即可。下面会说。总体思路是:把目标文件放在debug文件夹下的obj目录下转载 2017-06-26 14:35:37 · 674 阅读 · 0 评论 -
linux 的 dd命令详解,dd与cp的区别
注:dd操作的是磁盘的扇区字节,而cp是文件或目录,dd可以在磁盘中连续的读取从磁盘中10开始的位置读40个bs 到文本中从文件中读字节到磁盘中1.命令简介 dd 的主要选项:指定数字的地方若以下列字符结尾乘以相应的数字:b=512, c=1, k=1024, w=2, xm=number mif=file #转载 2017-06-14 13:49:15 · 3984 阅读 · 0 评论 -
ctrl+c不能终止进程(busybox提示can't access tty.job control
转自:http://linux.chinaunix.net/techdoc/develop/2007/11/05/971335.shtmlctrl+c不能终止进程(busybox提示can't access tty.job control在最近的一段时间中,发现在busybox下调试时,shell终端用ctrl+c不能终止掉正在运行的进程。参考了网上的一些网友的blog的解决方法以及自转载 2017-06-27 14:07:03 · 1212 阅读 · 0 评论 -
GPS定位不准确、有偏差的问题
转自:http://blog.csdn.net/a_tu_/article/details/52948341GPS型号:SIMCOM7100C最近在做gps定位这块,发现经纬度定位并不准确,偏差的有点离谱。网上查了好多资料,各种坐标系之间相互转换。在地图上输入转换后的经纬度,偏的不是一点半点。后来发现是转换前的数据源需要转换。这是从gps模块获取到的源数据,它是属于地球转载 2017-06-27 14:09:52 · 11148 阅读 · 0 评论 -
cJSON 使用
CSJON库基本数据格式 cJSON 定义typedef struct cJSON { struct cJSON *next,*prev; // 数组 对象数据中用到 struct cJSON *child; // 数组 和对象中指向子数组对象或值 int type; // 元素的类型,如是转载 2017-07-07 15:39:15 · 929 阅读 · 0 评论 -
WSS、SSL、和https之间的联系和区别
WSS、SSL、和https之间的联系和区别 SSLSSL(Secure Socket Layer,安全套接层) 简单来说是一种加密技术, 通过它, 我们可以在通信的双方上建立一个安全的通信链路, 因此数据交互的双方可以安全地通信, 而不需要担心数据被窃取.SSL/TLS协议运行机制的概述 HTTPS其实 HTTPS 和 WSS 类似, HTTP 之于 HTTPS 就像 WebSocke原创 2018-04-30 18:44:56 · 14575 阅读 · 0 评论 -
linux下SVN的使用
authz:配置用户组以及用户组权限passwd:配置用户名和密码svnserve.conf:配置默认权限,权限配置文件及密码配置文件svnserve.conf文件中:(nono什么都不能干 write提交 read更新)[general]anon-access = none #无验证用户auth-access = write #验证用户password-db = passwd #表示pa...原创 2018-06-26 16:24:42 · 255 阅读 · 0 评论 -
Linux、GUN/Linux、GUN、GPL以及各个发行版本详细介绍
学习Linux很久了,却对GUN,Linux,Linux发行版等无所了解,是不是觉得很对不起自己啊。呵呵,所以我就在网上找了些资料,总结在一起,还算是比较能说明问题的。什么是Linux? 也许很多人会不屑的说,Linux不就是个操作系统么。错!Linux不是一个操作系统,严格来讲,Linux只是一个操作系统中的内核。内核是什么?内核建立了计算机软件与硬件之间通讯的平台,内核提供系转载 2017-04-20 14:24:01 · 2307 阅读 · 0 评论