在Ubuntu10.04下驱动开发环境搭建

合集下载

ubuntu 10.04安装及配置

ubuntu 10.04安装及配置

希望对大家有帮助。

作者:ninehills<cab402@>版本:V0.2 @ 2010-4-30发布地址:/View?docID=dc9g8287_379fz3spkdg里面有图的部分,点击Google Docs链接去看。

我就不贴了一、硬盘安装Ubuntu 10.04 Alternate i386环境:Windows XP(安装在C盘) + 20G空余硬盘空间1. 下载ubuntu-10.04-alternate-i386.iso注意:Desktop版和 Alternate安装方法有些许不同,请注意版本差异1.两者用的引导文件,一个在 ISO的casper中,一个在“源”(也就是网上下载的)中。

2.两者用的引导文件,一个是 initrd.lz ( casper文件夹),一个是 initrd.gz。

3.Desktop版进入LiveCD安装前比如执行 sudo umount -l /isodevice2. 安装Grub4Dos,具体不细表,网上内容很多3. 修改menu.lst文件,添加代码:title Install Ubuntu 10.04root (hd0,0)kernel /vmlinuz boot=casper iso-scan/filename=/ubuntu-10.04-alternate-i386.iso ro quiet splash locale=zh_CN.UTF-8initrd /initrd.gzboot4. 将ubuntu-10.04-alternate-i386.iso复制到C盘根目录5. 将网上下载的vmlinuz(这个貌似网上的和ISO中的一样)和initrd.gz(主要是这个不同)文件复制到C盘根目录下载地址:/ubuntu/dists/lucid/main/installer-i386/current/images/hd-media/6. 重启进入Grub选择菜单,选择Install Ubuntu 10.047. 安装过程不细表,建议新手不要安装Alternate版,一来是文字界面,二来速度也慢在alternate版安装过程中要分区,选择软件包,我选了 Samba, OpenSSH, Ubuntu Desktop (注意不要选最后一个,貌似会出错)安装过程中还会问你要不要安装语言支持,可以当时装,也可以安装完成后,进“系统-系统管理-语言支持” 里面,会提示你安装的二、系统通用配置1. 软件源ubuntu安装好之后默认是中国的官方源,速度还是不错的。

在Ubuntu下开发驱动程序

在Ubuntu下开发驱动程序

在Ubuntu下开发驱动程序⾸先,建⽴⼀个⽬录作为⾃⼰的⼯作⽬录,⽐如我的是~/kernel/mymodule。

然后,新建⼀个hello.c⽂件,代码如下:#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("Dual BSP/GPL");static int hello_init(void){ printk(KERN_ALERT "Hello,world.\n"); return 0;}static int hello_exit(void){ printk(KERN_ALERT "Goodbye, cruel world.\n"); return 0;}module_init(hello_init);module_exit(hello_exit);再建⽴⼀个Makefile⽂件,注意⽂件名字是“Makefile”,不能是“makefile”或其它名字。

⽂件内容如下:# If KERNELREALEASE is defined, we've been invoked from the# kernel build system and can use its languageifneq ($(KERNELRELEASE),) obj-m := hello.o# Otherwise we were called directly from the command# line; invoke the kernel build systemelse KERNELDIR ?= /usr/src/linux-headers-3.2.0-23-generic-pae/ PWD := $(shell pwd)default: $(MAKE) -C $(KERNELDIR) M=$(PWD) modulesendif其中,“linux-headers-3.2.0-23-generic-pae”是我机器上使⽤的内核版本。

嵌入式驱动开发环境初级

嵌入式驱动开发环境初级

