步骤:

1  从以太网引导启动。由于我们实验室在服务器上放了一个openwrt镜像,安装时先从以太网启动,将服务器上的镜像载入到RAM中启动系统。

2  用SCP将在PC上编译好的openwrt-XXX.elf和openwrt-XXX-rootfs。tar.gz传输到路由中。这两个文件处于./openwrt/trunk/bin/ar71xx中,前者是内核可执行文件,后者为文件系统。

  scp <src> <dst> : 从src通过SSH复制到dst。双方需要安装openssh-server和openssh-client。

如:scp 172.12.xxx.xxx:/opt/openwrt/trunk/bin/ar71xx/XXX.elf /   #将172.12.xxx.xxx主机上某个路径下的某文件,复制到本机的根目录

3  在路由器上,用dmesg查看nand上的各个mtdblock对应的内容是什么。找到下面这段:

[ 1.010000] Creating 4 MTD partitions on "spi0.0":
[ 1.010000] 0x000000000000-0x00000000b000 : "routerboot"
[ 1.020000] 0x00000000b000-0x00000000c000 : "hard_config"
[ 1.030000] 0x00000000d000-0x00000000f000 : "bios"
[ 1.030000] 0x00000000f000-0x000000010000 : "soft_config"
[ 1.040000] NAND flash driver for RouterBoard 4xx series version 0.2.0
[ 1.050000] NAND device: Manufacturer ID: 0xad, Chip ID: 0x76 (Hynix NAND 64MiB 3,3V 8-bit)
[ 1.060000] Scanning device for bad blocks
[ 1.910000] Creating 3 MTD partitions on "NAND 64MiB 3,3V 8-bit":
[ 1.920000] 0x000000000000-0x000000040000 : "booter"
[ 1.920000] 0x000000040000-0x000000600000 : "kernel"
[ 1.930000] 0x000000600000-0x000004000000 : "rootfs"
[ 1.940000] mtd: partition "rootfs" set to be root filesystem

可用grep从dmesg中找到kernel和rootfs相关的信息。

这是创建mtd分区时的内核输出信息。可以看出在我的系统里面,按照先后顺序创建了7个分区(从0开始计数),因此kernel为mtdblock5,文件系统是mtdblock6。

4  清空内核的mtdblock,并将其挂载到mnt目录下,然后内核镜像复制进去:

 mtd erase kernel
mount /dev/mtdblock5 /mnt
mv XXX.elf /mnt/kernel #注意文件名必须是kernel

5  挂载文件系统的mtdblock,并在此处将文件系统解压:

mtd erase rootfs
mount /dev/mtdblock6 /mnt
tar zxvf XXX.tar.gz /mnt/

如果在解压时报错了,可以先进入到mnt,然后将tar.gz文件解压到当前目录:

cd /mnt
tar zxvf XXX.tar.gz

6 自此,内核和文件系统都做好了,重启,并从nand引导启动。

其他命令:

df:  查看是否挂在成功,

如:df -h

查看mtd设备:cat /proc/mtd

