系统采用CentOS 7 ,下载的是MINI版,所以环境都需要安装一遍。

原文来自 华为云,个人对安装过程中的一些问题,做了些解决和处理。

原文地址:鲲鹏BoostKit ARM原生使能套件_安卓模拟器方案_安卓模拟器 安装指南(CentOS 7.6)_配置运行环境_华为云emulator源码默认使用4KB的PAGE_SIZE,而CentOS 7.6默认内核使用的PAGE_SIZE为64KB,如果不修改,则当Android内存分配超过2GB时,会导致安卓模拟器崩溃。如果PAGE_SIZE大小为4096,则无需执行本小节其余步骤,否则请执行后续步骤重新编译内核。选择“Kernel Features”。选择“Phttps://support.huaweicloud.com/dpmg-kunpengcps/kunpengandroid_CentOS_03_0013.html

一、打开最大打开文件数限制文件。

vi /etc/security/limits.conf

加入以下:

root   soft    nofile          65535
root   hard    nofile          65535
*   soft    nofile          65535
*   hard    nofile          65535

二、配置SSH服务

修改配置文件“/etc/ssh/sshd_config”,将“#PermitRootLogin yes”前边的#号去掉

执行以下:

systemctl restart sshd

三、修改系统时间

查看系统本地时间

date

查看硬件时间

hwclock --show

设置硬件时间

hwclock --set --date '2021-12-26  16:35:20'

设置系统本地时间和硬件时间同步

hwclock  --hctosys

保存时钟

clock -w

重启系统让修改生效

reboot

四、更新yum缓存

yum clean all
yum makecache

五、预安装编译依赖包

yum -y install xorg-x11-util-macros xorg-x11-drv* llvm-devel lm_sensors-devel wayland-protocols-devel libva-devel mesa-libgbm-devel
yum -y install openssl-libs.aarch64 bzip2 numactl libffi-devel zlib-devel.aarch64 libdrm-devel.aarch64 m4.aarch64
yum -y install glx-utils freeglut-devel libva-devel.aarch64 expat-devel.aarch64 libxshmfence-devel.aarch64 libXrandr-devel elfutils-libelf-devel

六、安装和检查GCC版本

gcc --version

这里有坑:7的精简版安装后,是没有GCC的,所以要自己安装,模拟器的安装GCC后续编译版本要求在5.0以上,我这里提供几个可以参考安装

安装7.3

yum -y install centos-release-scl
yum -y install devtoolset-7-gcc devtoolset-7-gcc-c++ devtoolset-7-binutils
#立即生效
scl enable devtoolset-7 bash
#永久生效
echo "source /opt/rh/devtoolset-7/enable" >>/etc/profile

安装8.3

yum -y install centos-release-scl
yum -y install devtoolset-8-gcc devtoolset-8-gcc-c++ devtoolset-8-binutils
scl enable devtoolset-7 bash
#永久生效
echo "source /opt/rh/devtoolset-8/enable" >>/etc/profile

安装9.3

yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
scl enable devtoolset-9 bash
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile

七、安装openssl

  1. 下载源码。

    wget https://www.openssl.org/source/openssl-1.1.1a.tar.gz
    tar -zxvf openssl-1.1.1a.tar.gz
    cd openssl-1.1.1a/
    
  2. 编译安装。
    ./config --prefix=/usr/local/openssl no-zlib
    make -j32
    make install
    
  3. 删除原始文件。
    rm -rf /usr/bin/openssl
    rm -rf /usr/include/openssl
    
  4. 创建软链接。
    ln -s /usr/local/openssl/include/openssl /usr/include/openssl
    ln -s /usr/local/openssl/lib/libssl.so.1.1 /usr/local/lib64/libssl.so
    ln -s /usr/local/openssl/bin/openssl /usr/bin/openssl
    ln -s /usr/local/openssl/lib/libcrypto.so.1.1 /usr/local/lib64/libcrypto.so
    
  5. 更新库链接。
    echo "/usr/local/openssl/lib" >> /etc/ld.so.conf
    ldconfig -v
    
  6. 检查版本号。
    [root@localhost ~]# openssl version
    OpenSSL 1.1.1a  20 Nov 2018

