RK3328 LINUX开发者指南

RK3328 LINUX开发者指南,第1张

  通过运行 build 目录下的 mk-uboot.sh 脚本,设定选项为 roc-rk3328-cc

  编译完后输出:

  各个镜像文件的说明如下:

  也可以通过以下文件配置 UBOOT :

  kernel中需要配置,并定义设备树,会涉及到以下文件:

  通过以下命令,完成内核配置,并更新默认配置:

  需要注意,在 make menuconfig 时应进行如下配置:

  配置好后即可编译整个 kernel (脚本文件内部设置了使用 -j4 来编译):

  编译完后输出:

  创建一个大小为 20G 的根文件系统映像文件,将 ubuntu core 解压到该映像中,如果不需要安装过多的软件,可以先设置成 2G ,后期再调整。

  将 qemu-aarch64-static 放到挂载的 rootfs /usr/bin 中,能在 x86_64 主机系统下 chroot 到该 arm64 文件系统中运行:

  用 vim 编辑器打开 sources.list

   chroot 命令用来在指定的根目录下运行指令,在使用 chroot 之后,系统的目录结构将以指定的位置作为 “/” 位置。

  在 rootfs root 用户下设置:

  退出,并卸载文件系统:

  如果想要在创建的根文件系统中安装软件,也可以继续 chroot 到该文件系统中,安装一些常用的软件,比如 "pip" , "numpy" 等,避免复杂的交叉编译环境设置和加快文件系统的成型。

  这样 rootfs.img 里就已经有刚才制作的根目录内容了,但这个 img 文件大小却是定义的镜像的大小,不是文件系统的实际大小,所以还要经过一些处理才能发布。

  检查并查看rootfs.img镜像的大小:

  减小ubuntu.img镜像文件的大小:

  把 Linux 根文件系统映像文件 rootfs 放在 out/ 下,这时 out 目录应包含以下文件:

  该脚本将根据《存储映射》所描述的布局,将分区映像文件写到指定位置,并最终打包成 out/system.img

  如下所示的"parameter.txt"就是按照存储映射布局制作的,只添加了几个必不可少的分区。

  插入 SD 卡,如果 SD 被自动挂载,则先将其卸载。

  安装 pv

  通过检查内核的日志查找 SD 卡的设备文件:

  如果设备文件为 /dev/sdb ,使用 dd 命令进行烧录:

  如果需要将分区镜像写入到 SD 卡,可以运行以下命令:

  也可以运行下面指令,将生成的统一固件 system.img 写入到 SD 卡中:

准备工作

编译 Android 对机器的配置要求较高:

64 位 CPU

16GB 物理内存+交换内存

30GB 空闲的磁盘空间用于构建,源码树另外占用大约 8GB

官方推荐 Ubuntu 12.04 *** 作系统,实际上也可以采用更新的 *** 作系统版本,只需要满足 http://source.android.com/source/building.html 里的软硬件配置即可。

编译环境的初始化可参考 http://source.android.com/source/initializing.html 。

安装 JDK 6:

sudo add-apt-repository ppa:webupd8team/java

sudo apt-get update

sudo apt-get install oracle-java6-installer

Ubuntu 12.04 软件包安装:

sudo apt-get install git gnupg flex bison gperf build-essential \

zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev \

libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 \

g++-multilib mingw32 tofrodos gcc-multilib ia32-libs\

python-markdown libxml2-utils xsltproc zlib1g-dev:i386

Ubuntu 13.10/14.04 软件包安装:

sudo apt-get install git-core gnupg flex bison gperf libsdl1.2-dev \

libesd0-dev libwxgtk2.8-dev squashfs-tools build-essential zip curl \

libncurses5-dev zlib1g-dev pngcrush schedtool libxml2 libxml2-utils \

xsltproc lzop libc6-dev schedtool g++-multilib lib32z1-dev lib32ncurses5-dev \

lib32readline-gplv2-dev gcc-multilib libswitch-perl

安装 ARM 交叉编译工具链和编译内核相关软件包:

sudo apt-get install gcc-arm-linux-gnueabihf \

lzop libncurses5-dev \

libssl1.0.0 libssl-dev

下载 默认版 Android SDK

注意:如果你在 2014-12-11 之前下载过源码,请重新到云盘下载并更新。

由于 SDK 比较大,请选择以下云盘之一下载 firefly-rk3288_android4.4_git_20141211.tar.gz :

百度云盘

Google Drive

下载完成后先验证一下 MD5 码:

$ md5sum /path/to/firefly-rk3288_android4.4_git_20141211.tar.gz

8fe99f519d487ff40c8bc7b5ded62887 firefly-rk3288_android4.4_git_20141211.tar.gz

确认无误后,就可以解压:

mkdir -p ~/proj/firefly-rk3288

cd ~/proj/firefly-rk3288

tar xf /path/to/firefly-rk3288_android4.4_git_20141211.tar.gz

git reset --hard

git remote add bitbucket https://bitbucket.org/T-Firefly/firefly-rk3288.git

以后就可以直接从 bitbucket 处更新:

git pull bitbucket master:master

也可以到 https://bitbucket.org/T-Firefly/firefly-rk3288/commits/branch/master 在线浏览源码。

另外,linux-rockchip 社区搭建了 Git 镜像服务器,详见这里。 如果要下载源码,请用以下命令(可选其它镜像服务器):

git clone -b firefly/master git://git.us.linux-rockchip.org/rk3288_r-box_android4.4.2_sdk.git

下载 PAD 版 Android SDK

PAD版SDK是具有PAD特性的SDK,可用于调屏,TP,支持横竖屏显示等。