嵌入式驱动开发环境初级一、vmware workstation 10下ubuntu 10.04 LTS及vmtools安装1、安装vmware workstation 10;2、安装并配置虚拟机1)在桌面上单击vmware快捷键图标打开vmware,“文件—>新建虚拟机”选择“典型“,单击”下一步”选择“稍后安装操作系统”,单击“下一步”“客户及操作系统”选择“Linux(L)下的Ubuntu”单击“下一步”“虚拟机名称(V)”为“Ubuntu”,“位置”选择“E:\virtua l machines”,单击“下一步”虚拟磁盘大小默认20G,“将虚拟磁盘拆分成多个文件,”单击“下一步”单击“完成”双击“CD/DVD”,选取镜像文件“D:\ISO\Ubuntu 10.04 LTS.iso”,单击“开启此虚拟机”2)安装Ubuntu 10.04 LTS选择“中文(简体)”时区选择“中国(上海)”,单击“前进”“键盘布局”默认为美式键盘,单击“前进”选择“清空并使用整个硬盘”,单击“前进”设置“用户名”、“密码”,单击“前进”单击“安装”,开启系统自动安装单击“现在重启”完成系统安装3)安装vmtools单击“虚拟机—>安装vmtools”使用普通用户登录虚拟机;进入虚拟机桌面,鼠标右击,选择“打开终端”,输入如下命令,重启完成安装;cp media/VMware\Tools/VMwareTools-9.6.0-1294478.tar.gz /home/andytar -zxvf VMwareTools-9.6.0-1294478.tar.gz -C /tmp/cd /tmp/vmware-tools-distribsudo ./vmware-install.pl(单击“虚拟机—>设置—>网络适配器—>NA T模式”,完成虚拟机联网)二、各操作系统下文件共享机制1、Windows如局域网内PC机均安装使用Windows操作系统,且确保彼此间能ping通,直接单击“开始—>运行”,输入“\\sharedirserverip”,回车后出现登录弹窗,输入“用户名”、“密码”,验证正确即可访问共享目录。

虚拟机搭建ubuntu驱动编程环境

虚拟机搭建ubuntu驱动编程环境

这几天学习用虚拟机搭建了ubuntu的驱动编程环境,大部分资料都是在网上找的,但是没有找到从虚拟机搭建一直到第一个helloworld程序调通的文章,所以自己总结一下。

菜鸟水平,大家不要扔砖。

虚拟机的安装虚拟机:VMware-workstation-full-v7.1.4,Linux系统:ubuntu-11.04-desktop-i386.iso这两个网上都能下到,很容易找到。

虚拟机的安装就直接按照默认安装就可以了,没有什么特别。

之后是在虚拟机上安装ubuntu系统。

(1)首先进入file,选择new VirtualMachine(2)弹出对话框后选择typical下一步(3)在弹出的对话框中选择安装硬盘镜像文件(本人没有刻碟,直接安装镜像),点击下一步(4)在弹出的对话框中输入用户名和密码(要记住,后面进系统的时候需要),点击下一步(5)之后弹出对话框,输入虚拟机名称和文件的位置,点击下一步,弹出对话框中设置最大硬盘大小,用默认的20G就可以了(6)点击next会出现虚拟机的配置,以及给虚拟机加电的选项,之后就会进入系统安装(7)系统的安装很简单,几乎不需要设置什么东西,这里就不再啰嗦了,如果想要找系统安装的方法的话,可以参考一下网上的一篇文章,百度上搜:详解:Vmware虚拟机下Ubuntu 8.04安装,和这个差不多。

(8)系统装好之后就可以进入页面了,用之前设置的用户名和密码登陆,系统安装完成。

虚拟机以及系统的设置(1)设置root用户。

首先用之前设置的用户名和密码进入系统(直接点击power on virtual machine)之后进入终端。

进入终端后执行sudo passwd root,回车Password:后输入刚建立的用户密码回车Enter new UNIX password:这时输入要设置的root密码两次就会看到password updated successfully了。

Ubuntu 10 04下搭建php网站运行环境linux服务器应用 电脑资料

Ubuntu 10 04下搭建php网站运行环境linux服务器应用 电脑资料

