视壮BBS

   登录   |   注册   |

VS-RK3XXX Ubuntu系统编译环境安装说明

141

主题

154

帖子

851

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
851
发表于 2018-3-6 17:27:15     
编译 Android 对机器的配置要求较高:
  • 64 位 CPU
  • 16GB 物理内存+交换内存
  • 30GB 空闲的磁盘空间用于构建,源码树另外占用大约 8GB
谷歌官方推荐 64 位的 Ubuntu 12.04 操作系统,但实际上也可以采用更新的 64 位的操作系统版本,只需要满足 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


其他请参考编译文档说明资料
回复

使用道具 举报

141

主题

154

帖子

851

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
851
发表于 2018-3-6 18:09:25     
Ubuntu16.04如何集成gstreamer的插件mpp实现硬件解码?1. 创建基本的ubuntu1604根文件系统
    按照帖子http://bbs.videostrong.com/forum.php?mod=viewthread&tid=86&extra=page%3D1中的介绍,可做成能够启动的rootfs。
2. 下载硬件解码/wifi蓝牙相关的安装包
    官方下载:https://github.com/rockchip-linux/rk-rootfs-build.git
    用git克隆下来即可,后面要用到。
3. 下载依赖包及工具
    网盘共享中有后面步骤需要用的的安装包以及update升级包,还有ch-mount.sh和mkimage-ubuntu-1604.sh两个脚本。
    将pkg.tar.bz2下载下来,并解压。将脚本也一并下载下来。

4. 当前目录状态如下:
    └── rk3288
        ├── linux-rootfs
        │  ├── ch-mount.sh
        │  ├── linux-rootfs-ubuntu-1604.tar.bz2
        │  └── mkimage-ubuntu-1604.sh
        ├── pkg
        │  ├── 01_dep
        │  ├── 02_dep
        │  ├── 03_dep
        │  ├── alsa-utils_1.1.3-1ubuntu1_armhf.deb
        │  ├── gstreamer1.0-alsa_1.10.4-1ubuntu1_armhf.deb
        │  ├── gstreamer1.0-plugins-bad_1.10.4-1ubuntu1_armhf.deb
        │  ├── gstreamer1.0-plugins-base_1.10.4-1ubuntu1_armhf.deb
        │  ├── gstreamer1.0-plugins-good_1.10.4-1ubuntu1_armhf.deb
        │  └── gstreamer1.0-tools_1.10.4-1_armhf.deb
        └── rk-rootfs-build
            ├── mk-base-debian.sh
            ├── mk-image.sh
            ├── mk-rootfs.sh
            ├── overlay
            ├── overlay-debug
            ├── overlay-firmware
            ├── packages
            ├── readme.md
            └── ubuntu-build-service

    其中 linux-rootfs-ubuntu-1604.tar.bz2是基于ubuntu-base-16.04-core-armhf制作的rootfs,在此基础上安装wifi驱动和硬件解码的gstreamer1.0

