如何将linux驱动程序添加到内核中

如何将linux驱动程序添加到内核中,第1张

工具/原料

Ubuntu1204 *** 作系统和测试驱动程序(beep_arvc)

方法/步骤

在介绍2种方法前,必须知道的知识点:

1关联文件Makefile:

Makefile:分布在Linux内核源代码中的Makefile用于定义Linux内核的编译规则;

2管理文件Kconfig:

给用户提供配置选择的功能;

配置工具:

1)包括配置命令解析器;

2)配置用户界面;menuconfig || xconfig;

3)通过脚本语言编写的;

3

---tristate 代表三种状态:1[ ]不选择,2[]选择直接编译进内核,加载驱动到内核里,3[m]动态加载驱动;

---bool 代表两种状态,1[ ]不选择,2[]选择;

---"Mini2440 module sample"这个是在make menuconfig时刷出的提示字符;

---depends on MACH_MINI2440 这个配置选项出现在make menuconfig菜单栏下,在内核配置中必须选中、MACH_MINI2440;

---default m if MACH_MINI2440 这个如果选中了MACH_MINI2440,默认是手

动加载这个驱动;

help:提示帮助信息;

在了解了基本的知识点,便开始进行第一种添加驱动的方法,本次交流是以beep_arvc蜂鸣驱动程序为基础的

方法一:

1)进入内核的驱动目录;

#cp beep_arvc /XXX//linux-XXXl/drivers/char

2)进入Kconfig添加驱动信息;

#cd /XXX/linux-XXX//drivers/char

#vim Kconfig

添加基本信息:

config BEEP_MINI2440

tristate "---HAH--- BEEP"

default

help

this is test makefile!

3)进入Makefile添加驱动编译信息;

#vim Makefile

添加基本信息:

obj-$(CONFIG-BEEP_MINI2440) +=beep_drvo

方法一结果:

在--Character devices下就能看到配置信息了;

方法二:

1)进入驱动目录,创建BEED目录;

#cd /XXX//linux-XXX/drivers/char

#mkdir beep

2)将beep_arvc驱动程序复制到新建目录下;

#cp beep_arvc /XXX//linux-XXXl/drivers/char/beep

3)创建Makefile和Kconfig文件

#cd char/beep

#mkdir Makefile Kconfig

#chmod 755 Makefile

#chmod 755 Kconfig

4)进入Kconfig添加驱动信息;

#vim Kconfig

添加基本信息:

config BEEP_MINI2440

tristate "---HAH--- BEEP"

default

help

this is test makefile!

5)进入Makefile添加驱动编译信息;

#vim Makefile

添加基本信息:

obj-$(CONFIG_BEEP_MINI2440) +=beep_drvo

6)并且要到上一级目录的Makefile和Kconfig添加驱动信息;

#cd /

#vim Makefile

#vim Kconfig

String url="jdbc:mysql://localhost:3306/sample_dbuser=root&password=your_password";

例如:

import javasqlDriverManager;import javasqlResultSet;import javasqlSQLException;import javasqlConnection;import javasqlStatement; public class MysqlDemo { public static void main(String[] args) throws Exception { Connection conn = null; String sql; // MySQL的JDBC URL编写方式:jdbc:mysql://主机名称:连接端口/数据库的名称参数=值 // 避免中文乱码要指定useUnicode和characterEncoding // 执行数据库 *** 作之前要在数据库管理系统上创建一个数据库,名字自己定, // 下面语句之前就要先创建javademo数据库 String url = "jdbc:mysql://localhost:3306/javademo" + "user=root&password=root&useUnicode=true&characterEncoding=UTF8"; try { // 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来, // 可以通过ClassforName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以 ClassforName("commysqljdbcDriver");// 动态加载mysql驱动 // or: // commysqljdbcDriver driver = new commysqljdbcDriver(); // or: // new commysqljdbcDriver(); Systemoutprintln("成功加载MySQL驱动程序"); // 一个Connection代表一个数据库连接 conn = DriverManagergetConnection(url); // Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等 Statement stmt = conncreateStatement(); sql = "create table student(NO char(20),name varchar(20),primary key(NO))"; int result = stmtexecuteUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功 if (result != -1) { Systemoutprintln("创建数据表成功"); sql = "insert into student(NO,name) values('2012001','陶伟基')"; result = stmtexecuteUpdate(sql); sql = "insert into student(NO,name) values('2012002','周小俊')"; result = stmtexecuteUpdate(sql); sql = "select from student"; ResultSet rs = stmtexecuteQuery(sql);// executeQuery会返回结果的集合,否则返回空值 Systemoutprintln("学号\t姓名"); while (rsnext()) { Systemout println(rsgetString(1) + "\t" + rsgetString(2));// 入如果返回的是int类型可以用getInt() } } } catch (SQLException e) { Systemoutprintln("MySQL *** 作错误"); eprintStackTrace(); } catch (Exception e) { eprintStackTrace(); } finally { connclose(); } } }

首先将myodbc3dll文件复制到系统下,然后将以下内容做成xxxreg文件并运行。

Windows Registry Editor Version 500

[HKEY_LOCAL_MACHINE\SOFTWARE\MySQL AB\MySQL Connector/ODBC 351]

"Version"="35124"

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINSTINI\MySQL ODBC 351 Driver]

"UsageCount"=dword:00000001

"Driver"="C:\\WINDOWS\\system32\\myodbc3dll"

"Setup"="C:\\WINDOWS\\system32\\myodbc3Sdll"

[HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINSTINI\ODBC Drivers]

"MySQL ODBC 351 Driver"="Installed"

浅谈Linux网络故障的解决办法

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络 *** 作系统。我告诉大家,Linux网络故障排除应当遵循先硬件后软件的方法。因为硬件如果出现物理损坏那么如何设定网络都不能解决故障。解决问题的方法可以从自身Linux计算机的网卡查起,然后到服务器、集线器、路由器等硬件。如果确定硬件没有问题了,再来考虑软件的设定。

1、检查网卡工作状况

(1)使用cat /proc/modules查看网卡的模块是否已被加载,驱动硬件是 *** 作系统最基本的功能, *** 作系统通过各种驱动程序来驾驭硬件设备,和Windows系统不同Linux内核目前采用可加载的模块化设计(LKMs Loadable Kernel Modules),就是将最基本的核心代码编译在内核中,而我们常见的驱动程序就是作为内核模块动态加载的,比如网卡驱动。Windows系统中我们一般“控制面板”的“设备管理器”查看硬件列表,在Linux中可以在命令行下输入:cat /proc/modules 即可显示Linux系统检测到的所有硬件设备。运行cat /proc/modules需要超级用户的权限,你可以使用su命令实现。

我Linux计算机中两块网卡模块:NE2000和8139已经加载。如果没有检测到硬件,用硬件检测程序Kuduz检测网卡,它和Windows中添加新硬件差不多。kudzu程序是通过查看/usr/share/hwdata/目录下的文件识别各种硬件设备的。如果核心支持该硬件,并且有该驱动程序就可自动装载。首先说明的是Linux下对网卡的支持往往是只对芯片的,所以对某些不是很著名的网卡,往往需要知道它的芯片型号以配置Linux比如我的Top link网卡,就不存在Linux的驱动,但是因为它是NE2000兼容,所以把它当NE2000就可以在Linux下用了所以当你有一块网卡不能用,在找Linux的驱动程序之前一定搞清楚这个网卡用的什么芯片,跟谁兼容,比如3c509,ne2000,etherexpress等等这样的型号一般都在网卡上最大的一快芯片上印着,抄下来就是了。对于ISA接口的NE2000卡,先要作的一件事情,是将网卡设定为Jumpless模式很多现在的网卡缺省都是PnP模式,这在Windows下的确能减少很多麻烦,但是Linux不支持,所以Linux下必须是Jumpless模式一般所有网卡都有带的驱动盘和DOS下可执行的一个设定程序,用该程序将网卡设为 Jumpless。对于PCI网卡,可以使用如下命令来查看:less/proc/pci。在显示的列表中找到“Ethernet Controller”,记下厂商和型号。然后使用modprobe尝试加载正确的模块,比如modprobe 3c509。如果出现错误,说明该模块不存在。这时候你应该找到正确的模块并且重新编译。如果显示说该设备不存在,那也是因为没有正确的模块。找到正确的模块,并且编译,问题一般即可解决。

(2)使用Ifconfig-a命令检查网卡接口

如果已经检测到网卡,网卡硬件就没有问题,接下来检查网卡的软件设定。使用ifconfig -a命令:

第二块网卡没有分配IP地址,我们现在可以添加IP地址。以Redhat Linux 90为例。以root权限运行命令:neat出现图形化配置界面,然后添加IP地址后保存设置,从新启动网络和网络服务或计算机

(4)编译网卡

如果Linux内核没有检测到网卡通常要重新安装网卡的驱动程序,网卡驱动程序安装方法步骤如下:

a、 编译并安装模块;

b、 修改/etc/confmodule 文件;

c、 修改/etc/sysconfig/network文件;

d、 修改/etc/sysconfig/network-scripts/ifcfg-eth0 文件;

e、 给网卡添加IP地址:打开网卡IP地址配置文件/etc/sysconfig/network-script/ifcfg-eh0

e、然后用命令启动网络服务。

说明网卡问题:使用ifconfig来进行配置。如果运行ifconfig,将会给出所有已经安装了的网卡。如果没有显示可用的网卡,那么很有可能是以下原因之一:1 网卡没有被Linux检测到;2 没有与之相应的内核模块;3 该模块没有被加载;4 Linux系统不支持你的网卡。就现在来说,出现问题4的可能性很小,一般来说都是问题2和3,也可能是1。

Linux下无线网卡的安装:

目前经过认证的PCMCIA网卡有两大类。使用基于朗讯(Lucent)芯片组的PCIMCIA无线网卡和使用基于intersil PRISM2-based cards 芯片组的PCMCIA的无线网卡见表-1。不过由于基于intersil PRISM2-based cards 芯片组的PCMCIA的无线网卡价格比较便宜(相当于朗讯(Lucent)芯片组的PCIMCIA无线网卡的三分之一),所以国内的PCMCIA的无线网卡以后者居多。

以上就是关于如何将linux驱动程序添加到内核中全部的内容,包括:如何将linux驱动程序添加到内核中、navicat连接了oracle,项目里怎么改驱动啊,还是这个吗:db.url=jdbc:mysql://localhost:3306/dev、vb6.0动态加载ODBC驱动(MySQL数据源)的完整vb代码等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9339181.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存