Ubuntu 10 04下搭建php网站运行环境linux效劳器应用电脑资料Ubuntu 10.04下搭建php网站运行环境前提:要翻开root权限sudo password [这里填写root密码]1、第一步安装Ubuntu 10.042、更新源sudo apt-get update3、安装ligdsudo apt-get install ligd安装好之后检查ligd是否成功启动,在浏览器里翻开URL: localhost/如果显示为 it's works 外表已经成功了如果不行的话,结束掉ligd程序的进程然后再输入sudo ligd -f /etc/ligd/ligd.conf4、安装PHPsudo apt-get install php5完成后继续sudo apt-get install php5-cli完成后继续sudo apt-get install php5-cgi完成后继续sudo apt-get install php5-mysql让ligd 支持cgi模式# ligd-enable-mod fastcgi重起Ligd# /etc/init.d/ligd restart5、将/var/文件夹的owner改变成当前用户(有的可能不需要这步)sodu chown -R xuxx:xuxx /var/这样文件夹的拥有者即为xuxx,这样就可以写入文件了6、翻开文件夹(var/)右键--Create Document ---empty file文件名为:test.php在里面写入下面内容并保存< ?php// this file will test to see if php// is enabled and functiona;phpinfo();>然后翻开 localhost/test.php你会看到网页中的PHP信息7、安装mysqlsudo apt-get install mysql-server-5.1 mysql-client-5.1 在这个安装过程中会提示你输入密码8、安装phpmyadmin 用来管理mysqlsudo apt-get install phpmyadmin当它提示你选择那种web server时,什么都不要选,然后OK安装就行把phpmyadmin移动到/var/我们就能用phpmyadmin管理mysql了# sudo mv /usr/share/phpadmin /var/翻开localhost/phpmyadmin 看看是不是能管理mysql了到此,php网站运行环境就搭载好了!你现在就可以下载一些php 类型的网站程序安装测试看看,检验一下自己的劳动成果php程序有:discuz wordpress 等等,根本文件夹权限sudo chmod -R 0777 /home/1.txtsudo chmod -R 【权限】【目录或文件】sudo chwon -R root:root /var/sudo chown -R [用户名:用户组] 【目录或文件】。

ubuntu 10.04 配置java

ubuntu 10.04 配置java

ubuntu 10.04 配置java方法一打开终端,执行以下命令sudo add-apt-repository ppa:ferramroberto/javasudo apt-get updatesudo apt-get install sun-java6-jdk提示:安装过程中需要你回答是否同意使用协议(终端中红蓝色的提示界面),此时按tab键至OK,再按回车即可正常安装方法二首先,从中下载jdk,我的版本是jdk1.6.0_38.bin,我将下载的jdk1.6.0_38.bin文件置于/usr/local中然后,在shell中执行(注意要用系统管理员帐号,或者在普通用户命令前面加sudo):(1)代码:(current folder:/usr/local/)chmod u+x jdk1.6.0_38.bin上面修改bin文件权限,使其可执行。

(2)代码(current folder:/usr/local)./jdk1.6.0_38.bin执行,并会出现字幕,持续按回车键,直至屏幕显示要求输入yes/no,此时输入y回车(有时没有),将会把jdk解压到文件夹,得到jdk1.6.0_38目录。

此时,jdk已安装完毕,接下来进行配置。

(3)代码(当前目录同上,其实为何不重要)gedit /etc/environment在environment中修改,出现如下部分PATH="......:/usr/local/jdk1.6.0_38/bin"CLASSPATH=”.:/usr/local/jdk1.6.0_38/lib”JAVA_HOME=/usr/local/jdk1.6.0_38此时,环境变量设置成功(设置环境变量的方法很多,不一一列举)(4)由于ubuntu中可能会有默认的jdk,如openjdk,所以,为了使默认使用的是我们安装的jdk,还要进行如下工作。

代码:update-alternatives --install /usr/bin/java java /usr/local/jdk1.6.0_38/bin/java 300 update-alternatives --install /usr/bin/javac javac /usr/local/jdk1.6.0_38/bin/javac 300 通过这一步将我们安装的jdk加入java选单。

