准备工作
-
下载交叉编译工具: 百度网盘:链接:https://pan.baidu.com/s/1g4frOXmSnQU1NsOj8Zu60A
提取码:rdap
-
ubuntu版本:
vmare安装的ubuntu18.04 amd64版本
dopi<a class="at-link" title="@ubuntu" href="https://github.com/ubuntu" target="_blank" rel="noopener">@ubuntu</a> <span class="hljs-symbol">:~</span>$ cat /proc/version Linux version <span class="hljs-number">5.3</span>.<span class="hljs-number">0</span>-<span class="hljs-number">62</span>-generic (buildd<a class="at-link" title="@lcy01" href="https://github.com/lcy01" target="_blank" rel="noopener">@lcy01</a>-amd64-<span class="hljs-number">004</span>) (gcc version <span class="hljs-number">7.5</span>.<span class="hljs-number">0</span> (Ubuntu <span class="hljs-number">7.5</span>.<span class="hljs-number">0</span>-<span class="hljs-number">3</span>ubuntu1~<span class="hljs-number">18.04</span>)) <span class="hljs-comment">#56~18.04.1-Ubuntu SMP Wed Jun 24 16:17:03 UTC 2020</span>
交叉编译
1. 首先更换镜像源,再更新
打开镜像源,ubuntu18更新源:https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
选择ubuntu18.04:
sudo chmod <span class="hljs-number">777</span> /etc/apt/sources.<span class="hljs-built_in">list</span>
vi /etc/apt/sources.<span class="hljs-built_in">list</span>
2. 首先更新系统
更新命令:
sudo apt-get <span class="hljs-keyword">update</span> && sudo apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> -y bzip2 <span class="hljs-keyword">build</span>-essential libc6-dev-i386 ia32-libs lib32z1-dev libncurses5 libncurses5-dev u-boot-tools vim squashfs-tools gettext git zip subversion bc
错误提示:Package ‘ia32-libs’ has no installation candidate
dopi@ubuntu:/home/ev200_tools$ sudo apt-get <span class="hljs-keyword">update</span> && sudo apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> -y bzip2 <span class="hljs-keyword">build</span>-essential libc6-dev-i386 ia32-libs lib32z1-dev libncurses5 libncurses5-dev u-boot-tools vim squashfs-tools gettext git zip subversion bc
Reading <span class="hljs-keyword">package</span> lists... Done
Reading <span class="hljs-keyword">package</span> lists... Done
Building dependency tree
Reading state information... Done
<span class="hljs-keyword">Package</span> ia32-libs <span class="hljs-keyword">is</span> <span class="hljs-keyword">not</span> available, but <span class="hljs-keyword">is</span> referred <span class="hljs-keyword">to</span> <span class="hljs-keyword">by</span> another package.
This may mean that the <span class="hljs-keyword">package</span> <span class="hljs-keyword">is</span> <span class="hljs-keyword">missing</span>, has been obsoleted, <span class="hljs-keyword">or</span>
<span class="hljs-keyword">is</span> <span class="hljs-keyword">only</span> available <span class="hljs-keyword">from</span> another <span class="hljs-keyword">source</span>
However the <span class="hljs-keyword">following</span> packages <span class="hljs-keyword">replace</span> it:
lib32ncurses5 lib32z1
E: <span class="hljs-keyword">Package</span> <span class="hljs-string">'ia32-libs'</span> has <span class="hljs-keyword">no</span> installation candidate
解决方法:
sudo apt-get <span class="hljs-keyword">install</span> lib32z1 lib32ncurses5
sudo apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> lib32stdc++<span class="hljs-number">6</span>
去掉ia32-libs,重新更新系统:
sudo apt-get <span class="hljs-keyword">update</span> && sudo apt-<span class="hljs-keyword">get</span> <span class="hljs-keyword">install</span> -y bzip2 <span class="hljs-keyword">build</span>-essential libc6-dev-i386 lib32z1-dev libncurses5 libncurses5-dev u-boot-tools vim squashfs-tools gettext git zip subversion bc
提示更新完成:
<span class="hljs-selector-tag">Reading</span> <span class="hljs-selector-tag">package</span> <span class="hljs-selector-tag">lists</span>... <span class="hljs-selector-tag">Done</span>
<span class="hljs-selector-tag">Reading</span> <span class="hljs-selector-tag">package</span> <span class="hljs-selector-tag">lists</span>... <span class="hljs-selector-tag">Done</span>
<span class="hljs-selector-tag">Building</span> <span class="hljs-selector-tag">dependency</span> <span class="hljs-selector-tag">tree</span>
<span class="hljs-selector-tag">Reading</span> <span class="hljs-selector-tag">state</span> <span class="hljs-selector-tag">information</span>... <span class="hljs-selector-tag">Done</span>
<span class="hljs-selector-tag">bc</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (1<span class="hljs-selector-class">.07</span>
<span class="hljs-selector-class">.1-2</span>).
<span class="hljs-selector-tag">build-essential</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (12<span class="hljs-selector-class">.4ubuntu1</span>).
<span class="hljs-selector-tag">lib32z1-dev</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (1<span class="hljs-selector-pseudo">:1.2.11.dfsg-0ubuntu2).</span>
<span class="hljs-selector-tag">libc6-dev-i386</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (2<span class="hljs-selector-class">.27-3ubuntu1</span>).
<span class="hljs-selector-tag">zip</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (3<span class="hljs-selector-class">.0-11build1</span>).
<span class="hljs-selector-tag">subversion</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (1<span class="hljs-selector-class">.9</span>
<span class="hljs-selector-class">.7-4ubuntu1</span>).
<span class="hljs-selector-tag">bzip2</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (1<span class="hljs-selector-class">.0</span>
<span class="hljs-selector-class">.6-8</span>
<span class="hljs-selector-class">.1ubuntu0</span>
<span class="hljs-selector-class">.2</span>).
<span class="hljs-selector-tag">gettext</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (0<span class="hljs-selector-class">.19</span>
<span class="hljs-selector-class">.8</span>
<span class="hljs-selector-class">.1-6ubuntu0</span>
<span class="hljs-selector-class">.3</span>).
<span class="hljs-selector-tag">git</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (1<span class="hljs-selector-pseudo">:2.17.1-1ubuntu0.7).</span>
<span class="hljs-selector-tag">libncurses5</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (6<span class="hljs-selector-class">.1-1ubuntu1</span>
<span class="hljs-selector-class">.18</span>
<span class="hljs-selector-class">.04</span>).
<span class="hljs-selector-tag">libncurses5-dev</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (6<span class="hljs-selector-class">.1-1ubuntu1</span>
<span class="hljs-selector-class">.18</span>
<span class="hljs-selector-class">.04</span>).
<span class="hljs-selector-tag">squashfs-tools</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (1<span class="hljs-selector-pseudo">:4.3-6ubuntu0.18.04.1).</span>
<span class="hljs-selector-tag">u-boot-tools</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (2019<span class="hljs-selector-class">.07</span>+<span class="hljs-selector-tag">dfsg-1ubuntu4</span>~18<span class="hljs-selector-class">.04</span>
<span class="hljs-selector-class">.1</span>).
<span class="hljs-selector-tag">vim</span> <span class="hljs-selector-tag">is</span> <span class="hljs-selector-tag">already</span> <span class="hljs-selector-tag">the</span> <span class="hljs-selector-tag">newest</span> <span class="hljs-selector-tag">version</span> (2<span class="hljs-selector-pseudo">:8.0.1453-1ubuntu1.3).</span>
0 <span class="hljs-selector-tag">upgraded</span>, 0 <span class="hljs-selector-tag">newly</span> <span class="hljs-selector-tag">installed</span>, 0 <span class="hljs-selector-tag">to</span> <span class="hljs-selector-tag">remove</span> <span class="hljs-selector-tag">and</span> 95 <span class="hljs-selector-tag">not</span> <span class="hljs-selector-tag">upgraded</span>.
3. 把arm-himix100-linux.tgz拷贝到ubuntu18中
下载的arm-himix100-linux.tgz拷贝到ubuntu18中,我是通过vmare的共享文件夹拷贝到ubuntu18中的。
dopi@ubuntu<span class="hljs-symbol">:/mnt/hgfs</span>$ cd dopi-linux/
dopi@ubuntu<span class="hljs-symbol">:/mnt/hgfs/dopi-linux</span>$ ls
arm-himix10<span class="hljs-number">0</span>-linux.tgz
dopi@ubuntu<span class="hljs-symbol">:/mnt/hgfs/dopi-linux</span>$ cp arm-himix10<span class="hljs-number">0</span>-linux.tgz /home/ev200_tools/
4. 解压 tar -zxvf arm-himix100-linux.tgz
dopi@ubuntu<span class="hljs-symbol">:/mnt/hgfs/dopi-linux</span>$ cd /home/ev200_tools/
dopi@ubuntu<span class="hljs-symbol">:/home/ev200_tools</span>$ ls
arm-himix10<span class="hljs-number">0</span>-linux.tgz
dopi@ubuntu<span class="hljs-symbol">:/home/ev200_tools</span>$ tar -zxvf arm-himix10<span class="hljs-number">0</span>-linux.tgz
arm-himix10<span class="hljs-number">0</span>-linux/
arm-himix10<span class="hljs-number">0</span>-linux/arm-himix10<span class="hljs-number">0</span>-linux.install
arm-himix10<span class="hljs-number">0</span>-linux/runtime_uclibc.tgz
arm-himix10<span class="hljs-number">0</span>-linux/arm-himix10<span class="hljs-number">0</span>-linux.tar.bz2
arm-himix10<span class="hljs-number">0</span>-linux/readme.txt
4. 安装
安装命令
<span class="hljs-built_in">cd</span> arm-himix100-linux/
sudo ./arm-himix100-linux.install
执行过程,到此安装交叉编译工具链完成。
dopi@ubuntu<span class="hljs-symbol">:/home/ev200_tools</span>$ ls
arm-himix10<span class="hljs-number">0</span>-linux arm-himix10<span class="hljs-number">0</span>-linux.tgz
dopi@ubuntu<span class="hljs-symbol">:/home/ev200_tools</span>$ cd arm-himix10<span class="hljs-number">0</span>-linux/
dopi@ubuntu<span class="hljs-symbol">:/home/ev200_tools/arm-himix100-linux</span>$ sudo ./arm-himix10<span class="hljs-number">0</span>-linux.install
Installing HuaWei LiteOS Linux at /opt/hisi-linux/x86-arm
Delete exist directory...
Extract cross tools ...
skip export toolchains path
通过查询版本号,确认是否安装成功: arm-himix100-linux-gcc -v
dopi@ubuntu<span class="hljs-symbol">:/home/ev200_tools/arm-himix100-linux</span>$ arm-himix10<span class="hljs-number">0</span>-linux-gcc -v
Using built-<span class="hljs-keyword">in</span> specs.
COLLECT_GCC=arm-himix10<span class="hljs-number">0</span>-linux-gcc
COLLECT_LTO_WRAPPER=<span class="hljs-regexp">/opt/hisi</span>-linux/x86-arm/arm-himix10<span class="hljs-number">0</span>-linux/host_bin/../libexec/gcc/arm-linux-uclibceabi/<span class="hljs-number">6.3</span>.<span class="hljs-number">0</span>/lto-wrapper
<span class="hljs-symbol">Target:</span> arm-linux-uclibceabi
Configured <span class="hljs-symbol">with:</span> /home/sying/SDK_CPU_UNIFIED/build/script/arm-himix10<span class="hljs-number">0</span>-linux/arm_himix100_build_dir/src/gcc-<span class="hljs-number">6.3</span>.<span class="hljs-number">0</span>/configure --host=i386-redhat-linux --build=i386-redhat-linux --target=arm-linux-uclibceabi --prefix=<span class="hljs-regexp">/home/sying</span>
<span class="hljs-regexp">/SDK_CPU_UNIFIED/build</span>
<span class="hljs-regexp">/script/arm</span>-himix10<span class="hljs-number">0</span>-linux/arm_himix100_build_dir/install --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --disable-libatomic --disable-nls --enable-clocale=gnu --enable-extra-hisi-multilibs --with-sysroot=<span class="hljs-regexp">/home/sying</span>
<span class="hljs-regexp">/SDK_CPU_UNIFIED/build</span>
<span class="hljs-regexp">/script/arm</span>-himix10<span class="hljs-number">0</span>-linux/arm_himix100_build_dir/install/target --with-build-sysroot=<span class="hljs-regexp">/home/sying</span>
<span class="hljs-regexp">/SDK_CPU_UNIFIED/build</span>
<span class="hljs-regexp">/script/arm</span>-himix10<span class="hljs-number">0</span>-linux/arm_himix100_build_dir/install/target --with-gmp=<span class="hljs-regexp">/home/sying</span>
<span class="hljs-regexp">/SDK_CPU_UNIFIED/build</span>
<span class="hljs-regexp">/script/arm</span>-himix10<span class="hljs-number">0</span>-linux/arm_himix100_build_dir/obj/host-libs/usr --with-mpfr=<span class="hljs-regexp">/home/sying</span>
<span class="hljs-regexp">/SDK_CPU_UNIFIED/build</span>
<span class="hljs-regexp">/script/arm</span>-himix10<span class="hljs-number">0</span>-linux/arm_himix100_build_dir/obj/host-libs/usr --with-mpc=<span class="hljs-regexp">/home/sying</span>
<span class="hljs-regexp">/SDK_CPU_UNIFIED/build</span>
<span class="hljs-regexp">/script/arm</span>-himix10<span class="hljs-number">0</span>-linux/arm_himix100_build_dir/obj/host-libs/usr --disable-libgomp --disable-libquadmath --disable-fixed-point --disable-libsanitizer --disable-libitm --enable-poison-system-directories --with-pkgversion=<span class="hljs-string">'HC&C V100R002C00B032_20190114'</span>
Thread <span class="hljs-symbol">model:</span> posix
gcc version <span class="hljs-number">6.3</span>.<span class="hljs-number">0</span> (HC&C V100R002C00B032_20190114)
5. 添加到环境变量中
<span class="hljs-built_in">export</span> path=/opt/hisi-linux/x86-arm/arm-himix100-linux/bin
<span class="hljs-built_in">source</span> /etc/profile