![](https://img-blog.csdnimg.cn/20201029101654386.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
Linux
文章平均质量分 62
基于Linux平台技术相关记录
huislee
这个作者很懒,什么都没留下…
展开
-
开发板离线安装arm-gdb
开发板与虚拟机安装arm-gdb原创 2022-06-08 14:21:42 · 1581 阅读 · 1 评论 -
linux程序上电自启
linux程序上电自启方法1:修改rc.localubuntu 18.04 使用 systemd 管理系统(16.04 initd),systemd 默认读取 /etc/systemd/system目录下的配置文件,并链接到 /lib/systemd/system/目录下的脚本文件;修改启动脚本,rc.local.service是我们所需要的自启动脚本cd /lib/systemd/systemsudo vim rc.local.service在末尾添加 [Install] 字段,如下:[I原创 2022-03-27 14:01:47 · 1495 阅读 · 0 评论 -
Linux下gdb调试
linux下gdb调试方法1.启动gdb编译一个测试程序,-g表示可以调试,命令如下:gcc -g *.c -o a启动gdb,命令如下:gdb agdb -q a//表示不打印gdb版本信息,界面较为干净;2、查看源码list :简记为 l ,其作用就是列出程序的源代码,默认每次显示10行。list 行号:将显示当前文件以“行号”为中心的前后10行代码list 函数名:将显示“函数名”所在函数的源代码,如:list mainlist :不带参数,将接着上一次 list 命令的,输原创 2022-02-11 16:05:17 · 4578 阅读 · 0 评论 -
代码项目管理 makefile
Makefile:项目管理工具1.命名:makefile”和“Makefile”这两种默认文件名;自定义命名,如:如:“Make.Linux”特定的Makefile,你可以使用make的“-f”和“–file”参数,如:make -f Make.Linux或make --file Make.AIX。2.规则:目标:依赖文件Tab缩进+命令3.makefile中写的第一个目标就是最终的目标;为了每次只编译修改的文件可以将所有的源文件(.c)写各自的编译;此时编译第一个时会根据需要在后面查找对应的依赖的原创 2020-07-13 16:44:53 · 221 阅读 · 0 评论 -
(九)嵌入式 Linux驱动程序设计之平台总线模型
(九)嵌入式 Linux驱动程序设计之平台总线模型接上篇:(八)嵌入式 Linux驱动程序设计之申请字符类设备号,注册字符类设备,自动创建设备节点**1.平台总线模型概述2.注册platform设备3.注册platform驱动4.平台总线probe函数编写**1.平台总线模型概述1.什么是平台总线模型?平台总线模型也叫 platform总线模型。是 Linux内核虚拟出来的一条总线,不是真实的导线,平台总线模型就是把原来的驱动C文件给分成了俩个C文件,一个是 device. c,一个是原创 2021-04-24 19:47:24 · 99 阅读 · 0 评论 -
(八)嵌入式 Linux驱动程序设计之字符设备驱动框架
(八)嵌入式 Linux驱动程序设计之GPIO驱动总结:1. 在/arch/arm/boot/dts/imx6q-pinfunc.h查找2. 在设备树配置文件中添加设备节点定义以及其引脚定义3. 修改设备树文件添加配置4. drivers/gpio目录下添加gpio驱动 新建driver/gpio/gpio-user.c 在`driver/gpio/Makefile`添加: 在driver/gpio/Kconfig添加:5. 通过make menuconfig来进行配置原创 2021-04-03 11:44:20 · 111 阅读 · 0 评论 -
(七)嵌入式 Linux驱动程序设计之第一个相对完整的驱动
接上篇:(六)嵌入式 Linux驱动程序设计之物理地址到虚拟地址映射目标使用杂项设备完成一个蜂鸣器的驱动完成一个上层测试应用应用要求:在上层应用中传入参数1为打开蜂鸣器,传入参数0为关闭蜂鸣器任务分析想要操作蜂鸣器,就要完成read函数 open函数,等等,我们做驱动,大部分情况下也都是使用这几个函数。要完成上层应用的测试,就需要应用层和内核层传输数据,copy_to_user和copy_from_user源码如下:beep.c#include <linux/init.h&原创 2021-03-22 16:23:11 · 144 阅读 · 0 评论 -
(六)嵌入式 Linux驱动程序设计之物理地址到虚拟地址映射
(六)嵌入式 Linux驱动程序设计之物理地址到虚拟地址映射接上篇:(五)嵌入式 Linux驱动程序设计之应用层与内核层数据传输裸机中的操作在单片机和裸机中,对于硬件是这样来操作的unsigned int *p = 0x123456789;*p = 0x987654321;注意:这样的操作在Linux上是不行的,在Linux上,如果想要操作硬件,需要先把物理地址转换成虚拟地址,因为Linux使能了MMU,所以我们在Linux上不能直接操作物理地址。使能了MMU让虚拟地址成为了可能; 可以让系统原创 2021-02-27 17:22:28 · 274 阅读 · 0 评论 -
orangepi 3 H6之uboot,linux源码,rootfs,linux镜像编译
获取 linux sdk 的源码1) 首先下载 orangepi-build 的代码,orangepi-build 的代码是基于 armbian build 编译系统修改而来的,目前 H6 系列开发板已经支持 legacy 分支和 current 分支huislee@huislee-virtual-machine:~/work/$ sudo apt updatehuislee@huislee-virtual-machine:~/work/$ sudo apt install githuislee@原创 2021-02-25 11:55:27 · 2837 阅读 · 0 评论 -
(六)RHEL系统之Redhat8用户管理(实现添加用户到同一组)及vim使用
Redhat8用户管理任务背景任务要求给开发部门的同事每人创建一个账号,在跳板机加入到coding组里任务分解创建coding组创建用户并加入到coding组里给每个账号设置密码理论储备一、Linux下用户管理㈠ 用户概念及作用(了解)用户:指的是Linux操作系统中用于管理系统或者服务的人 一问:管理系统到底在管理什么?答:Linux下一切皆文件,所以用户管理的是相应的文件 二问:如何管理文件呢?答: 1. 文件基本管理,比如文件的创建、删除、复制、查找原创 2020-10-31 16:58:52 · 3325 阅读 · 0 评论 -
(五)RHEL系统之Redhat8文件查找与打包
Redhat8文件查找与打包任务背景任务要求1.掌握 Linux下如何根据需求查找文件2.熟悉linux下文件打包压缩工具使用任务分解1.知道inux下查找文件的相关命令工具有哪些2.知道inux下打包压缩工具有哪些,有什么特点3.掌握相关工具使用一、linux下文件查找命令1.命令查找Linux下一切皆文件! which 命令 :找出命令的绝对路径 whereis 命令 :找出命令的路径以及文档手册信息[huislee@huislee ~]$ which mkdi原创 2020-10-31 15:04:18 · 769 阅读 · 0 评论 -
(四)RHEL系统之Redhat8桌面环境操作、目录树结构以及文件操作管理
Redhat8桌面环境操作、目录树结构以及文件操作管理一、Redhat8桌面环境操作1.打开程序2.右击-》显示设置 里面可进行快捷键设置;如win+S win+A3.设置终端中快捷键:编辑->首选项->快捷键;选中启用快捷键后点中需要设置的直接按快捷键即可设置二、 Linux操作系统目录树结构1.目录树结构2.文件路径三、Linux文件操作管理`重要:Linux下,一切皆文件!!`RedHat和 Centos默认she解释器叫bash1.文件类型2.列出目录内原创 2020-10-31 10:57:26 · 1695 阅读 · 0 评论 -
(四)嵌入式 Linux驱动程序设计之杂项设备驱动
(四)嵌入式 Linux驱动程序设计之杂项设备驱动接上篇:(三)嵌入式 Linux驱动程序设计之驱动编译进内核linux三大设备驱动字符设备:IO的传输过程是以字符为单位的,没有缓冲,如:I2C,SPI;块设备:IO传输过程以块为单位,根存储相关的都是块设备,如:tf卡,EMMC;网络设备:以套接字来访问的.1.杂项设备驱动属于字符设备,杂项设备可以自动生成设备节点.我们系统里有很多杂项设备,开发板可以使用cat /proc/misc/查看;虚拟机在/dev/下;2.杂项设备除了比字符设备代原创 2021-02-22 20:05:04 · 215 阅读 · 0 评论 -
(十)RHEL系统之基于LAMP架构部署商城系统
基于LAMP架构部署商城系统任务背景小王经过一段时间学习,慢慢的了解到公司的一些业务架构,发现好几个项目不是LAMP架构就是Nginx+Tomcat,于是小王决定,慢慢的吃透这些架构,先学习LAMP架构,再研究Nginx+Tomcat架构。所以,小王就给自己定一个任务,在自己的虚拟机环境下,构建LAMP环境。由于自己所维护的业务正好是一个电商平台,决定上线一个电商的 项目。任务需求1、任务具体要求使用yum(dnf)工具一键部署LAMP环境 发布电商项目上线① 能够实现web界面注册会员账原创 2021-02-22 17:33:25 · 618 阅读 · 0 评论 -
(五)shell编程之sed与awk的基本语法结构
typora-root-url: …\pictures#课程目标掌握sed的基本语法结构熟悉sed常用的命令,如打印p,删除d,插入i等一、文件编辑器知多少Windows系统[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KwdXH8tT-1604324872210)(./edit.png)]Linux系统 vim vi gedit nano emacs#二、强悍的sed介绍1. sed用来做啥?sed是Stream Edito.原创 2021-02-22 17:32:59 · 317 阅读 · 0 评论 -
(四)shell编程之循环结构
shell编程之循环结构#本机课程目标掌握for循环语句的基本语法结构掌握while和until循环语句的基本语法结构一、for循环语句关键词:爱的魔力转圈圈????1. for循环语法结构㈠ 列表循环列表for循环:用于将一组命令执行**已知的次数**基本语法格式for variable in {list} do command command … done或者for variable i原创 2021-02-22 17:32:23 · 3613 阅读 · 0 评论 -
linux与windows下查找程序所依赖的动态库
Linux平台下使用命令:ldd 可执行程序huislee@huislee-virtual-machine:~/workspace/git/huislee/study/language/C/review$ ldd a linux-vdso.so.1 (0x00007ffe40d41000) libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb794acd000) /lib64/ld-linux-原创 2021-02-22 17:31:10 · 224 阅读 · 0 评论 -
(三)嵌入式 Linux驱动程序设计之驱动编译进内核
嵌入式 Linux驱动程序设计之驱动编译进内核接上篇(二)嵌入式 Linux驱动程序设计之make menuconfig图形化配置及问题解决例子source "drivers/redled/kconfig" //它会包含drivers/redled/这个路径下驱动文件,方便对菜单进行管理config LED_4412 //LED_4412配置选项的名称 tristate "Led Support for GPIO Led" depends on LEDS_CLASS help this原创 2021-02-21 20:38:44 · 214 阅读 · 0 评论 -
(一)嵌入式 Linux驱动程序设计之驱动模块编译
嵌入式:交叉学科,知识体系庞杂C语言 数电(单片机)arm体系结构硬件设计(arm接口技术)Linux系统开发Linux驱动开发BootLoader(UBOOT)QT(C++)Android系统和JAVALinux驱动分类:字符设备驱动块设备驱动(EMMC等存储相关)网络设备驱动驱动分为4部分:头文件驱动模块入口和出口声明信息 功能实现//第一步 包含头文件#include<linux/init.h>//包含宏定义头文件#include原创 2021-02-20 20:15:46 · 708 阅读 · 0 评论 -
(二)嵌入式 Linux驱动程序设计之make menuconfig图形化配置及问题解决
一.无法获得锁 /var/lib/apt/lists/lock - open查看一下是否有使用apt-get的程序,终端输入:ps-aux,找到使用apt-get的程序(最后一列),查看其PID号,然后杀死其进程,输入sudo kill PID.用sudo apt-get update时出现“ E: 无法获得锁 /var/lib/apt/lists/lock”错误。在网上搜索到的解决方案──“将/var/lib/apt/list/lock删除掉即可”──其实是一种极端的情况,也就是在上次更新没有正原创 2021-02-20 19:42:37 · 617 阅读 · 0 评论 -
Linux可以上网但是出现未知的名称或服务
问题描述:我的网关都通,并且我物理机能够正常上网,说明我虚拟机DNS指向可能有问题。RedHat 8 git clone url时出现未知的名称或服务首先通过ssh -T git@github.com判断是否网络问题[huislee@huislee gitWorkspace]$ git clone git@github.com:huislee/study.git正克隆到 'study'...ssh: Could not resolve hostname github.com: Name or s原创 2020-11-06 12:00:38 · 2290 阅读 · 1 评论 -
(九)RHEL系统之linux自有服务
linux自有服务一、远程管理Linux服务器1、windows下远程连接工具2、windows下文件传输工具二、远程连接管理服务SSH1、了解服务端和客户端服务端:提供服务客户端:享受服务思考:我们通过网络是如何找到我们想要访问的服务的?IP(提供服务的服务器)+Port(找到相应的服务)2、了解端口号的设定说明:端口号只有整数,范围是从0 到655351~255:一般是知名端口号,如:ftp 21号、web 80、ssh 22、telnet 23号等256~1023:原创 2020-11-03 17:56:35 · 350 阅读 · 0 评论 -
(七)RHEL系统之文件权限的设置
文件权限的设置任务背景任务要求在跳板机上为开发部门专门创建一个目录,只允许开发部门所有员工使用该目录其他人员不能进入和查看该目录里的内容任务分解1. 在跳板机给开发部门创建目录2. 对该目录做好权限的管控工作 只允许开发部门的所有人使用,创建、删除等操作 不允许其他人员进入并且查看该目录里所有内容 只能自己管理自己(不能删除别人的文件)理论储备一、权限概述㈠ 什么是权限权限:在计算机系统中,权限是指某个计算机用户具有使用软件资源的权利。 思考:计算机资源分为哪两部分原创 2020-11-02 14:20:38 · 1299 阅读 · 0 评论 -
(八)RHEL系统之红帽8操作系统基础环境配置及软件安装
任务背景昨天播仔收到邮件,说服务器172.16.45.21/24上的vsftpd程序存在安全漏洞,需要尽快处理。一般这种问题,都是通过打补丁或者升级软件的方式解决。任务要求测试机服务器安装RedHat8操作系统rhel8基础系统环境配置安装较新版本的vsftpd软件任务分析测试服务器上安装红帽8操作系统红帽8操作系统基础环境配置配置主机名配置网络(静态IP)直接修改配置文件(建议)通过nmcli工具(熟练)通过nmtui工具(了解)配置防火墙和selinux配置软件仓库安原创 2020-11-02 17:48:48 · 4921 阅读 · 0 评论 -
(二)linux系统编程之进程间通信
进程间通信相关概念1.什么是IPC ?即:进程间通信 InterProcess Communication2.进程间通信常用的4种方式:a.管道·简单b.信号.系统统开销小c.共享映射区·(有无血缘关亲的进程间通信都可以)d.本地套接字-稳定匿名管道本质:内核缓冲区,是伪文件,不占磁盘空间特点:数据写端流入,读端流出;对应2个文件描述符;操作管道的进程被销毁后管道自动释放,管道默认是阻塞的。原理:内部实现方式:队列,先进先出。默认4k,大小会根据实际情况适当调整,但不会无限扩大。局原创 2020-10-27 15:18:54 · 92 阅读 · 0 评论 -
正则表达式、sed、awk
正则表达式不限语言只针对文件内容进行处理。正则表达式(regular expression)描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。字符类数量限定符位置限定符其他特殊字符![在这里插入图片描述](https://img-blog.csdnimg.cn/20200813154141844.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGV原创 2020-10-27 15:21:48 · 164 阅读 · 1 评论 -
linux下静态库与动态库创建与使用
linux下静态库与动态库创建与使用一.静态库命名格式:lib+静态库名+.a制作静态库步骤:步骤1:将需要制作静态库的所有源文件编译生成.o;命令:gcc ./.c -c(其中./.c为当前目录下所有.c源文件)步骤2:将生成的所有.o打包命令:ar rcs libmystatic.a .o使用:法1:gcc 源文件.c -L 静态库路径 -l(小写L) 静态库名字(就是lib静态库名.a)-I(大写I)头文件路径 -o 目标可执行程序名gcc ./.c -L ./ -l mystati原创 2020-07-13 17:07:42 · 152 阅读 · 0 评论