UBUNTU OPENCV 环境搭建

UBUNTU  OPENCV  环境搭建

Opencv交叉编译到ARM(基于Qt)一、开发环境:环境:ubuntu10.04交叉编译工具:gcc version4.5.1(ctng-1.8.1-FA)友善的东西opencv版本:OpenCV-2.3.1a.tar.bz2(这里可以下载:/projects/opencvlibrary/files/)cmake:cmake version2.8.0()*:前提是Qt交叉编译已经完成,并能正常使用。

一些依赖:在终端运行:sudo apt-get install build-essential libgtk2.0-dev libavcodec-dev libavformat-dev libjpeg62-dev libtiff4-dev cmake libswscale-dev libjasper-dev安装:cmakeapt-get install cmake-guiapt-get install cmake解压:tar xvf OpenCV-2.3.1.tar.bz2我使用的是天嵌提供的交叉编译工具EABI_4.3.3。

安装在/opt/EmbedSky/4.3.3/bin/目录下,解压后,进入目录cd OpenCV-2.3.1运行:cmake-gui如果没有安装,系统会提示你安装选择source file 选择build目录点configure然后选择:next填路径:Operating System:arm-none-linuxCompilers:是交叉编译工具GCC与G++的目录,图中是我的目录Target Root:****点Finish然后再回到Cmake目录下:在这里选择该先与不先的东西,同时因为我之前在x86上编译过所以我把CMAKE_INSTALL_PREFIX改成:/usr/local/arm同时添加了WITH_QT因为添加WITH_QT_OPENGL时编译出错,所以后来去掉了。

自我总结Ubuntu10.04搭建Android环境全过程

自我总结Ubuntu10.04搭建Android环境全过程

宿主PCCPU:Dual-Core 2.00GHz内存:2GBOS:Win 7 Ultimate, 32-bit虚拟机VMware Workstation 7.1.1 build-282343虚拟机OSubuntu-10.04.3-server-i386安装过程:问题:打开虚拟机电源时弹出提示"serial0: Unable to launch virtual printer proxy: 系统找不到指定的文件. 设备将要被断开连接。

"解决:百度资源得知,这个是虚拟机里面的报错。

