@

1 使ubuntu支持两个版本的编译链:

/etc/environment改为如下,重启生效后,

当我们指定CROSS_COMPILE=arm-none-linux-gnueabi-,系统肯定会用4.3.2的编译器;

当我们指定CROSS_COMPILE=arm-linux-时,两个版本都支持,用哪个估计和环境变量设置的顺序有关,所以我使用arm-linux-时都加上绝对路径:CROSS_COMPILE=/work/tools/gcc-3.4.5-glibc-2.3.6/bin/arm-linux-,这样就明确知道用的哪个编译器了。

echo $PATH

/usr/local/arm/4.3.2/bin:/work/tools/gcc-3.4.5-glibc-2.3.6/bin/

2 版本问题:

使用3.4.5编译链时,CROSS_COMPILE设置为:arm-linux-

使用4.3.2、4.4.3编译链时,CROSS_COMPILE最好设置为:arm-none-linux-gnueabi-

uboot2010.03

3.4.5、4.3.2编译出来的都ok,**4.4.3编译出来的网络ping不通 **;

Linux2.6

3.4.5、4.3.2、4.4.3编译出来的都ok;

4.3.2、4.4.3等高版本编译器编译时必须在menuconfig中选中如下项,不然挂载根文件系统后,有输入和输出回显,但是进不了文件系统命令行!

Kernel Features --->

[※] Use the ARM EABI to compile the kernel

[※] Allow old ABI binaries to run with this kernel (EXPERIMENTAL)

Linux4.14

得用高版本的编译器,例如4.4.3的

busybox1.7.0 //3.4.5、4.3.2、4.4.3编译出来的都ok;

busybox1.20.2 //3.4.5、4.3.2、4.4.3编译出来的都ok;

busybox1.33.1 //4.3.2、4.4.3编译出来的都ok;

使用3.4.5时,拷贝动态链接库:

cp xxx/gcc-3.4.5-glibc-2.3.6/arm-linux/lib/*.so* /home/test/rootfs/lib –d

使用4.3.2时,拷贝动态链接库:

cp xxx/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib/*.so* /home/test/rootfs/lib –d

使用4.4.3(4.5.1)时,拷贝动态链接库:

cp xxx/4.4.3/arm-none-linux-gnueabi/lib/*.so* /home/test/rootfs/lib –d

UBOOT、kernel、busybox用不同版本的编译链编出来的没关系,可以运行

例如3.4.5编译uboot、4.3.2编译kernel、3.4.5编译busybox,组合起来可以运行。

busybox和rootfs使用的动态库需要同一个版本的编译器。

3 ubuntu版本的vscode下载网速太慢:

首先去vscode官网下载适合ubuntu的deb文件,弹出下载框如下;

复制下载网址,将/stable前换成 vscode.cdn.azure.cn

就可以快速下载。

4 ubuntu占用空间过大

使用df -hl可以查看是哪个文件夹过大,去对应文件夹进行文件清理;

如果用命令查看ubuntu实际占用内存不大,但其镜像文件vmdk占用却很大,那么需要进行磁盘清理:进入ubuntu虚拟机,执行

sudo vmware-toolbox-cmd disk shrink /

最终vmdk占用空间和实际的就一致了。

磁盘清理期间我遇到问题

未能压缩“......vmdk”: 文件系统的空间不足,无法执行选定的操作。

原因是假如你的虚拟机占用了100G,执行shrink 指令时需要临时再占用大约100G, 即总共需要磁盘约200G剩余空间才能正确执行。所以必须得把磁盘空间留出这么多,才能执行以上指令。

5 执行make zImage 出错 lzop: not found

找关键词 error或者/bin/sh . :not found定位问题原因

比如提示 /bin/sh: 1: lzop: not found

则安装:

sudo apt install lzop

如果上一步执行时又提示

E: Unmet dependencies. Try ‘apt --fix-broken install’ with no packages (or specify a solution).

那么执行以下命令:

sudo apt-get --fix-broken install

6 make busybox报错:

使用arm-linux-gcc3.4.5编译busybox1.20.2时报错如下:

miscutils/nandwrite.c:49:26: mtd/mtd-user.h: No such file or directory

参考网友解决方案:

cp /usr/include/mtd/  ./include/mtd/  -a

Linux移植到自己的开发板(四)问题汇总的更多相关文章

  1. Linux移植到自己的开发板(二)UBOOT和Linux

    @ 目录 一.uboot跳转到Linux 二. Linux内核启动之解压阶段 三. Linux内核启动之汇编阶段 插曲:关于Kconfig和Makefile 四. Linux内核启动之C语言阶段 五. ...

  2. Linux移植到自己的开发板(三)根文件系统

    @ 目录 1 Linux内核配置 2 ramdisk制作 3 busybox配置 4 genext2fs生成镜像 为了快速调试,采用ramdisk进行根文件系统测试.要使内核能挂载ramdisk根文件 ...

  3. Linux移植到自己的开发板(一)环境搭建

    环境搭建 vmware:VMware Workstation 15 Pro Linux系统:Ubuntu16.04 x64 1. 在Windows系统安装VMware15软件: 2. 网上下载并解压u ...

  4. 物联网操作系统HelloX已成功移植到MinnowBoard MAX开发板上

    在HelloX开发团队的努力下,以及Winzent Tech公司(总部在瑞典斯德哥尔摩)的支持下,HelloX最新版本V1.78已成功移植到MinnowBoard MAX开发板上.相关源代码已经发布到 ...

  5. live555 交叉编译移植到海思开发板

    本文章参考了.http://blog.csdn.net/lawishere/article/details/8182952,写了hi3518的配置说明.特此感谢 https://blog.csdn.n ...

  6. 移植Mplayer到OK6410开发板

    移植Mplayer到OK6410开发板 作者:vasage 项目需要,需要将Mplayer移植到开发板上,所以今天花了一下下午成功移植,其中参考很多文档,后发现许多文档陈旧,些许文档有少量错误,所以这 ...

  7. 迅为三星Exynos 4412开发板四核Cortex-A9ARM安卓linux开发板

    开发板光盘资料包含:原理图(PDF格式).底板PCB(Allegro格式).驱动程序源码.芯片和LCD数据手册.开发环境.产品使用手册. 4412开发板简介: iTOP-Exynos4412开发板采用 ...

  8. 小白自制Linux开发板 四. 通过SPI使用ESP8266做无线网卡

    本文章基于 WhyCan Forum(哇酷开发者社区) https://whycan.com/t_4149.htmlhttps://whycan.com/t_5870.html整理而成. 为了尊重原作 ...

  9. 移植BOA服务器到开发板

    移植BOA 服务器到GEC210 开发板 开发平台主机:VMWare--Ubuntu 10.04 LTS开发板:GEC210 / linux-2.6.35.7编译器:arm-linux-gcc-4.5 ...

随机推荐

  1. Solution -「APIO/CTSC 2007」「洛谷 P3620」数据备份

    \(\mathcal{Description}\)   Link.   给定升序序列 \(\{x_n\}\) 以及整数 \(k\),在 \(\{x_n\}\) 中选出恰 \(k\) 对 \((x_i, ...

  2. 【ybtoj】二分算法例题

    [基础算法]第三章 二分算法 例一 数列分段 题目描述 对于给定的一个长度为N的正整数数列A,现在将其分成M段,并要求每段连续,且每段和的最大值最小. 输入格式 第1行包含两个正整数N,M. 第2行包 ...

  3. MyBatis功能点一:二级缓存cache

    对于Mybatis缓存分作用域等维度区别一.二级缓存特点如下图: 分析缓存源码首先得找到缓存操作的入口:前面已经分析,sqlsesion.close()仅对一级缓存有影响,而update等对一/二级缓 ...

  4. [LeetCode]1342. 将数字变成 0 的操作次数

    给你一个非负整数 num ,请你返回将它变成 0 所需要的步数. 如果当前数字是偶数,你需要把它除以 2 :否则,减去 1 . 示例 1: 输入:num = 14 输出:6 解释: 步骤 1) 14 ...

  5. 实例详解 Java 死锁与破解死锁

    锁和被保护资源之间的关系 我们把一段需要互斥执行的代码称为临界区.线程在进入临界区之前,首先尝试加锁 lock(),如果成功,则进入临界区,此时我们称这个线程持有锁:否则呢就等待,直到持有锁的线程解锁 ...

  6. [办公软件]Mac安装office 2019官方原版安装包并激活

    office 2019介绍 Office 2019 mac简体中文版已经推出,具体包含Word, Excel, PowerPoint, Outlook, OneNote五大套件,注册登陆用户可以漫游文 ...

  7. [Matlab]三维曲面绘制实例

    [x,y] = meshgrid(-8:0.5:8); z = sin(sqrt(x.^2+y.^2))./sqrt(x.^2+y.^2+eps); subplot(2,2,1); mesh(x,y, ...

  8. [题解]第十一届北航程序设计竞赛预赛——F.序列

    题目描述 (1,--,n)的一个排列S,定义其对应的权值F[S]为:将S划分为若干段连续子序列,每个子序列都是上升序列,F[S]的值等于能划分出的最小段数. 求n的全排列的F[S]的和,答案mod(1 ...

  9. GAN实战笔记——第五章训练与普遍挑战:为成功而GAN

    训练与普遍挑战:为成功而GAN 一.评估 回顾一下第1章中伪造达・芬奇画作的类比.假设一个伪造者(生成器)正在试图模仿达・芬奇,想使这幅伪造的画被展览接收.伪造者要与艺术评论家(判别器)竞争,后者试图 ...

  10. oracle plsql手动修改数据

    转至:https://blog.csdn.net/Ranchonono/article/details/87690830?spm=1001.2101.3001.6650.1&utm_mediu ...