背景
最近置办了一台台式机,笔记本电脑性能看不上了,就空置下来,把笔记本安装成Ubuntu系统,专门用来嵌入式学习
重新移植Linux系统,再次学习
总结
- U-boot的setenv之后的saveenv,通过屏幕显示的
Writing to MMC(0)... done
可以看出,这些个变量是保存在SD卡中的,所以,当SD卡格式化之后,再次烧写U-boot.bin,之前设置的变量也是木有的
笔记本Ubuntu遇到的问题
-
U-boot烧写进去之后uboot不能ping通Ubuntu
-
开发板网线和笔记本直连,笔记本通过路由器的Wifi和台式机连接在同一网段,台式机的网线来自路由器
-
如果笔记本只打开WiFi连接,笔记本可以连接外网,但是和开发板之间不能ping,所以需要把笔记本的WiFi连接和有线连接同时打开,有线连接手动配置IP地址,这样就可以了,既能通过台式机的SSH控制笔记本,开发板也能通过网线和笔记本通信,!!注意:有线连接不要和和WIFI连接的IP在同一网段,
简单来说就是:开发板和笔记本设置的有线连接IP在 同一网段,WIFI和台式机在同一网段
正点原子提供的NXP官方U-boot
编译
-
编译u-boot,需要给笔记本传输NXP官网的U-boot文件,就需要开通TFTP,详见“Ubuntu和Windows文件互传”
-
修改Ubuntu中的文件的时候发现VI编辑器好做键和自己学的不一样,安装VIM编辑器
sudo apt-get install vim
-
打算再台式机上通过SSH控制笔记本进行开发,需要开通SSH服务
sudo apt-get install openssh-server
sudo service ssh start
-
解压NXP官网的U-boot文件,解压.tar.bz2
文件
-
解压完成之后第一步干啥来着?
编译!如何编译?
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
-
执行之后,在进行编译
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- V=1 -j12
报错:make:arm-linux-gnueabihf-gcc:命令未找到
这才想起,没有安装交叉编译器,学习的时候先装的交叉编译器,之后编译的时候没问题,也就不知道啥用了,现在反过来就知道了
-
安装交叉编译器
详见“交叉编译器的安装”
安装完交叉编译器后,在编译为啥就能编译了呢?是因为把交叉编译器的文件添加到了环境变量中去了
系统环境变量目录:/etc/profile
用户本地目录:/usr/local (估计相当于Windows中的C:/programes)
-
交叉编译器安装完成再次编译,编译通过
Ubuntu20编译
-
报错: arm-linux-gnueabihf-gcc: error: unrecognized -march target: armv5
找不到解决办法,重装系统18.4.6.。。。。
Ubuntu18.4.6
- 编译成功
- 修改、移植U-boot
移植U-boot
-
下载
- 使用正点原子提供的imxdownload将编译生成的u-boot.bin下载到SD卡,执行
./imxdownload u-boot.bin /dev/sdc
报错:./imxdownload: cannot execute binary file: 可执行文件格式错误
解决方法:将imxdownload的源文件下载下来在32位的Ubuntu系统中编译一下就好
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
下载贼慢
-
下载完成,解压,在configs中查找与mx6ull相关的defconfig,找到一个mx6ull_14x14_evk_defconfig
-
编译 执行 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
-
再次编译 编译通过
-
执行 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- V=1 -j12
-
升级交叉编译器
- 下载地址
https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/
- 找一个6.0以上的版本下载
-
用Ubuntu系统软件升级失败,重装系统20的
-
执行 sudo apt-get install arm-linux-gnueabihf
-
编译报错2、3,按照上述解决
-
执行 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
-
再次执行,编译通过
笔记本安装Ubuntu
-
镜像文件下载地址: https://ubuntu.com/download/desktop
-
制作启动盘下载地址: https://rufus.ie/downloads/
-
开启SSH
sudo apt-get install openssh-server
sudo service ssh start
-
安装VIM编辑器
sudo apt-get install vim
-
关闭笔记本锁屏
执行 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(使用前将#替换为@)