New IT forum
23 September 2014, 06:18:30 am *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: CubieBoard 2 and Cubietruck both now in stock.
 
   Home   SHOP Help Search Login Register  
Pages: [1]
  Print  
Author Topic: OpenSUSE 12.3 for armv7 on Mirabox fails  (Read 1628 times)
Jan1
Newbie
*
Posts: 4


« on: 23 March 2013, 07:19:46 pm »

Standard, Mirabox (from Globalscale, http://www.globalscaletechnologies.com/p-58-mirabox-development-kit.aspx) is delivered with Debian. I would like to have it run OpenSUSE 12.3 for armV7 because I like openSUSE better :-) and it is natively compiled for armv7. Debian Squeeze (debian 6) is not (it is compiled for armv5 if I understand correctly, which sounds kind-of silly on an armv7 architecture).

So I downloaded the opensuse image from http://download.opensuse.org/ports/armv7hl/distribution/12.3/images/openSUSE-12.3-ARM-JeOS-rootfs.armv7l-1.12.1-Build21.2.tbz and put it on my sdcard. I made 2 partitions, one FAT ca. 100MB for uImage (from the rootfs in the tbz file) and the remainder ext4 for the rootfilesystem. I hoped it would work right away but it did not. Right after the loading phase of uboot it stopped after the message "uncompressing linux...done, booting the kernel" and nothing was displayed.

Then I thought I might use the precompiled uImage (from the debian distribution) together with the /lib/modules files from the debian distribution, so I copied /lib/modules from debian rootfs to the opensuse rootfs and the uImage to the FAT partition of my sdcard. It did boot but during the boot process it gave all strange errors and did not complete.
uImage was from https://code.google.com/p/mirabox/downloads/detail?name=uImage-v2.6.35.9-gti-mirabox-v5-0-1-120924&can=2&q=
and the debian rootfs from http://www.plugcomputer.org/405/us/mirabox/sources/rootfs/mira_fs-v5-0-1-120924.tar.gz.
At some moment, I thought that might be logical because of the armv5 arch from debian and armv7 from opensuse.

Then I tried running opensuse in a chroot on the mirabox with debian as a base, as described on http://en.opensuse.org/HCL:Chroot. That worked really wonderful.

So that led me to the idea of compiling my own kernel on the mirabox when being in a chroot opensuse. I grabbed the kernel sources from http://www.plugcomputer.org/405/us/mirabox/sources/kernel/mira_kernel-v5-0-1-120924.tar.gz, did not modify the configuration in .config, ran "make", "make uImage", "make install", "make modules_install" and then booted opensuse with the resulting kernel. That did not work either. Right after the loading phase of uboot it stopped after the message "uncompressing linux...done, booting the kernel" and nothing was displayed.

Then I tried compiling the kernel sources from opensuse (obtained from package "kernel-source" and "kernel-devel" via /sbin/yast2 in opensuse) by tweaking in the armada370 bits (including the same kernel .config file) from the kernel sources from the previous paragraph but it was too much tweaking and twiddling so I gave up on that.

Why doesn't it work? What did I miss? Do I not understand the kernel building process?
Any help is really appreciated.

Thanks,
Jan
« Last Edit: 25 March 2013, 02:09:35 pm by Jan1 » Logged
Confusticated
New IT customer
Hero Member
*
Posts: 660


« Reply #1 on: 05 April 2013, 06:27:54 pm »

Never seen a Mirabox, haven't touched OpenSUSE for years.....

Quote
Why doesn't it work? What did I miss? Do I not understand the kernel building process?
In case you are unaware...

Every ARM device is different (because ARM do not make them, they License the rights for use of the design).
Linux needs to know what it is running on and cannot easily do so by interrogating the hardware in this case (10,000's different architectures).

So the 'machine ident' is passed to the kernel at boot time, either by u-boot itself (which you can change), or as an entry in a FDT structure (which you can rebuild).
The 'machine ident' must match that compiled into the kernel at build time (which you can define\patch), or it will immediately infinitely loop to prevent hardware damage.

The chances of plucking kernel source out of the internet and its configuration matches your OEM hardware are slim.

So when building a new kernel for ARM you need to ensure the 'machine id's match.
This is just one stumbling point of course, there are many more...



« Last Edit: 05 April 2013, 06:37:28 pm by Confusticated » Logged

Advocatus Diaboli - My agenda is not to give you the answer, but to guide your thoughts so you derive it for yourself!
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.18 | SMF © 2013, Simple Machines Valid XHTML 1.0! Valid CSS!