Linux note
文章平均质量分 85
HeroKern
精通高速存储方案 V:yolov8
展开
-
编译debian内核模块驱动
debian 系统中默认的linux源在/usr/src/目录下,有些没有这个源,需要手动安装sudo apt-get install linux-headers-`uname -r`/usr/src/linux-headers-`uname -r` /* 内核文件目录,动态编译debian驱动指定这个路径久Ok */...原创 2018-06-30 14:51:28 · 2336 阅读 · 0 评论 -
vi 中常用命令技巧
顺便补充几个Linux下的常用命令:PATTERN:字符串patch -p0 diff -urN src dst > patch 生成patchfind PATH -name "hello*" //PATH路径省略就是默认当前目录下grep "PATTERN" PATH -nR //PATH路径不要省略,当前目录就是./vi *原创 2015-11-17 21:54:58 · 13854 阅读 · 0 评论 -
mkyaffs2image的制作方法
在Ubuntu中第一次使用mkyaffs2image命令时,会提示mkyaffs2image:找不到命令还需要安装mkyaffs2imagehttp://code.google.com/p/fatplus/downloads/detail?name=yaffs2-source.tar&can=2&q=下载yaffs2-source.tar 解压后,然后m原创 2015-12-03 22:29:33 · 19063 阅读 · 0 评论 -
Linux中线程和进程的区别
1.定义进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位线程是进程的一个实体,行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.是CPU调度和分派的基本单位,它是比进程更小的能独立运2.关系一个线程可以创原创 2015-12-30 20:55:21 · 20986 阅读 · 1 评论 -
linux之select函数用法详解
select系统调用是用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。 何为文件句柄????文件句柄在Linux里很多,如果你man某个函数,在函数返回值部分说到成功后有一个文件句柄被创建的都是,如man socket可以看到“On success, a file desc原创 2016-01-03 10:23:27 · 21279 阅读 · 1 评论 -
Shell脚本8种字符串截取方法总结
Linux 的字符串截取很有用。有八种方法。假设有变量 var=http://www.aaa.com/123.htm.1. # 号截取,删除左边字符,保留右边字符。echo ${var#*//}其中 var 是变量名,# 号是运算符,*// 表示从左边开始删除第一个 // 号及左边的所有字符即删除 http://结果是 :www.aaa.com/123.htm2转载 2016-06-02 16:56:35 · 20897 阅读 · 2 评论 -
Shell脚本定义变量和环境变量的引用
一、定义变量定义变量时,变量名不加美元符号($),如:variableName="value"注意,变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:•首个字符必须为字母(a-z,A-Z)。•中间不能有空格,可以使用下划线(_)。•不能使用标点符号。•不能使用bash里的关键字(可用help命令查看保留关键字原创 2016-05-07 14:24:28 · 21862 阅读 · 0 评论 -
关于shell命令的定向输出 2>&1
转转地址:http://blog.csdn.net/scz123/article/details/1108856mycommand >mylog.txt 2>&1 应该是最经典的用法了。命令的结果可以通过“%>”的形式来定向输出,%表示文件描述符:1为标准输出stdout、2为标准错误stderr。系统默认%值是1,也就是“1>”,而1>可以简写为>,也就是默认为>。stdout的默认目标转载 2016-04-29 09:14:57 · 18710 阅读 · 0 评论 -
Linux下利用scandir判断是目录还是文件详解
函数scandir的用法参考这篇文章:点击这里!对文件操作我们经常和这个stat结构体打交道: linux-3.4.2\include\asm-generic\Stat.h这个结构体就把文件的所有信息都包含在其中了,其中很重要的一个成员是:unsigned intst_mode;/* File mode. */这个成员选项定义 \linux原创 2016-04-05 22:10:45 · 9028 阅读 · 1 评论 -
Linux制作补丁与打补丁简单用法
PATTERN:字符串patch -p0 diff -urN src dst > patch 生成patchfind PATH -name "hello*" //PATH路径省略就是默认当前目录下grep "PATTERN" PATH -nR //PATH路径不要省略,当前目录就是./原创 2015-11-28 15:02:57 · 17801 阅读 · 0 评论 -
Linux下常用的命令技巧
ELF file view :arm-linux-readelf -d hello @what kind of dynamic link libraryarm-linux-readelf –a hello @查看的信息中,常用的是:Data项的大小端模式arm-linux-objdump -D -S u-boot>u-boot.asm @disassemblingar原创 2015-11-28 15:05:04 · 14615 阅读 · 0 评论 -
交叉编译参数 -I -L -l 详解
这里不管是你用gcc还是用arm-linux-gcc都是实用的。当你下载一些freetype,libjpeg。你得先.configure,make make install 这里我主要讲一下一些参数怎么配置,具体怎么安装这些库文件,下篇文章将重点讲解。这三个参数是很重要的。 --build=BUILD configure for building on BUILD [gues原创 2015-12-29 14:52:01 · 18198 阅读 · 0 评论 -
debian添加本地iso为apt源
通常虚拟机安装debian后安装软件,需要手动切换本地镜像软件源,这样非常麻烦,下面方法很实用。1、上传debian-9.4.0-amd64-DVD-1.iso debian-9.4.0-amd64-DVD-2.iso debian-9.4.0-amd64-DVD-3.iso 三个镜像文件到debian系统中/home/google/debian/目录下。2、分别挂在这三个文件到/media/...原创 2018-06-30 14:49:09 · 12044 阅读 · 2 评论 -
Linux下测试SSD硬盘读写速率
硬盘分为机械硬盘HDD和固态硬盘SSD两种。现在固态硬盘已经是大势所趋咯。SSD用的接口是NVME。在NVME协议下面还有一层PCIe协议。HDD硬盘接口有SATA,SATA接口常用的工作模式有AHCI。SATA硬盘接口最大速率是600MBytes/s。接下来我通过C代码测试SSD的读写性能。代码采用的是直接IO方式,这个测的速率不加直接IO的四倍。test_ssd.c#define _GNU_S原创 2017-09-11 20:45:37 · 15399 阅读 · 4 评论 -
HTTP Header 详解
HTTP(HyperTextTransferProtocol)即超文本传输协议,目前网页传输的的通用协议。HTTP协议采用了请求/响应模型,浏览器或其他客户端发出请求,服务器给与响应。就整个网络资源传输而言,包括message-header和message-body两部分。首先传递message- header,即http header消息 。http header 消息通常被分为4个部分:gen原创 2017-02-20 14:35:30 · 3432 阅读 · 0 评论 -
Linux嵌入式开发常见面试题
what is the difference between mutex and spin_lock"两者在调度机制上略有不同。对于互斥锁,如果资源已经被占用,资源申请者只能进入睡眠状态。但是自旋锁不会引起调用者睡眠,如果自旋锁已经被别的执行单元保持,调用者就一直循环在那里看是否该自旋锁的保持者已经释放了锁,"自旋"一词就是因此而得名。同步是指:发送方发出数据后,等接收方发回响应以后才发下一个数据原创 2016-10-04 21:41:06 · 18794 阅读 · 0 评论 -
Makefile规则详解
Makefile rule as follows: define variable random = name call $(random).PHONY:all @declaration the False targetall:relay@in Makefile Only run the first goal When running a few goals, F原创 2015-11-30 21:39:00 · 16217 阅读 · 0 评论 -
Linux中printk和strace命令调试的一些技巧
打印方法一:#define DBG_PRINTK printk //打印#define DBG_PRINTK(x...) //不打印DBG_PRINTK("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__);printk("%s %s %d\n", __FILE__, __FUNCTION__, __LINE__);原创 2015-12-14 17:29:14 · 43488 阅读 · 0 评论 -
Linux下多文件夹编写Makefile详解
-Werror @Take warning as error handling 子目录下面的Makefile编写是最简单的,最重要的是编写顶层目录下的Makefile和Makefile.build。本程序的Makefile分为3类:1. 顶层目录的Makefile2. 顶层目录的Makefile.build3. 各级子目录的Makefile原创 2016-01-02 16:20:13 · 25791 阅读 · 6 评论 -
Linux c 目录操作函数scandir
头文件:#include 定义函数:int scandir(const char *dir, struct dirent **namelist, nt (*select) (const struct dirent *), nt (*compar) (const struct dirent **, const struct dirent**));函数说明:scandi原创 2016-04-05 21:58:00 · 19205 阅读 · 2 评论 -
chmod 和 chown 命令用法
一、chmod的用法指令名称 : chmod使用权限 : 所有使用者使用方式 : chmod [-cfvR] [--help] [--version] mode file…说明 : Linux/Unix 的档案调用权限分为三级 : 档案拥有者、群组、其他。利用 chmod 可以藉以控制档案如何被他人所调用。参数 :mode : 权限设定字串,格式如下 : [ugoa..转载 2016-04-05 22:14:17 · 4535 阅读 · 0 评论 -
Linux中ln命令用法详解
硬连接指向的是节点(inode),是已存在文件的另一个名字,修改其中一个,与其连接的文件同时被修改;对硬链接文件进行读写和删除操作时候,效果和符号链接相同。但如果我们删除硬链接文件的源文件,硬链接文件仍然存在,而且保留了原有的内容。这时,系统就“忘记”了它曾经是硬链接文件,而把他当成一个普通文件。复制代码mkdir /dev/sndcd /dev/snd/ln -s /de原创 2016-04-05 13:08:38 · 15042 阅读 · 0 评论 -
Linux链接脚本学习--lds
l一、概论ld:GNU的链接器.用来把一定量的目标文件跟档案文件链接在一起,并重新定位它们的数据,链接符号引用.一般编译一个程序时,最后一步就是运行ld进行链接每一个链接都被一个链接脚本所控制,这个脚本是用链接命令语言书写的.二、链接脚本链接脚本的一个主要目的是描述输入文件中的各个段(数据段,代码段,堆,栈,bss)如何被映射到输出文件中,并原创 2015-10-28 17:57:26 · 14918 阅读 · 0 评论 -
grep的用法
功能说明:查找文件里符合条件的字符串。 语 法:grep [-abcEFGhHilLnqrsvVwxy] [-A][-B][-C][-d][-e][-f][--help][范本样式][文件或目录...]如果要在一个或几个文本文件中查找一字符串,可以使用‘grep’命令。grep pattern filenamegrep pattern filename1 file转载 2015-10-23 17:22:32 · 16330 阅读 · 0 评论 -
生成补丁 与 打补丁 diff patch
有两个目录 每个目录中有一个相同名字的文件 但是内容 是些地方有差别,我们以此来做实验 验证diff patch 这两个命令目录1:/you 包含file.c 这个文件比下面的file.c文件 多了一段代码 模仿我们在更新文件时 在源文件上做的修改//////////////////////#include "delegation.h"static int nfs_lock(转载 2015-10-23 17:21:11 · 1583 阅读 · 0 评论 -
busybos常见的错误详解
错误一make menuconfig 图像界面无法启动scripts/kconfig/mconf arch/arm/Kconfig## using defaults found in /boot/config-2.6.27.5-117.fc10.i686#/boot/config-2.6.27.5-117.fc10.i686:797:warning: symbol valu原创 2015-08-31 12:25:43 · 4067 阅读 · 0 评论 -
FL2440 2.6.28 SD卡驱动BUG解决
FL2440的2.6.28的内核,SD卡驱动默认是有问题的,在linux-2.6.28.7/drivers/mmc/host目录的s3cmci.c文件的do_pio_write函数中做如下修改:[cpp] view plaincopystatic void do_pio_write(struct s3cmci_host *host) { void __iomem *to_ptr; int res;转载 2015-09-27 12:59:55 · 3334 阅读 · 0 评论 -
uboot 中nand write 与nand write.yaffs的区别
nand write会计算ECC并将其烧录到oob中。nand write.yaffs不计算ECC,因为yaffs image中自带了含ECC的OOB数据,直接将其烧录到oob区即可。原创 2015-11-28 21:15:31 · 16311 阅读 · 0 评论 -
Linux系统中.bz2与.gz文件的区别
unix下常见的压缩文件格式,是由具有高压缩率的压缩工具bzip2生成,以后缀为.bz2结尾的压缩文件。GZ是UNIX系统中的压缩文件,ZIP的Gnu版本,功能和WINRAR一样压缩文件。.bz2和.gz都是linux下压缩文件的格式,有点类似windows下的.zip和.rar文件。 .bz2和.gz的区别在于,前者比后者压缩率更高,后者比前者花费更少的时间。也就是说同一原创 2015-11-28 14:59:08 · 27171 阅读 · 0 评论 -
C语言实现由PID获取进程名&由进程名获取PID
当制作多个项目的时候,我们可以把多个应用程序集成在一起,就像网页的href一样,在几个进程中跳转,这里就在C语言中实现获取进程号,然后kill掉它,启动另外一个应用程序,就这样我们就轻松实现了应用程序的模块化,但是我们没有考虑效率什么的,只是为了实现这样一个功能。下面是一个获取进程和进程名的程序代码,自己可以灵活运用在自己的代码中,在C语言中也可以代用脚本程序,充分结合让你的应用程序更加强壮。原创 2016-04-02 23:37:44 · 23303 阅读 · 1 评论 -
mutex 和spin lock的区别
信号量mutex是sleep-waiting。 就是说当没有获得mutex时,会有上下文切换,将自己、加到忙等待队列中,直到另外一个线程释放mutex并唤醒它,而这时CPU是空闲的,可以调度别的任务处理。而自旋锁spin lock是busy-waiting。就是说当没有可用的锁时,就一直忙等待并不停的进行锁请求,直到得到这个锁为止。这个过程中cpu始终处于忙状态,不能做别的任务。例原创 2016-03-07 21:55:51 · 8583 阅读 · 0 评论 -
Linux中nfs ,ftp 和samba有什么区别
FS:Network File System 是已故的Sun公司制定的用于分布式访问的文件系统,它的本质是文件系统。主要在Unix系列操作系统上使用,基于TCP/IP协议层,可以将远程的计算机磁盘挂载到本地,像本地磁盘一样操作。samba是Unix系统下实现的 Windows文件共享协议-CIFS,由于Windows共享是基于NetBios协议,是基于Ethernet的广播协议,在没有原创 2016-03-30 14:16:05 · 17710 阅读 · 0 评论 -
linux 之 echo命令用法
# echo $PATH /**显示系统总一些变量,必须加上$/ /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/arm/4.3.2/bin /*显示的环境变量*/# echo $HOME# echo $MAIL原创 2015-12-24 14:57:59 · 14599 阅读 · 0 评论 -
Linux中select poll和epoll的区别
select的本质是采用32个整数的32位,即32*32= 1024来标识,fd值为1-1024。当fd的值超过1024限制时,就必须修改FD_SETSIZE的大小。这个时候就可以标识32*max值范围的fd。对于单进程多线程,每个线程处理多个fd的情况,select是不适合的。1.所有的线程均是从1-32*max进行扫描,每个线程处理的均是一段fd值,这样做有点浪费2.1原创 2015-12-26 22:17:36 · 21236 阅读 · 0 评论 -
Linux man 命令后面的数字含义及作用
Linux的man很强大,该手册分成很多section,使用man时可以指定不同的section来浏览,各个section意义如下: 1 - commands2 - system calls3 - library calls4 - special files5 - file formats and convertions6 - games for linux7 - ma原创 2015-12-27 15:00:01 · 24347 阅读 · 1 评论 -
U-boot中mtdparts命令添加
#define CONFIG_CMD_MTDPARTS#define CONFIG_MTD_DEVICE#define MTDIDS_DEFAULT "nand0=jz2440-0" #define MTDPARTS_DEFAULT "mtdparts=jz2440-0:256k(u-boot)," \原创 2015-11-28 21:44:20 · 16786 阅读 · 0 评论 -
linux中的mdev机制
mdev是busybox自带的一个简化版的udev。 作用是在系统启动和热插拔 或动态加载驱动程序时,自动产生驱动程序所需的节点文件,在文件系统中的/dev目录下的设备节点都是由mdev创建的 mdev扫描/sys/class和/sys/block中所有的类设备目录,如果在目录中含有名为"dev"的文件,且文件中包含的是设备号,则mdev就利用这些信息为这个设备在/dev下创建原创 2015-12-12 11:18:19 · 17902 阅读 · 0 评论 -
制作根文件系统:make[1]: *** [miscutils/ubi_tools.o] 错误 1 --来源于网络
miscutils/ubi_tools.c:63:26: error: mtd/ubi-user.h: No such file or directorymiscutils/ubi_tools.c: In function 'ubi_tools_main':miscutils/ubi_tools.c:133: error: 'UBI_DEV_NUM_AUTO' undeclared (fi转载 2015-09-12 10:20:58 · 3854 阅读 · 0 评论