编译小米内核源码
Android源码编译之后生成的是ramdisk.img、system.img和userdata.img。而内核源码编译完成之后生成的是ZImage。在一般情况下Android源码是不带有内核源码的,但是带有一个镜像,这样在编译完Android源码之后就可以模拟器启动了,如果要更换系统的内核,此时将高版本的内核源码进行编译生成ZImage然后替换Android系统的的镜像。这样使用模拟器启动之后就可以查看内核是否已经被刷新。
请注意,android源码和kernel源码是分开下载的
编译android源码
进入source目录下,执行make 即可。
编译完成后,可以在源码目录的out/target/proct/generic/目录下看到编译好的ramdisk.img、system.img和userdata.img了。
编译内核源码
新建Kernel/goldfish,在这个目录下进行编译
当然需要。。。
第一点,就是源码树中有相应的头文件和函数的实现,没有源码树,你哪调用去呢?(PC上编译的时候内核有导出符号,系统中有头文件,这样就可以引用内核给你的接口了,但是只能编译你PC上版本的内核可加载的模块)。
第二个,内核模块中会记录版本号的部分,需要记录版本号的原因是不同的内核版本之间,那些接口和调用可能会有比较大的差异,因此必须要保证你的代码和某个特定的内核对应,这样编译出来的模块就可以(也是只能)在运行这个内核版本的Linux系统中加载,否则一个很简单的异常就会导致内核崩溃,或者你的代码根本无法编译通过(接口名变了)。
我上面说的是编译模块的情况,当然如果是把模块直接编译到内核当中去的话,那就不用说了,没有内核源码,你无法编译内核。
⑶ Linux内核源码如何编译
首先uname
-r看一下你当前的linux内核版本
1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname
-r命令可以查看你当前使用的是哪套内核,你把你下载的内核源码也保存到这个目录之下。
2、配置内核
make
menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成.config配置文件,以后的编译会根据这个来有选择的编译。
3、编译,依次执行make、make
bzImage、make
moles、make
moles
4、安装,make
install
5、.创建系统启动映像,到
/boot
目录下,执行
mkinitramfs
-o
initrd.img-2.6.36
2.6.36
6、修改启动项,因为你在启动的时候会出现多个内核供你选择,此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于
/boot/grub/grub.cfg
文件的设置,找到if
[
"${linux_gfx_mode}"
!=
"text"
]这行,他的第一个就是你默认启动的那个内核,如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:
menuentry
'Ubuntu,
with
Linux
3.2.0-35-generic'
--class
ubuntu
--class
gnu-linux
--class
gnu
--class
os
{
recordfail
gfxmode
$linux_gfx_mode
insmod
gzio
insmod
part_msdos
insmod
ext2
set
root='(hd0,msdos1)'
search
--no-floppy
--fs-uuid
--set=root
9961c170-2566-41ac-8155-18f231c1bea5
linux/boot/vmlinuz-3.2.0-35-generic
root=UUID=9961c170-2566-41ac-8155-18f231c1bea5
ro
quiet
splash
$vt_handoff
initrd/boot/initrd.img-3.2.0-35-generic
}
当然你也可以修改
set
default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。
重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make
menuconfig这一步,改好后就万事ok了。
最后再用uname
-r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?
打字不易,如满意,望采纳。
⑷ 小米公布的内核源码在哪儿
很多安卓系统都是类似的版本号,不要惊慌。
⑸ 小米android和内核源码开放吗
安卓和ios不是一个系统,安卓上没有识别ios代码的地方,两个系统环境代码不通用。
⑹ 如何编译一个手机的超频内核,有内核源码,但是不会弄有具体的教程吗单纯给手机超频,不怕炸
有可能炸但不一定
⑺ 我需要编译内核,内核源码在哪里
1、一般在发行版的盘里都有,比如 RedHat,一般在第二、第三张上
2.4 内核的叫 kernel-source-2.4.xx-xx.rpm
2.6 内核的叫 kernel-devel-2.6.xx-xx.rpm
2、 关于源码的安装,请查阅书籍《linux就该这么学》
⑻ 如何编译android kernel
1.准备工作: (ubuntu1110 32位)
ubuntu等linuxOS,下载好eclipse,安装好JDK, 安装好android的SDK, 在eclipse中成功打开android 手机模拟器即OK。
2.初始化编译环境 :
关注该网页上的“installing required packages”,其中有的软件包因为版本问题而安装不上,不用管它,之后遇到错误再单独解决。
3.下载内核源码:
android 2.3 内核 下载需要等待一段时间。
4.下载交叉编译器:
该步骤有可能耗费大量时间,依据网速不同,几个小时到几天不等,或许可以尝试git clone 后面的地址只下载prebuilt/linux-x86/toolchain
5.设置参数以及编译:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ cd goldfish // 进入下载的源代码目录
$ git checkout <commit_from_first_step> //这个步骤我没有做,不知道干嘛用的
$ make goldfish_defconfig
$ make
6.报错信息:
若有报错说找不到 (arm-eabi-gcc command not found)等等,尝试使用http://blog.csdn.net/davidbeckham2901/article/details/7397447 中说到的解决方案即可(即采用另外一个交叉编译器)。
7.测试:
最后,测试一下刚才编译的内核:emulator -avd myavd -kernel ~/goldfish/arch/arm/boot/zImageemulator若系统找不到,可以去android SDK中某文件夹找到,加入系统PATH即可。 -avd后面的参数 myavd即为模拟器的名字,这个我是在eclipse中的模拟器管理中新建的一个模拟器,用那个模拟器的名字即可。 -kernel后面的参数就找到刚才编译出的内核的路径。
若启动模拟器失败,可尝试关闭后再启动。第一次启动模拟器时可能需要等待比较长的时间,3分钟到15分钟不等。
⑼ 编译android 源码进行刷机也包括了内核吗
有些东西容易被一些黑客入侵。但是,因为安卓系统的开源性,安卓手机root权限获取是必然的。 刷机、修改字体、自定义美化、修改开机动画效果、以及设定等等都需要应用到root权限。凌少就举个例子吧。安卓的椒友一定都清楚,刚买来手机的时候,安卓手机系统中就自带上百个应用程序。如果你想删除它们,那么就必须让自己的安卓手机root权限获取,这样才行。 SuperOneClick最为好用的一款一键ROOT小工具,本次与腾讯联手推出新版完美支持的机型超65个品牌400个型号!支持97%手机 使用腾讯手机管家方便而且很简单,打开腾讯手机管家PC版,点击工具箱便能看到一键ROOT了。腾讯手机管家PC版提供的一键ROOT是永久的获得root,除非是刷机等一系列彻底的重写系统文件的操作外,而一般的ROM包都是包含了ROOT的。 打开 “一键root” 后,是介绍的ROOT的好处,其中最好的一项优点就是可以卸载系统应用,并可以修改系统文件;第二个界面是程序检测手机 是否具有ROOT的条件,由于ROOT需要保持稳定的连接,所以一定要保证数据线的稳定性。 在点击了 “开始ROOT” 后,便不要再随意摆弄手机了,安静地等待,大概一分钟左右ROOT便结束了。如果ROOT成功,便会看到下面这个界面,手机也会自动重启;如果失败了,还请搜索相对应机型的ROOT教程。 基本步骤如下1.下载安装腾讯管家 2.连接手机数据线即可ROOT 考虑到行货手机的保修问题,腾讯手机管家PC版也提供了解除ROOT的功能,操作流程也同样简单。
⑽ linux 驱动程序开发,为什么要编译内核源码树
您好,这样的情况建议您下载最新版本的驱动精灵,或是直接在线升级一下驱动精灵。希望可以帮到您。