編譯小米內核源碼
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 驅動程序開發,為什麼要編譯內核源碼樹
您好,這樣的情況建議您下載最新版本的驅動精靈,或是直接在線升級一下驅動精靈。希望可以幫到您。