Flashing the Neo 1973/zh cn

From Openmoko

(Redirected from Flashing openmoko/zh cn)
Jump to: navigation, search

本篇文章的内容主要教导您如何将你的Neo 1973更新到最新的版本。在这里,我们将会在内建的闪存中选择性 的更新kernel、root filesystem。

WARNING: 如果你更新了u-boot,并且没有除错板,在更新程序进行被中断时,你可能必须要放弃更新。


WARNING: 如果你有较旧的U-boot 版本,并且上传了较之前版本更小的映像档,或者,你撰写了一个较jiffs2更小的rootfs,更新并不会产生作用—你必须在你上传rootfs前执行nand erase rootfs",会比在你开始写入新的rootfs前执行"nand erase rootfs"前每次都执行"nand erase rootfs" 来的快,并且可以节省掉第二个rootfs上传的时间。注意:如果你 清除NAND 且没有指出你要清除的分割区,u-boot 将会被抹掉,并且Neo 将会bricked


Contents

档案下载

NOTE:
  • MacOS X 使用者:请参考 MacOS_X
  • 没有Linux 的使用者请参考 No_Linux


您下载的rootfs & kernel映象档必须是相同的版本。Kernel可加载的模块被放在 分割区的 /lib/modules/ 下—如果你下载了错误的版本组合,你会在启动的过程中得到无法存取/lib/modules/x.y.z-moko123 的一些错误讯息,若发生这种情形,请交换kernel或rootfs 到相对应的版本。 不幸的是,rootfs文件名称并无法看出与它兼容的kernel版本,你可能要一个一个试验。

NOTE: 至少某些不对应的版本组合看起来可以在不同模块版本下被启动,因此在进行更新启动后,请到控制台下查看它的版本。

错误讯息中的 "moko123" 会指出openmoko patchset 版本。

必须的档案請參考Download

修改记录(Changelogs )可以在下列位置找到:


请取得以下档案:

  • dfu-util
    • (这部份将于个人计算机上执行,将会把档案透过USB传到手机上)
  • openmoko-devel-image-fic-gta01-2007********.rootfs.jffs2
  • uImage-2.6.21.*-moko*-r*_0_****_0-fic-gta01.bin
  • 给phase 0 (Bv03) 手机装置:
    • 已有一些人进行测试:
      u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin
      MD5SUM: 60c5aeba1bd6642b05b3a5e6f2dafe83
    • 测试: hrw:
      u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2062.bin
      MD5SUM: 716f1eba9b0f2be4a0a3be4a56724935
  • 针对phase 1 手机,uboot 更新则为非必须。

让手机进入DFU模式

你必须将装置启动到uboot 选单下,以下列的方法执行:

  • 拔除HOST上的USB装置
  • 按住手机的 AUX 按钮 接着按住手机 电源按钮.
    • 在装置正式被启动前,你必须按住电源按钮约4秒钟。否则,屏幕只会呈现白色启动模式,但并不会启动电源。
  • 屏幕上会出现u-boot 选单:
U-Boot ..

=== 启动选单===

BOOT
Set console to USB
Set console to serial
Power off
Boot from SD
Factory reset

按下[AUX] 选取您要的选项,按下[POWER] 执行。
  • 透过USB接线将Neo1973 接到host,(直接连接电话到计算机上,不要透过HUB)

Note: 如果bootloader 在30秒内没有动作,没有任何按键动作或者是使用serial console,装置会自动的被启动。 你可以透过每30秒钟按下AUX 按钮告诉bootloader 延续这个动作。当你决定进行这个动作时,请连接到bootloader:

cu -l /dev/ttyACM0
GTA01Bv4 # setenv boot_menu_timeout 65000
GTA01Bv4 # saveenv

若您不熟悉cu,要离开的话你必须按下"~."

(你可能必须安装uucp 套件来存取cu,之前也可能必须要使用"chown uucp:uucp /dev/ttyACM0")

u-boot并没有需要进一步观察的内容 – 装置会在被告知要更新dfu-util接着会开始自动进行更新映像档的工作。更新了所有的档案之后,你可以选择"Boot" 选项,启动最新的档案。