5. 解压 linux-rootfs-ubuntu-1604.tar.bz2, 将官方rk-rootfs-build里面的相关文件及下载的依赖库文件复制到解压后的根文件系统里面
    $sudo tar -xvpf  linux-rootfs-ubuntu-1604.tar.bz2
    $sudo cp -rf ../rk-rootfs-build/overlay/* linux-rootfs-ubuntu-1604 // 此步是系统初始化配置和一些service配置
    $sudo cp -rf ../rk-rootfs-build/overlay-debug/* linux-rootfs-ubuntu-1604 // 此步可以省略,这里面都是一些测试脚本和qt例子,大家可以参考使用
    $sudo cp -rf ../rk-rootfs-build/overlay-firmware/* linux-rootfs-ubuntu-1604 // 此步是wifi蓝牙相关的驱动
    $sudo mkdir -p linux-rootfs-ubuntu-1604/packages // 创建一个目录用于暂存相关安装包。注意,一定是packages这个名字,不要更改此目录名
    $sudo cp -rf ../rk-rootfs-build/packages/armhf/* linux-rootfs-ubuntu-1604/packages/ //相关文件拷贝到packages目录
    $sudo cp -rf ../pkg/ linux-rootfs-ubuntu-1604/packages/ //将依赖包拷贝到packages目录

6. 使用ch-mount.sh脚本挂载根文件系统(rootfs)
    $./ch-mount.sh -m linux-rootfs-ubuntu-1604

7. 参照rk-rootfs-build/mk-rootfs.sh脚本,执行以下安装
    a) 安装xserver
        #apt update
        #apt install libxfont1 libinput-bin libinput10 libwacom-common libwacom2 libunwind8 xserver-xorg-input-libinput
        #dpkg -i  /packages/xserver/xserver-common_*_all.deb
        #dpkg -i packages/pkg/01_dep/lib*.deb // 这都是xserver-xorg-core_*_armhf.deb的依赖库
        #dpkg -i  /packages/xserver/xserver-xorg-core_*_armhf.deb
    至此,xserver安装完毕

    b) 安装gstreamer
        mk-rootfs.sh里面安装gstreamer1.0的时候,需要依赖的额外deb包的版本都较高,而ubuntu16.04默认的库版本较低,无法满足要求。
        解决办法是利用ubuntu-base-17.04-core-armhf下载所有依赖的库,通过ubuntu17.04下载的库版本基本都是最新的,可以成功解决deb包的依赖问题。

        安装依赖包:
        #dpkg -i packages/pkg/02_dep/*.deb // 注意,此命令请执行两次,第一次执行失败,可能是版本依赖导致,请自行研究。
        #dpkg -i packages/pkg/03_dep/*.deb // 这里的deb包比较多,都是安装gstreamer需要的依赖包

        安装gstreamer基础包:
        #dpkg -i packages/pkg/*.deb

        安装mpp插件:
        #dpkg -i  /packages/video/mpp/librockchip-mpp1_*_armhf.deb
        #dpkg -i  /packages/video/mpp/librockchip-mpp-dev_*_armhf.deb

        安装gstreamer主体包:
        #dpkg -i  /packages/video/gstreamer/*.deb
        这里会有两个包安装失败,分别是gstreamer1.0-plugins-bad_1.10.4-1_armhf.deb和libgstreamer-plugins-bad1.0-0_1.10.4-1_armhf.deb,这里忽略,直接过,不管它。
        可能以后有问题,大家自行研究

    至此,gstreamer安装完毕

8. 禁止libmali-rk-midgard安装
    为什么要禁止这个包安装呢?因为安装上它之后,lightdm就无法启动,原因没有仔细研究。所以为了保证系统正常运行,先屏蔽掉,以后有需要再加上。
    大家打开/etc/init.d/rockchip.sh文件,里面针对rk3288的需要安装libmali-rk-midgard-r9p0-r0p0_*.deb和libmali/libmali-rk-dev_*.deb两个包,这里把它们都屏蔽掉。
    修改rockchip.sh文件可以再启动一个shell窗口,在外部修改它,修改部分如下:

                if [ "$1" == "rk3288" ];
                then
                    GPU_VERSION=$(cat /sys/devices/platform/*gpu/gpuinfo)
                    if [[ $GPU_VERSION =~ "Mali-T76x MP4 r1p0 0x0750" ]];
                    then
                        dpkg -i  /packages/libmali/libmali-rk-midgard-r9p0-r1p0_*.deb #3288w
                    else
                        # dpkg -i  /packages/libmali/libmali-rk-midgard-r9p0-r0p0_*.deb
                    fi
                   # dpkg -i  /packages/libmali/libmali-rk-dev_*.deb
                elif [[  "$1" == "rk3328"  ]]; then
                    dpkg -i  /packages/libmali/lib32mali-rk-utgard-2th-r7p0_*.deb
                    dpkg -i  /packages/libmali/libmali-rk-dev_*.deb
                elif [[  "$1" == "rk3399"  ]]; then
                    dpkg -i  /packages/libmali/lib*mali-rk-midgard-4th-r13p0_*.deb
                    dpkg -i  /packages/libmali/libmali-rk-dev_*.deb
                else
                    dpkg -i  /packages/libmali/libmali-rk-utgard0_*.deb  
                    dpkg -i  /packages/libmali/libmali-rk-dev_*.deb
                fi

9. 系统启动脚本设置
    $systemctl enable rockchip.service
    $systemctl mask systemd-networkd-wait-online.service
    $systemctl mask NetworkManager-wait-online.service

10. 处理系统依赖问题
    前面的操作破坏了系统的依赖关系,做以下处理:
    #apt install -f
    #apt autoremove
    #apt install xubuntu-desktop

11. 清理,退出以及卸载根文件系统
    #rm -rf /var/lib/apt/lists/*
    #exit

    此处一定要记得卸载根文件系统:
    $./ch-mount.sh -u linux-rootfs-ubuntu-1604

12. 制作根文件系统镜像文件
    $./mkimage-ubuntu-1604.sh

    至此,整个根文件系统的硬件解码库安装完毕。

    测试硬件解码请参考:/usr/local/bin/test_dec-gst.sh

    请与linux-boot.img一起制作成update.img,刷机验证吧!!!



回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 易百讯      粤ICP备14022046号-2
快速回复 返回顶部 返回列表