浅析linux键盘设备工作和注册流程
(1)在\drivers\input\Input.c中。
A,subsys_initcall(input_init);
B,static int __init input_init(void)中完成几个重要的操作:
err = class_register(&input_class);以输入类方式注册类
input_proc_init(); //创建proc下的目录和文件
register_chrdev(INPUT_MAJOR, "input", &input_fops); //注册字符设备驱动程序到内核
(2)在drivers\input\keyboard\S3c-keypad.c中,是自己的按键处理文件。
A,定义给android上层的码值
#define KEYCODE_HOME 58
#define KEYCODE_POWER 50
struct s3c_keypad_gpio_key gpio_key_smdk6410[] = {
{IRQ_EINT(6), S3C64XX_GPN(6), 2, KEYCODE_POWER, 1},
{IRQ_EINT(7), S3C64XX_GPN(7), 2, KEYCODE_HOME, 1},
};
分别是外部中断号,GPIO口号,码值。
B,probe过程:
module_init(s3c_keypad_init); //按键init
platform_driver_register(&s3c_keypad_driver); //注册平台驱动
s3c_keypad_driver的probe函数是主要处理过程:
static int __init s3c_keypad_probe(struct platform_device *pdev)
{
struct input_dev *input_dev; //注册一个输入设备
platform_get_resource(pdev, IORESOURCE_MEM, 0);
request_mem_region(res->start, size, pdev->name);
ioremap(res->start, size); //分配资源
keypad_clock = clk_get(&pdev->dev, "keypad");
clk_enable(keypad_clock); //获得keypad的clock
set_bit(EV_KEY, input_dev->evbit); //标志input_dev是KEY设备
s3c_gpio_cfgpin(gpio_key->gpio, S3C_GPIO_SFN(gpio_key->gpio_af));
相关文档:
查看当前配置字符集 locale
查看全部字符集 locale -a
设置字符集 export LANG=zh_CN.gbk
easy
tcpdump 一个linux监听网络访问的工具
监听服务器及端口
tcpdump -nn -i eth0 src host www.codigg.com and src port 80
正在使用的sql
tcpdump -s 0 -l -w - dst port 3306 | strings ......
功能描述:
处理信号。既可用于设定对任意信号的处理方式,也可用于检验该信号的目前预设处置方式。
用法:
#include <signal.h>
int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact);
&n ......
第一次在Linux上安装Oracle的时候碰到这个问题,呵呵。之前在Linux上安装Oracle时,一般都使用RedHat系列的Linux,在安装过程中,需要做大量的安装前置工作,如安装RPM包,创建组和用户,修改内核参数,修改环境变量等。这次使用的是RedFlag的Asianux 3,而且自带Oracle的安装辅助工具Orana ......
本次安装的系统平台为redhat 5
一、使用RPM包进行安装
首先可以从安装光盘中或者到mysql的网站上下载对应版本的rpm包如下:
MySQL-server-community-5.1.38-0.rhel5.i386.rpm
MySQL-client-community-5.1.38-0.rhel5.i386.rpm
接着我们可以使用rpm命令进行安装:
rpm -ivh MySQL ......