Loading ...
Sorry, an error occurred while loading the content.

Using Redboot to boot from the network (instead of Flash)

Expand Messages
  • paulbart1234
    NOTE: You still need Redboot in the first MTD partition of Flash (IXP420 needs to get the code from somewhere). But, vmlinuz/ramdisk.gz can be TFTP-downloaded
    Message 1 of 1 , Aug 10, 2004
      NOTE: You still need Redboot in the first MTD partition of Flash
      (IXP420 needs to get the code from somewhere). But,
      vmlinuz/ramdisk.gz can be TFTP-downloaded from a server.

      This may be helpful if you've corrupted your Flash MTD partitions
      (other than the first one with Redboot). If your NSLU2 won't boot
      normally, try connecting a serial port and using Redboot along with
      a TFTP server.

      Here's how:

      1. Connect serial port via level shifter to "J2" on NSLU2 board

      2. Start communications program on your PC (Hyperterm, for
      example) at 115200,8,n,1.

      3. Apply power to NSLU2

      4. Press front POWER button on NSLU2

      5. You may immediately see a single '+' character in your terminal
      program (or, I may just be seeing power-on 'garbage' here). Go
      ahead and hit control-C (^C) a few times

      6. When Redboot starts up, it'll display a message about starting
      in 2 seconds (unless you press ^C). If your ^C's were seen, it'll
      stop the boot process/give you a prompt. If they weren't, go ahead
      and hit ^C a few times now.

      Once you've got the RedBoot> prompt, you should be able to TFTP load
      a new vmlinuz (kernel) and ramdisk.gz. Once they are loaded, you
      can (presumably - I haven't tested this) do an 'upgrade' to re-load
      your firmware.

      Make sure you have a TFTP server running on your network, and the
      files 'vmlinuz' and 'ramdisk.gz' available on that server.

      Now, type the following RedBoot commands:

      ip_address -l -h -d
      load -r -v -b 0x1d00000 vmlinuz
      load -r -v -b 0x1000000 ramdisk.gz
      go 0x1d00000

      The IP addresses in the first command are: the (static) IP of the
      NSLU2 ("-l ip_of_NSLU2"), the IP of the TFTP server ("-h
      ip_of_TFTP_server"), and the IP of the DNS server ("-d
      ip_of_DNS_server"). My TFTP server is "", and my DNS
      server is "". I've chosen to use "" for my

      The load address (0x1d00000) for vmlinuz was found by looking at
      Redhat boot messages. The load address (0x1000000) for the
      ramdisk.gz image was just a wild guess (first guess worked!).

      The "go 0x1d00000" actually executes the vmlinuz image that was
      loaded 2 lines up.

      This should boot the kernel, decompress the ramdisk, and get you to
      a point where you have a root prompt on the serial console. If you
      have a hard drive attached, I think the NSLU2 will function
      normally. I believe you should be able to do a 'code update' at
      this point (via web interface) to re-program your Flash (which, if
      you're doing all these steps, is probably corrupted).

      If you can't do an update via the web interface, I believe RedBoot
      can be used to re-program the Flash directly. Use the "load"
      command to get the image from the TFTP server into RAM, then there's
      probably a Flash command to burn the Flash (at least there is in
      other (more 'full') versions of RedBoot - I don't know about the

      Something else that *may* be possible (again, it's possible in full
      RedBoot implementations): we may be able to set up a 'boot script'
      to always TFTP boot from the network (instead of Flash). This would
      be more convenient for people who are doing lots of re-building of
      kernels/testing (no need for re-flash step between build & test).
      I'll investigate this sometime in the future.

      I hope this info is useful.

      - Paulb
    Your message has been successfully submitted and would be delivered to recipients shortly.