【工具】openwrt安装记录的更多相关文章

  1. linux如何ARP嗅探 Linux下嗅探工具Dsniff安装记录

      先来下载依赖包 和一些必须要用到的工具 我这里用的是 dsniff-2.3 的版本 wget http://www.monkey.org/~dugsong/dsniff/dsniff-2.3.ta ...

  2. 图像标注工具labelImg安装记录

    这里仅记载下labelImg的安装过程,因为有坑. 我的安装方式是从源码编译,环境ubuntu16.04,一开始是使用python2安装,从github上下载好源码,然后执行安装命令 sudo apt ...

  3. 关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用

    关于node.js和npm,cnpm的安装记录以及gulp自动构建工具的使用   工作环境:window下 在一切的最开始,安装node.js (中文站,更新比较慢http://nodejs.cn/) ...

  4. Hadoop集群中pig工具的安装过程记录

    在Hadoop环境中安装了pig工具,安装过程中碰到了一些问题,在此做一下记录:   主要安装流程参考:http://www.cnblogs.com/yanghuahui/p/3768270.html ...

  5. ASUS RT-N16 使用OpenWrt 安装 ss记录

    本文用于记录一下使用ASUS RT-N16 使用OpenWrt 安装 shadowsocks的过程. 前后一共折腾了一个星期,原先使用的是tomato固件,但是在配置iptables的过程中,执行 r ...

  6. [转]linux下iftop工具的安装与使用详解(图文)——实时的网络流量,监控TCP/IP连接(单机)

    原文链接:http://www.jbxue.com/LINUXjishu/10735.html 在linux中监控系统资源.进程.内存占用等信息,可以使用top命令.查看网络状态可以使用netstat ...

  7. Chocolatey 和 Redis windows安装记录

    前言 最近研究redis,发现Redis没有官方的windows版本,但MsOpenTech有一直维护对应的Redis版本,其下载地址如下: https://github.com/MSOpenTech ...

  8. uiautomatorviewer工具的安装与使用

    Android自动化测试应用<一><uiautomatorviewer工具的安装与使用> OldKe 关注 2018.01.25 18:00* 字数 488 阅读 2083评论 ...

  9. [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(二) -- 安装jira 7.5.4

    [原创] debian 9.3 搭建Jira+Confluence+Bitbucket项目管理工具(二) -- 安装jira 7.5.4 环境都配置好以后, 开始搭建Jira的环境, 这里参考了一篇文 ...

随机推荐

  1. linux系统下将php和mysql命令加入到环境变量中的方法

    在Linux CentOS系统上安装完php和MySQL后,为了使用方便,需要将php和mysql命令加到系统命令中,如果在没有添加到环境变量之前,执行 “php -v”命令查看当前php版本信息时时 ...

  2. eclipse 中maven项目右键没有maven菜单问题

    修改项目.project文件,确保有maven2Builder和maven2Nature2个标签: <?xml version="1.0" encoding="UT ...

  3. JS获取网页属性包括宽、高等

    JS获取网页属性包括宽.高等. function getInfo()  { // www.jbxue.com var s = "";  s += " 网页可见区域宽:&q ...

  4. 一,U盘安装 CentOS 6.5 minimal

    U盘安装盘: CentOS-6.5的版本有四个,分别是: 1.CentOS-6.5-i386-netinstall.iso 通过网络安装的,需要联网 2.CentOS-6.5-i386-minimal ...

  5. scala函数组合器

    1.map 在列表中的每个元素上计算一个函数,并且返回一个包含相同数目元素的列表. scala> numbers.map(_ * 2)res3: Array[Int] = Array(2, 4, ...

  6. SublimeText插件Emmet的自定义模板

    在前端界,作为快速生成代码的Emmet插件相当给力.最近在学bootstrap,需要频繁生成html头文件,我就想着自定义模板.国内只有基础教程,只好自己读英文文档了. Emmet国内基础教程地址: ...

  7. 远程连接数据库(通过pgAdmin)

    1.编辑/var/lib/pgsql/data/pg_hba.conf,增加语句  host all all 192.168.105.225/36 trust 让数据库接受网络 192.168.105 ...

  8. COUNT(*),count(1),COUNT(ALL expression),COUNT(DISTINCT expression) BY Group by

    select column_2,count(column_2) as 'count(column_2)' ,count(column_1) as 'count(column_1)' ,count(*) ...

  9. .Net码农学Android---快速了解数据存储

    数据存储 Andoid中的数据存储和我们平时见到的不一样,或者说移动设备的存储和平时不一样.Andoid中的存储方式有五种, 单把存储拎出来,是因为我们后续的开发会经常用到,重要性不言而喻,多样的存储 ...

  10. ubuntu crontab 定时备份postgres数据库并上传ftp服务器

    最近公司要求备份数据库,所以就查了比较作的资料.废话不多说,入正题. 目的:定期备份ubuntu下的postgres数据库,打包上传到指定ftp服务器. 经过查找资料,解决方法: ①编写备份数据库.打 ...