问题:openssl需要 Perl5,以下是P5安装

#第一种YUM安装
#查看可安装的perl包
yum list perl
#安装
yum install perl-xxx#下载
wget https://www.cpan.org/src/5.0/perl-5.28.0.tar.gz
#解压
tar -xzf perl-5.28.0.tar.gz
cd perl-5.28.0
#运行配置文件
./Configure -des -Dprefix=$HOME/localperl
#编译
make
#编译测试
make test
#编译按照
make install

八、修改PAGE_SIZE

emulator源码默认使用4KB的PAGE_SIZE,而CentOS 7.6默认内核使用的PAGE_SIZE为64KB,如果不修改,则当Android内存分配超过2GB时,会导致安卓模拟器崩溃。

  1. 检查系统默认PAGE_SIZE大小。

    [root@localhost ~]# getconf PAGE_SIZE
    65536
    

    注意:

    如果PAGE_SIZE大小为4096,则无需执行本小节其余步骤,否则请执行后续步骤重新编译内核。

  2. 下载内核源码。
    wget https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.3.tar.xz --no-check-certificate
    tar xf linux-5.3.tar.xz
    cd linux-5.3/
    
  3. 生成.config文件。
    make menuconfig
    
  4. 配置PAGE_SIZE为4KB。
    1. 选择“Kernel Features”。

    2. 选择“Page size”。

    3. 选择“4KB”。

  5. 修改.config文件。

    注释掉certs/centos.pem所在行。

  6. 编译安装。
    注意:

    编译内核的时候,不要做其他操作,否则有可能引发未知的编译失败,需要从头开始。

    make -j64
    make modules -j64
    make modules_install -j64
    make install
    
  7. 替换默认启动内核。
    1. 获取已存在内核版本。

      cat /boot/efi/EFI/centos/grub.cfg | grep menuentry
      
    2. 选择对应内核版本,设置成默认启动内核。
      grub2-set-default "CentOS Linux (5.3.0) 7 (AltArch)"
      
    3. 查询默认启动内核版本是否已被替换。
      grub2-editenv list
      
  8. 重启系统让修改生效。
    reboot

九、安装x11vnc

  1. 下载x11vnc源码。

    wget http://sourceforge.net/projects/libvncserver/files/x11vnc/0.9.13/x11vnc-0.9.13.tar.gz
    tar xvf x11vnc-0.9.13.tar.gz
    cd x11vnc-0.9.13/
    
  2. 编译安装。
    ./configure --build=arm
    make -j32
    make install

我的系统在执行 ./configure --build=arm的时候 会出一个错误,也没什么具体提示。我就执行了下面的命令,算是通过了,好不好用还不知道,主要是对LINUX一知半解,惭愧至极。

.、configure --without-x

十、安装cmake

  1. 下载源码。

    wget https://cmake.org/files/v3.9/cmake-3.9.2.tar.gz
    tar zxvf cmake-3.9.2.tar.gz
    cd cmake-3.9.2
    
  2. 编译安装。
    ./bootstrap
    make -j32
    make install

十一、升级llvm

精简版果然什么都没有。

  1. 检查llvm版本。

    llvm-config --version
    

    注意:

    请确保llvm的版本在10.0.0和11.0.0之间。

  2. 获取源码。
    wget https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/llvm-10.0.1.src.tar.xz
    wget https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/clang-10.0.1.src.tar.xz
    wget https://github.com/llvm/llvm-project/releases/download/llvmorg-10.0.1/compiler-rt-10.0.1.src.tar.xz
    
  3. 搭建构建目录。
    tar xf llvm-10.0.1.src.tar.xz
    cd llvm-10.0.1.src/tools
    cp -rf ../../clang-10.0.1.src.tar.xz ./
    tar xf clang-10.0.1.src.tar.xz
    mv clang-10.0.1.src clang
    cd ../projects
    cp -rf ../../compiler-rt-10.0.1.src.tar.xz ./
    tar xf compiler-rt-10.0.1.src.tar.xz
    mv compiler-rt-10.0.1.src compiler-rt
    cd ..
    
  4. 编译安装。
    mkdir build
    cd build
    cmake -G 'Unix Makefiles' -DCMAKE_BUILD_TYPE=Release -DLLVM_BUILD_LLVM_DYLIB=yes -DLLVM_ENABLE_RTTI=yes --enable-optimized --enable-targets=host-only ../
    cmake --build . -- -j64
    make install
    
  5. 更新库链接。
    echo "/usr/local/lib" >> /etc/ld.so.conf
    ldconfig -v
    

十二、安装或升级

  1. 检查当前环境Python版本,要求使用python3版本。

    python --version
    
  2. 下载源码。
    wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
    tar zxvf Python-3.7.0.tgz
    cd Python-3.7.0/
    
  3. 编译安装。
    ./configure --prefix=/usr/local/python3.7.0 --with-openssl=/usr/local/openssl
    make -j64
    make install
    
  4. 更新软链接。
    cd /usr/bin
    rm -rf python
    ln -s /usr/local/python3.7.0/bin/python3 /usr/bin/python
    
  5. 修改系统默认依赖Python版本的脚本。
    注意:

    mesa升级依赖的Python版本为3.0及以上,但python升级到3.0以后,系统原始的一些依赖python解析器的文件需要显式指定python解析器为python2版本。

    文件包括/usr/sbin/firewalld、/usr/bin/firewall-cmd和yum的一些解析命令(例如/usr/bin/yum,/usr/libexec/urlgrabber-ext-down等)。

问题:

缺少了zlib的解压缩类库

yum -y install zlib*

缺少模块

yum install libffi-devel 

以上安装完再 从./configure 执行一遍,这些错误一定要解决,否则以后问题会更多。

注意:安装P3后,YUM命令将无法使用,YUM是工作在P2下的,所以要做以下两个文件的修改

yum需要用python2编译,而不能用python3编译,所以只需要在yum脚本中指定编译器python的版本就行了

vim /usr/bin/yum

修改前

#!/usr/bin/python
import sys
try:import yum
except ImportError:print >> sys.stderr, """\

修改后

#!/usr/bin/python2
import sys
try:import yum
except ImportError:print >> sys.stderr, """\

只修改usr/bin/yum是不够的,还需要修改 /usr/libexec/urlgrabber-ext-down脚本,因为这个脚本也需要python2作为编译器

vim /usr/libexec/urlgrabber-ext-down

修改前

#! /usr/bin/python
#  A very simple external downloader
#  Copyright 2011-2012 Zdenek Pavlas

修改后

#! /usr/bin/python2
#  A very simple external downloader
#  Copyright 2011-2012 Zdenek Pavlas

十三、安装pip

  1. 删除系统自带pip。

    cd /usr/bin/
    rm -rf pip
    rm -rf pip2*
  2. 卸载python3自带pip。
    python -m pip uninstall pip
  3. 获取特定版本pip。
    wget --no-check-certific ate https://pypi.python.org/packages/source/p/pip/pip-20.0.1.tar.gz
  4. 解压并编译。
    tar -zxvf pip-20.0.1.tar.gz
    cd pip-20.0.1/
    python setup.py build
    python setup.py install
  5. 更新软链接
    ln -s /usr/local/python3.7.0/bin/pip3 /usr/bin/pip

    注意:

    利用pip安装的软件,默认路径都在/usr/local/python3.7.0,需要创建软链接到系统环境变量。

十四、安装meson和mako

  1. 安装meson。

    pip install --trusted-host pypi.org  --trusted-host files.pythonhosted.org  meson
    ln -s /usr/local/python3.7.0/bin/meson /usr/bin/meson
    
  2. 安装mako。
    pip install --trusted-host pypi.org  --trusted-host files.pythonhosted.org  mako

十五、安装re2c

  1. 下载源码。

    wget https://github.com/skvadrik/re2c/releases/download/2.0.3/re2c-2.0.3.tar.xz
    tar xf re2c-2.0.3.tar.xz
    cd re2c-2.0.3
    
  2. 编译安装。
    autoreconf -i -W all
    ./configure
    make -j32
    make install

