查看Openwrt nvram信息搜集的源代码
←
Openwrt nvram信息搜集
跳转到:
导航
,
搜索
因为以下原因,你没有权限编辑本页:
您刚才请求的操作只有这个用户组中的用户才能使用:
用户
您可以查看并复制此页面的源代码:
== 敏感参数 == * flag_tftp_bootup=off 此值设为 on,则 CFE 会尝试从 192.168.1.2 获取内核 vmlinuz,获取失败,CFE会重启系统,直到获取成功: <source lang=bash> CFE version v1.0.4 BSP: 6.37.14.34 (r415984) based on BBP 1.0.37 for BCM947XX (32bit,SP,) Build Date: Wed Apr 30 18:03:21 CST 2014 (szy@shenzhiyong-ct) Copyright (C) 2000-2008 Broadcom Corporation. ...... ...... ...... Device eth0: hwaddr 8C-BE-BE-20-B7-48, ipaddr 192.168.1.1, mask 255.255.255.0 gateway not set, nameserver not set ********** flag_tftp_bootup=on ********** tftp network: ifconfig eth0 -addr=192.168.1.1 -mask=255.255.255.0 -gw=192.168.1.1 Device eth0: hwaddr 8C-BE-BE-20-B7-48, ipaddr 192.168.1.1, mask 255.255.255.0 gateway 192.168.1.1, nameserver not set kernel: boot -raw -z -addr=0x8000 -max=0x800000 192.168.1.2:vmlinuz Loader:raw Filesys:tftp Dev:eth0 File:192.168.1.2:vmlinuz Options:(null) Loading: TFTP error 1: File not found Failed. Could not load 192.168.1.2:vmlinuz: Network protocol error Digital core power voltage set to 1.0V Decompressing...done Digital core power voltage set to 1.0V Decompressing...done </source> * flag_ota_reboot 如果此值为1,则 CFE 将加载第二个分区上的内核启动 (flash.os2),启动完成后,会把以下值设置(本身这些变量在 nvram 里是没有的): <pre> +flag_boot_type=1 +flag_last_success=1 如果单独设置此变量为1,CFE 将加载第二个分区上的内核启动 (flash.os2)。如果单独设置此值为 0,则CFE仍然从 flash.os1 启动 +flag_ota_reboot=0 +flag_try_sys1_failed=0 +flag_try_sys2_failed=0 +flag_boot_rootfs=1 +flag_package_update=5 </pre> * flag_boot_rootfs=0 <pre> 0: rootfs = /dev/sda1 1: rootfs = /dev/sda2 </pre> * flag_boot_type=1 <pre> # flag_boot_type: 1 system in SATA version # 2 system in SQUASH version # 9 system in tftp version 该参数同样会影响刷机行为,具体参考: /bin/flash.sh </pre> <source lang=bash> 118 flg=`nvram get flag_boot_type` 119 #type 1 is sata boot 120 # 121 if [ "$flg" = "1" ] 122 then 123 #for sata boot only 124 # nvram damaged 125 flg_try_sys1=`nvram get flag_try_sys1_failed` 126 flg_try_sys2=`nvram get flag_try_sys2_failed` 127 flg_last=`nvram get flag_last_success` 128 flg_ota=`nvram get flag_ota_reboot` 129 if [ "$flg_try_sys1" != "0" ] && [ "$flg_try_sys1" != "1" ] && 130 [ "$flg_try_sys2" != "0" ] && [ "$flg_try_sys2" != "1" ] && 131 [ "$flg_last" != "0" ] && [ "$flg_last" != "1" ] && 132 [ "$flg_ota" != "0" ] && [ "$flg_ota" != "1" ]; then 133 cat /proc/mounts | grep -q "/dev/sda1 /" && \ 134 mount -t ext4 /dev/sda2 /mnt || mount -t ext4 /dev/sda1 /mnt 135 rom_ver1=`uci get /usr/share/xiaoqiang/xiaoqiang_version.version.ROM | awk -F '.' '{print $1*1000000+$2*1000+$3}` 136 rom_ver2=`uci get /mnt/usr/share/xiaoqiang/xiaoqiang_version.version.ROM | awk -F '.' '{print $1*1000000+$2*1000+$3}` 137 umount /mnt 138 if [ $rom_ver2 -gt $rom_ver1 ]; then 139 elog "Found a newer ROM, preparing to change to that ROM"; 140 nvram set flag_ota_reboot=1 141 nvram commit 142 reboot_try 143 fi 144 fi 145 fi </source> * flag_package_update=0 <pre> flag_package_update == 5 启动后直接进入 ramfs flag_package_update == 1 启动后在 ramfs 里通过 tftp 从 192.168.1.1 下载 brcm4709_hdd.bin flag_package_update != 0 and `cat /sys/power/ft_mode` != 1 (ft_mode 为 1,同样进入 ramfs) 则进入升级模式(执行 /usr/sbin/update) </pre> * flag_try_sys1_failed=0 * flag_try_sys2_failed=0 <pre> flag_try_sys1_failed = 1 表示系统 rootfs = /dev/sda1 启动失败 flag_try_sys2_failed = 1 表示系统 rootfs = /dev/sda2 启动失败 </pre> * uart_en=0 串口写关闭,打开需设为1 * ssh_en=0 ssh 服务关闭,打开需设为1 * boot_wait=off 如果设为 on 则 CFE 首先会尝试 tftp 获取 vmlinuz(注意:这个vmlinuz是整个路由系统的固件,不仅仅是内核),获取成功后会刷写flash: <source lang=bash> Loader:raw Filesys:tftp Dev:eth0 File:192.168.1.2:vmlinuz Options:(null) Loading: Failed. Could not load 192.168.1.2:vmlinuz: Timeout occured bootargs: boot -raw -z -addr=0x8000 -max=0xef8000 flash0.os: Loader:raw Filesys:raw Dev:flash0.os File: Options:(null) Loading: ..... 5372256 bytes read Entry at 0x00008000 </source> 现在的系统逻辑上还是有些问题,尝试 boot_wait=on 后,如果获取 vmlinuz 失败,其会将如下一些参数改了: <source lang=bash> -flag_try_sys1_failed=0 +flag_try_sys1_failed=1 +flag_load_sys1_failed=1 -flag_try_sys2_failed=0 +flag_try_sys2_failed=1 -flag_boot_rootfs=1 +flag_boot_rootfs=0 -flag_boot_type=1 +flag_boot_type=2 </source> 导致系统进入 overlay 分区,可进入系统或者CFE,用 nvram 把值改回来即可 * telnet_en=0 * XQ_defaulted=1 * flag_image_name=brcm4709_hdd.bin * samba_mode= * samba_passwd= * igmp_enable=0 * nv_rom_ver=0.5.41 * dhcp_start=192.168.31.100 * dhcp_end=192.168.31.150 * partialboots=0 目前对 CFE 和 系统启动都没有影响 <br><br>
返回到
Openwrt nvram信息搜集
。
个人工具
登录
名字空间
页面
讨论
变换
查看
阅读
查看源代码
查看历史
操作
搜索
导航
首页
社区专页
新闻动态
最近更改
随机页面
帮助
工具箱
链入页面
相关更改
特殊页面