Fedora ARM 12 on IGEPv2 (Beagle Board clone)
by Matthew Wilson
Hi all,
I would like to introduce myself to the group. I have recently
received an IGEPv2 board [1], which is based on the Beagle Board, but
with wifi, bluetooth, ethernet, and more RAM. I'm still at the "wow,
it's tiny and it runs Linux" stage. I should get a bit more time over
the next month and Christmas to play around properly with it.
I'm new to embedded development, but neither new to Linux nor ARM
(writing my first ARM assembly some 15 years ago). However, for the
past 6 years I've not even built a Linux kernel, preferring to use the
default kernel in Fedora for simplicity :)
Firstly, a thank you to those involved in Fedora ARM for getting it to
this stage. If I get the time, I'd really like to contribute some
(probably small) effort to help get Fedora ARM working well on the
IGEPv2 and Beagle Board. As I progress, I'd like to know what I can
do to help.
In the meantime, I have some questions. Apologies in advance if these
seem simple.
1) There are various different kernels from different sources. I'm
used to there being a small set of "right" kernels (that is, Fedora's
idea of "right") for x86. I fully appreciate that different ARM-based
boards are quite different in capabilities (like different instruction
set variants).
a) Is there likely to be some standardised vanilla Fedora ARM kernel
source? (Or is that simply the source RPM available for Fedora?)
Then patches /could/ be offered for the more common systems (e.g.
Beagle Board & clones, SheevaPlug).
b) Would it then make sense to offer these as pre-built RPMs for common systems?
c) Is there any guidance on which version is good to use as a base?
I've seen quite different kernel versions being used (from 2.6.27 to
2.6.31).
2) I understand a little bit about the different calling conventions,
FP differences (e.g. soft FPU versus VFP), and instruction set
differences (v5 versus v7).
a) Can the kernel can be safely built with a different instruction set
targeted? (I know there are different optimisation options passed to
GCC. Apologies if this seems a bit newbie-ish.)
b) For FP-heavy programs (e.g. ogg encoding), is it possible to build
the packages with VFP/NEON but still get them to work in a soft FPU
system? I'd imagine any call to an external library would have to
somehow be defined to use a different calling standard.
3) There seem to be some missing dependencies in the packages in the
current Fedora ARM repository. For example, emacs is requiring
libotf, which doesn't seem to be there in the repository. And
likewise with the xorg-x11-font* packages needing ttmkdir. I'm
confused as to how the RPM could have been successfully built without
it. What am I missing?
4) I see there has been some discussion over unaligned data access.
(Oh, I remember that from the ARM2 days.) It seems as if the
Cortex-A8 cores allow unaligned data access when set up to do so [2].
Does this, in any way, help with the compatibility of packages
targetting Cortex-A8?
5) I've managed to get various source packages missing from the Fedora
ARM repositories to compile successfully (natively). I guess there is
a reason why there are not in the repos right now -- is that reason
down to time and priorities, or is there some blocking bugs with many
of these packages?
I look forward to being able to contribute something back into Fedora!
Kind regards,
Matthew
[1] http://www.igep-platform.com/index.php?option=com_content&view=article&id...
[2] http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.ddi0344j/Beih...
7 years, 11 months
Fedora Kernel
by Bernhard Schuster
Hi
has anyone allready built a fedora kernel patched with gurplug patches?
Sincerely
Bernhard Schuster
13 years, 6 months
Fwd: Guru Plug Sever Plus and Rootfs
by Bernhard Schuster
---------- Forwarded message ----------
From: Bernhard Schuster <schuster.bernhard(a)googlemail.com>
Date: 2010/5/29
Subject: Re: [fedora-arm] Guru Plug Sever Plus and Rootfs
To: Till Maas <opensource(a)till.name>
Further random investigation gave me this:
http://ftp.linux.org.uk/pub/linux/arm/fedora/rootfs/mkrootfs-f12
mknod $fsdir/dev/console c 5 1
mknod $fsdir/dev/null c 1 3
mknod $fsdir/dev/zero c 1 5
I think these are the ones required,... I'll wait if someone comes up
with something smart, otherwise, I will give it a shoot.
Regards
Bernhard Schuster
13 years, 6 months
Guru Plug Sever Plus and Rootfs
by Bernhard Schuster
Hi all,
I just got my memory card to try fedora 12 on my GurPlug Server Plus and I
stumbled about a tiny problem.
What I did: I followed this howto in detail:
http://paulfedora.wordpress.com/2010/05/13/installing-fedora-12-on-a-guru...
What did not work: Extracting the rootfs tarball showed 3 errors, being
unable to create /dev/null /dev/console (and another device) on my USB Stick
(which had to act as the Packinghorse as my regular PC has no micro sd slot
(nor any other card slot)).
I tried to boot my Guru Plug Server Plus and it worked, excpet for the fact
that I did end aup with an error: unable to launch console (can't remember
the exact "wording") instead of a working console.
So what should I do? How can I fix it? Can I just put a script in
/etc/init.d creating the device Nodes? And if so, which mode has console to
be (mknod has a bunch of options :> )?
Thanks for any reply.
Sincerely
Bernhard Schuster
13 years, 6 months
GuruPlug and micro SDHC cards
by Bernhard Schuster
Hi!
I just received my GuruPlug Server Plus, but I am not willing to break it by
flashing the internal NAND (I got 2 left hands considering flashing :> ) so
I want to use the micro SD card slot. The point is: Does it suppoert micro
SDHC cards aswell, I got no information about that, but there seem to be no
more micro SD cards out in the wild (>=4GB) being _not_ micro SDHC (which in
fact just increases the max allowed size of the flashmem)
Any answer or hint would be great, actual testing experience would be
awesome.
Sincerely
Bernhard Schuster
13 years, 6 months
Flash GuruPlug NAND without JTAG cable?
by Jon Hermansen
Hello all,
I just got a brand new GuruPlug a few days ago and I was hoping to install
Fedora ARM on it as soon as possible. Well, the only problem is, I neglected
to get the JTAG breakout box / cables required to get the U-Boot prompt and
thus, as far as I can tell, can't do much about loading a new U-Boot version
(hopefully to boot from microSD), putting a new U-Boot config, Linux kernel
and accompanying rootfs on the NAND/external MicroSD card. I can see the
/dev/mtd* devices from Debian 5.0.3, kernel 2.6.32-00007-g56678ec, but I
have yet to write to them from my live system as I want to be absolutely
sure about what I'm doing on this front.
I'd also like to know if I can use the internal NAND/external MicroSD card
as one big device, as opposed to two seperate devices. I realize the NAND is
not addressed as a block device, but if they both can contain filesystems,
does that mean that I can use UnionFS (or something similiar) to bridge two
seperate filesystems and divide the space taken up by data between the two
storage devices?
If anyone could provide any more information on what I'm attempting to do
(flash NAND, reinstall OS) without a JTAG cable, either on a SheevaPlug or a
GuruPlug (from what I've read, they are nearly the same), it would be
greatly appreciated.
Thanks to all of you guys for working out the kinks in Fedora ARM, and I'm
looking forward to using my favorite distro on the smallest PC I've ever
had...
Jon Hermansen
13 years, 7 months
iSCSI on ARM
by Chris Tyler
I've been testing iSCSI on an OpenRD-Client system (F12).
This is the configuration:
target: F12 x86_64 system running netbsd-iscsi service, 100GB target
available
initiator: F12 ARM openrd-client running iscsi and iscsid service,
logged in to 100GB target
On the 100G target I have an ext3 filesystem. Under low load, this works
fine, but under high load it fails, leading to data corruption.
On the target, /var/log/messages shows:
Apr 11 09:53:40 hongkong iscsi-target: pid 1930:iscsi.c:1149:
***ERROR*** Bad "Opcode": Got 1 expected 5.
Apr 11 09:53:40 hongkong iscsi-target: pid 1930:target.c:1318:
***ERROR*** iscsi_write_data_decap() failed
Apr 11 09:53:40 hongkong iscsi-target: pid 1930:iscsi.c:1149:
***ERROR*** Bad "Opcode": Got 49 expected 5.
Apr 11 09:53:40 hongkong iscsi-target: pid 1930:target.c:1318:
***ERROR*** iscsi_write_data_decap() failed
Apr 11 09:53:40 hongkong iscsi-target: pid 1930:iscsi.c:1149:
***ERROR*** Bad "Opcode": Got 13 expected 5.
Apr 11 09:53:40 hongkong iscsi-target: pid 1930:target.c:1318:
***ERROR*** iscsi_write_data_decap() failed
Apr 11 09:53:40 hongkong iscsi-target: pid 1930:iscsi.c:1149:
***ERROR*** Bad "Opcode": Got 38 expected 5.
Apr 11 09:53:40 hongkong iscsi-target: pid 1930:target.c:1318:
***ERROR*** iscsi_write_data_decap() failed
...snip...
On the initiator, /var/log/messages shows:
Apr 12 21:47:57 fedora-arm kernel: connection2:0: Got CHECK_CONDITION
but invalid data buffer size o
f 0
Apr 12 21:47:57 fedora-arm kernel: connection2:0: detected conn error
(1020)
Apr 12 21:47:57 fedora-arm kernel: sd 4:0:0:0: [sdb] Unhandled error
code
Apr 12 21:47:57 fedora-arm kernel: sd 4:0:0:0: [sdb] Result:
hostbyte=0x04 driverbyte=0x00
Apr 12 21:47:57 fedora-arm kernel: sd 4:0:0:0: [sdb] CDB: cdb[0]=0x2a:
2a 00 08 03 34 a8 00 04 00 00
Apr 12 21:47:57 fedora-arm kernel: end_request: I/O error, dev sdb,
sector 134427816
Apr 12 21:47:57 fedora-arm kernel: quiet_error: 118 callbacks suppressed
Apr 12 21:47:57 fedora-arm kernel: Buffer I/O error on device sdb,
logical block 16803477
Apr 12 21:47:57 fedora-arm kernel: lost page write due to I/O error on
sdb
Apr 12 21:47:57 fedora-arm kernel: Buffer I/O error on device sdb,
logical block 16803478
Apr 12 21:47:57 fedora-arm kernel: lost page write due to I/O error on
sdb
...snip...
There are no transport errors reported on the target or initiator.
Wondering if this was an ARM or iSCSI issue, I repeated the same test
using an x86_64 initiator against the same target, and was successful
(however, on reflection, it's cabled at 100 Mbps instead of 1Gbps).
To provoke these errors, one need only write a large file quickly:
dd if=/dev/zero of=/mnt/iscsi/test1 bs=1M count=1024
Because the target was showing "opcode" errors, I wondered if CPU
alignment on the ARM was an issue, but I have /proc/cpu/alignment set to
3 (fixup+warn).
Any suggestions?
-Chris
13 years, 7 months
Cross-compiler settings for rpmbuild
by Shakthi Kannan
Hi,
The hardware device I use for testing is armv4, while the pre-built
rootfs is armv5. I have a custom toolchain which I would like to use
to build the packages from .src.rpm. How can I achieve that with the
rpmbuild process? I don't have an option of building on the target
hardware.
1. If I would like to cross-compile, what should be the BuildArch?
2. Where can I set the cross-compiler settings, for example:
%__cc /usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-gcc
%__cpp /usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-g++
%__cxx /usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-g++
%__ld /usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-ld
%__nm /usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-nm
%__objcopy /usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-objcopy
%__objdump /usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-objdump
%__ranlib /usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-ranlib
%__strip /usr/local/arm/3.4.3/bin/arm-none-linux-gnueabi-strip
I see that /usr/lib/rpm has lot of configuration files and settings,
and /usr/lib/rpm/platform is for native builds?
Appreciate any inputs in this regard,
Thanks!
SK
--
Shakthi Kannan
http://www.shakthimaan.com
13 years, 7 months