只要在设置里面关闭掉虚拟打印机连接时启动就可以解决参照/Forum/651151.试图运行"sudo apt-get install sun-java6-sdk",提示无法找到软件包sun-java6-sdk参照/ubuntu-10-04-android-dev-environment/comment-page-1/#comment-25302.下载、安装jdk1.6、eclipse,如下3.-7.3.下载jdk:"sudo wget -c /otn-pub/java/jdk/6u25-b06/jdk-6u25-linux-i586.bin"4.修改jdk-6u25-linux-i586的可执行权限:"chmod +x jdk-6u25-linux-i586.bin"(最简单的方法是赋予所有权限:chmod 777 jdk-6u25-linux-i586.bin)5.命令"./jdk-6u25-linux-i586.bin"报错参照/ubuntu-10-04-android-dev-environment/comment-page-1/#comment-25306.下载好eclipse后进行tar解压"tar zxvf ...",提示:gzip: stdin: not in gzip formattar: Child returned status 1tar: 由于前次错误,将以上次的错误状态退出参照/thread-2099407-1-1.html7.运行"rpm -q gizp"查看gizp安装包,提示"软件包 gizp 尚未安装"参照/viperchaos/archive/2011/08/23/2151333.html8.运行"sudo apt-get install eclipse"安装eclipse参照/ubuntu-10-04-android-dev-environment/comment-page-1/#comment-25309.下载Android SDK"sudo wget /android/android-sdk_r10- linux_x86.tgz",并进行tar解压"tar zxvf android-sdk_r10-linux_x86.tgz",重命名"mv android-sdk-linux_x86 android-sdk"10.下载Android Platform-tools"sudo wget/android/repository/platform-tools_r03-linux.zip",进行unzip解压"unzip platform-tools_r03-linux.zip”至目录android-sdk,重命名"mv platform-tools_r03-linux platform-tools"11.下载 Android 2.3 Platform"sudo wget /android/repository/android-2.3_r01-linux.zip"(/android-3.0_pre_r01-linux.zipnux.zip),解压"unzip android-2.3_r01- linux.zip"至目录android-sdk/platforms12.上面8.中安装的eclipse,可以在Ubuntu图形界面的Applications中运行13.下载JDK 1.6"sudo wget /otn-pub/java/jdk/6u25-b06/jdk-6u25-linux- i586.bin",进行chmod修改权限"sudo chmod 777 jdk-6u25-linux-i586.bin",重命名"mv jdk-6u25-linux-i586.bin jdk-6u25.bin",安装"sudo ./jdk-6u25.bin"显示错误./jdk-6u25.bin: 1: cannot open html: No such file./jdk-6u25.bin: 2: cannot open head: No such file./jdk-6u25.bin: 3: cannot open title: No such file./jdk-6u25.bin: 3: Request: not found./jdk-6u25.bin: 4: cannot open META: No such file./jdk-6u25.bin: 5: cannot open link: No such file./jdk-6u25.bin: 6: cannot open link: No such file: not foundbin: 7:./jdk-6u25.bin: 8: cannot open body: No such file./jdk-6u25.bin: 9: cannot open div: No such file./jdk-6u25.bin: 10: cannot open table: No such file./jdk-6u25.bin: 11: cannot open tr: No such file./jdk-6u25.bin: 12: Syntax error: redirection unexpected14.百度"Ubuntu 10.04中无法安装jdk" ??参照/ubuntu-10-04-android-dev-environment/comment-page-1/#comment-253015.配置环境变量"sudo gedit /etc/environment"提示"sudo: gedit: command not found",百度"sudo: gedit: command not found"参照/viewtopic.php?t=89160"16.使用vi配置环境变量"sudo vi environment"并在games后面添加":~/app_soft/android-sdk/platform-tools "保存退出17. "adb devices"验证Android SDK的配置,报错未找到 'adb' 命令,您要输入的是否是:命令 'cdb' 来自于包 'tinycdb' (main)命令 'gdb' 来自于包 'gdb' (main)命令 'aub' 来自于包 'aub' (universe)命令 'dab' 来自于包 'bsdgames' (universe)命令 'zdb' 来自于包 'zfs-fuse' (universe)命令 'mdb' 来自于包 'mono-debugger' (universe)命令 'tdb' 来自于包 'tads2-dev' (multiverse)命令 'pdb' 来自于包 'python' (main)命令 'jdb' 来自于包 'openjdk-6-jdk' (main)命令 'ab' 来自于包 'apache2-utils' (main)adb:找不到命令参照/ViewArticle1363.aspx18.重新配置环境变量,检测环境变量是否设置成功:注销重新登录后输入"adbdevices"验证Android SDK的配置,提示:* daemon not running. starting it now on port 5037 ** daemon started successfully *表示成功配置好Android SDK工具目录。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在Ubuntu10.04驱动开发环境搭建一、准备开发工具开发工具主要有gcc、gdb、make在Ubuntu中可以通过下面这个命令安装:$apt-get install build-essential我没有执行上面的命令,因为我在之前编译过Android,相关工具已经配置好了:$sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev x11proto-core-dev libx11-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos libncurses5-dev二、下载Linux源代码linux源码可以通过以下几种途径获得:1)直接去下载2)通过包管理工具下载源码用下面指令查看可用的源码包:$ sudo apt-cache search linux-sourcelinux-source - Linux kernel source with Ubuntu patcheslinux-source-2.6.32 - Linux kernel source for version 2.6.32 with Ubuntu patches在Ubuntu中可以通过下面这个命令下载:$apt-get install linux-source-(版本号)$sudo apt-get install linux-source-2.6.32下载后的文件linux-source-2.6.32.tar.bz2在/usr/src目录中,解压:$su – root$cd /usr/src$tar jxvf linux-source-2.6.32.tar.bz2解压后在/usr/src目录下产生了一个linux-source-2.6.32源码目录三、编译内核依次执行下列命令(必须都执行,否则编译错误,如果不是root用户,命令前加sudo):1)配置内核$su – root$cd /usr/src/linux-source-2.6.32$make config或$make menuconfig或者$ sudo cp ../linux-headers-2.6.32-21-generic/.config ./.config如果当前运行内核打开了CONFIG_IKCONFIG_PROC参数,则可以$zcat /proc/config.gz > .config$make oldconfig2)编译内核2.6版本后前两步不需要,直接make即可$make prepare$make scripts$make3)安装模块$make modules 这一步不需要$make module_install执行结束之后,会在/lib/modules下生成新的目录/lib/modules/2.6.32.44+drm33.19四、生成镜像文件1)生成内核镜像文件$make bzImage执行完成后将在arch/i386/boot/目录下生成bzImage镜像文件,使用下面命令安装到系统的/boot目录下:$sudo make installsh /usr/src/linux-source-2.6.32/arch/x86/boot/install.sh 2.6.32.44+drm33.19 arch/x86/boot/bzImage \ System.map "/boot"命令完成后在/boot目录下,将多了vmlinuz-2.6.32.44+drm33.19和System.map-2.6.32.44+drm33.19两个文件或者直接拷贝$ sudo cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.32.44+drm33.192)生成要载入ramdisk的映像文件如果linux系统按照在scsi磁盘上,这部是必须的,否则可以跳过。

