Welcome! Log In Create A New Profile

Advanced

Weird - Arch Linux ARM won't start

Posted by john3voltas 
Weird - Arch Linux ARM won't start
October 26, 2011 09:17PM
Hello,
I know that some will think that this is not a forum specialized in Arch Linux ARM, but it is booting Jeff's uBoot and I am having a hard time.
My system is composed of a Seagate Dockstar.
I'm trying to boot from an external USB HDD which has 2 partitions:
- /dev/sda1 which has /boot and is formated as Ext2
- /dev/sda2 which has / and everything else (besides /boot) which is formated as Ext4.

Here's a copy of my environment variables:
Pogoplug:~$ /usr/sbin/fw_printenv                                        
ethact=egiga0
bootdelay=3
baudrate=115200
mainlineLinux=yes
console=ttyS0,115200
led_init=green blinking
led_exit=green off
led_error=orange blinking
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
mtdids=nand0=orion_nand
partition=nand0,2
stdin=serial
stdout=serial
stderr=serial
rescue_installed=0
rescue_set_bootargs=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts $rescue_custom_params
rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000; else run pogo_bootcmd; fi
pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi
force_rescue=0
force_rescue_bootcmd=if test $force_rescue -eq 1 || ext2load usb 0:1 0x1700000 /rescueme 1 || fatload usb 0:1 0x1700000 /rescueme.txt 1; then run rescue_bootcmd; fi
ubifs_mtd=3
ubifs_set_bootargs=setenv bootargs console=$console ubi.mtd=$ubifs_mtd root=ubi0:rootfs rootfstype=ubifs $mtdparts $ubifs_custom_params
ubifs_bootcmd=run ubifs_set_bootargs; if ubi part data && ubifsmount rootfs && ubifsload 0x800000 /boot/uImage && ubifsload 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; fi
usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done
usb_scan_list=1 2 3 4
usb_scan_1=usb=0:1 dev=sda1
usb_scan_2=usb=1:1 dev=sdb1
usb_scan_3=usb=2:1 dev=sdc1
usb_scan_4=usb=3:1 dev=sdd1
usb_init=run usb_scan
usb_device=0:1
usb_rootdelay=10
usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts $usb_custom_params
usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot
usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
bootcmd=usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset
ethaddr=00:10:75:1A:BD:D7
arcNumber=2097
serverip=192.168.1.100
ipaddr=192.168.1.99
if_netconsole=ping $serverip
start_netconsole=setenv ncip $serverip; setenv bootdelay 10; setenv stdin nc; setenv stdout nc; setenv stderr nc; version;
preboot=run if_netconsole start_netconsole
usb_root=/dev/sda2
usb_rootfstype=ext4
Pogoplug:~$

Here's my netcat log of the system trying to boot:
sh-4.1# nc -l -u -p 6666

U-Boot 2010.09 (Oct 23 2010 - 11:49:22)
Marvell-Dockstar/Pogoplug by Jeff Doozan
Hit any key to stop autoboot:  0 
(Re)start USB...
USB:   Register 10011 NbrPorts 1
USB EHCI 1.00
scanning bus for devices... 3 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
Loading file "/rescueme" from usb device 0:1 (usbda1)
** File not found /rescueme
reading /rescueme.txt

** Unable to read "/rescueme.txt" from usb 0:1 **
Creating 1 MTD partitions on "nand0":
0x000002500000-0x000010000000 : "mtd=3"
UBI: attaching mtd1 to ubi0
UBI: physical eraseblock size:   131072 bytes (128 KiB)
UBI: logical eraseblock size:    129024 bytes
UBI: smallest flash I/O unit:    2048
UBI: sub-page size:              512
UBI: VID header offset:          512 (aligned 512)
UBI: data offset:                2048
UBI error: ubi_read_volume_table: the layout volume was not found
UBI error: ubi_init: cannot attach mtd1
UBI error: ubi_init: UBI error: cannot initialize UBI, error -22
UBI init error -22
Loading file "/boot/uImage" from usb device 0:1 (usbda1)
1 bytes read
Found bootable drive on usb 0:1
Loading file "/boot/uImage" from usb device 0:1 (usbda1)
2624664 bytes read
Loading file "/boot/uInitrd" from usb device 0:1 (usbda1)
** File not found /boot/uInitrd
## Booting kernel from Legacy Image at 00800000 ...
   Image Name:   Linux-2.6.39-ARCH
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    2624600 Bytes = 2.5 MiB
   Load Address: 00008000
   Entry Point:  00008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

In the end, I cannot ping my Dockstar as well as I cannot Ssh that box.
Re: Weird - Arch Linux ARM won't start
October 27, 2011 04:36AM
john3voltas Wrote:
-------------------------------------------------------
>
> usb_root=/dev/sda2
> usb_rootfstype=ext4

Should this be:

usb_root=/dev/sda1
usb_rootfstype=ext2
Re: Weird - Arch Linux ARM won't start
October 27, 2011 04:56AM
My two partition set up is all about power outages.
I usually have a lot of power outages at home.
When that occurs more than 3 or 4 times, my dockstar won't boot anymore.
Then I need to take the usb hdd out of the dockstar, plug it into my laptop, run fsck on it and then I can plug it back into my dockstar and it will boot again.
This is a big set back especially because I have a lot of power outages at home.
Then I found out lurking around that having /boot in a separate read-only partition could fix that issue.
At least, that's what I understood.
So, yesterday mrsteveman1 helped me to install ALARM on my dockstar, copying /boot to /dev/sda1 and all other files and folders to /dev/sda2.
Did the necessary arrangements to fstab and set up the environment variables as printed above.
Can see the unit booting up until the kernel loading and then I cannot ping or ssh the unit.
I wish someone would simulate such a working environment just to make sure that it (still) works.
Thanks in advance.
Cheers
Re: Weird - Arch Linux ARM won't start
October 27, 2011 05:30AM
john3voltas Wrote:
-------------------------------------------------------
>.
> usb_scan_list=1 2 3 4
> usb_scan_1=usb=0:1 dev=sda1
> usb_scan_2=usb=1:1 dev=sdb1
> usb_scan_3=usb=2:1 dev=sdc1
> usb_scan_4=usb=3:1 dev=sdd1
> .
> .
> usb_device=0:1
>
> run usb_boot
> .
> usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device
> 0x1100000 /boot/uInitrd; then bootm 0x800000
> 0x1100000; else bootm 0x800000; fi
>
After further review it looks to me like it trying to find the /boot/uImage on sda1. You could try just changing "usb_device=0:1" to "usb_device=0:2"
Re: Weird - Arch Linux ARM won't start
December 04, 2011 11:31PM
I have a similar problem on my pinkpogo. I have /boot on sda1 and the rootfs on sda2, ext3. I've set
usb_root=/dev/sda2 and
usb_rootfstype=ext3,
but it looks like the archlinux kernel is ignoring the usb_root because when I look at the kernel booting over the serial line I see:

[ 21.337460] Kernel panic - not syncing: VFS: Unable to mount root fs on unkno
wn-block(8,1)


The 8,1 is /dev/sda1, so it looks like the rootfs=/dev/sda2 bootargs is not being sent.

What I did to fix it temporarily was
set usb_custom_params root=/dev/sda2

Then it actually boots for me. Not sure why this works. It could have something to do with usb_set_bootargs (maybe for archlinux the rootfs needs to come after the rootfstype). You'll have to use fw_setenv if you don't have serial access.



Edited 1 time(s). Last edit at 12/04/2011 11:55PM by dynamic_hamster.
rdelrio
Re: Weird - Arch Linux ARM won't start
February 27, 2012 05:33PM
help me???


Pogoplug:~$ /usr/sbin/fw_printenv
ethact=egiga0
bootdelay=3
baudrate=115200
mainlineLinux=yes
console=ttyS0,115200
led_init=green blinking
led_exit=green off
led_error=orange blinking
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
mtdids=nand0=orion_nand
partition=nand0,2
stdin=serial
stdout=serial
stderr=serial
rescue_installed=0
rescue_set_bootargs=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts $rescue_custom_params
rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; na nd read.e 0x800000 0x100000 0x400000; bootm 0x800000; else run pogo_bootcmd; fi
pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi
force_rescue=0
force_rescue_bootcmd=if test $force_rescue -eq 1 || ext2load usb 0:1 0x1700000 / rescueme 1 || fatload usb 0:1 0x1700000 /rescueme.txt 1; then run rescue_bootcmd ; fi
ubifs_mtd=3
ubifs_set_bootargs=setenv bootargs console=$console ubi.mtd=$ubifs_mtd root=ubi0 :rootfs rootfstype=ubifs $mtdparts $ubifs_custom_params
ubifs_bootcmd=run ubifs_set_bootargs; if ubi part data && ubifsmount rootfs && u bifsload 0x800000 /boot/uImage && ubifsload 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; fi
usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if t est $usb_scan_done -eq 0 && ext2load usb $usb 0x800000 /boot/uImage 1; then usb_ scan_done=1; echo "Found bootable drive on usb $usb"; setenv usb_device $usb; se tenv usb_root /dev/$dev; fi; done
usb_scan_list=1 2 3 4
usb_scan_1=usb=0:1 dev=sda1
usb_scan_2=usb=1:1 dev=sdb1
usb_scan_3=usb=2:1 dev=sdc1
usb_scan_4=usb=3:1 dev=sdd1
usb_init=run usb_scan
usb_device=0:1
usb_rootdelay=10
usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_ rootdelay rootfstype=$usb_rootfstype $mtdparts $usb_custom_params
usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot
usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext 2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; el se bootm 0x800000; fi
bootcmd=usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset
ethaddr=00:25:31:02:2C:D7
arcNumber=2097
usb_rootfdtype=Ext3
usb_rootfstype=ext3
Author:

Your Email:


Subject:


Spam prevention:
Please, enter the code that you see below in the input field. This is for blocking bots that try to post this form automatically. If the code is hard to read, then just try to guess it right. If you enter the wrong code, a new image is created and you get another chance to enter it right.
Message: