随着Yocto的不断更新,其默认支持的ubuntu发行版也逐渐更新到至少16.04以上。
重装系统后,总会有这样和那样的问题,在参考了多篇博客之后,终于顺利编译完成。
在此记录一下基于ubuntu 18.04桌面版,编译Android Pie SDK和Linux SDK(基于Yocto发行)的步骤。
ubuntu18.04 desktop的安装:https://blog.csdn.net/u014453443/article/details/88049804
安装完成后,我首先想到的是安装常用的工具:
//ubuntu18.04 默认没有net-tools,所以不能查看IP
$sudo apt install net-tools
//安装git
$sudo apt install git
$git --versioon
$git config --global user.name "yourname"
$git config --global user.email "xxx@xxx.com"
//安装vim
$sudo apt install vim
$vim --version
//安装openssh-server for putty connection
//参考了https://www.cnblogs.com/20145224kevs/p/8650727.html
$sudo apt install openssh-server
$sudo apt-get install openssh-server
$sudo service ssh start
$sudo ps -e | grep ssh
//Windows安装Filezilla,方便Windows和UBUNTU之间传输文件
sftp://192.168.x.xx(此处输入你自己的IP地址)
Linux server User name: xxxx
Password: xxxx
Port:22
//SunLogin
Download sunloginclient-11.0.0.35346-amd64.deb in Sunlogin website
Send .deb file to server by Filezilla
$sudo dpkg -i sunloginclient-11.0.0.35346-amd64.deb
//Install packages needed for yocto. Refer to Yocto官网
$sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \
build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \
xz-utils debianutils iputils-ping libsdl1.2-dev xterm
$sudo apt-get install ncftp
//安装Repo工具,用于下载Android Pie SDK代码
//因为https://storage.googleapis.com/git-repo-downloads/repo在没有梯子的情况下是不能访问的
//所以使用清华大学的镜像源,也可以用你自己常用的镜像源,如阿里,电子科技大学等。
$sudo apt install curl
$sudo curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
$chmod a+x repo
//Set PATH 参考https://www.cnblogs.com/jpfss/p/11107080.html
$sudo vi ~/.bashrc
$export PATH=/home/cxdn1013/bin:$PATH
$source .bashrc
$echo $PATH
Filezilla连接:需要输入的信息,请参考上面安装Filezilla步骤中的注释。
Putty连接:在Host Name栏输入你的ubuntu实际的IP地址,Port选22。
以上安装包都成功安装后,我就可以编译基于Yocto发行的Linux SDK了。
不过,编译Android Pie SDK的时候遇到了问题。在u-boot和kernel遇到的问题如下:
1. make menuconfig失败:
因为没有安装ncurses,导致$make menuconfig失败。提示没有ncurses library。
Unable to find the ncurses libraries or the required header files.
'make menuconfig' requires the ncurses libraries.
Install ncurses (ncurses-devel) and try again.
直接安装ncurese或者ncurese-devel的时候(sudo apt-get install ncurese / sudo apt-get install ncurses-devel),ubuntu 18.04会提示:
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
E: 未发现软件包 ncurses-devel
正在读取软件包列表... 完成
正在分析软件包的依赖关系树
正在读取状态信息... 完成
现在没有可用的软件包 ncurses,但是它被其它的软件包引用了。
这可能意味着这个缺失的软件包可能已被废弃,
或者只能在其他发布源中找到
E: 软件包 ncurses 没有可供安装的候选者
此问题参考下面的博客解决了
sudo apt-get install build-essential
sudo apt-get install libncurses5
sudo apt-get install libncurses5-dev
貌似前两个命令里的安装包,ubuntu18.04默认都有了,所以我这里没有重新安装了。主要是最后一条命令。
2. Android framework编译失败(忘了保留错误的log),安装必要的依赖包,编译成功。
此处参考:https://blog.csdn.net/yanglin222/article/details/100552803。但是,我删除了原文的重复安装包名字,且没有安装libesd0-dev。
sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev
sudo apt-get install gnupg flex bison
sudo apt-get install zip zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
另附由于Linux sh(bash/dash)环境导致的错误解决:https://blog.csdn.net/CSDN1013/article/details/113728031