在ubuntu12.04下编译linux内核
基于Qt的室内环境监测系统设计与实现

基于Qt的室内环境监测系统设计与实现李超;程小劲【摘要】随着计算机技术的发展,基于计算机技术的嵌入式设备越来越多地应用于生产生活中.而在家庭居住方面,越来越多的智能化,便捷化的产品,为人们提供了一个安全、舒适和便捷的环境,从而也越来越受到市场的青睐.基于计算机和嵌入式技术,运用Qt开发平台,设计了一套室内环境监测系统,实现了一种可以实现较低成本,使用范围广泛,主要应用于家庭环境监测的控制系统.该系统具有实现用户的注册登录,实时查看当前的室内环境参数,查看监控信息,设置各种参数的阈值,超出阈值进行报警等功能.上位机采用CortexA9运行主程序,下位机采用意法半导体生产的STM32.下位机和上位机之间通过RS232串口通信,下位机通过该串口将采集到的数据传给上位机.上位机通过TCP/IP协议传给Qt进行实时显示.【期刊名称】《计算机技术与发展》【年(卷),期】2019(029)004【总页数】4页(P204-207)【关键词】Qt;计算机技术;嵌入式技术;环境监测;TCP/IP;RS232【作者】李超;程小劲【作者单位】上海工程技术大学机械工程学院,上海 201620;上海工程技术大学机械工程学院,上海 201620【正文语种】中文【中图分类】TP230 引言煤气、天然气是现代家庭主要能源之一。
由于煤气、天然气的泄露导致的中毒和火灾是高层住宅的重大隐患,每年因为燃气泄露造成的火灾数不胜数。
随着经济的发展和人民生活水平的不断提高,各式各样的原材料制成的装修材料进入家庭,而随之释放出来的有害气体时刻威胁着大家的安全。
其中甲醛是最为常见的有害气体之一,具有强烈的致癌性[1]。
与此同时,PM2.5也时刻威胁着家庭成员的健康[2]。
目前,室内环境参数监测系统的多数功能较为单一,完成一个完整的监测系统需要使用多个产品。
对此,文中将传统的监控系统和环境监测系统融合在一起,实现环境参数查询、监控查询一体化。
与此同时,还可以对参数进行阈值设置,当环境里的参数值超出阈值后会及时提醒,该系统可以满足大多数室内环境的监测要求。
ubuntu12.04 升级内核实战

ubuntu12.04 升级内核实战ubuntu 12.04内核是linux 3.2.0-24,其实升级到最新版本3.3.4也没什么很大意义,主要是集成了一些新的驱动和一些普通用户用不到的功能,所以基本上本文纯属折腾,但不要随便升级当班设备啊!好了,不废话了,我们开始...........首先是准备条件:①、有一台装有ubuntu 12.04的机器②、先移步到/下载linux稳定版内核③、拥有root权限④、并将下载好的内核解压到/usr/src下,使用命令如下:#tar jxvf linux-3.3.4.tar.bz2这样你就可以得到一个名叫linux-3.3.4好,现在一切都准备好了,接下来就开始配置,编译,安装新内核吧!1,进入刚才的文件夹/usr/src/linux-3.3.4,输入命令:$ make mrproper该命令的功能在于清除当前目录下残留的.config和.o文件,这些文件一般是以前编译时未清理而残留的。
而对于第一次编译的代码来说,不存在这些残留文件,所以可以略过此步,但是如果该源代码以前被编译过,那么强烈建议执行此命令,否则后面可能会出现未知的问题。
2,配置编译选项作为操作系统的内核,其内容和功能必然非常繁杂,包括处理器调度,内存管理,文件系统管理,进程通讯以及设备管理等等,而对于不同的硬件,其配置选项也不相同,所以在编译源代码之前必须设置编译选项。
其实我觉得这一步是升级内核整个过程中最有技术含量的,因为要根据自己的需要正确选择yes or no需要对计算机方方面面的知识都有所了解。
但是这里的选项实在是太多了,大概有几百项之多,我以前曾尝试着一项一项的选,但是最后还是放弃了,因为有很多选项不是很明白。
既然这样,难道没有什么简便的方法么?当然有!那就是make menuconfig 或者make xconfig。
我使用的是make menuconfig,但是前提条件是要装ncurses。
LINUX内核模块编译步骤