由于 SDK 比较大,请选择以下云盘之一下载firefly-rk3288_pad_android4.4_git_20141218.tar.gz

百度网盘

Google Drive

下载完成后先验证一下 MD5 码:

$ md5sum /path/to/firefly-rk3288_pad_android4.4_git_20141218.tar.gz

4ba44765fa649bc5cddadd8b349aa8af firefly-rk3288_pad_android4.4_git_20141218.tar.gz

确认无误后,就可以解压: mkdir -p ~/proj/firefly-rk3288_pad

cd ~/proj/firefly-rk3288_pad

tar xf /path/to/firefly-rk3288_pad_android4.4_git_20141218.tar.gz

git reset --hard

git remote add bitbucket https://bitbucket.org/T-Firefly/firefly-rk3288.git

以后就可以直接从 bitbucket 处更新:

git pull bitbucket pad:pad

也可以到 https://bitbucket.org/T-Firefly/firefly-rk3288/commits/branch/pad 在线浏览源码。

编译内核

编译正式版(0930)开发板的内核:

cd ~/proj/firefly-rk3288/kernel

make firefly-rk3288_defconfig

make -j8 firefly-rk3288.img

编译公测版(0809)开发板的内核:

cd ~/proj/firefly-rk3288/kernel

make firefly-rk3288_beta_defconfig

make -j8 firefly-rk3288_beta.img

编译 Android

编译 Android:

cd ~/proj/firefly-rk3288

make -j8

./mkimage.sh

烧写分区映像

上一步骤的 ./mkimage.sh 会重新打包 boot.img 和 system.img, 并将其它相关的映像文件拷贝到目录 rockdev/Image-rk3288/ 中。以下列出一般固件用到的映像文件:

boot.img :Android 的初始文件映像,负责初始化并加载 system 分区。

kernel.img :内核映像。

misc.img :misc 分区映像,负责启动模式切换和急救模式的参数传递。

recovery.img :急救模式映像。

resource.img :资源映像,内含开机图片和内核的设备树信息。

system.img :Android 的 system 分区映像,ext4 文件系统格式。

请参照 如何升级固件 一文来烧写分区映像文件。

如果使用的是 Windows 系统,将上述映像文件拷贝到 AndroidTool (Windows 下的固件升级工具)的 rockdev\Image 目录中,之后参照升级文档烧写分区映像即可,这样的好处是使用默认配置即可,不用修改文件的路径。

打包成统一固件 update.img

在 Windows 下打包统一固件 update.img 很简单,按上一步骤将文件拷贝到 AndroidTool 的 rockdev\Image 目录中,然后运行 rockdev 目录下的mkupdate.bat 批处理文件即可创建 update.img 并存放到 rockdev\Image 目录里。

update.img 方便固件的发布,供终端用户升级系统使用。一般开发时使用分区映像比较方便。

FTP服务有好多种,本文是使用的vsftp

首先要确定你的电脑上FTP服务的状态,使用如下命令:

sudo service vsftpd status

如果出现如下提示:

Redirecting to /bin/systemctl status vsftpd.service

vsftpd.service

Loaded: error (Reason: No such file or directory)

Active: inactive (dead)

说明你的主机上没有安装ftp服务,这时你就要安装它,请查看第二步:安装ftp。

如果出现如下提示:

Redirecting to /bin/systemctl status vsftpd.service

vsftpd.service – Vsftpd ftp daemon

Loaded: loaded (/usr/lib/systemd/system/vsftpd.servicedisabled)

Active: inactive (dead)

说明你的ftp服务没开启,此时按照第三步:开启ftp服务。

安装ftp命令:

如果你用的是redhat,fedora,centos等系列linux发行版,那么敲入以下命令:

sudo yum install vsftpd

如果你使用的是debian,ubuntu,linux mint等系列的linux发行版,那么敲入以下命令:

sudo apt-get install vsftpd

然后按照提示,安装就好了。

ftp安装完成后还不能使用,需要配置一下相应的文件才可以。

sudo vim /etc/vsftpd.conf(使用vim在终端打开)

增加:write_enable=YES #允许写入(上传)

设置完成后,我们要给ftp设置用户名和密码才可以访问到它:

设置用户名为myftp:

sudo useradd myftp

设置myftp的密码:

sudo passwd myftp

然后会让你输入两次密码,只要两次密码都一样,就会通过。

在终端敲入以下命令:

sudo service vsftpd start

执行完命令后,用第一步:查看ftp服务状态的命令,如果出现以下提示(有绿色标出来的字体):

vsftpd.service – Vsftpd ftp daemon

Loaded: loaded (/usr/lib/systemd/system/vsftpd.servicedisabled)

Active: active (running) since Sun 2013-04-07 13:43:11 CST15s ago

Process: 11230 ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=0/SUCCESS)

Main PID: 11231 (vsftpd)

CGroup: name=systemd:/system/vsftpd.service

└─11231 /usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf

说明你的ftp服务已经启动了。如果失败来的话,那试着卸载一下(看第六步:卸载ftp服务)再安装(第二部:安装ftp服务)。

在另一台电脑或者虚拟机里,使用任何的ftp工具(FlashFXP等)或者直接用ftp命令就可以访问到你主机的ftp了。

ftp://192.168.1.102/

如果你使用的是debian,ubuntu,linux mint等系列的linux发行版,那么敲入以下命令:

sudo apt-get –purge remove vsftpd

就可以卸载了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7492557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-06
下一篇 2023-04-06

发表评论

登录后才能评论

评论列表(0条)

保存