openwrt烧写并实现一个简单的helloworld程序

烧写openwrt

  1. 安装相关依赖库
sudo apt-get install gcc sudo apt-get install g++ sudo apt-get install binutils sudo apt-get install patch sudo apt-get install bzip2 sudo apt-get install flex sudo apt-get install bison sudo apt-get install make sudo apt-get install autoconf sudo apt-get install gettext sudo apt-get install texinfo sudo apt-get install unzip sudo apt-get install sharutils sudo apt-get install subversion sudo apt-get install libncurses5-dev sudo apt-get install ncurses-term sudo apt-get install zlib1g-dev sudo apt-get install gawksudo apt-get install asciidocsudo apt-get install libz-devsudo apt-get install git git-man liberror-perl libsigsegv2
  1. 下载openwrt
    github地址

branches可以选择相应版本这里选择的是openwrt-18.06
5. 更新源码
cd /openwrt
./scripts/feeds update –a
./scripts/feeds install –a

  1. 配置硬件
    输入make menuconfig
    openwrt烧写并实现一个简单的helloworld程序_第1张图片
    按Exit保存退出
    打开目录下openwrt/target/linux/ramips/dts选择对应的器件的dts文件
    sudo gedit MT7628.dts
    openwrt烧写并实现一个简单的helloworld程序_第2张图片

    将reg = <>修改为reg = <0x0 0x4000000>此处为了修改烧录进板子的RAM

  2. 编译
    make V=99
    编译完成后在/openwrt/bin/targets/ramips/mt76x8/目录下可以找到文件
    openwrt-ramips-mt76x8-mt7628-squashfs-sysupgrade.bin

  3. 下载SecureCRT、Tftpd32/64
    下载完成后点击File->Quick Connect
    openwrt烧写并实现一个简单的helloworld程序_第3张图片
    选择Serial模式串口号打开控制面板,设备管理器,端口查看
    openwrt烧写并实现一个简单的helloworld程序_第4张图片
    串口波特率可以更改
    接着打开Tftpd32/64,在Current Directory一栏添加openwrt编译后生成的bin文件所在的文件夹也就是前面的
    openwrt-ramips-mt76x8-mt7628-squashfs-sysupgrade.bin
    openwrt烧写并实现一个简单的helloworld程序_第5张图片

Server interface一栏添加主机IP号(注意主机IP号要改成与板子同一网段例子打开控制面板->网络连接右键以太网属性点击Internet协议版本4(TCP/IPv4))
openwrt烧写并实现一个简单的helloworld程序_第6张图片

  1. 开发板按下重启模块或者重新上电,SecureCRT会显示如下图
    openwrt烧写并实现一个简单的helloworld程序_第7张图片 按下2
    在这里插入图片描述
    按下Y
    openwrt烧写并实现一个简单的helloworld程序_第8张图片
    Input device IP输入板子的IP地址
    Input server IP输入电脑IP
    Input Linux Kernel filename输入的是openwrt编译后生成的bin文件openwrt-ramips-mt76x8-mt7628-squashfs-sysupgrade.bin,这里改为1.bin。
    回车
    openwrt烧写并实现一个简单的helloworld程序_第9张图片
    看到一连串”#”表示Uboot正在从TFTP服务器上将固件文件下载至ram上,下载完成后Uboot将擦除FLASH并将固件写入
    openwrt烧写并实现一个简单的helloworld程序_第10张图片
    烧录完成。

  2. 配置交叉编译环境
    打开openwrt文件下staging_dir/toolchain-mipsel_24kc_gcc-7.4.0_musl/bin文件右键bin文件终端打开输入pwd得到bin文件目录
    在这里插入图片描述
    修改/etc/profile文件在文集末尾添加PATH与STAGING_DIR文件目录
    sudo gedit /etc/profile
    在这里插入图片描述

  3. 检查是否将路径加入到PATH
    echo $PATH
    在这里插入图片描述
    显示内容有/toolchain-mipsel_24kc_gcc-7.4.0_musl/bin

  4. 验证是否成功
    mipsel-openwrt-linux-gcc -v
    openwrt烧写并实现一个简单的helloworld程序_第11张图片

  5. 编译一个helloworld程序,进入到放置的helloworld.c文件的目录下
    在这里插入图片描述
    mipsel-openwrt-linux-gcc helloworld.c -o hello
    生成hello执行文件
    在这里插入图片描述

  6. 将文件传输到板子上
    点击虚拟机选项->设置->网络适配器->桥接模式
    点击编辑->虚拟机网络编辑器->更改设置->桥接到 选择板子
    打开终端尝试是否能ping通板子
    ping 192.168.1.1
    openwrt烧写并实现一个简单的helloworld程序_第12张图片

  7. 输入scp hello [email protected]?
    在这里插入图片描述

  8. 输入ssh [email protected]进入目标机
    openwrt烧写并实现一个简单的helloworld程序_第13张图片
    若出现Linux远程连接ssh时提示:IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
    解决办法:
    #rm -rf ~/.ssh/known_hosts
    删除后再此尝试连接或者拷贝就可以了。

  9. 输入ssh [email protected]进入目标机
    cd /
    ls
    在这里插入图片描述
    可以看到hello文件成功传入
    ./hello
    成功运行
    在这里插入图片描述

  10. 烧录进去后可用内存过少的问题
    找到相应型号的dts文件
    sudo gedit MT7628.dts
    openwrt烧写并实现一个简单的helloworld程序_第14张图片
    Firmware修改为0x2800000

你可能感兴趣的:(嵌入式板子,openwrt)