Tiny4412 开发板 编译环境搭建【转】

发布者:码农创想家最新更新时间:2022-01-13 来源: eefocus关键字:Tiny4412  开发板 手机看文章 扫描二维码
随时随地手机看文章
  1. /************************************************************************************** 

  2. * Function     : Tiny4412 开发板 编译环境搭建

  3. * Create Date  : 2016/04/04 

  4. * Author       : NTSK13 

  5. * Email        : beijiwei@qq.com 

  6. * Copyright    : 欢迎大家和我一起交流学习,转载请保持文章的完整性。 

  7.                  任何单位和个人不经本人书面允许不得用于商业用途。                

  8. ***************************************************************************************


 

我使用的是VirtualBox +Ubuntu 

VirtualBox 版本 :   5.0.16 r105871 (使用最新版即可)

Ubuntu  :   ubuntu-15.10-desktop-amd64.iso

 

在安装的时候安装语言选择 English,不建议选择中文,方便开发。

在安装的时候,虚拟机不要联网。

配置用户的时候设定一个密码,比如1234.

记住这个密码,以后设置root登录的时候会用到这个密码。

建议有空间的选择70GB以上的空间,、我的62GB,编译完之后就剩余1GB 左右了。

以下是配置:

<1> 以root用户登录

 

1、先解除root锁定,为root用户设置密码

打开终端输入:sudo passwd root

 

Password: <--- 输入你当前用户的密码,就是之前安装Ubuntu的那个密码1234

Enter new UNIX password: <--- 新的Root用户密码

Retype new UNIX password: <--- 重复新的Root用户密码

passwd:已成功更新密码

 

2设置root自动登录

  sudo gedit /usr/share/lightdm/lightdm.conf.d/50-ubuntu.conf

 

文件内容最终为:

[SeatDefaults]

autologin-user=root   #启动后以root身份自动登录

greeter-session=unity-greeter

user-session=ubuntu

在刚修改完root权限自动登录后,发现开机出现以下提示:

Error found when loading /root/.profile

stdin:is not a tty

…………

解决方法:在终端中用命令gedit    /root/.profile,打开文件后找到“mesg n”,

将其更改为“tty -s && mesg n”。

 

<二>虚拟机窗口大小问题 和共享文件夹的设置

 

这个需要安装Guest Additions(增强包) 在VirtualBox 安装目录下有这个iso

1.安装:VirtualBoxGuestAddition.iso文件

可以在VirtualBox的安装目录下找到。

 直接在虚拟机的主菜单上点击“安装增强功能”,Unbuntu会自动挂载一个iso。

打开终端,cd /media/cdrom0目录下,运行sudo ./VBoxLinuxAdditions-x86.run。待完整的出现下面的信息后表示安装成功了。

 

Verifying archive integrity... All good.

Uncompressing VirtualBox 3.0.4 Guest Additions for Linux

 

installation......................................................................................................

..................................................................................................................

......

VirtualBox 3.0.4 Guest Additions installation

Building the VirtualBox Guest Additions kernel module...

Building the shared folder support kernel module...

Building the drm support kernel module...

Installing the VirtualBox Guest Additions...

Successfully installed the VirtualBox Guest Additions.

You must restart your guest system in order to complete the installation.

 

装完重启之后,鼠标就可以在Host主机系统和虚拟系统之间自由移动而不需按右边Ctrl键切换了,而且虚拟系统的窗口可以拉动,

位置合适的话Ubuntu桌面会自动全屏显示。如果开启了与Host系统共享剪贴板的话,还可以在Host系统与虚拟系统之间进行复制/剪切和粘贴。

 

2.设置共享文件夹

重启完成后点击"设备" ->分配数据空间,添加一个共享文件夹,选项固定和临时是指该文件夹是否是持久的。

共享名可以任取一个自己喜欢的,比如"vboxshd",尽量使用英文名称。  

 D:Vboxshd ,这个是windows 的目录,以后共享文件可以放在这个路径下。

 

3.挂载共享文件夹

 

若要使用共享文件夹功能,必须安装linux guest additions,安装增强功能,.如果你不想每一次手动挂载,可以使用以下方法,在系统启动时执行挂接脚本,成功自动挂接

#  gedit /etc/rc.local

1. 在文件的最后加入上面手动挂接的命令:

mount -t vboxsf   vboxshd   /mnt/shd    // vboxshd  是共享数据空间的名称

2.  cd /mnt/  

      mkdir shd

 注意:一定要在mount之前,确定已经加载了vboxsf模块。

如果不加载的话,会出现mount出错的情况。

/sbin/mount.vboxsf: mounting failed with the error: No such device

 

Ubuntu启动后 一般会在 /media/ 目录下挂载共享文件夹。


<三>添加国内 Ubuntu 源

如果不添加,接下来安装 Android 编译需要的工具的时候,有几个无法安装。

cp /etc/apt/sources.list /etc/apt/sources.list_bak

gedit /etc/apt/sources.list

在最后加上:

 

deb http://mirrors.163.com/ubuntu/ wily main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ wily-security main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ wily-updates main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ wily-proposed main restricted universe multiverse

deb http://mirrors.163.com/ubuntu/ wily-backports main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ wily main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ wily-security main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ wily-updates main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ wily-proposed main restricted universe multiverse

deb-src http://mirrors.163.com/ubuntu/ wily-backports main restricted universe multiverse


之后,sudo apt-get update

 

加其他国内源也是一样的方法。


<四>安装android源代码编译所需的软件包

Ubuntu 默认安装后是不带软件开发相关的组件的,因此需要先安装一系列的软件开发组件, 
请先保存你的电脑能正常访问互联网络。  
        
      第一步,先从Tiny4412 光盘中拷贝  tools   目录下的  ubuntu   目录到tmp  。

      第二步,安装jdk6 :  
      # cd /tmp/ubuntu/jdk6/  
      # chmod 755 install-sun-java6.sh    
      # ./install-sun-java6.sh    
        
        
      第三步,通过执行install-devel-packages.sh 脚本,联网安装软件开发相关的软件包:  
      # cd /tmp/ubuntu/  
      # chmod 755 install-devel-packages.sh  
      # ./ install-devel-packages.sh  
      中途会询问是否下载软件包,输入Y  回车即可。

 

最后一步,Android5.0.2 的编译 需要使用的是openjdk-7-jdk,

   但是,friend 官方没提这个事情,坑。。。

   apt-get install openjdk-7-jdk

之后:执行./ install-openjdk7,sh

附送一个shell 脚本 install-openjdk7,sh 来设置 Java jdk:

=================================================================================================================================

#!/bin/sh

# Update symbolic links for Java
update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/java-7-openjdk-amd64/bin/java" 1
update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/java-7-openjdk-amd64/bin/javac" 1
update-alternatives --install "/usr/bin/javadoc" "javadoc" "/usr/lib/jvm/java-7-openjdk-amd64/bin/javadoc" 1
update-alternatives --install "/usr/lib/mozilla/plugins/libjavaplugin.so" "mozilla-javaplugin.so" "/usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/libnpjp2.so" 1
update-alternatives --install "/usr/bin/javaws" "javaws" "/usr/lib/jvm/java-7-openjdk-amd64/bin/javaws" 1
update-alternatives --install "/usr/bin/jar" "jar" "/usr/lib/jvm/java-7-openjdk-amd64/bin/jar" 1

# Choose the java you installed as default 
update-alternatives --config java
update-alternatives --config javac
update-alternatives --config javadoc
update-alternatives --config mozilla-javaplugin.so
update-alternatives --config javaws
update-alternatives --config jar

# Verify installation
java -version
javac -version

==============================================================================================================

<五>安装交叉编译器GCC

 

使用的是官方的 arm-linux-gcc-4.5.1  (和Mini210  相同),它在编译内核时会自动采用 armv7 
指令集,支持硬浮点运算,下面是安装它的详细步骤。  


      Step1:将光盘Android  目录中的arm-linux-gcc-4.5.1-v6-vfp-YYYYMMDD.tgz 复制到/tmp  目 
录,然后进入到该目录,执行解压命令:  
      #cd /tmp  
      #tar xvzf arm-linux-gcc-4.5.1-v6-vfp-YYYYMMDD.tgz    –C /      
      注意:C 后面有个空格,并且C 是大写的,它是英文单词“Change ”的第一个字母,在此 
是改变目录的意思。  
      执行该命令,将把arm-linux-gcc 安装到/opt/FriendlyARM/toolschain/4.5.1  目录

 

Step2:把编译器路径加入系统环境变量,运行命令  
       #gedit   ~/.bashrc  
       编辑~/.bashrc            文件,注意“bashrc ”前面有一个“. ”,修改最后一行为 export  
PATH=$PATH:/opt/FriendlyARM/toolschain/4.5.1/bin ,注意路径一定要写对,否则将不会有效。  
       保存退出。  

重新登录系统 ,使以上设置生效,在命令行输入  
arm-linux-gcc –v ,会出现GCC 相关信息,这说明交叉编译环境已经成功安装

 

<六>解压安装Android  内核源代码  并编译:

 在工作目录/opt/FriendlyARM/tiny4412/android 中执行:  
      #cd /opt/FriendlyARM/tiny4412/android  
      #tar xvzf /tmp/Android-5.0.2/linux-3.0.86-YYYYMMDD.tgz  
      将创建生成linux-3.0.86  目录,里面包含了完整的内核源代码  
      说明:YYYYMMDD 是发行更新日期标志,请以光盘中实际日期尾缀为准。  
        
      (2)解压安装Android 源代码包  
      在工作目录/opt/FriendlyARM/tiny4412/android 中执行:  
      #cd /opt/FriendlyARM/tiny4412/android  
      #tar xvzf /tmp/Android/Android-5.0.2/android-5.0.2-fs-YYYYMMDD.tar.gz  
      将创建android-5.0.2  目录。  
      说明:YYYYMMDD 是发行或更新日期标志,请以光盘中实际日期尾缀为准。  
        ps: android-5.0.2  源码放在那里都无所谓,因为编译工具都加入到 环境变量里边了。

我把源码放在了 /root/aa文件夹下,fandroid目录中,


android5 就是android5.0.2 源码目录,kernel 是Linux3.0.86 内核 源码 目录。

注意还有两个 编译脚本 bandroid.sh 和 bernel.sh 分别是 android 和kernel 的编译脚本.

编译的时候直接 

cd /home/fandroid

./bandroid.sh  和 ./bkernel.sh 就OK了。

这两个文件记得加X权限。

 

自己写的 bandroid.sh:

======================================================================================

set -e -o pipefail
exec > >(tee android.log)
exec 2>&1

cd ./android5
. setenv
make -j4
./gen-img.sh


rm -rf /media/sf_vboxshd/bin/
mkdir /media/sf_vboxshd/bin/
cd ..
mv ./android5/*.img /media/sf_vboxshd/bin/
mv ./kernel/arch/arm/boot/zImage /media/sf_vboxshd/bin/

======================================================================================

bkernel.sh

======================================================================================

set -e -o pipefail
exec > >(tee kernel.log)
exec 2>&1


cd ./kernel
cp tiny4412_android_defconfig  .config
make -j4

======================================================================================

编译 android 的时候 可能会遇到如下问题:

----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

[1] [2]
关键字:Tiny4412  开发板 引用地址:Tiny4412 开发板 编译环境搭建【转】

上一篇:tiny4412 裸机程序 五、控制icache
下一篇:tiny4412 裸机程序 六、重定位代码到IRAM+0x8000【转】

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved