8,460
个编辑
更改
→Android 及 Linux 源码编译
sudo update-alternatives --config javaws<br>
sudo update-alternatives --config javadoc
7) 确定 java 版本为 1.6,可以使用如下命令: java -version<br><br>
[[Image:I96-31.png]]<br><br>
=== 安装平台支持软件 ===
$ sudo apt-get install git gnupg flex bison gperf build-essential \ <br> zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \ <br> libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \ <br> libgl1-mesa-dev g++-multilib mingw32 tofrodos \<br> python-markdown libxml2-utils xsltproc zlib1g-dev:i386<br><br> $ sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so<br>
=== 下载源码 ===
下载分两种,一种为 MEGA 上下载,另一种为百度云。<br><br>
1)如果从 MEGA 上下载,请按如下进行解压下载好压缩包<br>
<span style=" color:red;">$cat OrangePi_2G-IOT* > tar.tar.gz </span><br><span style=" color:red;">$ tar –xvzf tar.tar.gz </span><br>
解压出来得到 trunk 目录,使用终端进入该目录<br>
如果从百度云上下载,下载完后进行解压,即可获得 trunk 目录。<br><br>
在编译 Android 之前,无论 Tcard Startup 还是 Nand Startup,都需要编译modem。modem 核是 misp 架构,需要使用对应的交叉编译工具。交叉编译工具请从移交任务压缩包进行解压,可以使用如下命令:<br>
$ tar -xvjf OrangePi_Doc.tar.bz2<br> $ cd Platform/RDA/modem-cross<br> $ tar -xvzf modem-cross-compiler-linux.tar.gz<br>
$ cd cross-compiler
获得相应的工具之后,对 modem 的交叉编译工具进行安装,按如下步骤进行安装<br>
步骤 1:安装交叉编译工具<br>
$ sudo tar -xzf ~/modem-cross-compiler-linux.tar.gz -C /opt<br> $ ls /opt/cross-compiler<br> $ sudo chown -R root:root /opt/cross-compiler<br>
$ sudo chmod +x /opt/cross-compiler/bin/*
<br>
步骤 2:环境编译<br>
$ sudo sh -c 'echo export PATH=$PATH:/opt/cross-compiler/bin > /etc/profile.d/cross-compiler.sh'<br> $ sudo sh -c 'echo /opt/cross-compiler/lib > /etc/ld.so.conf.d/cross-compiler.conf'<br> $ sudo ldconfig -v<br> $ sudo ldconfig -v | grep '/opt/cross-compiler/lib'<br>
$ mips-elf-gcc -v
5)T 卡启动方式更新镜像<br>
T 卡方式启动的 Android 源码编译,在编译完成之后,在*/trunk/out/target/product/slt**/ 目录下会生成对应的镜像, 使用如下命令进行更新:<br>
sudo dd if=bootloader.img of=/dev/sdc bs=512 seek=256 count=4096 && sync <br> sudo dd if=modem.img of=/dev/sdc bs=512 seek=12544 count=8192 && sync <br> sudo dd if=boot.img of=/dev/sdc bs=512 seek=20736 count=16384 && sync <br> sudo dd if=recovery.img of=/dev/sdc bs=512 seek=37120 count=20480 && sync<br> sudo dd if=system.ext4.img of=/dev/sdc bs=512 seek=57600 count=512000 && sync <br>
sudo dd if=vendor.ext4.img of=/dev/sdc bs=512 seek=569600 count=512000 && sync
=== Linux 源码编译 ===
OrangePi i96 2G-IOT 的 Linux 源码已经更新到 github 上,客户可以从 github 上获得最新的源代码。Linux 源码的编译需要在 Linux 下进行,请先准备一台 Linux 电脑,推荐使用 Ubuntu 16.04 系统。准备好电脑之后,按如下步骤进行操作。<br>* 1) 下载 Linux 源码<br>
Linux 源码已经同步到 github 上,请使用如下命令进行下载:<br>
Github 链接:https链接:<br>https://github.com/OrangePiLibra/OrangePi<br>客户也可以使用 git 命令进行同步,如下:git 命令进行同步,如下:<br>git clone https://github.com/OrangePiLibra/OrangePi.git<br>* 2) 编译源码<br>
客户在获得源码之后,进入源码目录,可使用如下命令:cd */OrangePi <br>
进入目录之后,运行脚本:./Build_OrangePi.sh<br>
继续在界面中选择 “OrangePi i96”, 并按回车键进行源码更新<br><br>
[[Image:I96-35.png]]<br><br>
至此,系统会更新 OrangePi i96 2G-IOT 的源代码及相关编译脚本。该操作会花费40 分钟左右,请耐心等待。更新完最新的代码之后,系统会在和 OrangePi 同级的目录下生成 OrangePi_i96 OrangePiRDA 目录。该目录包含 Linux 源码和编译脚本,如下图:<br><br>
[[Image:I96-36.png]]<br><br>
[[Image:I96-37.png]]<br><br>
如果是第一次运行该脚本,系统会自动安装必须的开发工具,请确保网络的联通。<br><br>
[[Image:I96-42.png]]<br><br>
通过编译完上面的步骤之后,客户可以将新的内核和模块更新到开发板上运行。在更新之前,请按第二章“烧写 Linux 镜像”的教程在 SD 卡上烧写一个 Linux 发行版镜像。<br>
烧写完成之后,将 SD 卡重新插入到电脑上,此时,电脑会将 SD 卡识别为两个分区,第一个为 BOOT 分区,里面存储着 uboot,kernel 和 Ramdisk 等文件。第二个为 rootfs 分区,该分区包含根文件系统。<br>
sudo rm -rf */rootfs/lib/modules/3.xxx<br>
新生成的模块拷贝到 rootfs 分区,使用如下命令:<br>
<span style=" color:red;">sudo cp -rf */OrangePi_i96/output/lib/modules/3.xxx*/rootfs/lib/modules/ sync<br>
至此,内核和模块更新完成。<br>
将烧录好的 SD 卡插入 OrangePi,将板子上跳线帽连接图下图,开机即可进入 Linux 系统。</span><br><br>[[Image:I962GIoT-4347.png]]<br><br>
== Orange Pi 驱动程序开发 ==