Snapgear 4.0.0 Linux not booting - Embedded

This is a discussion on Snapgear 4.0.0 Linux not booting - Embedded ; Hello everybody. Please read this entirely. The subject might seem long, but thats only because I explain everything I have done. Basically, when i try to run my kernel on my ARM target, it uncompresses itself then hangs for ever. ...

+ Reply to Thread
Results 1 to 2 of 2

Thread: Snapgear 4.0.0 Linux not booting

  1. Snapgear 4.0.0 Linux not booting

    Hello everybody.

    Please read this entirely. The subject might seem long, but thats only because I explain everything I have done. Basically, when i try to run my kernel on my ARM target, it uncompresses itself then hangs for ever.


    Lefts see this in details: I'm having a problem booting my snapgear 4.0.0 linux on an Intel IXP425 embedded device.

    Here are the steps i followed until now:

    - I downloaded on snapgear's website the snapgear linux archive (snapgear-4.0.0.tar.bz2), patches for the target (SnapGear IXP400 Access Library patch 20090807.sh) and the tool-chain (arm-linux-tools-20080623.tar.gz). I also had to fetch some libraries on Intel's website (IPL_ixp400NpeLibrary-2_4.zip and BSD_ixp400AccessLibrary-2_4.zip)

    - I the extracted the tool-chain archive, searched for the binary files and added the bin/ directory into my $PATH (PATH=/usr/users/ebu/Desktop/Workspace/arm-linux-tools-20080623/usr/local/bin:$PATH)

    - Then I extracted the snapgear archive and patched it like this:
    $ cd snapgear
    -> extracts the patches
    $ ./snapgear-modules-20090807.sh
    -> apply the patches
    $ patch -p1 < snapgear-20090807.patch
    $ mkdir -p modules/ixp425/ixp400-2.4
    $ cd modules/ixp425/ixp400-2.4/
    $ unzip BSD_ixp400AccessLibrary-2_4.zip
    $ unzip IPL_ixp400NpeLibrary-2_4.zip
    $ patch -p1 < modules-csr2.4-20090807.patch

    - Now that everything is patched and my tool-chained is referenced in the PATH, I will know configure my kernel and build it. (I'll make it short: I will only post questions and answers i had to answer, the rest is left to the default option)
    $ make config
    Vendor: 30. Intel (DEFAULTS_INTEL) (NEW)
    Intel Products: 2. IXDP425 (DEFAULTS_INTEL_IXDP425) (NEW)
    Kernel Version: 1. linux-2.6.x (DEFAULTS_KERNEL_2_6) (NEW)
    Libc Version: 2. uClibc (DEFAULTS_LIBC_UCLIBC) (NEW)
    Default all settings (lose changes) (DEFAULTS_OVERRIDE) [N/y] (NEW) y
    Customize Kernel Settings (DEFAULTS_KERNEL) [N/y] (NEW) n
    Customize Application/Library Settings (DEFAULTS_VENDOR) [N/y] (NEW) n
    Update Default Vendor Settings (DEFAULTS_VENDOR_UPDATE) [N/y] (NEW) y
    $ make
    ...
    everything build and generates a zImage file and a ramdisk.gz file.


    The embedded system's bootloader is RedBoot v2.02. I will download the files by the tftp protocol, so i configured redboot to get the files from my computer (gave it my computers IP address, my computer has tftp services activated). This is what I get:

    RedBoot> load -r -v -b 0x00800000 ramdisk.gz
    Using default protocol (TFTP)
    /
    Raw file loaded 0x00800000-0x0094f233, assumed entry at 0x00800000
    RedBoot> load -r -v -b 0x01600000 zImage
    Using default protocol (TFTP)
    -
    Raw file loaded 0x01600000-0x0174102b, assumed entry at 0x01600000
    RedBoot> go -n 0x01600000
    Uncompressing Linux............................................. ......................................... done, booting the kernel.

    And it just hangs there for no reason. I've checked and tried a few thing to try and get the system running but it just hangs here everytime. So, i've tried:
    - Telling him where the zImage and ramdisk.gz files are
    Redboot> exec -b 0x01600000 -l 0x0180000 -r 0x00800000 -s 0x0200000 -c "console=ttyS0,115200 root=/dev/ram0 initrd=0x00800000,8M mem=64M@0x0"
    or Redboot> exec -b 0x01600000 -r 0x00800000 -c "console=ttyS0,115200 root=/dev/ram0 initrd=0x00800000,8M mem=64M@0x0"
    or Redboot> exec -c "console=ttyS0,115200 root=/dev/ram0 initrd=0x00800000,8M mem=64M@0x0"
    - Checking the boot command line in the snapgear/linux-2.6.x/.config file (it look correct)
    CONFIG_ZBOOT_ROM_TEXT=0x0
    CONFIG_ZBOOT_ROM_BSS=0x0
    CONFIG_CMDLINE="console=ttyS0,115200 root=/dev/ram0 initrd=0x00800000,8M mem=64M@0x00000000"
    - Checked if the files seemed OK by comparing the hexdump output on my computer and on the target: Its OK (only compared the 20 first bytes or so, but it the same)
    - Check the check sum and compared them with the check sum on my computer. They're the same.

    Anyways, I'm stuck and i have no clue what i should check next. Any ideas are welcome.

    Thank you for your help

    Michael

  2. Re: Snapgear 4.0.0 Linux not booting

    Ok, i figured it out.
    I don't know why snapgear did this but they included linux 2.6.29 into their distribution. odd number == kernel under testing/developping stage. why did they do this? I don't know.
    I downloaded a stable version on Linux's kernel official website (2.6.32.8), configured it and loaded into my target.
    There is still something strange: linux won't load when I type "go -n 0x01600000" in redboot's console (0x01600000 is the ram memory address where i put zImage), but it I type "exec 0x01600000 it runs. Any ideas?
    Anyways, I got it to boot but panics when it doesn't find a filesystem. Here's the message:
    List of all partitions:
    No filesystem could mount root, tried:
    Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
    I loaded my ramdisk.gz in 0x0800000, and specified it in the boot command string: "console=ttyS0,115200 root=/dev/ram0 initrd=0x00800000,8M mem=64M@0x0".
    Anyone has an idea?
    Thank you

+ Reply to Thread