EasyArm-i.mx280a开发板入门-开发环境搭建一(WSL+ubuntu20.04)

1.假设我们已经安装好了windows10或Windows11系统。

2.在应用中心中查找Ubuntu20.04,点击安装。

更新系统软件列表:

sudo apt update

3.打开开发板配的光盘

链接: https://pan.baidu.com/s/1ZJyLDhTYBmilt-U5A3UsNQ?pwd=29fw 提取码: 29fw 

(链接: https://pan.baidu.com/s/1El5XhwGGuEV4bNDG87_Mdw?pwd=1234 提取码: 1234 )

假设光盘已挂载到虚拟光驱F:

F:\EasyARM-i.MX280A_283(7)A_20150901_V1.03\3、Linux\2、工具软件\Linux工具软件中有

gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2这个文件,这个是交叉编译工具,我们现在要安装它到wsl的ubuntu20.04系统中。

将gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2复制到D:\

启动Ubuntu20.04:

进入用户主目录

cd ~

拷贝windows系统中D盘文件

cp /mnt/d/gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2 ~/

安装解压缩工具bzip2 

sudo apt install bzip2

解压缩

bunzip2 gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar.bz2

更新tar软件

sudo apt upgrade tar

解压tar格式压缩包

tar -xvf gcc-4.4.4-glibc-2.11.1-multilib-1.0_EasyARM-iMX283.tar

移动解压缩后的文件夹

 cd gcc-4.4.4-glibc-2.11.1-multilib-1.0/

sudo mv arm-fsl-linux-gnueabi/ /opt

4.新建脚本文件updateCrossEnv.sh

nano updateCrossEnv.sh
 

#!/bin/bash

# 将命令追加到 ~/.bashrc 文件
echo 'export CROSS_COMPILE=arm-fsl-linux-gnueabi-' >> ~/.bashrc
echo 'export ARCH=arm' >> ~/.bashrc
echo 'export PATH=/opt/arm-fsl-linux-gnueabi/bin:$PATH' >> ~/.bashrc
echo 'export LD_LIBRARY_PATH=/opt/arm-fsl-linux-gnueabi/lib:$LD_LIBRARY_PATH' >> ~/.bashrc

# 使更改生效
source ~/.bashrc

# 输出确认信息
echo "Environment variables have been added to ~/.bashrc and sourced."

chmod +x updateCrossEnv.sh

./updateCrossEnv.sh

5.打补丁:

由于32位arm-linux-gcc无法在64位系统上运行,需要安装i386库:

dengxm2024@PC-202105142413:~$ sudo apt-get update
 apt-get install build-essential flex bison gawk
sudo apt-get install build-essential flex bison gawk
Hit:1 http://archive.ubuntu.com/ubuntu jammy InRelease
Hit:2 http://security.ubuntu.com/ubuntu jammy-security InRelease
Hit:3 http://archive.ubuntu.com/ubuntu jammy-updates InRelease
Hit:4 http://archive.ubuntu.com/ubuntu jammy-backports InRelease
Get:5 http://archive.ubuntu.com/ubuntu jammy/main i386 Packages [1040 kB]
Get:6 http://security.ubuntu.com/ubuntu jammy-security/main i386 Packages [514 kB]
Get:7 http://security.ubuntu.com/ubuntu jammy-security/restricted i386 Packages [37.3 kB]
Get:8 http://security.ubuntu.com/ubuntu jammy-security/universe i386 Packages [620 kB]
Get:9 http://archive.ubuntu.com/ubuntu jammy/restricted i386 Packages [30.4 kB]
Get:10 http://security.ubuntu.com/ubuntu jammy-security/multiverse i386 Packages [1356 B]
Get:11 http://archive.ubuntu.com/ubuntu jammy/universe i386 Packages [7474 kB]
Get:12 http://archive.ubuntu.com/ubuntu jammy/multiverse i386 Packages [112 kB]
Get:13 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 Packages [674 kB]
Get:14 http://archive.ubuntu.com/ubuntu jammy-updates/restricted i386 Packages [38.9 kB]
Get:15 http://archive.ubuntu.com/ubuntu jammy-updates/universe i386 Packages [724 kB]
Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/multiverse i386 Packages [4744 B]
Get:17 http://archive.ubuntu.com/ubuntu jammy-backports/main i386 Packages [59.3 kB]
Get:18 http://archive.ubuntu.com/ubuntu jammy-backports/universe i386 Packages [17.2 kB]
Fetched 11.3 MB in 1min 13s (156 kB/s)
Reading package lists... Done
dengxm2024@PC-202105142413:~$ sudo apt-get install libc6:i386 libncurses5:i386 libstdc++6:i386
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
  gcc-12-base:i386 krb5-locales libcom-err2:i386 libcrypt1:i386 libgcc-s1:i386 libgpm2:i386 libgssapi-krb5-2:i386
  libidn2-0:i386 libk5crypto3:i386 libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386 libncurses5 libnsl2:i386
  libnss-nis:i386 libnss-nisplus:i386 libssl3:i386 libtinfo5 libtinfo5:i386 libtirpc3:i386 libunistring2:i386
Suggested packages:
  glibc-doc:i386 locales:i386 gpm:i386 krb5-doc:i386 krb5-user:i386
The following NEW packages will be installed:
  gcc-12-base:i386 krb5-locales libc6:i386 libcom-err2:i386 libcrypt1:i386 libgcc-s1:i386 libgpm2:i386
  libgssapi-krb5-2:i386 libidn2-0:i386 libk5crypto3:i386 libkeyutils1:i386 libkrb5-3:i386 libkrb5support0:i386
  libncurses5:i386 libnsl2:i386 libnss-nis:i386 libnss-nisplus:i386 libssl3:i386 libstdc++6:i386 libtinfo5:i386
  libtirpc3:i386 libunistring2:i386
The following packages will be upgraded:
  libncurses5 libtinfo5
2 upgraded, 22 newly installed, 0 to remove and 71 not upgraded.
Need to get 7870 kB of archives.
After this operation, 28.3 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 gcc-12-base i386 12.3.0-1ubuntu1~22.04 [20.1 kB]
Get:2 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 libgcc-s1 i386 12.3.0-1ubuntu1~22.04 [64.0 kB]
Get:3 http://archive.ubuntu.com/ubuntu jammy/main i386 libcrypt1 i386 1:4.4.27-1 [97.2 kB]
Get:4 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 libc6 i386 2.35-0ubuntu3.8 [3013 kB]
Get:5 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 libcom-err2 i386 1.46.5-2ubuntu1.1 [9614 B]
Get:6 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 libkrb5support0 i386 1.19.2-2ubuntu0.3 [36.9 kB]
Get:7 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 libk5crypto3 i386 1.19.2-2ubuntu0.3 [91.0 kB]
Get:8 http://archive.ubuntu.com/ubuntu jammy/main i386 libkeyutils1 i386 1.6.1-2ubuntu3 [10.7 kB]
Get:9 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 libssl3 i386 3.0.2-0ubuntu1.16 [1948 kB]
Ign:9 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 libssl3 i386 3.0.2-0ubuntu1.16
Get:10 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 libkrb5-3 i386 1.19.2-2ubuntu0.3 [403 kB]
Get:11 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 libgssapi-krb5-2 i386 1.19.2-2ubuntu0.3 [154 kB]
Get:12 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 libtirpc3 i386 1.3.2-2ubuntu0.1 [92.8 kB]
Get:13 http://archive.ubuntu.com/ubuntu jammy/main i386 libnsl2 i386 1.3.0-2build2 [46.2 kB]
Get:14 http://archive.ubuntu.com/ubuntu jammy/main i386 libunistring2 i386 1.0-1 [554 kB]
Get:15 http://archive.ubuntu.com/ubuntu jammy/main i386 libidn2-0 i386 2.3.2-2build1 [71.1 kB]
Get:16 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 libstdc++6 i386 12.3.0-1ubuntu1~22.04 [760 kB]
Get:17 http://archive.ubuntu.com/ubuntu jammy-updates/main amd64 krb5-locales all 1.19.2-2ubuntu0.3 [11.7 kB]
Get:18 http://archive.ubuntu.com/ubuntu jammy/main i386 libgpm2 i386 1.20.7-10build1 [15.9 kB]
Get:19 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libncurses5 amd64 6.3-2ubuntu0.1 [107 kB]
Get:20 http://archive.ubuntu.com/ubuntu jammy-updates/universe amd64 libtinfo5 amd64 6.3-2ubuntu0.1 [100 kB]
Get:21 http://archive.ubuntu.com/ubuntu jammy-updates/universe i386 libtinfo5 i386 6.3-2ubuntu0.1 [99.5 kB]
Get:22 http://archive.ubuntu.com/ubuntu jammy-updates/universe i386 libncurses5 i386 6.3-2ubuntu0.1 [112 kB]
Get:23 http://archive.ubuntu.com/ubuntu jammy/main i386 libnss-nis i386 3.1-0ubuntu6 [28.2 kB]
Get:24 http://archive.ubuntu.com/ubuntu jammy/main i386 libnss-nisplus i386 1.3-0ubuntu6 [23.7 kB]
Get:9 http://archive.ubuntu.com/ubuntu jammy-updates/main i386 libssl3 i386 3.0.2-0ubuntu1.16 [1948 kB]
Fetched 6591 kB in 31s (211 kB/s)
Preconfiguring packages ...
Selecting previously unselected package gcc-12-base:i386.
(Reading database ... 44089 files and directories currently installed.)
Preparing to unpack .../00-gcc-12-base_12.3.0-1ubuntu1~22.04_i386.deb ...
Unpacking gcc-12-base:i386 (12.3.0-1ubuntu1~22.04) ...
Selecting previously unselected package libgcc-s1:i386.
Preparing to unpack .../01-libgcc-s1_12.3.0-1ubuntu1~22.04_i386.deb ...
Unpacking libgcc-s1:i386 (12.3.0-1ubuntu1~22.04) ...
Selecting previously unselected package libcrypt1:i386.
Preparing to unpack .../02-libcrypt1_1%3a4.4.27-1_i386.deb ...
Unpacking libcrypt1:i386 (1:4.4.27-1) ...
Selecting previously unselected package libc6:i386.
Preparing to unpack .../03-libc6_2.35-0ubuntu3.8_i386.deb ...
Unpacking libc6:i386 (2.35-0ubuntu3.8) ...
Selecting previously unselected package libcom-err2:i386.
Preparing to unpack .../04-libcom-err2_1.46.5-2ubuntu1.1_i386.deb ...
Unpacking libcom-err2:i386 (1.46.5-2ubuntu1.1) ...
Selecting previously unselected package libkrb5support0:i386.
Preparing to unpack .../05-libkrb5support0_1.19.2-2ubuntu0.3_i386.deb ...
Unpacking libkrb5support0:i386 (1.19.2-2ubuntu0.3) ...
Selecting previously unselected package libk5crypto3:i386.
Preparing to unpack .../06-libk5crypto3_1.19.2-2ubuntu0.3_i386.deb ...
Unpacking libk5crypto3:i386 (1.19.2-2ubuntu0.3) ...
Selecting previously unselected package libkeyutils1:i386.
Preparing to unpack .../07-libkeyutils1_1.6.1-2ubuntu3_i386.deb ...
Unpacking libkeyutils1:i386 (1.6.1-2ubuntu3) ...
Selecting previously unselected package libssl3:i386.
Preparing to unpack .../08-libssl3_3.0.2-0ubuntu1.16_i386.deb ...
Unpacking libssl3:i386 (3.0.2-0ubuntu1.16) ...
Selecting previously unselected package libkrb5-3:i386.
Preparing to unpack .../09-libkrb5-3_1.19.2-2ubuntu0.3_i386.deb ...
Unpacking libkrb5-3:i386 (1.19.2-2ubuntu0.3) ...
Selecting previously unselected package libgssapi-krb5-2:i386.
Preparing to unpack .../10-libgssapi-krb5-2_1.19.2-2ubuntu0.3_i386.deb ...
Unpacking libgssapi-krb5-2:i386 (1.19.2-2ubuntu0.3) ...
Selecting previously unselected package libtirpc3:i386.
Preparing to unpack .../11-libtirpc3_1.3.2-2ubuntu0.1_i386.deb ...
Unpacking libtirpc3:i386 (1.3.2-2ubuntu0.1) ...
Selecting previously unselected package libnsl2:i386.
Preparing to unpack .../12-libnsl2_1.3.0-2build2_i386.deb ...
Unpacking libnsl2:i386 (1.3.0-2build2) ...
Selecting previously unselected package libunistring2:i386.
Preparing to unpack .../13-libunistring2_1.0-1_i386.deb ...
Unpacking libunistring2:i386 (1.0-1) ...
Selecting previously unselected package libidn2-0:i386.
Preparing to unpack .../14-libidn2-0_2.3.2-2build1_i386.deb ...
Unpacking libidn2-0:i386 (2.3.2-2build1) ...
Selecting previously unselected package libstdc++6:i386.
Preparing to unpack .../15-libstdc++6_12.3.0-1ubuntu1~22.04_i386.deb ...
Unpacking libstdc++6:i386 (12.3.0-1ubuntu1~22.04) ...
Selecting previously unselected package krb5-locales.
Preparing to unpack .../16-krb5-locales_1.19.2-2ubuntu0.3_all.deb ...
Unpacking krb5-locales (1.19.2-2ubuntu0.3) ...
Selecting previously unselected package libgpm2:i386.
Preparing to unpack .../17-libgpm2_1.20.7-10build1_i386.deb ...
Unpacking libgpm2:i386 (1.20.7-10build1) ...
Preparing to unpack .../18-libncurses5_6.3-2ubuntu0.1_amd64.deb ...
Unpacking libncurses5:amd64 (6.3-2ubuntu0.1) over (6.2-0ubuntu2.1) ...
Preparing to unpack .../19-libtinfo5_6.3-2ubuntu0.1_amd64.deb ...
Unpacking libtinfo5:amd64 (6.3-2ubuntu0.1) over (6.2-0ubuntu2.1) ...
Selecting previously unselected package libtinfo5:i386.
Preparing to unpack .../20-libtinfo5_6.3-2ubuntu0.1_i386.deb ...
Unpacking libtinfo5:i386 (6.3-2ubuntu0.1) ...
Selecting previously unselected package libncurses5:i386.
Preparing to unpack .../21-libncurses5_6.3-2ubuntu0.1_i386.deb ...
Unpacking libncurses5:i386 (6.3-2ubuntu0.1) ...
Selecting previously unselected package libnss-nis:i386.
Preparing to unpack .../22-libnss-nis_3.1-0ubuntu6_i386.deb ...
Unpacking libnss-nis:i386 (3.1-0ubuntu6) ...
Selecting previously unselected package libnss-nisplus:i386.
Preparing to unpack .../23-libnss-nisplus_1.3-0ubuntu6_i386.deb ...
Unpacking libnss-nisplus:i386 (1.3-0ubuntu6) ...
Setting up krb5-locales (1.19.2-2ubuntu0.3) ...
Setting up gcc-12-base:i386 (12.3.0-1ubuntu1~22.04) ...
Setting up libtinfo5:amd64 (6.3-2ubuntu0.1) ...
Setting up libncurses5:amd64 (6.3-2ubuntu0.1) ...
Setting up libcrypt1:i386 (1:4.4.27-1) ...
Setting up libgcc-s1:i386 (12.3.0-1ubuntu1~22.04) ...
Setting up libc6:i386 (2.35-0ubuntu3.8) ...
Setting up libtinfo5:i386 (6.3-2ubuntu0.1) ...
Setting up libstdc++6:i386 (12.3.0-1ubuntu1~22.04) ...
Setting up libkeyutils1:i386 (1.6.1-2ubuntu3) ...
Setting up libgpm2:i386 (1.20.7-10build1) ...
Setting up libssl3:i386 (3.0.2-0ubuntu1.16) ...
Setting up libunistring2:i386 (1.0-1) ...
Setting up libidn2-0:i386 (2.3.2-2build1) ...
Setting up libcom-err2:i386 (1.46.5-2ubuntu1.1) ...
Setting up libncurses5:i386 (6.3-2ubuntu0.1) ...
Setting up libkrb5support0:i386 (1.19.2-2ubuntu0.3) ...
Setting up libk5crypto3:i386 (1.19.2-2ubuntu0.3) ...
Setting up libkrb5-3:i386 (1.19.2-2ubuntu0.3) ...
Setting up libgssapi-krb5-2:i386 (1.19.2-2ubuntu0.3) ...
Setting up libtirpc3:i386 (1.3.2-2ubuntu0.1) ...
Setting up libnsl2:i386 (1.3.0-2build2) ...
Setting up libnss-nisplus:i386 (1.3-0ubuntu6) ...
Setting up libnss-nis:i386 (3.1-0ubuntu6) ...
Processing triggers for libc-bin (2.35-0ubuntu3.8) ...
dengxm2024@PC-202105142413:~$ arm-fsl-linux-gnueabi-gcc -v
Using built-in specs.
Target: arm-fsl-linux-gnueabi
Configured with: /work/arm-toolchains/tmp/src/gcc-4.4.4/configure --build=i686-build_pc-linux-gnu --host=i686-build_pc-linux-gnu --target=arm-fsl-linux-gnueabi --prefix=/work/arm_fsl_gcc_4.4.4_multilib --with-sysroot=/work/arm_fsl_gcc_4.4.4_multilib/arm-fsl-linux-gnueabi/multi-libs --enable-languages=c,c++ --with-pkgversion=4.4.4_09.06.2010 --enable-__cxa_atexit --disable-libmudflap --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-gmp=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --with-mpfr=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --with-ppl=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --with-cloog=/work/arm-toolchains/tmp/arm-fsl-linux-gnueabi/build/static --enable-threads=posix --enable-target-optspace --with-local-prefix=/work/arm_fsl_gcc_4.4.4_multilib/arm-fsl-linux-gnueabi/multi-libs --disable-nls --enable-symvers=gnu --enable-c99 --enable-long-long --enable-multilib --with-system-zlib --enable-lto
Thread model: posix
gcc version 4.4.4 (4.4.4_09.06.2010)

arm-fsl-linux-gnueabi-gcc能正常运行了。

测试helloworld用户侧编译,通过。

测试helloword内核侧编译,报错:

dengxm2024@PC-202105142413:~/linuxProgDir/kernelside_code/hello$ make
make -C /home/dengxm2024/linuxProgDir/kerneldir/linux-2.6.35.3 M=/home/dengxm2024/linuxProgDir/kernelside_code/hello modules
make[1]: Entering directory '/home/dengxm2024/linuxProgDir/kerneldir/linux-2.6.35.3'
  CC [M]  /home/dengxm2024/linuxProgDir/kernelside_code/hello/hello.o
/opt/arm-fsl-linux-gnueabi/bin/../lib/gcc/arm-fsl-linux-gnueabi/4.4.4/../../../../arm-fsl-linux-gnueabi/bin/as: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory
make[2]: *** [scripts/Makefile.build:237: /home/dengxm2024/linuxProgDir/kernelside_code/hello/hello.o] Error 1
make[1]: *** [Makefile:1300: _module_/home/dengxm2024/linuxProgDir/kernelside_code/hello] Error 2
make[1]: Leaving directory '/home/dengxm2024/linuxProgDir/kerneldir/linux-2.6.35.3'
make: *** [Makefile:9: modules] Error 2

安装lib32z1

sudo apt-get install lib32z1

再进行测试,编译通过。

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值