LINUX内核模块编译步骤编译Linux内核模块主要包括以下步骤:1.获取源代码2.配置内核进入源代码目录并运行make menuconfig命令来配置内核。
该命令会打开一个文本菜单,其中包含许多内核选项。
在这里,你可以配置内核以适应特定的硬件要求和预期的功能。
你可以选择启用或禁用各种功能、设备驱动程序和文件系统等。
配置完成后,保存并退出。
3. 编译内核(make)运行make命令开始编译内核。
这将根据你在上一步中进行的配置生成相应的Makefile,然后开始编译内核。
编译的过程可能需要一些时间,请耐心等待。
4.安装模块编译完成后,运行make modules_install命令将编译好的模块安装到系统中。
这些模块被安装在/lib/modules/<kernel-version>/目录下。
5.安装内核运行make install命令来安装编译好的内核。
该命令会将内核映像文件(通常位于/arch/<architecture>/boot/目录下)复制到/boot目录,并更新系统引导加载程序(如GRUB)的配置文件。
6.更新GRUB配置文件运行update-grub命令来更新GRUB引导加载程序的配置文件。
这将确保新安装的内核在下次启动时可用。
7.重启系统安装完成后,通过重启系统来加载新的内核和模块。
在系统启动时,GRUB将显示一个菜单,你可以选择要启动的内核版本。
8.加载和卸载内核模块现在,你可以使用insmod命令来加载内核模块。
例如,运行insmod hello.ko命令来加载名为hello.ko的模块。
加载的模块位于/lib/modules/<kernel-version>/目录下。
如果你想卸载一个已加载的内核模块,可以使用rmmod命令。
例如,运行rmmod hello命令来卸载已加载的hello模块。
9.编写和编译模块代码要编写一个内核模块,你需要创建一个C文件,包含必要的模块代码。
内核编译的步骤

内核编译的步骤以内核编译的步骤为标题,写一篇文章。
一、概述内核编译是将操作系统内核的源代码转换为可以在特定硬件平台上运行的机器代码的过程。
通过编译内核,可以定制操作系统,优化性能,添加新的功能等。
二、准备工作1. 获取内核源代码:可以从官方网站或版本控制系统中获取内核源代码。
2. 安装编译工具链:需要安装交叉编译工具链,以便在主机上编译生成目标平台上的可执行文件。
3. 配置编译环境:设置编译选项,选择适合的配置文件,配置内核参数。
三、配置内核1. 进入内核源代码目录:在命令行中切换到内核源代码目录。
2. 启动配置界面:运行命令“make menuconfig”或“make config”启动配置界面。
3. 配置选项:在配置界面中,可以选择内核所支持的功能和驱动程序,根据需求进行配置。
例如,选择硬件平台、文件系统、网络协议等。
4. 保存配置:保存配置并退出配置界面。
四、编译内核1. 清理编译环境:运行命令“make clean”清理编译环境,删除之前的编译结果。
2. 开始编译:运行命令“make”开始编译内核。
编译过程可能需要一段时间,取决于硬件性能和代码规模。
3. 生成内核镜像:编译完成后,将生成内核镜像文件,通常为“vmlinuz”或“bzImage”。
4. 安装内核模块:运行命令“make modules_install”安装内核模块到指定目录。
五、安装内核1. 备份原始内核:在安装新内核之前,建议备份原始内核以防止意外情况发生。
2. 安装内核镜像:将生成的内核镜像文件复制到引导目录,通常为“/boot”。
3. 配置引导程序:根据使用的引导程序(如GRUB或LILO),更新引导配置文件,添加新内核的启动项。
4. 重启系统:重启计算机,并选择新内核启动。
六、验证内核1. 登录系统:使用新内核启动系统后,使用合法的用户凭证登录系统。
2. 检查内核版本:运行命令“uname -r”可查看当前正在运行的内核版本。
Ubuntu12.04下在Android4.0.4源码下载及其编译过程

