linux»ù±¾Çý¶¯ºÍlinux×Ö·ûÉ豸Çý¶¯
ÏÈÕ³ÌùÒ»¸ölinux×î¼òµ¥µÄÇý¶¯£¬Æäʵ¶ÔÓÚÒ»¸ö´Ó2.4ÍæÉÏÀ´µÄÈËÀ´Ëµ£¬Çý¶¯²»¸´ÔÓ£¬±È½Ï²»Ï°¹ßµÄÊÇÄǸömakefile
Çý¶¯±¾Éí£º
hello.c:
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
MODULE_LICENSE("Dual BSD/GPL");
static int hello_init(vodi){
printk(KERN_ALERT "hello world\n");
return 0;
}
static void hello_exit(vodi){
printk(KERN_ALERT"bye bye\n");
}
module_init(hello_init);
module_exit(hello_exit);
Makefile:
obj-m := hello.o
KERNELDIR :=/lib/modules/$(shell uname -r)/build
all:
make -C $(KERNELDIR) M=$(shell pwd) modules
clean:
rm -rf *.o *.ko
È»ºó¸½¹ýÀ´Ò»¸öÇý¶¯£¬ÔÝʱûÓÐÑéÖ¤£¬ÊÇ×Ö·ûÐ͵ģ¬Èç¹ûÑéÖ¤ºÃÓã¬ÎÒÔÙ¸üÐÂÕâƪÈÕÖ¾
±¾ÀýÊÇ·ë¹ú½øµÄ ¡¶Ç¶ÈëʽLinux Çý¶¯³ÌÐòÉè¼Æ´ÓÈëÃŵ½¾«Í¨¡·µÄµÚÒ»¸öÀý×Ó
¸Ð¾õÕæÊǺÃÊé Ç¿ÁÒÍƼö
×¢ÊÍÊÇdeep_pro¼ÓµÄ תÔØÇë×¢Ã÷£¡ÎÒµÄÌصãÊÇÎIJ»¼Óµã£¡
Õâ¸öÇý¶¯ÊÇÔÚÄÚ´æÖзÖÅäÒ»¸ö256×ֽڵĿռ䣬¹©Óû§Ì¬Ó¦ÓóÌÐò¶Áд¡£
ÏÈÊÇÍ·Îļþ demo.h
#ifndef _DEMO_H_
#define _DEMO_H_
#include <linux/ioctl.h> /* needed for the _IOW etc stuff used later */
/********************************************************
* Macros to help debugging
********************************************************/
#undef PDEBUG /* undef it, just in case */
#ifdef DEMO_DEBUG
#ifdef __KERNEL__
# define PDEBUG(fmt, args...) printk( KERN_DEBUG "DEMO: " fmt, ## args)
#else//usr space
# define PDEBUG(fmt, args...) fprintf(stderr, fmt, ## args)
#endif
#else
# define PDEBUG(fmt, args...) /* not debugging: nothing */
#endif
#undef PDEBUGG
#define PDEBUGG(fmt, args...) /* nothing: it's a placeholder */
//É豸ºÅ
#define DEMO_MAJOR 224
#define DEMO_MINOR 0
#define COMMAND1 1
#define COMMAND2 2
//×Ô¼º¶¨ÒåµÄÉ豸½á¹¹
struct DEMO_dev
{
struct cdev cdev; /* Char de
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
1) ÓÀ¾ÃÐÔÉúЧ£¬ÖØÆôºó²»»á¸´Ô
¿ªÆô£º chkconfig iptables on
¹Ø±Õ£º chkconfig iptables off
2) ¼´Ê±ÉúЧ£¬ÖØÆôºó¸´Ô
¿ªÆô£º service iptables start
¹Ø±Õ£º service iptables stop
¿ªÆôºÍ¹Ø±Õ¶Ë¿ÚÏà¹ØÅäÖÃÎļþ
/etc/sysconfig/iptables ......
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <pthread.h>
#include <semaphore.h>
#define M 10 // »º³åÊýÄ¿
int in = 0; // Éú²úÕß·ÅÖòúÆ·µÄλÖÃ
int out = 0; // Ïû·ÑÕßÈ¡²úÆ·µÄλÖÃ
int buff[M] = {0}; // »º³å³õʼ»¯Îª0£¬ ¿ªÊ¼Ê±Ã ......
Ò».Ç°ÑÔ
¡¡LinuxµÄÔ´ÂëÀÍøÂç½Ó¿ÚµÄʵÏÖ²¿·ÝÊǷdz£ÖµµÃÒ»¶ÁµÄ£¬Í¨¹ý¶ÁÔ´Â룬²»½ö¶ÔÍøÂçÐÒé»áÓиüÉîµÄÁ˽⣬ҲÓÐÖúÓÚÔÚÍøÂç±à³ÌµÄʱºò£¬¶ÔÓ¦Óú¯ÊýÓиü¾«È·µÄÁ˽âºÍ°ÑÎÕ¡£
¡¡±¾ÎÄ°ÑÖصã·ÅÔÚÍøÂç½Ó¿Ú³ÌÐòµÄ×ÜÌå½á¹¹ÉÏ£¬Ï£ÍûÄÜ×÷Ϊ¶ÁÔ´ÂëʱһЩָµ¼ÐÔµÄÎÄ×Ö¡£
¡¡±¾ÎÄÒÔLinux2.4.16ÄÚºË×÷Ϊ½²½âµÄ¶ÔÏó£¬ÄÚºËÔ´Âë¿ÉÒÔÔÚh ......