问题:

先安装M4

Index of /gnu/m4/http://mirrors.kernel.org/gnu/m4/

tar -xzvf m4-1.4.13.tar.gz
cd m4-1.4.13
./configure --prefix=/usr/local
make && make install

插件下载地址

Index of /gnu/autoconfhttp://ftp.gnu.org/gnu/autoconf/

tar -xzvf autoconf-2.65.tar.gz
cd autoconf-2.65
./configure --prefix=/usr/local
make && make install

十六、安装ninja

  1. 获取源码。

    git clone git://github.com/ninja-build/ninja.git
    cd ninja
    
  2. 编译安装。
    ./configure.py --bootstrap
    cp ninja /usr/bin/
    

    注意:

    如果编译报错“ninja: error: manifest 'build.ninja' still dirty after 100 tries”,请检查系统时间,需要严格和真实时间一致。

问题:未安装GIT

yum install -y git

十七、安装libdrm

  1. 获取源码

    wget https://dri.freedesktop.org/libdrm/libdrm-2.4.103.tar.xz
    tar -xf libdrm-2.4.103.tar.xz
    cd libdrm-2.4.103
  2. 编译安装
    mkdir build
    cd build
    meson --prefix=/usr --libdir=/usr/lib64
    ninja install

问题:无法下载的地址

#这是目录,自己选
https://dri.freedesktop.org/libdrm/

难题又出现:缺少picaccess,这个好难搞啊。查了不少资料应该是 安装 libpciaccess-dev

好像是 libpci 的一个包,在ubantu的系统下 用的是 apt-get install libpic.

目前这一步我没解决好!不知道下面有什么影响呢。

十八、 升级mesa

  1. 检查OpenGL版本。

    glxinfo | grep OpenGL
    

    注意:

    如果OpenGL版本小于3.0,则需要参考本节内容进行升级。

  2. 获取指定mesa版本的源码。
    wget https://archive.mesa3d.org//mesa-19.3.5.tar.xz
    tar -xf mesa-19.3.5.tar.xz
    cd mesa-19.3.5
    
  3. 适配源码。
    1. 在meson_options.txt第42行增加radeon驱动编译选项。
    2. 注释掉meson.build第246~248行。
    3. 将src/amd/llvm/ac_llvm_helper.cpp第195行“llvm::TargetMachine::CGFT_ObjectFile”修改成“llvm::CGFT_ObjectFile”。

  4. 编译安装。
    mkdir build
    cd build
    meson --prefix=/usr -Dtexture-float=true -Dgallium-drivers=radeonsi,swrast -Ddri-drivers=radeon,swrast -Dplatforms=drm,x11 -Dglx-tls=true -Dshared-glapi=true -Ddri3=true -Dlmsensors=true -Dgbm=true -Dxa=true -Dosmesa=gallium -Dvdgpu=true -Dnine=true -Dva=true -Dlibglvnd=true -Dllvm=true -DCFLAGS="-fsigned-char -O2" -DCPPFLAGS="-fsigned-char -O2" -DCXXFLAGS="-fsigned-char -O2" -Dautotools=true
    ninja install
    
  5. 重新检查OpenGL版本。
    glxinfo | grep OpenGL

十九、

安装失败了!!!!进行不下去了,百度了好久,基本都没有在CENTOS安装glxifo工具包的,还有就是C上的显卡驱动问题多多,C也不维护,真是抑郁了。基本要放弃CENTOS了,转到 ubuntu18去试试了,再见!!C

