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

2023-05-16

背景

最近置办了一台台式机,笔记本电脑性能看不上了,就空置下来,把笔记本安装成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 解压
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 自动驾驶 2D 单目\双目\多目视觉方法 一(Pseudo-LiDAR,Mono3D,FCOS3D,PSMNet)

    文章目录 概述单目3D感知3D目标检测单目深度估计 双目3D感知双目3D目标检测双目深度估计 Pseudo LiDAR1 核心思路总结2 要点分析 Mono3DFCOS3DPSMNet 概述 自动驾驶中必不可少的3D场景感知 因为深度信息
  • [C语言] 利用库函数实现查找指定键值对功能

    1 功能描述 键值对 xff08 key 61 value xff09 字符串 xff0c 在开发中经常使用 要求1 xff1a 请自己定义一个接口 xff0c 实现根据key获取 要求2 xff1a 编写测试用例 要求3 xff1a 键值
  • 【C++】Clang-Format:代码自动格式化(看这一篇就够了)

    文章目录 Clang format格式化C代码1 引言 amp 安装1 1引言1 2 安装 2 配置字解释2 1 language 编程语言2 2 BaseOnStyle 基础风格2 3 AccessModifierOffset 访问性修饰
  • 生产者消费者问题(Producer-consumer problem)

    概述 生产者消费者问题 xff0c 也称有限缓冲问题 xff08 英语 xff1a Bounded buffer problem xff09 xff0c 是一个多线程同步问题的经典案例 该问题描述了两个共享固定大小缓冲区的线程 即所谓的 生
  • Yolov3+C+++opencv+VS2015训练过程及检测(很详细)

    运行环境 我的运行环境是C 43 43 43 opencv 43 VS2015 43 yolov3 xff0c 切记opencv的版本最好是opencv 3 4 2版以上的 xff0c 这个版本以后才有了DNN函数库来实现机器学习的相关内容
  • RAID容量在线计算器

    RAID容量计算器在线工具 xff0c 可以简单快速地获取各RAID需要的硬盘 xff0c 可用容量 以下地址任意打开一个即可快速获取RAID硬盘 容量 好用的工具就是要给大家一起分享 https www synology cn zh cn
  • C++代码自动检测工具clang-format和clang-tidy

    文章目录 96 clang format 96 安装方法命令格式使用案例更多关于 96 clang format 96 96 clang tidy 96 简单介绍检测原理安装方法使用方法更多关于 96 clang tidy 96 clang
  • Python作为人工智能首选编程语言,你能了解多少呢?

    为何人工智能 AI 首选Python xff1f 读完这篇文章你就知道了 我们看谷歌的TensorFlow基本上所有的代码都是C 43 43 和Python xff0c 其他语言一般只有几千行 如果讲运行速度的部分 xff0c 用C 43
  • 错误代码:WHEA_INTERAL_ERROR—蓝屏

    非常奇怪哦 xff0c 什么都没干 xff0c 笔记本电脑打不开 xff0c 蓝屏 xff0c 呀呀呀 xff0c 搞了一个小时 xff0c 最后终于解决解决办法很简单 xff0c 拔掉所有外设 xff0c 如鼠标 xff0c 键盘 xff
  • NB-IoT技术实战开发 ----- NB-IoT介绍

    一 1 初识NB IoT 1 NB IoT介绍2 物联网技术发展2 1有线物联网2 2 无线网络网 3 为什么需要NB IOT4 NB IOT优势5 NB IOT解决方案亮点和价值5 1 广覆盖5 2 低功耗5 3低成本5 4 大连接 6
  • 已知两个长度分别为m 和 n 的升序链表,若将它们合并为一个长度为 m+n 的降序链表,则最坏情况下的时间复杂度是()

    王道书第七面的第六题 xff0c 理解了一下午终于解决 xff01 算法的本质 xff1a 两个表进行比较 xff0c 其中一个表比较完之后 xff0c 剩下的直接插入 因此最好的情况 xff0c 不用想的太复杂 xff0c 其实就只是短的
  • 用例间的三种关系(小白必看)

    用例间的三种关系 xff0c 瞎子都能看懂 xff01 xff01 xff01 1 包含2 泛化3 扩展 1 包含 指向分解出来的用例 把一个复杂的步骤分解为较小的步骤 2 泛化 指向父用例 继承关系 xff0c 子用例有特别功能 eg1
  • ev加密视频转换成MP4格式,亲测可用

    需要的话私信我即可 ev4加密视频转换 觉得有用的话点个关注吧 xff0c 谢谢大家 需要该破解软件的话 xff0c 直接评论区留言即可 xff0c 我每天都会看csdn的 xff0c 杜绝二次间接收费 xff0c 全程免费分享 xff0c
  • 机器学习个人总结(王道版)

    机器学习流程 xff1a 预处理 gt 特征工程 gt 机器学习算法 选择合适的算法 gt 评估 强化学习 xff1a 用人工智能去调参 数据也是一种财富离散型数据 xff1a 由记录不同类别个体的数目所得到的数据 xff0c 又称计数数据
  • 深度学习(王道学习篇)

    在ubuntu中安装虚拟环境 设置pip安装源步骤 1 mkdir pip 2 cd pip 3 vim pip conf 4 往pip conf放入 global timeout 61 6000 index url 61 http pyp
  • python程序打包成exe文件

    1 打包成多文件 把你的运行环境导出来 pip intsall requests pip freeze span class token operator gt span requirets span class token punctua
  • K8S之Docker容器的备份和容灾方案

    数据安全在当今复杂的IT世界中变得越来越重要 xff0c 甚至超越了网络安全和信息安全 xff0c 因为一切企业基本上都是以业务和应用的线上商业发展之道 所以大家变得尤为重视 Docker 是一个开源的应用容器引擎 xff0c 基于 Go
  • 基于matlab的车牌识别系统的实现

    1 项目背景及目标 随着人们生活水平的提高 xff0c 机动车辆的数量也逐渐增加 xff0c 2020年全国的机动车保有总数量为3 72亿辆 xff0c 其中汽车保有量为2 81亿辆 xff0c 占75 54 如此庞大的汽车保有量 xff0
  • Linux命令-find命令之exec

    exec 参数后面跟的是command命令 xff0c 它的终止是以 为结束标志的 xff0c 所以这句命令后面的分号是不可缺少的 xff0c 考虑到各个系统中分号会有不同的意义 xff0c 所以前面加反斜杠 花括号代表前面find查找出来
  • ubuntu18.04 安装新版本的clang-format 9

    在安装RoboWare Studio过程中 xff0c 为了获得更好的代码阅读体验 xff0c 自动格式化整理代码 xff0c 需要安装clang format xff1a sudo apt get update sudo apt get

随机推荐