Android內核移植到2440A

今天把android內核交叉編譯後移植到我的2440開發板,下面是一些心得。

1、從http://code.google.com/p/android/downloads/list上下載linux-2.6.25-android-1.0_r1.tar.gz
2、解壓到任意目錄下,解壓命令爲tar tar –zxvf linux-2.6.25-android-1.0_r1.tar.gz。
3、解壓2440板的交叉編譯工具arm-linux-gcc-3.4.1.tar.bz2命令爲tar xjvf arm-linux-  3.4.1.tar.bz2,將文件解壓到用戶目錄,如/usr/local/arm/下。
4、添加當前路徑進入環境變量,命令export PATH=/usr/local/arm/3.4.1/bin:$PATH
5、進入內核文件夾,如cd ~/kernel.git/
6、修改Makefile文件,gedit Makefile,如下
   CROSS_COMPILE        ?= arm-linux-
7、運行make menuconfig
  (1)確保System Type ---> ARM system type ()中的內容爲Samsung S3C2410, S3C2412, S3C2413, S3C2440, S3C2442, S3C2443
  (2)確保System Type ---> S3C2410 Machines --->SMDK2410/A9M2410被勾選
   (3)取消選擇與Goldfish相關的內容,如下:
Device Drivers ---> Character devices ---> < > Goldfish TTY Driver
Device Drivers ---> Power supply class support ---> < >   Goldfish battery driver (NEW)
Device Drivers ---> Real Time Clock ---> < >   GOLDFISH (NEW)
Device Drivers ---> Graphics support ---> Support for frame buffer devices ---> < >   Goldfish Framebuffer
device drivers->Graphics support->Console display driver support->[]VGA text console
  (4)選擇S3C2410 LCD相關的內容
Device Drivers ---> Graphics support ---> Support for frame buffer devices ---> <*>   S3C2410 LCD framebuffer support
Device Drivers ---> Graphics support ---> Bootup logo ---> Standard black and white Linux logo
Device Drivers ---> Graphics support ---> Bootup logo ---> Standard 16-color Linux logo
Device Drivers ---> Graphics support ---> Bootup logo ---> Standard 224-color Linux logo
  (5) 選中Android內核必須選項
General setup ---> Use full shmem filesystem
General setup ---> Enable Android's Shared Memory Subsystem
System Type ---> Support Thumb user binaries
Device Drivers ---> Android ---> Android log driver
Device Drivers ---> Android ---> <*> Binder IPC Driver
  (6) 儘量選中Android內核可選選項
Device Drivers ---> Android ---> RAM buffer console
Device Drivers ---> Android ---> Android timed gpio driver
Device Drivers ---> Android ---> Only allow certain groups to create sockets
  (7)退出並保存.config
8、使用命令make zImage生成映像。

出現的一些問題
問題一:
  CC      arch/arm/kernel/asm-offsets.s
  cc1: error: invalid option `abi=aapcs-linux'
  make[1]: *** [arch/arm/kernel/asm-offsets.s] Error 1
  make: *** [prepare0] Error 2
解決方法:
    關閉kernel features -->Use EABI。

問題二:
  drivers/video/console/vgacon.c:494: error: `PCIMEM_BASE' undeclared (first use in this function)
  drivers/video/console/vgacon.c:494: error: (Each undeclared identifier is reported only once
解決方法:
  device drivers->
   Graphics support->
      Console display driver support->
         [ ]VGA text console(取消)

 

以上步驟中,省略了內核移植中的nandflash、lcd及yaffs2文件系統的支持,有機會補上去。

     下載到開發板上就可以了,能夠啓動起來,遺憾的是,這個內核沒能啓動我的yaffs2根文件系統。我有點納悶了,不知道錯在哪裏,明明已經讓內核支持了yaffs2文件系統了,但是下載內核及根文件系統後,重新啓動Linux系統,到內核啓動完成,要加載根文件系統的地方就中斷了,具體錯誤如下:


待解決。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章