安装失败,CentOS 7 安装 安卓模拟器相关推荐

  1. linux nginx rpm 安装配置,Centos下安装nginx rpm包

    1 在nginx官方网站下载一个rpm包,下载地址是:http://nginx.org/en/download.html wget http://nginx.org/packages/centos/6 ...

  2. 惠普P1100 series “打印机安装失败,未安装打印机”问题解决方法

    记一次罕见的惠普打印机驱动安装失败的解决方案 在新组装电脑上使用官方驱动安装惠普P1108驱动时,一直出现"打印机安装失败,未安装打印机"的问题. 首先,我尝试了在"设备 ...

  3. windows server 2012 r2关于vmtools安装失败以及KB2919355安装

    windows server 2012 r2关于vmtools安装失败以及KB2919355安装 前言 VMware workstation15安装windows server 2012 r2,安装不 ...

  4. AutoCAD 2012 64位安装失败提示Net4安装失败

    AutoCAD 2012 64位安装失败提示Net4安装失败 安装环境:在win7 64位上安装 解决方法: 在setup.ini文件中修改

  5. 逍遥安卓能安装在虚拟服务器,逍遥安卓模拟器安装环境有哪些要求?

    你知道 逍遥安卓模拟器 安装环境有哪些要求吗?下面小编就给大家分享一下,下面感兴趣的小伙伴就和小编一起来学习一下吧. 逍遥安卓模拟器安装环境: 系统环境要求: 需要满足以下操作系统之一: Micros ...

  6. python3.7.2安装教程-CentOS 7安装Python教程

    CentOS 7安装Python 3.6.4 一.解决依赖关系 在 CentOS 7 中安装 Python 3.6.4之前,请确保系统中已经有了所有必要的依赖包否则会报错: yum -y groupi ...

  7. ipython安装教程-CentOS 5安装IPython

    话说上次给那台装CentOS 5的免费VPS升级了Python,这次我们继续来安装IPython. 一.IPython是什么 IPython是Python的交互式Shell,提供了代码自动补完,自动缩 ...

  8. 安装 oracle-xe,CentOS上安装Oracle XE指南

    引言: 在CentOS上安装Oracle XE主要用来解决学习和测试的用处,虽然简单,但也是涉及到了诸多的步骤和细节问题. 1.  下载Oracle XE 访问http://www.oracle.co ...

  9. kali linux grub 安装失败,kali linux2 安装问题总结

    1,U盘镜像刻录完成,重启U盘启动时出现not a COM32R image解决方法 方法一 在boot: 后面输入install就可以继续了 方法二: 解决办法: 打开U盘上的文件:syslinux ...

  10. 在线安装php,CentOS在线安装PHP|dayblog-天天博客|PHP交流,PHP技术,PHP博客,博客交流,dayblog,blog,天天博客...

    1.先安装一些其他依赖 yum -y install libxslt-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype ...

最新文章

  1. VS2015自定义类模板的方法
  2. android获取自定义属性,android 自定义控件中获取属性的三种方式(转)
  3. 总结Python机器学习中的回归算法
  4. 零基础 5 分钟上手,程序员喜提 AIoT 新利器!
  5. SQL Serever学习4
  6. Python之面向对象 私有属性和私有方法
  7. SimpleDateFormat 类的总结
  8. 免费的CRM真的免费吗
  9. steamcom启动服务:443端口被占用,请关闭占用该端口的进程后再点击启动服务!
  10. 用计算机建立电子表格,求计算机作业电子表格演示文稿。
  11. 计算机发展英文文献,计算机技术发展英文参考文献 计算机技术发展论文参考文献哪里找...
  12. Apktool 使用详解
  13. Excel的最大行数
  14. 【图像处理】初识计算机视觉
  15. 商城-折扣活动设计方案
  16. 微信小程序截屏保存图片
  17. 主外键关联删除(on delete set null和on delete cascade)
  18. 编程15年40岁程序员的我终于在压力下被迫转行了
  19. 病毒预报:Trojan_Generic.F
  20. Lytro光场相机的原理,科普,简单地进行了解

热门文章

  1. 印度洋重建及东经九十度海岭
  2. 一文读懂Java 垃圾回收机制
  3. 视频会议系统/远程会议解决方案分为几种?企业如何选择?MCU与SFU方案的区别是什么?
  4. NVT平台model屏幕配置
  5. 字符串java_字符串的常用方法(内建函数)
  6. 财路网每日原创推送: 科普:区块链在其他领域的一些应用
  7. 如何解决电脑无法访问个别网站
  8. Above the MedianDueling GPSs
  9. Win10系统使用chrome经常卡死的原因和解决方法
  10. 数学图形(1.3)旋轮线