最近置办了一台台式机,笔记本电脑性能看不上了,就空置下来,把笔记本安装成Ubuntu系统,专门用来嵌入式学习
重新移植Linux系统,再次学习
Writing to MMC(0)... done
可以看出,这些个变量是保存在SD卡中的,所以,当SD卡格式化之后,再次烧写U-boot.bin,之前设置的变量也是木有的U-boot烧写进去之后uboot不能ping通Ubuntu
开发板网线和笔记本直连,笔记本通过路由器的Wifi和台式机连接在同一网段,台式机的网线来自路由器
如果笔记本只打开WiFi连接,笔记本可以连接外网,但是和开发板之间不能ping,所以需要把笔记本的WiFi连接和有线连接同时打开,有线连接手动配置IP地址,这样就可以了,既能通过台式机的SSH控制笔记本,开发板也能通过网线和笔记本通信,!!注意:有线连接不要和和WIFI连接的IP在同一网段,
简单来说就是:开发板和笔记本设置的有线连接IP在 同一网段,WIFI和台式机在同一网段
编译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)
交叉编译器安装完成再次编译,编译通过
报错: arm-linux-gnueabihf-gcc: error: unrecognized -march target: armv5
找不到解决办法,重装系统18.4.6.。。。。
./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的源码:
目前找到的链接: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
报错: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)
确实有点低,升级
升级交叉编译器
https://releases.linaro.org/components/toolchain/binaries/latest-7/arm-linux-gnueabihf/
用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
再次执行,编译通过
镜像文件下载地址: 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 config --global credential.helper store
*.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 解压