1. 程式人生 > >freescale i.mx23平臺上移植android2.2-froyo

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

 作者 QQ: 35327864,msn: [email protected],mail: [email protected]
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]

附件patch.tar.bz2可以從http://blogimg.chinaunix.net/blog/upfile2/101130212806.bz2下載。

相關推薦

freescale i.mx23平臺移植android2.2-froyo

 作者 QQ: 35327864,msn: [email protected],mail: [email protected] freescale i.mx233平臺上移植android 2.2 - ethernet移植 i.mx233-android平

如何在i.MX6UL平臺實現硬浮點與軟浮點?

needed dia profile src exc idt pcs readelf adding i.MX 6UltraLite(簡稱為i.MX 6UL)是i.MX6系列的新產品。i.MX 6UltraLite采用單核ARM Cortex-A7,處理器主頻528MHz,采

RTL8723BU在I.MX6 DQ平臺移植

摘要:    在移植時請注意,因為Realtek釋出的移植程式碼和文件不是針對Freescale平臺的,所以首先看一下,目前使用的平臺是否已經支援BT和WIFI功能(可能不是我們要移植的模組)。一般情況下,原廠釋出BSP都支援BT和WIFI功能,也就是說Android OS部

Freescale i.MX 6 MNC平臺移植BT/WIFI驅動

       此專案之前移植到Android6.0.1版本。基本系統可以起來了。現在要調一下WiFi和Bluetooth。此板上用的是Broadcom BCM89335的WiFi和Bluetooth二合一晶片。WiFi通過4線SDIO和SoC相連線,Bluetooth通過U

Android2.2平臺支援多camera(二)

static jint android_hardware_Camera_getNumberOfCameras(JNIEnv *env, jobject thiz){return Camera::getNumberOfCameras();}static void android_hardware_Camera_

Android2.2平臺支援多camera(四)

三、Camera HAL層支援多Camera 1、CameraHardwareInterface.h檔案 Frameworks/base/include/camera/CameraHardwareInterface.h是Camera HAL層對上的介面檔案。由於它的存在,上層

ARM平臺藍芽協議棧Bluez的移植使用和配置(寫的狠不錯) .

目錄(?)[-] 相關說明 網站資源 工作環境 編譯 核心 Bluez Lib / Utils 藍芽硬體初始化及基礎服務啟動 何謂硬體初始化 硬體初始化步驟

基於Windows Sdk 與visual C++2008 在微軟平臺構架自己的語音朗讀引擎(適用於windows 2

本人閒來無事,自行開發了一個小型的語音朗讀引擎,搭建起在微軟平臺上的語音朗讀框架服務體系, 鑑於本人個人力量有限,為了將語音朗讀引擎做的功能更加強悍,強大, 現在將該系統開源,需要原始碼的請在本人CSDN部落格下留下EMail, 本系統屬於系統框架,搭建起一個語音朗讀的引擎服務框架, 在

龍芯Fedora21平臺解決docker 1.12.2退出問題

http://ask.loongnix.org/?/article/80    作業系統版本 loongnix(Fedora21) 20170726及以前版本,安裝docker 1.12.2後,建立容器正常,但是docker stop容器會阻塞住,容器無法正常退

I.mx6s移植wm8960驅動(基於linux3.0.101版本)

注意上面最後的引數:--disable-alsamixer 若不加此引數編譯會報錯:configure error required courses helper header not found 具體原因不清楚!!7.2 編譯make7.3安裝(需要root許可權)sudo make install

Android系統移植(一)-讓android系統在目標平臺執行起來【轉】

Android系統由於用的是linux核心,因此核心移植和嵌入式linux核心移植差異不大,過程如下: (1)移植boot-loader和linux2.6核心到目標平臺上,讓linux核心可以啟動起來,基本的驅動允許正常。此過程完全是嵌入式linux的開發,這裡直接跳過。

linux-2.6.32在mini2440開發板移植(10)之觸控式螢幕工作原理以及驅動程式詳細分析

第二部分輸入核心的作用如下: (1) 呼叫input_register_device() used to 新增裝置,呼叫input_unregister_device() 除去裝置。(下面會結合觸控式螢幕驅動講述) (2) 在/PROC 下產生相應的裝置資訊,下面這個例子即是: /proc/bus/input

ARM平臺藍芽協議棧Bluez的移植使用和配置

作者:劉旭暉 Raymond轉載請註明出處 主頁:http://rgbbones.googlepages.com/ Bluez作為當前最成熟的開源藍芽協議棧,在Linux的各大發行版中已

如何在i.mx6dl開發板移植udev並實現移動裝置的自動掛載

在整個移植過程中,我所使用的操作平臺: host:Ubuntu14.04 LTS board:MCIMX6DL-SDP udev版本:udev100 一、移植udev。 下載udev的原始碼並進行解

Ubuntu下用NDK編譯移植FFmpeg 2.0(配置最新版x264)到Android平臺

將x264配置到ffmpeg中需要先編譯x264,生成靜態庫或動態庫。因為264的靜態庫本身不大(我編譯完成後是1.1M)且考慮到平臺移植問題,這裡選擇的是編譯生成靜態庫。 準備,新建工作空間 (1)建立總目錄FFmpeg-Android eg: mkdir workspace --> cd wor

移植linux-2.6.32到jz2440以支援RT3070無線網絡卡

**********************linux-2.6.32移植到jz2440上的note****************************** 1、修改Makefile 改為 ARCH ?= arm CROSS_COMPILE ?= arm-linux-

嵌入式 hi3518c平臺無線網絡卡rtl8188eu系列網絡卡移植

首先修改driver下驅動檔案中的Makefile檔案: 新增自己的平臺,我的平臺是hi3518c,具體操作如下:#add the new platform hi3518c alter by kj CONFIG_PLATFORM_HI_3518C = y 新增平臺的編譯選項: #add the compi

μC/OS-II 移植筆記 2FreeScale 68HCS12 核微控制器)

本文最初寫於 2012-04-20 於 sohu 部落格,這次部落格搬家一起搬到這裡來。 版權所有,轉載請註明出處。 2.2 OS_CPU_A.S 首先是函式和全域性變數的宣告。 ;*********************************************

Hadoop 2.8 在 windows 平臺的搭建(單節點)

Hadoop 2.0及以後的版本可以直接在windows上跑, 不用cygwin了, 凡是講cygwin的攻略都可以忽略.關於環境變數: 我實驗下來要加的唯一一個環境變數是系統變數裡的Path, 往裡加

【Redis】2、CentOS 7 安裝 redis3.2.3安裝與配置

sync 倉庫 ace /var/ 發現 wan sudo base str 一、redis源碼安裝 【更正】現在最新穩定的版本已經到了3.2.8 截至到2016.8.11,redis最新穩定版本為3.2.3.本篇文章我們就以此版本為基礎,進行相關的講解。 下載redis源