b*s 发帖数: 82482 | 1 01011001 01101111 01110101 00100000 01110010 01100101 01100001 01101100
01101100 01111001 00100000 01110100 01101000 01101001 01101110 01101011
00100000 01110011 01101111 00111111 |
|
H********g 发帖数: 43926 | 2 01110100 01101000 01101001 01110011 00100000 01101001 01110011 00100000
01110011 01101111 00100000 01100110 01110101 01101110 01101110 01111001 |
|
H********g 发帖数: 43926 | 3 01001001 01110100 00100111 01110011 00100000 01100001 00100000 01110111
01101111 01101110 01100100 01100101 01110010 01100110 01110101 01101100
00100000 01101100 01101001 01100110 01100101 |
|
H********g 发帖数: 43926 | 4 01101110 01100011 01100001 01110100 01101100 01100001 01100010 00100000
00101000 01101110 01101111 01101110 00100000 01110011 01100101 01110001
01110101 01101001 01110100 01110101 01110010 00101001 |
|
b*s 发帖数: 82482 | 5 01001110 01101111 01101110 01100101 00100000 01110011 01100101 01101110
01110011 01100101 |
|
b*s 发帖数: 82482 | 6 01010100 01110101 01110010 01101011 01100101 01111001 00100000 01010110
0110101 |
|
b*s 发帖数: 82482 | 7 01110100 01110010 01100001 01101110 01110011 01101100 01100001 01110100
01100101 00100000 01110100 01101000 01101001 01110011 |
|
c*******y 发帖数: 3529 | 8 先谢谢大家的回复。
我的arch在装debian的时候,被我临时干掉了。
等明天恢复之后,我再fw_printenv吧。
我查了一下
dockstar的NAND的分区应该是这个样子的
mtd0: 00100000 00020000 "u-boot"
mtd1: 00400000 00020000 "uImage"
mtd2: 02000000 00020000 "pogoplug"
mtd3: 0db00000 00020000 "root"
启动每次都先load mtd0, 如果被刷过,
应该是,如果插入u盘,加载u盘的uImage。
如果无U盘系统,加载mtd1,然后它会装入mtd3,
也就是原系统。
我仔细看了install_uboot_mtd0.sh,
它最初设计是在原系统上运行的。并且它有一段是禁用原系统自动升级,
也就是修改mtd3上面的内容。所以就有了如下的操作:
mount -o rw,remount /
就是要在mtd3上修改参数。
我想是不是在arch上run install_uboot_mtd0.sh,
但是跳过修改自动升级这一段? |
|
c*******y 发帖数: 3529 | 9 这几天dockstar出了问题,折腾了一阵,最后arch,debian, rescue全部装好了,
把自己的感受写下来。我也是个新手,不是自己理解的对不对,请大家指点一下。
doskstar自身的nand有4个分区,mt0,mt1,mt2,mt3. 在任何的系统下
都能看见:
# cat /proc/mtd
dev: size erasesize name
mtd0: 00100000 00020000 "u-boot"
mtd1: 00400000 00020000 "uImage"
mtd2: 02000000 00020000 "pogoplug"
mtd3: 0db00000 00020000 "root"
一般刷机只改变mtd0,然后让让它能引导U盘的启动文件。当然你也可以把后面的分区
都改了,比如jeff的rescue system 就是装在mtd2和mtd3里面。
而刷这几个区的方法其实很简单,显示下载mtd0等镜像,然后在下载刷机命令
flash_erase和nandwrite,然后
#flash_erase/dev/mtd0 0 4
#ANDWRITE /... 阅读全帖 |
|
D****A 发帖数: 360 | 10 interesting. 估计是每个byte取一位做连接符, 是1就看下一个byte否则结束
每个byte只有7位有效位,两个byte应该能表示一个integer的低14位
0xA0=10100000
0x81=10000001
0x20=00100000
因为一个byte只能encode7位,所以0xA0的最高位1应该在0x81里的有效最低位,
另外0xA0的低7位应该在0x20里,0xA0和0x20的低七位相通,说明这种encoding
把每个byte的最高位用做连接符了
综上转换公式应该是 do x = (x << 7)|(b[i] & 0x7f) until (b[i] & 0x80) == 0 |
|