【IMX6ULL学习笔记之Linux系统移植06】——笔记本安装Ubuntu系统开发

背景

最近置办了一台台式机,笔记本电脑性能看不上了,就空置下来,把笔记本安装成Ubuntu系统,专门用来嵌入式学习

重新移植Linux系统,再次学习

总结

  1. U-boot的setenv之后的saveenv,通过屏幕显示的 Writing to MMC(0)... done可以看出,这些个变量是保存在SD卡中的,所以,当SD卡格式化之后,再次烧写U-boot.bin,之前设置的变量也是木有的

笔记本Ubuntu遇到的问题

  1. U-boot烧写进去之后uboot不能ping通Ubuntu

    • 开发板网线和笔记本直连,笔记本通过路由器的Wifi和台式机连接在同一网段,台式机的网线来自路由器

    • 如果笔记本只打开WiFi连接,笔记本可以连接外网,但是和开发板之间不能ping,所以需要把笔记本的WiFi连接和有线连接同时打开,有线连接手动配置IP地址,这样就可以了,既能通过台式机的SSH控制笔记本,开发板也能通过网线和笔记本通信,!!注意:有线连接不要和和WIFI连接的IP在同一网段,

      简单来说就是:开发板和笔记本设置的有线连接IP在 同一网段,WIFI和台式机在同一网段

正点原子提供的NXP官方U-boot

编译
  1. 编译u-boot,需要给笔记本传输NXP官网的U-boot文件,就需要开通TFTP,详见“Ubuntu和Windows文件互传”

  2. 修改Ubuntu中的文件的时候发现VI编辑器好做键和自己学的不一样,安装VIM编辑器

    sudo apt-get install vim

  3. 打算再台式机上通过SSH控制笔记本进行开发,需要开通SSH服务

    • sudo apt-get install openssh-server
    • sudo service ssh start
  4. 解压NXP官网的U-boot文件,解压.tar.bz2文件

    • tar -vxjf xxx -C 指定文件夹
  5. 解压完成之后第一步干啥来着?

    编译!如何编译?

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- xxxx_defconfig

    xxxx_defconfig在哪找?

    U-boot/configs中,NXP官方指定的开发板是14x14的evk开发板,可以找到一个mx6ull_14x14_evk_emmc_defconfig的文件。

    所以这里用的指令是:

    make ARCH-arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_emmc_defconfig

  6. 执行之后,在进行编译

    make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- V=1 -j12

    报错:make:arm-linux-gnueabihf-gcc:命令未找到

    这才想起,没有安装交叉编译器,学习的时候先装的交叉编译器,之后编译的时候没问题,也就不知道啥用了,现在反过来就知道了

  7. 安装交叉编译器

    详见“交叉编译器的安装”

    安装完交叉编译器后,在编译为啥就能编译了呢?是因为把交叉编译器的文件添加到了环境变量中去了

    系统环境变量目录:/etc/profile

    用户本地目录:/usr/local (估计相当于Windows中的C:/programes)

  8. 交叉编译器安装完成再次编译,编译通过

Ubuntu20编译
  1. 报错: arm-linux-gnueabihf-gcc: error: unrecognized -march target: armv5

    找不到解决办法,重装系统18.4.6.。。。。

Ubuntu18.4.6
  1. 编译成功
  2. 修改、移植U-boot
移植U-boot
  1. 下载
  • 使用正点原子提供的imxdownload将编译生成的u-boot.bin下载到SD卡,执行 ./imxdownload u-boot.bin /dev/sdc

报错:./imxdownload: cannot execute binary file: 可执行文件格式错误

  • 可能是因为我笔记本装的32位的Ubuntu系统

解决方法:将imxdownload的源文件下载下来在32位的Ubuntu系统中编译一下就好

  • imxdownload源码下载地址:

https://alientek-linux.coding.net/public/imx6ull/05_Tools/git/files/master/02%E3%80%81Ubuntu%E4%B8%8B%E8%A3%B8%E6%9C%BA%E7%83%A7%E5%86%99%E8%BD%AF%E4%BB%B6

  • 将imxdownload.c 和 imxdownload.h文件放到32为Ubuntu系统中,执行 sudo gcc imxdownload.c -o imxdownload

  • 然后给予权限 chmod 777 imxdownload

  • 再次执行 ./imxdownload u-boot.bin /dev/sdc,成功下载

修改
自己找的NXP官方提供的U-boot
找源码

我想找到NXP的U-boot的源码:

目前找到的链接:https://source.denx.de/u-boot/u-boot

下载贼慢

  1. 下载完成,解压,在configs中查找与mx6ull相关的defconfig,找到一个mx6ull_14x14_evk_defconfig

  2. 编译 执行 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_defconfig

    • 报错 /bin/sh: 1: bison: not found

      执行 sudo apt-get install bison -y

    • 再次编译 报错 /bin/sh: 1: flex: not found

      执行 sudo apt-get install flex

    • 再次编译 编译通过

  3. 执行 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- V=1 -j12

    • 报错:Your GCC is older than 6.0 and is not supported

    • 查看gcc版本 gcc -v

      gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.11)

      确实有点低,升级

  4. 升级交叉编译器

    • 下载地址 https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/
    • 找一个6.0以上的版本下载
  5. 用Ubuntu系统软件升级失败,重装系统20的

  6. 执行 sudo apt-get install arm-linux-gnueabihf

  7. 编译报错2、3,按照上述解决

  8. 执行 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- V=1 -j12

    报错:fatal error:openssl/evp.h:没有那个文件或者目录

    执行:sudo apt-get install openssl-dev

    如果报错 无法定位软件包 openssl-dev

    则将两个分开安装就好

    sudo apt-get install openssl

    sudo apt-get install libssl-dev

  9. 再次执行,编译通过

笔记本安装Ubuntu
  1. 镜像文件下载地址: https://ubuntu.com/download/desktop

  2. 制作启动盘下载地址: https://rufus.ie/downloads/

  3. 开启SSH

    • sudo apt-get install openssh-server
    • sudo service ssh start
  4. 安装VIM编辑器

    sudo apt-get install vim

  5. 关闭笔记本锁屏

    执行 sudo vim /etc/systemd/logind.conf

    修改 #HandleLidSwitch=suspend

    HandleLidSwitch=ignore

git

每次输入都要密码:

git config --global credential.helper store

第四章

  • 安装Ubuntu14虚拟机系统
  • 扩展适应屏幕
  • 安装搜狗输入法
    • sudo apt-get install fcitx-table-wbpy
    • 下载对应安装包
    • https://pinyin.sougou.com/linux/guide
  • 安装vstfp
    • sudo apt-get install vsftpd

第五章

常用命令

压缩解压

  • *.tar 用 tar –xvf 解压
  • .gz 用 gzip -d或者gunzip 解压
  • *.tar.gz和*.tgz 用 tar –xzf 解压
  • *.bz2 用 bzip2 -d或者用bunzip2 解压
  • .tar.bz2用tar –xjf 解压
  • *.Z 用 uncompress 解压
  • .tar.Z 用tar –xZf 解压
  • *.rar 用 unrar e解压*
  • .zip 用 unzip 解压

你可能感兴趣的:(NXP-IMX6ULL,Linux学习过程笔记,linux,ubuntu,学习)