通常在驱动中看见的网卡代码很多,但是都离不开发送与接收,掌握好骨干也就好阅读网卡驱动了。
数据发送 :
发送函数:xxx_start_xmit()
上层封装好了sk_buff丢进kernel后,buf存储在skb->data中,通 过 xxx_start_xmit(),发送出去。
下面的实例是通过写入某个设备节点发送出去,当然这个设备肯定是串口或者sdio等传输设备,
也可以直接...
分类:
系统相关 时间:
2014-09-03 22:50:07
阅读次数:
554
经常听到身边用安卓的朋友抱怨手机卡顿,内存动不动就快没了,而Google声称在512M的内存下也能流畅运行Android 4.4,到底它做了什么?
总结一下它主要做了四件事:
1.优化内核,使用ActivityManager来减少直接内存回收
2.优化LMK(low memory killer)的临界值
3.使能KSM(Kernel Samepage Merging)
4.使能ZRAM代...
分类:
移动开发 时间:
2014-09-03 18:10:57
阅读次数:
196
在处理工作问题的时候需要查看防火墙的日志,由于默认日志都是在系统日志里/var/log/messages里面。需要对rsyslog做设置。首先编辑配置文件/etc/rsyslog.conf如下:# Log all kernel messages to the console.# Logging mu...
分类:
其他好文 时间:
2014-09-03 14:38:16
阅读次数:
179
以定义参数 cus_param 为例,int型变量。
1. Preloader部分
Platform.h(mediatek\platform\[$platform]\preloader\src\drivers\inc\platform.h)
在如下结构体中加cus_param变量,如果是char型,请注意4byte对其:
typedef struct {
u32 magic...
分类:
移动开发 时间:
2014-09-03 13:06:36
阅读次数:
324
Ssize_t 与size_t跟踪linux源码得到以下宏:#ifndef _SIZE_T#define _SIZE_Ttypedef __kernel_size_t size_t;#endif#ifndef _SSIZE_T#define _SSIZE_Ttypedef __kernel_ssi....
分类:
其他好文 时间:
2014-09-03 12:36:16
阅读次数:
251
在前文Android—— 4.2 Vold挂载管理_NetlinkManager (四)中有解析到Vold 是从kernel中获取uevent事件,来获取device信息,其中是通过一个Netlink的套接字,目前整个Vold机制也分析完了,
上篇 Android—— 4.2 Vold挂载管理_MountService (六) 分析了机制中最上层的,这里分析一下最下层的kernel uevent事件的发送,以USB设备为例!...
分类:
移动开发 时间:
2014-09-02 19:59:35
阅读次数:
316
安装keepalived#./configure--sysconf=/etc--with-kernel-dir=/usr/src/kernels/2.6.32-358.el6.x86_64/&&make&&makeinstall
#ln-s/usr/local/sbin/keepalived/sbin/
#chkconfigkeepalivedon修改网卡配置#vim/etc/sysconfig/network-scripts/ifcfg-lo:0
DEVICE..
分类:
其他好文 时间:
2014-09-02 18:08:35
阅读次数:
210
解決方案:1.sudo apt-get install virtualbox-ose-source2.cd /usr/src3.sudo tar xjvf virtualbox*.bz24.cd modules/virtualbox-ose5.sudo ./build_in_tmp install6...
分类:
其他好文 时间:
2014-09-02 11:59:44
阅读次数:
201
Debugging Techniques
内核debug的挑战:
Kernel programming brings its own, unique debugging challenges. Kernel code can not be easily executed under a debugger, nor can it be eas...
分类:
其他好文 时间:
2014-09-02 00:23:13
阅读次数:
476
linux基本的启动步骤:1、加载BIOS的硬件资讯与进行自我测试,并依据配置取得第一个可启动的装置;2、读取并运行第一个启动装置内MBR的bootLoader(亦即是grub,spfdisk等程序);3、依据bootloader的配置加载Kernel,Kernel会开始侦测硬件与加载驱动程序;4、在硬件驱动成功后,K..
分类:
系统相关 时间:
2014-09-01 15:47:43
阅读次数:
208