在Mac上为Orange Pi 编译Android4.4

背景

前两天成功的为Orange pi 编译了USB无线网卡驱动,想起几个月前尝试在Mac下为Orange pi编译Android 4.4,由于环境原因失败了,心有不甘,于是想再重新尝试编译一次,并将无线网卡驱动集成进安卓中。

步骤

1.第一步当然还是获取源码了,不过源码不用去谷歌和git上获取,Orangepi已经有打包好的包在百度云了,地址:Android源码

2.搭建环境,因为是Android 4.4 我们需要使用jdk1.6,下载地址:Jdk1.6 for OS X

3.使用jenv管理多版本jdk 使用方法

4.编译内核,因为Orange pi的内核编译工具链无法在Mac下使用,我们需要在ubuntu下编译内核,过程比较简单,也没有出现问题,步骤省略。

5.将编译出的内核文件复制到安卓源码上层目录名为lichee对应的文件夹中,具体可看device/softwinner/common/vendorsetup.sh脚本,其中有以下内容:

function extract-bsp()
{
    LICHEE_DIR=$ANDROID_BUILD_TOP/../lichee
    CHIP_VERSION=$(get_build_var SW_CHIP_PLATFORM)
    if [ "$CHIP_VERSION" = "H8" ];then
        LINUXOUT_DIR=$LICHEE_DIR/out/sun8iw6p1/android/common
    elif [ "$CHIP_VERSION" = "H3" ];then
        LINUXOUT_DIR=$LICHEE_DIR/out/sun8iw7p1/android/common
    elif [ "$CHIP_VERSION" = "A80" ];then
        LINUXOUT_DIR=$LICHEE_DIR/out/sun9iw1p1/android/common
    else
        echo "unknow CHIP_VERSION $CHIP_VERSION"
        return
    fi
    LINUXOUT_MODULE_DIR=$LINUXOUT_DIR/lib/modules/*/*
    CURDIR=$PWD

    cd $DEVICE

    #extract kernel
    if [ -f kernel ] ; then
        rm kernel
    fi
    cp $LINUXOUT_DIR/bImage kernel
    echo "$DEVICE/bImage copied!"

    #extract linux modules
    if [ -d modules ] ; then
        rm -rf modules
    fi
    mkdir -p modules/modules
    cp -rf $LINUXOUT_MODULE_DIR modules/modules
    echo "$DEVICE/modules copied!"
    chmod 0755 modules/modules/*

    # create modules.mk
        (cat << EOF) > ./modules/modules.mk
    # modules.mk generate by extract-files.sh, do not edit it.
    PRODUCT_COPY_FILES += \\
        \$(call find-copy-subdir-files,*,\$(LOCAL_PATH)/modules,system/vendor/modules)
    EOF
    
        cd $CURDIR
}

5.编写编译脚本(非必须,为了省去每次编译需要手敲几次命令),脚本放置在源码根目录,命名为build_opi.sh,增加执行权限,脚本内容如下

#!/bin/bash
source build/envsetup.sh
lunch dolphin_fvd_p1-eng
extract-bsp
export MACOSX_DEPLOYMENT_TARGET=10.8
make -j4

6.执行命令,开始编译

./build_opi.sh

7.遇见错误后,对应下一节的错误解决办法解决后继续编译。

8.还是出现了错误2,进行了各种尝试依旧没有解决,看来还是得在Ubuntu的虚拟机上编译了。

9.在编译成功后,会在下一篇文章中记录添加无线网卡驱动的过程

错误解决办法

1.编译过程出现以下错误

<built-in>:0: error: Unknown value ‘10.11’ of -mmacosx-version-min<built-i

解决办法

从git下载 10.8的SDK,地址:https://github.com/huijizyf/MacOSXSDKs
将MacOSX10.8.sdk 文件夹放入/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs下
终端内执行以下命令:
    sudo vi /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Info.plist
将:
<key>MinimumSDKVersion</key>
<string>10.11</string>
修改为:
<key>MinimumSDKVersion</key>
<string>10.8</string>

2.出现以下错误

clang: error: unsupported option '--gdwarf2'

解决办法:

终端执行以下命令:
    find . -name "*.h" |xargs grep gdwarf2
发现以下4个文件中有这样的描述:/* Define if your assembler supports the --gdwarf2 option. */

prebuilts/gcc/darwin-x86/arm/arm-eabi-4.6/lib/gcc/arm-eabi/4.6.x-google/plugin/include/auto-host.h
prebuilts/gcc/darwin-x86/arm/arm-linux-androideabi-4.6/lib/gcc/arm-linux-androideabi/4.6.x-google/plugin/include/auto-host.h
prebuilts/gcc/linux-x86/arm/arm-eabi-4.6/lib/gcc/arm-eabi/4.6.x-google/plugin/include/auto-host.h
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/lib/gcc/arm-linux-androideabi/4.6.x-google/plugin/include/auto-host.h

对以上五个文件进行修改
image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,438评论 5 461
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,235评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,635评论 0 323
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,439评论 1 266
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,259评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,248评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,644评论 3 384
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,308评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,603评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,670评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,429评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,291评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,678评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,962评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,241评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,622评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,819评论 2 335

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,103评论 25 707
  • 我们说的Linux其实指的就是 内核(kernel)而已。这个内核控制你主机的所有硬件并提供系统所有的功能,所以它...
    Zhang21阅读 7,356评论 0 18
  • 15年,上半年我大三,下半年我大四。曾经看无数学长学姐,在大四那年奔波在各大招聘中,又或者四处旅行。而转眼间我...
    思思培阅读 111评论 0 0
  • 今天放学后,戴老师又带我们练习写字,写白 的 又 和这几个字时,戴老师给我的字提出了几个问题,我知道了还要仔细...
    张佳艺我的宝贝阅读 300评论 0 1