![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
User app
文章平均质量分 78
chuanzhilong
本人写博客实为学习、交流、分享!若有文章涉及侵权,请及时联系本人,一经核实,将马上进行处理,谢谢。
展开
-
关于实现udev/mdev自动挂载与卸载
在网上有很多关于讲mdev的自动挂载基本上都是一个版本,经过测试自动挂载确实可行,但是关于自动卸载mdev似乎不能很好的支持,经过修改已经可以做到与udev的效果相似。不能在挂载的目录中进行热插拔,否则会出现问题,不过此问题在下次插入U盘时不会造成影响,可能对U盘有损坏。本文介绍了mdev与udev两种方法来实现自动挂载,读者可根据需要任选其一即可。 首先介绍一下md转载 2016-08-08 12:45:18 · 1039 阅读 · 0 评论 -
Android 4.4 Kitkat 使能 USB adb 功能
背景在 Linux-3.8 以后,Android 的内核分支,便去掉了 f_adb,改使用 USB function FS,在用户空间实现 USB adb 功能。这篇文章根据原作者的 Google+ 文章,在 Atmel sama5 开发板上做了测试,将步骤记录如下,供需要使用的读者参考,你也可以查看作者原文:https://plus.google.com/11152478043580转载 2017-02-15 13:45:14 · 821 阅读 · 0 评论 -
linux中在/dev/下手动创建设备节点
linux中在/dev/下手动创建设备节点/dev/目录下有许多设备节点文件,比如u盘的文件/dev/sda,mmc卡的文件/dev/mmcblk0,这些文件通常是由udev或mdev程序检测到uevent事件后自动创建的。我们也可以通过mknod命令手动创建。下面mmc卡为例,介绍如何创建其设备节点文件。1. mknod命令命令的格式是:mknod 设备名 设备类型(原创 2017-03-25 15:36:00 · 25045 阅读 · 1 评论 -
简单明了,彻底地理解Binder
你是不是看过很多Binder文章但是还是对Binder没有一个深刻理解?不是那些文章讲得不够好,主要是存在两种情况,一种是讲的深,全C代码~,对我这种专做Java的人来说没有心情往下看;另一种是只讲framework层,Binder驱动并没有具体提,导致我们会用Binder,也大致能说的出一些原理,可并没有一个完整的深刻认知。那么接下来让我们一起学习Binder吧,相信接下来的内容会让你有一定的收转载 2017-06-22 15:44:19 · 518 阅读 · 0 评论 -
Android 的 Binder 机制概念介绍
结合了以下两篇文章的介绍,对Android 的 Binder 机制概念开始有了一定的理解。分享给大家。-------------------------------------分割线---------------------------------摘要Binder是android 中一个很重要且很复杂的概念,它在系统的整体运作中发挥着极其重要的作用,不过本文并不打算从深层次分析Bind转载 2017-06-22 16:51:41 · 418 阅读 · 0 评论 -
Apache、nginx 、lighttpd性能比较
1. web服务器简介1. lighttpd Lighttpd是一个德国人领导的开源软件,其根本的目的是提供一个专门针对高性能网站,安全、快速、兼容性好并且灵活的Web server环境 Lighttpd是一个具有非常低的内存开销,cpu占用率低,效能好,以及丰富的模块等特点。lighttpd是众多OpenSource轻量级的web serve转载 2017-06-26 14:24:36 · 1731 阅读 · 0 评论 -
以太网,IP,TCP,UDP数据包分析
以太网,IP,TCP,UDP数据包分析1、ISO开放系统有以下几层:7应用层6表示层5会话层4传输层3网络层2数据链路层转载 2017-07-20 15:36:37 · 556 阅读 · 0 评论 -
linux下的/dev/mem设备认识和使用
最近在为了读取一个寄存器的值动心思时,突然发现,一个好用的工具”r”,源码附上:#include #include #include #include #include #include #include #if __LP64__#define strtoptr strtoull#else#define strtoptr strtoul#endifstatic in转载 2017-09-21 18:25:00 · 3410 阅读 · 0 评论 -
NAT介绍及iptables配置NAT的方法
NAT,网络地址转换,该技术是为了应对IPv4地址耗尽的问题而产生的。他的产生几乎使IPv4起死回生。在IPv4已经被认为行将结束历史使命之后近20年时间里,人们几乎忘了IPv4的地址空间即将耗尽这样一个事实。IPv4地址的划分在弄明白NAT的具体功能前,我们先来看一看IPv4地址的划分。IPv4协议为了路由和管理方便,43亿的地址空间被按照不同前缀长度划分为A,B,C,D转载 2017-11-10 10:34:21 · 6516 阅读 · 0 评论 -
linux 静态库的链接 undefined reference
t+0x7): undefined reference to `test' collect2: ld returned 1 exit status 这就是最典型的undefined reference错误,因为在链接时发现找不到某个函数的实现文件,本例中test.o文件中包含了test()函数的实现,所以如果按下面这种方式链接就没事了。gcc -o main main.o test.o ...转载 2018-04-26 00:05:02 · 7041 阅读 · 1 评论 -
hostapd wpa_supplicant madwifi详细分析(一)——hostapd是干嘛的
最近在学习无线,看了许多脚本和代码,虽然在整体上对这个模块实现的大致流程有了一定的掌握,但是对一些细节还不是很清楚,所以用这种方式来记录学习过程中的一些总结和体会,有理解错误或者描述不当的地方,还望有识者指正。看代码的时候主要借鉴的是 hostapd的radius/eap server代码分析系列和源代码,里面讲的很具体,很清楚。hostapd是干嘛用的?hostapd能够使得转载 2017-01-11 18:36:47 · 1353 阅读 · 0 评论 -
wpa_supplicant与wpa_cli之间通信过程
wpa_supplicant编译:1. wpa_supplicant/Android.mk :-- wpa_cli-- wpa_supplicant -- libwpa_client.so 2. hostapd/Android.mk :-- hostapd_cli-- hostapd 从通信转载 2016-12-13 14:52:23 · 2729 阅读 · 0 评论 -
无线路由器提供AP、Client、Router、Bridge、Repeater五种工作模式各自含义
可去TP-LINK官网搜一下“TP-LINK Mini系列无线路由器设置指南”一共5篇系列文章,详细说明了各模式的作用和设置方法。这里大概说一下,可能不准确,仅供简单参考。Router,即无线路由模式,这也是我们最常用的一种工作方式,一般家里宽带连接,将宽带猫连接在无线路由的WAN口上,然后做拨号帐号设置,就用这个模式即可。AP,即无线交换机,和router的区别就是不使用路由功能,一转载 2016-08-05 09:18:25 · 7905 阅读 · 1 评论 -
MSM8909+Android5.1.1 SPI驱动开发(PSAM部分)
1. PSAM部分的硬件设计 图1CS 片选信号SCK 时钟信号MISO 主设备的数据输入、从设备的数据输出脚MOSI 主设备的数据输出、从设备的数据输入脚 2. PSAM部分软件设计 图2 (1) PSAM应用这部分只需要调用API函数即可。 (2) PSAM转载 2017-01-25 16:45:16 · 5163 阅读 · 0 评论 -
printf的归宿-数据打印到哪儿了
近日在一次测试Linux内核路由查找算法的过程中,发现一个printf语句竟然能将性能降低2/3。当然,使用“竟然”一词并不意味着这个问题是第一次发现,我的想法是,把它记录下来,让没有经验的同学对printf知其所以然,同时导出我对“性能攸关”的这类算法中记录日志的一个观点。声明我不会把大段的源代码贴在文章中,而只是希望能通过阐述原理把我的意思表达清楚。诚然,作为程序员没有代码好像一切都会转载 2017-01-20 11:09:32 · 913 阅读 · 0 评论 -
获得系统的uptime
有几种方法:1. 执行命令 uptime2. 使用clock_gettime 函数和 sysinfo函数#include #include #include #include void main(void) { struct timespec tp; clock_gettime(CLOCK_MONOTONIC, &tp);转载 2017-01-11 18:31:23 · 848 阅读 · 0 评论 -
嵌入式 Linux 中自定义 reboot / poweroff 行为
一般拿到一个 Linux SDK 的时候,方案商已经内置了很实用的 busybox,用来执行 poweroff / reboot 命令。但嵌入式开发时,有时需要自定义执行 reboot / poweroff 之后的一些行为。本文就是负责简单易懂地解释如何修改。本文地址:https://segmentfault.com/a/1190000006216529Reference基转载 2016-08-31 18:01:01 · 1224 阅读 · 0 评论 -
ELF格式文件和BIN文件的区别
ELF文件格式是一个开放标准,各种UNIX系统的可执行文件都采用ELF格式,它有三种不同的类型:可重定位的目标文件(Relocatable,或者Object File)可执行文件(Executable)共享库(Shared Object,或者Shared Library) ELF格式提供了两种不同的视角,链接器把ELF文件看成是Se转载 2016-11-03 12:06:28 · 912 阅读 · 0 评论 -
ELF文件和BIN文件
文件的内容:1. BIN文件是 raw binary 文件,这种文件只包含机器码。2. ELF文件除了机器码外,还包含其它额外的信息,如段的加载地址,运行地址,重定位表,符号表等。所以ELF文件的体积比对应的BIN文件要大。文件的执行:1. 执行raw binary很简单,只需要将程序加载到其起始地址,就可以执行; FILE *fp = fopen("vmli转载 2016-11-03 12:07:33 · 607 阅读 · 0 评论 -
关于连接参数-Ttext
讨论-Ttext之前,先简单介绍一下工具:readelf -h 读取ELF可执行文件头readelf -S 查看ELF文件Section 信息objdump -d 看目标文件汇编代码 以典型的bootloader为例,我们分析-Ttext的实际作用。 首先来看具体的两条命令编译 $(CC) $(CFLAGS) -DKERNEL_ST转载 2016-11-03 12:35:43 · 2881 阅读 · 1 评论 -
嵌入式Linux根文件系统制作和挂载
嵌入式Linux系统由三部分组成: uboot、kernel、根文件系统, 还是这张老图这里的根文件系统可以说是包含两个部分: 一个是根,一个是文件系统那么什么是根呢?哈哈 其实根表示的就是第一个的意思下面贴张图看看整个根文件系统制作的步骤:第一步创建目录,制作rootfs!第二部分:挂载根文件系统(即如何使用上边制作好的转载 2016-11-02 18:04:34 · 977 阅读 · 0 评论 -
使用mdev在/dev/下创建子目录放置设备节点
最近在嵌入式Linux板子上调试USB声卡,使用mdev创建设备节点时默认直接在 /dev/目录下创建, 如controlC0 pcmC0D0c seq sequencer2mixer pcmC0D0p sequencer timer但是用户空间的程序alsa-lib, alsa-utils都是去 /dev/snd/目录下找这些设备节点, 怎么能让mdev把设转载 2016-11-24 17:12:28 · 1446 阅读 · 0 评论 -
launchctl list status 出现异常的解决方法
从stackoverflow上转载一篇文章,讨论如何解决在Mac OS中发现通过launchctl list发现plist运行的Status出现异常的方法,其实就是安装launchcontrol图形工具。launchcontrol它是一款强大的后台服务管理进程launchd辅助工具,,能够帮助我们自定义并管理各种System/Global/UserAgents。可以查看程序的运行状态,转载 2016-12-07 17:41:32 · 4768 阅读 · 0 评论 -
有关/proc/uptime这个文件里两个参数所代表的意义
有关/proc/uptime这个文件里两个参数所代表的意义:[root@app ~]#cat /proc/uptime 3387048.81 3310821.00第一个参数是代表从系统启动到现在的时间(以秒为单位):3387048.81秒 = 39.20195381944444天,说明这台服务器已连续开机39.20195381944444天第二个参数是代表系统空闲的转载 2017-01-06 15:30:17 · 313 阅读 · 0 评论 -
Framebuffer的配置及应用
* 一、FrameBuffer的原理* FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。 Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出 FrameBuffer这 个设备来供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过Framebu转载 2016-12-20 16:08:19 · 3851 阅读 · 0 评论 -
五个 Linux 下用户空间的调试工具
根据定义,调试工具是那些那些使我们能够监测、控制和纠正其他程序的程序。我们为什么应该用调试工具呢? 在有些情况下,运行一些程序的时候我们会被卡住,我们需要明白究竟发生了什么。 例如,我们正在运行应用程序,它产生了一些错误消息。要修复这些错误,我们应该先找出为什么产生这些错误的消息和这些错误消息从哪里产生的。 一个应用程序可能突然挂起,我们必须了解其他什么进程同时在运行。我们可能还必须弄清楚某个转载 2017-02-05 23:34:11 · 495 阅读 · 0 评论 -
详解coredump
一,什么是coredump我们经常听到大家说到程序core掉了,需要定位解决,这里说的大部分是指对应程序由于各种异常或者bug导致在运行过程中异常退出或者中止,并且在满足一定条件下(这里为什么说需要满足一定的条件呢?下面会分析)会产生一个叫做core的文件。通常情况下,core文件会包含了程序运行时的内存,寄存器状态,堆栈指针,内存管理信息还有各种函数调用堆栈信息等,我们可以理解为是程序工转载 2017-01-16 11:24:13 · 542 阅读 · 0 评论 -
AP模式和Router模式区别是什么
AP模式和Router模式有什么区别呢?在TP-Link、水星(Mercury)、迅捷(Fast)等品牌的迷你无线路由器上,有AP模式、Router模式、中继和桥接等几个上网模式,本文重点详细介绍AP模式与Router模式的区别。AP(接入点)模式在AP模式下,需要把迷你无线路由器接入到已经可以上网的路由器或者交换机上面,然后迷你无线路由器可以提供无线WiFi,一般的迷你无线路由器出厂转载 2016-07-29 16:39:34 · 10154 阅读 · 2 评论