• 【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 解压
  • 相关阅读:
    iOS经典面试题之深入解析objc对象的内存空间、数据结构以及isa指针的理解
    计算节点的网络地址(用16进制表示)
    为Android组件化项目搭建Maven私服
    【NumPy】数组的维度变换在DL|ML数据集处理时的妙用
    【C语言从入门到入土】第一章前言
    YOLO-NAS详细教程-实现图像分割
    Docker 基础命令操作
    Java多线程基础
    GPU--学习笔记
    3--Linux:基础命令2
  • 原文地址:https://blog.csdn.net/weixin_43739167/article/details/126312444