Linux环境/工具
文章平均质量分 76
李迟
李迟,男,已婚,字子徐,一字仲文,别号水田居士,木草山人。有一儿一女,李大锤和李大妞。来自广西岑山溪水之地,家在一垌之尾。毕业于桂林电子科技大学三院1专业。摄影师,金融学者,历史家,科学哲学爱好者,社会问题研究者,持证上岗者(架构师、项目管理师),爱好广泛而无精通者。古文、诗词、文学、小说、武侠、经济、社会等无所不涉。目前主要混迹于显示器、鼠标、键盘之间。于代码及兴趣之事中有所得,与好友谈之一二,足矣。
展开
-
CentOS虚拟机centos-root扩容
本文介绍在虚拟机 vmware 的 CentOS 系统中实现无损扩容根分区的方法。原创 2022-11-30 01:57:22 · 3140 阅读 · 2 评论 -
格式化工具indent使用笔记
indent可以格式化C/C++代码,经测试发现,只有Linux格式的文件才能正确格式化,即以LF结尾。原创 2020-11-05 00:56:43 · 1859 阅读 · 0 评论 -
Linux下coredump调试1:使用
李迟按:调试是程序员的一项基本能力,经历过大大小小的实战,随着见识的增长,只要用心留意并做总结,相信调试的能力会越来越好。写程序不可能没有bug,只是bug容易不容易被发现,bug的危害大不大。笔者使用coredump调试很多年了,也有部分的工作笔记,无奈事多人懒,一直没有好好总结。直到最近帮同学排查bug时,才真正下定决心写几篇文章。本文为开篇,主要描述coredump作用及配置的一些注意事...原创 2016-05-31 21:38:39 · 6388 阅读 · 0 评论 -
ubuntu 14.04系统DHCP服务器搭建
前段时间老大安排我解决网络问题,老大说,硬件部门老大的结论是平台软件有问题,叫我排查。经过几天的换交换机、换网线、换设备的测试,最后硬件部门同事说板子上有个静电阻抗器质量有问题。原创 2016-06-04 13:59:28 · 10119 阅读 · 0 评论 -
iptables学习笔记:同一端口号同时支持tcp和udp的转发
前段时间,某项目中遇到一个端口转发问题,虽然我无缘参与项目,但由于项目使用到的一个平台恰好是我前不久搞过的,所以最终还是找我,于是中断了正在进行的任务进行协助。他们定位到只有udp无法转发成功,而tcp是成功的。我看了代码,里面只针对tcp进行转发的。因此,需要对该端口同时支持tcp和udp转发。下面记录一下转发命令原创 2016-01-13 14:17:01 · 11743 阅读 · 0 评论 -
Ubuntu编译内核及grub的一些笔记
最近心态不稳定,不怎么想发表文章,但看了看之前写了的笔记,想想还是整理出来吧,其实我写文章,也有一部分原因是为了心里的慰藉——当年游戏打不过别人,关注点便转向其它方面。这里整理的是以前编译内核、引导启动过程的步骤及问题的解决。原创 2014-11-04 21:56:28 · 2026 阅读 · 0 评论 -
Linux查看CPU型号及内存频率及其它信息的命令
这篇文章写一下以前整理的查看系统资源、性能的一些命令。本来那时就想系统地整理的,但事多人懒没去做,现在就简单写写。原创 2014-11-04 22:07:31 · 63543 阅读 · 3 评论 -
Ubuntu日志的一些笔记
linux的日志存放在/var/log目录下。开启和关闭/var/log目录下日志文件的配置文件: rsyslog.d/50-default.conf自定义用户信息,在该文件中添加:user.notice -/var/log/user.log(注:可以在程序中使用syslog函数记录打印信息,如果指定日志等级为LOG_USER|LOG_NOTICE,则信息会存入/var/log/user.log文件)原创 2014-12-19 12:46:15 · 1119 阅读 · 0 评论 -
使用U盘制作纯dos系统
前面文章一直提到的设备,需要对主板上的bios升级,bios文件由厂家提供,烧写工具也由厂家提供,而烧写方法只有一句:在纯dos环境下,运行xxx程序即可。而公司某些部门不懂如何进入“纯dos环境”,其实我也不懂,由既然人家问了,我也要看看。更重要的原因是,如果我不升级bios,那个flash驱动就无法进行测试。无奈,只得自己动手学习了。于是,复用周末的时间,看了一下相关的东西,发现真的不难,困难的是,没人去看,去学。这篇文章,主要是讲如何在U盘上制作一个dos系统。原创 2014-12-26 13:27:25 · 18117 阅读 · 1 评论 -
Linux终端下打印带颜色的信息
很早之前在学习Makefile的时候,对linux的shell字体颜色有一点点研究。在使用ffmpeg工具时,也看到带有不同的颜色的信息输出,比如红色表示错误信息。现在,重新用代码来实现输出不同的颜色的打印信息。原创 2015-01-26 13:24:42 · 8733 阅读 · 0 评论 -
网卡流量监控工具vnstat的使用
前段时间因为网络的问题接触了一个名为vnstat的工具,这个工具实时监控网络的流量 ,直观地了解当前的网络情况。原创 2015-03-31 12:59:16 · 3659 阅读 · 0 评论 -
Linux下coredump调试3:补录
本篇文章记录在coredump调试过程中记录的其它事项。一般地,调试的方式多种多样,不可能将其一网打尽。就笔者而言,一般喜欢用print大法,分段注解法,版本回退法,等等。实在无招,则用coredump文件调试了。在笔者“众多”经验中,程序挂掉原因多种多样,像内存泄漏造成无内存可用,文件/socket打开未关闭被耗尽。所以编程的规范还是很关键的,这不单单是说编码命名风格,还有整体编程的设计和细心程度,比如指针的判断,数组范围不要越界,自己申请的内存要记得释放,等等。原创 2016-05-31 22:53:55 · 1082 阅读 · 0 评论 -
Linux下coredump调试2:实例
前面文章只是给出简单演示,实际的程序运行中会遇到这样或那样的问题。所以,本文结合笔者实际编程经历,给出一些曾经遇到过的实际例子。笔者遇到的大多数程序崩溃原因,基本上都是段错误:非法内存使用,越界。这就要在程序编码中注意代码的质量了。比如使用指针前必须先判断其合法性,释放指针后及时将指针置为NULL,使用数组注意不能超出其范围,等等。指针非法下面的例子是笔者前段时间进行的onvif程序的...原创 2016-05-31 22:02:20 · 950 阅读 · 0 评论 -
Linux使用tcpdump抓获取WIFI包
Linux上常用的抓包工具有tcpdump,还有大名鼎鼎的wireshark(图形界面)。它们都可以抓无线网络WIFI包。本文介绍用两者如何在Linux系统中抓包,假设系统已经正确安装无线网卡驱动,并能识别到wlan0设备。原创 2016-10-28 23:42:38 · 11957 阅读 · 3 评论 -
iptables学习笔记:端口转发之“外网访问内网”
考虑一种网络拓扑应用情景,一个内部局域网中有多台服务器提供不同的服务,如web服务、FTP服务、ssh、telnet等,通过网关或防火墙连接外部网络,如果外部网络上的主机需要访问这些服务器,则需要在网关上实现转发。原创 2016-09-25 11:54:14 · 14967 阅读 · 0 评论 -
iptables学习笔记:端口转发命令优化
大约一年前,在一个x86板子系统上实现端口转发。现在又出现问题,于是抽空整理整理。虽说是另一同事在另一项目中遇到的,但中秋节前我出差之前老大叫我帮忙协助该同事排查,出差时该同事又call我,出差后老大又叫我继续协助,所以是我的锅,最终还是逃不掉的。这也使得自己对自己做(过)的事不敢懈怠,天知哪一天又回到自己手中。原创 2016-09-24 00:19:11 · 2801 阅读 · 0 评论 -
iptables学习笔记:使用NAT实现简单的无线AP
之前使用的是无线路由让手机上网。学习了iptables后,尝试在非openwrt系统的Linux上实现相同功能。本文简单记录一下。原创 2016-10-12 21:02:53 · 2849 阅读 · 0 评论 -
iptables学习笔记:端口转发之“内网访问外网”
我们一般使用路由上网,本机IP是内网私有IP,如192.168.1.100/24,而不是公网IP。至于能上网,是因为路由器已经做了转发。本文以实例介绍地址转换,实现内网设备与外部网络通信。有了前文的介绍,就无须介绍太多原理方面的东西了。先给出网络拓扑图如下:服务器左边为“内网”,右边为“外网”。中间为服务器(工作站或网关,如无特别说明,下文提到的“服务器”都指这个服务器),服务器的et...原创 2016-09-25 12:02:30 · 8691 阅读 · 0 评论 -
主机与设备之间文件拷贝的几种方式
本文简单介绍几种嵌入式Linux与PC(Linux或Windows)之间的拷贝方式。原创 2016-08-21 10:25:45 · 3058 阅读 · 0 评论 -
使用cppcheck检测代码警告、错误
cppcheck是一个C/C++静态检查工具。它可以帮助我们检测出代码存在(潜在)的问题,比如数组越界、内存申请未释放、文件打开未关闭。注意,cppcheck不是编译器,替代不了gcc。原创 2016-06-15 20:24:08 · 14514 阅读 · 1 评论 -
crosstool-ng构建的一个错误的解决
这段时间,既在做一个基于已有芯片平台的项目,也要进行新芯片平台的预研。原创 2014-08-24 14:37:25 · 2939 阅读 · 1 评论 -
关于svn、git生成版本号脚本的再次改进
自从很久之前写了《SVN、GIT生成版本号》和《关于svn、git生成版本号脚本的改进》两篇文章后,自以为不会再修改了,结果却不如人意,里面的的脚本还是有bug,现在又要进行再次的修改。这个bug隐藏的比较深,而且要在一定场合下才出现。——其实最主要还是git和svn的判断方法有问题。在低版本的svn(比如1.6),受控工程的所有目录下都会有.svn目录。而在高版本的svn中(比如1.8),只...原创 2014-09-20 00:12:58 · 1290 阅读 · 0 评论 -
遇到一个在脚本中读取文件内容占用文件句柄的小问题
一般来说,嵌入式设备的程序是上电自动运行的。设备系统启动后会自动运行某些系统级脚本(/ect/rc3.d/下的脚本),最终会运行我们自定义的脚本,在该脚本中会运行应用程序。——这就是系统自动启动的一般做法。原创 2015-07-30 22:32:23 · 1195 阅读 · 0 评论 -
Linux内核生成版本号的一些研究
真正在工作接触内核,其实仅仅是一年前的事情。在使用git管理代码时,发现编译出来的版本会自动带个加号“+”,或者带有“dirty”字样,当时查了些资料解决了。现在隔了那么久,觉得还是有必要写点笔记出来。上面所提到的,实际上是和Linux内核的管理有关的(比如git本地有修改,但未提交,则有“dirty”字符串),由于了解不多,这里不展开了。原创 2015-03-28 08:39:40 · 3848 阅读 · 0 评论 -
Linux系统网络设备启动和禁止“ifconfig eth0 up/down”命令的跟踪
前面文章讲了Linux系统的ethtool框架的一些东西,是从用户空间可以直观认识到的地方入手。同样,本文从Linux系统绝大部分人都熟悉的“ifconfig eth0 up”命令来跟踪一下此命令在内核中的发生了什么事情。由于ifconfig启动(up)和禁止(down)网络设备很相似,就放到一起讲了。首先从ifconfig的源码入手,我下载的源码地址是http://www.tazenda.d...原创 2015-03-30 22:02:56 · 31335 阅读 · 1 评论 -
ubuntu10.04添加账户示例
前不久,部门来了个新同事,很不幸,领导又让我来指导新人。教新人这种事吃力不讨好,既要邮件上的来往,又要亲口告诉新人一些事。但你的任务还要按时完成,上上级领导(比部门领导还高一级的领导)安排任务时,可不管部门是否来了新人,你是否正在教新人。这个“导师”制,是去年开始的。哥来公司时连个文档都是自己写,现在好了,新人来了,有人教了。两个月前,部门还在整理嵌入式的知识体系,这下更好了,啥都不用原创 2014-06-29 19:35:23 · 917 阅读 · 0 评论 -
遇到一个日志文件变化带来的文件句柄问题
正在进行的项目中有个系统调试日志存储的功能,需要存储打印信息。测试部反馈了一个bug:调试日志文件有时候不更新。对照代码,项目用的代码和之前项目的代码是一样的。感觉没什么问题,我自己测试没发现有不更新的情况,但测试部已经反馈过几次了,肯定有问题。项目deadline很快到了(按计划,应该是本文发表前4天已经是deadline了),——也正因为如此,开始了本年第一次周末加班。项目经理不放过这个问题,经分析代码,最终算是解决了问题。原创 2015-01-25 17:47:12 · 2077 阅读 · 0 评论 -
linux下用dd命令拷贝硬盘
最近所做的项目涉及到系统的“烧写”,在ARM中,一般用flash,容量也不大,直接用erase操作即可。但在x86上,硬盘动辄上G,安装一个发行版本的Linux,也得3GB~4GB,如果将这些数据“烧写”,的确不易,反正我是不知道用什么方法。ghost方法我想过(但没试过),因此最终的设备没有鼠标、没有键盘,没有显示器,不能说给你个光盘,就可以安装系统。幸好,去网上搜索一番,得到一些有原创 2014-11-04 21:41:59 · 9655 阅读 · 0 评论 -
ubuntu apache服务器和gitweb服务器搭建
ubuntu下安装软件十分简单。只需要apt-get install即可,不用自己下载源码,自己编译。这篇文章主要写一下web服务器的搭建,至于gitweb,其实很久以前已经搞了,那时为了更好地推广git而做的,不过至今效果甚少。但它与web服务器共同使用,因此在这里也一并写上。原创 2014-11-04 22:05:24 · 1228 阅读 · 0 评论 -
Ubuntu系统下ntp服务器搭建
之前文章一直提及的“设备”,其它可以把它理解为一台X86架构的安装了ubuntu系统的服务器,其实这系统已经安装了ssh、telnet、apache等服务器了。本文讲讲搭建一个ntp服务器。对于ntp,我们的设备需要提供同步的函数接口,以便调用者可以随时随意地同步时间。我的工作更是安装ntp工具以及教人如何调用这个工具。原创 2015-02-23 20:38:09 · 3561 阅读 · 0 评论 -
遇到一个Linux系统时间突变问题
最近遇到一个Linux系统时间无法更改小于某个固定时间的问题。原创 2015-06-19 13:44:25 · 6692 阅读 · 0 评论 -
Ubuntu系统下ntp服务器搭建2
上一篇文章主要讲NTP服务器的,在使用过,还遇到其它和时间有关的问题,本篇文章写写在同步时间和改时区方面的笔记。原创 2015-02-23 20:50:38 · 821 阅读 · 0 评论 -
在Ubuntu 14.04平台上利用Intel的GPU实现硬件加速--基于VAAPI
先前利用了一些时间去网上搜索资料,了解Intel的集显,特别是E3800系列的SOC,主要是因为老大安排一个任务,叫我协助另一个公司的同事调查这个SOC上的硬件加速功能,即硬件解码。这个事我很早就开始耳闻了,当时还在搞项目,没空理。趁着项目处于交付阶段有点空余时间就安排我去做。原创 2015-02-12 12:47:03 · 4715 阅读 · 0 评论 -
Linux网络转发和端口映射的笔记
最近研究了一下Linux平台的网络IP转发和端口映射方面的东西,作了一点笔记。在学习时,查了很多资料,有的写的不是很清楚明白,而自己对这方面了解又不多,花的时间还是不少的。原创 2014-10-20 13:31:59 · 8241 阅读 · 0 评论 -
Linux内存带宽的一些测试笔记
最近要测一下设备的内存性能,于是找了些资料,用了些工具,写了些笔记。那个设备是intel的CPU,而intel有个很强大的工具,叫PTU,但我死活找不到下载链接,找到的文章是几年前写的,从那篇文章看是可以使用的,但我却无缘使用。在测试前,理应了解本机所具备的特点,比如CPU频率、内存频率、内存大小,等等信息。查看CPU用如下命令(多少个核,频率,特性等):cat /原创 2014-10-21 13:25:01 · 8120 阅读 · 0 评论 -
Ubuntu定制live cd
最近在捣鼓系统的制作和安装(从写的文章也可以隐约看出)。之前研究了一下debootstrap,后面又发现live cd其实也是可以自己定制的。本文就简单记录一下自己的学习笔记。原创 2014-10-21 13:46:28 · 4268 阅读 · 2 评论 -
将x86平台的Linux控制台重定向到串口
一般地,安装在PC的Linux是使用鼠标、键盘作为输入源,显示器作为输出显示,但有些X86的设备,如工控机等,为了节省成本,会去掉认为无用的外设接口,以致熟悉了PC的人不习惯。一个设备,没有鼠标、键盘、显示器,但只要还有串口,还是可以控制的。本文将在一个具备串口的设备上配置Linux系统,以便将控制台重定向到串口。Linux使用ubuntu14.04发行版本。原创 2014-10-22 13:26:31 · 4705 阅读 · 0 评论 -
让ubuntu开机快一点:记开机出现Waiting for network configuration...
新制作出来的系统,可以正常在设备上跑,不过有个小问题,就是启动时,如果不接网线的话,会卡在一个地方,卡很久。信息如下:Waiting for network configuration...Waiting up to 60 more seconds for network configuration.........在网上查了些资料,做了些笔记。原创 2014-11-10 22:54:55 · 3935 阅读 · 0 评论 -
ubuntu启动脚本的一些笔记
了解ubuntu启动的过程,是为了解决一个小小问题。这篇文章只讲一下自己所总结的笔记。原创 2014-12-17 12:59:16 · 1815 阅读 · 0 评论 -
初识crontab
说实话,对于Linux许多shell和工具,我都没研究过。除了写过点代码,熟记几个命令,其它基本上没什么突出的本事——有点担心简历上的文字了。对于crontab,我一直只闻其名,未真正接触过。这次算有点认识了。我一直想做一下清除日志的事情,因为无意中发现/var/log有20多MB。在周末做了压力测试后,竟然达到GB级别。后来查了些资料,可以通过crontab进行定时任务,于是了解了一下crontab。原创 2014-12-18 12:54:02 · 614 阅读 · 0 评论