Ubuntu12.04下在Android4.0.4源码下载及其编译过程一、下载源码1、下载工具repo:https:///tools/repo/在本地目录建个bin的文件夹,进入bin文件夹;通过git下载:1.git clone https:///tools/repo下载完成后,进入repo文件夹,切换到稳定分支:1.git checkout -b stable origin/stable将repo命令所在的目录,即/home/yourname/bin/repo添加到环境变量中:1.export PATH=$PATH:~/bin/repo在本地目录下新建目录:android4.0.4,并进入该文件夹:[html]view plaincopy1.cd ~;mkdir android4.0.4;cd android4.0.4;在文件夹下执行下面命令来下载Android源码:1.repo init -u https:///platform/manifest你也可以直接切换到你想要下的版本的分支,而不是“master”分支:1.repo init -u https:///platform/manifest -b android-4.0.4_r2关于到底是哪个分支,根据自己的情况而定,详情可参照:https:///platform/manifest/如你想下载最新的Android4.1代码,即可将分支名称更换成:android-4.1.1_r4你也可以参照官网的下载方式来下载:/source/downloading.html实验证明,我总是在下载那个repo工具的时候,无法连接到相应的地址。
下载是个漫长的过程,下载完成后的大小大概有14G,所以要提前准备好这么大的空间。
下载完成后的目录大概有这些:如图二、编译源码如果你的电脑的环境经常做开发,那么很多环境应该已经搭建好了,如果没有,可以参照官网:/source/initializing.html这里要提醒的是:用apt-get或者ubuntu软件中直接安装的jdk,jre的时候,编译Android是总是编译不过,出现JDK版本不一致的情况;解决办法如下:到oracle官网中下载jdk:/technetwork/java/javase/downloads/index-jsp-138363.html建议下载这个:jdk-6u35-linux-i586.bin下载完成后,运行得到一个jdk1.6.0_35文件夹,然后,将相应的JAVA环境加到系统环境中,简单的可以这样:1.vi ~/.bashrc在.bashrc文件最后添加:1.JAVA_HOME=/home/clw712/tools/jdk1.6.0_352.CLASSPATH=$JAVA_HOME/lib/3.ANDROID_PRODUCT_OUT=/home/clw712/bin/android/out/target/product/generic4.ANDROID=/home/clw712/bin/android5.ANDROID_SWT=/home/clw712/bin/android/out/host/linux-x86/framework6.PATH=$ANDROID/out/host/linux-x86/bin:$ANDROID/prebuilt/android-arm/kernel/:$JAVA_HOME/bin:$ANDROID_PRODUCT_OUT:$PATH7.8.export PATH JAVA_HOME CLASSPATH ANDROID_PRODUCT_OUT ANDROID_SWT当然上述路径还有后面编译好了,用到的路径,是用来运行emulator的。
虚拟机安装与Ubuntu12.04系统安装详细教程

