Ubuntu下构建内核源码树的方法
- 格式:doc
- 大小:466.50 KB
- 文档页数:5
使用YOCTO编译环境修改内核源码的方法YOCTO Project是一个开放源代码项目,为嵌入式Linux开发提供了一个灵活的框架。
它允许开发人员根据自己的需求构建一个定制的Linux 发行版,包括内核、设备驱动和用户空间组件。
在YOCTO Project中修改内核源码的方法可以分为以下几个步骤:1.准备开发环境:在开始之前,需要安装好YOCTO Project的开发环境。
详细的安装过程可以参考YOCTO Project的官方文档。
安装完成后,需要设置好环境变量,以便可以使用YOCTO Project的工具链。
2.获取内核源码:YOCTO Project使用BitBake构建系统来构建Linux发行版。
内核源码在YOCTO Project中是使用git管理的,可以通过git命令来获取。
首先需要指定要使用的内核版本,然后使用git clone命令来获取源码。
3.创建内核工作目录:在YOCTO Project中,涉及到对内核进行修改时,最好是在源码目录以外创建一个工作目录来进行操作,以免影响原有的源码。
4.配置内核:进入内核工作目录后,可以使用bitbake -c menuconfigvirtual/kernel命令来配置内核。
这将打开一个配置菜单,可以对内核进行各种设置。
可以根据项目需求来进行配置,如开启一些硬件支持、关闭不需要的功能等。
5.修改内核源码:6.构建内核:修改完成后,需要构建内核以生成相应的内核镜像。
可以使用bitbake virtual/kernel命令进行构建。
构建过程中,YOCTO Project将自动将修改的文件编译为目标文件,并将其添加到最终生成的内核镜像中。
7.安装内核:构建完成后,可以使用bitbake virtual/kernel -c deploy命令将内核安装到目标设备上。
安装过程中,生成的内核镜像将被复制到目标设备的指定位置。
8.配置设备:在将内核安装到目标设备上后,需要进行一些配置来确保内核的正常工作。
ubuntu下安装cmake及cmake简单使⽤,CmakeList的编写和参数详解安装过程1. ⾸先去官⽹下载,选择“XX.tar.gz”源码安装包2. 输⼊如下命令$tar -zxvf xx.tar.gz$./bootstrap$make$make install输⼊以上命令后就已经可以在ubuntu上安装好cmake编写简单的cmake使⽤cmake⾸先得有个CMakeList.txt⽂件,你需要把配置信息写在该⽂件中,然后通过cmake去处理该⽂件。
将设有下⾯⼀个main.cpp⽂件//main.cpp⽂件#include<iostream>using namespace std;int main(){cout<<"hello world!"<<endl;return 0;}这时候我们就可以写个如下的CMakeList.txt⽂件#cmake最⼩需要版本cmake_minimum_required(VERSION 2.8)#项⽬名字project(HELLOWORLD)#包含原程序,即把给定⽬录下的源程序复制给变量DIR_SRCaux_source_directory(DIR_SRC ./)#⽣成程序add_executable(helloworld ${DIR_SRC})然后执⾏如下命令$mkdir build$cd build$cmake ..$make$./helloworld这样就编译好程序并运⾏。
添加静态库或者动态库⽽假设我们程序⽤到了在/usr/lib下的⼀个静态库libmy.a,那就需要添加如下两个命令#库所在位置link_directories(/usr/lib)#程序编译时候链接库target_link_libraries(helloworld my)******************************************⼆CmakeList的编写和参数详解************************使⽤cmake 很简单,只需要执⾏cmake, make 两个命令即可,⽤我⼯作中的⼀个⼯程举例说明。
环境Linux 版本:Ubuntu 11.04 (可由10.10的版本进行升级)64位系统GCC版本:gcc version 4.5.2Java版本:java version "1.6.0_26"下载android源码前注意:1、保证Ubuntu系统中的容量在80G左右,以保证足够的空间来存放android源码以及编译后的相关文件。
2、保证Ubuntu系统进行Internet访问。
联网方法:采用拨号进行连接。
相关操作步骤如下所示:1、虚拟机→设置→硬件→网络适配器→网络连接→桥接2、启动Ubuntu系统,打开终端(在普通用户下),输入相关命令如下:$ pppoeconf //打开后输入上网账号跟密码,确认保存$ sudo pon dsl-provider //上网连接命令经过这两个步骤后就可以进行上网了。
Android源码编译所依赖的tools01.$ sudo apt-get update02.$ sudo apt-get -y install git-core03.$ sudo apt-get -y install gnupg04.$ sudo apt-get -y install sun-java6-jdk flex05.$ sudo apt-get -y install bison06.$ sudo apt-get -y install gperf07.$ sudo apt-get -y install libsdl-dev08.$ sudo apt-get -y install libesd0-dev09.$ sudo apt-get -y install libwxgtk2.6-dev10.$ sudo apt-get -y install build-essential11.$ sudo apt-get -y install zip12.$ sudo apt-get -y install curl13.$ sudo apt-get -y install libncurses5-dev14.$ sudo apt-get -y install zlib1g-dev15.$ sudo apt-get -y install valgrind注意:(如果是32bit的系统的话,则要更改几个Android.mk文件)01./external/clearsilver/cgi/Android.mk02./external/clearsilver/java-jni/Android.mk03./external/clearsilver/util/Android.mk04./external/clearsilver/cs/Android.mk用gedit打开,修改m64为m32即可另外将build/core/main.mk中的ifneq (64,$(findstring 64,$(build_arch)))修改为:ifneq (i686,$(findstring i686,$(build_arch)))对于32位系统所出现的问题,解决方法:Error1:make: ***[out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] error 1在terminal中输入$ gedit frameworks/base/libs/utils/Android.mk将LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)修改为:LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissiveError2:make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] error 1此处编译错误是由于ubuntu 11.10采用了GCC4.6.1导致的修改源码目录下/build/core/combo/HOST_linux-x86.mk并将以下语句:HOST_GLOBAL_CFLAGS+= -D_FORTIFY_SOURCE=0修改为:HOST_GLOBAL_CFLAGS+= -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0Android源码下载1、安装repo安装过程步骤如下所示:Repo下载安装1、$ mkdir ~/bin //在home目录下创建bin文件夹2、$ PATH=~/bin:$PA TH //环境变量设置3、$ curl https:///dl/googlesource/git-repo/repo > ~/bin/repo //repo下载4、$ chmod a+x ~/bin/repo //权限设置,保证repo可执行Repo client初始化1、$ mkdir Android //创建Android目录,用于存放下载的android源码2、$ cd Android //进入到Android目录3、$ repo init -u https:///platform/manifest //指定URL清单,指定包含在Android源代码的各种存储库将被安置在工作目录中当然也可以指定android版本,使用如下命令:$ repo init -u https:///platform/manifest -b android-4.0.1_r1Android源码文件获取$ repo sync注意:在Android源码下载过程中凡出现问题,可以进入Android源码下载的相关官方网站/source/downloading.html 进行查看。
ubuntu安装及android源码编译环境搭建为了能够编译和运行 Android 源码,我们需要在 Ubuntu 系统中搭建相应的开发环境。
下面是 Ubuntu 安装及 Android 源码编译环境搭建的详细步骤:一、Ubuntu 系统的安装2.将ISO文件写入USB或DVD中,制作启动盘。
3.在计算机上将系统引导到USB活动盘或DVD上,并启动系统。
4. 在启动菜单中选择安装 Ubuntu,按照提示完成安装过程。
二、系统更新和软件安装1.安装后,运行系统更新以获取最新的软件包和安全修复程序。
可以在终端中运行以下命令:```sudo apt updatesudo apt upgrade```2.安装开发工具和编译器。
可以在终端中运行以下命令:```sudo apt install build-essentialsudo apt install openjdk-8-jdksudo apt install pythonsudo apt install gitsudo apt install curlsudo apt install gnupg```1. 配置 Git 个人信息,可以在终端中运行以下命令:```git config --global "Your Name"``````chmod a+x ~/bin/repo```3. 配置 PATH 环境变量,这样在终端中就可以使用 Repo 了。
打开`~/.bashrc` 文件,并在末尾添加以下内容:```export PATH=~/bin:$PATH```4.执行以下命令使配置生效:```source ~/.bashrc```1. 创建一个空文件夹作为 Android 源码存放的目录,并在终端中进入该目录。
```repo init -u <URL> -b <branch>````````````repo sync```5.开始编译。
kernel5.10 编译方法Kernel 5.10编译方法Kernel是操作系统的核心组件,主要负责处理硬件、资源管理、进程调度等。
编译自己的内核版本可以帮助我们定制化操作系统,增加新功能、修复漏洞、提高系统性能,同时也为学习内核提供了很好的机会。
本文将介绍Kernel 5.10的编译方法,并提供一步一步的指导。
步骤一:准备工作1.1 确认系统要求在编译Kernel之前,要确保你的系统符合以下要求:- Linux发行版,如Ubuntu、Debian等。
- 操作系统处于最新的更新状态,并已安装了必要的开发工具和依赖项,包括GCC、G++、make、libncurses5-dev等。
1.2 下载Kernel源码首先,我们需要从官方网站下载Kernel 5.10的源码。
打开步骤二:配置内核2.1 进入源码目录使用终端进入到刚解压的内核源码目录。
例如,假设你将其解压到/home/user/kernel-5.10目录,你可以使用以下命令进入到该目录:shellcd /home/user/kernel-5.102.2 配置内核在源码目录下,运行以下命令来配置内核:shellmake menuconfig该命令将打开一个文本界面的配置菜单,允许你选择不同的内核配置选项。
在配置菜单中,你可以按照自己的需求修改内核的各种选项。
例如,你可以选择添加新的功能、开启或关闭特定的驱动程序,或者进行其它自定义设置。
通过上下方向键导航菜单,使用空格键选中或取消选项。
按下键盘上的"?"键,可以查看每个选项的详细说明。
完成配置后,保存并退出配置菜单。
此时,你可以选择将内核配置保存为.config文件,以便今后使用。
它将被保存在源码目录下。
当你再次编译内核或者配置新的内核时,可以使用保存的配置进行参考。
你可以使用以下命令保存内核配置:shellcp .config /home/user/kernel-config-5.10步骤三:编译内核3.1 开始编译在源码目录下,运行以下命令编译内核:shellmake -j(nproc)该命令将使用多个CPU核心进行编译工作,加快编译速度。
树莓派5内核编译方法-概述说明以及解释1.引言1.1 概述概述部分的内容:树莓派是一款小而强大的单板计算机,广泛应用于物联网、嵌入式系统、教育等领域。
树莓派5是其中的一款重要版本,它采用了更强大的处理器和更多的内存,提供了更高的性能和更丰富的扩展接口。
为了充分发挥树莓派5的潜力,我们需要根据自己的需求定制内核,在编译过程中进行个性化的配置和优化。
本文将介绍树莓派5内核编译方法,帮助读者了解如何从源代码开始,通过一系列的步骤和工具,将自定义的内核编译并部署到树莓派5上。
相比于直接使用官方发行的固件,自定义内核可以提供更好的性能、更强的稳定性,同时也可以根据具体需求添加或删除一些功能模块。
在接下来的正文中,我们将首先介绍树莓派5内核编译方法的背景,包括为什么需要编译内核以及编译内核的好处。
然后,我们将详细讲解树莓派5内核编译的步骤,包括下载内核源码、配置编译选项、编译内核、生成镜像文件等。
通过这些步骤的介绍,读者将能够全面理解内核编译的过程和注意事项,为后续的实践打下坚实的基础。
最后,在结论部分,我们将对整篇文章进行总结,并展望树莓派5内核编译方法的未来发展。
我们希望通过本文的介绍和指导,读者能够掌握树莓派5内核编译方法,发挥自己的创造力和想象力,为树莓派5的应用开发和优化做出更大的贡献。
1.2文章结构文章结构部分的内容可以是描述本文的整体结构以及各个段落或章节的主要内容和顺序。
下面是一个例子:在本文中,将介绍树莓派5内核编译的方法和步骤。
文章主要分为引言、正文和结论三个部分。
引言部分将对树莓派5内核编译方法的概述进行简要介绍,并说明文章的结构和目的。
正文部分将详细探讨树莓派5内核编译方法的背景与步骤。
首先,将介绍树莓派5内核编译方法背景的相关背景知识,包括树莓派5的硬件特性和内核编译的意义。
然后,将逐步介绍树莓派5内核编译的具体步骤,包括环境准备、获取内核源代码、配置编译选项、编译内核和安装内核等。
kernel5.10 编译方法-回复标题:编译Linux Kernel 5.10的详细步骤在Linux的世界中,编译Kernel是一项基础且重要的技能。
本文将详细介绍如何从源代码编译Linux Kernel 5.10。
以下是一步一步的详细教程。
一、准备工作1. 确保系统环境首先,你需要一个运行中的Linux系统。
本文以Ubuntu 20.04为例,但大部分Linux发行版的步骤应该是类似的。
2. 更新系统确保你的系统已经更新到最新版本,可以使用以下命令:sudo apt-get updatesudo apt-get upgrade3. 安装必要的工具编译Kernel需要一些基本的开发工具和库,可以通过以下命令安装:sudo apt-get install build-essential libncurses5-dev bc flex bison openssl libssl-dev dkms二、下载Kernel源代码1. 创建工作目录在你的主目录下创建一个名为kernel的工作目录:mkdir ~/kernelcd ~/kernel2. 下载Kernel源代码你可以从Kernel官网(5.10的源代码:wget3. 解压源代码使用以下命令解压下载的源代码:tar xvf linux-5.10.tar.xz这将在当前目录下创建一个名为linux-5.10的目录,这是Kernel的源代码目录。
三、配置和编译Kernel1. 进入源代码目录cd linux-5.102. 配置Kernel配置Kernel是编译过程中最重要的一步,你可以根据你的硬件和需求选择要编译的功能。
对于大多数用户,使用以下命令进行基本配置应该足够:make menuconfig这将打开一个基于文本的配置界面。
你可以使用方向键和回车键浏览和选择选项。
完成后,保存并退出。
3. 开始编译配置完成后,可以开始编译Kernel了。
这个过程可能需要一些时间,取决于你的计算机性能:make -j(nproc)这里的-j参数表示使用多少个进程进行编译,(nproc)会自动获取你的CPU 核心数。
ubuntu下编译驱动程序的准备ubuntu不带linux内核源码,需要自己下载安装。
1,查看自己的内核版本uname -r2,查看源内的内核源码类表apt-cache search linux-source3,下载安装内核源代码sudo apt-get install linux-source- //我选的是这一个,自己看着办吧4,等待........下载完成后,在/usr/src下会有一个文件名为linux-source-5,解压缩包tar jxvf linux-source- //看清自己的版本解压后会生成一个源代码目录/usr/src/linux-source-6,进入源码目录后,配置文件make oldconfig7,生成内核make8,疯狂等待,大约1个多小时9,编译模块make modules10,安装模块make modules_install大功告成!^_^下面说一下Makefile文件$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install #PWD当前工作目录的变量obj-m := hello.o#hello.o是你要生成的驱动,以后可以自己改KERNELDIR:=/lib/modules/#这里别抄,写成你自己的版本,这个目录执行了内核源码目录PWD:=$(shell pwd) #将当前工作目录赋值该PWD modules:$(MAKE) -C $(KERNELDIR) M=$(PWD) modulesmodules_install:下面是一个经典的Hello,world!例子自己make一下就行了。
#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);本文是参考了网上多篇帖子而写的算不上什么原创。
sudo apt-get install linux-source 会自动安装当前版本内核的源代码到/usr/src升级内核源码:1.将下载过来linux源代码包(tar.bz2包)解压到/usr/src下。
如果你还不知道怎么解压,请google之~解压完毕后可以在/usr/src目录下看到一个linux-2.6.31.6的文件夹2.转移目录至linux-2.6.31.6用如下命令:cd /usr/src/linux-2.6.31.63.先配置Ubuntu内核:make menuconfig具体怎么配置我不清楚,不过这个基本上不用怎么配置的,直接选最后一项,save,exit 就OK了4.接着开始编译Ubuntu内核:make这是一个漫长的过程,慢慢等吧~~这个花了我将近一个半小时的时间5.加入模块:make modules_install6.生成可执行的Ubuntu内核引导文件:make bzImage (注意i字母要大写)7.将bzImage复制至/boot下:cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.31.6 //2.6.32Ubuntu内核的bzImage目录为arch/x86/boot/bzImage8.清除多余的创建文件:make clean //这一步最好还是留到最后来做(现在可以先不跳过这一步),这样的话,即使你后面操作失误也可以回到这里重做,而不需要重新编译9.将System.map复制至/boot下:cp System.map /boot/System.map-2.6.31.610.生成initrd.img 这个很重要,我开始弄错了这个,害的我白重启了一次。
命令:cd /lib/modules/2.6.31.6sudo mkinitramfs -o /boot/initrd.img-2.6.31.6 //2.6.32可以为sudo update-initramfs -c - k 2.6.3211.自动查找新Ubuntu内核,并添加至grub引导:sudo update-grub这个过程也可以手动完成,方法是更改/boot/grub目录下menu.lst文件。
Ubuntu 12 64位编译Android 4.0.1源码问题和解决办法系统满足的条件:在VMware下,最好给客户虚拟机1.5G内存,30G以上的硬盘。
实现应该要安装的软件:For Gingerbread (2.3.x) and newer versions, including the master branch, a 64-bit environment is required. Older versions can be compiled on 32-bit systems.Note: It is also possible to build Android in a virtual machine. If you are running Linux in a virtual machine, you will need at least 16GB of RAM/swap and 30GB or more of disk space in order to build the Android tree.Detailed instructions for Ubuntu and MacOS follow. In general you will need:You will need a 64-bit version of Ubuntu.Ubuntu 10.04 is recommended. Building using a newer version of Ubuntu is currently only experimentally supported and is not guaranteed to work on branches other than master.$ 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$ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so源码编译过程中可能出现的问题:1、make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] Error 1make: ***解决方法:gedit frameworks/base/libs/utils/Android.mk把LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)修改为:LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) –fpermissive2、make: ***[out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/noproguard.classes -with-local.dex] Killed解决方法:把虚拟机ubuntu系统分配内存1G,有条件最好对于1G3、<command-line>:0:0: error: "_FORTIFY_SOURCE" redefined [-Werror]make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1解决方法:修改build/core/combo/HOST_linux-x86.mk 61行,将HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0修改成HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0昨天下载、编译了android-4.0.3,遇到的问题贴出来,共享一下:环境要求改变。
Ubuntu 下构建内核源码树
网上好多文章,他大爷的都是转来转去,每一篇中用的。
索性还是自己整理一篇吧。
网上牛人多,但是小白问题更多,更何况咱们这号不入门的,因为最近学内核,要写模块,模块要在源码树下编译安装,又习惯了Ubuntu的OS,不忍转向他方,还是好好摆置摆置它吧,找的几篇文章不怎么好用,下边开始吧。
PS:当前系统是上一篇配置SSH博文里Jun从Ubuntu9.04更新到Ubuntu 10.04的系统。
这个网上都这么装,就这样来吧。
1.安装编译内核所需要的软件build-essential、autoconf、automake、cvs、subversion
$ sudo apt-get install build-essential kernel-package libncurses5-dev
libncurses5这个软件包在使用menuconfig配置内核的时候会用到。
2.进入/usr/src ,在这里构建源码树,我们用下面指令查看可用的源码包:
$ sudo apt-cache search linux-source
我的提示是:
linux-source - Linux kernel source with Ubuntu patches
linux-source-2.6.32 - Linux kernel source for version 2.6.32 with Ubuntu patches
3.那么就让我们来下载2.6.32版的kernel,通过下边命令:
$ sudo apt-get install linux-source-2.6.32
等待下载完成。
4.下载完成后,我们进入/usr/src ,默认会在这里,看看他的目录结构:(ls 一下)
我的显示可以看到有两对儿Linux-header-2.6.* 的目录,你的应该是只有一对儿,之所以这样是以为我的是从9.04更新到10.4,Ubuntu会保留历史版本,不用管它,记住,这里linux-headers-2.6.32-34-generic 、linux-headers-2.6.32-34、linux-source-2.6.32.tar.bz2 ,这才是我们用到的。
linux-source-2.6.32.tar.bz2这个就是刚刚下载好的源码,我们来解压一下:
$ sudo tar –xjvf linux-source-2.6.32.tar.bz2
然后为了操作方便,我们给源码目录建立一个软连接:
$ sudo ln –s linux-source-2.6.32 linux
这样我们就可以通过linux来操作linux-source-2.6.32目录了。
$ cd linux
5.进入源码树内,然后导入原来内核的配置文件:
$ sudo cp ../linux-headers-2.6.32-34-generic/.config ./.config
(注意:在linux-headers-2.6.32-34-generic 目录下查看文件列表时,可能看不到.config文件,因为 .开头的文件是隐藏的,要用$ ls –a才能看到);
记住当前在源码树中。
我们执行一下 $ make menuconfig ,把原来的.config 导进来。
终端会弹出一个配置界面
最后有两项:load a kernel configuration...
save a kernel configuration...
选择load a kernel configuration保存,然后在选择save akernel configuration再保存退出,并退出配置环境。
6.好的,下面就是激动人心的make时代了,能不能通过呢?我也在期待,因为之前几次都没成功哎,悲催。
$ make –j4
(ps:这里-j4是用4个job来完成整个make过程,并发一下,比较快么,不过如果你的机器比较卡,还是老老实实的不加这个选项make吧,毕竟make内核的时间
还是比较长的,我们可以边看电影,边等待他的完成。
让我打开一集死神或者海贼王先看着吧,待它编译ing):
编译还在持续,真是漫长。
一会儿还要去打球呢,赶紧。
果然,还有报错,报的是omnibook ,看名字估计是针对笔记本或者上网本的优化吧,在配置中把它去除了试试。
我感觉是个bug。
因为看图,Ubuntu目录下明明有sections.lds文件,仔细一看,他ld后的目录是绝对路径/ubuntu/omnibook……根目录下怎么会有这东西呢?是吧。
哈哈,现在要么把这个编译项给去除了,要么在根目录下建立同样的路径把sections.lds文件放进去,或者在源代码中找到出错的语句改过来,我看看能不能找到啊。
网上Search一下,果然是个bug,是2.6.32的bug,仿照网上的解决方法,您如果出现了同样的问题,借鉴一下:
/huochai2020/blog/item/3ebb1953629a8c7b8535249c.html
即:
在/usr/src/linux-source-2.6.32/ubuntu/omnibook/Makefile 中
ifeq ($(KERNELRELEASE),)
# Support for direct Makefile invocation
的前面增加:
PWD=$(shell pwd)
让我们 Try again。
经过漫长的等待,你猜怎么着?成了!希望你的也很顺利。
看到了,内核镜像有了。
OK,算是了结一桩心事,可以进行下一步Ubuntu下的驱动和模块开发了。