确实更新装置

再次确认u-boot 是否符合你的硬件装置的版本,若你有除错板来修复失败的u-boot更新时,你可能只需要更新u-boot 。你也可以查看目前的分割.

Note: 以root身份执行应用程序为必须的(至少在Ubuntu 及Debian下是如此)。

Note: 为了避免一个以上的use装置成为作用中装置,请使用-d 0x1457:0x5119 选项。

更新u-boot:

WARNING: 除非你有除错板装置或者,你真的对更新程序有非常深入的暸解,不然不要轻易更新u-boot。更新到错误的 u-boot 映像档将会brick your device! 特别是映像档被放在GTA01B_v03上,而不是GTA01B_v04。

./dfu-util -a u-boot -R -D u-boot-gta01bv3-r8_70124c2602ae2d4c5d3dba05b482d91548242de8_0_2040.bin


更新kernel: ./dfu-util -a kernel -R -D ./uImage-2.6.21.1-moko10-r0_0_1883_0-fic-gta01.bin

更新kernel至少必须需要一分钟的时间,如果你遇到困难,你可能需要比较一下输出 " U-Boot/ dmesg/ dfu-util 。 手机应该会显示"Starting DFU DOWNLOAD to partition 'kernel'.

更新root 档案系统: ./dfu-util -a rootfs -R -D ./Openmoko-devel-image-fic-gta01-20070501054014.rootfs.jffs2

更新root 档案系统可能会花费约13分钟左右的时间。请注意若你使用XEN VM 进行更新工作,它将会花费更久的时间。

这里是已知无误的输出 U-Bootdmesg dfu-util。手机的屏幕将会显示"Starting DFU DOWNLOAD to partition 'rootfs'。

请注意一般它不需要再更新任何东西。只有特殊需求才需要更新其它内容。

...现在,你已经应该可以启动系统了,但并不会看到任何audio/SD 卡。你必须下载相对应的modules.tgz ,并且将他们复制到openmoko。 - 更新:GTA01 不会需要进行这项动作,除非你安装了包含在root映像档中相符合的kernel ('uname -r' 可以用来显示kernel 版本, 'ls /lib/modules/' 将会显示出目前模块的版本)

VERY IMPORTANT NOTE (我将此视为设计上的瑕疵-- dfu-util 应该要自动执行才对):如果你上传一个与之前不能运作的rootfs 映像档相似的档案—你应该要连接到u-boot bootloader,先清掉NAND,接着上传你的rootf:

cu -l /dev/ttyACM0
GTA01Bv3 # nand erase rootfs

旧版的u-boot 错误还蛮多的,你必须要每25秒按着AUX 按钮,以避免手机在进行内容更新时,进入深眠模式。它并不会在更新时清除掉rootfs ,为了达到这个目地,请执行minicom /dev/ttyACM0,接着在nand中删掉rootfs。

Good luck!

接着要进行的工作

执行到这个阶段,现在你已经拥有了目前最新的kernel及rootfs映像档,或者至少是(半)正式的版本,接着,要做些什么事?

你可能必须要设定USB_Networking并且进一步的设定你的Neo1973。请不要忘记使用下列指令更新你的Neo1973 :

ipkg update && ipkg upgrade

并且参考ipkg repositories.

问题排除

如果在更新映像档时发生错误,可能肇因于连接到Neo1973的USB hub或USB 接线质量太差。建议您在使用dfu-util时,直接将手机连接到host端(即系统)。 如果dfu-util 在开始更新前传送如下的讯息:

Resetting USB...
not at least 2 device changes found ?!?
Lost device after RESET?

请重新试着键入上述的指令—它应该会重新执行。 而上述讯息也可能在出现bookloader选单时,连接到usb 接线时出现。你必须小心的依照本篇文章中所提到的顺序着手进行,不要太早的连接USB接线。

dfu-util 无法在Windows 操作系统所仿真的linux 环境下执行。 请参考Dfu-util页面取得更多信息。

Personal tools