虚拟机安装与Ubuntu系统安装详细教程2017-3-7 一、双击打开“家庭仿真所有文件”文件夹。
二、安装虚拟机(vmware-workstation)。
1.解压缩“vmware-workstation-9.0.0-官方原版-带注册机-汉化包”文件。
2.单机左上角“解压到”。
3.点击确定,完成解压。
4.生成文件夹“vmware-workstation-9.0.0-官方原版-带注册机-汉化包”。
5.双击打开“vmware-workstation-9.0.0-官方原版-带注册机-汉化包”文件夹。
6.双击打开“VMware-workstation-9.0.0-812388.exe”。
7.点击“next”。
8.单击“typical”。
9.单击“next”。
10.把上面钩钩去掉,然后点击“next”。
11. 把上面钩钩去掉,然后点击“next”。
12. 把上面钩钩去掉,然后点击“next”。
13.点击“continue”。
14.开始安装。
15.提示输入序列号。
16 . 双击打开“注册机@VM9 Keygen_zh-hans.exe”。
17 . 复制上述序列号,然后输入到安装文件中。
18 . 单击“Enter ”。
19.单击“Finish”完成安装。
20.汉化(即把英文变成中文,英语好的同学可以跳过)。
双击“汉化补丁包@VMware Workstation 9.0.0.812388(9.0.0.31680)精致汉化中英双语.exe”文件。
21 . 单击“下一步”。
22.继续单击“下一步”。
23 . 继续单击“下一步”。
24.单击“安装”。
25 . 把上面钩钩去掉,然后点击“完成”,完成汉化工作。
26 . 虚拟机安装完成。
三、安装Ubuntu 系统。
1 . 双击桌面的“VMware Workstation”图标,开启虚拟机。
2.单击左上角“新建虚拟机”。
3.选中“自定义(高级)”,然后点击“下一步”。
4 . 再点击“下一步”,出现如下界面。
编译Linux内核

编译Linux内核实验目的学习重新编译Linux内核,理解、掌握Linux内核和发行版本的区别。
实验内容重新编译内核是一件比你想像的还要简单的事情,它甚至不需要你对内核有任何的了解,只要你具备一些基本的Linux操作系统的知识就可以进行。
本次实验,要求你在RedHat Fedora Core 5的Linux系统里,下载并重新编译其内核源代码(版本号KERNEL-2.6.15-1.2054);然后,配置GNU的启动引导工具grub,成功运行你刚刚编译成功的Linux内核。
实验提示Linux是当今流行的操作系统之一。
由于其源码的开放性,现代操作系统设计的思想和技术能够不断运用于它的新版本中。
因此,读懂并修改Linux内核源代码无疑是学习操作系统设计技术的有效方法。
本实验首先介绍Linux内核的特点、源码结构和重新编译内核的方法,讲述如何通过Linux系统所提供的/proc虚拟文件系统了解操作系统运行状况的方法。
最后,对Linux编程环境中的常用工具也有简单介绍。
1.1查找并且下载一份内核源代码我们知道,Linux受GNU通用公共许可证(GPL)保护,其内核源代码是完全开放的。
现在很多Linux的网站都提供内核代码的下载。
推荐你使用Linux的官方网站: ,如图1-1。
在这里你可以找到所有的内核版本。
图1-1 Linux的官方网站由于作者安装的Fedora Core 5并不附带内核源代码,第一步首先想办法获取合适版本的Linux内核代码。
通过命令# uname –r2.6.15-1.2054_FC5这就是说,RedHat Fedora Core 5采用的内核版本是2.6.15-1.2054_FC5。
但是,官方网站/pub/linux/kernel/找不到对应版本。
请别着急,既然它是RedHat发布的,RedHat的官方网站总有吧。
浏览/pub/fedora/linux/core/5/source/SRPMS,我们发现果然有文件kernel-2.6.15-1.2054_FC5.src.rpm,这个rpm文件就是2.6.15-1.2054_FC5版的内核源代码了。
ubuntu12.04 64bit 常见问题

