IOT调试环境搭建

发布于 2021-05-12  670 次阅读


搭了一天的环境,被坑死,呜呜呜

环境:Ubuntu 16.04

工具安装

SquashFS:用于Linux内核的只读文件系统
sudo apt-get install zlib1g-dev liblzma-dev liblzo2-dev
sudo git clone https://github.com/devttys0/sasquatch
cd sasquatch && sudo ./build
Binwalk
sudo apt-get install binwalk

环境安装

qemu
sudo apt-get install qemu 
sudo apt-get install qemu-user-static
sudo apt-get install qemu-system
sudo apt-get install uml-utilities
sudo apt-get install bridge-utils
交叉编译环境buildroot

前面顺着来没有问题,到这我就开始踩坑了。

sudo apt-get install libncurses5-dev patch
wget http://buildroot.uclibc.org/downloads/snapshots/buildroot-snapshot.tar.bz2
tar -jxvf buildroot-snapshot.tar.bz2
cd buildroot/
make clean
make menuconfig

之后会出来个GUI,
target options->target arch 选项里面选择自己要编译的架构,MIPS(little endian),mips32小端模式。
toolchain-->Kernel Headers 选择自己主机的内核版本或者更低的版本,保存退出。

之后输入 sudo make 进行编译。

打开/etc/profile添加:

export PATH=$PATH:/home/YOUR_NAME/buildroot/output/host/bin;

source /etc/profile 使其生效。

之后写一个C语言程序,使用 mipsel-linux-gcc 来进行编译,运行程序。

So4ms@ubuntu:~/Desktop$ mipsel-linux-gcc demo.c -o demo -static
So4ms@ubuntu:~/Desktop$ ./demo
Hello World!

使用file命令查看程序:

So4ms@ubuntu:~/Desktop$ file demo
demo: ELF 32-bit LSB executable, MIPS, MIPS32 version 1 (SYSV), statically linked, not stripped

大功告成!

踩的坑

target options->target arch 选项里面选择自己要编译的架构时,看的别的教程没说清楚,也可能是我自己憨批了,先显示出来的是i386,我就以为不能选择mips了,要在i386处按下回车就可以进行选择了。

虚拟机的内存不能分配少了,不然在make的时候就会失败,编译不全,2G内存是不够的,开始我只分配了2G的内存,弄了半天都不行,后面改成4G就可以了。