天天看點

freescale i.mx23平台上移植android2.2-froyo - ethernet移植

freescale i.mx233平台上移植android 2.2 - ethernet移植

i.mx233-android平台上以太網卡的移植主要參考了android-x86項目。網址為:http://www.android-x86.org/getsourcecode 。

主要分為如下幾個部分:

1,linux 核心驅動,這個部分簡單的說一下。預設的mx233配置就是支援的,mx233是通過usb接以太網的,隻需要把相應的以子產品方式編譯的驅動改成編譯進核心。我将.config與預設的arch/arm/configs/imx23evk_defconfig比較了一下,改了如下:

CONFIG_MII=y

CONFIG_USB_USBNET=y

CONFIG_USB_NET_AX8817X=y

CONFIG_USB_NET_CDCETHER=y

CONFIG_USB_NET_NET1080=y

CONFIG_USB_NET_CDC_SUBSET=y

CONFIG_USB_BELKIN=y

CONFIG_USB_ARMLINUX=y

CONFIG_USB_NET_ZAURUS=y

CONFIG_USB_EHCI_HCD=y

CONFIG_USB_GADGET=y

CONFIG_USB_ARC=y

CONFIG_USB_ETH=y

2,下載下傳android-x86代碼

    a) 我們将要移植的是android-2.2的版本,是以我們必須得到android-x86在2.2版本上的内容。

        mkdir android-x86

        cd android-x86

        repo init -u git://git.android-x86.org/manifest.git -b froyo-x86

    b) 上一步初始化了android-x86,接下來你可以repo sync,但是我發現這個伺服器很慢,這樣子很難成功。是以我就check out我們需要的幾個檔案夾,如下:

        repo sync platform/build

        repo sync platform/frameworks/base

        repo sync platform/packages/apps/Settings

    c) 之後就是将ethernet部分内容移植到自己的android源碼上去。本文以下的内容隻是此過程的記錄。

    d) 據網友xiyangfan 介紹repo init -u git://android-x86.git.sf.net/gitroot/android-x86/manifest.git -b froyo-x86會比較快,建議大家使用這個位址!!

3,android源碼目錄下frameworks/base下的改動

    a) frameworks/base/core/java/android/app/ContextImpl.java

    b) frameworks/base/core/java/android/content/Context.java

    c) frameworks/base/core/java/android/net/ConnectivityManager.java

    d) frameworks/base/core/java/android/net/NetworkUtils.java

    e) frameworks/base/core/java/android/provider/Settings.java

    f) frameworks/base/core/jni/Android.mk

    g) frameworks/base/core/jni/AndroidRuntime.cpp

    h) +frameworks/base/core/jni/android_net_ethernet.cpp

    i) +frameworks/base/core/res/res/drawable/connect_creating.png

       +frameworks/base/core/res/res/drawable/connect_established.png

       +frameworks/base/core/res/res/drawable/connect_no.png

    j) +frameworks/base/core/res/res/drawable-hdpi/connect_creating.png

       +frameworks/base/core/res/res/drawable-hdpi/connect_established.png

       +frameworks/base/core/res/res/drawable-hdpi/connect_no.png

    k) +frameworks/base/core/res/res/drawable-mdpi/connect_creating.png

       +frameworks/base/core/res/res/drawable-mdpi/connect_established.png

       +frameworks/base/core/res/res/drawable-mdpi/connect_no.png

    l) frameworks/base/core/res/res/values/arrays.xml

    m) frameworks/base/core/res/res/values/config.xml

    n) +frameworks/base/ethernet

    o) frameworks/base/services/java/com/android/server/status/StatusBarPolicy.java

    p) frameworks/base/services/java/com/android/server/ConnectivityService.java

    q) +frameworks/base/services/java/com/android/server/EthernetService.java

    r) frameworks/base/Android.mk

4,android源碼目錄下packages/apps/Settings下的改動

    a) +packages/apps/Settings/res/drawable-hdpi/ic_settings_ethernet.png

    b) +packages/apps/Settings/res/drawable-mdpi/ic_settings_ethernet.png

    c) +packages/apps/Settings/res/layout/eth_configure.xml

    d) packages/apps/Settings/res/values/strings.xml

    e) +packages/apps/Settings/res/xml/ethernet_settings.xml

    f) packages/apps/Settings/res/xml/settings.xml

    g) +packages/apps/Settings/src/com/android/settings/ethernet/

    h) +packages/apps/Settings/src/com/android/settings/EthernetSettings.java

    i) packages/apps/Settings/AndroidManifest.xml

5,build目錄的改動

    a) build/core/pathmap.mk

        在FRAMEWORKS_BASE_SUBDIRS中加入ethernet,可以添加在telephony後

6,目标闆檔案系統中init.rc的改動

    a) 在建立data子目錄的一系列指令後添加如下:

    mkdir /data/misc/dhcp 0777 dhcp dhcp

    chown dhcp dhcp /data/misc/dhcp

    b) 在檔案最後添加如下代碼,啟動dhcpd服務

    service dhcpcd /system/bin/dhcpcd -o domain_name_servers -ABKL

        disabled

        oneshot

7,目标闆檔案系統的改動,

    将 system分區中etc/dhcpcd/dhcpcd-run-hooks 改為可執行

    chmod +x etc/dhcpcd/dhcpcd-run-hooks

8,附件裡有build,frameworks/base,packages/apps/Settings的patch,是基于android主源碼樹 diff的。其中不僅僅包含ethernet部分,是以可能有點雜,不大好看,還是建議大家自行根據android-x86進行移植,有問題歡迎聯系 [email protected]

本文來自CSDN部落格,轉載請标明出處:http://blog.csdn.net/fgwf1/archive/2010/12/02/6049416.aspx