Linux设备驱动学习-Davinci开发板上运行的hello模块
Linux设备驱动学习-Davinci开发板上运行的hello模块
看了很多个hello world了,自己来写一个在davinci板块上跑的吧。
主体很简单,就是一个C文件hello_davinci.c。
/*================hello_davinci.c==============*/
#include <linux/module.h> /*所有模块都需要的头文件*/
#include <linux/kernel.h>
#include <linux/init.h> /* init和exit相关宏*/
MODULE_LICENSE("Dual BSD/GPL");
MODULE_AUTHOR("lintax");
static int hello_init(void)
{
printk(KERN_ALERT " Hello Davinci!\n");
return 0;
}
static void hello_exit(void)
{
printk( KERN_ALERT " Goodbye, Davinci.\n ");
}
module_init(hello_init);
module_exit(hello_exit);
/*================hello_davinci.c end===========*/
给其配个Makefile文件:
/*================Makefile==================*/
obj-m := hello_davinci.o
KERNELDIR := /opt/ti-davinci/
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
clean:
rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions
/*================Makefile end===============*/
好了,编译吧。
我的好心情立马被扑灭了,error,又见error:
说找不到/opt/ti-davinci/include/asm/ 下的某个头文件,查了一下,没这个目录嘛,当然找不到了。记得以前是看见过的,并且与asm-arm是一样的,应该是编译时复制的一份。不巧我前几天觉得硬盘空间有些不够,就把好几个内核都
make clean了一次。那就再make一次嘛,ok,生成了hello_davinci.ko。
转移到davinci开发板上,执行插入模块命令:
insmod hello_davinci.ko
输出信息:
Hello Davinci!
通过lsmod查看,也有了hello_davinci 模块。
然后执行移除模块命令:
rmmod hello_davinci
输出信息:
Goodbye Davinci.
再用lsmod来查看,就找不到hello_davinci了。
有以下几点要注意:
1,所使用的内核环境必须是编译过的,否则,就等着重蹈我的覆辙吧。
2,对于编译过程中类似于:不能创建hello_davinci.o.tmp文件的错误。说明权限不够,可更改hello_davinci.c Makefile文件所在目录的属性,或者是sudo到根用户。
3,hello_davinci.c文件中调用的头文件的作用:
&n
相关文档:
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/ioctl.h>
#include <net/if.h>
#include <stdio.h>
#include <string>
#include <iostream>
#include <cstring>
using namespace std;
void peek_interfaces(int ......
#ifndef __KERNEL__
#define __KERNEL__
#endif
#ifndef MODULE
#define MODULE
#endif
#include<linux/config.h>
#include<linux/module.h>
#include<linux/version.h>
#include<linux/init.h>
#include<linux/kernel.h>
#include<linux/errno.h>
#include<linux/sche ......
from:http://blog.chinaunix.net/u2/62281/showart_1096746.html
sock_raw原始套接字编程可以接收到本机网卡上的数据帧或者数据包,对与监听网络的流量和分析是很有作用的.一共可以有3种方式创建这种socket
1.socket(AF_INET, SOCK_RAW, IPPROTO_TCP|IPPROTO_UDP|IPPROTO_ICMP)发送接收ip数据包
2.socket(PF_PACK ......
-------------------------------------------------------------------------------------------------------
//By:yuyongbao
//QQ:673360056
//平台powerpc mpc8379e linux 2.6.22
1、先用fdisk 给硬盘分一个区,用作文件系统。参照u-boot-ppc编译说明一文。
2、用mke2fs格式化硬盘的一个分区mke2fs /dev/sd ......
在Solaris上面工作有几个不方便地方:
一个是ls不能按照文件类型显示颜色;
另一个是VI也不能显现语法色彩;
这里就来说明如何解决这两个问题:
其实这两个问题都是Solaris自身所带的ls和vi版本的问题;
所以解决办法就是下载最新的ls和vim源文件包重新编译进行安装,看上去好像挺麻烦,其实就几步,很简单的:
最新的ls是在 ......