我的linux是装在vmware上的,用的是虚拟的scsi磁盘,所以必须要这一步。

输入命令:mkinitramfs -o /boot/initrd.img-linux2.6.32.44+drm33.19 2.6.32.44+drm33.19第二个参数是版本号,必须和/lib/modules/目录下新内核对应的模块的文件夹名字一致,即2.6.32.44+drm33.19 。

五、使用新编译的内核Ubuntu采用Grub引导,要使用新内核,必须配置grub。

1) 更改grub配置,显示启动菜单$su – root$gedit /etc/default/grub &注释GRUB_HIDDEN_TIMEOUT=0语句,及改成#GRUB_HIDDEN_TIMEOUT=0后保存2)更新启动配置文件$update-grub执行命令后,该命令自动搜索/boot文件夹,将相应的镜像加入/boot/grub/grub.cfg启动菜单,并根据/etc/default/grub内容更新配置文件。

更新后,将增加如下内容:menuentry 'Ubuntu, with Linux 2.6.32.44+drm33.19' --class ubuntu --class gnu-linux --class gnu --class os {recordfailinsmod ext2set root='(hd0,5)'search --no-floppy --fs-uuid --set 4aaa411a-c1ab-4c9e-94bf-770717be6d9alinux /vmlinuz-2.6.32.44+drm33.19 root=/dev/sda8 ro quiet splash}menuentry 'Ubuntu, with Linux 2.6.32.44+drm33.19 (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {recordfailinsmod ext2set root='(hd0,5)'search --no-floppy --fs-uuid --set 4aaa411a-c1ab-4c9e-94bf-770717be6d9aecho 'Loading Linux 2.6.32.44+drm33.19 ...'linux /vmlinuz-2.6.32.44+drm33.19 root=/dev/sda8 ro singleecho 'Loading initial ramdisk ...'}3)手工更改配置文件因为是SCSI,须手工加入启动时需要的ramdisk的映像文件, initrd开头部分:menuentry 'Ubuntu, with Linux 2.6.32.44+drm33.19' --class ubuntu --class gnu-linux --class gnu --class os {recordfailinsmod ext2set root='(hd0,5)'search --no-floppy --fs-uuid --set 4aaa411a-c1ab-4c9e-94bf-770717be6d9alinux /vmlinuz-2.6.32.44+drm33.19 root=/dev/sda8 ro quiet splashinitrd /initrd.img-linux2.6.32.44+drm33.19}menuentry 'Ubuntu, with Linux 2.6.32.44+drm33.19 (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os {recordfailinsmod ext2set root='(hd0,5)'search --no-floppy --fs-uuid --set 4aaa411a-c1ab-4c9e-94bf-770717be6d9aecho 'Loading Linux 2.6.32.44+drm33.19 ...'linux /vmlinuz-2.6.32.44+drm33.19 root=/dev/sda8 ro singleecho 'Loading initial ramdisk ...'initrd /initrd.img-linux2.6.32.44+drm33.19}修改完成并保存后,重新启动系统,应该出现让你选择内核的菜单。

六、准备Helloworld源代码和Makefile文件$mkdir hello$cd hello$gedit Helloworld.c Makefile &Helloworld.c内容:#include <linux/init.h>#include <linux/module.h>MODULE_LICENSE("Dual BSD/GPL");static int hello_init(void){printk(KERN_ALERT "Hello, world\n");return 0;}static void hello_exit(void){printk(KERN_ALERT "Goodbye, cruel world\n");}module_init(hello_init);module_exit(hello_exit);Makefile内容:#Makefile 2.6ifneq ($(KERNELRELEASE),)#kbuild syntax dependency relationship of files and target modules are listed here.mymodule-objs:=helloworld.oobj-m:=helloworld.oelsePWD:=$(shell pwd)#为正在运行的内核编译模块,使用下列配置KVER?=$(shell uname -r)#KDIR:=/lib/modules/$(KVER)/build#或使用/usr/src/linux-headers-2.6.32-21-generic目录#不是为正在运行的内核编译模块,使用下列配置#KDIR:=/usr/src/linux-2.6.32.21/KDIR:=/usr/src/linux-source-2.6.32/all:$(MAKE) -C $(KDIR) M=$(PWD)clean:@rm -rf .*.com *.o *.mod.c *.ko .tmp_versions modules.order Module.symvers endif七、编译并安装模块1)编译编译前,请先编译新内核,否则出现警告信息$cd ~/hello$make2)安装模块$sudo insmod helloworld.ko3)移除模块$rmmod helloworld4)查看模块信息$sudo modinfo helloworld$lsmod 列出所有模块八、查看输出信息cat /proc/kmsg 会一直打印,需要Ctrl-C手动终止dmesg 或dmesg | tail -N ,N为一数字,表示显示最后N行cat /var/log/message九、问题及解决方法:1Building modules, stage 2./usr/src/linux-source-2.6.32/scripts/Makefile.modpost:42: include/config/auto.conf: No such file or directorymake[2]: *** No rule to make target `include/config/auto.conf'. Stop.make[1]: *** [modules] Error 2make[1]: Leaving directory `/usr/src/linux-source-2.6.32'make: *** [all] Error 2解决:$make scripts2, Invalid module format问题使用正在运行的内核的头文件编译出的模块,不会出现该问题insmod: error inserting 'hellomod.ko': -1 Invalid module format此时,你用sudo tail /var/log/messages你在最后一行应该看到类似下面的提示:Dec 19 13:42:29 localhost kernel: hellomod: version magic '2.6.24.2 SMP mod_unload 686 4KSTACKS ' should be '2.6.27.7-134.fc10.i686 SMP mod_unload 686 4KSTACKS '解决办法:(按照下面说的无法解决,只有加载新内核才不出问题)那该怎么办呢?最简单的办法就是:修改源目录下的Makefie把最Makefile第1-4行的值改为当前内核一样的值VERSION = 2PATCHLEVEL = 6SUBLEVEL = 24EXTRAVERSION = .2NAME = Err Metey! A Heury Beelge-a Ret!那怎么确定你当前内核的值是多少呢?vi /lib/modules/`uname -r`/build/Makefile注意:重新编译内核和不编译内核后得到的模块文件,在安装时显示的信息一样,但dmesg | tail显示的信息不通。

相关文档
最新文档