当前位置:首页 > 科技数码 > 数码极客 > 正文内容

UBNT EdgeRouter Lite 更换U盘

数码极客3年前 (2019-04-08)

Link:https://sskaje.me/2016/01/ubnt-edgerouter-lite-%e6%9b%b4%e6%8d%a2u%e7%9b%98/

本文需要Linux基础,不会的还是找人帮忙吧。
EdgeRoute Lite 的磁盘性能实在不敢恭维,而且稳定性也堪忧。之前出现过好几次IO错误,都没当回事,凑合就不管了,最近一次重启,结果直接就起不来了。
拆机
没拍拆机图,拆机很简单,底下的两个螺丝卸掉就行。地线那个不用动。

IMG_3973-624x468.jpg

拆完之后就能看到一个小U盘了。

IMG_3976-624x468.jpg

IMG_3977-624x468.jpg

算了下USB口和pcb板之间的缝隙大小,最后京东上能买的还有点名气的U盘也就一个台电的而已。我没买USB 3.0的,觉得用不上,现在有点后悔了。


创建新USB磁盘下一步是要把固件写到U盘上。参考的项目是 https://github.com/vyos/emrk。相关操作是在Linux PC上执行的。
从官网下载固件:http://www.ubnt.com.cn/download/
下载得到的是一个tarball.
我找了个U盘,装了个debian的live cd. 
装好U盘之后,先分区。
我的U盘磁盘设备是 sdc
debian的live cd默认没有parted,所以直接用fdisk了。基本命令如下(仅做示意,没有截图):

  1. # fdisk /dev/sdc

  2. > d -------- 删除所有分区表

  3. > n -------- 创建第一个primary分区,大小至少150MB,我分了4GB

  4. > t -------- 修改第一个分区的类型标志,改为 b FAT32

  5. > n -------- 创建第二个primary分区,至少1900MB,我分了快11个G,默认已经是Linux了。

  6. > w -------- 保存分区表

复制代码

fdisk操作之前务必把已挂载的分区全下掉。


下一步格式化:
如果你没有 mkfs.vfat,可能需要安装 dosfstools

  1. apt-get install dosfstools

复制代码

格式化命令如下:

  1. # mkfs.vfat /dev/sdc1

  2. # mkfs.ext3 /dev/sdc2

复制代码

最后一步,释放文件
命令文件:https://github.com/sskaje/emrk/blob/master/bin/emrk-extract-to-usb

操作命令

  1. ./emrk-extract-to-usb /dev/sdc ERLitexx.tar

复制代码


Console

我拿MacBook Pro+USB Console线搞的。推荐 OS X 下的串口工具 CoolTerm,下载地址:CoolTerm

需要配置 bit rates 为 115200

进去之后看到如下错误信息

  1. U-Boot 1.1.1 (UBNT Build ID: 4493936-g009d77b) (Build time: Sep 20 2012 - 15:48:51)


  2. BIST check passed.

  3. UBNT_E100 r1:2, r2:14, serial #: XXXXXXXXXX

  4. Core clock: 500 MHz, DDR clock: 266 MHz (532 Mhz data rate)

  5. DRAM:  512 MB

  6. Clearing DRAM....... done

  7. Flash:  4 MB

  8. Net:   octeth0, octeth1, octeth2


  9. USB:   (port 0) scanning bus for devices... 

  10.       USB device not responding, giving up (status=0)

  11. 1 USB Devices found

  12.        scanning bus for storage devices...

  13. No device found. Not initialized?

  14. ... 0 

  15. ** Can't read from device 0 **


  16. ** Unable to use usb 0:1 for fatload **

  17. argv[2]: coremask=0x3

  18. argv[3]: root=/dev/sda2

  19. argv[4]: rootdelay=15

  20. argv[5]: rw

  21. argv[6]: rootsqimg=squashfs.img

  22. argv[7]: rootsqwdir=w

  23. argv[8]: mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom)

  24. ## No elf image at address 0x09f00000

  25. Octeon ubnt_e100#

复制代码

搜了搜解决方案

  1. Octeon ubnt_e100# usb reset


  2. (Re)start USB...

  3. USB:   (port 0) scanning bus for devices... 1 USB Devices found

  4.        scanning bus for storage devices...

  5.   Device 0: Vendor: Teclast  Prod.: CoolFlash        Rev: 1100

  6.             Type: Removable Hard Disk

  7.             Capacity: 15300.0 MB = 14.9 GB (31334400 x 512)

  8. Octeon ubnt_e100# 


  9. (Re)start USB...

  10. USB:   (port 0) scanning bus for devices... 1 USB Devices found

  11.        scanning bus for storage devices...

  12.   Device 0: Vendor: Teclast  Prod.: CoolFlash        Rev: 1100

  13.             Type: Removable Hard Disk

  14.             Capacity: 15300.0 MB = 14.9 GB (31334400 x 512)

  15. Octeon ubnt_e100#

复制代码

比较不爽的是,重启后依旧会’Unable to use usb 0:1 for fatload‘。


解决方案是改bootcmd的env参数,使用setenv改完后,务必使用saveenv保存。

  1. Octeon ubnt_e100# setenv bootcmd 'sleep 10;usb reset; fatload usb 0 $loadaddr vmlinux.64;bootoctlinux $loadaddr coremask=0x3 root=/dev/sda2 rootdelay=15 rw rootsqimg=squashfs.img rootsqwdir=w mtdparts=phys_mapped_flash:512k(boot0),512k(boot1),64k@3072k(eeprom)'


  2. Octeon ubnt_e100# saveenv 


  3. Saving Environment to Flash...

  4. Un-Protected 1 sectors

  5. Erasing Flash...

  6. . done

  7. Erased 1 sectors

  8. Writing to Flash... 4....3....2....1....done

  9. Protected 1 sectors

  10. Octeon ubnt_e100#

复制代码

操作完成后就放心大胆地使用新的EdgeRouter Lite吧。
IMG_3984-624x468.jpg

参考链接:https://community.ubnt.com/t5/Ed ... y/m-p/851038#M31382


标签: ubnt