ubuntu12.04 64bit 常见问题2013-01-30 14:14 93人阅读评论(0) 收藏举报////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////访问其他samba服务器////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////首先需要安装samba# apt-get install samba1. 一种直接使用smbclient命令# smbclient //服务器地址/目录-U 用户名%密码如# smbclient //192.168.0.133/liyong -U liyong%liyong2. 使用mount#apt-get install smbfs#smbmount //192.168.0.133liyong /mnt/133 -o user=liyong,pass=liyong,iocharset=utf8////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////安装飞信////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////sudo apt-get install openfetionsudo apt-get install pidgin-openfetion////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////android编译环境搭建////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////l 依赖环境:$ sudo apt-get install git-core gnupg flex bison gperf build-essential \zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \libgl1-mesa-dev g++-multilib mingw32 openjdk-6-jdk tofrodos \python-markdown libxml2-utils xsltproc zlib1g-dev:i386安装过程中,我出现了错误1。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在ubuntu12.04下编译linux内核写这个东西的时候,想起07年第一次编译内核,想起06年开始看内核代码,想起那段,生命中最灰暗的日子。
那时,经常在校内写读内核的心得,只因发现,你目录前言 (2)一、编译前的准备工作 (2)二、内核的配置 (2)三、内核的生成和安装 (3)四、启动新内核 (4)五、修改默认的配置文件 (4)5.1修改默认配置添加软件功能 (4)5.2修改默认配置添加pci和usb设备驱动 (5)5.3修改默认配置添加杂类设备驱动 (7)前言编译内核和编译其它软件相比,除了配置之外,没有什么特别的地方。
既然编译内核这么简单,网上也能找到很多介绍的文章,我为什么还要写呢?因为看到有些文章源自不断抄袭旧东西,导致抄了些没用的东西,而且基本都对内核配置避而不谈,这样实际上一定会有人遇到问题。
所以,写点吧,给初学者。
一、编译前的准备工作编译软件需要先安装编译环境,主要的就是工具链(toolchain)。
由于安装包需要下载的数据量较大,所以如果软件源建议还是换成国内的吧。
我用163的源,source.list文件在这里,覆盖/etc/apt/source.list就行了。
替换源后,执行如下命令:apt-get updateapt-get install build-essential p7zip-full后面的7z工具供下载了xz后缀文件的同学使用。
下载内核源码的网站是,版本随意,源码包名字是linux-3.x.x.tar.gz,有很多版本提供.xz结尾的压缩版本,压缩比较高,看自己网络情况定吧。
我这里下载的版本是3.6.6,名为linux-3.6.6.tar.gz。
接着解压源码,假设我们的编译目录为/home/sb/,解压命令为:tar xf linux-3.6.6.tar.gz-C/home/sb这样/home/sb/下出现一个linux-3.6.6的目录。
二、内核的配置内核支持很多的设备和功能,这些设备驱动和功能的开关主要通过内核的配置文件确定。
编译时,内核使用的配置文件是内核源码树根目录下一个名为.config的隐藏文件。
x86电脑默认内核配置文件可直接使用arch/x86/config/i386_defconfig,如下命令:cp arch/x86/config/i386_defconfig.configmake menuconfig默认的配置文件对于启动系统足够了,但是不同的机器硬件配置不同,默认的配置可能不支持你机器的部分硬件,火鹤缺少一些你需要的功能。
所以实际上,你会需要修改默认配置文件,重新编译来达到你的需求,关于配置文件修改见后续“修改默认的配置文件”一章。
make menuconfig后有个蓝白界面弹出来,就是内核的配置界面,如下:三、内核的生成和安装配置完成之后,用左右键和回车退出配置界,按照提示保存操作即可。
编译之前,说下编译的时间长度。
现在默认内核配置文件的模块非常少,少到几乎没有,所以编译时间较短。
如果用ubuntu的配置文件(/boot/下config开头的就是),由于需要支持的模块非常多,编译时间的确很长,这时建议减少模块的编译数量。
由于自己编译的内核一般使用场景确定,可以减少文件系统的支持数量和设备驱动中明显不需要的。
比如你电脑就一个以太网卡,其余的网卡的驱动都不要选。
类似的方式去掉你认为不用的文件系统。
当然,减少模块的编译需要修改内核配置文件。
编译就一条命令:make-j nn是个数字,默认是1。
编译的机子如果是双核建议make-j3,4核make-j7。
如果是8和以上,make-j10吧,据说比较合适的数值是cpu的核数乘以2加1,这个我自己实验过,发现没有那么玄乎,基本8核用10个进程就行了。
编译一般20分钟内能完成。
于是,内核有了,模块也有了(如果有的话)。
内核源码树根目录下生成vmlinux文件,这个是未压缩的内核,压缩的内核是arch/x86/boot/bzImage,一般启动都用压缩的内核,因为加载时间少。
接着安装编译的内核,命令如下:make modules_install这个命令安装所有模块(*.ko)到/lib/modules/的对应内核版本下。
然后,启用新内核,命令为:make install这个命令拷贝(压缩的)内核到/boot目录,并改名为vmlinuz-版本号。
然后生成initrd.img-版本号。
最后在grub.cfg中添加使用新内核grub项(实际是两项)。
对grub有了解的,可以手动修改grub.cfg,其实不麻烦,也是必须掌握的。
四、启动新内核一切就绪,重启后在grub选择界面的时候选择新条目启动,启动后新内核在我的电脑上出现了几个问题;一、启动的时候报了一个devtmpfs的错误,导致/dev下的设备节点无法创建解决方法:重新编译把CONFIG_DEVTMPFS和CONFIG_DEVTMPFS_MOUNT选上二、NTFS文件系统不识别解决方法:重新编译把NTFS的支持选上三、无线网卡不可用解决方法:重新编译,把我机子对应的无线网卡驱动选上。
可见,默认配置还是或多或少会遇到些问题的,但除非文件系统不识别,否则启动应该没有问题。
下面介绍配置文件的修改。
五、修改默认的配置文件从上面我遇到的三个问题看,默认配置文件是不能满足所有需求,需要手动修改。
由于默认的配置文件的模块非常非常少,这里只需要关心添加什么就够了。
常见情况下,修改配置主要是增加设备的支持和某些软件功能得支持,下面都做介绍。
顺便提一下,内核中的配置选项都是大写的。
5.1修改默认配置添加软件功能软件功能的支持添加相对比较简单,只要知道那个功能,比如上面说的NTFS文件系统的支持对应的配置选项名,选上即可。
一般初学者按照最常规的步骤来,先make menuconfig,然后搜索配置选项的关键字。
make menuconfig的界面出来后,打’/’(斜杠)后出现一个输入框。
输入NTFS,出现如下对话框:有时匹配的项超过一页,就需要上下翻,看哪个名字比较像,这里明显是NTFS_FS这个选项,现在默认是n,表示没有编译。
这时按空格选择编译进内核或者编译成模块,为'*'表示编入内核,'M'表示模块,建议变成*吧,反正也不大。
选上后一步步退出保存,然后编译即可。
5.2修改默认配置添加pci和usb设备驱动本来,pci和usb的设备驱动分开描述,因为很不一样。
但是考虑到大部分人(包括我)都无法准确区分一个设备到底是pci设备还是usb设备,所以就放在一起。
下面就假设用默认配置启动后,有设备不工作,因为驱动没有编译。
两种情况,一种是ubuntu内核可以工作,一种是本来就不能工作。
用ubuntu的内核都不工作的,因为设备驱动没有编译的概率不大,因为ubuntu的驱动支持还是比较全面的。
万一遇到了,要么搜索,要么用设备id号去源码查找,或者上厂家的网站下载linux驱动。
如果ubuntu的内核支持,而用默认配置文件编出的内核不支持,就基本是驱动没有编译的问题了。
要添加设备驱动,首先得知道你的硬件设备的基本信息。
用lspci和lsusb这两条命令就够了。
比如现在我的有线网卡不工作,ubuntu行的(有线网卡一般是pcie设备,3G、无线网卡一般是usb设备。
如果lspci没看到网卡,那么就lsusb去找。
这个多少需要懂点英文单词。
),那么就到ubuntu下输入:lspci-k-k表示显示出内核使用的驱动名。
lspci-k后找Eehernet这个单词,看到如下:04:00.0Ethernet controller:Marvell Technology Group Ltd.88E8039PCI-E Fast Ethernet Controller(rev14)Subsystem:QUANTA Computer Inc Device0761Kernel driver in use:sky2最后一行是kernel driver in use:sky2,说明内核中这个网卡驱动的名字叫做sky2。
那默认内核配置文件是否包含了这个sky2的驱动呢?cat.config|grep SKY输出为:CONFIG_SKY2=y#CONFIG_SKY2_DEBUG is not set可见,默认内核中有这个驱动,而且是编译进内核。
假如没有,会显示:#CONFIG_SKY2is not set我们假设默认没有编译,那么在make menuconfig后打一个’/’,然后输入SKY,回车,出现如下对话框:看到第6行有个Location,提示了如何找到CONFIG_SKY2选项。
先进入Device Drivers,然后Network device support,如此一层层下去。
最后找到对应的名称是Prompt:Marvell Yukon2support的那项,选择编译到内核,保存并编译即可。
无线网卡的驱动不支持概率挺大,而且无线驱动的名字找起来麻烦一些,我认为标准做法是先执行lsusb命令:看到如下一行:Bus001Device002:ID148f:2573Ralink Technology,Corp.RT2501/RT2573 Wireless Adapter是的,我的网卡是Ralink牌子的。
中间有个148f:2573是设备的厂商号和设备号,可作为设备的类别标志。
查找内核中ubuntu内核中这款无线网卡的支持驱动名:cat/lib/modules/3.2.0-23-generic-pae/bmap|grep2573|grep148f输出为:rt73usb0x00030x148f0x25730x0000(后面省略)输出说明支持这个无线网卡的驱动叫做rt73usb,有时会出现一个设备有多个驱动支持的情况,此时可以搜索下或随便选一个。
这个驱动默认配置没有支持,按照上面说的make menuconfig找配置的方法找到位置,编入内核。
5.3修改默认配置添加杂类设备驱动除了pci和usb设备之外,一定会有人遇到其它小设备不能用的情况,或者有些usb 接口的设备但是不在lsusb中出现的。
比如鼠标,usb转串口线等。
这里以鼠标为例介绍找杂七杂八设备驱动的方法,实际就是看ubuntu下的内核打印,猜测驱动的名字。
要是3年前,如果鼠标如果不支持,说起来还挺复杂的,但现在的默认配置比较好,USB控制器的驱动都编译到内核了,所以就容易处理了。
还是那句话,ubuntu下应该支持吧,不支持就悬了。
ubuntu下如果行,但是你自己编译的内核不行,看下ubuntu调用了哪个内核驱动。
为了使信息更清晰,先清空dmesg的内容,命令为:dmesg-c然后插入鼠标,查看打印:dmesg看后面的打印是什么,现在手头只有无线的鼠标,看到的打印如下:[4081.871505]usbhid6-1:1.0:looking for a minor,starting at96[4081.871635]hid-generic0003:09DA:054F.0007:input,hiddev0,hidraw0:USB HID v1.11Keyboard[A4TECH USB Device]on usb-0000:00:1d.1-1/input0 [4081.871997]usb6-1:adding6-1:1.1(config#1,interface1)[4081.872731]usbhid6-1:1.1:usb_probe_interface[4081.872739]usbhid6-1:1.1:usb_probe_interface-got id[4081.875412]input:A4TECH USB Device as/devices/pci0000:00/0000:00:1d.1/usb6/6-1/6-1:1.1/input/input14[4081.875610]hid-generic0003:09DA:054F.0008:input,hidraw1:USB HID v1.11 Mouse[A4TECH USB Device]on usb-0000:00:1d.1-1/input1[4081.875691]hub6-0:1.0:state7ports2chg0000evt0002看到有A4TECH吧,这个的就是鼠标的牌子,双飞燕。