<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://pandorawiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jgeiss</id>
	<title>Pandora Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://pandorawiki.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Jgeiss"/>
	<link rel="alternate" type="text/html" href="https://pandorawiki.org/Special:Contributions/Jgeiss"/>
	<updated>2026-05-03T02:10:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.32.0-alpha</generator>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30298</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30298"/>
		<updated>2018-07-09T16:25:24Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: /* Prepare cross development system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
== Improvement ==&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Prepare/install cross compile system =&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install cross compiling system ==&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install QEmu ==&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install GIT ==&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install system =&lt;br /&gt;
&lt;br /&gt;
== Prepare target file system ==&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile/install kernel ==&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Download kernel ===&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile kernel ===&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
[[Cross Install Gentoo kernel-config|kernel-config]] which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install kernel ===&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile system ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross development system ===&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector -fomit-frame-pointer&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector -fomit-frame-pointer&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/17.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross-compilation and QEmu environment ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start cross compilation ===&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -a linux-firmware&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Continue cross-compilation with QEmu ===&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix lib64-problem ==&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configure system ==&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
([[Cross Install Gentoo Keymap-pandora.map|keymap-pandora.map]])&lt;br /&gt;
&lt;br /&gt;
And disable the suspend mode for handling the lid switch (this does&lt;br /&gt;
currently not work).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
sed -i 's/#HandleLidSwitch=suspend/HandleLidSwitch=ignore/g' etc/systemd/logind.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noatime                         1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noatime,nodev,nosuid            1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* WiFi interface is missing&lt;br /&gt;
* twl: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Kernel panic at system shutdown&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30297</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30297"/>
		<updated>2018-06-15T12:58:45Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: Removed patch for kernel bcause its now in the gta04-kernel tree.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
== Prerequisites ==&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
== Improvement ==&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Prepare/install cross compile system =&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install cross compiling system ==&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install QEmu ==&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install GIT ==&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Install system =&lt;br /&gt;
&lt;br /&gt;
== Prepare target file system ==&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile/install kernel ==&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Download kernel ===&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile kernel ===&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
[[Cross Install Gentoo kernel-config|kernel-config]] which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install kernel ===&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile system ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross development system ===&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross-compilation and QEmu environment ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start cross compilation ===&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -a linux-firmware&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Continue cross-compilation with QEmu ===&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix lib64-problem ==&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configure system ==&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
([[Cross Install Gentoo Keymap-pandora.map|keymap-pandora.map]])&lt;br /&gt;
&lt;br /&gt;
And disable the suspend mode for handling the lid switch (this does&lt;br /&gt;
currently not work).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
sed -i 's/#HandleLidSwitch=suspend/HandleLidSwitch=ignore/g' etc/systemd/logind.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noatime                         1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noatime,nodev,nosuid            1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* WiFi interface is missing&lt;br /&gt;
* twl: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Kernel panic at system shutdown&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo_kernel-config&amp;diff=30296</id>
		<title>Cross Install Gentoo kernel-config</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo_kernel-config&amp;diff=30296"/>
		<updated>2018-06-10T16:56:20Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: SND_OMAP_SOC_OMAP_TWL4030, PWM_TWL, PWM_TWL_LED removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Automatically generated file; DO NOT EDIT.&lt;br /&gt;
# Linux/arm 4.16.13 Kernel Configuration&lt;br /&gt;
#&lt;br /&gt;
CONFIG_ARM=y&lt;br /&gt;
CONFIG_ARM_HAS_SG_CHAIN=y&lt;br /&gt;
CONFIG_MIGHT_HAVE_PCI=y&lt;br /&gt;
CONFIG_SYS_SUPPORTS_APM_EMULATION=y&lt;br /&gt;
CONFIG_HAVE_PROC_CPU=y&lt;br /&gt;
CONFIG_STACKTRACE_SUPPORT=y&lt;br /&gt;
CONFIG_LOCKDEP_SUPPORT=y&lt;br /&gt;
CONFIG_TRACE_IRQFLAGS_SUPPORT=y&lt;br /&gt;
CONFIG_RWSEM_XCHGADD_ALGORITHM=y&lt;br /&gt;
CONFIG_ARCH_HAS_BANDGAP=y&lt;br /&gt;
CONFIG_FIX_EARLYCON_MEM=y&lt;br /&gt;
CONFIG_GENERIC_HWEIGHT=y&lt;br /&gt;
CONFIG_GENERIC_CALIBRATE_DELAY=y&lt;br /&gt;
CONFIG_NEED_DMA_MAP_STATE=y&lt;br /&gt;
CONFIG_ARCH_SUPPORTS_UPROBES=y&lt;br /&gt;
CONFIG_ARM_PATCH_PHYS_VIRT=y&lt;br /&gt;
CONFIG_GENERIC_BUG=y&lt;br /&gt;
CONFIG_PGTABLE_LEVELS=2&lt;br /&gt;
CONFIG_IRQ_WORK=y&lt;br /&gt;
CONFIG_BUILDTIME_EXTABLE_SORT=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# General setup&lt;br /&gt;
#&lt;br /&gt;
CONFIG_BROKEN_ON_SMP=y&lt;br /&gt;
CONFIG_INIT_ENV_ARG_LIMIT=32&lt;br /&gt;
CONFIG_CROSS_COMPILE=&amp;quot;&amp;quot;&lt;br /&gt;
# CONFIG_COMPILE_TEST is not set&lt;br /&gt;
CONFIG_LOCALVERSION=&amp;quot;-pherkad&amp;quot;&lt;br /&gt;
# CONFIG_LOCALVERSION_AUTO is not set&lt;br /&gt;
CONFIG_HAVE_KERNEL_GZIP=y&lt;br /&gt;
CONFIG_HAVE_KERNEL_LZMA=y&lt;br /&gt;
CONFIG_HAVE_KERNEL_XZ=y&lt;br /&gt;
CONFIG_HAVE_KERNEL_LZO=y&lt;br /&gt;
CONFIG_HAVE_KERNEL_LZ4=y&lt;br /&gt;
# CONFIG_KERNEL_GZIP is not set&lt;br /&gt;
# CONFIG_KERNEL_LZMA is not set&lt;br /&gt;
CONFIG_KERNEL_XZ=y&lt;br /&gt;
# CONFIG_KERNEL_LZO is not set&lt;br /&gt;
# CONFIG_KERNEL_LZ4 is not set&lt;br /&gt;
CONFIG_DEFAULT_HOSTNAME=&amp;quot;(none)&amp;quot;&lt;br /&gt;
CONFIG_SWAP=y&lt;br /&gt;
CONFIG_SYSVIPC=y&lt;br /&gt;
CONFIG_SYSVIPC_SYSCTL=y&lt;br /&gt;
CONFIG_POSIX_MQUEUE=y&lt;br /&gt;
CONFIG_POSIX_MQUEUE_SYSCTL=y&lt;br /&gt;
CONFIG_CROSS_MEMORY_ATTACH=y&lt;br /&gt;
# CONFIG_USELIB is not set&lt;br /&gt;
CONFIG_AUDIT=y&lt;br /&gt;
CONFIG_HAVE_ARCH_AUDITSYSCALL=y&lt;br /&gt;
CONFIG_AUDITSYSCALL=y&lt;br /&gt;
CONFIG_AUDIT_WATCH=y&lt;br /&gt;
CONFIG_AUDIT_TREE=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# IRQ subsystem&lt;br /&gt;
#&lt;br /&gt;
CONFIG_GENERIC_IRQ_PROBE=y&lt;br /&gt;
CONFIG_GENERIC_IRQ_SHOW=y&lt;br /&gt;
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y&lt;br /&gt;
CONFIG_HARDIRQS_SW_RESEND=y&lt;br /&gt;
CONFIG_GENERIC_IRQ_CHIP=y&lt;br /&gt;
CONFIG_IRQ_DOMAIN=y&lt;br /&gt;
CONFIG_HANDLE_DOMAIN_IRQ=y&lt;br /&gt;
CONFIG_IRQ_FORCED_THREADING=y&lt;br /&gt;
CONFIG_SPARSE_IRQ=y&lt;br /&gt;
# CONFIG_GENERIC_IRQ_DEBUGFS is not set&lt;br /&gt;
CONFIG_ARCH_CLOCKSOURCE_DATA=y&lt;br /&gt;
CONFIG_GENERIC_TIME_VSYSCALL=y&lt;br /&gt;
CONFIG_GENERIC_CLOCKEVENTS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Timers subsystem&lt;br /&gt;
#&lt;br /&gt;
CONFIG_TICK_ONESHOT=y&lt;br /&gt;
CONFIG_HZ_PERIODIC=y&lt;br /&gt;
# CONFIG_NO_HZ_IDLE is not set&lt;br /&gt;
# CONFIG_NO_HZ is not set&lt;br /&gt;
CONFIG_HIGH_RES_TIMERS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CPU/Task time and stats accounting&lt;br /&gt;
#&lt;br /&gt;
CONFIG_TICK_CPU_ACCOUNTING=y&lt;br /&gt;
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set&lt;br /&gt;
# CONFIG_IRQ_TIME_ACCOUNTING is not set&lt;br /&gt;
CONFIG_BSD_PROCESS_ACCT=y&lt;br /&gt;
# CONFIG_BSD_PROCESS_ACCT_V3 is not set&lt;br /&gt;
CONFIG_TASKSTATS=y&lt;br /&gt;
CONFIG_TASK_DELAY_ACCT=y&lt;br /&gt;
CONFIG_TASK_XACCT=y&lt;br /&gt;
CONFIG_TASK_IO_ACCOUNTING=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# RCU Subsystem&lt;br /&gt;
#&lt;br /&gt;
CONFIG_TINY_RCU=y&lt;br /&gt;
# CONFIG_RCU_EXPERT is not set&lt;br /&gt;
CONFIG_SRCU=y&lt;br /&gt;
CONFIG_TINY_SRCU=y&lt;br /&gt;
# CONFIG_TASKS_RCU is not set&lt;br /&gt;
# CONFIG_RCU_STALL_COMMON is not set&lt;br /&gt;
# CONFIG_RCU_NEED_SEGCBLIST is not set&lt;br /&gt;
# CONFIG_BUILD_BIN2C is not set&lt;br /&gt;
# CONFIG_IKCONFIG is not set&lt;br /&gt;
CONFIG_LOG_BUF_SHIFT=16&lt;br /&gt;
CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13&lt;br /&gt;
CONFIG_GENERIC_SCHED_CLOCK=y&lt;br /&gt;
CONFIG_CGROUPS=y&lt;br /&gt;
# CONFIG_MEMCG is not set&lt;br /&gt;
# CONFIG_BLK_CGROUP is not set&lt;br /&gt;
CONFIG_CGROUP_SCHED=y&lt;br /&gt;
CONFIG_FAIR_GROUP_SCHED=y&lt;br /&gt;
# CONFIG_CFS_BANDWIDTH is not set&lt;br /&gt;
# CONFIG_RT_GROUP_SCHED is not set&lt;br /&gt;
# CONFIG_CGROUP_PIDS is not set&lt;br /&gt;
# CONFIG_CGROUP_RDMA is not set&lt;br /&gt;
CONFIG_CGROUP_FREEZER=y&lt;br /&gt;
# CONFIG_CGROUP_DEVICE is not set&lt;br /&gt;
CONFIG_CGROUP_CPUACCT=y&lt;br /&gt;
# CONFIG_CGROUP_PERF is not set&lt;br /&gt;
CONFIG_CGROUP_BPF=y&lt;br /&gt;
# CONFIG_CGROUP_DEBUG is not set&lt;br /&gt;
CONFIG_SOCK_CGROUP_DATA=y&lt;br /&gt;
CONFIG_NAMESPACES=y&lt;br /&gt;
CONFIG_UTS_NS=y&lt;br /&gt;
CONFIG_IPC_NS=y&lt;br /&gt;
# CONFIG_USER_NS is not set&lt;br /&gt;
CONFIG_PID_NS=y&lt;br /&gt;
CONFIG_NET_NS=y&lt;br /&gt;
# CONFIG_SCHED_AUTOGROUP is not set&lt;br /&gt;
# CONFIG_SYSFS_DEPRECATED is not set&lt;br /&gt;
# CONFIG_RELAY is not set&lt;br /&gt;
# CONFIG_BLK_DEV_INITRD is not set&lt;br /&gt;
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y&lt;br /&gt;
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set&lt;br /&gt;
CONFIG_SYSCTL=y&lt;br /&gt;
CONFIG_ANON_INODES=y&lt;br /&gt;
CONFIG_HAVE_UID16=y&lt;br /&gt;
CONFIG_BPF=y&lt;br /&gt;
CONFIG_EXPERT=y&lt;br /&gt;
CONFIG_UID16=y&lt;br /&gt;
CONFIG_MULTIUSER=y&lt;br /&gt;
CONFIG_SGETMASK_SYSCALL=y&lt;br /&gt;
CONFIG_SYSFS_SYSCALL=y&lt;br /&gt;
# CONFIG_SYSCTL_SYSCALL is not set&lt;br /&gt;
CONFIG_FHANDLE=y&lt;br /&gt;
CONFIG_POSIX_TIMERS=y&lt;br /&gt;
CONFIG_PRINTK=y&lt;br /&gt;
CONFIG_PRINTK_NMI=y&lt;br /&gt;
CONFIG_BUG=y&lt;br /&gt;
CONFIG_ELF_CORE=y&lt;br /&gt;
CONFIG_BASE_FULL=y&lt;br /&gt;
CONFIG_FUTEX=y&lt;br /&gt;
CONFIG_FUTEX_PI=y&lt;br /&gt;
CONFIG_EPOLL=y&lt;br /&gt;
CONFIG_SIGNALFD=y&lt;br /&gt;
CONFIG_TIMERFD=y&lt;br /&gt;
CONFIG_EVENTFD=y&lt;br /&gt;
CONFIG_SHMEM=y&lt;br /&gt;
CONFIG_AIO=y&lt;br /&gt;
CONFIG_ADVISE_SYSCALLS=y&lt;br /&gt;
CONFIG_MEMBARRIER=y&lt;br /&gt;
CONFIG_CHECKPOINT_RESTORE=y&lt;br /&gt;
CONFIG_KALLSYMS=y&lt;br /&gt;
CONFIG_KALLSYMS_ALL=y&lt;br /&gt;
# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set&lt;br /&gt;
CONFIG_KALLSYMS_BASE_RELATIVE=y&lt;br /&gt;
CONFIG_BPF_SYSCALL=y&lt;br /&gt;
# CONFIG_USERFAULTFD is not set&lt;br /&gt;
CONFIG_EMBEDDED=y&lt;br /&gt;
CONFIG_HAVE_PERF_EVENTS=y&lt;br /&gt;
CONFIG_PERF_USE_VMALLOC=y&lt;br /&gt;
# CONFIG_PC104 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Kernel Performance Events And Counters&lt;br /&gt;
#&lt;br /&gt;
CONFIG_PERF_EVENTS=y&lt;br /&gt;
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set&lt;br /&gt;
CONFIG_VM_EVENT_COUNTERS=y&lt;br /&gt;
CONFIG_SLUB_DEBUG=y&lt;br /&gt;
CONFIG_COMPAT_BRK=y&lt;br /&gt;
# CONFIG_SLAB is not set&lt;br /&gt;
CONFIG_SLUB=y&lt;br /&gt;
# CONFIG_SLOB is not set&lt;br /&gt;
CONFIG_SLAB_MERGE_DEFAULT=y&lt;br /&gt;
# CONFIG_SLAB_FREELIST_RANDOM is not set&lt;br /&gt;
# CONFIG_SLAB_FREELIST_HARDENED is not set&lt;br /&gt;
CONFIG_SYSTEM_DATA_VERIFICATION=y&lt;br /&gt;
# CONFIG_PROFILING is not set&lt;br /&gt;
CONFIG_CRASH_CORE=y&lt;br /&gt;
CONFIG_KEXEC_CORE=y&lt;br /&gt;
CONFIG_HAVE_OPROFILE=y&lt;br /&gt;
# CONFIG_KPROBES is not set&lt;br /&gt;
CONFIG_JUMP_LABEL=y&lt;br /&gt;
# CONFIG_STATIC_KEYS_SELFTEST is not set&lt;br /&gt;
# CONFIG_UPROBES is not set&lt;br /&gt;
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set&lt;br /&gt;
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y&lt;br /&gt;
CONFIG_ARCH_USE_BUILTIN_BSWAP=y&lt;br /&gt;
CONFIG_HAVE_KPROBES=y&lt;br /&gt;
CONFIG_HAVE_KRETPROBES=y&lt;br /&gt;
CONFIG_HAVE_OPTPROBES=y&lt;br /&gt;
CONFIG_HAVE_NMI=y&lt;br /&gt;
CONFIG_HAVE_ARCH_TRACEHOOK=y&lt;br /&gt;
CONFIG_HAVE_DMA_CONTIGUOUS=y&lt;br /&gt;
CONFIG_GENERIC_SMP_IDLE_THREAD=y&lt;br /&gt;
CONFIG_GENERIC_IDLE_POLL_SETUP=y&lt;br /&gt;
CONFIG_ARCH_HAS_SET_MEMORY=y&lt;br /&gt;
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y&lt;br /&gt;
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y&lt;br /&gt;
CONFIG_HAVE_CLK=y&lt;br /&gt;
CONFIG_HAVE_DMA_API_DEBUG=y&lt;br /&gt;
CONFIG_HAVE_HW_BREAKPOINT=y&lt;br /&gt;
CONFIG_HAVE_PERF_REGS=y&lt;br /&gt;
CONFIG_HAVE_PERF_USER_STACK_DUMP=y&lt;br /&gt;
CONFIG_HAVE_ARCH_JUMP_LABEL=y&lt;br /&gt;
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y&lt;br /&gt;
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y&lt;br /&gt;
CONFIG_SECCOMP_FILTER=y&lt;br /&gt;
CONFIG_HAVE_GCC_PLUGINS=y&lt;br /&gt;
# CONFIG_GCC_PLUGINS is not set&lt;br /&gt;
CONFIG_HAVE_CC_STACKPROTECTOR=y&lt;br /&gt;
CONFIG_CC_STACKPROTECTOR_NONE=y&lt;br /&gt;
# CONFIG_CC_STACKPROTECTOR_REGULAR is not set&lt;br /&gt;
# CONFIG_CC_STACKPROTECTOR_STRONG is not set&lt;br /&gt;
# CONFIG_CC_STACKPROTECTOR_AUTO is not set&lt;br /&gt;
CONFIG_THIN_ARCHIVES=y&lt;br /&gt;
CONFIG_HAVE_CONTEXT_TRACKING=y&lt;br /&gt;
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y&lt;br /&gt;
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y&lt;br /&gt;
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y&lt;br /&gt;
CONFIG_MODULES_USE_ELF_REL=y&lt;br /&gt;
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y&lt;br /&gt;
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y&lt;br /&gt;
CONFIG_HAVE_EXIT_THREAD=y&lt;br /&gt;
CONFIG_ARCH_MMAP_RND_BITS_MIN=8&lt;br /&gt;
CONFIG_ARCH_MMAP_RND_BITS_MAX=16&lt;br /&gt;
CONFIG_ARCH_MMAP_RND_BITS=8&lt;br /&gt;
# CONFIG_HAVE_ARCH_HASH is not set&lt;br /&gt;
# CONFIG_ISA_BUS_API is not set&lt;br /&gt;
CONFIG_CLONE_BACKWARDS=y&lt;br /&gt;
CONFIG_OLD_SIGSUSPEND3=y&lt;br /&gt;
CONFIG_OLD_SIGACTION=y&lt;br /&gt;
# CONFIG_CPU_NO_EFFICIENT_FFS is not set&lt;br /&gt;
# CONFIG_HAVE_ARCH_VMAP_STACK is not set&lt;br /&gt;
CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y&lt;br /&gt;
CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y&lt;br /&gt;
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y&lt;br /&gt;
CONFIG_STRICT_KERNEL_RWX=y&lt;br /&gt;
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y&lt;br /&gt;
CONFIG_STRICT_MODULE_RWX=y&lt;br /&gt;
CONFIG_ARCH_HAS_PHYS_TO_DMA=y&lt;br /&gt;
CONFIG_REFCOUNT_FULL=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# GCOV-based kernel profiling&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_GCOV_KERNEL is not set&lt;br /&gt;
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y&lt;br /&gt;
CONFIG_HAVE_GENERIC_DMA_COHERENT=y&lt;br /&gt;
CONFIG_RT_MUTEXES=y&lt;br /&gt;
CONFIG_BASE_SMALL=0&lt;br /&gt;
CONFIG_MODULES=y&lt;br /&gt;
# CONFIG_MODULE_FORCE_LOAD is not set&lt;br /&gt;
CONFIG_MODULE_UNLOAD=y&lt;br /&gt;
# CONFIG_MODULE_FORCE_UNLOAD is not set&lt;br /&gt;
# CONFIG_MODVERSIONS is not set&lt;br /&gt;
# CONFIG_MODULE_SRCVERSION_ALL is not set&lt;br /&gt;
# CONFIG_MODULE_SIG is not set&lt;br /&gt;
# CONFIG_MODULE_COMPRESS is not set&lt;br /&gt;
# CONFIG_TRIM_UNUSED_KSYMS is not set&lt;br /&gt;
CONFIG_MODULES_TREE_LOOKUP=y&lt;br /&gt;
CONFIG_BLOCK=y&lt;br /&gt;
CONFIG_LBDAF=y&lt;br /&gt;
CONFIG_BLK_SCSI_REQUEST=y&lt;br /&gt;
CONFIG_BLK_DEV_BSG=y&lt;br /&gt;
CONFIG_BLK_DEV_BSGLIB=y&lt;br /&gt;
# CONFIG_BLK_DEV_INTEGRITY is not set&lt;br /&gt;
# CONFIG_BLK_DEV_ZONED is not set&lt;br /&gt;
# CONFIG_BLK_CMDLINE_PARSER is not set&lt;br /&gt;
# CONFIG_BLK_WBT is not set&lt;br /&gt;
CONFIG_BLK_DEBUG_FS=y&lt;br /&gt;
# CONFIG_BLK_SED_OPAL is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Partition Types&lt;br /&gt;
#&lt;br /&gt;
CONFIG_PARTITION_ADVANCED=y&lt;br /&gt;
# CONFIG_ACORN_PARTITION is not set&lt;br /&gt;
# CONFIG_AIX_PARTITION is not set&lt;br /&gt;
CONFIG_OSF_PARTITION=y&lt;br /&gt;
CONFIG_AMIGA_PARTITION=y&lt;br /&gt;
# CONFIG_ATARI_PARTITION is not set&lt;br /&gt;
CONFIG_MAC_PARTITION=y&lt;br /&gt;
CONFIG_MSDOS_PARTITION=y&lt;br /&gt;
CONFIG_BSD_DISKLABEL=y&lt;br /&gt;
CONFIG_MINIX_SUBPARTITION=y&lt;br /&gt;
CONFIG_SOLARIS_X86_PARTITION=y&lt;br /&gt;
CONFIG_UNIXWARE_DISKLABEL=y&lt;br /&gt;
# CONFIG_LDM_PARTITION is not set&lt;br /&gt;
CONFIG_SGI_PARTITION=y&lt;br /&gt;
# CONFIG_ULTRIX_PARTITION is not set&lt;br /&gt;
CONFIG_SUN_PARTITION=y&lt;br /&gt;
CONFIG_KARMA_PARTITION=y&lt;br /&gt;
CONFIG_EFI_PARTITION=y&lt;br /&gt;
# CONFIG_SYSV68_PARTITION is not set&lt;br /&gt;
# CONFIG_CMDLINE_PARTITION is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# IO Schedulers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_IOSCHED_NOOP=y&lt;br /&gt;
CONFIG_IOSCHED_DEADLINE=y&lt;br /&gt;
CONFIG_IOSCHED_CFQ=y&lt;br /&gt;
# CONFIG_DEFAULT_DEADLINE is not set&lt;br /&gt;
CONFIG_DEFAULT_CFQ=y&lt;br /&gt;
# CONFIG_DEFAULT_NOOP is not set&lt;br /&gt;
CONFIG_DEFAULT_IOSCHED=&amp;quot;cfq&amp;quot;&lt;br /&gt;
CONFIG_MQ_IOSCHED_DEADLINE=y&lt;br /&gt;
CONFIG_MQ_IOSCHED_KYBER=y&lt;br /&gt;
# CONFIG_IOSCHED_BFQ is not set&lt;br /&gt;
CONFIG_ASN1=y&lt;br /&gt;
CONFIG_UNINLINE_SPIN_UNLOCK=y&lt;br /&gt;
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y&lt;br /&gt;
CONFIG_FREEZER=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# System Type&lt;br /&gt;
#&lt;br /&gt;
CONFIG_MMU=y&lt;br /&gt;
CONFIG_ARCH_MULTIPLATFORM=y&lt;br /&gt;
# CONFIG_ARCH_EBSA110 is not set&lt;br /&gt;
# CONFIG_ARCH_EP93XX is not set&lt;br /&gt;
# CONFIG_ARCH_FOOTBRIDGE is not set&lt;br /&gt;
# CONFIG_ARCH_NETX is not set&lt;br /&gt;
# CONFIG_ARCH_IOP13XX is not set&lt;br /&gt;
# CONFIG_ARCH_IOP32X is not set&lt;br /&gt;
# CONFIG_ARCH_IOP33X is not set&lt;br /&gt;
# CONFIG_ARCH_IXP4XX is not set&lt;br /&gt;
# CONFIG_ARCH_DOVE is not set&lt;br /&gt;
# CONFIG_ARCH_KS8695 is not set&lt;br /&gt;
# CONFIG_ARCH_W90X900 is not set&lt;br /&gt;
# CONFIG_ARCH_LPC32XX is not set&lt;br /&gt;
# CONFIG_ARCH_PXA is not set&lt;br /&gt;
# CONFIG_ARCH_RPC is not set&lt;br /&gt;
# CONFIG_ARCH_SA1100 is not set&lt;br /&gt;
# CONFIG_ARCH_S3C24XX is not set&lt;br /&gt;
# CONFIG_ARCH_DAVINCI is not set&lt;br /&gt;
# CONFIG_ARCH_OMAP1 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Multiple platform selection&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CPU Core family selection&lt;br /&gt;
#&lt;br /&gt;
CONFIG_ARCH_MULTI_V6=y&lt;br /&gt;
CONFIG_ARCH_MULTI_V7=y&lt;br /&gt;
CONFIG_ARCH_MULTI_V6_V7=y&lt;br /&gt;
# CONFIG_ARCH_MULTI_CPU_AUTO is not set&lt;br /&gt;
# CONFIG_ARCH_VIRT is not set&lt;br /&gt;
# CONFIG_ARCH_MVEBU is not set&lt;br /&gt;
# CONFIG_ARCH_ACTIONS is not set&lt;br /&gt;
# CONFIG_ARCH_ALPINE is not set&lt;br /&gt;
# CONFIG_ARCH_ARTPEC is not set&lt;br /&gt;
# CONFIG_ARCH_AT91 is not set&lt;br /&gt;
# CONFIG_ARCH_BCM is not set&lt;br /&gt;
# CONFIG_ARCH_BERLIN is not set&lt;br /&gt;
# CONFIG_ARCH_CNS3XXX is not set&lt;br /&gt;
# CONFIG_ARCH_DIGICOLOR is not set&lt;br /&gt;
# CONFIG_ARCH_HIGHBANK is not set&lt;br /&gt;
# CONFIG_ARCH_HISI is not set&lt;br /&gt;
# CONFIG_ARCH_INTEGRATOR is not set&lt;br /&gt;
# CONFIG_ARCH_KEYSTONE is not set&lt;br /&gt;
# CONFIG_ARCH_MESON is not set&lt;br /&gt;
# CONFIG_ARCH_ASPEED is not set&lt;br /&gt;
# CONFIG_ARCH_MXC is not set&lt;br /&gt;
# CONFIG_ARCH_MEDIATEK is not set&lt;br /&gt;
CONFIG_ARCH_OMAP=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# TI OMAP Common Features&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# OMAP Feature Selections&lt;br /&gt;
#&lt;br /&gt;
CONFIG_POWER_AVS_OMAP=y&lt;br /&gt;
CONFIG_POWER_AVS_OMAP_CLASS3=y&lt;br /&gt;
CONFIG_OMAP_RESET_CLOCKS=y&lt;br /&gt;
CONFIG_OMAP_32K_TIMER=y&lt;br /&gt;
# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set&lt;br /&gt;
CONFIG_OMAP_DM_TIMER=y&lt;br /&gt;
CONFIG_OMAP_PM_NOOP=y&lt;br /&gt;
CONFIG_MACH_OMAP_GENERIC=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# TI OMAP/AM/DM/DRA Family&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ARCH_OMAP2 is not set&lt;br /&gt;
CONFIG_ARCH_OMAP3=y&lt;br /&gt;
# CONFIG_ARCH_OMAP4 is not set&lt;br /&gt;
# CONFIG_SOC_OMAP5 is not set&lt;br /&gt;
# CONFIG_SOC_AM33XX is not set&lt;br /&gt;
# CONFIG_SOC_AM43XX is not set&lt;br /&gt;
# CONFIG_SOC_DRA7XX is not set&lt;br /&gt;
CONFIG_ARCH_OMAP2PLUS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# TI OMAP2/3/4 Specific Features&lt;br /&gt;
#&lt;br /&gt;
CONFIG_ARCH_OMAP2PLUS_TYPICAL=y&lt;br /&gt;
CONFIG_SOC_HAS_OMAP2_SDRC=y&lt;br /&gt;
CONFIG_SOC_OMAP3430=y&lt;br /&gt;
# CONFIG_SOC_TI81XX is not set&lt;br /&gt;
CONFIG_OMAP_PACKAGE_CBB=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# OMAP Legacy Platform Data Board Type&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MACH_OMAP3517EVM is not set&lt;br /&gt;
CONFIG_MACH_OMAP3_PANDORA=y&lt;br /&gt;
# CONFIG_OMAP3_SDRC_AC_TIMING is not set&lt;br /&gt;
# CONFIG_ARCH_PICOXCELL is not set&lt;br /&gt;
# CONFIG_ARCH_MMP is not set&lt;br /&gt;
# CONFIG_ARCH_OXNAS is not set&lt;br /&gt;
# CONFIG_ARCH_QCOM is not set&lt;br /&gt;
# CONFIG_ARCH_REALVIEW is not set&lt;br /&gt;
# CONFIG_ARCH_ROCKCHIP is not set&lt;br /&gt;
# CONFIG_ARCH_SOCFPGA is not set&lt;br /&gt;
# CONFIG_PLAT_SPEAR is not set&lt;br /&gt;
# CONFIG_ARCH_STI is not set&lt;br /&gt;
# CONFIG_ARCH_S3C64XX is not set&lt;br /&gt;
# CONFIG_ARCH_S5PV210 is not set&lt;br /&gt;
# CONFIG_ARCH_EXYNOS is not set&lt;br /&gt;
# CONFIG_ARCH_RENESAS is not set&lt;br /&gt;
# CONFIG_ARCH_SUNXI is not set&lt;br /&gt;
# CONFIG_ARCH_SIRF is not set&lt;br /&gt;
# CONFIG_ARCH_TANGO is not set&lt;br /&gt;
# CONFIG_ARCH_TEGRA is not set&lt;br /&gt;
# CONFIG_ARCH_UNIPHIER is not set&lt;br /&gt;
# CONFIG_ARCH_U8500 is not set&lt;br /&gt;
# CONFIG_ARCH_VEXPRESS is not set&lt;br /&gt;
# CONFIG_ARCH_WM8750 is not set&lt;br /&gt;
# CONFIG_ARCH_WM8850 is not set&lt;br /&gt;
# CONFIG_ARCH_ZX is not set&lt;br /&gt;
# CONFIG_ARCH_ZYNQ is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Processor Type&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CPU_V6K=y&lt;br /&gt;
CONFIG_CPU_V7=y&lt;br /&gt;
CONFIG_CPU_THUMB_CAPABLE=y&lt;br /&gt;
CONFIG_CPU_32v6=y&lt;br /&gt;
CONFIG_CPU_32v6K=y&lt;br /&gt;
CONFIG_CPU_32v7=y&lt;br /&gt;
CONFIG_CPU_ABRT_EV6=y&lt;br /&gt;
CONFIG_CPU_ABRT_EV7=y&lt;br /&gt;
CONFIG_CPU_PABRT_V6=y&lt;br /&gt;
CONFIG_CPU_PABRT_V7=y&lt;br /&gt;
CONFIG_CPU_CACHE_V6=y&lt;br /&gt;
CONFIG_CPU_CACHE_V7=y&lt;br /&gt;
CONFIG_CPU_CACHE_VIPT=y&lt;br /&gt;
CONFIG_CPU_COPY_V6=y&lt;br /&gt;
CONFIG_CPU_TLB_V6=y&lt;br /&gt;
CONFIG_CPU_TLB_V7=y&lt;br /&gt;
CONFIG_CPU_HAS_ASID=y&lt;br /&gt;
CONFIG_CPU_CP15=y&lt;br /&gt;
CONFIG_CPU_CP15_MMU=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Processor Features&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set&lt;br /&gt;
CONFIG_ARM_THUMB=y&lt;br /&gt;
CONFIG_ARM_THUMBEE=y&lt;br /&gt;
CONFIG_ARM_VIRT_EXT=y&lt;br /&gt;
CONFIG_SWP_EMULATE=y&lt;br /&gt;
# CONFIG_CPU_ICACHE_DISABLE is not set&lt;br /&gt;
# CONFIG_CPU_DCACHE_DISABLE is not set&lt;br /&gt;
# CONFIG_CPU_BPREDICT_DISABLE is not set&lt;br /&gt;
CONFIG_KUSER_HELPERS=y&lt;br /&gt;
CONFIG_VDSO=y&lt;br /&gt;
CONFIG_OUTER_CACHE=y&lt;br /&gt;
CONFIG_OUTER_CACHE_SYNC=y&lt;br /&gt;
CONFIG_MIGHT_HAVE_CACHE_L2X0=y&lt;br /&gt;
CONFIG_CACHE_L2X0=y&lt;br /&gt;
# CONFIG_CACHE_L2X0_PMU is not set&lt;br /&gt;
CONFIG_PL310_ERRATA_588369=y&lt;br /&gt;
CONFIG_PL310_ERRATA_727915=y&lt;br /&gt;
# CONFIG_PL310_ERRATA_753970 is not set&lt;br /&gt;
# CONFIG_PL310_ERRATA_769419 is not set&lt;br /&gt;
CONFIG_ARM_L1_CACHE_SHIFT_6=y&lt;br /&gt;
CONFIG_ARM_L1_CACHE_SHIFT=6&lt;br /&gt;
CONFIG_ARM_DMA_MEM_BUFFERABLE=y&lt;br /&gt;
CONFIG_ARM_HEAVY_MB=y&lt;br /&gt;
CONFIG_DEBUG_ALIGN_RODATA=y&lt;br /&gt;
CONFIG_MULTI_IRQ_HANDLER=y&lt;br /&gt;
CONFIG_ARM_ERRATA_411920=y&lt;br /&gt;
CONFIG_ARM_ERRATA_430973=y&lt;br /&gt;
CONFIG_ARM_ERRATA_720789=y&lt;br /&gt;
CONFIG_ARM_ERRATA_754322=y&lt;br /&gt;
CONFIG_ARM_ERRATA_775420=y&lt;br /&gt;
# CONFIG_ARM_ERRATA_773022 is not set&lt;br /&gt;
# CONFIG_ARM_ERRATA_818325_852422 is not set&lt;br /&gt;
# CONFIG_ARM_ERRATA_821420 is not set&lt;br /&gt;
# CONFIG_ARM_ERRATA_825619 is not set&lt;br /&gt;
# CONFIG_ARM_ERRATA_852421 is not set&lt;br /&gt;
# CONFIG_ARM_ERRATA_852423 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Bus support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_PCI is not set&lt;br /&gt;
# CONFIG_PCI_DOMAINS_GENERIC is not set&lt;br /&gt;
# CONFIG_PCI_SYSCALL is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Cadence PCIe controllers support&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DesignWare PCI Core Support&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# PCI Endpoint&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_PCI_ENDPOINT is not set&lt;br /&gt;
# CONFIG_PCCARD is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Kernel Features&lt;br /&gt;
#&lt;br /&gt;
CONFIG_HAVE_SMP=y&lt;br /&gt;
# CONFIG_SMP is not set&lt;br /&gt;
CONFIG_HAVE_ARM_ARCH_TIMER=y&lt;br /&gt;
CONFIG_VMSPLIT_3G=y&lt;br /&gt;
# CONFIG_VMSPLIT_3G_OPT is not set&lt;br /&gt;
# CONFIG_VMSPLIT_2G is not set&lt;br /&gt;
# CONFIG_VMSPLIT_1G is not set&lt;br /&gt;
CONFIG_PAGE_OFFSET=0xC0000000&lt;br /&gt;
# CONFIG_ARM_PSCI is not set&lt;br /&gt;
CONFIG_ARCH_NR_GPIO=0&lt;br /&gt;
# CONFIG_PREEMPT_NONE is not set&lt;br /&gt;
CONFIG_PREEMPT_VOLUNTARY=y&lt;br /&gt;
# CONFIG_PREEMPT is not set&lt;br /&gt;
CONFIG_HZ_FIXED=0&lt;br /&gt;
CONFIG_HZ_100=y&lt;br /&gt;
# CONFIG_HZ_200 is not set&lt;br /&gt;
# CONFIG_HZ_250 is not set&lt;br /&gt;
# CONFIG_HZ_300 is not set&lt;br /&gt;
# CONFIG_HZ_500 is not set&lt;br /&gt;
# CONFIG_HZ_1000 is not set&lt;br /&gt;
CONFIG_HZ=100&lt;br /&gt;
CONFIG_SCHED_HRTICK=y&lt;br /&gt;
CONFIG_ARM_PATCH_IDIV=y&lt;br /&gt;
CONFIG_AEABI=y&lt;br /&gt;
# CONFIG_OABI_COMPAT is not set&lt;br /&gt;
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y&lt;br /&gt;
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set&lt;br /&gt;
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set&lt;br /&gt;
CONFIG_HAVE_ARCH_PFN_VALID=y&lt;br /&gt;
CONFIG_HIGHMEM=y&lt;br /&gt;
CONFIG_HIGHPTE=y&lt;br /&gt;
CONFIG_CPU_SW_DOMAIN_PAN=y&lt;br /&gt;
CONFIG_HW_PERF_EVENTS=y&lt;br /&gt;
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y&lt;br /&gt;
# CONFIG_ARM_MODULE_PLTS is not set&lt;br /&gt;
CONFIG_FLATMEM=y&lt;br /&gt;
CONFIG_FLAT_NODE_MEM_MAP=y&lt;br /&gt;
CONFIG_HAVE_MEMBLOCK=y&lt;br /&gt;
CONFIG_NO_BOOTMEM=y&lt;br /&gt;
CONFIG_MEMORY_ISOLATION=y&lt;br /&gt;
# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set&lt;br /&gt;
CONFIG_SPLIT_PTLOCK_CPUS=4&lt;br /&gt;
CONFIG_COMPACTION=y&lt;br /&gt;
CONFIG_MIGRATION=y&lt;br /&gt;
# CONFIG_PHYS_ADDR_T_64BIT is not set&lt;br /&gt;
CONFIG_BOUNCE=y&lt;br /&gt;
# CONFIG_KSM is not set&lt;br /&gt;
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096&lt;br /&gt;
# CONFIG_ARCH_WANTS_THP_SWAP is not set&lt;br /&gt;
CONFIG_NEED_PER_CPU_KM=y&lt;br /&gt;
# CONFIG_CLEANCACHE is not set&lt;br /&gt;
# CONFIG_FRONTSWAP is not set&lt;br /&gt;
CONFIG_CMA=y&lt;br /&gt;
# CONFIG_CMA_DEBUG is not set&lt;br /&gt;
# CONFIG_CMA_DEBUGFS is not set&lt;br /&gt;
CONFIG_CMA_AREAS=7&lt;br /&gt;
# CONFIG_ZPOOL is not set&lt;br /&gt;
# CONFIG_ZBUD is not set&lt;br /&gt;
# CONFIG_ZSMALLOC is not set&lt;br /&gt;
CONFIG_GENERIC_EARLY_IOREMAP=y&lt;br /&gt;
# CONFIG_IDLE_PAGE_TRACKING is not set&lt;br /&gt;
# CONFIG_PERCPU_STATS is not set&lt;br /&gt;
# CONFIG_GUP_BENCHMARK is not set&lt;br /&gt;
CONFIG_FORCE_MAX_ZONEORDER=12&lt;br /&gt;
CONFIG_ALIGNMENT_TRAP=y&lt;br /&gt;
CONFIG_UACCESS_WITH_MEMCPY=y&lt;br /&gt;
CONFIG_SECCOMP=y&lt;br /&gt;
CONFIG_SWIOTLB=y&lt;br /&gt;
CONFIG_IOMMU_HELPER=y&lt;br /&gt;
# CONFIG_PARAVIRT is not set&lt;br /&gt;
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set&lt;br /&gt;
# CONFIG_XEN is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Boot options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USE_OF=y&lt;br /&gt;
CONFIG_ATAGS=y&lt;br /&gt;
# CONFIG_DEPRECATED_PARAM_STRUCT is not set&lt;br /&gt;
CONFIG_ZBOOT_ROM_TEXT=0x0&lt;br /&gt;
CONFIG_ZBOOT_ROM_BSS=0x0&lt;br /&gt;
CONFIG_ARM_APPENDED_DTB=y&lt;br /&gt;
CONFIG_ARM_ATAG_DTB_COMPAT=y&lt;br /&gt;
CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y&lt;br /&gt;
# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot;&amp;quot;&lt;br /&gt;
CONFIG_KEXEC=y&lt;br /&gt;
CONFIG_ATAGS_PROC=y&lt;br /&gt;
# CONFIG_CRASH_DUMP is not set&lt;br /&gt;
CONFIG_AUTO_ZRELADDR=y&lt;br /&gt;
# CONFIG_EFI is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CPU Power Management&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CPU Frequency scaling&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CPU_FREQ=y&lt;br /&gt;
CONFIG_CPU_FREQ_GOV_ATTR_SET=y&lt;br /&gt;
CONFIG_CPU_FREQ_GOV_COMMON=y&lt;br /&gt;
CONFIG_CPU_FREQ_STAT=y&lt;br /&gt;
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y&lt;br /&gt;
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set&lt;br /&gt;
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set&lt;br /&gt;
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set&lt;br /&gt;
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set&lt;br /&gt;
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y&lt;br /&gt;
CONFIG_CPU_FREQ_GOV_POWERSAVE=m&lt;br /&gt;
CONFIG_CPU_FREQ_GOV_USERSPACE=m&lt;br /&gt;
CONFIG_CPU_FREQ_GOV_ONDEMAND=m&lt;br /&gt;
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CPU frequency scaling drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_CPUFREQ_DT is not set&lt;br /&gt;
# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set&lt;br /&gt;
CONFIG_ARM_OMAP2PLUS_CPUFREQ=y&lt;br /&gt;
# CONFIG_ARM_TI_CPUFREQ is not set&lt;br /&gt;
# CONFIG_QORIQ_CPUFREQ is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CPU Idle&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CPU_IDLE=y&lt;br /&gt;
CONFIG_CPU_IDLE_GOV_LADDER=y&lt;br /&gt;
# CONFIG_CPU_IDLE_GOV_MENU is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# ARM CPU Idle Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ARM_CPUIDLE is not set&lt;br /&gt;
# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Floating point emulation&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# At least one emulation must be selected&lt;br /&gt;
#&lt;br /&gt;
CONFIG_VFP=y&lt;br /&gt;
CONFIG_VFPv3=y&lt;br /&gt;
CONFIG_NEON=y&lt;br /&gt;
CONFIG_KERNEL_MODE_NEON=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Userspace binary formats&lt;br /&gt;
#&lt;br /&gt;
CONFIG_BINFMT_ELF=y&lt;br /&gt;
# CONFIG_BINFMT_ELF_FDPIC is not set&lt;br /&gt;
CONFIG_ELFCORE=y&lt;br /&gt;
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set&lt;br /&gt;
CONFIG_BINFMT_SCRIPT=y&lt;br /&gt;
# CONFIG_BINFMT_FLAT is not set&lt;br /&gt;
# CONFIG_HAVE_AOUT is not set&lt;br /&gt;
CONFIG_BINFMT_MISC=m&lt;br /&gt;
CONFIG_COREDUMP=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Power management options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SUSPEND=y&lt;br /&gt;
CONFIG_SUSPEND_FREEZER=y&lt;br /&gt;
# CONFIG_SUSPEND_SKIP_SYNC is not set&lt;br /&gt;
CONFIG_HIBERNATE_CALLBACKS=y&lt;br /&gt;
CONFIG_HIBERNATION=y&lt;br /&gt;
CONFIG_PM_STD_PARTITION=&amp;quot;&amp;quot;&lt;br /&gt;
CONFIG_PM_SLEEP=y&lt;br /&gt;
# CONFIG_PM_AUTOSLEEP is not set&lt;br /&gt;
# CONFIG_PM_WAKELOCKS is not set&lt;br /&gt;
CONFIG_PM=y&lt;br /&gt;
# CONFIG_PM_DEBUG is not set&lt;br /&gt;
# CONFIG_APM_EMULATION is not set&lt;br /&gt;
CONFIG_PM_CLK=y&lt;br /&gt;
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set&lt;br /&gt;
CONFIG_CPU_PM=y&lt;br /&gt;
CONFIG_ARCH_SUSPEND_POSSIBLE=y&lt;br /&gt;
CONFIG_ARM_CPU_SUSPEND=y&lt;br /&gt;
CONFIG_ARCH_HIBERNATION_POSSIBLE=y&lt;br /&gt;
CONFIG_NET=y&lt;br /&gt;
CONFIG_NET_INGRESS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Networking options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_PACKET=y&lt;br /&gt;
# CONFIG_PACKET_DIAG is not set&lt;br /&gt;
CONFIG_UNIX=y&lt;br /&gt;
# CONFIG_UNIX_DIAG is not set&lt;br /&gt;
# CONFIG_TLS is not set&lt;br /&gt;
CONFIG_XFRM=y&lt;br /&gt;
CONFIG_XFRM_ALGO=m&lt;br /&gt;
# CONFIG_XFRM_USER is not set&lt;br /&gt;
# CONFIG_XFRM_SUB_POLICY is not set&lt;br /&gt;
# CONFIG_XFRM_MIGRATE is not set&lt;br /&gt;
# CONFIG_XFRM_STATISTICS is not set&lt;br /&gt;
# CONFIG_NET_KEY is not set&lt;br /&gt;
CONFIG_INET=y&lt;br /&gt;
CONFIG_IP_MULTICAST=y&lt;br /&gt;
CONFIG_IP_ADVANCED_ROUTER=y&lt;br /&gt;
# CONFIG_IP_FIB_TRIE_STATS is not set&lt;br /&gt;
CONFIG_IP_MULTIPLE_TABLES=y&lt;br /&gt;
CONFIG_IP_ROUTE_MULTIPATH=y&lt;br /&gt;
# CONFIG_IP_ROUTE_VERBOSE is not set&lt;br /&gt;
CONFIG_IP_PNP=y&lt;br /&gt;
CONFIG_IP_PNP_DHCP=y&lt;br /&gt;
# CONFIG_IP_PNP_BOOTP is not set&lt;br /&gt;
# CONFIG_IP_PNP_RARP is not set&lt;br /&gt;
# CONFIG_NET_IPIP is not set&lt;br /&gt;
# CONFIG_NET_IPGRE_DEMUX is not set&lt;br /&gt;
CONFIG_NET_IP_TUNNEL=m&lt;br /&gt;
CONFIG_IP_MROUTE=y&lt;br /&gt;
# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set&lt;br /&gt;
CONFIG_IP_PIMSM_V1=y&lt;br /&gt;
CONFIG_IP_PIMSM_V2=y&lt;br /&gt;
CONFIG_SYN_COOKIES=y&lt;br /&gt;
# CONFIG_NET_UDP_TUNNEL is not set&lt;br /&gt;
# CONFIG_NET_FOU is not set&lt;br /&gt;
# CONFIG_NET_FOU_IP_TUNNELS is not set&lt;br /&gt;
# CONFIG_INET_AH is not set&lt;br /&gt;
# CONFIG_INET_ESP is not set&lt;br /&gt;
# CONFIG_INET_IPCOMP is not set&lt;br /&gt;
# CONFIG_INET_XFRM_TUNNEL is not set&lt;br /&gt;
CONFIG_INET_TUNNEL=m&lt;br /&gt;
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set&lt;br /&gt;
# CONFIG_INET_XFRM_MODE_TUNNEL is not set&lt;br /&gt;
# CONFIG_INET_XFRM_MODE_BEET is not set&lt;br /&gt;
# CONFIG_INET_DIAG is not set&lt;br /&gt;
# CONFIG_TCP_CONG_ADVANCED is not set&lt;br /&gt;
CONFIG_TCP_CONG_CUBIC=y&lt;br /&gt;
CONFIG_DEFAULT_TCP_CONG=&amp;quot;cubic&amp;quot;&lt;br /&gt;
# CONFIG_TCP_MD5SIG is not set&lt;br /&gt;
CONFIG_IPV6=y&lt;br /&gt;
# CONFIG_IPV6_ROUTER_PREF is not set&lt;br /&gt;
# CONFIG_IPV6_OPTIMISTIC_DAD is not set&lt;br /&gt;
CONFIG_INET6_AH=m&lt;br /&gt;
CONFIG_INET6_ESP=m&lt;br /&gt;
# CONFIG_INET6_ESP_OFFLOAD is not set&lt;br /&gt;
# CONFIG_INET6_IPCOMP is not set&lt;br /&gt;
# CONFIG_IPV6_MIP6 is not set&lt;br /&gt;
# CONFIG_IPV6_ILA is not set&lt;br /&gt;
# CONFIG_INET6_XFRM_TUNNEL is not set&lt;br /&gt;
# CONFIG_INET6_TUNNEL is not set&lt;br /&gt;
CONFIG_INET6_XFRM_MODE_TRANSPORT=m&lt;br /&gt;
CONFIG_INET6_XFRM_MODE_TUNNEL=m&lt;br /&gt;
CONFIG_INET6_XFRM_MODE_BEET=m&lt;br /&gt;
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set&lt;br /&gt;
# CONFIG_IPV6_VTI is not set&lt;br /&gt;
CONFIG_IPV6_SIT=m&lt;br /&gt;
# CONFIG_IPV6_SIT_6RD is not set&lt;br /&gt;
CONFIG_IPV6_NDISC_NODETYPE=y&lt;br /&gt;
# CONFIG_IPV6_TUNNEL is not set&lt;br /&gt;
# CONFIG_IPV6_FOU is not set&lt;br /&gt;
# CONFIG_IPV6_FOU_TUNNEL is not set&lt;br /&gt;
# CONFIG_IPV6_MULTIPLE_TABLES is not set&lt;br /&gt;
# CONFIG_IPV6_MROUTE is not set&lt;br /&gt;
# CONFIG_IPV6_SEG6_LWTUNNEL is not set&lt;br /&gt;
# CONFIG_IPV6_SEG6_HMAC is not set&lt;br /&gt;
CONFIG_NETWORK_SECMARK=y&lt;br /&gt;
# CONFIG_NET_PTP_CLASSIFY is not set&lt;br /&gt;
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set&lt;br /&gt;
CONFIG_NETFILTER=y&lt;br /&gt;
CONFIG_NETFILTER_ADVANCED=y&lt;br /&gt;
CONFIG_BRIDGE_NETFILTER=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Core Netfilter Configuration&lt;br /&gt;
#&lt;br /&gt;
CONFIG_NETFILTER_INGRESS=y&lt;br /&gt;
CONFIG_NETFILTER_NETLINK=m&lt;br /&gt;
CONFIG_NETFILTER_FAMILY_BRIDGE=y&lt;br /&gt;
# CONFIG_NETFILTER_NETLINK_ACCT is not set&lt;br /&gt;
# CONFIG_NETFILTER_NETLINK_QUEUE is not set&lt;br /&gt;
CONFIG_NETFILTER_NETLINK_LOG=m&lt;br /&gt;
CONFIG_NF_CONNTRACK=m&lt;br /&gt;
CONFIG_NF_LOG_COMMON=m&lt;br /&gt;
# CONFIG_NF_LOG_NETDEV is not set&lt;br /&gt;
CONFIG_NETFILTER_CONNCOUNT=m&lt;br /&gt;
# CONFIG_NF_CONNTRACK_MARK is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_SECMARK is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_PROCFS is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_EVENTS is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_TIMEOUT is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set&lt;br /&gt;
# CONFIG_NF_CT_PROTO_DCCP is not set&lt;br /&gt;
CONFIG_NF_CT_PROTO_SCTP=y&lt;br /&gt;
# CONFIG_NF_CT_PROTO_UDPLITE is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_AMANDA is not set&lt;br /&gt;
CONFIG_NF_CONNTRACK_FTP=m&lt;br /&gt;
# CONFIG_NF_CONNTRACK_H323 is not set&lt;br /&gt;
CONFIG_NF_CONNTRACK_IRC=m&lt;br /&gt;
# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_SNMP is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_PPTP is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_SANE is not set&lt;br /&gt;
CONFIG_NF_CONNTRACK_SIP=m&lt;br /&gt;
# CONFIG_NF_CONNTRACK_TFTP is not set&lt;br /&gt;
CONFIG_NF_CT_NETLINK=m&lt;br /&gt;
# CONFIG_NF_CT_NETLINK_TIMEOUT is not set&lt;br /&gt;
# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set&lt;br /&gt;
CONFIG_NF_NAT=m&lt;br /&gt;
CONFIG_NF_NAT_NEEDED=y&lt;br /&gt;
CONFIG_NF_NAT_PROTO_SCTP=y&lt;br /&gt;
# CONFIG_NF_NAT_AMANDA is not set&lt;br /&gt;
CONFIG_NF_NAT_FTP=m&lt;br /&gt;
CONFIG_NF_NAT_IRC=m&lt;br /&gt;
CONFIG_NF_NAT_SIP=m&lt;br /&gt;
# CONFIG_NF_NAT_TFTP is not set&lt;br /&gt;
# CONFIG_NF_NAT_REDIRECT is not set&lt;br /&gt;
# CONFIG_NF_TABLES is not set&lt;br /&gt;
CONFIG_NETFILTER_XTABLES=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Xtables combined modules&lt;br /&gt;
#&lt;br /&gt;
CONFIG_NETFILTER_XT_MARK=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_CONNMARK is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Xtables targets&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_DSCP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_HL is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_HMARK is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_LED is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_TARGET_LOG=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_MARK is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_NAT=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_TARGET_NFLOG=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_TEE is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_TARGET_SECMARK=m&lt;br /&gt;
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Xtables matches&lt;br /&gt;
#&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_BPF is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_CPU is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_DCCP=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_ECN is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_ESP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_HELPER is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_HL is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_L2TP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_MAC is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_MARK is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_OSF is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_POLICY=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_REALM is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_RECENT=m&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_SCTP=m&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_STATE=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_STRING is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_TIME is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_U32 is not set&lt;br /&gt;
# CONFIG_IP_SET is not set&lt;br /&gt;
# CONFIG_IP_VS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# IP: Netfilter Configuration&lt;br /&gt;
#&lt;br /&gt;
CONFIG_NF_DEFRAG_IPV4=m&lt;br /&gt;
CONFIG_NF_CONNTRACK_IPV4=m&lt;br /&gt;
# CONFIG_NF_SOCKET_IPV4 is not set&lt;br /&gt;
# CONFIG_NF_DUP_IPV4 is not set&lt;br /&gt;
CONFIG_NF_LOG_ARP=m&lt;br /&gt;
CONFIG_NF_LOG_IPV4=m&lt;br /&gt;
CONFIG_NF_REJECT_IPV4=m&lt;br /&gt;
CONFIG_NF_NAT_IPV4=m&lt;br /&gt;
CONFIG_NF_NAT_MASQUERADE_IPV4=m&lt;br /&gt;
# CONFIG_NF_NAT_PPTP is not set&lt;br /&gt;
# CONFIG_NF_NAT_H323 is not set&lt;br /&gt;
CONFIG_IP_NF_IPTABLES=m&lt;br /&gt;
# CONFIG_IP_NF_MATCH_AH is not set&lt;br /&gt;
# CONFIG_IP_NF_MATCH_ECN is not set&lt;br /&gt;
# CONFIG_IP_NF_MATCH_RPFILTER is not set&lt;br /&gt;
# CONFIG_IP_NF_MATCH_TTL is not set&lt;br /&gt;
CONFIG_IP_NF_FILTER=m&lt;br /&gt;
CONFIG_IP_NF_TARGET_REJECT=m&lt;br /&gt;
# CONFIG_IP_NF_TARGET_SYNPROXY is not set&lt;br /&gt;
CONFIG_IP_NF_NAT=m&lt;br /&gt;
CONFIG_IP_NF_TARGET_MASQUERADE=m&lt;br /&gt;
# CONFIG_IP_NF_TARGET_NETMAP is not set&lt;br /&gt;
# CONFIG_IP_NF_TARGET_REDIRECT is not set&lt;br /&gt;
CONFIG_IP_NF_MANGLE=m&lt;br /&gt;
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set&lt;br /&gt;
# CONFIG_IP_NF_TARGET_ECN is not set&lt;br /&gt;
# CONFIG_IP_NF_TARGET_TTL is not set&lt;br /&gt;
# CONFIG_IP_NF_RAW is not set&lt;br /&gt;
# CONFIG_IP_NF_ARPTABLES is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# IPv6: Netfilter Configuration&lt;br /&gt;
#&lt;br /&gt;
CONFIG_NF_DEFRAG_IPV6=m&lt;br /&gt;
CONFIG_NF_CONNTRACK_IPV6=m&lt;br /&gt;
# CONFIG_NF_SOCKET_IPV6 is not set&lt;br /&gt;
# CONFIG_NF_DUP_IPV6 is not set&lt;br /&gt;
CONFIG_NF_REJECT_IPV6=m&lt;br /&gt;
CONFIG_NF_LOG_IPV6=m&lt;br /&gt;
# CONFIG_NF_NAT_IPV6 is not set&lt;br /&gt;
CONFIG_IP6_NF_IPTABLES=m&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_AH is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_EUI64 is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_FRAG is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_OPTS is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_HL is not set&lt;br /&gt;
CONFIG_IP6_NF_MATCH_IPV6HEADER=m&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_MH is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_RPFILTER is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_RT is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_SRH is not set&lt;br /&gt;
# CONFIG_IP6_NF_TARGET_HL is not set&lt;br /&gt;
CONFIG_IP6_NF_FILTER=m&lt;br /&gt;
CONFIG_IP6_NF_TARGET_REJECT=m&lt;br /&gt;
# CONFIG_IP6_NF_TARGET_SYNPROXY is not set&lt;br /&gt;
CONFIG_IP6_NF_MANGLE=m&lt;br /&gt;
# CONFIG_IP6_NF_RAW is not set&lt;br /&gt;
# CONFIG_IP6_NF_NAT is not set&lt;br /&gt;
# CONFIG_BRIDGE_NF_EBTABLES is not set&lt;br /&gt;
# CONFIG_IP_DCCP is not set&lt;br /&gt;
CONFIG_IP_SCTP=m&lt;br /&gt;
# CONFIG_SCTP_DBG_OBJCNT is not set&lt;br /&gt;
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y&lt;br /&gt;
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set&lt;br /&gt;
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set&lt;br /&gt;
CONFIG_SCTP_COOKIE_HMAC_MD5=y&lt;br /&gt;
# CONFIG_SCTP_COOKIE_HMAC_SHA1 is not set&lt;br /&gt;
# CONFIG_RDS is not set&lt;br /&gt;
# CONFIG_TIPC is not set&lt;br /&gt;
# CONFIG_ATM is not set&lt;br /&gt;
# CONFIG_L2TP is not set&lt;br /&gt;
CONFIG_STP=m&lt;br /&gt;
CONFIG_BRIDGE=m&lt;br /&gt;
CONFIG_BRIDGE_IGMP_SNOOPING=y&lt;br /&gt;
CONFIG_HAVE_NET_DSA=y&lt;br /&gt;
# CONFIG_NET_DSA is not set&lt;br /&gt;
# CONFIG_VLAN_8021Q is not set&lt;br /&gt;
# CONFIG_DECNET is not set&lt;br /&gt;
CONFIG_LLC=m&lt;br /&gt;
# CONFIG_LLC2 is not set&lt;br /&gt;
# CONFIG_ATALK is not set&lt;br /&gt;
# CONFIG_X25 is not set&lt;br /&gt;
# CONFIG_LAPB is not set&lt;br /&gt;
# CONFIG_PHONET is not set&lt;br /&gt;
# CONFIG_6LOWPAN is not set&lt;br /&gt;
# CONFIG_IEEE802154 is not set&lt;br /&gt;
CONFIG_NET_SCHED=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Queueing/Scheduling&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_NET_SCH_CBQ is not set&lt;br /&gt;
# CONFIG_NET_SCH_HTB is not set&lt;br /&gt;
# CONFIG_NET_SCH_HFSC is not set&lt;br /&gt;
# CONFIG_NET_SCH_PRIO is not set&lt;br /&gt;
# CONFIG_NET_SCH_MULTIQ is not set&lt;br /&gt;
# CONFIG_NET_SCH_RED is not set&lt;br /&gt;
# CONFIG_NET_SCH_SFB is not set&lt;br /&gt;
# CONFIG_NET_SCH_SFQ is not set&lt;br /&gt;
# CONFIG_NET_SCH_TEQL is not set&lt;br /&gt;
# CONFIG_NET_SCH_TBF is not set&lt;br /&gt;
# CONFIG_NET_SCH_CBS is not set&lt;br /&gt;
# CONFIG_NET_SCH_GRED is not set&lt;br /&gt;
# CONFIG_NET_SCH_DSMARK is not set&lt;br /&gt;
# CONFIG_NET_SCH_NETEM is not set&lt;br /&gt;
# CONFIG_NET_SCH_DRR is not set&lt;br /&gt;
# CONFIG_NET_SCH_MQPRIO is not set&lt;br /&gt;
# CONFIG_NET_SCH_CHOKE is not set&lt;br /&gt;
# CONFIG_NET_SCH_QFQ is not set&lt;br /&gt;
# CONFIG_NET_SCH_CODEL is not set&lt;br /&gt;
# CONFIG_NET_SCH_FQ_CODEL is not set&lt;br /&gt;
# CONFIG_NET_SCH_FQ is not set&lt;br /&gt;
# CONFIG_NET_SCH_HHF is not set&lt;br /&gt;
# CONFIG_NET_SCH_PIE is not set&lt;br /&gt;
# CONFIG_NET_SCH_PLUG is not set&lt;br /&gt;
# CONFIG_NET_SCH_DEFAULT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Classification&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_NET_CLS_BASIC is not set&lt;br /&gt;
# CONFIG_NET_CLS_TCINDEX is not set&lt;br /&gt;
# CONFIG_NET_CLS_ROUTE4 is not set&lt;br /&gt;
# CONFIG_NET_CLS_FW is not set&lt;br /&gt;
# CONFIG_NET_CLS_U32 is not set&lt;br /&gt;
# CONFIG_NET_CLS_RSVP is not set&lt;br /&gt;
# CONFIG_NET_CLS_RSVP6 is not set&lt;br /&gt;
# CONFIG_NET_CLS_FLOW is not set&lt;br /&gt;
# CONFIG_NET_CLS_CGROUP is not set&lt;br /&gt;
# CONFIG_NET_CLS_BPF is not set&lt;br /&gt;
# CONFIG_NET_CLS_FLOWER is not set&lt;br /&gt;
# CONFIG_NET_CLS_MATCHALL is not set&lt;br /&gt;
# CONFIG_NET_EMATCH is not set&lt;br /&gt;
# CONFIG_NET_CLS_ACT is not set&lt;br /&gt;
CONFIG_NET_SCH_FIFO=y&lt;br /&gt;
# CONFIG_DCB is not set&lt;br /&gt;
CONFIG_DNS_RESOLVER=y&lt;br /&gt;
# CONFIG_BATMAN_ADV is not set&lt;br /&gt;
# CONFIG_OPENVSWITCH is not set&lt;br /&gt;
# CONFIG_VSOCKETS is not set&lt;br /&gt;
# CONFIG_NETLINK_DIAG is not set&lt;br /&gt;
# CONFIG_MPLS is not set&lt;br /&gt;
# CONFIG_NET_NSH is not set&lt;br /&gt;
# CONFIG_HSR is not set&lt;br /&gt;
# CONFIG_NET_SWITCHDEV is not set&lt;br /&gt;
# CONFIG_NET_L3_MASTER_DEV is not set&lt;br /&gt;
# CONFIG_NET_NCSI is not set&lt;br /&gt;
# CONFIG_CGROUP_NET_PRIO is not set&lt;br /&gt;
# CONFIG_CGROUP_NET_CLASSID is not set&lt;br /&gt;
CONFIG_NET_RX_BUSY_POLL=y&lt;br /&gt;
CONFIG_BQL=y&lt;br /&gt;
# CONFIG_BPF_JIT is not set&lt;br /&gt;
# CONFIG_BPF_STREAM_PARSER is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Network testing&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_NET_PKTGEN is not set&lt;br /&gt;
# CONFIG_HAMRADIO is not set&lt;br /&gt;
# CONFIG_CAN is not set&lt;br /&gt;
# CONFIG_BT is not set&lt;br /&gt;
# CONFIG_AF_RXRPC is not set&lt;br /&gt;
# CONFIG_AF_KCM is not set&lt;br /&gt;
# CONFIG_STREAM_PARSER is not set&lt;br /&gt;
CONFIG_FIB_RULES=y&lt;br /&gt;
CONFIG_WIRELESS=y&lt;br /&gt;
CONFIG_WEXT_CORE=y&lt;br /&gt;
CONFIG_WEXT_PROC=y&lt;br /&gt;
CONFIG_CFG80211=m&lt;br /&gt;
# CONFIG_NL80211_TESTMODE is not set&lt;br /&gt;
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set&lt;br /&gt;
# CONFIG_CFG80211_CERTIFICATION_ONUS is not set&lt;br /&gt;
CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y&lt;br /&gt;
CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y&lt;br /&gt;
CONFIG_CFG80211_DEFAULT_PS=y&lt;br /&gt;
# CONFIG_CFG80211_DEBUGFS is not set&lt;br /&gt;
CONFIG_CFG80211_CRDA_SUPPORT=y&lt;br /&gt;
CONFIG_CFG80211_WEXT=y&lt;br /&gt;
# CONFIG_LIB80211 is not set&lt;br /&gt;
CONFIG_MAC80211=m&lt;br /&gt;
CONFIG_MAC80211_HAS_RC=y&lt;br /&gt;
CONFIG_MAC80211_RC_MINSTREL=y&lt;br /&gt;
CONFIG_MAC80211_RC_MINSTREL_HT=y&lt;br /&gt;
# CONFIG_MAC80211_RC_MINSTREL_VHT is not set&lt;br /&gt;
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y&lt;br /&gt;
CONFIG_MAC80211_RC_DEFAULT=&amp;quot;minstrel_ht&amp;quot;&lt;br /&gt;
CONFIG_MAC80211_MESH=y&lt;br /&gt;
CONFIG_MAC80211_LEDS=y&lt;br /&gt;
# CONFIG_MAC80211_DEBUGFS is not set&lt;br /&gt;
# CONFIG_MAC80211_MESSAGE_TRACING is not set&lt;br /&gt;
# CONFIG_MAC80211_DEBUG_MENU is not set&lt;br /&gt;
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0&lt;br /&gt;
# CONFIG_WIMAX is not set&lt;br /&gt;
CONFIG_RFKILL=m&lt;br /&gt;
CONFIG_RFKILL_LEDS=y&lt;br /&gt;
# CONFIG_RFKILL_INPUT is not set&lt;br /&gt;
# CONFIG_RFKILL_GPIO is not set&lt;br /&gt;
# CONFIG_NET_9P is not set&lt;br /&gt;
# CONFIG_CAIF is not set&lt;br /&gt;
# CONFIG_CEPH_LIB is not set&lt;br /&gt;
# CONFIG_NFC is not set&lt;br /&gt;
# CONFIG_PSAMPLE is not set&lt;br /&gt;
# CONFIG_NET_IFE is not set&lt;br /&gt;
# CONFIG_LWTUNNEL is not set&lt;br /&gt;
CONFIG_DST_CACHE=y&lt;br /&gt;
CONFIG_GRO_CELLS=y&lt;br /&gt;
# CONFIG_NET_DEVLINK is not set&lt;br /&gt;
CONFIG_MAY_USE_DEVLINK=y&lt;br /&gt;
CONFIG_HAVE_EBPF_JIT=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Device Drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Generic Driver Options&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_UEVENT_HELPER is not set&lt;br /&gt;
CONFIG_DEVTMPFS=y&lt;br /&gt;
CONFIG_DEVTMPFS_MOUNT=y&lt;br /&gt;
CONFIG_STANDALONE=y&lt;br /&gt;
CONFIG_PREVENT_FIRMWARE_BUILD=y&lt;br /&gt;
CONFIG_FW_LOADER=y&lt;br /&gt;
CONFIG_EXTRA_FIRMWARE=&amp;quot;&amp;quot;&lt;br /&gt;
# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set&lt;br /&gt;
CONFIG_ALLOW_DEV_COREDUMP=y&lt;br /&gt;
# CONFIG_DEBUG_DRIVER is not set&lt;br /&gt;
# CONFIG_DEBUG_DEVRES is not set&lt;br /&gt;
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set&lt;br /&gt;
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set&lt;br /&gt;
# CONFIG_SYS_HYPERVISOR is not set&lt;br /&gt;
# CONFIG_GENERIC_CPU_DEVICES is not set&lt;br /&gt;
CONFIG_GENERIC_CPU_AUTOPROBE=y&lt;br /&gt;
CONFIG_SOC_BUS=y&lt;br /&gt;
CONFIG_REGMAP=y&lt;br /&gt;
CONFIG_REGMAP_I2C=y&lt;br /&gt;
CONFIG_REGMAP_SPI=y&lt;br /&gt;
CONFIG_REGMAP_MMIO=y&lt;br /&gt;
CONFIG_REGMAP_IRQ=y&lt;br /&gt;
CONFIG_DMA_SHARED_BUFFER=y&lt;br /&gt;
# CONFIG_DMA_FENCE_TRACE is not set&lt;br /&gt;
CONFIG_DMA_CMA=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Default contiguous memory area size:&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CMA_SIZE_MBYTES=64&lt;br /&gt;
CONFIG_CMA_SIZE_SEL_MBYTES=y&lt;br /&gt;
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set&lt;br /&gt;
# CONFIG_CMA_SIZE_SEL_MIN is not set&lt;br /&gt;
# CONFIG_CMA_SIZE_SEL_MAX is not set&lt;br /&gt;
CONFIG_CMA_ALIGNMENT=9&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Bus devices&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ARM_CCI400_PMU is not set&lt;br /&gt;
# CONFIG_ARM_CCI5xx_PMU is not set&lt;br /&gt;
# CONFIG_ARM_CCN is not set&lt;br /&gt;
# CONFIG_BRCMSTB_GISB_ARB is not set&lt;br /&gt;
CONFIG_OMAP_INTERCONNECT=y&lt;br /&gt;
CONFIG_OMAP_OCP2SCP=y&lt;br /&gt;
# CONFIG_SIMPLE_PM_BUS is not set&lt;br /&gt;
CONFIG_TI_SYSC=y&lt;br /&gt;
# CONFIG_VEXPRESS_CONFIG is not set&lt;br /&gt;
# CONFIG_CONNECTOR is not set&lt;br /&gt;
CONFIG_MTD=y&lt;br /&gt;
# CONFIG_MTD_TESTS is not set&lt;br /&gt;
# CONFIG_MTD_REDBOOT_PARTS is not set&lt;br /&gt;
# CONFIG_MTD_CMDLINE_PARTS is not set&lt;br /&gt;
# CONFIG_MTD_AFS_PARTS is not set&lt;br /&gt;
# CONFIG_MTD_OF_PARTS is not set&lt;br /&gt;
# CONFIG_MTD_AR7_PARTS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Partition parsers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# User Modules And Translation Layers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_MTD_BLKDEVS=y&lt;br /&gt;
CONFIG_MTD_BLOCK=y&lt;br /&gt;
# CONFIG_FTL is not set&lt;br /&gt;
# CONFIG_NFTL is not set&lt;br /&gt;
# CONFIG_INFTL is not set&lt;br /&gt;
# CONFIG_RFD_FTL is not set&lt;br /&gt;
# CONFIG_SSFDC is not set&lt;br /&gt;
# CONFIG_SM_FTL is not set&lt;br /&gt;
# CONFIG_MTD_OOPS is not set&lt;br /&gt;
# CONFIG_MTD_SWAP is not set&lt;br /&gt;
# CONFIG_MTD_PARTITIONED_MASTER is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# RAM/ROM/Flash chip drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MTD_CFI is not set&lt;br /&gt;
# CONFIG_MTD_JEDECPROBE is not set&lt;br /&gt;
CONFIG_MTD_MAP_BANK_WIDTH_1=y&lt;br /&gt;
CONFIG_MTD_MAP_BANK_WIDTH_2=y&lt;br /&gt;
CONFIG_MTD_MAP_BANK_WIDTH_4=y&lt;br /&gt;
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set&lt;br /&gt;
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set&lt;br /&gt;
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set&lt;br /&gt;
CONFIG_MTD_CFI_I1=y&lt;br /&gt;
CONFIG_MTD_CFI_I2=y&lt;br /&gt;
# CONFIG_MTD_CFI_I4 is not set&lt;br /&gt;
# CONFIG_MTD_CFI_I8 is not set&lt;br /&gt;
# CONFIG_MTD_RAM is not set&lt;br /&gt;
# CONFIG_MTD_ROM is not set&lt;br /&gt;
# CONFIG_MTD_ABSENT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Mapping drivers for chip access&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MTD_COMPLEX_MAPPINGS is not set&lt;br /&gt;
# CONFIG_MTD_PLATRAM is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Self-contained MTD device drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MTD_DATAFLASH is not set&lt;br /&gt;
# CONFIG_MTD_MCHP23K256 is not set&lt;br /&gt;
# CONFIG_MTD_SST25L is not set&lt;br /&gt;
# CONFIG_MTD_SLRAM is not set&lt;br /&gt;
# CONFIG_MTD_PHRAM is not set&lt;br /&gt;
# CONFIG_MTD_MTDRAM is not set&lt;br /&gt;
# CONFIG_MTD_BLOCK2MTD is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Disk-On-Chip Device Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MTD_DOCG3 is not set&lt;br /&gt;
CONFIG_MTD_NAND_ECC=y&lt;br /&gt;
# CONFIG_MTD_NAND_ECC_SMC is not set&lt;br /&gt;
CONFIG_MTD_NAND=y&lt;br /&gt;
# CONFIG_MTD_NAND_ECC_BCH is not set&lt;br /&gt;
# CONFIG_MTD_SM_COMMON is not set&lt;br /&gt;
# CONFIG_MTD_NAND_DENALI_DT is not set&lt;br /&gt;
# CONFIG_MTD_NAND_GPIO is not set&lt;br /&gt;
CONFIG_MTD_NAND_OMAP2=y&lt;br /&gt;
CONFIG_MTD_NAND_OMAP_BCH=y&lt;br /&gt;
CONFIG_MTD_NAND_OMAP_BCH_BUILD=y&lt;br /&gt;
# CONFIG_MTD_NAND_DISKONCHIP is not set&lt;br /&gt;
# CONFIG_MTD_NAND_DOCG4 is not set&lt;br /&gt;
# CONFIG_MTD_NAND_NANDSIM is not set&lt;br /&gt;
# CONFIG_MTD_NAND_BRCMNAND is not set&lt;br /&gt;
# CONFIG_MTD_NAND_PLATFORM is not set&lt;br /&gt;
# CONFIG_MTD_ONENAND is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# LPDDR &amp;amp; LPDDR2 PCM memory drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MTD_LPDDR is not set&lt;br /&gt;
# CONFIG_MTD_LPDDR2_NVM is not set&lt;br /&gt;
# CONFIG_MTD_SPI_NOR is not set&lt;br /&gt;
CONFIG_MTD_UBI=y&lt;br /&gt;
CONFIG_MTD_UBI_WL_THRESHOLD=4096&lt;br /&gt;
CONFIG_MTD_UBI_BEB_LIMIT=2&lt;br /&gt;
# CONFIG_MTD_UBI_FASTMAP is not set&lt;br /&gt;
# CONFIG_MTD_UBI_GLUEBI is not set&lt;br /&gt;
# CONFIG_MTD_UBI_BLOCK is not set&lt;br /&gt;
CONFIG_DTC=y&lt;br /&gt;
CONFIG_OF=y&lt;br /&gt;
# CONFIG_OF_UNITTEST is not set&lt;br /&gt;
CONFIG_OF_FLATTREE=y&lt;br /&gt;
CONFIG_OF_EARLY_FLATTREE=y&lt;br /&gt;
CONFIG_OF_KOBJ=y&lt;br /&gt;
CONFIG_OF_ADDRESS=y&lt;br /&gt;
CONFIG_OF_IRQ=y&lt;br /&gt;
CONFIG_OF_NET=y&lt;br /&gt;
CONFIG_OF_MDIO=m&lt;br /&gt;
CONFIG_OF_RESERVED_MEM=y&lt;br /&gt;
# CONFIG_OF_OVERLAY is not set&lt;br /&gt;
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y&lt;br /&gt;
# CONFIG_PARPORT is not set&lt;br /&gt;
CONFIG_BLK_DEV=y&lt;br /&gt;
# CONFIG_BLK_DEV_NULL_BLK is not set&lt;br /&gt;
CONFIG_CDROM=m&lt;br /&gt;
# CONFIG_BLK_DEV_COW_COMMON is not set&lt;br /&gt;
CONFIG_BLK_DEV_LOOP=y&lt;br /&gt;
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8&lt;br /&gt;
# CONFIG_BLK_DEV_CRYPTOLOOP is not set&lt;br /&gt;
# CONFIG_BLK_DEV_DRBD is not set&lt;br /&gt;
# CONFIG_BLK_DEV_NBD is not set&lt;br /&gt;
# CONFIG_BLK_DEV_RAM is not set&lt;br /&gt;
# CONFIG_CDROM_PKTCDVD is not set&lt;br /&gt;
# CONFIG_ATA_OVER_ETH is not set&lt;br /&gt;
# CONFIG_BLK_DEV_RBD is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# NVME Support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_NVME_FC is not set&lt;br /&gt;
# CONFIG_NVME_TARGET is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Misc devices&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SENSORS_LIS3LV02D is not set&lt;br /&gt;
# CONFIG_AD525X_DPOT is not set&lt;br /&gt;
# CONFIG_DUMMY_IRQ is not set&lt;br /&gt;
# CONFIG_ICS932S401 is not set&lt;br /&gt;
# CONFIG_ENCLOSURE_SERVICES is not set&lt;br /&gt;
# CONFIG_APDS9802ALS is not set&lt;br /&gt;
# CONFIG_ISL29003 is not set&lt;br /&gt;
# CONFIG_ISL29020 is not set&lt;br /&gt;
# CONFIG_SENSORS_TSL2550 is not set&lt;br /&gt;
# CONFIG_SENSORS_BH1770 is not set&lt;br /&gt;
# CONFIG_SENSORS_APDS990X is not set&lt;br /&gt;
# CONFIG_HMC6352 is not set&lt;br /&gt;
# CONFIG_DS1682 is not set&lt;br /&gt;
# CONFIG_USB_SWITCH_FSA9480 is not set&lt;br /&gt;
# CONFIG_LATTICE_ECP3_CONFIG is not set&lt;br /&gt;
# CONFIG_TXS02612 is not set&lt;br /&gt;
# CONFIG_SRAM is not set&lt;br /&gt;
# CONFIG_MISC_RTSX is not set&lt;br /&gt;
# CONFIG_WWAN_ON_OFF is not set&lt;br /&gt;
# CONFIG_C2PORT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# EEPROM support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_EEPROM_AT24 is not set&lt;br /&gt;
# CONFIG_EEPROM_AT25 is not set&lt;br /&gt;
# CONFIG_EEPROM_LEGACY is not set&lt;br /&gt;
# CONFIG_EEPROM_MAX6875 is not set&lt;br /&gt;
CONFIG_EEPROM_93CX6=y&lt;br /&gt;
# CONFIG_EEPROM_93XX46 is not set&lt;br /&gt;
# CONFIG_EEPROM_IDT_89HPESX is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Texas Instruments shared transport line discipline&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_TI_ST is not set&lt;br /&gt;
# CONFIG_SENSORS_LIS3_SPI is not set&lt;br /&gt;
# CONFIG_SENSORS_LIS3_I2C is not set&lt;br /&gt;
# CONFIG_ALTERA_STAPL is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Intel MIC &amp;amp; related support&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Intel MIC Bus Driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SCIF Bus Driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# VOP Bus Driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Intel MIC Host Driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Intel MIC Card Driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SCIF Driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Intel MIC Coprocessor State Management (COSM) Drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# VOP Driver&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ECHO is not set&lt;br /&gt;
# CONFIG_CXL_BASE is not set&lt;br /&gt;
# CONFIG_CXL_AFU_DRIVER_OPS is not set&lt;br /&gt;
# CONFIG_CXL_LIB is not set&lt;br /&gt;
# CONFIG_OCXL_BASE is not set&lt;br /&gt;
# CONFIG_MISC_RTSX_USB is not set&lt;br /&gt;
# CONFIG_W2CBW003 is not set&lt;br /&gt;
# CONFIG_TRS3386 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SCSI device support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SCSI_MOD=y&lt;br /&gt;
# CONFIG_RAID_ATTRS is not set&lt;br /&gt;
CONFIG_SCSI=y&lt;br /&gt;
CONFIG_SCSI_DMA=y&lt;br /&gt;
# CONFIG_SCSI_NETLINK is not set&lt;br /&gt;
# CONFIG_SCSI_MQ_DEFAULT is not set&lt;br /&gt;
CONFIG_SCSI_PROC_FS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SCSI support type (disk, tape, CD-ROM)&lt;br /&gt;
#&lt;br /&gt;
CONFIG_BLK_DEV_SD=y&lt;br /&gt;
# CONFIG_CHR_DEV_ST is not set&lt;br /&gt;
# CONFIG_CHR_DEV_OSST is not set&lt;br /&gt;
CONFIG_BLK_DEV_SR=m&lt;br /&gt;
CONFIG_BLK_DEV_SR_VENDOR=y&lt;br /&gt;
CONFIG_CHR_DEV_SG=m&lt;br /&gt;
# CONFIG_CHR_DEV_SCH is not set&lt;br /&gt;
# CONFIG_SCSI_CONSTANTS is not set&lt;br /&gt;
# CONFIG_SCSI_LOGGING is not set&lt;br /&gt;
# CONFIG_SCSI_SCAN_ASYNC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SCSI Transports&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SCSI_SPI_ATTRS=y&lt;br /&gt;
# CONFIG_SCSI_FC_ATTRS is not set&lt;br /&gt;
CONFIG_SCSI_ISCSI_ATTRS=y&lt;br /&gt;
# CONFIG_SCSI_SAS_ATTRS is not set&lt;br /&gt;
# CONFIG_SCSI_SAS_LIBSAS is not set&lt;br /&gt;
# CONFIG_SCSI_SRP_ATTRS is not set&lt;br /&gt;
# CONFIG_SCSI_LOWLEVEL is not set&lt;br /&gt;
# CONFIG_SCSI_DH is not set&lt;br /&gt;
# CONFIG_SCSI_OSD_INITIATOR is not set&lt;br /&gt;
# CONFIG_ATA is not set&lt;br /&gt;
CONFIG_MD=y&lt;br /&gt;
# CONFIG_BLK_DEV_MD is not set&lt;br /&gt;
# CONFIG_BCACHE is not set&lt;br /&gt;
CONFIG_BLK_DEV_DM_BUILTIN=y&lt;br /&gt;
CONFIG_BLK_DEV_DM=m&lt;br /&gt;
# CONFIG_DM_MQ_DEFAULT is not set&lt;br /&gt;
# CONFIG_DM_DEBUG is not set&lt;br /&gt;
# CONFIG_DM_UNSTRIPED is not set&lt;br /&gt;
CONFIG_DM_CRYPT=m&lt;br /&gt;
# CONFIG_DM_SNAPSHOT is not set&lt;br /&gt;
# CONFIG_DM_THIN_PROVISIONING is not set&lt;br /&gt;
# CONFIG_DM_CACHE is not set&lt;br /&gt;
# CONFIG_DM_ERA is not set&lt;br /&gt;
# CONFIG_DM_MIRROR is not set&lt;br /&gt;
# CONFIG_DM_RAID is not set&lt;br /&gt;
# CONFIG_DM_ZERO is not set&lt;br /&gt;
# CONFIG_DM_MULTIPATH is not set&lt;br /&gt;
# CONFIG_DM_DELAY is not set&lt;br /&gt;
# CONFIG_DM_UEVENT is not set&lt;br /&gt;
# CONFIG_DM_FLAKEY is not set&lt;br /&gt;
# CONFIG_DM_VERITY is not set&lt;br /&gt;
# CONFIG_DM_SWITCH is not set&lt;br /&gt;
# CONFIG_DM_LOG_WRITES is not set&lt;br /&gt;
# CONFIG_DM_INTEGRITY is not set&lt;br /&gt;
# CONFIG_TARGET_CORE is not set&lt;br /&gt;
CONFIG_NETDEVICES=y&lt;br /&gt;
CONFIG_MII=m&lt;br /&gt;
CONFIG_NET_CORE=y&lt;br /&gt;
# CONFIG_BONDING is not set&lt;br /&gt;
# CONFIG_DUMMY is not set&lt;br /&gt;
# CONFIG_EQUALIZER is not set&lt;br /&gt;
# CONFIG_NET_TEAM is not set&lt;br /&gt;
# CONFIG_MACVLAN is not set&lt;br /&gt;
# CONFIG_VXLAN is not set&lt;br /&gt;
# CONFIG_MACSEC is not set&lt;br /&gt;
# CONFIG_NETCONSOLE is not set&lt;br /&gt;
# CONFIG_NETPOLL is not set&lt;br /&gt;
# CONFIG_NET_POLL_CONTROLLER is not set&lt;br /&gt;
CONFIG_TUN=m&lt;br /&gt;
# CONFIG_TUN_VNET_CROSS_LE is not set&lt;br /&gt;
# CONFIG_VETH is not set&lt;br /&gt;
# CONFIG_NLMON is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CAIF transport drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Distributed Switch Architecture drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_ETHERNET=y&lt;br /&gt;
# CONFIG_NET_VENDOR_ALACRITECH is not set&lt;br /&gt;
# CONFIG_ALTERA_TSE is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_AMAZON is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_AQUANTIA is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_ARC is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_AURORA is not set&lt;br /&gt;
# CONFIG_NET_CADENCE is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_BROADCOM is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_CIRRUS is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_CORTINA is not set&lt;br /&gt;
# CONFIG_DM9000 is not set&lt;br /&gt;
# CONFIG_DNET is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_EZCHIP is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_FARADAY is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_HISILICON is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_HUAWEI is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_INTEL is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_MARVELL is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_MELLANOX is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_MICREL is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_MICROCHIP is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_NATSEMI is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_NETRONOME is not set&lt;br /&gt;
# CONFIG_ETHOC is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_QUALCOMM is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_RENESAS is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_ROCKER is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_SAMSUNG is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_SEEQ is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_SOLARFLARE is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_SMSC is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_SOCIONEXT is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_STMICRO is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_TI is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_VIA is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_WIZNET is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_SYNOPSYS is not set&lt;br /&gt;
CONFIG_MDIO_DEVICE=m&lt;br /&gt;
CONFIG_MDIO_BUS=m&lt;br /&gt;
# CONFIG_MDIO_BCM_UNIMAC is not set&lt;br /&gt;
# CONFIG_MDIO_BITBANG is not set&lt;br /&gt;
# CONFIG_MDIO_BUS_MUX_GPIO is not set&lt;br /&gt;
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set&lt;br /&gt;
# CONFIG_MDIO_HISI_FEMAC is not set&lt;br /&gt;
CONFIG_PHYLIB=m&lt;br /&gt;
CONFIG_SWPHY=y&lt;br /&gt;
# CONFIG_LED_TRIGGER_PHY is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# MII PHY device drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AMD_PHY is not set&lt;br /&gt;
# CONFIG_AQUANTIA_PHY is not set&lt;br /&gt;
# CONFIG_AT803X_PHY is not set&lt;br /&gt;
# CONFIG_BCM7XXX_PHY is not set&lt;br /&gt;
# CONFIG_BCM87XX_PHY is not set&lt;br /&gt;
# CONFIG_BROADCOM_PHY is not set&lt;br /&gt;
# CONFIG_CICADA_PHY is not set&lt;br /&gt;
# CONFIG_CORTINA_PHY is not set&lt;br /&gt;
# CONFIG_DAVICOM_PHY is not set&lt;br /&gt;
# CONFIG_DP83822_PHY is not set&lt;br /&gt;
# CONFIG_DP83848_PHY is not set&lt;br /&gt;
# CONFIG_DP83867_PHY is not set&lt;br /&gt;
CONFIG_FIXED_PHY=m&lt;br /&gt;
# CONFIG_ICPLUS_PHY is not set&lt;br /&gt;
# CONFIG_INTEL_XWAY_PHY is not set&lt;br /&gt;
# CONFIG_LSI_ET1011C_PHY is not set&lt;br /&gt;
# CONFIG_LXT_PHY is not set&lt;br /&gt;
# CONFIG_MARVELL_PHY is not set&lt;br /&gt;
# CONFIG_MARVELL_10G_PHY is not set&lt;br /&gt;
# CONFIG_MICREL_PHY is not set&lt;br /&gt;
# CONFIG_MICROCHIP_PHY is not set&lt;br /&gt;
# CONFIG_MICROSEMI_PHY is not set&lt;br /&gt;
# CONFIG_NATIONAL_PHY is not set&lt;br /&gt;
# CONFIG_QSEMI_PHY is not set&lt;br /&gt;
# CONFIG_REALTEK_PHY is not set&lt;br /&gt;
# CONFIG_RENESAS_PHY is not set&lt;br /&gt;
# CONFIG_ROCKCHIP_PHY is not set&lt;br /&gt;
# CONFIG_SMSC_PHY is not set&lt;br /&gt;
# CONFIG_STE10XP is not set&lt;br /&gt;
# CONFIG_TERANETICS_PHY is not set&lt;br /&gt;
# CONFIG_VITESSE_PHY is not set&lt;br /&gt;
# CONFIG_XILINX_GMII2RGMII is not set&lt;br /&gt;
# CONFIG_MICREL_KS8995MA is not set&lt;br /&gt;
# CONFIG_PPP is not set&lt;br /&gt;
# CONFIG_SLIP is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Host-side USB support is needed for USB Network Adapter support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_NET_DRIVERS=m&lt;br /&gt;
# CONFIG_USB_CATC is not set&lt;br /&gt;
# CONFIG_USB_KAWETH is not set&lt;br /&gt;
# CONFIG_USB_PEGASUS is not set&lt;br /&gt;
# CONFIG_USB_RTL8150 is not set&lt;br /&gt;
# CONFIG_USB_RTL8152 is not set&lt;br /&gt;
# CONFIG_USB_LAN78XX is not set&lt;br /&gt;
CONFIG_USB_USBNET=m&lt;br /&gt;
# CONFIG_USB_NET_AX8817X is not set&lt;br /&gt;
# CONFIG_USB_NET_AX88179_178A is not set&lt;br /&gt;
CONFIG_USB_NET_CDCETHER=m&lt;br /&gt;
CONFIG_USB_NET_CDC_EEM=m&lt;br /&gt;
# CONFIG_USB_NET_CDC_NCM is not set&lt;br /&gt;
# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set&lt;br /&gt;
# CONFIG_USB_NET_CDC_MBIM is not set&lt;br /&gt;
# CONFIG_USB_NET_DM9601 is not set&lt;br /&gt;
# CONFIG_USB_NET_SR9700 is not set&lt;br /&gt;
# CONFIG_USB_NET_SR9800 is not set&lt;br /&gt;
# CONFIG_USB_NET_SMSC75XX is not set&lt;br /&gt;
# CONFIG_USB_NET_SMSC95XX is not set&lt;br /&gt;
# CONFIG_USB_NET_GL620A is not set&lt;br /&gt;
# CONFIG_USB_NET_NET1080 is not set&lt;br /&gt;
# CONFIG_USB_NET_PLUSB is not set&lt;br /&gt;
# CONFIG_USB_NET_MCS7830 is not set&lt;br /&gt;
CONFIG_USB_NET_RNDIS_HOST=m&lt;br /&gt;
CONFIG_USB_NET_CDC_SUBSET_ENABLE=m&lt;br /&gt;
CONFIG_USB_NET_CDC_SUBSET=m&lt;br /&gt;
# CONFIG_USB_ALI_M5632 is not set&lt;br /&gt;
# CONFIG_USB_AN2720 is not set&lt;br /&gt;
CONFIG_USB_BELKIN=y&lt;br /&gt;
CONFIG_USB_ARMLINUX=y&lt;br /&gt;
# CONFIG_USB_EPSON2888 is not set&lt;br /&gt;
# CONFIG_USB_KC2190 is not set&lt;br /&gt;
# CONFIG_USB_NET_ZAURUS is not set&lt;br /&gt;
# CONFIG_USB_NET_CX82310_ETH is not set&lt;br /&gt;
# CONFIG_USB_NET_KALMIA is not set&lt;br /&gt;
# CONFIG_USB_NET_QMI_WWAN is not set&lt;br /&gt;
# CONFIG_USB_HSO is not set&lt;br /&gt;
# CONFIG_USB_NET_INT51X1 is not set&lt;br /&gt;
# CONFIG_USB_IPHETH is not set&lt;br /&gt;
# CONFIG_USB_SIERRA_NET is not set&lt;br /&gt;
# CONFIG_USB_VL600 is not set&lt;br /&gt;
# CONFIG_USB_NET_CH9200 is not set&lt;br /&gt;
CONFIG_WLAN=y&lt;br /&gt;
# CONFIG_WIRELESS_WDS is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_ADMTEK is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_ATH is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_ATMEL is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_BROADCOM is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_CISCO is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_INTEL is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_INTERSIL is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_MARVELL is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_MEDIATEK is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_RALINK is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_REALTEK is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_RSI is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_ST is not set&lt;br /&gt;
CONFIG_WLAN_VENDOR_TI=y&lt;br /&gt;
CONFIG_WL1251=m&lt;br /&gt;
CONFIG_WL1251_SPI=m&lt;br /&gt;
CONFIG_WL1251_SDIO=m&lt;br /&gt;
CONFIG_WL12XX=m&lt;br /&gt;
CONFIG_WL18XX=m&lt;br /&gt;
CONFIG_WLCORE=m&lt;br /&gt;
CONFIG_WLCORE_SPI=m&lt;br /&gt;
CONFIG_WLCORE_SDIO=m&lt;br /&gt;
CONFIG_WILINK_PLATFORM_DATA=y&lt;br /&gt;
# CONFIG_WLAN_VENDOR_ZYDAS is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_QUANTENNA is not set&lt;br /&gt;
# CONFIG_MAC80211_HWSIM is not set&lt;br /&gt;
# CONFIG_USB_NET_RNDIS_WLAN is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Enable WiMAX (Networking options) to see the WiMAX drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_WAN is not set&lt;br /&gt;
# CONFIG_NETDEVSIM is not set&lt;br /&gt;
# CONFIG_ISDN is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Input device support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_INPUT=y&lt;br /&gt;
CONFIG_INPUT_LEDS=m&lt;br /&gt;
# CONFIG_INPUT_FF_MEMLESS is not set&lt;br /&gt;
# CONFIG_INPUT_POLLDEV is not set&lt;br /&gt;
# CONFIG_INPUT_SPARSEKMAP is not set&lt;br /&gt;
CONFIG_INPUT_MATRIXKMAP=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Userland interfaces&lt;br /&gt;
#&lt;br /&gt;
CONFIG_INPUT_MOUSEDEV=m&lt;br /&gt;
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set&lt;br /&gt;
CONFIG_INPUT_MOUSEDEV_SCREEN_X=800&lt;br /&gt;
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480&lt;br /&gt;
CONFIG_INPUT_JOYDEV=m&lt;br /&gt;
CONFIG_INPUT_EVDEV=m&lt;br /&gt;
# CONFIG_INPUT_EVBUG is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Input Device Drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_INPUT_KEYBOARD=y&lt;br /&gt;
# CONFIG_KEYBOARD_ADC is not set&lt;br /&gt;
# CONFIG_KEYBOARD_ADP5588 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_ADP5589 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_ATKBD is not set&lt;br /&gt;
# CONFIG_KEYBOARD_QT1070 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_QT2160 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_DLINK_DIR685 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_LKKBD is not set&lt;br /&gt;
CONFIG_KEYBOARD_GPIO=m&lt;br /&gt;
# CONFIG_KEYBOARD_GPIO_POLLED is not set&lt;br /&gt;
# CONFIG_KEYBOARD_TCA6416 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_TCA8418 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_MATRIX is not set&lt;br /&gt;
# CONFIG_KEYBOARD_LM8323 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_LM8333 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_MAX7359 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_MCS is not set&lt;br /&gt;
# CONFIG_KEYBOARD_MPR121 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_NEWTON is not set&lt;br /&gt;
# CONFIG_KEYBOARD_OPENCORES is not set&lt;br /&gt;
# CONFIG_KEYBOARD_SAMSUNG is not set&lt;br /&gt;
# CONFIG_KEYBOARD_STOWAWAY is not set&lt;br /&gt;
# CONFIG_KEYBOARD_SUNKBD is not set&lt;br /&gt;
# CONFIG_KEYBOARD_OMAP4 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set&lt;br /&gt;
CONFIG_KEYBOARD_TWL4030=m&lt;br /&gt;
# CONFIG_KEYBOARD_XTKBD is not set&lt;br /&gt;
# CONFIG_KEYBOARD_CAP11XX is not set&lt;br /&gt;
# CONFIG_KEYBOARD_BCM is not set&lt;br /&gt;
CONFIG_INPUT_MOUSE=y&lt;br /&gt;
# CONFIG_MOUSE_PS2 is not set&lt;br /&gt;
# CONFIG_MOUSE_SERIAL is not set&lt;br /&gt;
# CONFIG_MOUSE_APPLETOUCH is not set&lt;br /&gt;
# CONFIG_MOUSE_BCM5974 is not set&lt;br /&gt;
# CONFIG_MOUSE_CYAPA is not set&lt;br /&gt;
# CONFIG_MOUSE_ELAN_I2C is not set&lt;br /&gt;
# CONFIG_MOUSE_VSXXXAA is not set&lt;br /&gt;
# CONFIG_MOUSE_GPIO is not set&lt;br /&gt;
# CONFIG_MOUSE_SYNAPTICS_I2C is not set&lt;br /&gt;
# CONFIG_MOUSE_SYNAPTICS_USB is not set&lt;br /&gt;
CONFIG_INPUT_JOYSTICK=y&lt;br /&gt;
# CONFIG_JOYSTICK_ANALOG is not set&lt;br /&gt;
# CONFIG_JOYSTICK_A3D is not set&lt;br /&gt;
# CONFIG_JOYSTICK_ADI is not set&lt;br /&gt;
# CONFIG_JOYSTICK_COBRA is not set&lt;br /&gt;
# CONFIG_JOYSTICK_GF2K is not set&lt;br /&gt;
# CONFIG_JOYSTICK_GRIP is not set&lt;br /&gt;
# CONFIG_JOYSTICK_GRIP_MP is not set&lt;br /&gt;
# CONFIG_JOYSTICK_GUILLEMOT is not set&lt;br /&gt;
# CONFIG_JOYSTICK_INTERACT is not set&lt;br /&gt;
# CONFIG_JOYSTICK_SIDEWINDER is not set&lt;br /&gt;
# CONFIG_JOYSTICK_TMDC is not set&lt;br /&gt;
# CONFIG_JOYSTICK_IFORCE is not set&lt;br /&gt;
# CONFIG_JOYSTICK_WARRIOR is not set&lt;br /&gt;
# CONFIG_JOYSTICK_MAGELLAN is not set&lt;br /&gt;
# CONFIG_JOYSTICK_SPACEORB is not set&lt;br /&gt;
# CONFIG_JOYSTICK_SPACEBALL is not set&lt;br /&gt;
# CONFIG_JOYSTICK_STINGER is not set&lt;br /&gt;
# CONFIG_JOYSTICK_TWIDJOY is not set&lt;br /&gt;
# CONFIG_JOYSTICK_ZHENHUA is not set&lt;br /&gt;
# CONFIG_JOYSTICK_AS5011 is not set&lt;br /&gt;
# CONFIG_JOYSTICK_AS5013 is not set&lt;br /&gt;
# CONFIG_JOYSTICK_JOYDUMP is not set&lt;br /&gt;
# CONFIG_JOYSTICK_XPAD is not set&lt;br /&gt;
# CONFIG_JOYSTICK_PSXPAD_SPI is not set&lt;br /&gt;
# CONFIG_INPUT_TABLET is not set&lt;br /&gt;
CONFIG_INPUT_TOUCHSCREEN=y&lt;br /&gt;
CONFIG_TOUCHSCREEN_PROPERTIES=y&lt;br /&gt;
CONFIG_TOUCHSCREEN_ADS7846=m&lt;br /&gt;
# CONFIG_TOUCHSCREEN_AD7877 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_AD7879 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_AR1021_I2C is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_BU21013 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_DYNAPRO is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_EETI is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_EGALAX is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_EXC3000 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_FUJITSU is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_GOODIX is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_HIDEEP is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ILI210X is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_S6SY761 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_GUNZE is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_EKTF2127 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ELAN is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ELO is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_WACOM_I2C is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_MAX11801 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_MCS5000 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_MMS114 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_MTOUCH is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_INEXIO is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_MK712 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_PENMOUNT is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_PIXCIR is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TSC_SERIO is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TSC2004 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TSC2005 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TSC2007 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_RM_TS is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_SILEAD is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_SIS_I2C is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ST1232 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_STMFTS is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_SX8654 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TPS6507X is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ZET6223 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ZFORCE is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_CRTOUCH_MT is not set&lt;br /&gt;
CONFIG_INPUT_MISC=y&lt;br /&gt;
# CONFIG_INPUT_AD714X is not set&lt;br /&gt;
# CONFIG_INPUT_ATMEL_CAPTOUCH is not set&lt;br /&gt;
# CONFIG_INPUT_BMA150 is not set&lt;br /&gt;
# CONFIG_INPUT_E3X0_BUTTON is not set&lt;br /&gt;
# CONFIG_INPUT_MMA8450 is not set&lt;br /&gt;
# CONFIG_INPUT_GP2A is not set&lt;br /&gt;
# CONFIG_INPUT_GPIO_BEEPER is not set&lt;br /&gt;
# CONFIG_INPUT_GPIO_DECODER is not set&lt;br /&gt;
# CONFIG_INPUT_ATI_REMOTE2 is not set&lt;br /&gt;
# CONFIG_INPUT_KEYSPAN_REMOTE is not set&lt;br /&gt;
# CONFIG_INPUT_KXTJ9 is not set&lt;br /&gt;
# CONFIG_INPUT_POWERMATE is not set&lt;br /&gt;
# CONFIG_INPUT_YEALINK is not set&lt;br /&gt;
# CONFIG_INPUT_CM109 is not set&lt;br /&gt;
# CONFIG_INPUT_REGULATOR_HAPTIC is not set&lt;br /&gt;
CONFIG_INPUT_TWL4030_PWRBUTTON=m&lt;br /&gt;
# CONFIG_INPUT_TWL4030_VIBRA is not set&lt;br /&gt;
# CONFIG_INPUT_AS5013 is not set&lt;br /&gt;
CONFIG_INPUT_UINPUT=m&lt;br /&gt;
# CONFIG_INPUT_PCF8574 is not set&lt;br /&gt;
# CONFIG_INPUT_PWM_BEEPER is not set&lt;br /&gt;
# CONFIG_INPUT_PWM_VIBRA is not set&lt;br /&gt;
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set&lt;br /&gt;
# CONFIG_INPUT_ADXL34X is not set&lt;br /&gt;
# CONFIG_INPUT_IMS_PCU is not set&lt;br /&gt;
# CONFIG_INPUT_CMA3000 is not set&lt;br /&gt;
# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set&lt;br /&gt;
# CONFIG_INPUT_DRV260X_HAPTICS is not set&lt;br /&gt;
# CONFIG_INPUT_DRV2665_HAPTICS is not set&lt;br /&gt;
# CONFIG_INPUT_DRV2667_HAPTICS is not set&lt;br /&gt;
CONFIG_INPUT_PANDORA_NUB=y&lt;br /&gt;
# CONFIG_RMI4_CORE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Hardware I/O ports&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SERIO=m&lt;br /&gt;
CONFIG_SERIO_SERPORT=m&lt;br /&gt;
# CONFIG_SERIO_LIBPS2 is not set&lt;br /&gt;
# CONFIG_SERIO_RAW is not set&lt;br /&gt;
# CONFIG_SERIO_ALTERA_PS2 is not set&lt;br /&gt;
# CONFIG_SERIO_PS2MULT is not set&lt;br /&gt;
# CONFIG_SERIO_ARC_PS2 is not set&lt;br /&gt;
# CONFIG_SERIO_APBPS2 is not set&lt;br /&gt;
# CONFIG_SERIO_GPIO_PS2 is not set&lt;br /&gt;
# CONFIG_USERIO is not set&lt;br /&gt;
# CONFIG_GAMEPORT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Character devices&lt;br /&gt;
#&lt;br /&gt;
CONFIG_TTY=y&lt;br /&gt;
CONFIG_VT=y&lt;br /&gt;
CONFIG_CONSOLE_TRANSLATIONS=y&lt;br /&gt;
CONFIG_VT_CONSOLE=y&lt;br /&gt;
CONFIG_VT_CONSOLE_SLEEP=y&lt;br /&gt;
CONFIG_HW_CONSOLE=y&lt;br /&gt;
CONFIG_VT_HW_CONSOLE_BINDING=y&lt;br /&gt;
CONFIG_UNIX98_PTYS=y&lt;br /&gt;
# CONFIG_LEGACY_PTYS is not set&lt;br /&gt;
# CONFIG_SERIAL_NONSTANDARD is not set&lt;br /&gt;
# CONFIG_N_GSM is not set&lt;br /&gt;
# CONFIG_TRACE_SINK is not set&lt;br /&gt;
# CONFIG_DEVMEM is not set&lt;br /&gt;
CONFIG_DEVKMEM=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Serial drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SERIAL_8250=m&lt;br /&gt;
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set&lt;br /&gt;
# CONFIG_SERIAL_8250_FINTEK is not set&lt;br /&gt;
# CONFIG_SERIAL_8250_DMA is not set&lt;br /&gt;
CONFIG_SERIAL_8250_NR_UARTS=32&lt;br /&gt;
CONFIG_SERIAL_8250_RUNTIME_UARTS=4&lt;br /&gt;
CONFIG_SERIAL_8250_EXTENDED=y&lt;br /&gt;
CONFIG_SERIAL_8250_MANY_PORTS=y&lt;br /&gt;
# CONFIG_SERIAL_8250_ASPEED_VUART is not set&lt;br /&gt;
CONFIG_SERIAL_8250_SHARE_IRQ=y&lt;br /&gt;
CONFIG_SERIAL_8250_DETECT_IRQ=y&lt;br /&gt;
CONFIG_SERIAL_8250_RSA=y&lt;br /&gt;
# CONFIG_SERIAL_8250_DW is not set&lt;br /&gt;
# CONFIG_SERIAL_8250_EM is not set&lt;br /&gt;
# CONFIG_SERIAL_8250_RT288X is not set&lt;br /&gt;
# CONFIG_SERIAL_8250_OMAP is not set&lt;br /&gt;
# CONFIG_SERIAL_OF_PLATFORM is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Non-8250 serial port support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set&lt;br /&gt;
# CONFIG_SERIAL_MAX3100 is not set&lt;br /&gt;
# CONFIG_SERIAL_MAX310X is not set&lt;br /&gt;
# CONFIG_SERIAL_UARTLITE is not set&lt;br /&gt;
CONFIG_SERIAL_CORE=y&lt;br /&gt;
CONFIG_SERIAL_CORE_CONSOLE=y&lt;br /&gt;
CONFIG_SERIAL_OMAP=y&lt;br /&gt;
CONFIG_SERIAL_OMAP_CONSOLE=y&lt;br /&gt;
# CONFIG_SERIAL_SCCNXP is not set&lt;br /&gt;
# CONFIG_SERIAL_SC16IS7XX is not set&lt;br /&gt;
# CONFIG_SERIAL_BCM63XX is not set&lt;br /&gt;
# CONFIG_SERIAL_ALTERA_JTAGUART is not set&lt;br /&gt;
# CONFIG_SERIAL_ALTERA_UART is not set&lt;br /&gt;
# CONFIG_SERIAL_IFX6X60 is not set&lt;br /&gt;
# CONFIG_SERIAL_XILINX_PS_UART is not set&lt;br /&gt;
# CONFIG_SERIAL_ARC is not set&lt;br /&gt;
# CONFIG_SERIAL_FSL_LPUART is not set&lt;br /&gt;
# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set&lt;br /&gt;
# CONFIG_SERIAL_ST_ASC is not set&lt;br /&gt;
# CONFIG_SERIAL_DEV_BUS is not set&lt;br /&gt;
# CONFIG_TTY_PRINTK is not set&lt;br /&gt;
# CONFIG_HVC_DCC is not set&lt;br /&gt;
# CONFIG_IPMI_HANDLER is not set&lt;br /&gt;
CONFIG_HW_RANDOM=m&lt;br /&gt;
# CONFIG_HW_RANDOM_TIMERIOMEM is not set&lt;br /&gt;
CONFIG_HW_RANDOM_OMAP=m&lt;br /&gt;
CONFIG_HW_RANDOM_OMAP3_ROM=m&lt;br /&gt;
# CONFIG_R3964 is not set&lt;br /&gt;
# CONFIG_RAW_DRIVER is not set&lt;br /&gt;
# CONFIG_TCG_TPM is not set&lt;br /&gt;
# CONFIG_XILLYBUS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_I2C=y&lt;br /&gt;
CONFIG_I2C_BOARDINFO=y&lt;br /&gt;
CONFIG_I2C_COMPAT=y&lt;br /&gt;
CONFIG_I2C_CHARDEV=m&lt;br /&gt;
CONFIG_I2C_MUX=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Multiplexer I2C Chip support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set&lt;br /&gt;
# CONFIG_I2C_MUX_GPIO is not set&lt;br /&gt;
# CONFIG_I2C_MUX_GPMUX is not set&lt;br /&gt;
# CONFIG_I2C_MUX_LTC4306 is not set&lt;br /&gt;
# CONFIG_I2C_MUX_PCA9541 is not set&lt;br /&gt;
# CONFIG_I2C_MUX_PCA954x is not set&lt;br /&gt;
# CONFIG_I2C_MUX_PINCTRL is not set&lt;br /&gt;
# CONFIG_I2C_MUX_REG is not set&lt;br /&gt;
# CONFIG_I2C_DEMUX_PINCTRL is not set&lt;br /&gt;
# CONFIG_I2C_MUX_MLXCPLD is not set&lt;br /&gt;
CONFIG_I2C_HELPER_AUTO=y&lt;br /&gt;
CONFIG_I2C_ALGOBIT=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C Hardware Bus support&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C system bus drivers (mostly embedded / system-on-chip)&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_I2C_CBUS_GPIO is not set&lt;br /&gt;
# CONFIG_I2C_DESIGNWARE_PLATFORM is not set&lt;br /&gt;
# CONFIG_I2C_EMEV2 is not set&lt;br /&gt;
# CONFIG_I2C_GPIO is not set&lt;br /&gt;
# CONFIG_I2C_OCORES is not set&lt;br /&gt;
CONFIG_I2C_OMAP=y&lt;br /&gt;
# CONFIG_I2C_PCA_PLATFORM is not set&lt;br /&gt;
# CONFIG_I2C_PXA_PCI is not set&lt;br /&gt;
# CONFIG_I2C_RK3X is not set&lt;br /&gt;
# CONFIG_I2C_SIMTEC is not set&lt;br /&gt;
# CONFIG_I2C_XILINX is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# External I2C/SMBus adapter drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_I2C_DIOLAN_U2C is not set&lt;br /&gt;
# CONFIG_I2C_PARPORT_LIGHT is not set&lt;br /&gt;
# CONFIG_I2C_ROBOTFUZZ_OSIF is not set&lt;br /&gt;
# CONFIG_I2C_TAOS_EVM is not set&lt;br /&gt;
# CONFIG_I2C_TINY_USB is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Other I2C/SMBus bus drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_I2C_STUB is not set&lt;br /&gt;
# CONFIG_I2C_SLAVE is not set&lt;br /&gt;
# CONFIG_I2C_DEBUG_CORE is not set&lt;br /&gt;
# CONFIG_I2C_DEBUG_ALGO is not set&lt;br /&gt;
# CONFIG_I2C_DEBUG_BUS is not set&lt;br /&gt;
CONFIG_SPI=y&lt;br /&gt;
# CONFIG_SPI_DEBUG is not set&lt;br /&gt;
CONFIG_SPI_MASTER=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SPI Master Controller Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SPI_ALTERA is not set&lt;br /&gt;
# CONFIG_SPI_AXI_SPI_ENGINE is not set&lt;br /&gt;
# CONFIG_SPI_BITBANG is not set&lt;br /&gt;
# CONFIG_SPI_CADENCE is not set&lt;br /&gt;
# CONFIG_SPI_DESIGNWARE is not set&lt;br /&gt;
# CONFIG_SPI_GPIO is not set&lt;br /&gt;
# CONFIG_SPI_FSL_SPI is not set&lt;br /&gt;
# CONFIG_SPI_OC_TINY is not set&lt;br /&gt;
CONFIG_SPI_OMAP24XX=y&lt;br /&gt;
# CONFIG_SPI_TI_QSPI is not set&lt;br /&gt;
# CONFIG_SPI_PXA2XX_PCI is not set&lt;br /&gt;
# CONFIG_SPI_ROCKCHIP is not set&lt;br /&gt;
# CONFIG_SPI_SC18IS602 is not set&lt;br /&gt;
# CONFIG_SPI_XCOMM is not set&lt;br /&gt;
# CONFIG_SPI_XILINX is not set&lt;br /&gt;
# CONFIG_SPI_ZYNQMP_GQSPI is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SPI Protocol Masters&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SPI_SPIDEV is not set&lt;br /&gt;
# CONFIG_SPI_LOOPBACK_TEST is not set&lt;br /&gt;
# CONFIG_SPI_TLE62X0 is not set&lt;br /&gt;
# CONFIG_SPI_SLAVE is not set&lt;br /&gt;
# CONFIG_SPMI is not set&lt;br /&gt;
# CONFIG_HSI is not set&lt;br /&gt;
# CONFIG_PPS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# PTP clock support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_PTP_1588_CLOCK is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.&lt;br /&gt;
#&lt;br /&gt;
CONFIG_PINCTRL=y&lt;br /&gt;
CONFIG_GENERIC_PINCTRL_GROUPS=y&lt;br /&gt;
CONFIG_PINMUX=y&lt;br /&gt;
CONFIG_GENERIC_PINMUX_FUNCTIONS=y&lt;br /&gt;
CONFIG_PINCONF=y&lt;br /&gt;
CONFIG_GENERIC_PINCONF=y&lt;br /&gt;
# CONFIG_DEBUG_PINCTRL is not set&lt;br /&gt;
# CONFIG_PINCTRL_AMD is not set&lt;br /&gt;
# CONFIG_PINCTRL_MCP23S08 is not set&lt;br /&gt;
CONFIG_PINCTRL_SINGLE=y&lt;br /&gt;
# CONFIG_PINCTRL_SX150X is not set&lt;br /&gt;
CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y&lt;br /&gt;
CONFIG_GPIOLIB=y&lt;br /&gt;
CONFIG_OF_GPIO=y&lt;br /&gt;
CONFIG_GPIOLIB_IRQCHIP=y&lt;br /&gt;
# CONFIG_DEBUG_GPIO is not set&lt;br /&gt;
CONFIG_GPIO_SYSFS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Memory mapped GPIO drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_GPIO_74XX_MMIO is not set&lt;br /&gt;
# CONFIG_GPIO_ALTERA is not set&lt;br /&gt;
# CONFIG_GPIO_DWAPB is not set&lt;br /&gt;
# CONFIG_GPIO_FTGPIO010 is not set&lt;br /&gt;
# CONFIG_GPIO_GENERIC_PLATFORM is not set&lt;br /&gt;
# CONFIG_GPIO_GRGPIO is not set&lt;br /&gt;
# CONFIG_GPIO_MB86S7X is not set&lt;br /&gt;
# CONFIG_GPIO_MOCKUP is not set&lt;br /&gt;
# CONFIG_GPIO_MPC8XXX is not set&lt;br /&gt;
CONFIG_GPIO_OMAP=y&lt;br /&gt;
# CONFIG_GPIO_SYSCON is not set&lt;br /&gt;
# CONFIG_GPIO_XILINX is not set&lt;br /&gt;
# CONFIG_GPIO_ZEVIO is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C GPIO expanders&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_GPIO_ADP5588 is not set&lt;br /&gt;
# CONFIG_GPIO_ADNP is not set&lt;br /&gt;
# CONFIG_GPIO_MAX7300 is not set&lt;br /&gt;
# CONFIG_GPIO_MAX732X is not set&lt;br /&gt;
# CONFIG_GPIO_PCA953X is not set&lt;br /&gt;
# CONFIG_GPIO_PCF857X is not set&lt;br /&gt;
# CONFIG_GPIO_TPIC2810 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# MFD GPIO expanders&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_HTC_EGPIO is not set&lt;br /&gt;
CONFIG_GPIO_TWL4030=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SPI GPIO expanders&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_GPIO_74X164 is not set&lt;br /&gt;
# CONFIG_GPIO_MAX3191X is not set&lt;br /&gt;
# CONFIG_GPIO_MAX7301 is not set&lt;br /&gt;
# CONFIG_GPIO_MC33880 is not set&lt;br /&gt;
# CONFIG_GPIO_PISOSR is not set&lt;br /&gt;
# CONFIG_GPIO_XRA1403 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB GPIO expanders&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_W1 is not set&lt;br /&gt;
# CONFIG_CHARGER_BQ2429X is not set&lt;br /&gt;
CONFIG_POWER_AVS=y&lt;br /&gt;
# CONFIG_POWER_RESET is not set&lt;br /&gt;
CONFIG_POWER_SUPPLY=y&lt;br /&gt;
# CONFIG_POWER_SUPPLY_DEBUG is not set&lt;br /&gt;
# CONFIG_PDA_POWER is not set&lt;br /&gt;
# CONFIG_GENERIC_ADC_BATTERY is not set&lt;br /&gt;
# CONFIG_TEST_POWER is not set&lt;br /&gt;
# CONFIG_BATTERY_DS2780 is not set&lt;br /&gt;
# CONFIG_BATTERY_DS2781 is not set&lt;br /&gt;
# CONFIG_BATTERY_DS2782 is not set&lt;br /&gt;
# CONFIG_BATTERY_LEGO_EV3 is not set&lt;br /&gt;
# CONFIG_BATTERY_SBS is not set&lt;br /&gt;
# CONFIG_CHARGER_SBS is not set&lt;br /&gt;
# CONFIG_MANAGER_SBS is not set&lt;br /&gt;
CONFIG_BATTERY_BQ27XXX=m&lt;br /&gt;
CONFIG_BATTERY_BQ27XXX_I2C=m&lt;br /&gt;
CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM=y&lt;br /&gt;
# CONFIG_BATTERY_MAX17040 is not set&lt;br /&gt;
# CONFIG_BATTERY_MAX17042 is not set&lt;br /&gt;
CONFIG_BATTERY_TWL4030_MADC=m&lt;br /&gt;
# CONFIG_BATTERY_RX51 is not set&lt;br /&gt;
# CONFIG_CHARGER_ISP1704 is not set&lt;br /&gt;
# CONFIG_CHARGER_MAX8903 is not set&lt;br /&gt;
CONFIG_CHARGER_TWL4030=m&lt;br /&gt;
# CONFIG_CHARGER_LP8727 is not set&lt;br /&gt;
# CONFIG_CHARGER_GPIO is not set&lt;br /&gt;
# CONFIG_CHARGER_MANAGER is not set&lt;br /&gt;
# CONFIG_CHARGER_LTC3651 is not set&lt;br /&gt;
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set&lt;br /&gt;
# CONFIG_CHARGER_BQ2415X is not set&lt;br /&gt;
# CONFIG_CHARGER_BQ24190 is not set&lt;br /&gt;
# CONFIG_CHARGER_BQ24257 is not set&lt;br /&gt;
# CONFIG_CHARGER_BQ24735 is not set&lt;br /&gt;
# CONFIG_CHARGER_BQ25890 is not set&lt;br /&gt;
# CONFIG_CHARGER_SMB347 is not set&lt;br /&gt;
# CONFIG_CHARGER_TPS65090 is not set&lt;br /&gt;
# CONFIG_BATTERY_GAUGE_LTC2941 is not set&lt;br /&gt;
# CONFIG_CHARGER_RT9455 is not set&lt;br /&gt;
# CONFIG_CONFIG_POWER_MIPSBOOK_400 is not set&lt;br /&gt;
CONFIG_HWMON=m&lt;br /&gt;
# CONFIG_HWMON_DEBUG_CHIP is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Native drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SENSORS_AD7314 is not set&lt;br /&gt;
# CONFIG_SENSORS_AD7414 is not set&lt;br /&gt;
# CONFIG_SENSORS_AD7418 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADM1021 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADM1025 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADM1026 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADM1029 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADM1031 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADM9240 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADT7310 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADT7410 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADT7411 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADT7462 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADT7470 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADT7475 is not set&lt;br /&gt;
# CONFIG_SENSORS_ASC7621 is not set&lt;br /&gt;
# CONFIG_SENSORS_ASPEED is not set&lt;br /&gt;
# CONFIG_SENSORS_ATXP1 is not set&lt;br /&gt;
# CONFIG_SENSORS_DS620 is not set&lt;br /&gt;
# CONFIG_SENSORS_DS1621 is not set&lt;br /&gt;
# CONFIG_SENSORS_F71805F is not set&lt;br /&gt;
# CONFIG_SENSORS_F71882FG is not set&lt;br /&gt;
# CONFIG_SENSORS_F75375S is not set&lt;br /&gt;
# CONFIG_SENSORS_FTSTEUTATES is not set&lt;br /&gt;
# CONFIG_SENSORS_GL518SM is not set&lt;br /&gt;
# CONFIG_SENSORS_GL520SM is not set&lt;br /&gt;
# CONFIG_SENSORS_G760A is not set&lt;br /&gt;
# CONFIG_SENSORS_G762 is not set&lt;br /&gt;
# CONFIG_SENSORS_GPIO_FAN is not set&lt;br /&gt;
# CONFIG_SENSORS_HIH6130 is not set&lt;br /&gt;
# CONFIG_SENSORS_IIO_HWMON is not set&lt;br /&gt;
# CONFIG_SENSORS_IT87 is not set&lt;br /&gt;
# CONFIG_SENSORS_JC42 is not set&lt;br /&gt;
# CONFIG_SENSORS_POWR1220 is not set&lt;br /&gt;
# CONFIG_SENSORS_LINEAGE is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC2945 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC2990 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC4151 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC4215 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC4222 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC4245 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC4260 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC4261 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX1111 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX16065 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX1619 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX1668 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX197 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX31722 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX6621 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX6639 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX6642 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX6650 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX6697 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX31790 is not set&lt;br /&gt;
# CONFIG_SENSORS_MCP3021 is not set&lt;br /&gt;
# CONFIG_SENSORS_TC654 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADCXX is not set&lt;br /&gt;
# CONFIG_SENSORS_LM63 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM70 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM73 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM75 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM77 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM78 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM80 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM83 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM85 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM87 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM90 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM92 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM93 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM95234 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM95241 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM95245 is not set&lt;br /&gt;
# CONFIG_SENSORS_PC87360 is not set&lt;br /&gt;
# CONFIG_SENSORS_PC87427 is not set&lt;br /&gt;
# CONFIG_SENSORS_NTC_THERMISTOR is not set&lt;br /&gt;
# CONFIG_SENSORS_NCT6683 is not set&lt;br /&gt;
# CONFIG_SENSORS_NCT6775 is not set&lt;br /&gt;
# CONFIG_SENSORS_NCT7802 is not set&lt;br /&gt;
# CONFIG_SENSORS_NCT7904 is not set&lt;br /&gt;
# CONFIG_SENSORS_PCF8591 is not set&lt;br /&gt;
# CONFIG_PMBUS is not set&lt;br /&gt;
# CONFIG_SENSORS_PWM_FAN is not set&lt;br /&gt;
# CONFIG_SENSORS_SHT15 is not set&lt;br /&gt;
# CONFIG_SENSORS_SHT21 is not set&lt;br /&gt;
# CONFIG_SENSORS_SHT3x is not set&lt;br /&gt;
# CONFIG_SENSORS_SHTC1 is not set&lt;br /&gt;
# CONFIG_SENSORS_DME1737 is not set&lt;br /&gt;
# CONFIG_SENSORS_EMC1403 is not set&lt;br /&gt;
# CONFIG_SENSORS_EMC2103 is not set&lt;br /&gt;
# CONFIG_SENSORS_EMC6W201 is not set&lt;br /&gt;
# CONFIG_SENSORS_SMSC47M1 is not set&lt;br /&gt;
# CONFIG_SENSORS_SMSC47M192 is not set&lt;br /&gt;
# CONFIG_SENSORS_SMSC47B397 is not set&lt;br /&gt;
# CONFIG_SENSORS_SCH5627 is not set&lt;br /&gt;
# CONFIG_SENSORS_SCH5636 is not set&lt;br /&gt;
# CONFIG_SENSORS_STTS751 is not set&lt;br /&gt;
# CONFIG_SENSORS_SMM665 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADC128D818 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADS1015 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADS7828 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADS7871 is not set&lt;br /&gt;
# CONFIG_SENSORS_AMC6821 is not set&lt;br /&gt;
# CONFIG_SENSORS_INA209 is not set&lt;br /&gt;
# CONFIG_SENSORS_INA2XX is not set&lt;br /&gt;
# CONFIG_SENSORS_INA3221 is not set&lt;br /&gt;
# CONFIG_SENSORS_TC74 is not set&lt;br /&gt;
# CONFIG_SENSORS_THMC50 is not set&lt;br /&gt;
# CONFIG_SENSORS_TMP102 is not set&lt;br /&gt;
# CONFIG_SENSORS_TMP103 is not set&lt;br /&gt;
# CONFIG_SENSORS_TMP108 is not set&lt;br /&gt;
# CONFIG_SENSORS_TMP401 is not set&lt;br /&gt;
# CONFIG_SENSORS_TMP421 is not set&lt;br /&gt;
# CONFIG_SENSORS_VT1211 is not set&lt;br /&gt;
# CONFIG_SENSORS_W83773G is not set&lt;br /&gt;
# CONFIG_SENSORS_W83781D is not set&lt;br /&gt;
# CONFIG_SENSORS_W83791D is not set&lt;br /&gt;
# CONFIG_SENSORS_W83792D is not set&lt;br /&gt;
# CONFIG_SENSORS_W83793 is not set&lt;br /&gt;
# CONFIG_SENSORS_W83795 is not set&lt;br /&gt;
# CONFIG_SENSORS_W83L785TS is not set&lt;br /&gt;
# CONFIG_SENSORS_W83L786NG is not set&lt;br /&gt;
# CONFIG_SENSORS_W83627HF is not set&lt;br /&gt;
# CONFIG_SENSORS_W83627EHF is not set&lt;br /&gt;
CONFIG_THERMAL=m&lt;br /&gt;
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0&lt;br /&gt;
CONFIG_THERMAL_HWMON=y&lt;br /&gt;
CONFIG_THERMAL_OF=y&lt;br /&gt;
# CONFIG_THERMAL_WRITABLE_TRIPS is not set&lt;br /&gt;
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y&lt;br /&gt;
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set&lt;br /&gt;
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set&lt;br /&gt;
# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set&lt;br /&gt;
# CONFIG_THERMAL_GOV_FAIR_SHARE is not set&lt;br /&gt;
CONFIG_THERMAL_GOV_STEP_WISE=y&lt;br /&gt;
# CONFIG_THERMAL_GOV_BANG_BANG is not set&lt;br /&gt;
CONFIG_THERMAL_GOV_USER_SPACE=y&lt;br /&gt;
# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set&lt;br /&gt;
CONFIG_CPU_THERMAL=y&lt;br /&gt;
# CONFIG_CLOCK_THERMAL is not set&lt;br /&gt;
# CONFIG_DEVFREQ_THERMAL is not set&lt;br /&gt;
# CONFIG_THERMAL_EMULATION is not set&lt;br /&gt;
# CONFIG_QORIQ_THERMAL is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# ACPI INT340X thermal drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Texas Instruments thermal drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_TI_SOC_THERMAL=m&lt;br /&gt;
CONFIG_TI_THERMAL=y&lt;br /&gt;
CONFIG_OMAP3_THERMAL=y&lt;br /&gt;
# CONFIG_GENERIC_ADC_THERMAL is not set&lt;br /&gt;
CONFIG_WATCHDOG=y&lt;br /&gt;
CONFIG_WATCHDOG_CORE=y&lt;br /&gt;
# CONFIG_WATCHDOG_NOWAYOUT is not set&lt;br /&gt;
CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y&lt;br /&gt;
# CONFIG_WATCHDOG_SYSFS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Watchdog Device Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SOFT_WATCHDOG is not set&lt;br /&gt;
# CONFIG_GPIO_WATCHDOG is not set&lt;br /&gt;
# CONFIG_XILINX_WATCHDOG is not set&lt;br /&gt;
# CONFIG_ZIIRAVE_WATCHDOG is not set&lt;br /&gt;
# CONFIG_CADENCE_WATCHDOG is not set&lt;br /&gt;
# CONFIG_FTWDT010_WATCHDOG is not set&lt;br /&gt;
# CONFIG_DW_WATCHDOG is not set&lt;br /&gt;
CONFIG_OMAP_WATCHDOG=m&lt;br /&gt;
CONFIG_TWL4030_WATCHDOG=m&lt;br /&gt;
# CONFIG_MAX63XX_WATCHDOG is not set&lt;br /&gt;
# CONFIG_MEN_A21_WDT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB-based Watchdog Cards&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_USBPCWATCHDOG is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Watchdog Pretimeout Governors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set&lt;br /&gt;
CONFIG_SSB_POSSIBLE=y&lt;br /&gt;
# CONFIG_SSB is not set&lt;br /&gt;
CONFIG_BCMA_POSSIBLE=y&lt;br /&gt;
# CONFIG_BCMA is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Multifunction device drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_MFD_CORE=y&lt;br /&gt;
# CONFIG_MFD_ACT8945A is not set&lt;br /&gt;
# CONFIG_MFD_AS3711 is not set&lt;br /&gt;
# CONFIG_MFD_AS3722 is not set&lt;br /&gt;
# CONFIG_PMIC_ADP5520 is not set&lt;br /&gt;
# CONFIG_MFD_AAT2870_CORE is not set&lt;br /&gt;
# CONFIG_MFD_ATMEL_FLEXCOM is not set&lt;br /&gt;
# CONFIG_MFD_ATMEL_HLCDC is not set&lt;br /&gt;
# CONFIG_MFD_BCM590XX is not set&lt;br /&gt;
# CONFIG_MFD_BD9571MWV is not set&lt;br /&gt;
# CONFIG_MFD_AXP20X_I2C is not set&lt;br /&gt;
# CONFIG_MFD_CROS_EC is not set&lt;br /&gt;
# CONFIG_MFD_ASIC3 is not set&lt;br /&gt;
# CONFIG_PMIC_DA903X is not set&lt;br /&gt;
# CONFIG_MFD_DA9052_SPI is not set&lt;br /&gt;
# CONFIG_MFD_DA9052_I2C is not set&lt;br /&gt;
# CONFIG_MFD_DA9055 is not set&lt;br /&gt;
# CONFIG_MFD_DA9062 is not set&lt;br /&gt;
# CONFIG_MFD_DA9063 is not set&lt;br /&gt;
# CONFIG_MFD_DA9150 is not set&lt;br /&gt;
# CONFIG_MFD_DLN2 is not set&lt;br /&gt;
# CONFIG_MFD_MC13XXX_SPI is not set&lt;br /&gt;
# CONFIG_MFD_MC13XXX_I2C is not set&lt;br /&gt;
# CONFIG_MFD_HI6421_PMIC is not set&lt;br /&gt;
# CONFIG_HTC_PASIC3 is not set&lt;br /&gt;
# CONFIG_HTC_I2CPLD is not set&lt;br /&gt;
# CONFIG_MFD_KEMPLD is not set&lt;br /&gt;
# CONFIG_MFD_88PM800 is not set&lt;br /&gt;
# CONFIG_MFD_88PM805 is not set&lt;br /&gt;
# CONFIG_MFD_88PM860X is not set&lt;br /&gt;
# CONFIG_MFD_MAX14577 is not set&lt;br /&gt;
# CONFIG_MFD_MAX77620 is not set&lt;br /&gt;
# CONFIG_MFD_MAX77686 is not set&lt;br /&gt;
# CONFIG_MFD_MAX77693 is not set&lt;br /&gt;
# CONFIG_MFD_MAX77843 is not set&lt;br /&gt;
# CONFIG_MFD_MAX8907 is not set&lt;br /&gt;
# CONFIG_MFD_MAX8925 is not set&lt;br /&gt;
# CONFIG_MFD_MAX8997 is not set&lt;br /&gt;
# CONFIG_MFD_MAX8998 is not set&lt;br /&gt;
# CONFIG_MFD_MT6397 is not set&lt;br /&gt;
# CONFIG_MFD_MENF21BMC is not set&lt;br /&gt;
# CONFIG_EZX_PCAP is not set&lt;br /&gt;
# CONFIG_MFD_CPCAP is not set&lt;br /&gt;
# CONFIG_MFD_VIPERBOARD is not set&lt;br /&gt;
# CONFIG_MFD_RETU is not set&lt;br /&gt;
# CONFIG_MFD_PCF50633 is not set&lt;br /&gt;
# CONFIG_MFD_PM8XXX is not set&lt;br /&gt;
# CONFIG_MFD_RT5033 is not set&lt;br /&gt;
# CONFIG_MFD_RC5T583 is not set&lt;br /&gt;
# CONFIG_MFD_RK808 is not set&lt;br /&gt;
# CONFIG_MFD_RN5T618 is not set&lt;br /&gt;
# CONFIG_MFD_SEC_CORE is not set&lt;br /&gt;
# CONFIG_MFD_SI476X_CORE is not set&lt;br /&gt;
# CONFIG_MFD_SM501 is not set&lt;br /&gt;
# CONFIG_MFD_SKY81452 is not set&lt;br /&gt;
# CONFIG_MFD_SMSC is not set&lt;br /&gt;
# CONFIG_ABX500_CORE is not set&lt;br /&gt;
# CONFIG_MFD_STMPE is not set&lt;br /&gt;
CONFIG_MFD_SYSCON=y&lt;br /&gt;
# CONFIG_MFD_TI_AM335X_TSCADC is not set&lt;br /&gt;
# CONFIG_MFD_LP3943 is not set&lt;br /&gt;
# CONFIG_MFD_LP8788 is not set&lt;br /&gt;
# CONFIG_MFD_TI_LMU is not set&lt;br /&gt;
CONFIG_MFD_OMAP_USB_HOST=y&lt;br /&gt;
# CONFIG_MFD_PALMAS is not set&lt;br /&gt;
# CONFIG_TPS6105X is not set&lt;br /&gt;
CONFIG_TPS65010=y&lt;br /&gt;
# CONFIG_TPS6507X is not set&lt;br /&gt;
# CONFIG_MFD_TPS65086 is not set&lt;br /&gt;
CONFIG_MFD_TPS65090=y&lt;br /&gt;
# CONFIG_MFD_TPS65217 is not set&lt;br /&gt;
# CONFIG_MFD_TI_LP873X is not set&lt;br /&gt;
# CONFIG_MFD_TI_LP87565 is not set&lt;br /&gt;
# CONFIG_MFD_TPS65218 is not set&lt;br /&gt;
# CONFIG_MFD_TPS6586X is not set&lt;br /&gt;
# CONFIG_MFD_TPS65910 is not set&lt;br /&gt;
# CONFIG_MFD_TPS65912_I2C is not set&lt;br /&gt;
# CONFIG_MFD_TPS65912_SPI is not set&lt;br /&gt;
# CONFIG_MFD_TPS80031 is not set&lt;br /&gt;
CONFIG_TWL4030_CORE=y&lt;br /&gt;
CONFIG_TWL4030_POWER=y&lt;br /&gt;
CONFIG_MFD_TWL4030_AUDIO=y&lt;br /&gt;
# CONFIG_TWL6040_CORE is not set&lt;br /&gt;
# CONFIG_MFD_WL1273_CORE is not set&lt;br /&gt;
# CONFIG_MFD_LM3533 is not set&lt;br /&gt;
# CONFIG_MFD_TC3589X is not set&lt;br /&gt;
# CONFIG_MFD_TMIO is not set&lt;br /&gt;
# CONFIG_MFD_T7L66XB is not set&lt;br /&gt;
# CONFIG_MFD_TC6387XB is not set&lt;br /&gt;
# CONFIG_MFD_TC6393XB is not set&lt;br /&gt;
# CONFIG_MFD_ARIZONA_I2C is not set&lt;br /&gt;
# CONFIG_MFD_ARIZONA_SPI is not set&lt;br /&gt;
# CONFIG_MFD_WM8400 is not set&lt;br /&gt;
# CONFIG_MFD_WM831X_I2C is not set&lt;br /&gt;
# CONFIG_MFD_WM831X_SPI is not set&lt;br /&gt;
# CONFIG_MFD_WM8350_I2C is not set&lt;br /&gt;
# CONFIG_MFD_WM8994 is not set&lt;br /&gt;
CONFIG_REGULATOR=y&lt;br /&gt;
# CONFIG_REGULATOR_DEBUG is not set&lt;br /&gt;
CONFIG_REGULATOR_FIXED_VOLTAGE=y&lt;br /&gt;
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set&lt;br /&gt;
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set&lt;br /&gt;
# CONFIG_REGULATOR_ACT8865 is not set&lt;br /&gt;
# CONFIG_REGULATOR_AD5398 is not set&lt;br /&gt;
# CONFIG_REGULATOR_ANATOP is not set&lt;br /&gt;
# CONFIG_REGULATOR_DA9210 is not set&lt;br /&gt;
# CONFIG_REGULATOR_DA9211 is not set&lt;br /&gt;
# CONFIG_REGULATOR_FAN53555 is not set&lt;br /&gt;
# CONFIG_REGULATOR_GPIO is not set&lt;br /&gt;
# CONFIG_REGULATOR_ISL9305 is not set&lt;br /&gt;
# CONFIG_REGULATOR_ISL6271A is not set&lt;br /&gt;
# CONFIG_REGULATOR_LP3971 is not set&lt;br /&gt;
# CONFIG_REGULATOR_LP3972 is not set&lt;br /&gt;
# CONFIG_REGULATOR_LP872X is not set&lt;br /&gt;
# CONFIG_REGULATOR_LP8755 is not set&lt;br /&gt;
# CONFIG_REGULATOR_LTC3589 is not set&lt;br /&gt;
# CONFIG_REGULATOR_LTC3676 is not set&lt;br /&gt;
# CONFIG_REGULATOR_MAX1586 is not set&lt;br /&gt;
# CONFIG_REGULATOR_MAX8649 is not set&lt;br /&gt;
# CONFIG_REGULATOR_MAX8660 is not set&lt;br /&gt;
# CONFIG_REGULATOR_MAX8952 is not set&lt;br /&gt;
# CONFIG_REGULATOR_MAX8973 is not set&lt;br /&gt;
# CONFIG_REGULATOR_MT6311 is not set&lt;br /&gt;
CONFIG_REGULATOR_PBIAS=y&lt;br /&gt;
# CONFIG_REGULATOR_PFUZE100 is not set&lt;br /&gt;
# CONFIG_REGULATOR_PV88060 is not set&lt;br /&gt;
# CONFIG_REGULATOR_PV88080 is not set&lt;br /&gt;
# CONFIG_REGULATOR_PV88090 is not set&lt;br /&gt;
# CONFIG_REGULATOR_PWM is not set&lt;br /&gt;
# CONFIG_REGULATOR_TI_ABB is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS51632 is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS62360 is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS65023 is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS6507X is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS65090 is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS65132 is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS6524X is not set&lt;br /&gt;
CONFIG_REGULATOR_TWL4030=y&lt;br /&gt;
# CONFIG_REGULATOR_VCTRL is not set&lt;br /&gt;
# CONFIG_RC_CORE is not set&lt;br /&gt;
# CONFIG_MEDIA_SUPPORT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Graphics support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_IMX_IPUV3_CORE is not set&lt;br /&gt;
CONFIG_DRM=m&lt;br /&gt;
# CONFIG_DRM_DP_AUX_CHARDEV is not set&lt;br /&gt;
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set&lt;br /&gt;
CONFIG_DRM_KMS_HELPER=m&lt;br /&gt;
CONFIG_DRM_KMS_FB_HELPER=y&lt;br /&gt;
CONFIG_DRM_FBDEV_EMULATION=y&lt;br /&gt;
CONFIG_DRM_FBDEV_OVERALLOC=100&lt;br /&gt;
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C encoder or helper chips&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_DRM_I2C_CH7006 is not set&lt;br /&gt;
# CONFIG_DRM_I2C_SIL164 is not set&lt;br /&gt;
# CONFIG_DRM_I2C_NXP_TDA998X is not set&lt;br /&gt;
# CONFIG_DRM_HDLCD is not set&lt;br /&gt;
# CONFIG_DRM_MALI_DISPLAY is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# ACP (Audio CoProcessor) Configuration&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# AMD Library routines&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_CHASH is not set&lt;br /&gt;
# CONFIG_DRM_VGEM is not set&lt;br /&gt;
# CONFIG_DRM_EXYNOS is not set&lt;br /&gt;
# CONFIG_DRM_UDL is not set&lt;br /&gt;
# CONFIG_DRM_ARMADA is not set&lt;br /&gt;
# CONFIG_DRM_RCAR_DW_HDMI is not set&lt;br /&gt;
# CONFIG_DRM_OMAP is not set&lt;br /&gt;
# CONFIG_DRM_TILCDC is not set&lt;br /&gt;
# CONFIG_DRM_FSL_DCU is not set&lt;br /&gt;
# CONFIG_DRM_STM is not set&lt;br /&gt;
CONFIG_DRM_PANEL=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Display Panels&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_DRM_PANEL_LVDS is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_SIMPLE is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_LG_LG4573 is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set&lt;br /&gt;
CONFIG_DRM_BRIDGE=y&lt;br /&gt;
CONFIG_DRM_PANEL_BRIDGE=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Display Interface Bridges&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_DRM_ANALOGIX_ANX78XX is not set&lt;br /&gt;
# CONFIG_DRM_DUMB_VGA_DAC is not set&lt;br /&gt;
# CONFIG_DRM_LVDS_ENCODER is not set&lt;br /&gt;
# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set&lt;br /&gt;
# CONFIG_DRM_NXP_PTN3460 is not set&lt;br /&gt;
# CONFIG_DRM_PARADE_PS8622 is not set&lt;br /&gt;
# CONFIG_DRM_SII902X is not set&lt;br /&gt;
# CONFIG_DRM_SII9234 is not set&lt;br /&gt;
# CONFIG_DRM_TOSHIBA_TC358767 is not set&lt;br /&gt;
# CONFIG_DRM_TI_TFP410 is not set&lt;br /&gt;
# CONFIG_DRM_I2C_ADV7511 is not set&lt;br /&gt;
# CONFIG_DRM_STI is not set&lt;br /&gt;
# CONFIG_DRM_ARCPGU is not set&lt;br /&gt;
# CONFIG_DRM_MXSFB is not set&lt;br /&gt;
# CONFIG_DRM_TINYDRM is not set&lt;br /&gt;
# CONFIG_DRM_PL111 is not set&lt;br /&gt;
# CONFIG_DRM_TVE200 is not set&lt;br /&gt;
# CONFIG_DRM_LEGACY is not set&lt;br /&gt;
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=m&lt;br /&gt;
# CONFIG_DRM_LIB_RANDOM is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Frame buffer Devices&lt;br /&gt;
#&lt;br /&gt;
CONFIG_FB=y&lt;br /&gt;
# CONFIG_FIRMWARE_EDID is not set&lt;br /&gt;
CONFIG_FB_CMDLINE=y&lt;br /&gt;
CONFIG_FB_NOTIFY=y&lt;br /&gt;
# CONFIG_FB_DDC is not set&lt;br /&gt;
# CONFIG_FB_BOOT_VESA_SUPPORT is not set&lt;br /&gt;
CONFIG_FB_CFB_FILLRECT=y&lt;br /&gt;
CONFIG_FB_CFB_COPYAREA=y&lt;br /&gt;
CONFIG_FB_CFB_IMAGEBLIT=y&lt;br /&gt;
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set&lt;br /&gt;
CONFIG_FB_SYS_FILLRECT=m&lt;br /&gt;
CONFIG_FB_SYS_COPYAREA=m&lt;br /&gt;
CONFIG_FB_SYS_IMAGEBLIT=m&lt;br /&gt;
# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set&lt;br /&gt;
# CONFIG_FB_FOREIGN_ENDIAN is not set&lt;br /&gt;
CONFIG_FB_SYS_FOPS=m&lt;br /&gt;
CONFIG_FB_DEFERRED_IO=y&lt;br /&gt;
# CONFIG_FB_SVGALIB is not set&lt;br /&gt;
# CONFIG_FB_MACMODES is not set&lt;br /&gt;
# CONFIG_FB_BACKLIGHT is not set&lt;br /&gt;
CONFIG_FB_MODE_HELPERS=y&lt;br /&gt;
CONFIG_FB_TILEBLITTING=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Frame buffer hardware drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_FB_OPENCORES is not set&lt;br /&gt;
# CONFIG_FB_S1D13XXX is not set&lt;br /&gt;
# CONFIG_FB_SMSCUFX is not set&lt;br /&gt;
# CONFIG_FB_UDL is not set&lt;br /&gt;
# CONFIG_FB_IBM_GXT4500 is not set&lt;br /&gt;
# CONFIG_FB_VIRTUAL is not set&lt;br /&gt;
# CONFIG_FB_METRONOME is not set&lt;br /&gt;
# CONFIG_FB_BROADSHEET is not set&lt;br /&gt;
# CONFIG_FB_AUO_K190X is not set&lt;br /&gt;
# CONFIG_FB_SIMPLE is not set&lt;br /&gt;
CONFIG_OMAP2_VRFB=y&lt;br /&gt;
CONFIG_FB_OMAP2=y&lt;br /&gt;
# CONFIG_FB_OMAP2_DEBUG_SUPPORT is not set&lt;br /&gt;
CONFIG_FB_OMAP2_NUM_FBS=3&lt;br /&gt;
CONFIG_FB_OMAP2_DSS_INIT=y&lt;br /&gt;
CONFIG_FB_OMAP2_DSS=y&lt;br /&gt;
# CONFIG_FB_OMAP2_DSS_DEBUG is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_DSS_DEBUGFS is not set&lt;br /&gt;
CONFIG_FB_OMAP2_DSS_DPI=y&lt;br /&gt;
CONFIG_FB_OMAP2_DSS_VENC=y&lt;br /&gt;
# CONFIG_FB_OMAP4_DSS_HDMI is not set&lt;br /&gt;
# CONFIG_FB_OMAP5_DSS_HDMI is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_DSS_SDI is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_DSS_DSI is not set&lt;br /&gt;
CONFIG_FB_OMAP2_DSS_MIN_FCK_PER_PCK=4&lt;br /&gt;
CONFIG_FB_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# OMAPFB Panel and Encoder Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_FB_OMAP2_ENCODER_OPA362 is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_ENCODER_TFP410 is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_ENCODER_TPD12S015 is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_CONNECTOR_DVI is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_CONNECTOR_HDMI is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_CONNECTOR_ANALOG_TV is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_DPI is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_DSI_CM is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_SONY_ACX565AKM is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_LGPHILIPS_LB035Q02 is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_SHARP_LS037V7DW01 is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_TPO_TD028TTEC1 is not set&lt;br /&gt;
CONFIG_FB_OMAP2_PANEL_TPO_TD043MTEA1=y&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_NEC_NL8048HL11 is not set&lt;br /&gt;
# CONFIG_FB_SSD1307 is not set&lt;br /&gt;
CONFIG_BACKLIGHT_LCD_SUPPORT=y&lt;br /&gt;
# CONFIG_LCD_CLASS_DEVICE is not set&lt;br /&gt;
CONFIG_BACKLIGHT_CLASS_DEVICE=y&lt;br /&gt;
# CONFIG_BACKLIGHT_GENERIC is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_PWM is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_PM8941_WLED is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_ADP8860 is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_ADP8870 is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_LM3630A is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_LM3639 is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_LP855X is not set&lt;br /&gt;
CONFIG_BACKLIGHT_PANDORA=y&lt;br /&gt;
# CONFIG_BACKLIGHT_GPIO is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_LV5207LP is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_BD6107 is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_ARCXCNN is not set&lt;br /&gt;
# CONFIG_VGASTATE is not set&lt;br /&gt;
CONFIG_VIDEOMODE_HELPERS=y&lt;br /&gt;
CONFIG_HDMI=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Console display driver support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_DUMMY_CONSOLE=y&lt;br /&gt;
CONFIG_FRAMEBUFFER_CONSOLE=y&lt;br /&gt;
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y&lt;br /&gt;
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set&lt;br /&gt;
# CONFIG_LOGO is not set&lt;br /&gt;
CONFIG_SOUND=m&lt;br /&gt;
CONFIG_SOUND_OSS_CORE=y&lt;br /&gt;
CONFIG_SOUND_OSS_CORE_PRECLAIM=y&lt;br /&gt;
CONFIG_SND=m&lt;br /&gt;
CONFIG_SND_TIMER=m&lt;br /&gt;
CONFIG_SND_PCM=m&lt;br /&gt;
CONFIG_SND_DMAENGINE_PCM=m&lt;br /&gt;
CONFIG_SND_HWDEP=m&lt;br /&gt;
CONFIG_SND_SEQ_DEVICE=m&lt;br /&gt;
CONFIG_SND_RAWMIDI=m&lt;br /&gt;
CONFIG_SND_JACK=y&lt;br /&gt;
CONFIG_SND_JACK_INPUT_DEV=y&lt;br /&gt;
CONFIG_SND_OSSEMUL=y&lt;br /&gt;
CONFIG_SND_MIXER_OSS=m&lt;br /&gt;
CONFIG_SND_PCM_OSS=m&lt;br /&gt;
CONFIG_SND_PCM_OSS_PLUGINS=y&lt;br /&gt;
CONFIG_SND_PCM_TIMER=y&lt;br /&gt;
CONFIG_SND_HRTIMER=m&lt;br /&gt;
# CONFIG_SND_DYNAMIC_MINORS is not set&lt;br /&gt;
CONFIG_SND_SUPPORT_OLD_API=y&lt;br /&gt;
CONFIG_SND_PROC_FS=y&lt;br /&gt;
# CONFIG_SND_VERBOSE_PROCFS is not set&lt;br /&gt;
# CONFIG_SND_VERBOSE_PRINTK is not set&lt;br /&gt;
# CONFIG_SND_DEBUG is not set&lt;br /&gt;
CONFIG_SND_VMASTER=y&lt;br /&gt;
CONFIG_SND_SEQUENCER=m&lt;br /&gt;
# CONFIG_SND_SEQ_DUMMY is not set&lt;br /&gt;
CONFIG_SND_SEQUENCER_OSS=m&lt;br /&gt;
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y&lt;br /&gt;
CONFIG_SND_SEQ_MIDI_EVENT=m&lt;br /&gt;
CONFIG_SND_SEQ_MIDI=m&lt;br /&gt;
CONFIG_SND_SEQ_VIRMIDI=m&lt;br /&gt;
# CONFIG_SND_OPL3_LIB_SEQ is not set&lt;br /&gt;
# CONFIG_SND_OPL4_LIB_SEQ is not set&lt;br /&gt;
CONFIG_SND_DRIVERS=y&lt;br /&gt;
# CONFIG_SND_DUMMY is not set&lt;br /&gt;
CONFIG_SND_ALOOP=m&lt;br /&gt;
CONFIG_SND_VIRMIDI=m&lt;br /&gt;
# CONFIG_SND_MTPAV is not set&lt;br /&gt;
# CONFIG_SND_SERIAL_U16550 is not set&lt;br /&gt;
# CONFIG_SND_MPU401 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# HD-Audio&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SND_HDA_PREALLOC_SIZE=2048&lt;br /&gt;
CONFIG_SND_ARM=y&lt;br /&gt;
CONFIG_SND_SPI=y&lt;br /&gt;
CONFIG_SND_USB=y&lt;br /&gt;
CONFIG_SND_USB_AUDIO=m&lt;br /&gt;
CONFIG_SND_USB_UA101=m&lt;br /&gt;
CONFIG_SND_USB_CAIAQ=m&lt;br /&gt;
CONFIG_SND_USB_CAIAQ_INPUT=y&lt;br /&gt;
CONFIG_SND_USB_6FIRE=m&lt;br /&gt;
# CONFIG_SND_USB_HIFACE is not set&lt;br /&gt;
# CONFIG_SND_BCD2000 is not set&lt;br /&gt;
# CONFIG_SND_USB_POD is not set&lt;br /&gt;
# CONFIG_SND_USB_PODHD is not set&lt;br /&gt;
# CONFIG_SND_USB_TONEPORT is not set&lt;br /&gt;
# CONFIG_SND_USB_VARIAX is not set&lt;br /&gt;
CONFIG_SND_SOC=m&lt;br /&gt;
CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y&lt;br /&gt;
# CONFIG_SND_SOC_AMD_ACP is not set&lt;br /&gt;
# CONFIG_SND_ATMEL_SOC is not set&lt;br /&gt;
CONFIG_SND_EDMA_SOC=m&lt;br /&gt;
CONFIG_SND_DAVINCI_SOC_I2S=m&lt;br /&gt;
# CONFIG_SND_DAVINCI_SOC_MCASP is not set&lt;br /&gt;
# CONFIG_SND_DESIGNWARE_I2S is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SoC Audio for Freescale CPUs&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Common SoC Audio options for Freescale CPUs:&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SND_SOC_FSL_ASRC is not set&lt;br /&gt;
# CONFIG_SND_SOC_FSL_SAI is not set&lt;br /&gt;
# CONFIG_SND_SOC_FSL_SSI is not set&lt;br /&gt;
# CONFIG_SND_SOC_FSL_SPDIF is not set&lt;br /&gt;
# CONFIG_SND_SOC_FSL_ESAI is not set&lt;br /&gt;
# CONFIG_SND_SOC_IMX_AUDMUX is not set&lt;br /&gt;
# CONFIG_SND_I2S_HI6210_I2S is not set&lt;br /&gt;
CONFIG_SND_OMAP_SOC=m&lt;br /&gt;
CONFIG_SND_OMAP_SOC_MCBSP=m&lt;br /&gt;
# CONFIG_SND_OMAP_SOC_HDMI_AUDIO is not set&lt;br /&gt;
# CONFIG_SND_OMAP_SOC_RX51 is not set&lt;br /&gt;
# CONFIG_SND_OMAP_SOC_OMAP_TWL4030 is not set&lt;br /&gt;
CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m&lt;br /&gt;
# CONFIG_SND_SOC_IMG is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# STMicroelectronics STM32 SOC audio support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SND_SOC_XTFPGA_I2S is not set&lt;br /&gt;
# CONFIG_ZX_TDM is not set&lt;br /&gt;
CONFIG_SND_SOC_I2C_AND_SPI=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CODEC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SND_SOC_AC97_CODEC is not set&lt;br /&gt;
# CONFIG_SND_SOC_ADAU1701 is not set&lt;br /&gt;
# CONFIG_SND_SOC_ADAU1761_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_ADAU1761_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_ADAU7002 is not set&lt;br /&gt;
# CONFIG_SND_SOC_AK4104 is not set&lt;br /&gt;
# CONFIG_SND_SOC_AK4554 is not set&lt;br /&gt;
# CONFIG_SND_SOC_AK4613 is not set&lt;br /&gt;
# CONFIG_SND_SOC_AK4642 is not set&lt;br /&gt;
# CONFIG_SND_SOC_AK5386 is not set&lt;br /&gt;
# CONFIG_SND_SOC_ALC5623 is not set&lt;br /&gt;
# CONFIG_SND_SOC_BT_SCO is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS35L32 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS35L33 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS35L34 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS35L35 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS42L42 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS42L51_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS42L52 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS42L56 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS42L73 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS4265 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS4270 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS4271_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS4271_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS42XX8_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS43130 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS4349 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS53L30 is not set&lt;br /&gt;
# CONFIG_SND_SOC_DIO2125 is not set&lt;br /&gt;
# CONFIG_SND_SOC_ES7134 is not set&lt;br /&gt;
# CONFIG_SND_SOC_ES8316 is not set&lt;br /&gt;
# CONFIG_SND_SOC_ES8328_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_ES8328_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_GTM601 is not set&lt;br /&gt;
# CONFIG_SND_SOC_INNO_RK3036 is not set&lt;br /&gt;
# CONFIG_SND_SOC_MAX98504 is not set&lt;br /&gt;
# CONFIG_SND_SOC_MAX98927 is not set&lt;br /&gt;
# CONFIG_SND_SOC_MAX98373 is not set&lt;br /&gt;
# CONFIG_SND_SOC_MAX9860 is not set&lt;br /&gt;
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM1681 is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM179X_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM179X_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM186X_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM186X_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM3168A_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM3168A_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM512x_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM512x_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_RT5514_SPI_BUILTIN is not set&lt;br /&gt;
# CONFIG_SND_SOC_RT5616 is not set&lt;br /&gt;
# CONFIG_SND_SOC_RT5631 is not set&lt;br /&gt;
# CONFIG_SND_SOC_RT5677_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_SGTL5000 is not set&lt;br /&gt;
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set&lt;br /&gt;
# CONFIG_SND_SOC_SPDIF is not set&lt;br /&gt;
# CONFIG_SND_SOC_SSM2602_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_SSM2602_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_SSM4567 is not set&lt;br /&gt;
# CONFIG_SND_SOC_STA32X is not set&lt;br /&gt;
# CONFIG_SND_SOC_STA350 is not set&lt;br /&gt;
# CONFIG_SND_SOC_STI_SAS is not set&lt;br /&gt;
# CONFIG_SND_SOC_TAS2552 is not set&lt;br /&gt;
# CONFIG_SND_SOC_TAS5086 is not set&lt;br /&gt;
# CONFIG_SND_SOC_TAS571X is not set&lt;br /&gt;
# CONFIG_SND_SOC_TAS5720 is not set&lt;br /&gt;
# CONFIG_SND_SOC_TAS6424 is not set&lt;br /&gt;
# CONFIG_SND_SOC_TFA9879 is not set&lt;br /&gt;
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_TLV320AIC31XX is not set&lt;br /&gt;
# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_TLV320AIC3X is not set&lt;br /&gt;
# CONFIG_SND_SOC_TS3A225E is not set&lt;br /&gt;
# CONFIG_SND_SOC_TS3A227E is not set&lt;br /&gt;
# CONFIG_SND_SOC_TSCS42XX is not set&lt;br /&gt;
CONFIG_SND_SOC_TWL4030=m&lt;br /&gt;
# CONFIG_SND_SOC_WM8510 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8523 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8524 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8580 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8711 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8728 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8731 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8737 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8741 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8750 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8753 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8770 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8776 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8804_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8804_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8903 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8960 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8962 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8974 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8978 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8985 is not set&lt;br /&gt;
# CONFIG_SND_SOC_ZX_AUD96P22 is not set&lt;br /&gt;
# CONFIG_SND_SOC_NAU8540 is not set&lt;br /&gt;
# CONFIG_SND_SOC_NAU8810 is not set&lt;br /&gt;
# CONFIG_SND_SOC_NAU8824 is not set&lt;br /&gt;
# CONFIG_SND_SOC_TPA6130A2 is not set&lt;br /&gt;
# CONFIG_SND_SIMPLE_CARD is not set&lt;br /&gt;
# CONFIG_SND_SIMPLE_SCU_CARD is not set&lt;br /&gt;
# CONFIG_SND_AUDIO_GRAPH_CARD is not set&lt;br /&gt;
# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# HID support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_HID=y&lt;br /&gt;
# CONFIG_HID_BATTERY_STRENGTH is not set&lt;br /&gt;
CONFIG_HIDRAW=y&lt;br /&gt;
CONFIG_UHID=m&lt;br /&gt;
CONFIG_HID_GENERIC=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Special HID drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_HID_A4TECH is not set&lt;br /&gt;
# CONFIG_HID_ACCUTOUCH is not set&lt;br /&gt;
# CONFIG_HID_ACRUX is not set&lt;br /&gt;
# CONFIG_HID_APPLE is not set&lt;br /&gt;
# CONFIG_HID_APPLEIR is not set&lt;br /&gt;
# CONFIG_HID_ASUS is not set&lt;br /&gt;
# CONFIG_HID_AUREAL is not set&lt;br /&gt;
# CONFIG_HID_BELKIN is not set&lt;br /&gt;
# CONFIG_HID_BETOP_FF is not set&lt;br /&gt;
# CONFIG_HID_CHERRY is not set&lt;br /&gt;
# CONFIG_HID_CHICONY is not set&lt;br /&gt;
# CONFIG_HID_CORSAIR is not set&lt;br /&gt;
# CONFIG_HID_PRODIKEYS is not set&lt;br /&gt;
# CONFIG_HID_CMEDIA is not set&lt;br /&gt;
# CONFIG_HID_CP2112 is not set&lt;br /&gt;
# CONFIG_HID_CYPRESS is not set&lt;br /&gt;
# CONFIG_HID_DRAGONRISE is not set&lt;br /&gt;
# CONFIG_HID_EMS_FF is not set&lt;br /&gt;
# CONFIG_HID_ELECOM is not set&lt;br /&gt;
# CONFIG_HID_ELO is not set&lt;br /&gt;
# CONFIG_HID_EZKEY is not set&lt;br /&gt;
# CONFIG_HID_GEMBIRD is not set&lt;br /&gt;
# CONFIG_HID_GFRM is not set&lt;br /&gt;
# CONFIG_HID_HOLTEK is not set&lt;br /&gt;
# CONFIG_HID_GT683R is not set&lt;br /&gt;
# CONFIG_HID_KEYTOUCH is not set&lt;br /&gt;
# CONFIG_HID_KYE is not set&lt;br /&gt;
# CONFIG_HID_UCLOGIC is not set&lt;br /&gt;
# CONFIG_HID_WALTOP is not set&lt;br /&gt;
# CONFIG_HID_GYRATION is not set&lt;br /&gt;
# CONFIG_HID_ICADE is not set&lt;br /&gt;
# CONFIG_HID_ITE is not set&lt;br /&gt;
# CONFIG_HID_JABRA is not set&lt;br /&gt;
# CONFIG_HID_TWINHAN is not set&lt;br /&gt;
# CONFIG_HID_KENSINGTON is not set&lt;br /&gt;
# CONFIG_HID_LCPOWER is not set&lt;br /&gt;
# CONFIG_HID_LED is not set&lt;br /&gt;
# CONFIG_HID_LENOVO is not set&lt;br /&gt;
# CONFIG_HID_LOGITECH is not set&lt;br /&gt;
# CONFIG_HID_MAGICMOUSE is not set&lt;br /&gt;
# CONFIG_HID_MAYFLASH is not set&lt;br /&gt;
# CONFIG_HID_MICROSOFT is not set&lt;br /&gt;
# CONFIG_HID_MONTEREY is not set&lt;br /&gt;
# CONFIG_HID_MULTITOUCH is not set&lt;br /&gt;
# CONFIG_HID_NTI is not set&lt;br /&gt;
# CONFIG_HID_NTRIG is not set&lt;br /&gt;
# CONFIG_HID_ORTEK is not set&lt;br /&gt;
# CONFIG_HID_PANTHERLORD is not set&lt;br /&gt;
# CONFIG_HID_PENMOUNT is not set&lt;br /&gt;
# CONFIG_HID_PETALYNX is not set&lt;br /&gt;
# CONFIG_HID_PICOLCD is not set&lt;br /&gt;
# CONFIG_HID_PLANTRONICS is not set&lt;br /&gt;
# CONFIG_HID_PRIMAX is not set&lt;br /&gt;
# CONFIG_HID_RETRODE is not set&lt;br /&gt;
# CONFIG_HID_ROCCAT is not set&lt;br /&gt;
# CONFIG_HID_SAITEK is not set&lt;br /&gt;
# CONFIG_HID_SAMSUNG is not set&lt;br /&gt;
# CONFIG_HID_SONY is not set&lt;br /&gt;
# CONFIG_HID_SPEEDLINK is not set&lt;br /&gt;
# CONFIG_HID_STEELSERIES is not set&lt;br /&gt;
# CONFIG_HID_SUNPLUS is not set&lt;br /&gt;
# CONFIG_HID_RMI is not set&lt;br /&gt;
# CONFIG_HID_GREENASIA is not set&lt;br /&gt;
# CONFIG_HID_SMARTJOYPLUS is not set&lt;br /&gt;
# CONFIG_HID_TIVO is not set&lt;br /&gt;
# CONFIG_HID_TOPSEED is not set&lt;br /&gt;
# CONFIG_HID_THINGM is not set&lt;br /&gt;
# CONFIG_HID_THRUSTMASTER is not set&lt;br /&gt;
# CONFIG_HID_UDRAW_PS3 is not set&lt;br /&gt;
# CONFIG_HID_WACOM is not set&lt;br /&gt;
# CONFIG_HID_WIIMOTE is not set&lt;br /&gt;
# CONFIG_HID_XINMO is not set&lt;br /&gt;
# CONFIG_HID_ZEROPLUS is not set&lt;br /&gt;
# CONFIG_HID_ZYDACRON is not set&lt;br /&gt;
# CONFIG_HID_SENSOR_HUB is not set&lt;br /&gt;
# CONFIG_HID_ALPS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB HID support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_HID=m&lt;br /&gt;
CONFIG_HID_PID=y&lt;br /&gt;
CONFIG_USB_HIDDEV=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB HID Boot Protocol drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_KBD=m&lt;br /&gt;
CONFIG_USB_MOUSE=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C HID support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_I2C_HID is not set&lt;br /&gt;
CONFIG_USB_OHCI_LITTLE_ENDIAN=y&lt;br /&gt;
CONFIG_USB_SUPPORT=y&lt;br /&gt;
CONFIG_USB_COMMON=m&lt;br /&gt;
CONFIG_USB_ARCH_HAS_HCD=y&lt;br /&gt;
CONFIG_USB=m&lt;br /&gt;
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Miscellaneous USB options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_DEFAULT_PERSIST=y&lt;br /&gt;
# CONFIG_USB_DYNAMIC_MINORS is not set&lt;br /&gt;
CONFIG_USB_OTG=y&lt;br /&gt;
# CONFIG_USB_OTG_WHITELIST is not set&lt;br /&gt;
# CONFIG_USB_OTG_BLACKLIST_HUB is not set&lt;br /&gt;
# CONFIG_USB_OTG_FSM is not set&lt;br /&gt;
# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set&lt;br /&gt;
CONFIG_USB_MON=m&lt;br /&gt;
# CONFIG_USB_WUSB_CBAF is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB Host Controller Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_USB_C67X00_HCD is not set&lt;br /&gt;
# CONFIG_USB_XHCI_HCD is not set&lt;br /&gt;
CONFIG_USB_EHCI_HCD=m&lt;br /&gt;
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set&lt;br /&gt;
CONFIG_USB_EHCI_TT_NEWSCHED=y&lt;br /&gt;
# CONFIG_USB_EHCI_HCD_PLATFORM is not set&lt;br /&gt;
# CONFIG_USB_OXU210HP_HCD is not set&lt;br /&gt;
# CONFIG_USB_ISP116X_HCD is not set&lt;br /&gt;
# CONFIG_USB_ISP1362_HCD is not set&lt;br /&gt;
# CONFIG_USB_FOTG210_HCD is not set&lt;br /&gt;
# CONFIG_USB_MAX3421_HCD is not set&lt;br /&gt;
CONFIG_USB_OHCI_HCD=m&lt;br /&gt;
CONFIG_USB_OHCI_HCD_OMAP3=m&lt;br /&gt;
CONFIG_USB_OHCI_HCD_PLATFORM=m&lt;br /&gt;
# CONFIG_USB_SL811_HCD is not set&lt;br /&gt;
# CONFIG_USB_R8A66597_HCD is not set&lt;br /&gt;
# CONFIG_USB_HCD_TEST_MODE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB Device Class drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_USB_ACM is not set&lt;br /&gt;
# CONFIG_USB_PRINTER is not set&lt;br /&gt;
# CONFIG_USB_WDM is not set&lt;br /&gt;
# CONFIG_USB_TMC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# also be needed; see USB_STORAGE Help for more info&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_STORAGE=m&lt;br /&gt;
# CONFIG_USB_STORAGE_DEBUG is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_REALTEK is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_DATAFAB is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_FREECOM is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_ISD200 is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_USBAT is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_SDDR09 is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_SDDR55 is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_JUMPSHOT is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_ALAUDA is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_ONETOUCH is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_KARMA is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_ENE_UB6250 is not set&lt;br /&gt;
# CONFIG_USB_UAS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB Imaging devices&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_USB_MDC800 is not set&lt;br /&gt;
# CONFIG_USB_MICROTEK is not set&lt;br /&gt;
# CONFIG_USBIP_CORE is not set&lt;br /&gt;
CONFIG_USB_MUSB_HDRC=m&lt;br /&gt;
# CONFIG_USB_MUSB_HOST is not set&lt;br /&gt;
# CONFIG_USB_MUSB_GADGET is not set&lt;br /&gt;
CONFIG_USB_MUSB_DUAL_ROLE=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Platform Glue Layer&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_MUSB_OMAP2PLUS=m&lt;br /&gt;
# CONFIG_USB_MUSB_DSPS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# MUSB DMA mode&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MUSB_PIO_ONLY is not set&lt;br /&gt;
CONFIG_USB_INVENTRA_DMA=y&lt;br /&gt;
# CONFIG_USB_TI_CPPI41_DMA is not set&lt;br /&gt;
# CONFIG_USB_DWC3 is not set&lt;br /&gt;
# CONFIG_USB_DWC2 is not set&lt;br /&gt;
# CONFIG_USB_CHIPIDEA is not set&lt;br /&gt;
# CONFIG_USB_ISP1760 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB port drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_SERIAL=m&lt;br /&gt;
# CONFIG_USB_SERIAL_GENERIC is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_SIMPLE is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_AIRCABLE is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_ARK3116 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_BELKIN is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_CH341 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_WHITEHEAT is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_CP210X is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_EMPEG is not set&lt;br /&gt;
CONFIG_USB_SERIAL_FTDI_SIO=m&lt;br /&gt;
# CONFIG_USB_SERIAL_VISOR is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_IPAQ is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_IR is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_EDGEPORT is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_F81232 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_F8153X is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_GARMIN is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_IPW is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_IUU is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_KEYSPAN is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_KLSI is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_KOBIL_SCT is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_MCT_U232 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_METRO is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_MOS7720 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_MOS7840 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_MXUPORT is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_NAVMAN is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_PL2303 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_OTI6858 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_QCAUX is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_QUALCOMM is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_SPCP8X5 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_SAFE is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_SYMBOL is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_TI is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_CYBERJACK is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_XIRCOM is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_OPTION is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_OMNINET is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_OPTICON is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_XSENS_MT is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_WISHBONE is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_SSU100 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_QT2 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_UPD78F0730 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_DEBUG is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB Miscellaneous drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_USB_EMI62 is not set&lt;br /&gt;
# CONFIG_USB_EMI26 is not set&lt;br /&gt;
# CONFIG_USB_ADUTUX is not set&lt;br /&gt;
# CONFIG_USB_SEVSEG is not set&lt;br /&gt;
# CONFIG_USB_RIO500 is not set&lt;br /&gt;
# CONFIG_USB_LEGOTOWER is not set&lt;br /&gt;
# CONFIG_USB_LCD is not set&lt;br /&gt;
# CONFIG_USB_CYPRESS_CY7C63 is not set&lt;br /&gt;
# CONFIG_USB_CYTHERM is not set&lt;br /&gt;
# CONFIG_USB_IDMOUSE is not set&lt;br /&gt;
# CONFIG_USB_FTDI_ELAN is not set&lt;br /&gt;
# CONFIG_USB_APPLEDISPLAY is not set&lt;br /&gt;
# CONFIG_USB_SISUSBVGA is not set&lt;br /&gt;
# CONFIG_USB_LD is not set&lt;br /&gt;
# CONFIG_USB_TRANCEVIBRATOR is not set&lt;br /&gt;
# CONFIG_USB_IOWARRIOR is not set&lt;br /&gt;
# CONFIG_USB_TEST is not set&lt;br /&gt;
# CONFIG_USB_EHSET_TEST_FIXTURE is not set&lt;br /&gt;
# CONFIG_USB_ISIGHTFW is not set&lt;br /&gt;
# CONFIG_USB_YUREX is not set&lt;br /&gt;
# CONFIG_USB_EZUSB_FX2 is not set&lt;br /&gt;
# CONFIG_USB_HUB_USB251XB is not set&lt;br /&gt;
# CONFIG_USB_HSIC_USB3503 is not set&lt;br /&gt;
# CONFIG_USB_HSIC_USB4604 is not set&lt;br /&gt;
# CONFIG_USB_LINK_LAYER_TEST is not set&lt;br /&gt;
# CONFIG_USB_CHAOSKEY is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB Physical Layer drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_PHY=y&lt;br /&gt;
# CONFIG_NOP_USB_XCEIV is not set&lt;br /&gt;
# CONFIG_TWL6030_USB is not set&lt;br /&gt;
# CONFIG_USB_GPIO_VBUS is not set&lt;br /&gt;
# CONFIG_USB_ISP1301 is not set&lt;br /&gt;
# CONFIG_USB_ULPI is not set&lt;br /&gt;
CONFIG_USB_GADGET=m&lt;br /&gt;
# CONFIG_USB_GADGET_DEBUG is not set&lt;br /&gt;
# CONFIG_USB_GADGET_DEBUG_FILES is not set&lt;br /&gt;
# CONFIG_USB_GADGET_DEBUG_FS is not set&lt;br /&gt;
CONFIG_USB_GADGET_VBUS_DRAW=2&lt;br /&gt;
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2&lt;br /&gt;
# CONFIG_U_SERIAL_CONSOLE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB Peripheral Controller&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_USB_FUSB300 is not set&lt;br /&gt;
# CONFIG_USB_FOTG210_UDC is not set&lt;br /&gt;
# CONFIG_USB_GR_UDC is not set&lt;br /&gt;
# CONFIG_USB_R8A66597 is not set&lt;br /&gt;
# CONFIG_USB_PXA27X is not set&lt;br /&gt;
# CONFIG_USB_MV_UDC is not set&lt;br /&gt;
# CONFIG_USB_MV_U3D is not set&lt;br /&gt;
# CONFIG_USB_SNP_UDC_PLAT is not set&lt;br /&gt;
# CONFIG_USB_M66592 is not set&lt;br /&gt;
# CONFIG_USB_BDC_UDC is not set&lt;br /&gt;
# CONFIG_USB_NET2272 is not set&lt;br /&gt;
# CONFIG_USB_GADGET_XILINX is not set&lt;br /&gt;
# CONFIG_USB_DUMMY_HCD is not set&lt;br /&gt;
CONFIG_USB_LIBCOMPOSITE=m&lt;br /&gt;
CONFIG_USB_F_ACM=m&lt;br /&gt;
CONFIG_USB_F_SS_LB=m&lt;br /&gt;
CONFIG_USB_U_SERIAL=m&lt;br /&gt;
CONFIG_USB_U_ETHER=m&lt;br /&gt;
CONFIG_USB_F_SERIAL=m&lt;br /&gt;
CONFIG_USB_F_OBEX=m&lt;br /&gt;
CONFIG_USB_F_NCM=m&lt;br /&gt;
CONFIG_USB_F_ECM=m&lt;br /&gt;
CONFIG_USB_F_EEM=m&lt;br /&gt;
CONFIG_USB_F_SUBSET=m&lt;br /&gt;
CONFIG_USB_F_RNDIS=m&lt;br /&gt;
CONFIG_USB_F_MASS_STORAGE=m&lt;br /&gt;
CONFIG_USB_F_FS=m&lt;br /&gt;
CONFIG_USB_F_HID=m&lt;br /&gt;
CONFIG_USB_CONFIGFS=m&lt;br /&gt;
CONFIG_USB_CONFIGFS_SERIAL=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_ACM=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_OBEX=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_NCM=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_ECM=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_ECM_SUBSET=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_RNDIS=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_EEM=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_MASS_STORAGE=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_F_LB_SS=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_F_FS=y&lt;br /&gt;
# CONFIG_USB_CONFIGFS_F_UAC1 is not set&lt;br /&gt;
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set&lt;br /&gt;
# CONFIG_USB_CONFIGFS_F_UAC2 is not set&lt;br /&gt;
# CONFIG_USB_CONFIGFS_F_MIDI is not set&lt;br /&gt;
CONFIG_USB_CONFIGFS_F_HID=y&lt;br /&gt;
# CONFIG_USB_CONFIGFS_F_PRINTER is not set&lt;br /&gt;
# CONFIG_USB_ZERO is not set&lt;br /&gt;
# CONFIG_USB_AUDIO is not set&lt;br /&gt;
CONFIG_USB_ETH=m&lt;br /&gt;
CONFIG_USB_ETH_RNDIS=y&lt;br /&gt;
CONFIG_USB_ETH_EEM=y&lt;br /&gt;
# CONFIG_USB_G_NCM is not set&lt;br /&gt;
# CONFIG_USB_GADGETFS is not set&lt;br /&gt;
# CONFIG_USB_FUNCTIONFS is not set&lt;br /&gt;
CONFIG_USB_MASS_STORAGE=m&lt;br /&gt;
# CONFIG_USB_G_SERIAL is not set&lt;br /&gt;
# CONFIG_USB_MIDI_GADGET is not set&lt;br /&gt;
# CONFIG_USB_G_PRINTER is not set&lt;br /&gt;
# CONFIG_USB_CDC_COMPOSITE is not set&lt;br /&gt;
# CONFIG_USB_G_ACM_MS is not set&lt;br /&gt;
# CONFIG_USB_G_MULTI is not set&lt;br /&gt;
CONFIG_USB_G_HID=m&lt;br /&gt;
# CONFIG_USB_G_DBGP is not set&lt;br /&gt;
# CONFIG_TYPEC is not set&lt;br /&gt;
# CONFIG_USB_LED_TRIG is not set&lt;br /&gt;
# CONFIG_USB_ULPI_BUS is not set&lt;br /&gt;
# CONFIG_UWB is not set&lt;br /&gt;
CONFIG_MMC=y&lt;br /&gt;
CONFIG_PWRSEQ_EMMC=y&lt;br /&gt;
CONFIG_PWRSEQ_SIMPLE=y&lt;br /&gt;
CONFIG_MMC_BLOCK=y&lt;br /&gt;
CONFIG_MMC_BLOCK_MINORS=8&lt;br /&gt;
CONFIG_SDIO_UART=m&lt;br /&gt;
# CONFIG_MMC_TEST is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# MMC/SD/SDIO Host Controller Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MMC_DEBUG is not set&lt;br /&gt;
# CONFIG_MMC_SDHCI is not set&lt;br /&gt;
CONFIG_MMC_OMAP=y&lt;br /&gt;
CONFIG_MMC_OMAP_HS=y&lt;br /&gt;
# CONFIG_MMC_SPI is not set&lt;br /&gt;
# CONFIG_MMC_DW is not set&lt;br /&gt;
# CONFIG_MMC_VUB300 is not set&lt;br /&gt;
# CONFIG_MMC_USHC is not set&lt;br /&gt;
# CONFIG_MMC_USDHI6ROL0 is not set&lt;br /&gt;
# CONFIG_MMC_CQHCI is not set&lt;br /&gt;
# CONFIG_MMC_MTK is not set&lt;br /&gt;
# CONFIG_MEMSTICK is not set&lt;br /&gt;
CONFIG_NEW_LEDS=y&lt;br /&gt;
CONFIG_LEDS_CLASS=y&lt;br /&gt;
# CONFIG_LEDS_CLASS_FLASH is not set&lt;br /&gt;
# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# LED drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_LEDS_BCM6328 is not set&lt;br /&gt;
# CONFIG_LEDS_BCM6358 is not set&lt;br /&gt;
# CONFIG_LEDS_LM3530 is not set&lt;br /&gt;
# CONFIG_LEDS_LM3642 is not set&lt;br /&gt;
# CONFIG_LEDS_LM3692X is not set&lt;br /&gt;
# CONFIG_LEDS_PCA9532 is not set&lt;br /&gt;
CONFIG_LEDS_GPIO=y&lt;br /&gt;
# CONFIG_LEDS_LP3944 is not set&lt;br /&gt;
# CONFIG_LEDS_LP3952 is not set&lt;br /&gt;
# CONFIG_LEDS_LP5521 is not set&lt;br /&gt;
# CONFIG_LEDS_LP5523 is not set&lt;br /&gt;
# CONFIG_LEDS_LP5562 is not set&lt;br /&gt;
# CONFIG_LEDS_LP8501 is not set&lt;br /&gt;
# CONFIG_LEDS_LP8860 is not set&lt;br /&gt;
# CONFIG_LEDS_PCA955X is not set&lt;br /&gt;
# CONFIG_LEDS_PCA963X is not set&lt;br /&gt;
# CONFIG_LEDS_DAC124S085 is not set&lt;br /&gt;
CONFIG_LEDS_PWM=y&lt;br /&gt;
# CONFIG_LEDS_REGULATOR is not set&lt;br /&gt;
# CONFIG_LEDS_BD2802 is not set&lt;br /&gt;
# CONFIG_LEDS_LT3593 is not set&lt;br /&gt;
# CONFIG_LEDS_TCA6507 is not set&lt;br /&gt;
# CONFIG_LEDS_TLC591XX is not set&lt;br /&gt;
# CONFIG_LEDS_LM355x is not set&lt;br /&gt;
# CONFIG_LEDS_IS31FL319X is not set&lt;br /&gt;
# CONFIG_LEDS_IS31FL32XX is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_LEDS_BLINKM is not set&lt;br /&gt;
# CONFIG_LEDS_SYSCON is not set&lt;br /&gt;
# CONFIG_LEDS_USER is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# LED Triggers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_LEDS_TRIGGERS=y&lt;br /&gt;
CONFIG_LEDS_TRIGGER_TIMER=m&lt;br /&gt;
CONFIG_LEDS_TRIGGER_ONESHOT=m&lt;br /&gt;
# CONFIG_LEDS_TRIGGER_MTD is not set&lt;br /&gt;
CONFIG_LEDS_TRIGGER_HEARTBEAT=m&lt;br /&gt;
CONFIG_LEDS_TRIGGER_BACKLIGHT=m&lt;br /&gt;
CONFIG_LEDS_TRIGGER_CPU=y&lt;br /&gt;
CONFIG_LEDS_TRIGGER_ACTIVITY=m&lt;br /&gt;
CONFIG_LEDS_TRIGGER_GPIO=m&lt;br /&gt;
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# iptables trigger is under Netfilter config (LED target)&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_LEDS_TRIGGER_TRANSIENT is not set&lt;br /&gt;
# CONFIG_LEDS_TRIGGER_CAMERA is not set&lt;br /&gt;
CONFIG_LEDS_TRIGGER_PANIC=y&lt;br /&gt;
# CONFIG_LEDS_TRIGGER_NETDEV is not set&lt;br /&gt;
# CONFIG_ACCESSIBILITY is not set&lt;br /&gt;
# CONFIG_INFINIBAND is not set&lt;br /&gt;
CONFIG_EDAC_ATOMIC_SCRUB=y&lt;br /&gt;
CONFIG_EDAC_SUPPORT=y&lt;br /&gt;
CONFIG_RTC_LIB=y&lt;br /&gt;
CONFIG_RTC_CLASS=y&lt;br /&gt;
CONFIG_RTC_HCTOSYS=y&lt;br /&gt;
CONFIG_RTC_HCTOSYS_DEVICE=&amp;quot;rtc0&amp;quot;&lt;br /&gt;
CONFIG_RTC_SYSTOHC=y&lt;br /&gt;
CONFIG_RTC_SYSTOHC_DEVICE=&amp;quot;rtc0&amp;quot;&lt;br /&gt;
# CONFIG_RTC_DEBUG is not set&lt;br /&gt;
CONFIG_RTC_NVMEM=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# RTC interfaces&lt;br /&gt;
#&lt;br /&gt;
CONFIG_RTC_INTF_SYSFS=y&lt;br /&gt;
CONFIG_RTC_INTF_PROC=y&lt;br /&gt;
CONFIG_RTC_INTF_DEV=y&lt;br /&gt;
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set&lt;br /&gt;
# CONFIG_RTC_DRV_TEST is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C RTC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RTC_DRV_ABB5ZES3 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_ABX80X is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1307 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1374 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1672 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_HYM8563 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_MAX6900 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RS5C372 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_ISL1208 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_ISL12022 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_X1205 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF8523 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF85063 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF85363 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF8563 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF8583 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_M41T80 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_BQ32K is not set&lt;br /&gt;
CONFIG_RTC_DRV_TWL4030=y&lt;br /&gt;
# CONFIG_RTC_DRV_S35390A is not set&lt;br /&gt;
# CONFIG_RTC_DRV_FM3130 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RX8010 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RX8581 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RX8025 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_EM3027 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RV8803 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SPI RTC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RTC_DRV_M41T93 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_M41T94 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1302 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1305 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1343 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1347 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1390 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_MAX6916 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_R9701 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RX4581 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RX6110 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RS5C348 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_MAX6902 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF2123 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_MCP795 is not set&lt;br /&gt;
CONFIG_RTC_I2C_AND_SPI=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SPI and I2C RTC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RTC_DRV_DS3232 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF2127 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RV3029C2 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Platform RTC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RTC_DRV_CMOS is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1286 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1511 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1553 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1685_FAMILY is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1742 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS2404 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_STK17TA8 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_M48T86 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_M48T35 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_M48T59 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_MSM6242 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_BQ4802 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RP5C01 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_V3020 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_ZYNQMP is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# on-CPU RTC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RTC_DRV_OMAP is not set&lt;br /&gt;
# CONFIG_RTC_DRV_FTRTC010 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_SNVS is not set&lt;br /&gt;
# CONFIG_RTC_DRV_R7301 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# HID Sensor RTC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set&lt;br /&gt;
CONFIG_DMADEVICES=y&lt;br /&gt;
# CONFIG_DMADEVICES_DEBUG is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DMA Devices&lt;br /&gt;
#&lt;br /&gt;
CONFIG_DMA_ENGINE=y&lt;br /&gt;
CONFIG_DMA_VIRTUAL_CHANNELS=y&lt;br /&gt;
CONFIG_DMA_OF=y&lt;br /&gt;
# CONFIG_ALTERA_MSGDMA is not set&lt;br /&gt;
CONFIG_DMA_OMAP=y&lt;br /&gt;
# CONFIG_FSL_EDMA is not set&lt;br /&gt;
# CONFIG_INTEL_IDMA64 is not set&lt;br /&gt;
# CONFIG_NBPFAXI_DMA is not set&lt;br /&gt;
# CONFIG_TI_CPPI41 is not set&lt;br /&gt;
CONFIG_TI_DMA_CROSSBAR=y&lt;br /&gt;
CONFIG_TI_EDMA=y&lt;br /&gt;
# CONFIG_QCOM_HIDMA_MGMT is not set&lt;br /&gt;
# CONFIG_QCOM_HIDMA is not set&lt;br /&gt;
# CONFIG_DW_DMAC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DMA Clients&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ASYNC_TX_DMA is not set&lt;br /&gt;
# CONFIG_DMATEST is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DMABUF options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SYNC_FILE=y&lt;br /&gt;
# CONFIG_SW_SYNC is not set&lt;br /&gt;
# CONFIG_AUXDISPLAY is not set&lt;br /&gt;
# CONFIG_UIO is not set&lt;br /&gt;
# CONFIG_VFIO is not set&lt;br /&gt;
# CONFIG_VIRT_DRIVERS is not set&lt;br /&gt;
CONFIG_VIRTIO_MENU=y&lt;br /&gt;
# CONFIG_VIRTIO_MMIO is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Microsoft Hyper-V guest support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_HYPERV_TSCPAGE is not set&lt;br /&gt;
# CONFIG_STAGING is not set&lt;br /&gt;
# CONFIG_GOLDFISH is not set&lt;br /&gt;
# CONFIG_CHROME_PLATFORMS is not set&lt;br /&gt;
# CONFIG_MELLANOX_PLATFORM is not set&lt;br /&gt;
CONFIG_CLKDEV_LOOKUP=y&lt;br /&gt;
CONFIG_HAVE_CLK_PREPARE=y&lt;br /&gt;
CONFIG_COMMON_CLK=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Common Clock Framework&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_CLK_HSDK is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_SI5351 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_SI514 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_SI570 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_CDCE706 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_CDCE925 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_CS2000_CP is not set&lt;br /&gt;
# CONFIG_CLK_QORIQ is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_NXP is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_PWM is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_PXA is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_PIC32 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_VC5 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_TI_ADPLL is not set&lt;br /&gt;
# CONFIG_HWSPINLOCK is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Clock Source drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_TIMER_OF=y&lt;br /&gt;
CONFIG_TIMER_PROBE=y&lt;br /&gt;
CONFIG_CLKSRC_MMIO=y&lt;br /&gt;
CONFIG_CLKSRC_TI_32K=y&lt;br /&gt;
CONFIG_ARM_ARCH_TIMER=y&lt;br /&gt;
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y&lt;br /&gt;
# CONFIG_ARM_TIMER_SP804 is not set&lt;br /&gt;
# CONFIG_ATMEL_PIT is not set&lt;br /&gt;
# CONFIG_SH_TIMER_CMT is not set&lt;br /&gt;
# CONFIG_SH_TIMER_MTU2 is not set&lt;br /&gt;
# CONFIG_SH_TIMER_TMU is not set&lt;br /&gt;
# CONFIG_EM_TIMER_STI is not set&lt;br /&gt;
# CONFIG_MAILBOX is not set&lt;br /&gt;
CONFIG_IOMMU_API=y&lt;br /&gt;
CONFIG_IOMMU_SUPPORT=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Generic IOMMU Pagetable Support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set&lt;br /&gt;
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set&lt;br /&gt;
CONFIG_OF_IOMMU=y&lt;br /&gt;
CONFIG_OMAP_IOMMU=y&lt;br /&gt;
# CONFIG_OMAP_IOMMU_DEBUG is not set&lt;br /&gt;
# CONFIG_ARM_SMMU is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Remoteproc drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_REMOTEPROC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Rpmsg drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RPMSG_VIRTIO is not set&lt;br /&gt;
# CONFIG_SOUNDWIRE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SOC (System On Chip) specific Drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Amlogic SoC drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Broadcom SoC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SOC_BRCMSTB is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# i.MX SoC drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Qualcomm SoC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SUNXI_SRAM is not set&lt;br /&gt;
CONFIG_SOC_TI=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Xilinx SoC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_XILINX_VCU is not set&lt;br /&gt;
CONFIG_PM_DEVFREQ=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DEVFREQ Governors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set&lt;br /&gt;
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set&lt;br /&gt;
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set&lt;br /&gt;
# CONFIG_DEVFREQ_GOV_USERSPACE is not set&lt;br /&gt;
# CONFIG_DEVFREQ_GOV_PASSIVE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DEVFREQ Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_PM_DEVFREQ_EVENT is not set&lt;br /&gt;
CONFIG_EXTCON=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Extcon Device Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_EXTCON_ADC_JACK is not set&lt;br /&gt;
# CONFIG_EXTCON_GPIO is not set&lt;br /&gt;
# CONFIG_EXTCON_MAX3355 is not set&lt;br /&gt;
# CONFIG_EXTCON_RT8973A is not set&lt;br /&gt;
# CONFIG_EXTCON_SM5502 is not set&lt;br /&gt;
# CONFIG_EXTCON_USB_GPIO is not set&lt;br /&gt;
CONFIG_MEMORY=y&lt;br /&gt;
CONFIG_TI_EMIF=m&lt;br /&gt;
CONFIG_OMAP_GPMC=y&lt;br /&gt;
# CONFIG_OMAP_GPMC_DEBUG is not set&lt;br /&gt;
CONFIG_IIO=m&lt;br /&gt;
CONFIG_IIO_BUFFER=y&lt;br /&gt;
# CONFIG_IIO_BUFFER_CB is not set&lt;br /&gt;
# CONFIG_IIO_BUFFER_HW_CONSUMER is not set&lt;br /&gt;
CONFIG_IIO_KFIFO_BUF=m&lt;br /&gt;
# CONFIG_IIO_CONFIGFS is not set&lt;br /&gt;
# CONFIG_IIO_TRIGGER is not set&lt;br /&gt;
# CONFIG_IIO_SW_DEVICE is not set&lt;br /&gt;
# CONFIG_IIO_SW_TRIGGER is not set&lt;br /&gt;
# CONFIG_IIO_INPUT_BRIDGE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Accelerometers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ADXL345_I2C is not set&lt;br /&gt;
# CONFIG_ADXL345_SPI is not set&lt;br /&gt;
# CONFIG_BMA180 is not set&lt;br /&gt;
# CONFIG_BMA220 is not set&lt;br /&gt;
# CONFIG_BMC150_ACCEL is not set&lt;br /&gt;
# CONFIG_DA280 is not set&lt;br /&gt;
# CONFIG_DA311 is not set&lt;br /&gt;
# CONFIG_DMARD06 is not set&lt;br /&gt;
# CONFIG_DMARD09 is not set&lt;br /&gt;
# CONFIG_DMARD10 is not set&lt;br /&gt;
# CONFIG_IIO_CROS_EC_ACCEL_LEGACY is not set&lt;br /&gt;
# CONFIG_IIO_ST_ACCEL_3AXIS is not set&lt;br /&gt;
# CONFIG_KXSD9 is not set&lt;br /&gt;
# CONFIG_KXCJK1013 is not set&lt;br /&gt;
# CONFIG_MC3230 is not set&lt;br /&gt;
# CONFIG_MMA7455_I2C is not set&lt;br /&gt;
# CONFIG_MMA7455_SPI is not set&lt;br /&gt;
# CONFIG_MMA7660 is not set&lt;br /&gt;
# CONFIG_MMA8452 is not set&lt;br /&gt;
# CONFIG_MMA9551 is not set&lt;br /&gt;
# CONFIG_MMA9553 is not set&lt;br /&gt;
# CONFIG_MXC4005 is not set&lt;br /&gt;
# CONFIG_MXC6255 is not set&lt;br /&gt;
# CONFIG_SCA3000 is not set&lt;br /&gt;
# CONFIG_STK8312 is not set&lt;br /&gt;
# CONFIG_STK8BA50 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Analog to digital converters&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AD7266 is not set&lt;br /&gt;
# CONFIG_AD7291 is not set&lt;br /&gt;
# CONFIG_AD7298 is not set&lt;br /&gt;
# CONFIG_AD7476 is not set&lt;br /&gt;
# CONFIG_AD7766 is not set&lt;br /&gt;
# CONFIG_AD7791 is not set&lt;br /&gt;
# CONFIG_AD7793 is not set&lt;br /&gt;
# CONFIG_AD7887 is not set&lt;br /&gt;
# CONFIG_AD7923 is not set&lt;br /&gt;
# CONFIG_AD799X is not set&lt;br /&gt;
# CONFIG_CC10001_ADC is not set&lt;br /&gt;
# CONFIG_ENVELOPE_DETECTOR is not set&lt;br /&gt;
# CONFIG_HI8435 is not set&lt;br /&gt;
# CONFIG_HX711 is not set&lt;br /&gt;
# CONFIG_INA2XX_ADC is not set&lt;br /&gt;
# CONFIG_LTC2471 is not set&lt;br /&gt;
# CONFIG_LTC2485 is not set&lt;br /&gt;
# CONFIG_LTC2497 is not set&lt;br /&gt;
# CONFIG_MAX1027 is not set&lt;br /&gt;
# CONFIG_MAX11100 is not set&lt;br /&gt;
# CONFIG_MAX1118 is not set&lt;br /&gt;
# CONFIG_MAX1363 is not set&lt;br /&gt;
# CONFIG_MAX9611 is not set&lt;br /&gt;
# CONFIG_MCP320X is not set&lt;br /&gt;
# CONFIG_MCP3422 is not set&lt;br /&gt;
# CONFIG_NAU7802 is not set&lt;br /&gt;
# CONFIG_SD_ADC_MODULATOR is not set&lt;br /&gt;
# CONFIG_TI_ADC081C is not set&lt;br /&gt;
# CONFIG_TI_ADC0832 is not set&lt;br /&gt;
# CONFIG_TI_ADC084S021 is not set&lt;br /&gt;
# CONFIG_TI_ADC12138 is not set&lt;br /&gt;
# CONFIG_TI_ADC108S102 is not set&lt;br /&gt;
# CONFIG_TI_ADC128S052 is not set&lt;br /&gt;
# CONFIG_TI_ADC161S626 is not set&lt;br /&gt;
# CONFIG_TI_ADS1015 is not set&lt;br /&gt;
# CONFIG_TI_ADS7950 is not set&lt;br /&gt;
# CONFIG_TI_ADS8688 is not set&lt;br /&gt;
# CONFIG_TI_TLC4541 is not set&lt;br /&gt;
CONFIG_TWL4030_MADC=m&lt;br /&gt;
# CONFIG_TWL6030_GPADC is not set&lt;br /&gt;
# CONFIG_VF610_ADC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Amplifiers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AD8366 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Chemical Sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ATLAS_PH_SENSOR is not set&lt;br /&gt;
# CONFIG_CCS811 is not set&lt;br /&gt;
# CONFIG_IAQCORE is not set&lt;br /&gt;
# CONFIG_VZ89X is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Hid Sensor IIO Common&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SSP Sensor Common&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_IIO_SSP_SENSORHUB is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Counters&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Digital to analog converters&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AD5064 is not set&lt;br /&gt;
# CONFIG_AD5360 is not set&lt;br /&gt;
# CONFIG_AD5380 is not set&lt;br /&gt;
# CONFIG_AD5421 is not set&lt;br /&gt;
# CONFIG_AD5446 is not set&lt;br /&gt;
# CONFIG_AD5449 is not set&lt;br /&gt;
# CONFIG_AD5592R is not set&lt;br /&gt;
# CONFIG_AD5593R is not set&lt;br /&gt;
# CONFIG_AD5504 is not set&lt;br /&gt;
# CONFIG_AD5624R_SPI is not set&lt;br /&gt;
# CONFIG_LTC2632 is not set&lt;br /&gt;
# CONFIG_AD5686 is not set&lt;br /&gt;
# CONFIG_AD5755 is not set&lt;br /&gt;
# CONFIG_AD5761 is not set&lt;br /&gt;
# CONFIG_AD5764 is not set&lt;br /&gt;
# CONFIG_AD5791 is not set&lt;br /&gt;
# CONFIG_AD7303 is not set&lt;br /&gt;
# CONFIG_AD8801 is not set&lt;br /&gt;
# CONFIG_DPOT_DAC is not set&lt;br /&gt;
# CONFIG_DS4424 is not set&lt;br /&gt;
# CONFIG_M62332 is not set&lt;br /&gt;
# CONFIG_MAX517 is not set&lt;br /&gt;
# CONFIG_MAX5821 is not set&lt;br /&gt;
# CONFIG_MCP4725 is not set&lt;br /&gt;
# CONFIG_MCP4922 is not set&lt;br /&gt;
# CONFIG_TI_DAC082S085 is not set&lt;br /&gt;
# CONFIG_VF610_DAC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# IIO dummy driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Frequency Synthesizers DDS/PLL&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Clock Generator/Distribution&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AD9523 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Phase-Locked Loop (PLL) frequency synthesizers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ADF4350 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Digital gyroscope sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ADIS16080 is not set&lt;br /&gt;
# CONFIG_ADIS16130 is not set&lt;br /&gt;
# CONFIG_ADIS16136 is not set&lt;br /&gt;
# CONFIG_ADIS16260 is not set&lt;br /&gt;
# CONFIG_ADXRS450 is not set&lt;br /&gt;
# CONFIG_BMG160 is not set&lt;br /&gt;
# CONFIG_MPU3050_I2C is not set&lt;br /&gt;
# CONFIG_IIO_ST_GYRO_3AXIS is not set&lt;br /&gt;
# CONFIG_ITG3200 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Health Sensors&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Heart Rate Monitors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AFE4403 is not set&lt;br /&gt;
# CONFIG_AFE4404 is not set&lt;br /&gt;
# CONFIG_MAX30100 is not set&lt;br /&gt;
# CONFIG_MAX30102 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Humidity sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AM2315 is not set&lt;br /&gt;
# CONFIG_DHT11 is not set&lt;br /&gt;
# CONFIG_HDC100X is not set&lt;br /&gt;
# CONFIG_HTS221 is not set&lt;br /&gt;
# CONFIG_HTU21 is not set&lt;br /&gt;
# CONFIG_SI7005 is not set&lt;br /&gt;
# CONFIG_SI7020 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Inertial measurement units&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ADIS16400 is not set&lt;br /&gt;
# CONFIG_ADIS16480 is not set&lt;br /&gt;
# CONFIG_BMI160_I2C is not set&lt;br /&gt;
# CONFIG_BMI160_SPI is not set&lt;br /&gt;
# CONFIG_BNO055 is not set&lt;br /&gt;
# CONFIG_KMX61 is not set&lt;br /&gt;
# CONFIG_INV_MPU6050_I2C is not set&lt;br /&gt;
# CONFIG_INV_MPU6050_SPI is not set&lt;br /&gt;
# CONFIG_IIO_ST_LSM6DSX is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Light sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ADJD_S311 is not set&lt;br /&gt;
# CONFIG_AL3320A is not set&lt;br /&gt;
# CONFIG_APDS9300 is not set&lt;br /&gt;
# CONFIG_APDS9960 is not set&lt;br /&gt;
# CONFIG_BH1750 is not set&lt;br /&gt;
# CONFIG_BH1780 is not set&lt;br /&gt;
# CONFIG_CM32181 is not set&lt;br /&gt;
# CONFIG_CM3232 is not set&lt;br /&gt;
# CONFIG_CM3323 is not set&lt;br /&gt;
# CONFIG_CM3605 is not set&lt;br /&gt;
# CONFIG_CM36651 is not set&lt;br /&gt;
# CONFIG_GP2AP020A00F is not set&lt;br /&gt;
# CONFIG_SENSORS_ISL29018 is not set&lt;br /&gt;
# CONFIG_SENSORS_ISL29028 is not set&lt;br /&gt;
# CONFIG_ISL29125 is not set&lt;br /&gt;
# CONFIG_JSA1212 is not set&lt;br /&gt;
# CONFIG_RPR0521 is not set&lt;br /&gt;
# CONFIG_LTR501 is not set&lt;br /&gt;
# CONFIG_MAX44000 is not set&lt;br /&gt;
# CONFIG_OPT3001 is not set&lt;br /&gt;
# CONFIG_PA12203001 is not set&lt;br /&gt;
# CONFIG_SI1145 is not set&lt;br /&gt;
# CONFIG_STK3310 is not set&lt;br /&gt;
# CONFIG_ST_UVIS25 is not set&lt;br /&gt;
# CONFIG_TCS3414 is not set&lt;br /&gt;
# CONFIG_TCS3472 is not set&lt;br /&gt;
# CONFIG_SENSORS_TSL2563 is not set&lt;br /&gt;
# CONFIG_TSL2583 is not set&lt;br /&gt;
# CONFIG_TSL4531 is not set&lt;br /&gt;
# CONFIG_US5182D is not set&lt;br /&gt;
# CONFIG_VCNL4000 is not set&lt;br /&gt;
# CONFIG_VEML6070 is not set&lt;br /&gt;
# CONFIG_VL6180 is not set&lt;br /&gt;
# CONFIG_ZOPT2201 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Magnetometer sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AK8974 is not set&lt;br /&gt;
# CONFIG_AK8975 is not set&lt;br /&gt;
# CONFIG_AK09911 is not set&lt;br /&gt;
# CONFIG_BMC150_MAGN_I2C is not set&lt;br /&gt;
# CONFIG_BMC150_MAGN_SPI is not set&lt;br /&gt;
# CONFIG_MAG3110 is not set&lt;br /&gt;
# CONFIG_MMC35240 is not set&lt;br /&gt;
# CONFIG_IIO_ST_MAGN_3AXIS is not set&lt;br /&gt;
# CONFIG_SENSORS_HMC5843_I2C is not set&lt;br /&gt;
# CONFIG_SENSORS_HMC5843_SPI is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Multiplexers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_IIO_MUX is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Inclinometer sensors&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Digital potentiometers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_DS1803 is not set&lt;br /&gt;
# CONFIG_MAX5481 is not set&lt;br /&gt;
# CONFIG_MAX5487 is not set&lt;br /&gt;
# CONFIG_MCP4131 is not set&lt;br /&gt;
# CONFIG_MCP4531 is not set&lt;br /&gt;
# CONFIG_TPL0102 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Digital potentiostats&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_LMP91000 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Pressure sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ABP060MG is not set&lt;br /&gt;
# CONFIG_BMP280 is not set&lt;br /&gt;
# CONFIG_HP03 is not set&lt;br /&gt;
# CONFIG_MPL115_I2C is not set&lt;br /&gt;
# CONFIG_MPL115_SPI is not set&lt;br /&gt;
# CONFIG_MPL3115 is not set&lt;br /&gt;
# CONFIG_MS5611 is not set&lt;br /&gt;
# CONFIG_MS5637 is not set&lt;br /&gt;
# CONFIG_IIO_ST_PRESS is not set&lt;br /&gt;
# CONFIG_T5403 is not set&lt;br /&gt;
# CONFIG_HP206C is not set&lt;br /&gt;
# CONFIG_ZPA2326 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Lightning sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AS3935 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Proximity and distance sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_LIDAR_LITE_V2 is not set&lt;br /&gt;
# CONFIG_RFD77402 is not set&lt;br /&gt;
# CONFIG_SRF04 is not set&lt;br /&gt;
# CONFIG_SX9500 is not set&lt;br /&gt;
# CONFIG_SRF08 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Temperature sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MAXIM_THERMOCOUPLE is not set&lt;br /&gt;
# CONFIG_MLX90614 is not set&lt;br /&gt;
# CONFIG_TMP006 is not set&lt;br /&gt;
# CONFIG_TMP007 is not set&lt;br /&gt;
# CONFIG_TSYS01 is not set&lt;br /&gt;
# CONFIG_TSYS02D is not set&lt;br /&gt;
CONFIG_PWM=y&lt;br /&gt;
CONFIG_PWM_SYSFS=y&lt;br /&gt;
# CONFIG_PWM_FSL_FTM is not set&lt;br /&gt;
CONFIG_PWM_OMAP_DMTIMER=m&lt;br /&gt;
# CONFIG_PWM_PCA9685 is not set&lt;br /&gt;
# CONFIG_PWM_TIECAP is not set&lt;br /&gt;
# CONFIG_PWM_TIEHRPWM is not set&lt;br /&gt;
# CONFIG_PWM_TWL is not set&lt;br /&gt;
# CONFIG_PWM_TWL_LED is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# IRQ chip support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_IRQCHIP=y&lt;br /&gt;
CONFIG_ARM_GIC_MAX_NR=1&lt;br /&gt;
# CONFIG_ARM_GIC_V3_ITS is not set&lt;br /&gt;
CONFIG_OMAP_IRQCHIP=y&lt;br /&gt;
# CONFIG_IPACK_BUS is not set&lt;br /&gt;
# CONFIG_RESET_CONTROLLER is not set&lt;br /&gt;
# CONFIG_FMC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# PHY Subsystem&lt;br /&gt;
#&lt;br /&gt;
CONFIG_GENERIC_PHY=y&lt;br /&gt;
# CONFIG_BCM_KONA_USB2_PHY is not set&lt;br /&gt;
# CONFIG_PHY_PXA_28NM_HSIC is not set&lt;br /&gt;
# CONFIG_PHY_PXA_28NM_USB2 is not set&lt;br /&gt;
# CONFIG_PHY_CPCAP_USB is not set&lt;br /&gt;
CONFIG_PHY_DM816X_USB=y&lt;br /&gt;
CONFIG_OMAP_CONTROL_PHY=y&lt;br /&gt;
CONFIG_OMAP_USB2=y&lt;br /&gt;
CONFIG_TI_PIPE3=y&lt;br /&gt;
CONFIG_TWL4030_USB=m&lt;br /&gt;
# CONFIG_POWERCAP is not set&lt;br /&gt;
# CONFIG_MCB is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Performance monitor support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_ARM_PMU=y&lt;br /&gt;
# CONFIG_RAS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Android&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ANDROID is not set&lt;br /&gt;
CONFIG_DAX=m&lt;br /&gt;
CONFIG_NVMEM=y&lt;br /&gt;
# CONFIG_STM is not set&lt;br /&gt;
# CONFIG_INTEL_TH is not set&lt;br /&gt;
# CONFIG_FPGA is not set&lt;br /&gt;
# CONFIG_FSI is not set&lt;br /&gt;
# CONFIG_TEE is not set&lt;br /&gt;
CONFIG_PM_OPP=y&lt;br /&gt;
# CONFIG_SIOX is not set&lt;br /&gt;
# CONFIG_SLIMBUS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Firmware Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_FIRMWARE_MEMMAP is not set&lt;br /&gt;
# CONFIG_FW_CFG_SYSFS is not set&lt;br /&gt;
CONFIG_HAVE_ARM_SMCCC=y&lt;br /&gt;
# CONFIG_GOOGLE_FIRMWARE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Tegra firmware driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# File systems&lt;br /&gt;
#&lt;br /&gt;
CONFIG_DCACHE_WORD_ACCESS=y&lt;br /&gt;
CONFIG_FS_IOMAP=y&lt;br /&gt;
# CONFIG_EXT2_FS is not set&lt;br /&gt;
# CONFIG_EXT3_FS is not set&lt;br /&gt;
CONFIG_EXT4_FS=y&lt;br /&gt;
CONFIG_EXT4_USE_FOR_EXT2=y&lt;br /&gt;
CONFIG_EXT4_FS_POSIX_ACL=y&lt;br /&gt;
CONFIG_EXT4_FS_SECURITY=y&lt;br /&gt;
CONFIG_EXT4_ENCRYPTION=y&lt;br /&gt;
CONFIG_EXT4_FS_ENCRYPTION=y&lt;br /&gt;
# CONFIG_EXT4_DEBUG is not set&lt;br /&gt;
CONFIG_JBD2=y&lt;br /&gt;
# CONFIG_JBD2_DEBUG is not set&lt;br /&gt;
CONFIG_FS_MBCACHE=y&lt;br /&gt;
CONFIG_REISERFS_FS=m&lt;br /&gt;
# CONFIG_REISERFS_CHECK is not set&lt;br /&gt;
# CONFIG_REISERFS_PROC_INFO is not set&lt;br /&gt;
CONFIG_REISERFS_FS_XATTR=y&lt;br /&gt;
CONFIG_REISERFS_FS_POSIX_ACL=y&lt;br /&gt;
CONFIG_REISERFS_FS_SECURITY=y&lt;br /&gt;
CONFIG_JFS_FS=m&lt;br /&gt;
CONFIG_JFS_POSIX_ACL=y&lt;br /&gt;
CONFIG_JFS_SECURITY=y&lt;br /&gt;
# CONFIG_JFS_DEBUG is not set&lt;br /&gt;
# CONFIG_JFS_STATISTICS is not set&lt;br /&gt;
CONFIG_XFS_FS=m&lt;br /&gt;
CONFIG_XFS_QUOTA=y&lt;br /&gt;
CONFIG_XFS_POSIX_ACL=y&lt;br /&gt;
CONFIG_XFS_RT=y&lt;br /&gt;
# CONFIG_XFS_ONLINE_SCRUB is not set&lt;br /&gt;
# CONFIG_XFS_WARN is not set&lt;br /&gt;
# CONFIG_XFS_DEBUG is not set&lt;br /&gt;
CONFIG_GFS2_FS=m&lt;br /&gt;
# CONFIG_OCFS2_FS is not set&lt;br /&gt;
CONFIG_BTRFS_FS=m&lt;br /&gt;
CONFIG_BTRFS_FS_POSIX_ACL=y&lt;br /&gt;
# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set&lt;br /&gt;
# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set&lt;br /&gt;
# CONFIG_BTRFS_DEBUG is not set&lt;br /&gt;
# CONFIG_BTRFS_ASSERT is not set&lt;br /&gt;
# CONFIG_BTRFS_FS_REF_VERIFY is not set&lt;br /&gt;
# CONFIG_NILFS2_FS is not set&lt;br /&gt;
# CONFIG_F2FS_FS is not set&lt;br /&gt;
CONFIG_FS_POSIX_ACL=y&lt;br /&gt;
CONFIG_EXPORTFS=y&lt;br /&gt;
# CONFIG_EXPORTFS_BLOCK_OPS is not set&lt;br /&gt;
CONFIG_FILE_LOCKING=y&lt;br /&gt;
# CONFIG_MANDATORY_FILE_LOCKING is not set&lt;br /&gt;
CONFIG_FS_ENCRYPTION=y&lt;br /&gt;
CONFIG_FSNOTIFY=y&lt;br /&gt;
CONFIG_DNOTIFY=y&lt;br /&gt;
CONFIG_INOTIFY_USER=y&lt;br /&gt;
CONFIG_FANOTIFY=y&lt;br /&gt;
CONFIG_QUOTA=y&lt;br /&gt;
# CONFIG_QUOTA_NETLINK_INTERFACE is not set&lt;br /&gt;
# CONFIG_PRINT_QUOTA_WARNING is not set&lt;br /&gt;
# CONFIG_QUOTA_DEBUG is not set&lt;br /&gt;
# CONFIG_QFMT_V1 is not set&lt;br /&gt;
# CONFIG_QFMT_V2 is not set&lt;br /&gt;
CONFIG_QUOTACTL=y&lt;br /&gt;
CONFIG_AUTOFS4_FS=m&lt;br /&gt;
CONFIG_FUSE_FS=m&lt;br /&gt;
# CONFIG_CUSE is not set&lt;br /&gt;
# CONFIG_OVERLAY_FS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Caches&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_FSCACHE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CD-ROM/DVD Filesystems&lt;br /&gt;
#&lt;br /&gt;
CONFIG_ISO9660_FS=m&lt;br /&gt;
CONFIG_JOLIET=y&lt;br /&gt;
CONFIG_ZISOFS=y&lt;br /&gt;
CONFIG_UDF_FS=m&lt;br /&gt;
CONFIG_UDF_NLS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DOS/FAT/NT Filesystems&lt;br /&gt;
#&lt;br /&gt;
CONFIG_FAT_FS=y&lt;br /&gt;
CONFIG_MSDOS_FS=y&lt;br /&gt;
CONFIG_VFAT_FS=m&lt;br /&gt;
CONFIG_FAT_DEFAULT_CODEPAGE=437&lt;br /&gt;
CONFIG_FAT_DEFAULT_IOCHARSET=&amp;quot;iso8859-1&amp;quot;&lt;br /&gt;
# CONFIG_FAT_DEFAULT_UTF8 is not set&lt;br /&gt;
# CONFIG_NTFS_FS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Pseudo filesystems&lt;br /&gt;
#&lt;br /&gt;
CONFIG_PROC_FS=y&lt;br /&gt;
CONFIG_PROC_SYSCTL=y&lt;br /&gt;
CONFIG_PROC_PAGE_MONITOR=y&lt;br /&gt;
CONFIG_PROC_CHILDREN=y&lt;br /&gt;
CONFIG_KERNFS=y&lt;br /&gt;
CONFIG_SYSFS=y&lt;br /&gt;
CONFIG_TMPFS=y&lt;br /&gt;
CONFIG_TMPFS_POSIX_ACL=y&lt;br /&gt;
CONFIG_TMPFS_XATTR=y&lt;br /&gt;
# CONFIG_HUGETLB_PAGE is not set&lt;br /&gt;
CONFIG_CONFIGFS_FS=y&lt;br /&gt;
CONFIG_MISC_FILESYSTEMS=y&lt;br /&gt;
# CONFIG_ORANGEFS_FS is not set&lt;br /&gt;
# CONFIG_ADFS_FS is not set&lt;br /&gt;
# CONFIG_AFFS_FS is not set&lt;br /&gt;
# CONFIG_ECRYPT_FS is not set&lt;br /&gt;
# CONFIG_HFS_FS is not set&lt;br /&gt;
CONFIG_HFSPLUS_FS=m&lt;br /&gt;
CONFIG_HFSPLUS_FS_POSIX_ACL=y&lt;br /&gt;
# CONFIG_BEFS_FS is not set&lt;br /&gt;
CONFIG_BFS_FS=m&lt;br /&gt;
CONFIG_EFS_FS=m&lt;br /&gt;
# CONFIG_JFFS2_FS is not set&lt;br /&gt;
CONFIG_UBIFS_FS=y&lt;br /&gt;
CONFIG_UBIFS_FS_ADVANCED_COMPR=y&lt;br /&gt;
CONFIG_UBIFS_FS_LZO=y&lt;br /&gt;
CONFIG_UBIFS_FS_ZLIB=y&lt;br /&gt;
# CONFIG_UBIFS_ATIME_SUPPORT is not set&lt;br /&gt;
# CONFIG_UBIFS_FS_ENCRYPTION is not set&lt;br /&gt;
CONFIG_UBIFS_FS_SECURITY=y&lt;br /&gt;
# CONFIG_CRAMFS is not set&lt;br /&gt;
CONFIG_SQUASHFS=m&lt;br /&gt;
CONFIG_SQUASHFS_FILE_CACHE=y&lt;br /&gt;
# CONFIG_SQUASHFS_FILE_DIRECT is not set&lt;br /&gt;
CONFIG_SQUASHFS_DECOMP_SINGLE=y&lt;br /&gt;
# CONFIG_SQUASHFS_DECOMP_MULTI is not set&lt;br /&gt;
# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set&lt;br /&gt;
# CONFIG_SQUASHFS_XATTR is not set&lt;br /&gt;
CONFIG_SQUASHFS_ZLIB=y&lt;br /&gt;
# CONFIG_SQUASHFS_LZ4 is not set&lt;br /&gt;
# CONFIG_SQUASHFS_LZO is not set&lt;br /&gt;
# CONFIG_SQUASHFS_XZ is not set&lt;br /&gt;
# CONFIG_SQUASHFS_ZSTD is not set&lt;br /&gt;
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set&lt;br /&gt;
# CONFIG_SQUASHFS_EMBEDDED is not set&lt;br /&gt;
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3&lt;br /&gt;
CONFIG_VXFS_FS=m&lt;br /&gt;
CONFIG_MINIX_FS=m&lt;br /&gt;
# CONFIG_OMFS_FS is not set&lt;br /&gt;
CONFIG_HPFS_FS=m&lt;br /&gt;
CONFIG_QNX4FS_FS=m&lt;br /&gt;
CONFIG_QNX6FS_FS=m&lt;br /&gt;
# CONFIG_QNX6FS_DEBUG is not set&lt;br /&gt;
CONFIG_ROMFS_FS=m&lt;br /&gt;
CONFIG_ROMFS_BACKED_BY_BLOCK=y&lt;br /&gt;
# CONFIG_ROMFS_BACKED_BY_MTD is not set&lt;br /&gt;
# CONFIG_ROMFS_BACKED_BY_BOTH is not set&lt;br /&gt;
CONFIG_ROMFS_ON_BLOCK=y&lt;br /&gt;
# CONFIG_PSTORE is not set&lt;br /&gt;
CONFIG_SYSV_FS=m&lt;br /&gt;
CONFIG_UFS_FS=m&lt;br /&gt;
# CONFIG_UFS_FS_WRITE is not set&lt;br /&gt;
# CONFIG_UFS_DEBUG is not set&lt;br /&gt;
CONFIG_NETWORK_FILESYSTEMS=y&lt;br /&gt;
CONFIG_NFS_FS=m&lt;br /&gt;
CONFIG_NFS_V2=m&lt;br /&gt;
CONFIG_NFS_V3=m&lt;br /&gt;
CONFIG_NFS_V3_ACL=y&lt;br /&gt;
CONFIG_NFS_V4=m&lt;br /&gt;
# CONFIG_NFS_SWAP is not set&lt;br /&gt;
# CONFIG_NFS_V4_1 is not set&lt;br /&gt;
# CONFIG_NFS_USE_LEGACY_DNS is not set&lt;br /&gt;
CONFIG_NFS_USE_KERNEL_DNS=y&lt;br /&gt;
CONFIG_NFSD=m&lt;br /&gt;
CONFIG_NFSD_V2_ACL=y&lt;br /&gt;
CONFIG_NFSD_V3=y&lt;br /&gt;
CONFIG_NFSD_V3_ACL=y&lt;br /&gt;
CONFIG_NFSD_V4=y&lt;br /&gt;
# CONFIG_NFSD_BLOCKLAYOUT is not set&lt;br /&gt;
# CONFIG_NFSD_SCSILAYOUT is not set&lt;br /&gt;
# CONFIG_NFSD_FLEXFILELAYOUT is not set&lt;br /&gt;
# CONFIG_NFSD_FAULT_INJECTION is not set&lt;br /&gt;
CONFIG_GRACE_PERIOD=m&lt;br /&gt;
CONFIG_LOCKD=m&lt;br /&gt;
CONFIG_LOCKD_V4=y&lt;br /&gt;
CONFIG_NFS_ACL_SUPPORT=m&lt;br /&gt;
CONFIG_NFS_COMMON=y&lt;br /&gt;
CONFIG_SUNRPC=m&lt;br /&gt;
CONFIG_SUNRPC_GSS=m&lt;br /&gt;
CONFIG_RPCSEC_GSS_KRB5=m&lt;br /&gt;
# CONFIG_SUNRPC_DEBUG is not set&lt;br /&gt;
# CONFIG_CEPH_FS is not set&lt;br /&gt;
CONFIG_CIFS=m&lt;br /&gt;
# CONFIG_CIFS_STATS is not set&lt;br /&gt;
# CONFIG_CIFS_WEAK_PW_HASH is not set&lt;br /&gt;
# CONFIG_CIFS_UPCALL is not set&lt;br /&gt;
CONFIG_CIFS_XATTR=y&lt;br /&gt;
CONFIG_CIFS_POSIX=y&lt;br /&gt;
# CONFIG_CIFS_ACL is not set&lt;br /&gt;
# CONFIG_CIFS_DEBUG is not set&lt;br /&gt;
# CONFIG_CIFS_DFS_UPCALL is not set&lt;br /&gt;
# CONFIG_CIFS_SMB311 is not set&lt;br /&gt;
# CONFIG_CODA_FS is not set&lt;br /&gt;
# CONFIG_AFS_FS is not set&lt;br /&gt;
CONFIG_NLS=y&lt;br /&gt;
CONFIG_NLS_DEFAULT=&amp;quot;utf-8&amp;quot;&lt;br /&gt;
CONFIG_NLS_CODEPAGE_437=m&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_737 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_775 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_850 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_852 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_855 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_857 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_860 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_861 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_862 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_863 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_864 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_865 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_866 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_869 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_936 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_950 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_932 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_949 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_874 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_8 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_1250 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_1251 is not set&lt;br /&gt;
CONFIG_NLS_ASCII=m&lt;br /&gt;
CONFIG_NLS_ISO8859_1=m&lt;br /&gt;
# CONFIG_NLS_ISO8859_2 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_3 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_4 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_5 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_6 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_7 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_9 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_13 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_14 is not set&lt;br /&gt;
CONFIG_NLS_ISO8859_15=m&lt;br /&gt;
# CONFIG_NLS_KOI8_R is not set&lt;br /&gt;
# CONFIG_NLS_KOI8_U is not set&lt;br /&gt;
# CONFIG_NLS_MAC_ROMAN is not set&lt;br /&gt;
# CONFIG_NLS_MAC_CELTIC is not set&lt;br /&gt;
# CONFIG_NLS_MAC_CENTEURO is not set&lt;br /&gt;
# CONFIG_NLS_MAC_CROATIAN is not set&lt;br /&gt;
# CONFIG_NLS_MAC_CYRILLIC is not set&lt;br /&gt;
# CONFIG_NLS_MAC_GAELIC is not set&lt;br /&gt;
# CONFIG_NLS_MAC_GREEK is not set&lt;br /&gt;
# CONFIG_NLS_MAC_ICELAND is not set&lt;br /&gt;
# CONFIG_NLS_MAC_INUIT is not set&lt;br /&gt;
# CONFIG_NLS_MAC_ROMANIAN is not set&lt;br /&gt;
# CONFIG_NLS_MAC_TURKISH is not set&lt;br /&gt;
CONFIG_NLS_UTF8=m&lt;br /&gt;
# CONFIG_DLM is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Kernel hacking&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# printk and dmesg options&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_PRINTK_TIME is not set&lt;br /&gt;
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7&lt;br /&gt;
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4&lt;br /&gt;
# CONFIG_BOOT_PRINTK_DELAY is not set&lt;br /&gt;
# CONFIG_DYNAMIC_DEBUG is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Compile-time checks and compiler options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_DEBUG_INFO=y&lt;br /&gt;
# CONFIG_DEBUG_INFO_REDUCED is not set&lt;br /&gt;
# CONFIG_DEBUG_INFO_SPLIT is not set&lt;br /&gt;
# CONFIG_DEBUG_INFO_DWARF4 is not set&lt;br /&gt;
# CONFIG_GDB_SCRIPTS is not set&lt;br /&gt;
CONFIG_ENABLE_WARN_DEPRECATED=y&lt;br /&gt;
CONFIG_ENABLE_MUST_CHECK=y&lt;br /&gt;
CONFIG_FRAME_WARN=2048&lt;br /&gt;
# CONFIG_STRIP_ASM_SYMS is not set&lt;br /&gt;
# CONFIG_READABLE_ASM is not set&lt;br /&gt;
# CONFIG_UNUSED_SYMBOLS is not set&lt;br /&gt;
# CONFIG_PAGE_OWNER is not set&lt;br /&gt;
CONFIG_DEBUG_FS=y&lt;br /&gt;
# CONFIG_HEADERS_CHECK is not set&lt;br /&gt;
# CONFIG_DEBUG_SECTION_MISMATCH is not set&lt;br /&gt;
CONFIG_SECTION_MISMATCH_WARN_ONLY=y&lt;br /&gt;
CONFIG_FRAME_POINTER=y&lt;br /&gt;
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set&lt;br /&gt;
# CONFIG_MAGIC_SYSRQ is not set&lt;br /&gt;
CONFIG_DEBUG_KERNEL=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Memory Debugging&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_PAGE_EXTENSION is not set&lt;br /&gt;
# CONFIG_PAGE_POISONING is not set&lt;br /&gt;
# CONFIG_DEBUG_RODATA_TEST is not set&lt;br /&gt;
# CONFIG_DEBUG_OBJECTS is not set&lt;br /&gt;
# CONFIG_SLUB_DEBUG_ON is not set&lt;br /&gt;
# CONFIG_SLUB_STATS is not set&lt;br /&gt;
CONFIG_HAVE_DEBUG_KMEMLEAK=y&lt;br /&gt;
# CONFIG_DEBUG_KMEMLEAK is not set&lt;br /&gt;
# CONFIG_DEBUG_STACK_USAGE is not set&lt;br /&gt;
# CONFIG_DEBUG_VM is not set&lt;br /&gt;
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y&lt;br /&gt;
# CONFIG_DEBUG_VIRTUAL is not set&lt;br /&gt;
# CONFIG_DEBUG_MEMORY_INIT is not set&lt;br /&gt;
# CONFIG_DEBUG_HIGHMEM is not set&lt;br /&gt;
# CONFIG_DEBUG_SHIRQ is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Debug Lockups and Hangs&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SOFTLOCKUP_DETECTOR is not set&lt;br /&gt;
CONFIG_DETECT_HUNG_TASK=y&lt;br /&gt;
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120&lt;br /&gt;
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set&lt;br /&gt;
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0&lt;br /&gt;
# CONFIG_WQ_WATCHDOG is not set&lt;br /&gt;
# CONFIG_PANIC_ON_OOPS is not set&lt;br /&gt;
CONFIG_PANIC_ON_OOPS_VALUE=0&lt;br /&gt;
CONFIG_PANIC_TIMEOUT=12&lt;br /&gt;
CONFIG_SCHED_DEBUG=y&lt;br /&gt;
CONFIG_SCHED_INFO=y&lt;br /&gt;
# CONFIG_SCHEDSTATS is not set&lt;br /&gt;
# CONFIG_SCHED_STACK_END_CHECK is not set&lt;br /&gt;
# CONFIG_DEBUG_TIMEKEEPING is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Lock Debugging (spinlocks, mutexes, etc...)&lt;br /&gt;
#&lt;br /&gt;
CONFIG_DEBUG_RT_MUTEXES=y&lt;br /&gt;
CONFIG_DEBUG_SPINLOCK=y&lt;br /&gt;
CONFIG_DEBUG_MUTEXES=y&lt;br /&gt;
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set&lt;br /&gt;
CONFIG_DEBUG_LOCK_ALLOC=y&lt;br /&gt;
CONFIG_PROVE_LOCKING=y&lt;br /&gt;
CONFIG_LOCKDEP=y&lt;br /&gt;
# CONFIG_LOCK_STAT is not set&lt;br /&gt;
# CONFIG_DEBUG_LOCKDEP is not set&lt;br /&gt;
# CONFIG_DEBUG_ATOMIC_SLEEP is not set&lt;br /&gt;
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set&lt;br /&gt;
# CONFIG_LOCK_TORTURE_TEST is not set&lt;br /&gt;
# CONFIG_WW_MUTEX_SELFTEST is not set&lt;br /&gt;
CONFIG_TRACE_IRQFLAGS=y&lt;br /&gt;
CONFIG_STACKTRACE=y&lt;br /&gt;
# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set&lt;br /&gt;
# CONFIG_DEBUG_KOBJECT is not set&lt;br /&gt;
# CONFIG_DEBUG_BUGVERBOSE is not set&lt;br /&gt;
# CONFIG_DEBUG_LIST is not set&lt;br /&gt;
# CONFIG_DEBUG_PI_LIST is not set&lt;br /&gt;
# CONFIG_DEBUG_SG is not set&lt;br /&gt;
# CONFIG_DEBUG_NOTIFIERS is not set&lt;br /&gt;
# CONFIG_DEBUG_CREDENTIALS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# RCU Debugging&lt;br /&gt;
#&lt;br /&gt;
CONFIG_PROVE_RCU=y&lt;br /&gt;
# CONFIG_TORTURE_TEST is not set&lt;br /&gt;
# CONFIG_RCU_PERF_TEST is not set&lt;br /&gt;
# CONFIG_RCU_TORTURE_TEST is not set&lt;br /&gt;
# CONFIG_RCU_TRACE is not set&lt;br /&gt;
# CONFIG_RCU_EQS_DEBUG is not set&lt;br /&gt;
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set&lt;br /&gt;
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set&lt;br /&gt;
# CONFIG_NOTIFIER_ERROR_INJECTION is not set&lt;br /&gt;
# CONFIG_FAULT_INJECTION is not set&lt;br /&gt;
# CONFIG_LATENCYTOP is not set&lt;br /&gt;
CONFIG_HAVE_FUNCTION_TRACER=y&lt;br /&gt;
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y&lt;br /&gt;
CONFIG_HAVE_DYNAMIC_FTRACE=y&lt;br /&gt;
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y&lt;br /&gt;
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y&lt;br /&gt;
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y&lt;br /&gt;
CONFIG_HAVE_C_RECORDMCOUNT=y&lt;br /&gt;
CONFIG_TRACING_SUPPORT=y&lt;br /&gt;
# CONFIG_FTRACE is not set&lt;br /&gt;
# CONFIG_DMA_API_DEBUG is not set&lt;br /&gt;
# CONFIG_RUNTIME_TESTING_MENU is not set&lt;br /&gt;
# CONFIG_MEMTEST is not set&lt;br /&gt;
# CONFIG_BUG_ON_DATA_CORRUPTION is not set&lt;br /&gt;
# CONFIG_SAMPLES is not set&lt;br /&gt;
CONFIG_HAVE_ARCH_KGDB=y&lt;br /&gt;
# CONFIG_KGDB is not set&lt;br /&gt;
# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set&lt;br /&gt;
# CONFIG_UBSAN is not set&lt;br /&gt;
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y&lt;br /&gt;
# CONFIG_ARM_PTDUMP_CORE is not set&lt;br /&gt;
# CONFIG_ARM_PTDUMP_DEBUGFS is not set&lt;br /&gt;
# CONFIG_DEBUG_WX is not set&lt;br /&gt;
# CONFIG_ARM_UNWIND is not set&lt;br /&gt;
# CONFIG_DEBUG_USER is not set&lt;br /&gt;
# CONFIG_DEBUG_LL is not set&lt;br /&gt;
CONFIG_DEBUG_LL_INCLUDE=&amp;quot;mach/debug-macro.S&amp;quot;&lt;br /&gt;
# CONFIG_DEBUG_UART_8250 is not set&lt;br /&gt;
CONFIG_UNCOMPRESS_INCLUDE=&amp;quot;debug/uncompress.h&amp;quot;&lt;br /&gt;
# CONFIG_PID_IN_CONTEXTIDR is not set&lt;br /&gt;
# CONFIG_CORESIGHT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Security options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_KEYS=y&lt;br /&gt;
# CONFIG_PERSISTENT_KEYRINGS is not set&lt;br /&gt;
# CONFIG_BIG_KEYS is not set&lt;br /&gt;
# CONFIG_ENCRYPTED_KEYS is not set&lt;br /&gt;
# CONFIG_KEY_DH_OPERATIONS is not set&lt;br /&gt;
# CONFIG_SECURITY_DMESG_RESTRICT is not set&lt;br /&gt;
# CONFIG_SECURITY is not set&lt;br /&gt;
# CONFIG_SECURITYFS is not set&lt;br /&gt;
CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y&lt;br /&gt;
# CONFIG_HARDENED_USERCOPY is not set&lt;br /&gt;
# CONFIG_STATIC_USERMODEHELPER is not set&lt;br /&gt;
CONFIG_DEFAULT_SECURITY_DAC=y&lt;br /&gt;
CONFIG_DEFAULT_SECURITY=&amp;quot;&amp;quot;&lt;br /&gt;
CONFIG_XOR_BLOCKS=m&lt;br /&gt;
CONFIG_CRYPTO=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Crypto core or helper&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_ALGAPI=y&lt;br /&gt;
CONFIG_CRYPTO_ALGAPI2=y&lt;br /&gt;
CONFIG_CRYPTO_AEAD=y&lt;br /&gt;
CONFIG_CRYPTO_AEAD2=y&lt;br /&gt;
CONFIG_CRYPTO_BLKCIPHER=y&lt;br /&gt;
CONFIG_CRYPTO_BLKCIPHER2=y&lt;br /&gt;
CONFIG_CRYPTO_HASH=y&lt;br /&gt;
CONFIG_CRYPTO_HASH2=y&lt;br /&gt;
CONFIG_CRYPTO_RNG=y&lt;br /&gt;
CONFIG_CRYPTO_RNG2=y&lt;br /&gt;
CONFIG_CRYPTO_RNG_DEFAULT=y&lt;br /&gt;
CONFIG_CRYPTO_AKCIPHER2=y&lt;br /&gt;
CONFIG_CRYPTO_AKCIPHER=y&lt;br /&gt;
CONFIG_CRYPTO_KPP2=y&lt;br /&gt;
CONFIG_CRYPTO_ACOMP2=y&lt;br /&gt;
CONFIG_CRYPTO_RSA=y&lt;br /&gt;
# CONFIG_CRYPTO_DH is not set&lt;br /&gt;
# CONFIG_CRYPTO_ECDH is not set&lt;br /&gt;
CONFIG_CRYPTO_MANAGER=y&lt;br /&gt;
CONFIG_CRYPTO_MANAGER2=y&lt;br /&gt;
# CONFIG_CRYPTO_USER is not set&lt;br /&gt;
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y&lt;br /&gt;
CONFIG_CRYPTO_GF128MUL=y&lt;br /&gt;
CONFIG_CRYPTO_NULL=y&lt;br /&gt;
CONFIG_CRYPTO_NULL2=y&lt;br /&gt;
CONFIG_CRYPTO_WORKQUEUE=y&lt;br /&gt;
CONFIG_CRYPTO_CRYPTD=m&lt;br /&gt;
CONFIG_CRYPTO_MCRYPTD=m&lt;br /&gt;
CONFIG_CRYPTO_AUTHENC=m&lt;br /&gt;
# CONFIG_CRYPTO_TEST is not set&lt;br /&gt;
CONFIG_CRYPTO_SIMD=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Authenticated Encryption with Associated Data&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_CCM=m&lt;br /&gt;
CONFIG_CRYPTO_GCM=m&lt;br /&gt;
# CONFIG_CRYPTO_CHACHA20POLY1305 is not set&lt;br /&gt;
CONFIG_CRYPTO_SEQIV=y&lt;br /&gt;
CONFIG_CRYPTO_ECHAINIV=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Block modes&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_CBC=y&lt;br /&gt;
CONFIG_CRYPTO_CTR=y&lt;br /&gt;
CONFIG_CRYPTO_CTS=y&lt;br /&gt;
CONFIG_CRYPTO_ECB=y&lt;br /&gt;
CONFIG_CRYPTO_LRW=m&lt;br /&gt;
# CONFIG_CRYPTO_PCBC is not set&lt;br /&gt;
CONFIG_CRYPTO_XTS=y&lt;br /&gt;
# CONFIG_CRYPTO_KEYWRAP is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Hash modes&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_CMAC=m&lt;br /&gt;
CONFIG_CRYPTO_HMAC=y&lt;br /&gt;
# CONFIG_CRYPTO_XCBC is not set&lt;br /&gt;
# CONFIG_CRYPTO_VMAC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Digest&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_CRC32C=y&lt;br /&gt;
# CONFIG_CRYPTO_CRC32 is not set&lt;br /&gt;
CONFIG_CRYPTO_CRCT10DIF=y&lt;br /&gt;
CONFIG_CRYPTO_GHASH=m&lt;br /&gt;
# CONFIG_CRYPTO_POLY1305 is not set&lt;br /&gt;
CONFIG_CRYPTO_MD4=m&lt;br /&gt;
CONFIG_CRYPTO_MD5=m&lt;br /&gt;
CONFIG_CRYPTO_MICHAEL_MIC=y&lt;br /&gt;
# CONFIG_CRYPTO_RMD128 is not set&lt;br /&gt;
# CONFIG_CRYPTO_RMD160 is not set&lt;br /&gt;
# CONFIG_CRYPTO_RMD256 is not set&lt;br /&gt;
# CONFIG_CRYPTO_RMD320 is not set&lt;br /&gt;
CONFIG_CRYPTO_SHA1=m&lt;br /&gt;
CONFIG_CRYPTO_SHA256=y&lt;br /&gt;
CONFIG_CRYPTO_SHA512=m&lt;br /&gt;
CONFIG_CRYPTO_SHA3=m&lt;br /&gt;
# CONFIG_CRYPTO_SM3 is not set&lt;br /&gt;
CONFIG_CRYPTO_TGR192=m&lt;br /&gt;
CONFIG_CRYPTO_WP512=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Ciphers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_AES=y&lt;br /&gt;
# CONFIG_CRYPTO_AES_TI is not set&lt;br /&gt;
# CONFIG_CRYPTO_ANUBIS is not set&lt;br /&gt;
CONFIG_CRYPTO_ARC4=m&lt;br /&gt;
# CONFIG_CRYPTO_BLOWFISH is not set&lt;br /&gt;
# CONFIG_CRYPTO_CAMELLIA is not set&lt;br /&gt;
# CONFIG_CRYPTO_CAST5 is not set&lt;br /&gt;
# CONFIG_CRYPTO_CAST6 is not set&lt;br /&gt;
CONFIG_CRYPTO_DES=m&lt;br /&gt;
# CONFIG_CRYPTO_FCRYPT is not set&lt;br /&gt;
# CONFIG_CRYPTO_KHAZAD is not set&lt;br /&gt;
# CONFIG_CRYPTO_SALSA20 is not set&lt;br /&gt;
CONFIG_CRYPTO_CHACHA20=m&lt;br /&gt;
# CONFIG_CRYPTO_SEED is not set&lt;br /&gt;
# CONFIG_CRYPTO_SERPENT is not set&lt;br /&gt;
# CONFIG_CRYPTO_TEA is not set&lt;br /&gt;
# CONFIG_CRYPTO_TWOFISH is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Compression&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_DEFLATE=y&lt;br /&gt;
CONFIG_CRYPTO_LZO=y&lt;br /&gt;
# CONFIG_CRYPTO_842 is not set&lt;br /&gt;
# CONFIG_CRYPTO_LZ4 is not set&lt;br /&gt;
# CONFIG_CRYPTO_LZ4HC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Random Number Generation&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_CRYPTO_ANSI_CPRNG is not set&lt;br /&gt;
CONFIG_CRYPTO_DRBG_MENU=y&lt;br /&gt;
CONFIG_CRYPTO_DRBG_HMAC=y&lt;br /&gt;
# CONFIG_CRYPTO_DRBG_HASH is not set&lt;br /&gt;
# CONFIG_CRYPTO_DRBG_CTR is not set&lt;br /&gt;
CONFIG_CRYPTO_DRBG=y&lt;br /&gt;
CONFIG_CRYPTO_JITTERENTROPY=y&lt;br /&gt;
CONFIG_CRYPTO_USER_API=y&lt;br /&gt;
CONFIG_CRYPTO_USER_API_HASH=y&lt;br /&gt;
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set&lt;br /&gt;
# CONFIG_CRYPTO_USER_API_RNG is not set&lt;br /&gt;
# CONFIG_CRYPTO_USER_API_AEAD is not set&lt;br /&gt;
CONFIG_CRYPTO_HASH_INFO=y&lt;br /&gt;
CONFIG_CRYPTO_HW=y&lt;br /&gt;
# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set&lt;br /&gt;
# CONFIG_CRYPTO_DEV_OMAP is not set&lt;br /&gt;
CONFIG_ASYMMETRIC_KEY_TYPE=y&lt;br /&gt;
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y&lt;br /&gt;
CONFIG_X509_CERTIFICATE_PARSER=y&lt;br /&gt;
CONFIG_PKCS7_MESSAGE_PARSER=y&lt;br /&gt;
# CONFIG_PKCS7_TEST_KEY is not set&lt;br /&gt;
# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Certificates for signature checking&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SYSTEM_TRUSTED_KEYRING=y&lt;br /&gt;
CONFIG_SYSTEM_TRUSTED_KEYS=&amp;quot;&amp;quot;&lt;br /&gt;
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set&lt;br /&gt;
# CONFIG_SECONDARY_TRUSTED_KEYRING is not set&lt;br /&gt;
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set&lt;br /&gt;
CONFIG_ARM_CRYPTO=y&lt;br /&gt;
CONFIG_CRYPTO_SHA1_ARM=m&lt;br /&gt;
CONFIG_CRYPTO_SHA1_ARM_NEON=m&lt;br /&gt;
# CONFIG_CRYPTO_SHA1_ARM_CE is not set&lt;br /&gt;
# CONFIG_CRYPTO_SHA2_ARM_CE is not set&lt;br /&gt;
CONFIG_CRYPTO_SHA256_ARM=m&lt;br /&gt;
CONFIG_CRYPTO_SHA512_ARM=m&lt;br /&gt;
CONFIG_CRYPTO_AES_ARM=m&lt;br /&gt;
CONFIG_CRYPTO_AES_ARM_BS=m&lt;br /&gt;
CONFIG_CRYPTO_AES_ARM_CE=m&lt;br /&gt;
CONFIG_CRYPTO_GHASH_ARM_CE=m&lt;br /&gt;
CONFIG_CRYPTO_CRC32_ARM_CE=m&lt;br /&gt;
CONFIG_CRYPTO_CHACHA20_NEON=m&lt;br /&gt;
# CONFIG_BINARY_PRINTF is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Library routines&lt;br /&gt;
#&lt;br /&gt;
CONFIG_RAID6_PQ=m&lt;br /&gt;
CONFIG_BITREVERSE=y&lt;br /&gt;
# CONFIG_HAVE_ARCH_BITREVERSE is not set&lt;br /&gt;
CONFIG_RATIONAL=y&lt;br /&gt;
CONFIG_GENERIC_STRNCPY_FROM_USER=y&lt;br /&gt;
CONFIG_GENERIC_STRNLEN_USER=y&lt;br /&gt;
CONFIG_GENERIC_NET_UTILS=y&lt;br /&gt;
CONFIG_GENERIC_PCI_IOMAP=y&lt;br /&gt;
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y&lt;br /&gt;
CONFIG_CRC_CCITT=m&lt;br /&gt;
CONFIG_CRC16=y&lt;br /&gt;
# CONFIG_CRC_T10DIF is not set&lt;br /&gt;
CONFIG_CRC_ITU_T=m&lt;br /&gt;
CONFIG_CRC32=y&lt;br /&gt;
# CONFIG_CRC32_SELFTEST is not set&lt;br /&gt;
CONFIG_CRC32_SLICEBY8=y&lt;br /&gt;
# CONFIG_CRC32_SLICEBY4 is not set&lt;br /&gt;
# CONFIG_CRC32_SARWATE is not set&lt;br /&gt;
# CONFIG_CRC32_BIT is not set&lt;br /&gt;
# CONFIG_CRC4 is not set&lt;br /&gt;
CONFIG_CRC7=m&lt;br /&gt;
CONFIG_LIBCRC32C=m&lt;br /&gt;
# CONFIG_CRC8 is not set&lt;br /&gt;
CONFIG_XXHASH=m&lt;br /&gt;
CONFIG_AUDIT_GENERIC=y&lt;br /&gt;
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set&lt;br /&gt;
# CONFIG_RANDOM32_SELFTEST is not set&lt;br /&gt;
CONFIG_ZLIB_INFLATE=y&lt;br /&gt;
CONFIG_ZLIB_DEFLATE=y&lt;br /&gt;
CONFIG_LZO_COMPRESS=y&lt;br /&gt;
CONFIG_LZO_DECOMPRESS=y&lt;br /&gt;
CONFIG_ZSTD_COMPRESS=m&lt;br /&gt;
CONFIG_ZSTD_DECOMPRESS=m&lt;br /&gt;
CONFIG_XZ_DEC=y&lt;br /&gt;
# CONFIG_XZ_DEC_X86 is not set&lt;br /&gt;
# CONFIG_XZ_DEC_POWERPC is not set&lt;br /&gt;
# CONFIG_XZ_DEC_IA64 is not set&lt;br /&gt;
CONFIG_XZ_DEC_ARM=y&lt;br /&gt;
CONFIG_XZ_DEC_ARMTHUMB=y&lt;br /&gt;
# CONFIG_XZ_DEC_SPARC is not set&lt;br /&gt;
CONFIG_XZ_DEC_BCJ=y&lt;br /&gt;
# CONFIG_XZ_DEC_TEST is not set&lt;br /&gt;
CONFIG_GENERIC_ALLOCATOR=y&lt;br /&gt;
CONFIG_BCH=y&lt;br /&gt;
CONFIG_ASSOCIATIVE_ARRAY=y&lt;br /&gt;
CONFIG_HAS_IOMEM=y&lt;br /&gt;
CONFIG_HAS_IOPORT_MAP=y&lt;br /&gt;
CONFIG_HAS_DMA=y&lt;br /&gt;
CONFIG_SGL_ALLOC=y&lt;br /&gt;
# CONFIG_DMA_DIRECT_OPS is not set&lt;br /&gt;
# CONFIG_DMA_VIRT_OPS is not set&lt;br /&gt;
CONFIG_DQL=y&lt;br /&gt;
CONFIG_GLOB=y&lt;br /&gt;
# CONFIG_GLOB_SELFTEST is not set&lt;br /&gt;
CONFIG_NLATTR=y&lt;br /&gt;
CONFIG_CLZ_TAB=y&lt;br /&gt;
# CONFIG_CORDIC is not set&lt;br /&gt;
CONFIG_DDR=y&lt;br /&gt;
# CONFIG_IRQ_POLL is not set&lt;br /&gt;
CONFIG_MPILIB=y&lt;br /&gt;
CONFIG_LIBFDT=y&lt;br /&gt;
CONFIG_OID_REGISTRY=y&lt;br /&gt;
CONFIG_FONT_SUPPORT=y&lt;br /&gt;
# CONFIG_FONTS is not set&lt;br /&gt;
CONFIG_FONT_8x8=y&lt;br /&gt;
CONFIG_FONT_8x16=y&lt;br /&gt;
CONFIG_SG_SPLIT=y&lt;br /&gt;
CONFIG_SG_POOL=y&lt;br /&gt;
CONFIG_ARCH_HAS_SG_CHAIN=y&lt;br /&gt;
CONFIG_SBITMAP=y&lt;br /&gt;
# CONFIG_STRING_SELFTEST is not set&lt;br /&gt;
# CONFIG_VIRTUALIZATION is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Gentoo&amp;diff=30295</id>
		<title>Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Gentoo&amp;diff=30295"/>
		<updated>2018-06-10T13:31:15Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lead_Photo_For_Gentoo0-3487219834854004.jpg|thumbnail|Gentoo running on Alec' pandora]]&lt;br /&gt;
&lt;br /&gt;
Note: An alternative is to cross install Gentoo by yourself. This way a more recent system can be installed but it is much more difficult. See '''[[Cross Install Gentoo]]'''.&lt;br /&gt;
&lt;br /&gt;
[http://boards.openpandora.org/topic/16315-gentoo-for-pandora-release-201405/ forum thread]&lt;br /&gt;
&lt;br /&gt;
* Razor-qt 0.5.2 desktop&lt;br /&gt;
* Over 500 pre-built packages, including: Firefox 29.0, GIMP 2.8.10, QtCreator 2.8.1, gdb 7.6.2, Valgrind 3.9.0, gcc 4.7.3&lt;br /&gt;
* All the packages were built for Cortex-A8 (softfp), mostly Gentoo arm stable&lt;br /&gt;
&lt;br /&gt;
=== '''Installation''' requirements===&lt;br /&gt;
* '''Pandora''' All versions fine?&lt;br /&gt;
* '''SD card''' Minimum 2GB&lt;br /&gt;
&lt;br /&gt;
=== '''Download''' the gentoo image ===&lt;br /&gt;
* [http://gentoo.openpandora.org/images Images]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# wget http://gentoo.openpandora.org/images/gentoo-pandora-2014.05.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Partition''' the SD card ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkfs.ext2 -L boot /dev/mmcblk0p1&lt;br /&gt;
# mkfs.ext4 -L gentoo -E stride=2,stripe-width=1024 /dev/mmcblk0p2&lt;br /&gt;
# mkdir -p /mnt/gentoo&lt;br /&gt;
# mount /dev/mmcblk0p2 /mnt/gentoo&lt;br /&gt;
# mkdir /mnt/gentoo/boot&lt;br /&gt;
# mount /dev/mmcblk0p1 /mnt/gentoo/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Extract''' Gentoo onto the SD card partitions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tar xapvf gentoo-pandora-2014.05.tar.bz2 -C /mnt/gentoo&lt;br /&gt;
# umount /mnt/gentoo/boot&lt;br /&gt;
# umount /mnt/gentoo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ''' Wireless ''' ===&lt;br /&gt;
# Click the wifi icon in the tray.&lt;br /&gt;
# In the window, press scan.&lt;br /&gt;
# &amp;quot;Double-click&amp;quot; your network (hit right nub up, might take a few tries if it's not tuned)&lt;br /&gt;
# Fill in the auth info and hit enter&lt;br /&gt;
# You should be connected now. It now will connect every time Gentoo starts.&lt;br /&gt;
&lt;br /&gt;
=== '''Installing packages''' === &lt;br /&gt;
[http://gentoo.openpandora.org/packages available packages]&lt;br /&gt;
* Open a terminal and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# $ su - &lt;br /&gt;
# Password:&lt;br /&gt;
# emerge -avK htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Updating the system using binary packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# emerge -auvDK @world &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Build portage tree to install prebuilt packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# emerge --sync          (will take a while the first time)&lt;br /&gt;
# emerge -av wgetpaste&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Operating system]]&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30294</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30294"/>
		<updated>2018-06-10T13:20:56Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: /* Open issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install system ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare target file system ===&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile/install kernel ===&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Download kernel ====&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Compile kernel ====&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file [[Cross Install Gentoo kernel-patch-Fn-keys.txt|kernel-patch-Fn-keys.txt]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
[[Cross Install Gentoo kernel-config|kernel-config]] which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Install kernel ====&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile system ===&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross development system ====&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross-compilation and QEmu environment ====&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Start cross compilation ====&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -a linux-firmware&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Continue cross-compilation with QEmu ====&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fix lib64-problem ===&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configure system ===&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
([[Cross Install Gentoo Keymap-pandora.map|keymap-pandora.map]])&lt;br /&gt;
&lt;br /&gt;
And disable the suspend mode for handling the lid switch (this does&lt;br /&gt;
currently not work).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
sed -i 's/#HandleLidSwitch=suspend/HandleLidSwitch=ignore/g' etc/systemd/logind.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noatime                         1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noatime,nodev,nosuid            1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* WiFi interface is missing&lt;br /&gt;
* twl: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Kernel panic at system shutdown&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30293</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30293"/>
		<updated>2018-06-10T13:19:40Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: tw1 is actually twl&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install system ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare target file system ===&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile/install kernel ===&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Download kernel ====&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Compile kernel ====&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file [[Cross Install Gentoo kernel-patch-Fn-keys.txt|kernel-patch-Fn-keys.txt]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
[[Cross Install Gentoo kernel-config|kernel-config]] which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Install kernel ====&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile system ===&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross development system ====&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross-compilation and QEmu environment ====&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Start cross compilation ====&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -a linux-firmware&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Continue cross-compilation with QEmu ====&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fix lib64-problem ===&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configure system ===&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
([[Cross Install Gentoo Keymap-pandora.map|keymap-pandora.map]])&lt;br /&gt;
&lt;br /&gt;
And disable the suspend mode for handling the lid switch (this does&lt;br /&gt;
currently not work).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
sed -i 's/#HandleLidSwitch=suspend/HandleLidSwitch=ignore/g' etc/systemd/logind.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noatime                         1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noatime,nodev,nosuid            1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* WiFi interface is missing&lt;br /&gt;
* twl: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Cursor and other GPIO-related keys do not work correctly if CPU is idle. Workaround: echo 1 &amp;gt;/sys/devices/system/cpu/cpu0/cpuidle/state4/disable&lt;br /&gt;
* Kernel panic at system shutdown&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30292</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30292"/>
		<updated>2018-06-10T13:18:17Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: /* Open issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install system ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare target file system ===&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile/install kernel ===&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Download kernel ====&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Compile kernel ====&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file [[Cross Install Gentoo kernel-patch-Fn-keys.txt|kernel-patch-Fn-keys.txt]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
[[Cross Install Gentoo kernel-config|kernel-config]] which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Install kernel ====&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile system ===&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross development system ====&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross-compilation and QEmu environment ====&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Start cross compilation ====&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -a linux-firmware&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Continue cross-compilation with QEmu ====&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fix lib64-problem ===&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configure system ===&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
([[Cross Install Gentoo Keymap-pandora.map|keymap-pandora.map]])&lt;br /&gt;
&lt;br /&gt;
And disable the suspend mode for handling the lid switch (this does&lt;br /&gt;
currently not work).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
sed -i 's/#HandleLidSwitch=suspend/HandleLidSwitch=ignore/g' etc/systemd/logind.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noatime                         1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noatime,nodev,nosuid            1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* WiFi interface is missing&lt;br /&gt;
* tw1: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Cursor and other GPIO-related keys do not work correctly if CPU is idle. Workaround: echo 1 &amp;gt;/sys/devices/system/cpu/cpu0/cpuidle/state4/disable&lt;br /&gt;
* Kernel panic at system shutdown&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30291</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30291"/>
		<updated>2018-06-10T13:17:31Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: /* Configure system */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install system ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare target file system ===&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile/install kernel ===&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Download kernel ====&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Compile kernel ====&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file [[Cross Install Gentoo kernel-patch-Fn-keys.txt|kernel-patch-Fn-keys.txt]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
[[Cross Install Gentoo kernel-config|kernel-config]] which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Install kernel ====&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile system ===&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross development system ====&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross-compilation and QEmu environment ====&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Start cross compilation ====&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -a linux-firmware&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Continue cross-compilation with QEmu ====&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fix lib64-problem ===&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configure system ===&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
([[Cross Install Gentoo Keymap-pandora.map|keymap-pandora.map]])&lt;br /&gt;
&lt;br /&gt;
And disable the suspend mode for handling the lid switch (this does&lt;br /&gt;
currently not work).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
sed -i 's/#HandleLidSwitch=suspend/HandleLidSwitch=ignore/g' etc/systemd/logind.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noatime                         1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noatime,nodev,nosuid            1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* tw1: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Cursor and other GPIO-related keys do not work correctly if CPU is idle. Workaround: echo 1 &amp;gt;/sys/devices/system/cpu/cpu0/cpuidle/state4/disable&lt;br /&gt;
* Kernel panic at system shutdown&lt;br /&gt;
* fstab: Auto-Mounting /boot or /home causes system suspend after about 30 Seconds.&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30290</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30290"/>
		<updated>2018-06-08T19:50:27Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: HandleLidSwitch=ignore added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install system ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare target file system ===&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile/install kernel ===&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Download kernel ====&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Compile kernel ====&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file [[Cross Install Gentoo kernel-patch-Fn-keys.txt|kernel-patch-Fn-keys.txt]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
[[Cross Install Gentoo kernel-config|kernel-config]] which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Install kernel ====&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile system ===&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross development system ====&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross-compilation and QEmu environment ====&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Start cross compilation ====&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -a linux-firmware&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Continue cross-compilation with QEmu ====&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fix lib64-problem ===&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configure system ===&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
([[Cross Install Gentoo Keymap-pandora.map|keymap-pandora.map]])&lt;br /&gt;
&lt;br /&gt;
And disable the suspend mode for handling the lid switch (this does&lt;br /&gt;
currently not work).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
sed -i 's/#HandleLidSwitch=suspend/HandleLidSwitch=ignore/g' etc/systemd/logind.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noauto,noatime                  1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noauto,noatime,nodev,nosuid     1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* tw1: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Cursor and other GPIO-related keys do not work correctly if CPU is idle. Workaround: echo 1 &amp;gt;/sys/devices/system/cpu/cpu0/cpuidle/state4/disable&lt;br /&gt;
* Kernel panic at system shutdown&lt;br /&gt;
* fstab: Auto-Mounting /boot or /home causes system suspend after about 30 Seconds.&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30289</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30289"/>
		<updated>2018-06-08T19:41:12Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: &amp;quot;wl1251 board initialization failed&amp;quot; removed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install system ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare target file system ===&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile/install kernel ===&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Download kernel ====&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Compile kernel ====&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file [[Cross Install Gentoo kernel-patch-Fn-keys.txt|kernel-patch-Fn-keys.txt]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
[[Cross Install Gentoo kernel-config|kernel-config]] which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Install kernel ====&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile system ===&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross development system ====&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross-compilation and QEmu environment ====&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Start cross compilation ====&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -a linux-firmware&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Continue cross-compilation with QEmu ====&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fix lib64-problem ===&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configure system ===&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
([[Cross Install Gentoo Keymap-pandora.map|keymap-pandora.map]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noauto,noatime                  1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noauto,noatime,nodev,nosuid     1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* tw1: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Cursor and other GPIO-related keys do not work correctly if CPU is idle. Workaround: echo 1 &amp;gt;/sys/devices/system/cpu/cpu0/cpuidle/state4/disable&lt;br /&gt;
* Kernel panic at system shutdown&lt;br /&gt;
* fstab: Auto-Mounting /boot or /home causes system suspend after about 30 Seconds.&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30288</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30288"/>
		<updated>2018-06-08T19:40:15Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: Emering linux-firmware for WiFi added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install system ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare target file system ===&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile/install kernel ===&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Download kernel ====&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Compile kernel ====&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file [[Cross Install Gentoo kernel-patch-Fn-keys.txt|kernel-patch-Fn-keys.txt]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
[[Cross Install Gentoo kernel-config|kernel-config]] which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Install kernel ====&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile system ===&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross development system ====&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross-compilation and QEmu environment ====&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Start cross compilation ====&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -a linux-firmware&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Continue cross-compilation with QEmu ====&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fix lib64-problem ===&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configure system ===&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
([[Cross Install Gentoo Keymap-pandora.map|keymap-pandora.map]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noauto,noatime                  1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noauto,noatime,nodev,nosuid     1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* wl1251 board initialization failed&lt;br /&gt;
* tw1: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Cursor and other GPIO-related keys do not work correctly if CPU is idle. Workaround: echo 1 &amp;gt;/sys/devices/system/cpu/cpu0/cpuidle/state4/disable&lt;br /&gt;
* Kernel panic at system shutdown&lt;br /&gt;
* fstab: Auto-Mounting /boot or /home causes system suspend after about 30 Seconds.&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30287</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30287"/>
		<updated>2018-06-06T10:19:17Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: Table of contents corrected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install system ==&lt;br /&gt;
&lt;br /&gt;
=== Prepare target file system ===&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile/install kernel ===&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Download kernel ====&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Compile kernel ====&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file [[Cross Install Gentoo kernel-patch-Fn-keys.txt|kernel-patch-Fn-keys.txt]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
[[Cross Install Gentoo kernel-config|kernel-config]] which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Install kernel ====&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile system ===&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross development system ====&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Prepare cross-compilation and QEmu environment ====&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Start cross compilation ====&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Continue cross-compilation with QEmu ====&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Fix lib64-problem ===&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Configure system ===&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
([[Cross Install Gentoo Keymap-pandora.map|keymap-pandora.map]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noauto,noatime                  1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noauto,noatime,nodev,nosuid     1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* wl1251 board initialization failed&lt;br /&gt;
* tw1: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Cursor and other GPIO-related keys do not work correctly if CPU is idle. Workaround: echo 1 &amp;gt;/sys/devices/system/cpu/cpu0/cpuidle/state4/disable&lt;br /&gt;
* Kernel panic at system shutdown&lt;br /&gt;
* fstab: Auto-Mounting /boot or /home causes system suspend after about 30 Seconds.&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo_Keymap-pandora.map&amp;diff=30286</id>
		<title>Cross Install Gentoo Keymap-pandora.map</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo_Keymap-pandora.map&amp;diff=30286"/>
		<updated>2018-06-05T06:58:13Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: Keymap file released&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#     1,     2,       4,   8&lt;br /&gt;
# Shift, AltGr, Control, Alt&lt;br /&gt;
keymaps 0,1,4,8&lt;br /&gt;
&lt;br /&gt;
# Special keys.&lt;br /&gt;
&lt;br /&gt;
keycode  29 = Control&lt;br /&gt;
keycode  56 = Alt&lt;br /&gt;
#keycode  464 = AltGr&lt;br /&gt;
&lt;br /&gt;
#	      Default		Shift&lt;br /&gt;
&lt;br /&gt;
keycode  51 = comma		less&lt;br /&gt;
keycode  52 = period		greater&lt;br /&gt;
&lt;br /&gt;
# Number Bar&lt;br /&gt;
&lt;br /&gt;
keycode  2 = one                section&lt;br /&gt;
keycode  3 = two                braceleft&lt;br /&gt;
keycode  4 = three              braceright&lt;br /&gt;
keycode  5 = four               asciitilde&lt;br /&gt;
keycode  6 = five               percent&lt;br /&gt;
keycode  7 = six                asciicircum&lt;br /&gt;
keycode  8 = seven              ampersand&lt;br /&gt;
keycode  9 = eight              asterisk&lt;br /&gt;
keycode  10 = nine              bracketleft&lt;br /&gt;
keycode  11 = zero              bracketright&lt;br /&gt;
keycode  14 = BackSpace         Remove&lt;br /&gt;
&lt;br /&gt;
# Fn stuff&lt;br /&gt;
&lt;br /&gt;
# F13 - Fn-J&lt;br /&gt;
keycode  183 = apostrophe&lt;br /&gt;
# F14 - Fn-B&lt;br /&gt;
keycode  184 = bar&lt;br /&gt;
# F15 - Fn-Y&lt;br /&gt;
keycode  185 = underscore&lt;br /&gt;
# F16 - Fn-V&lt;br /&gt;
keycode  186 = numbersign&lt;br /&gt;
# F17 - Fn-T&lt;br /&gt;
keycode  187 = exclam&lt;br /&gt;
# F18 - Fn-K&lt;br /&gt;
keycode  188 = sterling&lt;br /&gt;
# F19 - Fn-S&lt;br /&gt;
keycode  189 = quotedbl&lt;br /&gt;
# F20 - Fn-W&lt;br /&gt;
keycode  190 = at&lt;br /&gt;
# F21 - Fn-.&lt;br /&gt;
keycode  191 = colon&lt;br /&gt;
# F22 - Fn-N&lt;br /&gt;
keycode  192 = dollar&lt;br /&gt;
# F23 - Fn-M&lt;br /&gt;
keycode  193 = currency&lt;br /&gt;
# Fn-L&lt;br /&gt;
keycode  124 = yen&lt;br /&gt;
# Fn-X&lt;br /&gt;
keycode  214 = question&lt;br /&gt;
# Fn-E&lt;br /&gt;
keycode  26 = parenleft&lt;br /&gt;
# Fn-R&lt;br /&gt;
keycode  27 = parenright&lt;br /&gt;
&lt;br /&gt;
# Listing these here in short notation gives us modifier keys&lt;br /&gt;
&lt;br /&gt;
keycode  16 = +q&lt;br /&gt;
keycode  17 = +w&lt;br /&gt;
keycode  18 = +e&lt;br /&gt;
keycode  19 = +r&lt;br /&gt;
keycode  20 = +t&lt;br /&gt;
keycode  21 = +y&lt;br /&gt;
keycode  22 = +u&lt;br /&gt;
keycode  23 = +i&lt;br /&gt;
keycode  24 = +o&lt;br /&gt;
keycode  25 = +p&lt;br /&gt;
keycode  30 = +a&lt;br /&gt;
keycode  31 = +s&lt;br /&gt;
keycode  32 = +d&lt;br /&gt;
keycode  33 = +f&lt;br /&gt;
keycode  34 = +g&lt;br /&gt;
keycode  35 = +h&lt;br /&gt;
keycode  36 = +j&lt;br /&gt;
keycode  37 = +k&lt;br /&gt;
keycode  38 = +l&lt;br /&gt;
keycode  44 = +z&lt;br /&gt;
keycode  45 = +x&lt;br /&gt;
keycode  46 = +c&lt;br /&gt;
keycode  47 = +v&lt;br /&gt;
keycode  48 = +b&lt;br /&gt;
keycode  49 = +n&lt;br /&gt;
keycode  50 = +m&lt;br /&gt;
&lt;br /&gt;
# DPad - URDL&lt;br /&gt;
&lt;br /&gt;
alt keycode 106 = Incr_Console&lt;br /&gt;
alt keycode 105 = Decr_Console&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30285</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30285"/>
		<updated>2018-06-05T06:53:00Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: Link fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare target file system ==&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile/install kernel ==&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Download kernel ===&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile kernel ===&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file [[Cross Install Gentoo kernel-patch-Fn-keys.txt|kernel-patch-Fn-keys.txt]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
[[Cross Install Gentoo kernel-config|kernel-config]] which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install kernel ===&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile system ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross development system ===&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross-compilation and QEmu environment ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start cross compilation ===&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Continue cross-compilation with QEmu ===&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix lib64-problem ==&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configure system ==&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
([[Cross Install Gentoo Keymap-pandora.map|keymap-pandora.map]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noauto,noatime                  1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noauto,noatime,nodev,nosuid     1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* wl1251 board initialization failed&lt;br /&gt;
* tw1: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Cursor and other GPIO-related keys do not work correctly if CPU is idle. Workaround: echo 1 &amp;gt;/sys/devices/system/cpu/cpu0/cpuidle/state4/disable&lt;br /&gt;
* Kernel panic at system shutdown&lt;br /&gt;
* fstab: Auto-Mounting /boot or /home causes system suspend after about 30 Seconds.&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo_kernel-config&amp;diff=30284</id>
		<title>Cross Install Gentoo kernel-config</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo_kernel-config&amp;diff=30284"/>
		<updated>2018-06-05T06:45:21Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: Kernel config file release&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Automatically generated file; DO NOT EDIT.&lt;br /&gt;
# Linux/arm 4.16.2 Kernel Configuration&lt;br /&gt;
#&lt;br /&gt;
CONFIG_ARM=y&lt;br /&gt;
CONFIG_ARM_HAS_SG_CHAIN=y&lt;br /&gt;
CONFIG_MIGHT_HAVE_PCI=y&lt;br /&gt;
CONFIG_SYS_SUPPORTS_APM_EMULATION=y&lt;br /&gt;
CONFIG_HAVE_PROC_CPU=y&lt;br /&gt;
CONFIG_STACKTRACE_SUPPORT=y&lt;br /&gt;
CONFIG_LOCKDEP_SUPPORT=y&lt;br /&gt;
CONFIG_TRACE_IRQFLAGS_SUPPORT=y&lt;br /&gt;
CONFIG_RWSEM_XCHGADD_ALGORITHM=y&lt;br /&gt;
CONFIG_ARCH_HAS_BANDGAP=y&lt;br /&gt;
CONFIG_FIX_EARLYCON_MEM=y&lt;br /&gt;
CONFIG_GENERIC_HWEIGHT=y&lt;br /&gt;
CONFIG_GENERIC_CALIBRATE_DELAY=y&lt;br /&gt;
CONFIG_NEED_DMA_MAP_STATE=y&lt;br /&gt;
CONFIG_ARCH_SUPPORTS_UPROBES=y&lt;br /&gt;
CONFIG_ARM_PATCH_PHYS_VIRT=y&lt;br /&gt;
CONFIG_GENERIC_BUG=y&lt;br /&gt;
CONFIG_PGTABLE_LEVELS=2&lt;br /&gt;
CONFIG_IRQ_WORK=y&lt;br /&gt;
CONFIG_BUILDTIME_EXTABLE_SORT=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# General setup&lt;br /&gt;
#&lt;br /&gt;
CONFIG_BROKEN_ON_SMP=y&lt;br /&gt;
CONFIG_INIT_ENV_ARG_LIMIT=32&lt;br /&gt;
CONFIG_CROSS_COMPILE=&amp;quot;&amp;quot;&lt;br /&gt;
# CONFIG_COMPILE_TEST is not set&lt;br /&gt;
CONFIG_LOCALVERSION=&amp;quot;-pherkad&amp;quot;&lt;br /&gt;
# CONFIG_LOCALVERSION_AUTO is not set&lt;br /&gt;
CONFIG_HAVE_KERNEL_GZIP=y&lt;br /&gt;
CONFIG_HAVE_KERNEL_LZMA=y&lt;br /&gt;
CONFIG_HAVE_KERNEL_XZ=y&lt;br /&gt;
CONFIG_HAVE_KERNEL_LZO=y&lt;br /&gt;
CONFIG_HAVE_KERNEL_LZ4=y&lt;br /&gt;
# CONFIG_KERNEL_GZIP is not set&lt;br /&gt;
# CONFIG_KERNEL_LZMA is not set&lt;br /&gt;
CONFIG_KERNEL_XZ=y&lt;br /&gt;
# CONFIG_KERNEL_LZO is not set&lt;br /&gt;
# CONFIG_KERNEL_LZ4 is not set&lt;br /&gt;
CONFIG_DEFAULT_HOSTNAME=&amp;quot;(none)&amp;quot;&lt;br /&gt;
CONFIG_SWAP=y&lt;br /&gt;
CONFIG_SYSVIPC=y&lt;br /&gt;
CONFIG_SYSVIPC_SYSCTL=y&lt;br /&gt;
CONFIG_POSIX_MQUEUE=y&lt;br /&gt;
CONFIG_POSIX_MQUEUE_SYSCTL=y&lt;br /&gt;
CONFIG_CROSS_MEMORY_ATTACH=y&lt;br /&gt;
# CONFIG_USELIB is not set&lt;br /&gt;
CONFIG_AUDIT=y&lt;br /&gt;
CONFIG_HAVE_ARCH_AUDITSYSCALL=y&lt;br /&gt;
CONFIG_AUDITSYSCALL=y&lt;br /&gt;
CONFIG_AUDIT_WATCH=y&lt;br /&gt;
CONFIG_AUDIT_TREE=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# IRQ subsystem&lt;br /&gt;
#&lt;br /&gt;
CONFIG_GENERIC_IRQ_PROBE=y&lt;br /&gt;
CONFIG_GENERIC_IRQ_SHOW=y&lt;br /&gt;
CONFIG_GENERIC_IRQ_SHOW_LEVEL=y&lt;br /&gt;
CONFIG_HARDIRQS_SW_RESEND=y&lt;br /&gt;
CONFIG_GENERIC_IRQ_CHIP=y&lt;br /&gt;
CONFIG_IRQ_DOMAIN=y&lt;br /&gt;
CONFIG_HANDLE_DOMAIN_IRQ=y&lt;br /&gt;
CONFIG_IRQ_FORCED_THREADING=y&lt;br /&gt;
CONFIG_SPARSE_IRQ=y&lt;br /&gt;
# CONFIG_GENERIC_IRQ_DEBUGFS is not set&lt;br /&gt;
CONFIG_ARCH_CLOCKSOURCE_DATA=y&lt;br /&gt;
CONFIG_GENERIC_TIME_VSYSCALL=y&lt;br /&gt;
CONFIG_GENERIC_CLOCKEVENTS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Timers subsystem&lt;br /&gt;
#&lt;br /&gt;
CONFIG_TICK_ONESHOT=y&lt;br /&gt;
CONFIG_HZ_PERIODIC=y&lt;br /&gt;
# CONFIG_NO_HZ_IDLE is not set&lt;br /&gt;
# CONFIG_NO_HZ is not set&lt;br /&gt;
CONFIG_HIGH_RES_TIMERS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CPU/Task time and stats accounting&lt;br /&gt;
#&lt;br /&gt;
CONFIG_TICK_CPU_ACCOUNTING=y&lt;br /&gt;
# CONFIG_VIRT_CPU_ACCOUNTING_GEN is not set&lt;br /&gt;
# CONFIG_IRQ_TIME_ACCOUNTING is not set&lt;br /&gt;
CONFIG_BSD_PROCESS_ACCT=y&lt;br /&gt;
# CONFIG_BSD_PROCESS_ACCT_V3 is not set&lt;br /&gt;
CONFIG_TASKSTATS=y&lt;br /&gt;
CONFIG_TASK_DELAY_ACCT=y&lt;br /&gt;
CONFIG_TASK_XACCT=y&lt;br /&gt;
CONFIG_TASK_IO_ACCOUNTING=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# RCU Subsystem&lt;br /&gt;
#&lt;br /&gt;
CONFIG_TINY_RCU=y&lt;br /&gt;
# CONFIG_RCU_EXPERT is not set&lt;br /&gt;
CONFIG_SRCU=y&lt;br /&gt;
CONFIG_TINY_SRCU=y&lt;br /&gt;
# CONFIG_TASKS_RCU is not set&lt;br /&gt;
# CONFIG_RCU_STALL_COMMON is not set&lt;br /&gt;
# CONFIG_RCU_NEED_SEGCBLIST is not set&lt;br /&gt;
# CONFIG_BUILD_BIN2C is not set&lt;br /&gt;
# CONFIG_IKCONFIG is not set&lt;br /&gt;
CONFIG_LOG_BUF_SHIFT=16&lt;br /&gt;
CONFIG_PRINTK_SAFE_LOG_BUF_SHIFT=13&lt;br /&gt;
CONFIG_GENERIC_SCHED_CLOCK=y&lt;br /&gt;
CONFIG_CGROUPS=y&lt;br /&gt;
# CONFIG_MEMCG is not set&lt;br /&gt;
# CONFIG_BLK_CGROUP is not set&lt;br /&gt;
CONFIG_CGROUP_SCHED=y&lt;br /&gt;
CONFIG_FAIR_GROUP_SCHED=y&lt;br /&gt;
# CONFIG_CFS_BANDWIDTH is not set&lt;br /&gt;
# CONFIG_RT_GROUP_SCHED is not set&lt;br /&gt;
# CONFIG_CGROUP_PIDS is not set&lt;br /&gt;
# CONFIG_CGROUP_RDMA is not set&lt;br /&gt;
CONFIG_CGROUP_FREEZER=y&lt;br /&gt;
# CONFIG_CGROUP_DEVICE is not set&lt;br /&gt;
CONFIG_CGROUP_CPUACCT=y&lt;br /&gt;
# CONFIG_CGROUP_PERF is not set&lt;br /&gt;
CONFIG_CGROUP_BPF=y&lt;br /&gt;
# CONFIG_CGROUP_DEBUG is not set&lt;br /&gt;
CONFIG_SOCK_CGROUP_DATA=y&lt;br /&gt;
CONFIG_NAMESPACES=y&lt;br /&gt;
CONFIG_UTS_NS=y&lt;br /&gt;
CONFIG_IPC_NS=y&lt;br /&gt;
# CONFIG_USER_NS is not set&lt;br /&gt;
CONFIG_PID_NS=y&lt;br /&gt;
CONFIG_NET_NS=y&lt;br /&gt;
# CONFIG_SCHED_AUTOGROUP is not set&lt;br /&gt;
# CONFIG_SYSFS_DEPRECATED is not set&lt;br /&gt;
# CONFIG_RELAY is not set&lt;br /&gt;
# CONFIG_BLK_DEV_INITRD is not set&lt;br /&gt;
CONFIG_CC_OPTIMIZE_FOR_PERFORMANCE=y&lt;br /&gt;
# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set&lt;br /&gt;
CONFIG_SYSCTL=y&lt;br /&gt;
CONFIG_ANON_INODES=y&lt;br /&gt;
CONFIG_HAVE_UID16=y&lt;br /&gt;
CONFIG_BPF=y&lt;br /&gt;
CONFIG_EXPERT=y&lt;br /&gt;
CONFIG_UID16=y&lt;br /&gt;
CONFIG_MULTIUSER=y&lt;br /&gt;
CONFIG_SGETMASK_SYSCALL=y&lt;br /&gt;
CONFIG_SYSFS_SYSCALL=y&lt;br /&gt;
# CONFIG_SYSCTL_SYSCALL is not set&lt;br /&gt;
CONFIG_FHANDLE=y&lt;br /&gt;
CONFIG_POSIX_TIMERS=y&lt;br /&gt;
CONFIG_PRINTK=y&lt;br /&gt;
CONFIG_PRINTK_NMI=y&lt;br /&gt;
CONFIG_BUG=y&lt;br /&gt;
CONFIG_ELF_CORE=y&lt;br /&gt;
CONFIG_BASE_FULL=y&lt;br /&gt;
CONFIG_FUTEX=y&lt;br /&gt;
CONFIG_FUTEX_PI=y&lt;br /&gt;
CONFIG_EPOLL=y&lt;br /&gt;
CONFIG_SIGNALFD=y&lt;br /&gt;
CONFIG_TIMERFD=y&lt;br /&gt;
CONFIG_EVENTFD=y&lt;br /&gt;
CONFIG_SHMEM=y&lt;br /&gt;
CONFIG_AIO=y&lt;br /&gt;
CONFIG_ADVISE_SYSCALLS=y&lt;br /&gt;
CONFIG_MEMBARRIER=y&lt;br /&gt;
CONFIG_CHECKPOINT_RESTORE=y&lt;br /&gt;
CONFIG_KALLSYMS=y&lt;br /&gt;
CONFIG_KALLSYMS_ALL=y&lt;br /&gt;
# CONFIG_KALLSYMS_ABSOLUTE_PERCPU is not set&lt;br /&gt;
CONFIG_KALLSYMS_BASE_RELATIVE=y&lt;br /&gt;
CONFIG_BPF_SYSCALL=y&lt;br /&gt;
# CONFIG_USERFAULTFD is not set&lt;br /&gt;
CONFIG_EMBEDDED=y&lt;br /&gt;
CONFIG_HAVE_PERF_EVENTS=y&lt;br /&gt;
CONFIG_PERF_USE_VMALLOC=y&lt;br /&gt;
# CONFIG_PC104 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Kernel Performance Events And Counters&lt;br /&gt;
#&lt;br /&gt;
CONFIG_PERF_EVENTS=y&lt;br /&gt;
# CONFIG_DEBUG_PERF_USE_VMALLOC is not set&lt;br /&gt;
CONFIG_VM_EVENT_COUNTERS=y&lt;br /&gt;
CONFIG_SLUB_DEBUG=y&lt;br /&gt;
CONFIG_COMPAT_BRK=y&lt;br /&gt;
# CONFIG_SLAB is not set&lt;br /&gt;
CONFIG_SLUB=y&lt;br /&gt;
# CONFIG_SLOB is not set&lt;br /&gt;
CONFIG_SLAB_MERGE_DEFAULT=y&lt;br /&gt;
# CONFIG_SLAB_FREELIST_RANDOM is not set&lt;br /&gt;
# CONFIG_SLAB_FREELIST_HARDENED is not set&lt;br /&gt;
CONFIG_SYSTEM_DATA_VERIFICATION=y&lt;br /&gt;
# CONFIG_PROFILING is not set&lt;br /&gt;
CONFIG_CRASH_CORE=y&lt;br /&gt;
CONFIG_KEXEC_CORE=y&lt;br /&gt;
CONFIG_HAVE_OPROFILE=y&lt;br /&gt;
# CONFIG_KPROBES is not set&lt;br /&gt;
CONFIG_JUMP_LABEL=y&lt;br /&gt;
# CONFIG_STATIC_KEYS_SELFTEST is not set&lt;br /&gt;
# CONFIG_UPROBES is not set&lt;br /&gt;
# CONFIG_HAVE_64BIT_ALIGNED_ACCESS is not set&lt;br /&gt;
CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS=y&lt;br /&gt;
CONFIG_ARCH_USE_BUILTIN_BSWAP=y&lt;br /&gt;
CONFIG_HAVE_KPROBES=y&lt;br /&gt;
CONFIG_HAVE_KRETPROBES=y&lt;br /&gt;
CONFIG_HAVE_OPTPROBES=y&lt;br /&gt;
CONFIG_HAVE_NMI=y&lt;br /&gt;
CONFIG_HAVE_ARCH_TRACEHOOK=y&lt;br /&gt;
CONFIG_HAVE_DMA_CONTIGUOUS=y&lt;br /&gt;
CONFIG_GENERIC_SMP_IDLE_THREAD=y&lt;br /&gt;
CONFIG_GENERIC_IDLE_POLL_SETUP=y&lt;br /&gt;
CONFIG_ARCH_HAS_SET_MEMORY=y&lt;br /&gt;
CONFIG_HAVE_ARCH_THREAD_STRUCT_WHITELIST=y&lt;br /&gt;
CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y&lt;br /&gt;
CONFIG_HAVE_CLK=y&lt;br /&gt;
CONFIG_HAVE_DMA_API_DEBUG=y&lt;br /&gt;
CONFIG_HAVE_HW_BREAKPOINT=y&lt;br /&gt;
CONFIG_HAVE_PERF_REGS=y&lt;br /&gt;
CONFIG_HAVE_PERF_USER_STACK_DUMP=y&lt;br /&gt;
CONFIG_HAVE_ARCH_JUMP_LABEL=y&lt;br /&gt;
CONFIG_ARCH_WANT_IPC_PARSE_VERSION=y&lt;br /&gt;
CONFIG_HAVE_ARCH_SECCOMP_FILTER=y&lt;br /&gt;
CONFIG_SECCOMP_FILTER=y&lt;br /&gt;
CONFIG_HAVE_GCC_PLUGINS=y&lt;br /&gt;
# CONFIG_GCC_PLUGINS is not set&lt;br /&gt;
CONFIG_HAVE_CC_STACKPROTECTOR=y&lt;br /&gt;
CONFIG_CC_STACKPROTECTOR_NONE=y&lt;br /&gt;
# CONFIG_CC_STACKPROTECTOR_REGULAR is not set&lt;br /&gt;
# CONFIG_CC_STACKPROTECTOR_STRONG is not set&lt;br /&gt;
# CONFIG_CC_STACKPROTECTOR_AUTO is not set&lt;br /&gt;
CONFIG_THIN_ARCHIVES=y&lt;br /&gt;
CONFIG_HAVE_CONTEXT_TRACKING=y&lt;br /&gt;
CONFIG_HAVE_VIRT_CPU_ACCOUNTING_GEN=y&lt;br /&gt;
CONFIG_HAVE_IRQ_TIME_ACCOUNTING=y&lt;br /&gt;
CONFIG_HAVE_MOD_ARCH_SPECIFIC=y&lt;br /&gt;
CONFIG_MODULES_USE_ELF_REL=y&lt;br /&gt;
CONFIG_ARCH_HAS_ELF_RANDOMIZE=y&lt;br /&gt;
CONFIG_HAVE_ARCH_MMAP_RND_BITS=y&lt;br /&gt;
CONFIG_HAVE_EXIT_THREAD=y&lt;br /&gt;
CONFIG_ARCH_MMAP_RND_BITS_MIN=8&lt;br /&gt;
CONFIG_ARCH_MMAP_RND_BITS_MAX=16&lt;br /&gt;
CONFIG_ARCH_MMAP_RND_BITS=8&lt;br /&gt;
# CONFIG_HAVE_ARCH_HASH is not set&lt;br /&gt;
# CONFIG_ISA_BUS_API is not set&lt;br /&gt;
CONFIG_CLONE_BACKWARDS=y&lt;br /&gt;
CONFIG_OLD_SIGSUSPEND3=y&lt;br /&gt;
CONFIG_OLD_SIGACTION=y&lt;br /&gt;
# CONFIG_CPU_NO_EFFICIENT_FFS is not set&lt;br /&gt;
# CONFIG_HAVE_ARCH_VMAP_STACK is not set&lt;br /&gt;
CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y&lt;br /&gt;
CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y&lt;br /&gt;
CONFIG_ARCH_HAS_STRICT_KERNEL_RWX=y&lt;br /&gt;
CONFIG_STRICT_KERNEL_RWX=y&lt;br /&gt;
CONFIG_ARCH_HAS_STRICT_MODULE_RWX=y&lt;br /&gt;
CONFIG_STRICT_MODULE_RWX=y&lt;br /&gt;
CONFIG_ARCH_HAS_PHYS_TO_DMA=y&lt;br /&gt;
CONFIG_REFCOUNT_FULL=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# GCOV-based kernel profiling&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_GCOV_KERNEL is not set&lt;br /&gt;
CONFIG_ARCH_HAS_GCOV_PROFILE_ALL=y&lt;br /&gt;
CONFIG_HAVE_GENERIC_DMA_COHERENT=y&lt;br /&gt;
CONFIG_RT_MUTEXES=y&lt;br /&gt;
CONFIG_BASE_SMALL=0&lt;br /&gt;
CONFIG_MODULES=y&lt;br /&gt;
# CONFIG_MODULE_FORCE_LOAD is not set&lt;br /&gt;
CONFIG_MODULE_UNLOAD=y&lt;br /&gt;
# CONFIG_MODULE_FORCE_UNLOAD is not set&lt;br /&gt;
# CONFIG_MODVERSIONS is not set&lt;br /&gt;
# CONFIG_MODULE_SRCVERSION_ALL is not set&lt;br /&gt;
# CONFIG_MODULE_SIG is not set&lt;br /&gt;
# CONFIG_MODULE_COMPRESS is not set&lt;br /&gt;
# CONFIG_TRIM_UNUSED_KSYMS is not set&lt;br /&gt;
CONFIG_MODULES_TREE_LOOKUP=y&lt;br /&gt;
CONFIG_BLOCK=y&lt;br /&gt;
CONFIG_LBDAF=y&lt;br /&gt;
CONFIG_BLK_SCSI_REQUEST=y&lt;br /&gt;
CONFIG_BLK_DEV_BSG=y&lt;br /&gt;
CONFIG_BLK_DEV_BSGLIB=y&lt;br /&gt;
# CONFIG_BLK_DEV_INTEGRITY is not set&lt;br /&gt;
# CONFIG_BLK_DEV_ZONED is not set&lt;br /&gt;
# CONFIG_BLK_CMDLINE_PARSER is not set&lt;br /&gt;
# CONFIG_BLK_WBT is not set&lt;br /&gt;
CONFIG_BLK_DEBUG_FS=y&lt;br /&gt;
# CONFIG_BLK_SED_OPAL is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Partition Types&lt;br /&gt;
#&lt;br /&gt;
CONFIG_PARTITION_ADVANCED=y&lt;br /&gt;
# CONFIG_ACORN_PARTITION is not set&lt;br /&gt;
# CONFIG_AIX_PARTITION is not set&lt;br /&gt;
CONFIG_OSF_PARTITION=y&lt;br /&gt;
CONFIG_AMIGA_PARTITION=y&lt;br /&gt;
# CONFIG_ATARI_PARTITION is not set&lt;br /&gt;
CONFIG_MAC_PARTITION=y&lt;br /&gt;
CONFIG_MSDOS_PARTITION=y&lt;br /&gt;
CONFIG_BSD_DISKLABEL=y&lt;br /&gt;
CONFIG_MINIX_SUBPARTITION=y&lt;br /&gt;
CONFIG_SOLARIS_X86_PARTITION=y&lt;br /&gt;
CONFIG_UNIXWARE_DISKLABEL=y&lt;br /&gt;
# CONFIG_LDM_PARTITION is not set&lt;br /&gt;
CONFIG_SGI_PARTITION=y&lt;br /&gt;
# CONFIG_ULTRIX_PARTITION is not set&lt;br /&gt;
CONFIG_SUN_PARTITION=y&lt;br /&gt;
CONFIG_KARMA_PARTITION=y&lt;br /&gt;
CONFIG_EFI_PARTITION=y&lt;br /&gt;
# CONFIG_SYSV68_PARTITION is not set&lt;br /&gt;
# CONFIG_CMDLINE_PARTITION is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# IO Schedulers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_IOSCHED_NOOP=y&lt;br /&gt;
CONFIG_IOSCHED_DEADLINE=y&lt;br /&gt;
CONFIG_IOSCHED_CFQ=y&lt;br /&gt;
# CONFIG_DEFAULT_DEADLINE is not set&lt;br /&gt;
CONFIG_DEFAULT_CFQ=y&lt;br /&gt;
# CONFIG_DEFAULT_NOOP is not set&lt;br /&gt;
CONFIG_DEFAULT_IOSCHED=&amp;quot;cfq&amp;quot;&lt;br /&gt;
CONFIG_MQ_IOSCHED_DEADLINE=y&lt;br /&gt;
CONFIG_MQ_IOSCHED_KYBER=y&lt;br /&gt;
# CONFIG_IOSCHED_BFQ is not set&lt;br /&gt;
CONFIG_ASN1=y&lt;br /&gt;
CONFIG_UNINLINE_SPIN_UNLOCK=y&lt;br /&gt;
CONFIG_ARCH_SUPPORTS_ATOMIC_RMW=y&lt;br /&gt;
CONFIG_FREEZER=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# System Type&lt;br /&gt;
#&lt;br /&gt;
CONFIG_MMU=y&lt;br /&gt;
CONFIG_ARCH_MULTIPLATFORM=y&lt;br /&gt;
# CONFIG_ARCH_EBSA110 is not set&lt;br /&gt;
# CONFIG_ARCH_EP93XX is not set&lt;br /&gt;
# CONFIG_ARCH_FOOTBRIDGE is not set&lt;br /&gt;
# CONFIG_ARCH_NETX is not set&lt;br /&gt;
# CONFIG_ARCH_IOP13XX is not set&lt;br /&gt;
# CONFIG_ARCH_IOP32X is not set&lt;br /&gt;
# CONFIG_ARCH_IOP33X is not set&lt;br /&gt;
# CONFIG_ARCH_IXP4XX is not set&lt;br /&gt;
# CONFIG_ARCH_DOVE is not set&lt;br /&gt;
# CONFIG_ARCH_KS8695 is not set&lt;br /&gt;
# CONFIG_ARCH_W90X900 is not set&lt;br /&gt;
# CONFIG_ARCH_LPC32XX is not set&lt;br /&gt;
# CONFIG_ARCH_PXA is not set&lt;br /&gt;
# CONFIG_ARCH_RPC is not set&lt;br /&gt;
# CONFIG_ARCH_SA1100 is not set&lt;br /&gt;
# CONFIG_ARCH_S3C24XX is not set&lt;br /&gt;
# CONFIG_ARCH_DAVINCI is not set&lt;br /&gt;
# CONFIG_ARCH_OMAP1 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Multiple platform selection&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CPU Core family selection&lt;br /&gt;
#&lt;br /&gt;
CONFIG_ARCH_MULTI_V6=y&lt;br /&gt;
CONFIG_ARCH_MULTI_V7=y&lt;br /&gt;
CONFIG_ARCH_MULTI_V6_V7=y&lt;br /&gt;
# CONFIG_ARCH_MULTI_CPU_AUTO is not set&lt;br /&gt;
# CONFIG_ARCH_VIRT is not set&lt;br /&gt;
# CONFIG_ARCH_MVEBU is not set&lt;br /&gt;
# CONFIG_ARCH_ACTIONS is not set&lt;br /&gt;
# CONFIG_ARCH_ALPINE is not set&lt;br /&gt;
# CONFIG_ARCH_ARTPEC is not set&lt;br /&gt;
# CONFIG_ARCH_AT91 is not set&lt;br /&gt;
# CONFIG_ARCH_BCM is not set&lt;br /&gt;
# CONFIG_ARCH_BERLIN is not set&lt;br /&gt;
# CONFIG_ARCH_CNS3XXX is not set&lt;br /&gt;
# CONFIG_ARCH_DIGICOLOR is not set&lt;br /&gt;
# CONFIG_ARCH_HIGHBANK is not set&lt;br /&gt;
# CONFIG_ARCH_HISI is not set&lt;br /&gt;
# CONFIG_ARCH_INTEGRATOR is not set&lt;br /&gt;
# CONFIG_ARCH_KEYSTONE is not set&lt;br /&gt;
# CONFIG_ARCH_MESON is not set&lt;br /&gt;
# CONFIG_ARCH_ASPEED is not set&lt;br /&gt;
# CONFIG_ARCH_MXC is not set&lt;br /&gt;
# CONFIG_ARCH_MEDIATEK is not set&lt;br /&gt;
CONFIG_ARCH_OMAP=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# TI OMAP Common Features&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# OMAP Feature Selections&lt;br /&gt;
#&lt;br /&gt;
CONFIG_POWER_AVS_OMAP=y&lt;br /&gt;
CONFIG_POWER_AVS_OMAP_CLASS3=y&lt;br /&gt;
CONFIG_OMAP_RESET_CLOCKS=y&lt;br /&gt;
CONFIG_OMAP_32K_TIMER=y&lt;br /&gt;
# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set&lt;br /&gt;
CONFIG_OMAP_DM_TIMER=y&lt;br /&gt;
CONFIG_OMAP_PM_NOOP=y&lt;br /&gt;
CONFIG_MACH_OMAP_GENERIC=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# TI OMAP/AM/DM/DRA Family&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ARCH_OMAP2 is not set&lt;br /&gt;
CONFIG_ARCH_OMAP3=y&lt;br /&gt;
# CONFIG_ARCH_OMAP4 is not set&lt;br /&gt;
# CONFIG_SOC_OMAP5 is not set&lt;br /&gt;
# CONFIG_SOC_AM33XX is not set&lt;br /&gt;
# CONFIG_SOC_AM43XX is not set&lt;br /&gt;
# CONFIG_SOC_DRA7XX is not set&lt;br /&gt;
CONFIG_ARCH_OMAP2PLUS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# TI OMAP2/3/4 Specific Features&lt;br /&gt;
#&lt;br /&gt;
CONFIG_ARCH_OMAP2PLUS_TYPICAL=y&lt;br /&gt;
CONFIG_SOC_HAS_OMAP2_SDRC=y&lt;br /&gt;
CONFIG_SOC_OMAP3430=y&lt;br /&gt;
# CONFIG_SOC_TI81XX is not set&lt;br /&gt;
CONFIG_OMAP_PACKAGE_CBB=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# OMAP Legacy Platform Data Board Type&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MACH_OMAP3517EVM is not set&lt;br /&gt;
CONFIG_MACH_OMAP3_PANDORA=y&lt;br /&gt;
# CONFIG_OMAP3_SDRC_AC_TIMING is not set&lt;br /&gt;
# CONFIG_ARCH_PICOXCELL is not set&lt;br /&gt;
# CONFIG_ARCH_MMP is not set&lt;br /&gt;
# CONFIG_ARCH_OXNAS is not set&lt;br /&gt;
# CONFIG_ARCH_QCOM is not set&lt;br /&gt;
# CONFIG_ARCH_REALVIEW is not set&lt;br /&gt;
# CONFIG_ARCH_ROCKCHIP is not set&lt;br /&gt;
# CONFIG_ARCH_SOCFPGA is not set&lt;br /&gt;
# CONFIG_PLAT_SPEAR is not set&lt;br /&gt;
# CONFIG_ARCH_STI is not set&lt;br /&gt;
# CONFIG_ARCH_S3C64XX is not set&lt;br /&gt;
# CONFIG_ARCH_S5PV210 is not set&lt;br /&gt;
# CONFIG_ARCH_EXYNOS is not set&lt;br /&gt;
# CONFIG_ARCH_RENESAS is not set&lt;br /&gt;
# CONFIG_ARCH_SUNXI is not set&lt;br /&gt;
# CONFIG_ARCH_SIRF is not set&lt;br /&gt;
# CONFIG_ARCH_TANGO is not set&lt;br /&gt;
# CONFIG_ARCH_TEGRA is not set&lt;br /&gt;
# CONFIG_ARCH_UNIPHIER is not set&lt;br /&gt;
# CONFIG_ARCH_U8500 is not set&lt;br /&gt;
# CONFIG_ARCH_VEXPRESS is not set&lt;br /&gt;
# CONFIG_ARCH_WM8750 is not set&lt;br /&gt;
# CONFIG_ARCH_WM8850 is not set&lt;br /&gt;
# CONFIG_ARCH_ZX is not set&lt;br /&gt;
# CONFIG_ARCH_ZYNQ is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Processor Type&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CPU_V6K=y&lt;br /&gt;
CONFIG_CPU_V7=y&lt;br /&gt;
CONFIG_CPU_THUMB_CAPABLE=y&lt;br /&gt;
CONFIG_CPU_32v6=y&lt;br /&gt;
CONFIG_CPU_32v6K=y&lt;br /&gt;
CONFIG_CPU_32v7=y&lt;br /&gt;
CONFIG_CPU_ABRT_EV6=y&lt;br /&gt;
CONFIG_CPU_ABRT_EV7=y&lt;br /&gt;
CONFIG_CPU_PABRT_V6=y&lt;br /&gt;
CONFIG_CPU_PABRT_V7=y&lt;br /&gt;
CONFIG_CPU_CACHE_V6=y&lt;br /&gt;
CONFIG_CPU_CACHE_V7=y&lt;br /&gt;
CONFIG_CPU_CACHE_VIPT=y&lt;br /&gt;
CONFIG_CPU_COPY_V6=y&lt;br /&gt;
CONFIG_CPU_TLB_V6=y&lt;br /&gt;
CONFIG_CPU_TLB_V7=y&lt;br /&gt;
CONFIG_CPU_HAS_ASID=y&lt;br /&gt;
CONFIG_CPU_CP15=y&lt;br /&gt;
CONFIG_CPU_CP15_MMU=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Processor Features&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set&lt;br /&gt;
CONFIG_ARM_THUMB=y&lt;br /&gt;
CONFIG_ARM_THUMBEE=y&lt;br /&gt;
CONFIG_ARM_VIRT_EXT=y&lt;br /&gt;
CONFIG_SWP_EMULATE=y&lt;br /&gt;
# CONFIG_CPU_ICACHE_DISABLE is not set&lt;br /&gt;
# CONFIG_CPU_DCACHE_DISABLE is not set&lt;br /&gt;
# CONFIG_CPU_BPREDICT_DISABLE is not set&lt;br /&gt;
CONFIG_KUSER_HELPERS=y&lt;br /&gt;
CONFIG_VDSO=y&lt;br /&gt;
CONFIG_OUTER_CACHE=y&lt;br /&gt;
CONFIG_OUTER_CACHE_SYNC=y&lt;br /&gt;
CONFIG_MIGHT_HAVE_CACHE_L2X0=y&lt;br /&gt;
CONFIG_CACHE_L2X0=y&lt;br /&gt;
# CONFIG_CACHE_L2X0_PMU is not set&lt;br /&gt;
CONFIG_PL310_ERRATA_588369=y&lt;br /&gt;
CONFIG_PL310_ERRATA_727915=y&lt;br /&gt;
# CONFIG_PL310_ERRATA_753970 is not set&lt;br /&gt;
# CONFIG_PL310_ERRATA_769419 is not set&lt;br /&gt;
CONFIG_ARM_L1_CACHE_SHIFT_6=y&lt;br /&gt;
CONFIG_ARM_L1_CACHE_SHIFT=6&lt;br /&gt;
CONFIG_ARM_DMA_MEM_BUFFERABLE=y&lt;br /&gt;
CONFIG_ARM_HEAVY_MB=y&lt;br /&gt;
CONFIG_DEBUG_ALIGN_RODATA=y&lt;br /&gt;
CONFIG_MULTI_IRQ_HANDLER=y&lt;br /&gt;
CONFIG_ARM_ERRATA_411920=y&lt;br /&gt;
CONFIG_ARM_ERRATA_430973=y&lt;br /&gt;
CONFIG_ARM_ERRATA_720789=y&lt;br /&gt;
CONFIG_ARM_ERRATA_754322=y&lt;br /&gt;
CONFIG_ARM_ERRATA_775420=y&lt;br /&gt;
# CONFIG_ARM_ERRATA_773022 is not set&lt;br /&gt;
# CONFIG_ARM_ERRATA_818325_852422 is not set&lt;br /&gt;
# CONFIG_ARM_ERRATA_821420 is not set&lt;br /&gt;
# CONFIG_ARM_ERRATA_825619 is not set&lt;br /&gt;
# CONFIG_ARM_ERRATA_852421 is not set&lt;br /&gt;
# CONFIG_ARM_ERRATA_852423 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Bus support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_PCI is not set&lt;br /&gt;
# CONFIG_PCI_DOMAINS_GENERIC is not set&lt;br /&gt;
# CONFIG_PCI_SYSCALL is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Cadence PCIe controllers support&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DesignWare PCI Core Support&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# PCI Endpoint&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_PCI_ENDPOINT is not set&lt;br /&gt;
# CONFIG_PCCARD is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Kernel Features&lt;br /&gt;
#&lt;br /&gt;
CONFIG_HAVE_SMP=y&lt;br /&gt;
# CONFIG_SMP is not set&lt;br /&gt;
CONFIG_HAVE_ARM_ARCH_TIMER=y&lt;br /&gt;
CONFIG_VMSPLIT_3G=y&lt;br /&gt;
# CONFIG_VMSPLIT_3G_OPT is not set&lt;br /&gt;
# CONFIG_VMSPLIT_2G is not set&lt;br /&gt;
# CONFIG_VMSPLIT_1G is not set&lt;br /&gt;
CONFIG_PAGE_OFFSET=0xC0000000&lt;br /&gt;
# CONFIG_ARM_PSCI is not set&lt;br /&gt;
CONFIG_ARCH_NR_GPIO=0&lt;br /&gt;
# CONFIG_PREEMPT_NONE is not set&lt;br /&gt;
CONFIG_PREEMPT_VOLUNTARY=y&lt;br /&gt;
# CONFIG_PREEMPT is not set&lt;br /&gt;
CONFIG_HZ_FIXED=0&lt;br /&gt;
CONFIG_HZ_100=y&lt;br /&gt;
# CONFIG_HZ_200 is not set&lt;br /&gt;
# CONFIG_HZ_250 is not set&lt;br /&gt;
# CONFIG_HZ_300 is not set&lt;br /&gt;
# CONFIG_HZ_500 is not set&lt;br /&gt;
# CONFIG_HZ_1000 is not set&lt;br /&gt;
CONFIG_HZ=100&lt;br /&gt;
CONFIG_SCHED_HRTICK=y&lt;br /&gt;
CONFIG_ARM_PATCH_IDIV=y&lt;br /&gt;
CONFIG_AEABI=y&lt;br /&gt;
# CONFIG_OABI_COMPAT is not set&lt;br /&gt;
CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y&lt;br /&gt;
# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set&lt;br /&gt;
# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set&lt;br /&gt;
CONFIG_HAVE_ARCH_PFN_VALID=y&lt;br /&gt;
CONFIG_HIGHMEM=y&lt;br /&gt;
CONFIG_HIGHPTE=y&lt;br /&gt;
CONFIG_CPU_SW_DOMAIN_PAN=y&lt;br /&gt;
CONFIG_HW_PERF_EVENTS=y&lt;br /&gt;
CONFIG_ARCH_WANT_GENERAL_HUGETLB=y&lt;br /&gt;
# CONFIG_ARM_MODULE_PLTS is not set&lt;br /&gt;
CONFIG_FLATMEM=y&lt;br /&gt;
CONFIG_FLAT_NODE_MEM_MAP=y&lt;br /&gt;
CONFIG_HAVE_MEMBLOCK=y&lt;br /&gt;
CONFIG_NO_BOOTMEM=y&lt;br /&gt;
CONFIG_MEMORY_ISOLATION=y&lt;br /&gt;
# CONFIG_HAVE_BOOTMEM_INFO_NODE is not set&lt;br /&gt;
CONFIG_SPLIT_PTLOCK_CPUS=4&lt;br /&gt;
CONFIG_COMPACTION=y&lt;br /&gt;
CONFIG_MIGRATION=y&lt;br /&gt;
# CONFIG_PHYS_ADDR_T_64BIT is not set&lt;br /&gt;
CONFIG_BOUNCE=y&lt;br /&gt;
# CONFIG_KSM is not set&lt;br /&gt;
CONFIG_DEFAULT_MMAP_MIN_ADDR=4096&lt;br /&gt;
# CONFIG_ARCH_WANTS_THP_SWAP is not set&lt;br /&gt;
CONFIG_NEED_PER_CPU_KM=y&lt;br /&gt;
# CONFIG_CLEANCACHE is not set&lt;br /&gt;
# CONFIG_FRONTSWAP is not set&lt;br /&gt;
CONFIG_CMA=y&lt;br /&gt;
# CONFIG_CMA_DEBUG is not set&lt;br /&gt;
# CONFIG_CMA_DEBUGFS is not set&lt;br /&gt;
CONFIG_CMA_AREAS=7&lt;br /&gt;
# CONFIG_ZPOOL is not set&lt;br /&gt;
# CONFIG_ZBUD is not set&lt;br /&gt;
# CONFIG_ZSMALLOC is not set&lt;br /&gt;
CONFIG_GENERIC_EARLY_IOREMAP=y&lt;br /&gt;
# CONFIG_IDLE_PAGE_TRACKING is not set&lt;br /&gt;
# CONFIG_PERCPU_STATS is not set&lt;br /&gt;
# CONFIG_GUP_BENCHMARK is not set&lt;br /&gt;
CONFIG_FORCE_MAX_ZONEORDER=12&lt;br /&gt;
CONFIG_ALIGNMENT_TRAP=y&lt;br /&gt;
CONFIG_UACCESS_WITH_MEMCPY=y&lt;br /&gt;
CONFIG_SECCOMP=y&lt;br /&gt;
CONFIG_SWIOTLB=y&lt;br /&gt;
CONFIG_IOMMU_HELPER=y&lt;br /&gt;
# CONFIG_PARAVIRT is not set&lt;br /&gt;
# CONFIG_PARAVIRT_TIME_ACCOUNTING is not set&lt;br /&gt;
# CONFIG_XEN is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Boot options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USE_OF=y&lt;br /&gt;
CONFIG_ATAGS=y&lt;br /&gt;
# CONFIG_DEPRECATED_PARAM_STRUCT is not set&lt;br /&gt;
CONFIG_ZBOOT_ROM_TEXT=0x0&lt;br /&gt;
CONFIG_ZBOOT_ROM_BSS=0x0&lt;br /&gt;
CONFIG_ARM_APPENDED_DTB=y&lt;br /&gt;
CONFIG_ARM_ATAG_DTB_COMPAT=y&lt;br /&gt;
CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_FROM_BOOTLOADER=y&lt;br /&gt;
# CONFIG_ARM_ATAG_DTB_COMPAT_CMDLINE_EXTEND is not set&lt;br /&gt;
CONFIG_CMDLINE=&amp;quot;&amp;quot;&lt;br /&gt;
CONFIG_KEXEC=y&lt;br /&gt;
CONFIG_ATAGS_PROC=y&lt;br /&gt;
# CONFIG_CRASH_DUMP is not set&lt;br /&gt;
CONFIG_AUTO_ZRELADDR=y&lt;br /&gt;
# CONFIG_EFI is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CPU Power Management&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CPU Frequency scaling&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CPU_FREQ=y&lt;br /&gt;
CONFIG_CPU_FREQ_GOV_ATTR_SET=y&lt;br /&gt;
CONFIG_CPU_FREQ_GOV_COMMON=y&lt;br /&gt;
CONFIG_CPU_FREQ_STAT=y&lt;br /&gt;
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y&lt;br /&gt;
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set&lt;br /&gt;
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set&lt;br /&gt;
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set&lt;br /&gt;
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set&lt;br /&gt;
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y&lt;br /&gt;
CONFIG_CPU_FREQ_GOV_POWERSAVE=m&lt;br /&gt;
CONFIG_CPU_FREQ_GOV_USERSPACE=m&lt;br /&gt;
CONFIG_CPU_FREQ_GOV_ONDEMAND=m&lt;br /&gt;
# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CPU frequency scaling drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_CPUFREQ_DT is not set&lt;br /&gt;
# CONFIG_ARM_KIRKWOOD_CPUFREQ is not set&lt;br /&gt;
CONFIG_ARM_OMAP2PLUS_CPUFREQ=y&lt;br /&gt;
# CONFIG_ARM_TI_CPUFREQ is not set&lt;br /&gt;
# CONFIG_QORIQ_CPUFREQ is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CPU Idle&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CPU_IDLE=y&lt;br /&gt;
CONFIG_CPU_IDLE_GOV_LADDER=y&lt;br /&gt;
# CONFIG_CPU_IDLE_GOV_MENU is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# ARM CPU Idle Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ARM_CPUIDLE is not set&lt;br /&gt;
# CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Floating point emulation&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# At least one emulation must be selected&lt;br /&gt;
#&lt;br /&gt;
CONFIG_VFP=y&lt;br /&gt;
CONFIG_VFPv3=y&lt;br /&gt;
CONFIG_NEON=y&lt;br /&gt;
CONFIG_KERNEL_MODE_NEON=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Userspace binary formats&lt;br /&gt;
#&lt;br /&gt;
CONFIG_BINFMT_ELF=y&lt;br /&gt;
# CONFIG_BINFMT_ELF_FDPIC is not set&lt;br /&gt;
CONFIG_ELFCORE=y&lt;br /&gt;
# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set&lt;br /&gt;
CONFIG_BINFMT_SCRIPT=y&lt;br /&gt;
# CONFIG_BINFMT_FLAT is not set&lt;br /&gt;
# CONFIG_HAVE_AOUT is not set&lt;br /&gt;
CONFIG_BINFMT_MISC=m&lt;br /&gt;
CONFIG_COREDUMP=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Power management options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SUSPEND=y&lt;br /&gt;
CONFIG_SUSPEND_FREEZER=y&lt;br /&gt;
# CONFIG_SUSPEND_SKIP_SYNC is not set&lt;br /&gt;
CONFIG_HIBERNATE_CALLBACKS=y&lt;br /&gt;
CONFIG_HIBERNATION=y&lt;br /&gt;
CONFIG_PM_STD_PARTITION=&amp;quot;&amp;quot;&lt;br /&gt;
CONFIG_PM_SLEEP=y&lt;br /&gt;
# CONFIG_PM_AUTOSLEEP is not set&lt;br /&gt;
# CONFIG_PM_WAKELOCKS is not set&lt;br /&gt;
CONFIG_PM=y&lt;br /&gt;
# CONFIG_PM_DEBUG is not set&lt;br /&gt;
# CONFIG_APM_EMULATION is not set&lt;br /&gt;
CONFIG_PM_CLK=y&lt;br /&gt;
# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set&lt;br /&gt;
CONFIG_CPU_PM=y&lt;br /&gt;
CONFIG_ARCH_SUSPEND_POSSIBLE=y&lt;br /&gt;
CONFIG_ARM_CPU_SUSPEND=y&lt;br /&gt;
CONFIG_ARCH_HIBERNATION_POSSIBLE=y&lt;br /&gt;
CONFIG_NET=y&lt;br /&gt;
CONFIG_NET_INGRESS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Networking options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_PACKET=y&lt;br /&gt;
# CONFIG_PACKET_DIAG is not set&lt;br /&gt;
CONFIG_UNIX=y&lt;br /&gt;
# CONFIG_UNIX_DIAG is not set&lt;br /&gt;
# CONFIG_TLS is not set&lt;br /&gt;
CONFIG_XFRM=y&lt;br /&gt;
CONFIG_XFRM_ALGO=m&lt;br /&gt;
# CONFIG_XFRM_USER is not set&lt;br /&gt;
# CONFIG_XFRM_SUB_POLICY is not set&lt;br /&gt;
# CONFIG_XFRM_MIGRATE is not set&lt;br /&gt;
# CONFIG_XFRM_STATISTICS is not set&lt;br /&gt;
# CONFIG_NET_KEY is not set&lt;br /&gt;
CONFIG_INET=y&lt;br /&gt;
CONFIG_IP_MULTICAST=y&lt;br /&gt;
CONFIG_IP_ADVANCED_ROUTER=y&lt;br /&gt;
# CONFIG_IP_FIB_TRIE_STATS is not set&lt;br /&gt;
CONFIG_IP_MULTIPLE_TABLES=y&lt;br /&gt;
CONFIG_IP_ROUTE_MULTIPATH=y&lt;br /&gt;
# CONFIG_IP_ROUTE_VERBOSE is not set&lt;br /&gt;
CONFIG_IP_PNP=y&lt;br /&gt;
CONFIG_IP_PNP_DHCP=y&lt;br /&gt;
# CONFIG_IP_PNP_BOOTP is not set&lt;br /&gt;
# CONFIG_IP_PNP_RARP is not set&lt;br /&gt;
# CONFIG_NET_IPIP is not set&lt;br /&gt;
# CONFIG_NET_IPGRE_DEMUX is not set&lt;br /&gt;
CONFIG_NET_IP_TUNNEL=m&lt;br /&gt;
CONFIG_IP_MROUTE=y&lt;br /&gt;
# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set&lt;br /&gt;
CONFIG_IP_PIMSM_V1=y&lt;br /&gt;
CONFIG_IP_PIMSM_V2=y&lt;br /&gt;
CONFIG_SYN_COOKIES=y&lt;br /&gt;
# CONFIG_NET_UDP_TUNNEL is not set&lt;br /&gt;
# CONFIG_NET_FOU is not set&lt;br /&gt;
# CONFIG_NET_FOU_IP_TUNNELS is not set&lt;br /&gt;
# CONFIG_INET_AH is not set&lt;br /&gt;
# CONFIG_INET_ESP is not set&lt;br /&gt;
# CONFIG_INET_IPCOMP is not set&lt;br /&gt;
# CONFIG_INET_XFRM_TUNNEL is not set&lt;br /&gt;
CONFIG_INET_TUNNEL=m&lt;br /&gt;
# CONFIG_INET_XFRM_MODE_TRANSPORT is not set&lt;br /&gt;
# CONFIG_INET_XFRM_MODE_TUNNEL is not set&lt;br /&gt;
# CONFIG_INET_XFRM_MODE_BEET is not set&lt;br /&gt;
# CONFIG_INET_DIAG is not set&lt;br /&gt;
# CONFIG_TCP_CONG_ADVANCED is not set&lt;br /&gt;
CONFIG_TCP_CONG_CUBIC=y&lt;br /&gt;
CONFIG_DEFAULT_TCP_CONG=&amp;quot;cubic&amp;quot;&lt;br /&gt;
# CONFIG_TCP_MD5SIG is not set&lt;br /&gt;
CONFIG_IPV6=y&lt;br /&gt;
# CONFIG_IPV6_ROUTER_PREF is not set&lt;br /&gt;
# CONFIG_IPV6_OPTIMISTIC_DAD is not set&lt;br /&gt;
CONFIG_INET6_AH=m&lt;br /&gt;
CONFIG_INET6_ESP=m&lt;br /&gt;
# CONFIG_INET6_ESP_OFFLOAD is not set&lt;br /&gt;
# CONFIG_INET6_IPCOMP is not set&lt;br /&gt;
# CONFIG_IPV6_MIP6 is not set&lt;br /&gt;
# CONFIG_IPV6_ILA is not set&lt;br /&gt;
# CONFIG_INET6_XFRM_TUNNEL is not set&lt;br /&gt;
# CONFIG_INET6_TUNNEL is not set&lt;br /&gt;
CONFIG_INET6_XFRM_MODE_TRANSPORT=m&lt;br /&gt;
CONFIG_INET6_XFRM_MODE_TUNNEL=m&lt;br /&gt;
CONFIG_INET6_XFRM_MODE_BEET=m&lt;br /&gt;
# CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION is not set&lt;br /&gt;
# CONFIG_IPV6_VTI is not set&lt;br /&gt;
CONFIG_IPV6_SIT=m&lt;br /&gt;
# CONFIG_IPV6_SIT_6RD is not set&lt;br /&gt;
CONFIG_IPV6_NDISC_NODETYPE=y&lt;br /&gt;
# CONFIG_IPV6_TUNNEL is not set&lt;br /&gt;
# CONFIG_IPV6_FOU is not set&lt;br /&gt;
# CONFIG_IPV6_FOU_TUNNEL is not set&lt;br /&gt;
# CONFIG_IPV6_MULTIPLE_TABLES is not set&lt;br /&gt;
# CONFIG_IPV6_MROUTE is not set&lt;br /&gt;
# CONFIG_IPV6_SEG6_LWTUNNEL is not set&lt;br /&gt;
# CONFIG_IPV6_SEG6_HMAC is not set&lt;br /&gt;
CONFIG_NETWORK_SECMARK=y&lt;br /&gt;
# CONFIG_NET_PTP_CLASSIFY is not set&lt;br /&gt;
# CONFIG_NETWORK_PHY_TIMESTAMPING is not set&lt;br /&gt;
CONFIG_NETFILTER=y&lt;br /&gt;
CONFIG_NETFILTER_ADVANCED=y&lt;br /&gt;
CONFIG_BRIDGE_NETFILTER=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Core Netfilter Configuration&lt;br /&gt;
#&lt;br /&gt;
CONFIG_NETFILTER_INGRESS=y&lt;br /&gt;
CONFIG_NETFILTER_NETLINK=m&lt;br /&gt;
CONFIG_NETFILTER_FAMILY_BRIDGE=y&lt;br /&gt;
# CONFIG_NETFILTER_NETLINK_ACCT is not set&lt;br /&gt;
# CONFIG_NETFILTER_NETLINK_QUEUE is not set&lt;br /&gt;
CONFIG_NETFILTER_NETLINK_LOG=m&lt;br /&gt;
CONFIG_NF_CONNTRACK=m&lt;br /&gt;
CONFIG_NF_LOG_COMMON=m&lt;br /&gt;
# CONFIG_NF_LOG_NETDEV is not set&lt;br /&gt;
CONFIG_NETFILTER_CONNCOUNT=m&lt;br /&gt;
# CONFIG_NF_CONNTRACK_MARK is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_SECMARK is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_PROCFS is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_EVENTS is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_TIMEOUT is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_TIMESTAMP is not set&lt;br /&gt;
# CONFIG_NF_CT_PROTO_DCCP is not set&lt;br /&gt;
CONFIG_NF_CT_PROTO_SCTP=y&lt;br /&gt;
# CONFIG_NF_CT_PROTO_UDPLITE is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_AMANDA is not set&lt;br /&gt;
CONFIG_NF_CONNTRACK_FTP=m&lt;br /&gt;
# CONFIG_NF_CONNTRACK_H323 is not set&lt;br /&gt;
CONFIG_NF_CONNTRACK_IRC=m&lt;br /&gt;
# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_SNMP is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_PPTP is not set&lt;br /&gt;
# CONFIG_NF_CONNTRACK_SANE is not set&lt;br /&gt;
CONFIG_NF_CONNTRACK_SIP=m&lt;br /&gt;
# CONFIG_NF_CONNTRACK_TFTP is not set&lt;br /&gt;
CONFIG_NF_CT_NETLINK=m&lt;br /&gt;
# CONFIG_NF_CT_NETLINK_TIMEOUT is not set&lt;br /&gt;
# CONFIG_NETFILTER_NETLINK_GLUE_CT is not set&lt;br /&gt;
CONFIG_NF_NAT=m&lt;br /&gt;
CONFIG_NF_NAT_NEEDED=y&lt;br /&gt;
CONFIG_NF_NAT_PROTO_SCTP=y&lt;br /&gt;
# CONFIG_NF_NAT_AMANDA is not set&lt;br /&gt;
CONFIG_NF_NAT_FTP=m&lt;br /&gt;
CONFIG_NF_NAT_IRC=m&lt;br /&gt;
CONFIG_NF_NAT_SIP=m&lt;br /&gt;
# CONFIG_NF_NAT_TFTP is not set&lt;br /&gt;
# CONFIG_NF_NAT_REDIRECT is not set&lt;br /&gt;
# CONFIG_NF_TABLES is not set&lt;br /&gt;
CONFIG_NETFILTER_XTABLES=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Xtables combined modules&lt;br /&gt;
#&lt;br /&gt;
CONFIG_NETFILTER_XT_MARK=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_CONNMARK is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Xtables targets&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_CHECKSUM is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_DSCP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_HL is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_HMARK is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_LED is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_TARGET_LOG=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_MARK is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_NAT=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_NETMAP is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_TARGET_NFLOG=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_REDIRECT is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_TEE is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_TPROXY is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_TARGET_SECMARK=m&lt;br /&gt;
CONFIG_NETFILTER_XT_TARGET_TCPMSS=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Xtables matches&lt;br /&gt;
#&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_BPF is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_CONNLABEL is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_CPU is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_DCCP=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_DSCP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_ECN is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_ESP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_HELPER is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_HL is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_IPCOMP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_L2TP is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_MAC is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_MARK is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_OSF is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_OWNER is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_POLICY=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_REALM is not set&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_RECENT=m&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_SCTP=m&lt;br /&gt;
CONFIG_NETFILTER_XT_MATCH_STATE=m&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_STRING is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_TIME is not set&lt;br /&gt;
# CONFIG_NETFILTER_XT_MATCH_U32 is not set&lt;br /&gt;
# CONFIG_IP_SET is not set&lt;br /&gt;
# CONFIG_IP_VS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# IP: Netfilter Configuration&lt;br /&gt;
#&lt;br /&gt;
CONFIG_NF_DEFRAG_IPV4=m&lt;br /&gt;
CONFIG_NF_CONNTRACK_IPV4=m&lt;br /&gt;
# CONFIG_NF_SOCKET_IPV4 is not set&lt;br /&gt;
# CONFIG_NF_DUP_IPV4 is not set&lt;br /&gt;
CONFIG_NF_LOG_ARP=m&lt;br /&gt;
CONFIG_NF_LOG_IPV4=m&lt;br /&gt;
CONFIG_NF_REJECT_IPV4=m&lt;br /&gt;
CONFIG_NF_NAT_IPV4=m&lt;br /&gt;
CONFIG_NF_NAT_MASQUERADE_IPV4=m&lt;br /&gt;
# CONFIG_NF_NAT_PPTP is not set&lt;br /&gt;
# CONFIG_NF_NAT_H323 is not set&lt;br /&gt;
CONFIG_IP_NF_IPTABLES=m&lt;br /&gt;
# CONFIG_IP_NF_MATCH_AH is not set&lt;br /&gt;
# CONFIG_IP_NF_MATCH_ECN is not set&lt;br /&gt;
# CONFIG_IP_NF_MATCH_RPFILTER is not set&lt;br /&gt;
# CONFIG_IP_NF_MATCH_TTL is not set&lt;br /&gt;
CONFIG_IP_NF_FILTER=m&lt;br /&gt;
CONFIG_IP_NF_TARGET_REJECT=m&lt;br /&gt;
# CONFIG_IP_NF_TARGET_SYNPROXY is not set&lt;br /&gt;
CONFIG_IP_NF_NAT=m&lt;br /&gt;
CONFIG_IP_NF_TARGET_MASQUERADE=m&lt;br /&gt;
# CONFIG_IP_NF_TARGET_NETMAP is not set&lt;br /&gt;
# CONFIG_IP_NF_TARGET_REDIRECT is not set&lt;br /&gt;
CONFIG_IP_NF_MANGLE=m&lt;br /&gt;
# CONFIG_IP_NF_TARGET_CLUSTERIP is not set&lt;br /&gt;
# CONFIG_IP_NF_TARGET_ECN is not set&lt;br /&gt;
# CONFIG_IP_NF_TARGET_TTL is not set&lt;br /&gt;
# CONFIG_IP_NF_RAW is not set&lt;br /&gt;
# CONFIG_IP_NF_ARPTABLES is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# IPv6: Netfilter Configuration&lt;br /&gt;
#&lt;br /&gt;
CONFIG_NF_DEFRAG_IPV6=m&lt;br /&gt;
CONFIG_NF_CONNTRACK_IPV6=m&lt;br /&gt;
# CONFIG_NF_SOCKET_IPV6 is not set&lt;br /&gt;
# CONFIG_NF_DUP_IPV6 is not set&lt;br /&gt;
CONFIG_NF_REJECT_IPV6=m&lt;br /&gt;
CONFIG_NF_LOG_IPV6=m&lt;br /&gt;
# CONFIG_NF_NAT_IPV6 is not set&lt;br /&gt;
CONFIG_IP6_NF_IPTABLES=m&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_AH is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_EUI64 is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_FRAG is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_OPTS is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_HL is not set&lt;br /&gt;
CONFIG_IP6_NF_MATCH_IPV6HEADER=m&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_MH is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_RPFILTER is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_RT is not set&lt;br /&gt;
# CONFIG_IP6_NF_MATCH_SRH is not set&lt;br /&gt;
# CONFIG_IP6_NF_TARGET_HL is not set&lt;br /&gt;
CONFIG_IP6_NF_FILTER=m&lt;br /&gt;
CONFIG_IP6_NF_TARGET_REJECT=m&lt;br /&gt;
# CONFIG_IP6_NF_TARGET_SYNPROXY is not set&lt;br /&gt;
CONFIG_IP6_NF_MANGLE=m&lt;br /&gt;
# CONFIG_IP6_NF_RAW is not set&lt;br /&gt;
# CONFIG_IP6_NF_NAT is not set&lt;br /&gt;
# CONFIG_BRIDGE_NF_EBTABLES is not set&lt;br /&gt;
# CONFIG_IP_DCCP is not set&lt;br /&gt;
CONFIG_IP_SCTP=m&lt;br /&gt;
# CONFIG_SCTP_DBG_OBJCNT is not set&lt;br /&gt;
CONFIG_SCTP_DEFAULT_COOKIE_HMAC_MD5=y&lt;br /&gt;
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_SHA1 is not set&lt;br /&gt;
# CONFIG_SCTP_DEFAULT_COOKIE_HMAC_NONE is not set&lt;br /&gt;
CONFIG_SCTP_COOKIE_HMAC_MD5=y&lt;br /&gt;
# CONFIG_SCTP_COOKIE_HMAC_SHA1 is not set&lt;br /&gt;
# CONFIG_RDS is not set&lt;br /&gt;
# CONFIG_TIPC is not set&lt;br /&gt;
# CONFIG_ATM is not set&lt;br /&gt;
# CONFIG_L2TP is not set&lt;br /&gt;
CONFIG_STP=m&lt;br /&gt;
CONFIG_BRIDGE=m&lt;br /&gt;
CONFIG_BRIDGE_IGMP_SNOOPING=y&lt;br /&gt;
CONFIG_HAVE_NET_DSA=y&lt;br /&gt;
# CONFIG_NET_DSA is not set&lt;br /&gt;
# CONFIG_VLAN_8021Q is not set&lt;br /&gt;
# CONFIG_DECNET is not set&lt;br /&gt;
CONFIG_LLC=m&lt;br /&gt;
# CONFIG_LLC2 is not set&lt;br /&gt;
# CONFIG_ATALK is not set&lt;br /&gt;
# CONFIG_X25 is not set&lt;br /&gt;
# CONFIG_LAPB is not set&lt;br /&gt;
# CONFIG_PHONET is not set&lt;br /&gt;
# CONFIG_6LOWPAN is not set&lt;br /&gt;
# CONFIG_IEEE802154 is not set&lt;br /&gt;
CONFIG_NET_SCHED=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Queueing/Scheduling&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_NET_SCH_CBQ is not set&lt;br /&gt;
# CONFIG_NET_SCH_HTB is not set&lt;br /&gt;
# CONFIG_NET_SCH_HFSC is not set&lt;br /&gt;
# CONFIG_NET_SCH_PRIO is not set&lt;br /&gt;
# CONFIG_NET_SCH_MULTIQ is not set&lt;br /&gt;
# CONFIG_NET_SCH_RED is not set&lt;br /&gt;
# CONFIG_NET_SCH_SFB is not set&lt;br /&gt;
# CONFIG_NET_SCH_SFQ is not set&lt;br /&gt;
# CONFIG_NET_SCH_TEQL is not set&lt;br /&gt;
# CONFIG_NET_SCH_TBF is not set&lt;br /&gt;
# CONFIG_NET_SCH_CBS is not set&lt;br /&gt;
# CONFIG_NET_SCH_GRED is not set&lt;br /&gt;
# CONFIG_NET_SCH_DSMARK is not set&lt;br /&gt;
# CONFIG_NET_SCH_NETEM is not set&lt;br /&gt;
# CONFIG_NET_SCH_DRR is not set&lt;br /&gt;
# CONFIG_NET_SCH_MQPRIO is not set&lt;br /&gt;
# CONFIG_NET_SCH_CHOKE is not set&lt;br /&gt;
# CONFIG_NET_SCH_QFQ is not set&lt;br /&gt;
# CONFIG_NET_SCH_CODEL is not set&lt;br /&gt;
# CONFIG_NET_SCH_FQ_CODEL is not set&lt;br /&gt;
# CONFIG_NET_SCH_FQ is not set&lt;br /&gt;
# CONFIG_NET_SCH_HHF is not set&lt;br /&gt;
# CONFIG_NET_SCH_PIE is not set&lt;br /&gt;
# CONFIG_NET_SCH_PLUG is not set&lt;br /&gt;
# CONFIG_NET_SCH_DEFAULT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Classification&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_NET_CLS_BASIC is not set&lt;br /&gt;
# CONFIG_NET_CLS_TCINDEX is not set&lt;br /&gt;
# CONFIG_NET_CLS_ROUTE4 is not set&lt;br /&gt;
# CONFIG_NET_CLS_FW is not set&lt;br /&gt;
# CONFIG_NET_CLS_U32 is not set&lt;br /&gt;
# CONFIG_NET_CLS_RSVP is not set&lt;br /&gt;
# CONFIG_NET_CLS_RSVP6 is not set&lt;br /&gt;
# CONFIG_NET_CLS_FLOW is not set&lt;br /&gt;
# CONFIG_NET_CLS_CGROUP is not set&lt;br /&gt;
# CONFIG_NET_CLS_BPF is not set&lt;br /&gt;
# CONFIG_NET_CLS_FLOWER is not set&lt;br /&gt;
# CONFIG_NET_CLS_MATCHALL is not set&lt;br /&gt;
# CONFIG_NET_EMATCH is not set&lt;br /&gt;
# CONFIG_NET_CLS_ACT is not set&lt;br /&gt;
CONFIG_NET_SCH_FIFO=y&lt;br /&gt;
# CONFIG_DCB is not set&lt;br /&gt;
CONFIG_DNS_RESOLVER=y&lt;br /&gt;
# CONFIG_BATMAN_ADV is not set&lt;br /&gt;
# CONFIG_OPENVSWITCH is not set&lt;br /&gt;
# CONFIG_VSOCKETS is not set&lt;br /&gt;
# CONFIG_NETLINK_DIAG is not set&lt;br /&gt;
# CONFIG_MPLS is not set&lt;br /&gt;
# CONFIG_NET_NSH is not set&lt;br /&gt;
# CONFIG_HSR is not set&lt;br /&gt;
# CONFIG_NET_SWITCHDEV is not set&lt;br /&gt;
# CONFIG_NET_L3_MASTER_DEV is not set&lt;br /&gt;
# CONFIG_NET_NCSI is not set&lt;br /&gt;
# CONFIG_CGROUP_NET_PRIO is not set&lt;br /&gt;
# CONFIG_CGROUP_NET_CLASSID is not set&lt;br /&gt;
CONFIG_NET_RX_BUSY_POLL=y&lt;br /&gt;
CONFIG_BQL=y&lt;br /&gt;
# CONFIG_BPF_JIT is not set&lt;br /&gt;
# CONFIG_BPF_STREAM_PARSER is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Network testing&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_NET_PKTGEN is not set&lt;br /&gt;
# CONFIG_HAMRADIO is not set&lt;br /&gt;
# CONFIG_CAN is not set&lt;br /&gt;
# CONFIG_BT is not set&lt;br /&gt;
# CONFIG_AF_RXRPC is not set&lt;br /&gt;
# CONFIG_AF_KCM is not set&lt;br /&gt;
# CONFIG_STREAM_PARSER is not set&lt;br /&gt;
CONFIG_FIB_RULES=y&lt;br /&gt;
CONFIG_WIRELESS=y&lt;br /&gt;
CONFIG_WEXT_CORE=y&lt;br /&gt;
CONFIG_WEXT_PROC=y&lt;br /&gt;
CONFIG_CFG80211=m&lt;br /&gt;
# CONFIG_NL80211_TESTMODE is not set&lt;br /&gt;
# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set&lt;br /&gt;
# CONFIG_CFG80211_CERTIFICATION_ONUS is not set&lt;br /&gt;
CONFIG_CFG80211_REQUIRE_SIGNED_REGDB=y&lt;br /&gt;
CONFIG_CFG80211_USE_KERNEL_REGDB_KEYS=y&lt;br /&gt;
CONFIG_CFG80211_DEFAULT_PS=y&lt;br /&gt;
# CONFIG_CFG80211_DEBUGFS is not set&lt;br /&gt;
CONFIG_CFG80211_CRDA_SUPPORT=y&lt;br /&gt;
CONFIG_CFG80211_WEXT=y&lt;br /&gt;
# CONFIG_LIB80211 is not set&lt;br /&gt;
CONFIG_MAC80211=m&lt;br /&gt;
CONFIG_MAC80211_HAS_RC=y&lt;br /&gt;
CONFIG_MAC80211_RC_MINSTREL=y&lt;br /&gt;
CONFIG_MAC80211_RC_MINSTREL_HT=y&lt;br /&gt;
# CONFIG_MAC80211_RC_MINSTREL_VHT is not set&lt;br /&gt;
CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y&lt;br /&gt;
CONFIG_MAC80211_RC_DEFAULT=&amp;quot;minstrel_ht&amp;quot;&lt;br /&gt;
CONFIG_MAC80211_MESH=y&lt;br /&gt;
CONFIG_MAC80211_LEDS=y&lt;br /&gt;
# CONFIG_MAC80211_DEBUGFS is not set&lt;br /&gt;
# CONFIG_MAC80211_MESSAGE_TRACING is not set&lt;br /&gt;
# CONFIG_MAC80211_DEBUG_MENU is not set&lt;br /&gt;
CONFIG_MAC80211_STA_HASH_MAX_SIZE=0&lt;br /&gt;
# CONFIG_WIMAX is not set&lt;br /&gt;
CONFIG_RFKILL=m&lt;br /&gt;
CONFIG_RFKILL_LEDS=y&lt;br /&gt;
# CONFIG_RFKILL_INPUT is not set&lt;br /&gt;
# CONFIG_RFKILL_GPIO is not set&lt;br /&gt;
# CONFIG_NET_9P is not set&lt;br /&gt;
# CONFIG_CAIF is not set&lt;br /&gt;
# CONFIG_CEPH_LIB is not set&lt;br /&gt;
# CONFIG_NFC is not set&lt;br /&gt;
# CONFIG_PSAMPLE is not set&lt;br /&gt;
# CONFIG_NET_IFE is not set&lt;br /&gt;
# CONFIG_LWTUNNEL is not set&lt;br /&gt;
CONFIG_DST_CACHE=y&lt;br /&gt;
CONFIG_GRO_CELLS=y&lt;br /&gt;
# CONFIG_NET_DEVLINK is not set&lt;br /&gt;
CONFIG_MAY_USE_DEVLINK=y&lt;br /&gt;
CONFIG_HAVE_EBPF_JIT=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Device Drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Generic Driver Options&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_UEVENT_HELPER is not set&lt;br /&gt;
CONFIG_DEVTMPFS=y&lt;br /&gt;
CONFIG_DEVTMPFS_MOUNT=y&lt;br /&gt;
CONFIG_STANDALONE=y&lt;br /&gt;
CONFIG_PREVENT_FIRMWARE_BUILD=y&lt;br /&gt;
CONFIG_FW_LOADER=y&lt;br /&gt;
CONFIG_EXTRA_FIRMWARE=&amp;quot;&amp;quot;&lt;br /&gt;
# CONFIG_FW_LOADER_USER_HELPER_FALLBACK is not set&lt;br /&gt;
CONFIG_ALLOW_DEV_COREDUMP=y&lt;br /&gt;
# CONFIG_DEBUG_DRIVER is not set&lt;br /&gt;
# CONFIG_DEBUG_DEVRES is not set&lt;br /&gt;
# CONFIG_DEBUG_TEST_DRIVER_REMOVE is not set&lt;br /&gt;
# CONFIG_TEST_ASYNC_DRIVER_PROBE is not set&lt;br /&gt;
# CONFIG_SYS_HYPERVISOR is not set&lt;br /&gt;
# CONFIG_GENERIC_CPU_DEVICES is not set&lt;br /&gt;
CONFIG_GENERIC_CPU_AUTOPROBE=y&lt;br /&gt;
CONFIG_SOC_BUS=y&lt;br /&gt;
CONFIG_REGMAP=y&lt;br /&gt;
CONFIG_REGMAP_I2C=y&lt;br /&gt;
CONFIG_REGMAP_SPI=y&lt;br /&gt;
CONFIG_REGMAP_MMIO=y&lt;br /&gt;
CONFIG_REGMAP_IRQ=y&lt;br /&gt;
CONFIG_DMA_SHARED_BUFFER=y&lt;br /&gt;
# CONFIG_DMA_FENCE_TRACE is not set&lt;br /&gt;
CONFIG_DMA_CMA=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Default contiguous memory area size:&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CMA_SIZE_MBYTES=64&lt;br /&gt;
CONFIG_CMA_SIZE_SEL_MBYTES=y&lt;br /&gt;
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set&lt;br /&gt;
# CONFIG_CMA_SIZE_SEL_MIN is not set&lt;br /&gt;
# CONFIG_CMA_SIZE_SEL_MAX is not set&lt;br /&gt;
CONFIG_CMA_ALIGNMENT=9&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Bus devices&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ARM_CCI400_PMU is not set&lt;br /&gt;
# CONFIG_ARM_CCI5xx_PMU is not set&lt;br /&gt;
# CONFIG_ARM_CCN is not set&lt;br /&gt;
# CONFIG_BRCMSTB_GISB_ARB is not set&lt;br /&gt;
CONFIG_OMAP_INTERCONNECT=y&lt;br /&gt;
CONFIG_OMAP_OCP2SCP=y&lt;br /&gt;
# CONFIG_SIMPLE_PM_BUS is not set&lt;br /&gt;
CONFIG_TI_SYSC=y&lt;br /&gt;
# CONFIG_VEXPRESS_CONFIG is not set&lt;br /&gt;
# CONFIG_CONNECTOR is not set&lt;br /&gt;
CONFIG_MTD=y&lt;br /&gt;
# CONFIG_MTD_TESTS is not set&lt;br /&gt;
# CONFIG_MTD_REDBOOT_PARTS is not set&lt;br /&gt;
# CONFIG_MTD_CMDLINE_PARTS is not set&lt;br /&gt;
# CONFIG_MTD_AFS_PARTS is not set&lt;br /&gt;
# CONFIG_MTD_OF_PARTS is not set&lt;br /&gt;
# CONFIG_MTD_AR7_PARTS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Partition parsers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# User Modules And Translation Layers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_MTD_BLKDEVS=y&lt;br /&gt;
CONFIG_MTD_BLOCK=y&lt;br /&gt;
# CONFIG_FTL is not set&lt;br /&gt;
# CONFIG_NFTL is not set&lt;br /&gt;
# CONFIG_INFTL is not set&lt;br /&gt;
# CONFIG_RFD_FTL is not set&lt;br /&gt;
# CONFIG_SSFDC is not set&lt;br /&gt;
# CONFIG_SM_FTL is not set&lt;br /&gt;
# CONFIG_MTD_OOPS is not set&lt;br /&gt;
# CONFIG_MTD_SWAP is not set&lt;br /&gt;
# CONFIG_MTD_PARTITIONED_MASTER is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# RAM/ROM/Flash chip drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MTD_CFI is not set&lt;br /&gt;
# CONFIG_MTD_JEDECPROBE is not set&lt;br /&gt;
CONFIG_MTD_MAP_BANK_WIDTH_1=y&lt;br /&gt;
CONFIG_MTD_MAP_BANK_WIDTH_2=y&lt;br /&gt;
CONFIG_MTD_MAP_BANK_WIDTH_4=y&lt;br /&gt;
# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set&lt;br /&gt;
# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set&lt;br /&gt;
# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set&lt;br /&gt;
CONFIG_MTD_CFI_I1=y&lt;br /&gt;
CONFIG_MTD_CFI_I2=y&lt;br /&gt;
# CONFIG_MTD_CFI_I4 is not set&lt;br /&gt;
# CONFIG_MTD_CFI_I8 is not set&lt;br /&gt;
# CONFIG_MTD_RAM is not set&lt;br /&gt;
# CONFIG_MTD_ROM is not set&lt;br /&gt;
# CONFIG_MTD_ABSENT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Mapping drivers for chip access&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MTD_COMPLEX_MAPPINGS is not set&lt;br /&gt;
# CONFIG_MTD_PLATRAM is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Self-contained MTD device drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MTD_DATAFLASH is not set&lt;br /&gt;
# CONFIG_MTD_MCHP23K256 is not set&lt;br /&gt;
# CONFIG_MTD_SST25L is not set&lt;br /&gt;
# CONFIG_MTD_SLRAM is not set&lt;br /&gt;
# CONFIG_MTD_PHRAM is not set&lt;br /&gt;
# CONFIG_MTD_MTDRAM is not set&lt;br /&gt;
# CONFIG_MTD_BLOCK2MTD is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Disk-On-Chip Device Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MTD_DOCG3 is not set&lt;br /&gt;
CONFIG_MTD_NAND_ECC=y&lt;br /&gt;
# CONFIG_MTD_NAND_ECC_SMC is not set&lt;br /&gt;
CONFIG_MTD_NAND=y&lt;br /&gt;
# CONFIG_MTD_NAND_ECC_BCH is not set&lt;br /&gt;
# CONFIG_MTD_SM_COMMON is not set&lt;br /&gt;
# CONFIG_MTD_NAND_DENALI_DT is not set&lt;br /&gt;
# CONFIG_MTD_NAND_GPIO is not set&lt;br /&gt;
CONFIG_MTD_NAND_OMAP2=y&lt;br /&gt;
CONFIG_MTD_NAND_OMAP_BCH=y&lt;br /&gt;
CONFIG_MTD_NAND_OMAP_BCH_BUILD=y&lt;br /&gt;
# CONFIG_MTD_NAND_DISKONCHIP is not set&lt;br /&gt;
# CONFIG_MTD_NAND_DOCG4 is not set&lt;br /&gt;
# CONFIG_MTD_NAND_NANDSIM is not set&lt;br /&gt;
# CONFIG_MTD_NAND_BRCMNAND is not set&lt;br /&gt;
# CONFIG_MTD_NAND_PLATFORM is not set&lt;br /&gt;
# CONFIG_MTD_ONENAND is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# LPDDR &amp;amp; LPDDR2 PCM memory drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MTD_LPDDR is not set&lt;br /&gt;
# CONFIG_MTD_LPDDR2_NVM is not set&lt;br /&gt;
# CONFIG_MTD_SPI_NOR is not set&lt;br /&gt;
CONFIG_MTD_UBI=y&lt;br /&gt;
CONFIG_MTD_UBI_WL_THRESHOLD=4096&lt;br /&gt;
CONFIG_MTD_UBI_BEB_LIMIT=2&lt;br /&gt;
# CONFIG_MTD_UBI_FASTMAP is not set&lt;br /&gt;
# CONFIG_MTD_UBI_GLUEBI is not set&lt;br /&gt;
# CONFIG_MTD_UBI_BLOCK is not set&lt;br /&gt;
CONFIG_DTC=y&lt;br /&gt;
CONFIG_OF=y&lt;br /&gt;
# CONFIG_OF_UNITTEST is not set&lt;br /&gt;
CONFIG_OF_FLATTREE=y&lt;br /&gt;
CONFIG_OF_EARLY_FLATTREE=y&lt;br /&gt;
CONFIG_OF_KOBJ=y&lt;br /&gt;
CONFIG_OF_ADDRESS=y&lt;br /&gt;
CONFIG_OF_IRQ=y&lt;br /&gt;
CONFIG_OF_NET=y&lt;br /&gt;
CONFIG_OF_MDIO=m&lt;br /&gt;
CONFIG_OF_RESERVED_MEM=y&lt;br /&gt;
# CONFIG_OF_OVERLAY is not set&lt;br /&gt;
CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y&lt;br /&gt;
# CONFIG_PARPORT is not set&lt;br /&gt;
CONFIG_BLK_DEV=y&lt;br /&gt;
# CONFIG_BLK_DEV_NULL_BLK is not set&lt;br /&gt;
CONFIG_CDROM=m&lt;br /&gt;
# CONFIG_BLK_DEV_COW_COMMON is not set&lt;br /&gt;
CONFIG_BLK_DEV_LOOP=y&lt;br /&gt;
CONFIG_BLK_DEV_LOOP_MIN_COUNT=8&lt;br /&gt;
# CONFIG_BLK_DEV_CRYPTOLOOP is not set&lt;br /&gt;
# CONFIG_BLK_DEV_DRBD is not set&lt;br /&gt;
# CONFIG_BLK_DEV_NBD is not set&lt;br /&gt;
# CONFIG_BLK_DEV_RAM is not set&lt;br /&gt;
# CONFIG_CDROM_PKTCDVD is not set&lt;br /&gt;
# CONFIG_ATA_OVER_ETH is not set&lt;br /&gt;
# CONFIG_BLK_DEV_RBD is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# NVME Support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_NVME_FC is not set&lt;br /&gt;
# CONFIG_NVME_TARGET is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Misc devices&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SENSORS_LIS3LV02D is not set&lt;br /&gt;
# CONFIG_AD525X_DPOT is not set&lt;br /&gt;
# CONFIG_DUMMY_IRQ is not set&lt;br /&gt;
# CONFIG_ICS932S401 is not set&lt;br /&gt;
# CONFIG_ENCLOSURE_SERVICES is not set&lt;br /&gt;
# CONFIG_APDS9802ALS is not set&lt;br /&gt;
# CONFIG_ISL29003 is not set&lt;br /&gt;
# CONFIG_ISL29020 is not set&lt;br /&gt;
# CONFIG_SENSORS_TSL2550 is not set&lt;br /&gt;
# CONFIG_SENSORS_BH1770 is not set&lt;br /&gt;
# CONFIG_SENSORS_APDS990X is not set&lt;br /&gt;
# CONFIG_HMC6352 is not set&lt;br /&gt;
# CONFIG_DS1682 is not set&lt;br /&gt;
# CONFIG_USB_SWITCH_FSA9480 is not set&lt;br /&gt;
# CONFIG_LATTICE_ECP3_CONFIG is not set&lt;br /&gt;
# CONFIG_TXS02612 is not set&lt;br /&gt;
# CONFIG_SRAM is not set&lt;br /&gt;
# CONFIG_MISC_RTSX is not set&lt;br /&gt;
# CONFIG_WWAN_ON_OFF is not set&lt;br /&gt;
# CONFIG_C2PORT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# EEPROM support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_EEPROM_AT24 is not set&lt;br /&gt;
# CONFIG_EEPROM_AT25 is not set&lt;br /&gt;
# CONFIG_EEPROM_LEGACY is not set&lt;br /&gt;
# CONFIG_EEPROM_MAX6875 is not set&lt;br /&gt;
CONFIG_EEPROM_93CX6=y&lt;br /&gt;
# CONFIG_EEPROM_93XX46 is not set&lt;br /&gt;
# CONFIG_EEPROM_IDT_89HPESX is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Texas Instruments shared transport line discipline&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_TI_ST is not set&lt;br /&gt;
# CONFIG_SENSORS_LIS3_SPI is not set&lt;br /&gt;
# CONFIG_SENSORS_LIS3_I2C is not set&lt;br /&gt;
# CONFIG_ALTERA_STAPL is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Intel MIC &amp;amp; related support&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Intel MIC Bus Driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SCIF Bus Driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# VOP Bus Driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Intel MIC Host Driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Intel MIC Card Driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SCIF Driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Intel MIC Coprocessor State Management (COSM) Drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# VOP Driver&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ECHO is not set&lt;br /&gt;
# CONFIG_CXL_BASE is not set&lt;br /&gt;
# CONFIG_CXL_AFU_DRIVER_OPS is not set&lt;br /&gt;
# CONFIG_CXL_LIB is not set&lt;br /&gt;
# CONFIG_OCXL_BASE is not set&lt;br /&gt;
# CONFIG_MISC_RTSX_USB is not set&lt;br /&gt;
# CONFIG_W2CBW003 is not set&lt;br /&gt;
# CONFIG_TRS3386 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SCSI device support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SCSI_MOD=y&lt;br /&gt;
# CONFIG_RAID_ATTRS is not set&lt;br /&gt;
CONFIG_SCSI=y&lt;br /&gt;
CONFIG_SCSI_DMA=y&lt;br /&gt;
# CONFIG_SCSI_NETLINK is not set&lt;br /&gt;
# CONFIG_SCSI_MQ_DEFAULT is not set&lt;br /&gt;
CONFIG_SCSI_PROC_FS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SCSI support type (disk, tape, CD-ROM)&lt;br /&gt;
#&lt;br /&gt;
CONFIG_BLK_DEV_SD=y&lt;br /&gt;
# CONFIG_CHR_DEV_ST is not set&lt;br /&gt;
# CONFIG_CHR_DEV_OSST is not set&lt;br /&gt;
CONFIG_BLK_DEV_SR=m&lt;br /&gt;
CONFIG_BLK_DEV_SR_VENDOR=y&lt;br /&gt;
CONFIG_CHR_DEV_SG=m&lt;br /&gt;
# CONFIG_CHR_DEV_SCH is not set&lt;br /&gt;
# CONFIG_SCSI_CONSTANTS is not set&lt;br /&gt;
# CONFIG_SCSI_LOGGING is not set&lt;br /&gt;
# CONFIG_SCSI_SCAN_ASYNC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SCSI Transports&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SCSI_SPI_ATTRS=y&lt;br /&gt;
# CONFIG_SCSI_FC_ATTRS is not set&lt;br /&gt;
CONFIG_SCSI_ISCSI_ATTRS=y&lt;br /&gt;
# CONFIG_SCSI_SAS_ATTRS is not set&lt;br /&gt;
# CONFIG_SCSI_SAS_LIBSAS is not set&lt;br /&gt;
# CONFIG_SCSI_SRP_ATTRS is not set&lt;br /&gt;
# CONFIG_SCSI_LOWLEVEL is not set&lt;br /&gt;
# CONFIG_SCSI_DH is not set&lt;br /&gt;
# CONFIG_SCSI_OSD_INITIATOR is not set&lt;br /&gt;
# CONFIG_ATA is not set&lt;br /&gt;
CONFIG_MD=y&lt;br /&gt;
# CONFIG_BLK_DEV_MD is not set&lt;br /&gt;
# CONFIG_BCACHE is not set&lt;br /&gt;
CONFIG_BLK_DEV_DM_BUILTIN=y&lt;br /&gt;
CONFIG_BLK_DEV_DM=m&lt;br /&gt;
# CONFIG_DM_MQ_DEFAULT is not set&lt;br /&gt;
# CONFIG_DM_DEBUG is not set&lt;br /&gt;
# CONFIG_DM_UNSTRIPED is not set&lt;br /&gt;
CONFIG_DM_CRYPT=m&lt;br /&gt;
# CONFIG_DM_SNAPSHOT is not set&lt;br /&gt;
# CONFIG_DM_THIN_PROVISIONING is not set&lt;br /&gt;
# CONFIG_DM_CACHE is not set&lt;br /&gt;
# CONFIG_DM_ERA is not set&lt;br /&gt;
# CONFIG_DM_MIRROR is not set&lt;br /&gt;
# CONFIG_DM_RAID is not set&lt;br /&gt;
# CONFIG_DM_ZERO is not set&lt;br /&gt;
# CONFIG_DM_MULTIPATH is not set&lt;br /&gt;
# CONFIG_DM_DELAY is not set&lt;br /&gt;
# CONFIG_DM_UEVENT is not set&lt;br /&gt;
# CONFIG_DM_FLAKEY is not set&lt;br /&gt;
# CONFIG_DM_VERITY is not set&lt;br /&gt;
# CONFIG_DM_SWITCH is not set&lt;br /&gt;
# CONFIG_DM_LOG_WRITES is not set&lt;br /&gt;
# CONFIG_DM_INTEGRITY is not set&lt;br /&gt;
# CONFIG_TARGET_CORE is not set&lt;br /&gt;
CONFIG_NETDEVICES=y&lt;br /&gt;
CONFIG_MII=m&lt;br /&gt;
CONFIG_NET_CORE=y&lt;br /&gt;
# CONFIG_BONDING is not set&lt;br /&gt;
# CONFIG_DUMMY is not set&lt;br /&gt;
# CONFIG_EQUALIZER is not set&lt;br /&gt;
# CONFIG_NET_TEAM is not set&lt;br /&gt;
# CONFIG_MACVLAN is not set&lt;br /&gt;
# CONFIG_VXLAN is not set&lt;br /&gt;
# CONFIG_MACSEC is not set&lt;br /&gt;
# CONFIG_NETCONSOLE is not set&lt;br /&gt;
# CONFIG_NETPOLL is not set&lt;br /&gt;
# CONFIG_NET_POLL_CONTROLLER is not set&lt;br /&gt;
CONFIG_TUN=m&lt;br /&gt;
# CONFIG_TUN_VNET_CROSS_LE is not set&lt;br /&gt;
# CONFIG_VETH is not set&lt;br /&gt;
# CONFIG_NLMON is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CAIF transport drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Distributed Switch Architecture drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_ETHERNET=y&lt;br /&gt;
# CONFIG_NET_VENDOR_ALACRITECH is not set&lt;br /&gt;
# CONFIG_ALTERA_TSE is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_AMAZON is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_AQUANTIA is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_ARC is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_AURORA is not set&lt;br /&gt;
# CONFIG_NET_CADENCE is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_BROADCOM is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_CIRRUS is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_CORTINA is not set&lt;br /&gt;
# CONFIG_DM9000 is not set&lt;br /&gt;
# CONFIG_DNET is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_EZCHIP is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_FARADAY is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_HISILICON is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_HUAWEI is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_INTEL is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_MARVELL is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_MELLANOX is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_MICREL is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_MICROCHIP is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_NATSEMI is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_NETRONOME is not set&lt;br /&gt;
# CONFIG_ETHOC is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_QUALCOMM is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_RENESAS is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_ROCKER is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_SAMSUNG is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_SEEQ is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_SOLARFLARE is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_SMSC is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_SOCIONEXT is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_STMICRO is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_TI is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_VIA is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_WIZNET is not set&lt;br /&gt;
# CONFIG_NET_VENDOR_SYNOPSYS is not set&lt;br /&gt;
CONFIG_MDIO_DEVICE=m&lt;br /&gt;
CONFIG_MDIO_BUS=m&lt;br /&gt;
# CONFIG_MDIO_BCM_UNIMAC is not set&lt;br /&gt;
# CONFIG_MDIO_BITBANG is not set&lt;br /&gt;
# CONFIG_MDIO_BUS_MUX_GPIO is not set&lt;br /&gt;
# CONFIG_MDIO_BUS_MUX_MMIOREG is not set&lt;br /&gt;
# CONFIG_MDIO_HISI_FEMAC is not set&lt;br /&gt;
CONFIG_PHYLIB=m&lt;br /&gt;
CONFIG_SWPHY=y&lt;br /&gt;
# CONFIG_LED_TRIGGER_PHY is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# MII PHY device drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AMD_PHY is not set&lt;br /&gt;
# CONFIG_AQUANTIA_PHY is not set&lt;br /&gt;
# CONFIG_AT803X_PHY is not set&lt;br /&gt;
# CONFIG_BCM7XXX_PHY is not set&lt;br /&gt;
# CONFIG_BCM87XX_PHY is not set&lt;br /&gt;
# CONFIG_BROADCOM_PHY is not set&lt;br /&gt;
# CONFIG_CICADA_PHY is not set&lt;br /&gt;
# CONFIG_CORTINA_PHY is not set&lt;br /&gt;
# CONFIG_DAVICOM_PHY is not set&lt;br /&gt;
# CONFIG_DP83822_PHY is not set&lt;br /&gt;
# CONFIG_DP83848_PHY is not set&lt;br /&gt;
# CONFIG_DP83867_PHY is not set&lt;br /&gt;
CONFIG_FIXED_PHY=m&lt;br /&gt;
# CONFIG_ICPLUS_PHY is not set&lt;br /&gt;
# CONFIG_INTEL_XWAY_PHY is not set&lt;br /&gt;
# CONFIG_LSI_ET1011C_PHY is not set&lt;br /&gt;
# CONFIG_LXT_PHY is not set&lt;br /&gt;
# CONFIG_MARVELL_PHY is not set&lt;br /&gt;
# CONFIG_MARVELL_10G_PHY is not set&lt;br /&gt;
# CONFIG_MICREL_PHY is not set&lt;br /&gt;
# CONFIG_MICROCHIP_PHY is not set&lt;br /&gt;
# CONFIG_MICROSEMI_PHY is not set&lt;br /&gt;
# CONFIG_NATIONAL_PHY is not set&lt;br /&gt;
# CONFIG_QSEMI_PHY is not set&lt;br /&gt;
# CONFIG_REALTEK_PHY is not set&lt;br /&gt;
# CONFIG_RENESAS_PHY is not set&lt;br /&gt;
# CONFIG_ROCKCHIP_PHY is not set&lt;br /&gt;
# CONFIG_SMSC_PHY is not set&lt;br /&gt;
# CONFIG_STE10XP is not set&lt;br /&gt;
# CONFIG_TERANETICS_PHY is not set&lt;br /&gt;
# CONFIG_VITESSE_PHY is not set&lt;br /&gt;
# CONFIG_XILINX_GMII2RGMII is not set&lt;br /&gt;
# CONFIG_MICREL_KS8995MA is not set&lt;br /&gt;
# CONFIG_PPP is not set&lt;br /&gt;
# CONFIG_SLIP is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Host-side USB support is needed for USB Network Adapter support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_NET_DRIVERS=m&lt;br /&gt;
# CONFIG_USB_CATC is not set&lt;br /&gt;
# CONFIG_USB_KAWETH is not set&lt;br /&gt;
# CONFIG_USB_PEGASUS is not set&lt;br /&gt;
# CONFIG_USB_RTL8150 is not set&lt;br /&gt;
# CONFIG_USB_RTL8152 is not set&lt;br /&gt;
# CONFIG_USB_LAN78XX is not set&lt;br /&gt;
CONFIG_USB_USBNET=m&lt;br /&gt;
# CONFIG_USB_NET_AX8817X is not set&lt;br /&gt;
# CONFIG_USB_NET_AX88179_178A is not set&lt;br /&gt;
CONFIG_USB_NET_CDCETHER=m&lt;br /&gt;
CONFIG_USB_NET_CDC_EEM=m&lt;br /&gt;
# CONFIG_USB_NET_CDC_NCM is not set&lt;br /&gt;
# CONFIG_USB_NET_HUAWEI_CDC_NCM is not set&lt;br /&gt;
# CONFIG_USB_NET_CDC_MBIM is not set&lt;br /&gt;
# CONFIG_USB_NET_DM9601 is not set&lt;br /&gt;
# CONFIG_USB_NET_SR9700 is not set&lt;br /&gt;
# CONFIG_USB_NET_SR9800 is not set&lt;br /&gt;
# CONFIG_USB_NET_SMSC75XX is not set&lt;br /&gt;
# CONFIG_USB_NET_SMSC95XX is not set&lt;br /&gt;
# CONFIG_USB_NET_GL620A is not set&lt;br /&gt;
# CONFIG_USB_NET_NET1080 is not set&lt;br /&gt;
# CONFIG_USB_NET_PLUSB is not set&lt;br /&gt;
# CONFIG_USB_NET_MCS7830 is not set&lt;br /&gt;
CONFIG_USB_NET_RNDIS_HOST=m&lt;br /&gt;
CONFIG_USB_NET_CDC_SUBSET_ENABLE=m&lt;br /&gt;
CONFIG_USB_NET_CDC_SUBSET=m&lt;br /&gt;
# CONFIG_USB_ALI_M5632 is not set&lt;br /&gt;
# CONFIG_USB_AN2720 is not set&lt;br /&gt;
CONFIG_USB_BELKIN=y&lt;br /&gt;
CONFIG_USB_ARMLINUX=y&lt;br /&gt;
# CONFIG_USB_EPSON2888 is not set&lt;br /&gt;
# CONFIG_USB_KC2190 is not set&lt;br /&gt;
# CONFIG_USB_NET_ZAURUS is not set&lt;br /&gt;
# CONFIG_USB_NET_CX82310_ETH is not set&lt;br /&gt;
# CONFIG_USB_NET_KALMIA is not set&lt;br /&gt;
# CONFIG_USB_NET_QMI_WWAN is not set&lt;br /&gt;
# CONFIG_USB_HSO is not set&lt;br /&gt;
# CONFIG_USB_NET_INT51X1 is not set&lt;br /&gt;
# CONFIG_USB_IPHETH is not set&lt;br /&gt;
# CONFIG_USB_SIERRA_NET is not set&lt;br /&gt;
# CONFIG_USB_VL600 is not set&lt;br /&gt;
# CONFIG_USB_NET_CH9200 is not set&lt;br /&gt;
CONFIG_WLAN=y&lt;br /&gt;
# CONFIG_WIRELESS_WDS is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_ADMTEK is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_ATH is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_ATMEL is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_BROADCOM is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_CISCO is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_INTEL is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_INTERSIL is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_MARVELL is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_MEDIATEK is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_RALINK is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_REALTEK is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_RSI is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_ST is not set&lt;br /&gt;
CONFIG_WLAN_VENDOR_TI=y&lt;br /&gt;
CONFIG_WL1251=m&lt;br /&gt;
# CONFIG_WL1251_SPI is not set&lt;br /&gt;
CONFIG_WL1251_SDIO=m&lt;br /&gt;
# CONFIG_WL12XX is not set&lt;br /&gt;
# CONFIG_WL18XX is not set&lt;br /&gt;
# CONFIG_WLCORE is not set&lt;br /&gt;
# CONFIG_WILINK_PLATFORM_DATA is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_ZYDAS is not set&lt;br /&gt;
# CONFIG_WLAN_VENDOR_QUANTENNA is not set&lt;br /&gt;
# CONFIG_MAC80211_HWSIM is not set&lt;br /&gt;
# CONFIG_USB_NET_RNDIS_WLAN is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Enable WiMAX (Networking options) to see the WiMAX drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_WAN is not set&lt;br /&gt;
# CONFIG_NETDEVSIM is not set&lt;br /&gt;
# CONFIG_ISDN is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Input device support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_INPUT=y&lt;br /&gt;
CONFIG_INPUT_LEDS=m&lt;br /&gt;
# CONFIG_INPUT_FF_MEMLESS is not set&lt;br /&gt;
# CONFIG_INPUT_POLLDEV is not set&lt;br /&gt;
# CONFIG_INPUT_SPARSEKMAP is not set&lt;br /&gt;
CONFIG_INPUT_MATRIXKMAP=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Userland interfaces&lt;br /&gt;
#&lt;br /&gt;
CONFIG_INPUT_MOUSEDEV=m&lt;br /&gt;
# CONFIG_INPUT_MOUSEDEV_PSAUX is not set&lt;br /&gt;
CONFIG_INPUT_MOUSEDEV_SCREEN_X=800&lt;br /&gt;
CONFIG_INPUT_MOUSEDEV_SCREEN_Y=480&lt;br /&gt;
CONFIG_INPUT_JOYDEV=m&lt;br /&gt;
CONFIG_INPUT_EVDEV=m&lt;br /&gt;
# CONFIG_INPUT_EVBUG is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Input Device Drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_INPUT_KEYBOARD=y&lt;br /&gt;
# CONFIG_KEYBOARD_ADC is not set&lt;br /&gt;
# CONFIG_KEYBOARD_ADP5588 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_ADP5589 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_ATKBD is not set&lt;br /&gt;
# CONFIG_KEYBOARD_QT1070 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_QT2160 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_DLINK_DIR685 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_LKKBD is not set&lt;br /&gt;
CONFIG_KEYBOARD_GPIO=m&lt;br /&gt;
# CONFIG_KEYBOARD_GPIO_POLLED is not set&lt;br /&gt;
# CONFIG_KEYBOARD_TCA6416 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_TCA8418 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_MATRIX is not set&lt;br /&gt;
# CONFIG_KEYBOARD_LM8323 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_LM8333 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_MAX7359 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_MCS is not set&lt;br /&gt;
# CONFIG_KEYBOARD_MPR121 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_NEWTON is not set&lt;br /&gt;
# CONFIG_KEYBOARD_OPENCORES is not set&lt;br /&gt;
# CONFIG_KEYBOARD_SAMSUNG is not set&lt;br /&gt;
# CONFIG_KEYBOARD_STOWAWAY is not set&lt;br /&gt;
# CONFIG_KEYBOARD_SUNKBD is not set&lt;br /&gt;
# CONFIG_KEYBOARD_OMAP4 is not set&lt;br /&gt;
# CONFIG_KEYBOARD_TM2_TOUCHKEY is not set&lt;br /&gt;
CONFIG_KEYBOARD_TWL4030=m&lt;br /&gt;
# CONFIG_KEYBOARD_XTKBD is not set&lt;br /&gt;
# CONFIG_KEYBOARD_CAP11XX is not set&lt;br /&gt;
# CONFIG_KEYBOARD_BCM is not set&lt;br /&gt;
CONFIG_INPUT_MOUSE=y&lt;br /&gt;
# CONFIG_MOUSE_PS2 is not set&lt;br /&gt;
# CONFIG_MOUSE_SERIAL is not set&lt;br /&gt;
# CONFIG_MOUSE_APPLETOUCH is not set&lt;br /&gt;
# CONFIG_MOUSE_BCM5974 is not set&lt;br /&gt;
# CONFIG_MOUSE_CYAPA is not set&lt;br /&gt;
# CONFIG_MOUSE_ELAN_I2C is not set&lt;br /&gt;
# CONFIG_MOUSE_VSXXXAA is not set&lt;br /&gt;
# CONFIG_MOUSE_GPIO is not set&lt;br /&gt;
# CONFIG_MOUSE_SYNAPTICS_I2C is not set&lt;br /&gt;
# CONFIG_MOUSE_SYNAPTICS_USB is not set&lt;br /&gt;
CONFIG_INPUT_JOYSTICK=y&lt;br /&gt;
# CONFIG_JOYSTICK_ANALOG is not set&lt;br /&gt;
# CONFIG_JOYSTICK_A3D is not set&lt;br /&gt;
# CONFIG_JOYSTICK_ADI is not set&lt;br /&gt;
# CONFIG_JOYSTICK_COBRA is not set&lt;br /&gt;
# CONFIG_JOYSTICK_GF2K is not set&lt;br /&gt;
# CONFIG_JOYSTICK_GRIP is not set&lt;br /&gt;
# CONFIG_JOYSTICK_GRIP_MP is not set&lt;br /&gt;
# CONFIG_JOYSTICK_GUILLEMOT is not set&lt;br /&gt;
# CONFIG_JOYSTICK_INTERACT is not set&lt;br /&gt;
# CONFIG_JOYSTICK_SIDEWINDER is not set&lt;br /&gt;
# CONFIG_JOYSTICK_TMDC is not set&lt;br /&gt;
# CONFIG_JOYSTICK_IFORCE is not set&lt;br /&gt;
# CONFIG_JOYSTICK_WARRIOR is not set&lt;br /&gt;
# CONFIG_JOYSTICK_MAGELLAN is not set&lt;br /&gt;
# CONFIG_JOYSTICK_SPACEORB is not set&lt;br /&gt;
# CONFIG_JOYSTICK_SPACEBALL is not set&lt;br /&gt;
# CONFIG_JOYSTICK_STINGER is not set&lt;br /&gt;
# CONFIG_JOYSTICK_TWIDJOY is not set&lt;br /&gt;
# CONFIG_JOYSTICK_ZHENHUA is not set&lt;br /&gt;
# CONFIG_JOYSTICK_AS5011 is not set&lt;br /&gt;
# CONFIG_JOYSTICK_AS5013 is not set&lt;br /&gt;
# CONFIG_JOYSTICK_JOYDUMP is not set&lt;br /&gt;
# CONFIG_JOYSTICK_XPAD is not set&lt;br /&gt;
# CONFIG_JOYSTICK_PSXPAD_SPI is not set&lt;br /&gt;
# CONFIG_INPUT_TABLET is not set&lt;br /&gt;
CONFIG_INPUT_TOUCHSCREEN=y&lt;br /&gt;
CONFIG_TOUCHSCREEN_PROPERTIES=y&lt;br /&gt;
CONFIG_TOUCHSCREEN_ADS7846=m&lt;br /&gt;
# CONFIG_TOUCHSCREEN_AD7877 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_AD7879 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_AR1021_I2C is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_BU21013 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_CHIPONE_ICN8318 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_CYTTSP_CORE is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_CYTTSP4_CORE is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_DYNAPRO is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_EETI is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_EGALAX is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_EGALAX_SERIAL is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_EXC3000 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_FUJITSU is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_GOODIX is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_HIDEEP is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ILI210X is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_S6SY761 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_GUNZE is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_EKTF2127 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ELAN is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ELO is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_WACOM_I2C is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_MAX11801 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_MCS5000 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_MMS114 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_MELFAS_MIP4 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_MTOUCH is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_IMX6UL_TSC is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_INEXIO is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_MK712 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_PENMOUNT is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_EDT_FT5X06 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TOUCHWIN is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_PIXCIR is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_WDT87XX_I2C is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TSC_SERIO is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TSC2004 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TSC2005 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TSC2007 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_RM_TS is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_SILEAD is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_SIS_I2C is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ST1232 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_STMFTS is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_SURFACE3_SPI is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_SX8654 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_TPS6507X is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ZET6223 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ZFORCE is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_ROHM_BU21023 is not set&lt;br /&gt;
# CONFIG_TOUCHSCREEN_CRTOUCH_MT is not set&lt;br /&gt;
CONFIG_INPUT_MISC=y&lt;br /&gt;
# CONFIG_INPUT_AD714X is not set&lt;br /&gt;
# CONFIG_INPUT_ATMEL_CAPTOUCH is not set&lt;br /&gt;
# CONFIG_INPUT_BMA150 is not set&lt;br /&gt;
# CONFIG_INPUT_E3X0_BUTTON is not set&lt;br /&gt;
# CONFIG_INPUT_MMA8450 is not set&lt;br /&gt;
# CONFIG_INPUT_GP2A is not set&lt;br /&gt;
# CONFIG_INPUT_GPIO_BEEPER is not set&lt;br /&gt;
# CONFIG_INPUT_GPIO_DECODER is not set&lt;br /&gt;
# CONFIG_INPUT_ATI_REMOTE2 is not set&lt;br /&gt;
# CONFIG_INPUT_KEYSPAN_REMOTE is not set&lt;br /&gt;
# CONFIG_INPUT_KXTJ9 is not set&lt;br /&gt;
# CONFIG_INPUT_POWERMATE is not set&lt;br /&gt;
# CONFIG_INPUT_YEALINK is not set&lt;br /&gt;
# CONFIG_INPUT_CM109 is not set&lt;br /&gt;
# CONFIG_INPUT_REGULATOR_HAPTIC is not set&lt;br /&gt;
CONFIG_INPUT_TWL4030_PWRBUTTON=m&lt;br /&gt;
# CONFIG_INPUT_TWL4030_VIBRA is not set&lt;br /&gt;
# CONFIG_INPUT_AS5013 is not set&lt;br /&gt;
CONFIG_INPUT_UINPUT=m&lt;br /&gt;
# CONFIG_INPUT_PCF8574 is not set&lt;br /&gt;
# CONFIG_INPUT_PWM_BEEPER is not set&lt;br /&gt;
# CONFIG_INPUT_PWM_VIBRA is not set&lt;br /&gt;
# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set&lt;br /&gt;
# CONFIG_INPUT_ADXL34X is not set&lt;br /&gt;
# CONFIG_INPUT_IMS_PCU is not set&lt;br /&gt;
# CONFIG_INPUT_CMA3000 is not set&lt;br /&gt;
# CONFIG_INPUT_SOC_BUTTON_ARRAY is not set&lt;br /&gt;
# CONFIG_INPUT_DRV260X_HAPTICS is not set&lt;br /&gt;
# CONFIG_INPUT_DRV2665_HAPTICS is not set&lt;br /&gt;
# CONFIG_INPUT_DRV2667_HAPTICS is not set&lt;br /&gt;
CONFIG_INPUT_PANDORA_NUB=y&lt;br /&gt;
# CONFIG_RMI4_CORE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Hardware I/O ports&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SERIO=m&lt;br /&gt;
CONFIG_SERIO_SERPORT=m&lt;br /&gt;
# CONFIG_SERIO_LIBPS2 is not set&lt;br /&gt;
# CONFIG_SERIO_RAW is not set&lt;br /&gt;
# CONFIG_SERIO_ALTERA_PS2 is not set&lt;br /&gt;
# CONFIG_SERIO_PS2MULT is not set&lt;br /&gt;
# CONFIG_SERIO_ARC_PS2 is not set&lt;br /&gt;
# CONFIG_SERIO_APBPS2 is not set&lt;br /&gt;
# CONFIG_SERIO_GPIO_PS2 is not set&lt;br /&gt;
# CONFIG_USERIO is not set&lt;br /&gt;
# CONFIG_GAMEPORT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Character devices&lt;br /&gt;
#&lt;br /&gt;
CONFIG_TTY=y&lt;br /&gt;
CONFIG_VT=y&lt;br /&gt;
CONFIG_CONSOLE_TRANSLATIONS=y&lt;br /&gt;
CONFIG_VT_CONSOLE=y&lt;br /&gt;
CONFIG_VT_CONSOLE_SLEEP=y&lt;br /&gt;
CONFIG_HW_CONSOLE=y&lt;br /&gt;
CONFIG_VT_HW_CONSOLE_BINDING=y&lt;br /&gt;
CONFIG_UNIX98_PTYS=y&lt;br /&gt;
# CONFIG_LEGACY_PTYS is not set&lt;br /&gt;
# CONFIG_SERIAL_NONSTANDARD is not set&lt;br /&gt;
# CONFIG_N_GSM is not set&lt;br /&gt;
# CONFIG_TRACE_SINK is not set&lt;br /&gt;
# CONFIG_DEVMEM is not set&lt;br /&gt;
CONFIG_DEVKMEM=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Serial drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SERIAL_8250=m&lt;br /&gt;
# CONFIG_SERIAL_8250_DEPRECATED_OPTIONS is not set&lt;br /&gt;
# CONFIG_SERIAL_8250_FINTEK is not set&lt;br /&gt;
# CONFIG_SERIAL_8250_DMA is not set&lt;br /&gt;
CONFIG_SERIAL_8250_NR_UARTS=32&lt;br /&gt;
CONFIG_SERIAL_8250_RUNTIME_UARTS=4&lt;br /&gt;
CONFIG_SERIAL_8250_EXTENDED=y&lt;br /&gt;
CONFIG_SERIAL_8250_MANY_PORTS=y&lt;br /&gt;
# CONFIG_SERIAL_8250_ASPEED_VUART is not set&lt;br /&gt;
CONFIG_SERIAL_8250_SHARE_IRQ=y&lt;br /&gt;
CONFIG_SERIAL_8250_DETECT_IRQ=y&lt;br /&gt;
CONFIG_SERIAL_8250_RSA=y&lt;br /&gt;
# CONFIG_SERIAL_8250_DW is not set&lt;br /&gt;
# CONFIG_SERIAL_8250_EM is not set&lt;br /&gt;
# CONFIG_SERIAL_8250_RT288X is not set&lt;br /&gt;
# CONFIG_SERIAL_8250_OMAP is not set&lt;br /&gt;
# CONFIG_SERIAL_OF_PLATFORM is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Non-8250 serial port support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SERIAL_EARLYCON_ARM_SEMIHOST is not set&lt;br /&gt;
# CONFIG_SERIAL_MAX3100 is not set&lt;br /&gt;
# CONFIG_SERIAL_MAX310X is not set&lt;br /&gt;
# CONFIG_SERIAL_UARTLITE is not set&lt;br /&gt;
CONFIG_SERIAL_CORE=y&lt;br /&gt;
CONFIG_SERIAL_CORE_CONSOLE=y&lt;br /&gt;
CONFIG_SERIAL_OMAP=y&lt;br /&gt;
CONFIG_SERIAL_OMAP_CONSOLE=y&lt;br /&gt;
# CONFIG_SERIAL_SCCNXP is not set&lt;br /&gt;
# CONFIG_SERIAL_SC16IS7XX is not set&lt;br /&gt;
# CONFIG_SERIAL_BCM63XX is not set&lt;br /&gt;
# CONFIG_SERIAL_ALTERA_JTAGUART is not set&lt;br /&gt;
# CONFIG_SERIAL_ALTERA_UART is not set&lt;br /&gt;
# CONFIG_SERIAL_IFX6X60 is not set&lt;br /&gt;
# CONFIG_SERIAL_XILINX_PS_UART is not set&lt;br /&gt;
# CONFIG_SERIAL_ARC is not set&lt;br /&gt;
# CONFIG_SERIAL_FSL_LPUART is not set&lt;br /&gt;
# CONFIG_SERIAL_CONEXANT_DIGICOLOR is not set&lt;br /&gt;
# CONFIG_SERIAL_ST_ASC is not set&lt;br /&gt;
# CONFIG_SERIAL_DEV_BUS is not set&lt;br /&gt;
# CONFIG_TTY_PRINTK is not set&lt;br /&gt;
# CONFIG_HVC_DCC is not set&lt;br /&gt;
# CONFIG_IPMI_HANDLER is not set&lt;br /&gt;
CONFIG_HW_RANDOM=m&lt;br /&gt;
# CONFIG_HW_RANDOM_TIMERIOMEM is not set&lt;br /&gt;
CONFIG_HW_RANDOM_OMAP=m&lt;br /&gt;
CONFIG_HW_RANDOM_OMAP3_ROM=m&lt;br /&gt;
# CONFIG_R3964 is not set&lt;br /&gt;
# CONFIG_RAW_DRIVER is not set&lt;br /&gt;
# CONFIG_TCG_TPM is not set&lt;br /&gt;
# CONFIG_XILLYBUS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_I2C=y&lt;br /&gt;
CONFIG_I2C_BOARDINFO=y&lt;br /&gt;
CONFIG_I2C_COMPAT=y&lt;br /&gt;
CONFIG_I2C_CHARDEV=m&lt;br /&gt;
CONFIG_I2C_MUX=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Multiplexer I2C Chip support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_I2C_ARB_GPIO_CHALLENGE is not set&lt;br /&gt;
# CONFIG_I2C_MUX_GPIO is not set&lt;br /&gt;
# CONFIG_I2C_MUX_GPMUX is not set&lt;br /&gt;
# CONFIG_I2C_MUX_LTC4306 is not set&lt;br /&gt;
# CONFIG_I2C_MUX_PCA9541 is not set&lt;br /&gt;
# CONFIG_I2C_MUX_PCA954x is not set&lt;br /&gt;
# CONFIG_I2C_MUX_PINCTRL is not set&lt;br /&gt;
# CONFIG_I2C_MUX_REG is not set&lt;br /&gt;
# CONFIG_I2C_DEMUX_PINCTRL is not set&lt;br /&gt;
# CONFIG_I2C_MUX_MLXCPLD is not set&lt;br /&gt;
CONFIG_I2C_HELPER_AUTO=y&lt;br /&gt;
CONFIG_I2C_ALGOBIT=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C Hardware Bus support&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C system bus drivers (mostly embedded / system-on-chip)&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_I2C_CBUS_GPIO is not set&lt;br /&gt;
# CONFIG_I2C_DESIGNWARE_PLATFORM is not set&lt;br /&gt;
# CONFIG_I2C_EMEV2 is not set&lt;br /&gt;
# CONFIG_I2C_GPIO is not set&lt;br /&gt;
# CONFIG_I2C_OCORES is not set&lt;br /&gt;
CONFIG_I2C_OMAP=y&lt;br /&gt;
# CONFIG_I2C_PCA_PLATFORM is not set&lt;br /&gt;
# CONFIG_I2C_PXA_PCI is not set&lt;br /&gt;
# CONFIG_I2C_RK3X is not set&lt;br /&gt;
# CONFIG_I2C_SIMTEC is not set&lt;br /&gt;
# CONFIG_I2C_XILINX is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# External I2C/SMBus adapter drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_I2C_DIOLAN_U2C is not set&lt;br /&gt;
# CONFIG_I2C_PARPORT_LIGHT is not set&lt;br /&gt;
# CONFIG_I2C_ROBOTFUZZ_OSIF is not set&lt;br /&gt;
# CONFIG_I2C_TAOS_EVM is not set&lt;br /&gt;
# CONFIG_I2C_TINY_USB is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Other I2C/SMBus bus drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_I2C_STUB is not set&lt;br /&gt;
# CONFIG_I2C_SLAVE is not set&lt;br /&gt;
# CONFIG_I2C_DEBUG_CORE is not set&lt;br /&gt;
# CONFIG_I2C_DEBUG_ALGO is not set&lt;br /&gt;
# CONFIG_I2C_DEBUG_BUS is not set&lt;br /&gt;
CONFIG_SPI=y&lt;br /&gt;
# CONFIG_SPI_DEBUG is not set&lt;br /&gt;
CONFIG_SPI_MASTER=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SPI Master Controller Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SPI_ALTERA is not set&lt;br /&gt;
# CONFIG_SPI_AXI_SPI_ENGINE is not set&lt;br /&gt;
# CONFIG_SPI_BITBANG is not set&lt;br /&gt;
# CONFIG_SPI_CADENCE is not set&lt;br /&gt;
# CONFIG_SPI_DESIGNWARE is not set&lt;br /&gt;
# CONFIG_SPI_GPIO is not set&lt;br /&gt;
# CONFIG_SPI_FSL_SPI is not set&lt;br /&gt;
# CONFIG_SPI_OC_TINY is not set&lt;br /&gt;
CONFIG_SPI_OMAP24XX=y&lt;br /&gt;
# CONFIG_SPI_TI_QSPI is not set&lt;br /&gt;
# CONFIG_SPI_PXA2XX_PCI is not set&lt;br /&gt;
# CONFIG_SPI_ROCKCHIP is not set&lt;br /&gt;
# CONFIG_SPI_SC18IS602 is not set&lt;br /&gt;
# CONFIG_SPI_XCOMM is not set&lt;br /&gt;
# CONFIG_SPI_XILINX is not set&lt;br /&gt;
# CONFIG_SPI_ZYNQMP_GQSPI is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SPI Protocol Masters&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SPI_SPIDEV is not set&lt;br /&gt;
# CONFIG_SPI_LOOPBACK_TEST is not set&lt;br /&gt;
# CONFIG_SPI_TLE62X0 is not set&lt;br /&gt;
# CONFIG_SPI_SLAVE is not set&lt;br /&gt;
# CONFIG_SPMI is not set&lt;br /&gt;
# CONFIG_HSI is not set&lt;br /&gt;
# CONFIG_PPS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# PTP clock support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_PTP_1588_CLOCK is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Enable PHYLIB and NETWORK_PHY_TIMESTAMPING to see the additional clocks.&lt;br /&gt;
#&lt;br /&gt;
CONFIG_PINCTRL=y&lt;br /&gt;
CONFIG_GENERIC_PINCTRL_GROUPS=y&lt;br /&gt;
CONFIG_PINMUX=y&lt;br /&gt;
CONFIG_GENERIC_PINMUX_FUNCTIONS=y&lt;br /&gt;
CONFIG_PINCONF=y&lt;br /&gt;
CONFIG_GENERIC_PINCONF=y&lt;br /&gt;
# CONFIG_DEBUG_PINCTRL is not set&lt;br /&gt;
# CONFIG_PINCTRL_AMD is not set&lt;br /&gt;
# CONFIG_PINCTRL_MCP23S08 is not set&lt;br /&gt;
CONFIG_PINCTRL_SINGLE=y&lt;br /&gt;
# CONFIG_PINCTRL_SX150X is not set&lt;br /&gt;
CONFIG_ARCH_HAVE_CUSTOM_GPIO_H=y&lt;br /&gt;
CONFIG_GPIOLIB=y&lt;br /&gt;
CONFIG_OF_GPIO=y&lt;br /&gt;
CONFIG_GPIOLIB_IRQCHIP=y&lt;br /&gt;
# CONFIG_DEBUG_GPIO is not set&lt;br /&gt;
CONFIG_GPIO_SYSFS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Memory mapped GPIO drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_GPIO_74XX_MMIO is not set&lt;br /&gt;
# CONFIG_GPIO_ALTERA is not set&lt;br /&gt;
# CONFIG_GPIO_DWAPB is not set&lt;br /&gt;
# CONFIG_GPIO_FTGPIO010 is not set&lt;br /&gt;
# CONFIG_GPIO_GENERIC_PLATFORM is not set&lt;br /&gt;
# CONFIG_GPIO_GRGPIO is not set&lt;br /&gt;
# CONFIG_GPIO_MB86S7X is not set&lt;br /&gt;
# CONFIG_GPIO_MOCKUP is not set&lt;br /&gt;
# CONFIG_GPIO_MPC8XXX is not set&lt;br /&gt;
CONFIG_GPIO_OMAP=y&lt;br /&gt;
# CONFIG_GPIO_SYSCON is not set&lt;br /&gt;
# CONFIG_GPIO_XILINX is not set&lt;br /&gt;
# CONFIG_GPIO_ZEVIO is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C GPIO expanders&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_GPIO_ADP5588 is not set&lt;br /&gt;
# CONFIG_GPIO_ADNP is not set&lt;br /&gt;
# CONFIG_GPIO_MAX7300 is not set&lt;br /&gt;
# CONFIG_GPIO_MAX732X is not set&lt;br /&gt;
# CONFIG_GPIO_PCA953X is not set&lt;br /&gt;
# CONFIG_GPIO_PCF857X is not set&lt;br /&gt;
# CONFIG_GPIO_TPIC2810 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# MFD GPIO expanders&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_HTC_EGPIO is not set&lt;br /&gt;
CONFIG_GPIO_TWL4030=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SPI GPIO expanders&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_GPIO_74X164 is not set&lt;br /&gt;
# CONFIG_GPIO_MAX3191X is not set&lt;br /&gt;
# CONFIG_GPIO_MAX7301 is not set&lt;br /&gt;
# CONFIG_GPIO_MC33880 is not set&lt;br /&gt;
# CONFIG_GPIO_PISOSR is not set&lt;br /&gt;
# CONFIG_GPIO_XRA1403 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB GPIO expanders&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_W1 is not set&lt;br /&gt;
# CONFIG_CHARGER_BQ2429X is not set&lt;br /&gt;
CONFIG_POWER_AVS=y&lt;br /&gt;
# CONFIG_POWER_RESET is not set&lt;br /&gt;
CONFIG_POWER_SUPPLY=y&lt;br /&gt;
# CONFIG_POWER_SUPPLY_DEBUG is not set&lt;br /&gt;
# CONFIG_PDA_POWER is not set&lt;br /&gt;
# CONFIG_GENERIC_ADC_BATTERY is not set&lt;br /&gt;
# CONFIG_TEST_POWER is not set&lt;br /&gt;
# CONFIG_BATTERY_DS2780 is not set&lt;br /&gt;
# CONFIG_BATTERY_DS2781 is not set&lt;br /&gt;
# CONFIG_BATTERY_DS2782 is not set&lt;br /&gt;
# CONFIG_BATTERY_LEGO_EV3 is not set&lt;br /&gt;
# CONFIG_BATTERY_SBS is not set&lt;br /&gt;
# CONFIG_CHARGER_SBS is not set&lt;br /&gt;
# CONFIG_MANAGER_SBS is not set&lt;br /&gt;
CONFIG_BATTERY_BQ27XXX=m&lt;br /&gt;
CONFIG_BATTERY_BQ27XXX_I2C=m&lt;br /&gt;
CONFIG_BATTERY_BQ27XXX_DT_UPDATES_NVM=y&lt;br /&gt;
# CONFIG_BATTERY_MAX17040 is not set&lt;br /&gt;
# CONFIG_BATTERY_MAX17042 is not set&lt;br /&gt;
CONFIG_BATTERY_TWL4030_MADC=m&lt;br /&gt;
# CONFIG_BATTERY_RX51 is not set&lt;br /&gt;
# CONFIG_CHARGER_ISP1704 is not set&lt;br /&gt;
# CONFIG_CHARGER_MAX8903 is not set&lt;br /&gt;
CONFIG_CHARGER_TWL4030=m&lt;br /&gt;
# CONFIG_CHARGER_LP8727 is not set&lt;br /&gt;
# CONFIG_CHARGER_GPIO is not set&lt;br /&gt;
# CONFIG_CHARGER_MANAGER is not set&lt;br /&gt;
# CONFIG_CHARGER_LTC3651 is not set&lt;br /&gt;
# CONFIG_CHARGER_DETECTOR_MAX14656 is not set&lt;br /&gt;
# CONFIG_CHARGER_BQ2415X is not set&lt;br /&gt;
# CONFIG_CHARGER_BQ24190 is not set&lt;br /&gt;
# CONFIG_CHARGER_BQ24257 is not set&lt;br /&gt;
# CONFIG_CHARGER_BQ24735 is not set&lt;br /&gt;
# CONFIG_CHARGER_BQ25890 is not set&lt;br /&gt;
# CONFIG_CHARGER_SMB347 is not set&lt;br /&gt;
# CONFIG_CHARGER_TPS65090 is not set&lt;br /&gt;
# CONFIG_BATTERY_GAUGE_LTC2941 is not set&lt;br /&gt;
# CONFIG_CHARGER_RT9455 is not set&lt;br /&gt;
# CONFIG_CONFIG_POWER_MIPSBOOK_400 is not set&lt;br /&gt;
CONFIG_HWMON=m&lt;br /&gt;
# CONFIG_HWMON_DEBUG_CHIP is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Native drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SENSORS_AD7314 is not set&lt;br /&gt;
# CONFIG_SENSORS_AD7414 is not set&lt;br /&gt;
# CONFIG_SENSORS_AD7418 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADM1021 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADM1025 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADM1026 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADM1029 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADM1031 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADM9240 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADT7310 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADT7410 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADT7411 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADT7462 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADT7470 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADT7475 is not set&lt;br /&gt;
# CONFIG_SENSORS_ASC7621 is not set&lt;br /&gt;
# CONFIG_SENSORS_ASPEED is not set&lt;br /&gt;
# CONFIG_SENSORS_ATXP1 is not set&lt;br /&gt;
# CONFIG_SENSORS_DS620 is not set&lt;br /&gt;
# CONFIG_SENSORS_DS1621 is not set&lt;br /&gt;
# CONFIG_SENSORS_F71805F is not set&lt;br /&gt;
# CONFIG_SENSORS_F71882FG is not set&lt;br /&gt;
# CONFIG_SENSORS_F75375S is not set&lt;br /&gt;
# CONFIG_SENSORS_FTSTEUTATES is not set&lt;br /&gt;
# CONFIG_SENSORS_GL518SM is not set&lt;br /&gt;
# CONFIG_SENSORS_GL520SM is not set&lt;br /&gt;
# CONFIG_SENSORS_G760A is not set&lt;br /&gt;
# CONFIG_SENSORS_G762 is not set&lt;br /&gt;
# CONFIG_SENSORS_GPIO_FAN is not set&lt;br /&gt;
# CONFIG_SENSORS_HIH6130 is not set&lt;br /&gt;
# CONFIG_SENSORS_IIO_HWMON is not set&lt;br /&gt;
# CONFIG_SENSORS_IT87 is not set&lt;br /&gt;
# CONFIG_SENSORS_JC42 is not set&lt;br /&gt;
# CONFIG_SENSORS_POWR1220 is not set&lt;br /&gt;
# CONFIG_SENSORS_LINEAGE is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC2945 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC2990 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC4151 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC4215 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC4222 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC4245 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC4260 is not set&lt;br /&gt;
# CONFIG_SENSORS_LTC4261 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX1111 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX16065 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX1619 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX1668 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX197 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX31722 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX6621 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX6639 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX6642 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX6650 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX6697 is not set&lt;br /&gt;
# CONFIG_SENSORS_MAX31790 is not set&lt;br /&gt;
# CONFIG_SENSORS_MCP3021 is not set&lt;br /&gt;
# CONFIG_SENSORS_TC654 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADCXX is not set&lt;br /&gt;
# CONFIG_SENSORS_LM63 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM70 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM73 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM75 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM77 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM78 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM80 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM83 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM85 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM87 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM90 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM92 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM93 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM95234 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM95241 is not set&lt;br /&gt;
# CONFIG_SENSORS_LM95245 is not set&lt;br /&gt;
# CONFIG_SENSORS_PC87360 is not set&lt;br /&gt;
# CONFIG_SENSORS_PC87427 is not set&lt;br /&gt;
# CONFIG_SENSORS_NTC_THERMISTOR is not set&lt;br /&gt;
# CONFIG_SENSORS_NCT6683 is not set&lt;br /&gt;
# CONFIG_SENSORS_NCT6775 is not set&lt;br /&gt;
# CONFIG_SENSORS_NCT7802 is not set&lt;br /&gt;
# CONFIG_SENSORS_NCT7904 is not set&lt;br /&gt;
# CONFIG_SENSORS_PCF8591 is not set&lt;br /&gt;
# CONFIG_PMBUS is not set&lt;br /&gt;
# CONFIG_SENSORS_PWM_FAN is not set&lt;br /&gt;
# CONFIG_SENSORS_SHT15 is not set&lt;br /&gt;
# CONFIG_SENSORS_SHT21 is not set&lt;br /&gt;
# CONFIG_SENSORS_SHT3x is not set&lt;br /&gt;
# CONFIG_SENSORS_SHTC1 is not set&lt;br /&gt;
# CONFIG_SENSORS_DME1737 is not set&lt;br /&gt;
# CONFIG_SENSORS_EMC1403 is not set&lt;br /&gt;
# CONFIG_SENSORS_EMC2103 is not set&lt;br /&gt;
# CONFIG_SENSORS_EMC6W201 is not set&lt;br /&gt;
# CONFIG_SENSORS_SMSC47M1 is not set&lt;br /&gt;
# CONFIG_SENSORS_SMSC47M192 is not set&lt;br /&gt;
# CONFIG_SENSORS_SMSC47B397 is not set&lt;br /&gt;
# CONFIG_SENSORS_SCH5627 is not set&lt;br /&gt;
# CONFIG_SENSORS_SCH5636 is not set&lt;br /&gt;
# CONFIG_SENSORS_STTS751 is not set&lt;br /&gt;
# CONFIG_SENSORS_SMM665 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADC128D818 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADS1015 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADS7828 is not set&lt;br /&gt;
# CONFIG_SENSORS_ADS7871 is not set&lt;br /&gt;
# CONFIG_SENSORS_AMC6821 is not set&lt;br /&gt;
# CONFIG_SENSORS_INA209 is not set&lt;br /&gt;
# CONFIG_SENSORS_INA2XX is not set&lt;br /&gt;
# CONFIG_SENSORS_INA3221 is not set&lt;br /&gt;
# CONFIG_SENSORS_TC74 is not set&lt;br /&gt;
# CONFIG_SENSORS_THMC50 is not set&lt;br /&gt;
# CONFIG_SENSORS_TMP102 is not set&lt;br /&gt;
# CONFIG_SENSORS_TMP103 is not set&lt;br /&gt;
# CONFIG_SENSORS_TMP108 is not set&lt;br /&gt;
# CONFIG_SENSORS_TMP401 is not set&lt;br /&gt;
# CONFIG_SENSORS_TMP421 is not set&lt;br /&gt;
# CONFIG_SENSORS_VT1211 is not set&lt;br /&gt;
# CONFIG_SENSORS_W83773G is not set&lt;br /&gt;
# CONFIG_SENSORS_W83781D is not set&lt;br /&gt;
# CONFIG_SENSORS_W83791D is not set&lt;br /&gt;
# CONFIG_SENSORS_W83792D is not set&lt;br /&gt;
# CONFIG_SENSORS_W83793 is not set&lt;br /&gt;
# CONFIG_SENSORS_W83795 is not set&lt;br /&gt;
# CONFIG_SENSORS_W83L785TS is not set&lt;br /&gt;
# CONFIG_SENSORS_W83L786NG is not set&lt;br /&gt;
# CONFIG_SENSORS_W83627HF is not set&lt;br /&gt;
# CONFIG_SENSORS_W83627EHF is not set&lt;br /&gt;
CONFIG_THERMAL=m&lt;br /&gt;
CONFIG_THERMAL_EMERGENCY_POWEROFF_DELAY_MS=0&lt;br /&gt;
CONFIG_THERMAL_HWMON=y&lt;br /&gt;
CONFIG_THERMAL_OF=y&lt;br /&gt;
# CONFIG_THERMAL_WRITABLE_TRIPS is not set&lt;br /&gt;
CONFIG_THERMAL_DEFAULT_GOV_STEP_WISE=y&lt;br /&gt;
# CONFIG_THERMAL_DEFAULT_GOV_FAIR_SHARE is not set&lt;br /&gt;
# CONFIG_THERMAL_DEFAULT_GOV_USER_SPACE is not set&lt;br /&gt;
# CONFIG_THERMAL_DEFAULT_GOV_POWER_ALLOCATOR is not set&lt;br /&gt;
# CONFIG_THERMAL_GOV_FAIR_SHARE is not set&lt;br /&gt;
CONFIG_THERMAL_GOV_STEP_WISE=y&lt;br /&gt;
# CONFIG_THERMAL_GOV_BANG_BANG is not set&lt;br /&gt;
CONFIG_THERMAL_GOV_USER_SPACE=y&lt;br /&gt;
# CONFIG_THERMAL_GOV_POWER_ALLOCATOR is not set&lt;br /&gt;
CONFIG_CPU_THERMAL=y&lt;br /&gt;
# CONFIG_CLOCK_THERMAL is not set&lt;br /&gt;
# CONFIG_DEVFREQ_THERMAL is not set&lt;br /&gt;
# CONFIG_THERMAL_EMULATION is not set&lt;br /&gt;
# CONFIG_QORIQ_THERMAL is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# ACPI INT340X thermal drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Texas Instruments thermal drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_TI_SOC_THERMAL=m&lt;br /&gt;
CONFIG_TI_THERMAL=y&lt;br /&gt;
CONFIG_OMAP3_THERMAL=y&lt;br /&gt;
# CONFIG_GENERIC_ADC_THERMAL is not set&lt;br /&gt;
CONFIG_WATCHDOG=y&lt;br /&gt;
CONFIG_WATCHDOG_CORE=y&lt;br /&gt;
# CONFIG_WATCHDOG_NOWAYOUT is not set&lt;br /&gt;
CONFIG_WATCHDOG_HANDLE_BOOT_ENABLED=y&lt;br /&gt;
# CONFIG_WATCHDOG_SYSFS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Watchdog Device Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SOFT_WATCHDOG is not set&lt;br /&gt;
# CONFIG_GPIO_WATCHDOG is not set&lt;br /&gt;
# CONFIG_XILINX_WATCHDOG is not set&lt;br /&gt;
# CONFIG_ZIIRAVE_WATCHDOG is not set&lt;br /&gt;
# CONFIG_CADENCE_WATCHDOG is not set&lt;br /&gt;
# CONFIG_FTWDT010_WATCHDOG is not set&lt;br /&gt;
# CONFIG_DW_WATCHDOG is not set&lt;br /&gt;
CONFIG_OMAP_WATCHDOG=m&lt;br /&gt;
CONFIG_TWL4030_WATCHDOG=m&lt;br /&gt;
# CONFIG_MAX63XX_WATCHDOG is not set&lt;br /&gt;
# CONFIG_MEN_A21_WDT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB-based Watchdog Cards&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_USBPCWATCHDOG is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Watchdog Pretimeout Governors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_WATCHDOG_PRETIMEOUT_GOV is not set&lt;br /&gt;
CONFIG_SSB_POSSIBLE=y&lt;br /&gt;
# CONFIG_SSB is not set&lt;br /&gt;
CONFIG_BCMA_POSSIBLE=y&lt;br /&gt;
# CONFIG_BCMA is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Multifunction device drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_MFD_CORE=y&lt;br /&gt;
# CONFIG_MFD_ACT8945A is not set&lt;br /&gt;
# CONFIG_MFD_AS3711 is not set&lt;br /&gt;
# CONFIG_MFD_AS3722 is not set&lt;br /&gt;
# CONFIG_PMIC_ADP5520 is not set&lt;br /&gt;
# CONFIG_MFD_AAT2870_CORE is not set&lt;br /&gt;
# CONFIG_MFD_ATMEL_FLEXCOM is not set&lt;br /&gt;
# CONFIG_MFD_ATMEL_HLCDC is not set&lt;br /&gt;
# CONFIG_MFD_BCM590XX is not set&lt;br /&gt;
# CONFIG_MFD_BD9571MWV is not set&lt;br /&gt;
# CONFIG_MFD_AXP20X_I2C is not set&lt;br /&gt;
# CONFIG_MFD_CROS_EC is not set&lt;br /&gt;
# CONFIG_MFD_ASIC3 is not set&lt;br /&gt;
# CONFIG_PMIC_DA903X is not set&lt;br /&gt;
# CONFIG_MFD_DA9052_SPI is not set&lt;br /&gt;
# CONFIG_MFD_DA9052_I2C is not set&lt;br /&gt;
# CONFIG_MFD_DA9055 is not set&lt;br /&gt;
# CONFIG_MFD_DA9062 is not set&lt;br /&gt;
# CONFIG_MFD_DA9063 is not set&lt;br /&gt;
# CONFIG_MFD_DA9150 is not set&lt;br /&gt;
# CONFIG_MFD_DLN2 is not set&lt;br /&gt;
# CONFIG_MFD_MC13XXX_SPI is not set&lt;br /&gt;
# CONFIG_MFD_MC13XXX_I2C is not set&lt;br /&gt;
# CONFIG_MFD_HI6421_PMIC is not set&lt;br /&gt;
# CONFIG_HTC_PASIC3 is not set&lt;br /&gt;
# CONFIG_HTC_I2CPLD is not set&lt;br /&gt;
# CONFIG_MFD_KEMPLD is not set&lt;br /&gt;
# CONFIG_MFD_88PM800 is not set&lt;br /&gt;
# CONFIG_MFD_88PM805 is not set&lt;br /&gt;
# CONFIG_MFD_88PM860X is not set&lt;br /&gt;
# CONFIG_MFD_MAX14577 is not set&lt;br /&gt;
# CONFIG_MFD_MAX77620 is not set&lt;br /&gt;
# CONFIG_MFD_MAX77686 is not set&lt;br /&gt;
# CONFIG_MFD_MAX77693 is not set&lt;br /&gt;
# CONFIG_MFD_MAX77843 is not set&lt;br /&gt;
# CONFIG_MFD_MAX8907 is not set&lt;br /&gt;
# CONFIG_MFD_MAX8925 is not set&lt;br /&gt;
# CONFIG_MFD_MAX8997 is not set&lt;br /&gt;
# CONFIG_MFD_MAX8998 is not set&lt;br /&gt;
# CONFIG_MFD_MT6397 is not set&lt;br /&gt;
# CONFIG_MFD_MENF21BMC is not set&lt;br /&gt;
# CONFIG_EZX_PCAP is not set&lt;br /&gt;
# CONFIG_MFD_CPCAP is not set&lt;br /&gt;
# CONFIG_MFD_VIPERBOARD is not set&lt;br /&gt;
# CONFIG_MFD_RETU is not set&lt;br /&gt;
# CONFIG_MFD_PCF50633 is not set&lt;br /&gt;
# CONFIG_MFD_PM8XXX is not set&lt;br /&gt;
# CONFIG_MFD_RT5033 is not set&lt;br /&gt;
# CONFIG_MFD_RC5T583 is not set&lt;br /&gt;
# CONFIG_MFD_RK808 is not set&lt;br /&gt;
# CONFIG_MFD_RN5T618 is not set&lt;br /&gt;
# CONFIG_MFD_SEC_CORE is not set&lt;br /&gt;
# CONFIG_MFD_SI476X_CORE is not set&lt;br /&gt;
# CONFIG_MFD_SM501 is not set&lt;br /&gt;
# CONFIG_MFD_SKY81452 is not set&lt;br /&gt;
# CONFIG_MFD_SMSC is not set&lt;br /&gt;
# CONFIG_ABX500_CORE is not set&lt;br /&gt;
# CONFIG_MFD_STMPE is not set&lt;br /&gt;
CONFIG_MFD_SYSCON=y&lt;br /&gt;
# CONFIG_MFD_TI_AM335X_TSCADC is not set&lt;br /&gt;
# CONFIG_MFD_LP3943 is not set&lt;br /&gt;
# CONFIG_MFD_LP8788 is not set&lt;br /&gt;
# CONFIG_MFD_TI_LMU is not set&lt;br /&gt;
CONFIG_MFD_OMAP_USB_HOST=y&lt;br /&gt;
# CONFIG_MFD_PALMAS is not set&lt;br /&gt;
# CONFIG_TPS6105X is not set&lt;br /&gt;
CONFIG_TPS65010=y&lt;br /&gt;
# CONFIG_TPS6507X is not set&lt;br /&gt;
# CONFIG_MFD_TPS65086 is not set&lt;br /&gt;
CONFIG_MFD_TPS65090=y&lt;br /&gt;
# CONFIG_MFD_TPS65217 is not set&lt;br /&gt;
# CONFIG_MFD_TI_LP873X is not set&lt;br /&gt;
# CONFIG_MFD_TI_LP87565 is not set&lt;br /&gt;
# CONFIG_MFD_TPS65218 is not set&lt;br /&gt;
# CONFIG_MFD_TPS6586X is not set&lt;br /&gt;
# CONFIG_MFD_TPS65910 is not set&lt;br /&gt;
# CONFIG_MFD_TPS65912_I2C is not set&lt;br /&gt;
# CONFIG_MFD_TPS65912_SPI is not set&lt;br /&gt;
# CONFIG_MFD_TPS80031 is not set&lt;br /&gt;
CONFIG_TWL4030_CORE=y&lt;br /&gt;
CONFIG_TWL4030_POWER=y&lt;br /&gt;
CONFIG_MFD_TWL4030_AUDIO=y&lt;br /&gt;
# CONFIG_TWL6040_CORE is not set&lt;br /&gt;
# CONFIG_MFD_WL1273_CORE is not set&lt;br /&gt;
# CONFIG_MFD_LM3533 is not set&lt;br /&gt;
# CONFIG_MFD_TC3589X is not set&lt;br /&gt;
# CONFIG_MFD_TMIO is not set&lt;br /&gt;
# CONFIG_MFD_T7L66XB is not set&lt;br /&gt;
# CONFIG_MFD_TC6387XB is not set&lt;br /&gt;
# CONFIG_MFD_TC6393XB is not set&lt;br /&gt;
# CONFIG_MFD_ARIZONA_I2C is not set&lt;br /&gt;
# CONFIG_MFD_ARIZONA_SPI is not set&lt;br /&gt;
# CONFIG_MFD_WM8400 is not set&lt;br /&gt;
# CONFIG_MFD_WM831X_I2C is not set&lt;br /&gt;
# CONFIG_MFD_WM831X_SPI is not set&lt;br /&gt;
# CONFIG_MFD_WM8350_I2C is not set&lt;br /&gt;
# CONFIG_MFD_WM8994 is not set&lt;br /&gt;
CONFIG_REGULATOR=y&lt;br /&gt;
# CONFIG_REGULATOR_DEBUG is not set&lt;br /&gt;
CONFIG_REGULATOR_FIXED_VOLTAGE=y&lt;br /&gt;
# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set&lt;br /&gt;
# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set&lt;br /&gt;
# CONFIG_REGULATOR_ACT8865 is not set&lt;br /&gt;
# CONFIG_REGULATOR_AD5398 is not set&lt;br /&gt;
# CONFIG_REGULATOR_ANATOP is not set&lt;br /&gt;
# CONFIG_REGULATOR_DA9210 is not set&lt;br /&gt;
# CONFIG_REGULATOR_DA9211 is not set&lt;br /&gt;
# CONFIG_REGULATOR_FAN53555 is not set&lt;br /&gt;
# CONFIG_REGULATOR_GPIO is not set&lt;br /&gt;
# CONFIG_REGULATOR_ISL9305 is not set&lt;br /&gt;
# CONFIG_REGULATOR_ISL6271A is not set&lt;br /&gt;
# CONFIG_REGULATOR_LP3971 is not set&lt;br /&gt;
# CONFIG_REGULATOR_LP3972 is not set&lt;br /&gt;
# CONFIG_REGULATOR_LP872X is not set&lt;br /&gt;
# CONFIG_REGULATOR_LP8755 is not set&lt;br /&gt;
# CONFIG_REGULATOR_LTC3589 is not set&lt;br /&gt;
# CONFIG_REGULATOR_LTC3676 is not set&lt;br /&gt;
# CONFIG_REGULATOR_MAX1586 is not set&lt;br /&gt;
# CONFIG_REGULATOR_MAX8649 is not set&lt;br /&gt;
# CONFIG_REGULATOR_MAX8660 is not set&lt;br /&gt;
# CONFIG_REGULATOR_MAX8952 is not set&lt;br /&gt;
# CONFIG_REGULATOR_MAX8973 is not set&lt;br /&gt;
# CONFIG_REGULATOR_MT6311 is not set&lt;br /&gt;
CONFIG_REGULATOR_PBIAS=y&lt;br /&gt;
# CONFIG_REGULATOR_PFUZE100 is not set&lt;br /&gt;
# CONFIG_REGULATOR_PV88060 is not set&lt;br /&gt;
# CONFIG_REGULATOR_PV88080 is not set&lt;br /&gt;
# CONFIG_REGULATOR_PV88090 is not set&lt;br /&gt;
# CONFIG_REGULATOR_PWM is not set&lt;br /&gt;
# CONFIG_REGULATOR_TI_ABB is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS51632 is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS62360 is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS65023 is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS6507X is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS65090 is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS65132 is not set&lt;br /&gt;
# CONFIG_REGULATOR_TPS6524X is not set&lt;br /&gt;
CONFIG_REGULATOR_TWL4030=y&lt;br /&gt;
# CONFIG_REGULATOR_VCTRL is not set&lt;br /&gt;
# CONFIG_RC_CORE is not set&lt;br /&gt;
# CONFIG_MEDIA_SUPPORT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Graphics support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_IMX_IPUV3_CORE is not set&lt;br /&gt;
CONFIG_DRM=m&lt;br /&gt;
# CONFIG_DRM_DP_AUX_CHARDEV is not set&lt;br /&gt;
# CONFIG_DRM_DEBUG_MM_SELFTEST is not set&lt;br /&gt;
CONFIG_DRM_KMS_HELPER=m&lt;br /&gt;
CONFIG_DRM_KMS_FB_HELPER=y&lt;br /&gt;
CONFIG_DRM_FBDEV_EMULATION=y&lt;br /&gt;
CONFIG_DRM_FBDEV_OVERALLOC=100&lt;br /&gt;
# CONFIG_DRM_LOAD_EDID_FIRMWARE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C encoder or helper chips&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_DRM_I2C_CH7006 is not set&lt;br /&gt;
# CONFIG_DRM_I2C_SIL164 is not set&lt;br /&gt;
# CONFIG_DRM_I2C_NXP_TDA998X is not set&lt;br /&gt;
# CONFIG_DRM_HDLCD is not set&lt;br /&gt;
# CONFIG_DRM_MALI_DISPLAY is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# ACP (Audio CoProcessor) Configuration&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# AMD Library routines&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_CHASH is not set&lt;br /&gt;
# CONFIG_DRM_VGEM is not set&lt;br /&gt;
# CONFIG_DRM_EXYNOS is not set&lt;br /&gt;
# CONFIG_DRM_UDL is not set&lt;br /&gt;
# CONFIG_DRM_ARMADA is not set&lt;br /&gt;
# CONFIG_DRM_RCAR_DW_HDMI is not set&lt;br /&gt;
# CONFIG_DRM_OMAP is not set&lt;br /&gt;
# CONFIG_DRM_TILCDC is not set&lt;br /&gt;
# CONFIG_DRM_FSL_DCU is not set&lt;br /&gt;
# CONFIG_DRM_STM is not set&lt;br /&gt;
CONFIG_DRM_PANEL=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Display Panels&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_DRM_PANEL_LVDS is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_SIMPLE is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_ILITEK_IL9322 is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_SAMSUNG_LD9040 is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_LG_LG4573 is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_SAMSUNG_S6E8AA0 is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_SEIKO_43WVF1G is not set&lt;br /&gt;
# CONFIG_DRM_PANEL_SITRONIX_ST7789V is not set&lt;br /&gt;
CONFIG_DRM_BRIDGE=y&lt;br /&gt;
CONFIG_DRM_PANEL_BRIDGE=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Display Interface Bridges&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_DRM_ANALOGIX_ANX78XX is not set&lt;br /&gt;
# CONFIG_DRM_DUMB_VGA_DAC is not set&lt;br /&gt;
# CONFIG_DRM_LVDS_ENCODER is not set&lt;br /&gt;
# CONFIG_DRM_MEGACHIPS_STDPXXXX_GE_B850V3_FW is not set&lt;br /&gt;
# CONFIG_DRM_NXP_PTN3460 is not set&lt;br /&gt;
# CONFIG_DRM_PARADE_PS8622 is not set&lt;br /&gt;
# CONFIG_DRM_SII902X is not set&lt;br /&gt;
# CONFIG_DRM_SII9234 is not set&lt;br /&gt;
# CONFIG_DRM_TOSHIBA_TC358767 is not set&lt;br /&gt;
# CONFIG_DRM_TI_TFP410 is not set&lt;br /&gt;
# CONFIG_DRM_I2C_ADV7511 is not set&lt;br /&gt;
# CONFIG_DRM_STI is not set&lt;br /&gt;
# CONFIG_DRM_ARCPGU is not set&lt;br /&gt;
# CONFIG_DRM_MXSFB is not set&lt;br /&gt;
# CONFIG_DRM_TINYDRM is not set&lt;br /&gt;
# CONFIG_DRM_PL111 is not set&lt;br /&gt;
# CONFIG_DRM_TVE200 is not set&lt;br /&gt;
# CONFIG_DRM_LEGACY is not set&lt;br /&gt;
CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=m&lt;br /&gt;
# CONFIG_DRM_LIB_RANDOM is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Frame buffer Devices&lt;br /&gt;
#&lt;br /&gt;
CONFIG_FB=y&lt;br /&gt;
# CONFIG_FIRMWARE_EDID is not set&lt;br /&gt;
CONFIG_FB_CMDLINE=y&lt;br /&gt;
CONFIG_FB_NOTIFY=y&lt;br /&gt;
# CONFIG_FB_DDC is not set&lt;br /&gt;
# CONFIG_FB_BOOT_VESA_SUPPORT is not set&lt;br /&gt;
CONFIG_FB_CFB_FILLRECT=y&lt;br /&gt;
CONFIG_FB_CFB_COPYAREA=y&lt;br /&gt;
CONFIG_FB_CFB_IMAGEBLIT=y&lt;br /&gt;
# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set&lt;br /&gt;
CONFIG_FB_SYS_FILLRECT=m&lt;br /&gt;
CONFIG_FB_SYS_COPYAREA=m&lt;br /&gt;
CONFIG_FB_SYS_IMAGEBLIT=m&lt;br /&gt;
# CONFIG_FB_PROVIDE_GET_FB_UNMAPPED_AREA is not set&lt;br /&gt;
# CONFIG_FB_FOREIGN_ENDIAN is not set&lt;br /&gt;
CONFIG_FB_SYS_FOPS=m&lt;br /&gt;
CONFIG_FB_DEFERRED_IO=y&lt;br /&gt;
# CONFIG_FB_SVGALIB is not set&lt;br /&gt;
# CONFIG_FB_MACMODES is not set&lt;br /&gt;
# CONFIG_FB_BACKLIGHT is not set&lt;br /&gt;
CONFIG_FB_MODE_HELPERS=y&lt;br /&gt;
CONFIG_FB_TILEBLITTING=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Frame buffer hardware drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_FB_OPENCORES is not set&lt;br /&gt;
# CONFIG_FB_S1D13XXX is not set&lt;br /&gt;
# CONFIG_FB_SMSCUFX is not set&lt;br /&gt;
# CONFIG_FB_UDL is not set&lt;br /&gt;
# CONFIG_FB_IBM_GXT4500 is not set&lt;br /&gt;
# CONFIG_FB_VIRTUAL is not set&lt;br /&gt;
# CONFIG_FB_METRONOME is not set&lt;br /&gt;
# CONFIG_FB_BROADSHEET is not set&lt;br /&gt;
# CONFIG_FB_AUO_K190X is not set&lt;br /&gt;
# CONFIG_FB_SIMPLE is not set&lt;br /&gt;
CONFIG_OMAP2_VRFB=y&lt;br /&gt;
CONFIG_FB_OMAP2=y&lt;br /&gt;
# CONFIG_FB_OMAP2_DEBUG_SUPPORT is not set&lt;br /&gt;
CONFIG_FB_OMAP2_NUM_FBS=3&lt;br /&gt;
CONFIG_FB_OMAP2_DSS_INIT=y&lt;br /&gt;
CONFIG_FB_OMAP2_DSS=y&lt;br /&gt;
# CONFIG_FB_OMAP2_DSS_DEBUG is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_DSS_DEBUGFS is not set&lt;br /&gt;
CONFIG_FB_OMAP2_DSS_DPI=y&lt;br /&gt;
CONFIG_FB_OMAP2_DSS_VENC=y&lt;br /&gt;
# CONFIG_FB_OMAP4_DSS_HDMI is not set&lt;br /&gt;
# CONFIG_FB_OMAP5_DSS_HDMI is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_DSS_SDI is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_DSS_DSI is not set&lt;br /&gt;
CONFIG_FB_OMAP2_DSS_MIN_FCK_PER_PCK=4&lt;br /&gt;
CONFIG_FB_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# OMAPFB Panel and Encoder Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_FB_OMAP2_ENCODER_OPA362 is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_ENCODER_TFP410 is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_ENCODER_TPD12S015 is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_CONNECTOR_DVI is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_CONNECTOR_HDMI is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_CONNECTOR_ANALOG_TV is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_DPI is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_DSI_CM is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_SONY_ACX565AKM is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_LGPHILIPS_LB035Q02 is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_SHARP_LS037V7DW01 is not set&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_TPO_TD028TTEC1 is not set&lt;br /&gt;
CONFIG_FB_OMAP2_PANEL_TPO_TD043MTEA1=y&lt;br /&gt;
# CONFIG_FB_OMAP2_PANEL_NEC_NL8048HL11 is not set&lt;br /&gt;
# CONFIG_FB_SSD1307 is not set&lt;br /&gt;
CONFIG_BACKLIGHT_LCD_SUPPORT=y&lt;br /&gt;
# CONFIG_LCD_CLASS_DEVICE is not set&lt;br /&gt;
CONFIG_BACKLIGHT_CLASS_DEVICE=y&lt;br /&gt;
# CONFIG_BACKLIGHT_GENERIC is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_PWM is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_PM8941_WLED is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_ADP8860 is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_ADP8870 is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_LM3630A is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_LM3639 is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_LP855X is not set&lt;br /&gt;
CONFIG_BACKLIGHT_PANDORA=y&lt;br /&gt;
# CONFIG_BACKLIGHT_GPIO is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_LV5207LP is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_BD6107 is not set&lt;br /&gt;
# CONFIG_BACKLIGHT_ARCXCNN is not set&lt;br /&gt;
# CONFIG_VGASTATE is not set&lt;br /&gt;
CONFIG_VIDEOMODE_HELPERS=y&lt;br /&gt;
CONFIG_HDMI=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Console display driver support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_DUMMY_CONSOLE=y&lt;br /&gt;
CONFIG_FRAMEBUFFER_CONSOLE=y&lt;br /&gt;
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y&lt;br /&gt;
# CONFIG_FRAMEBUFFER_CONSOLE_ROTATION is not set&lt;br /&gt;
# CONFIG_LOGO is not set&lt;br /&gt;
CONFIG_SOUND=m&lt;br /&gt;
CONFIG_SOUND_OSS_CORE=y&lt;br /&gt;
CONFIG_SOUND_OSS_CORE_PRECLAIM=y&lt;br /&gt;
CONFIG_SND=m&lt;br /&gt;
CONFIG_SND_TIMER=m&lt;br /&gt;
CONFIG_SND_PCM=m&lt;br /&gt;
CONFIG_SND_DMAENGINE_PCM=m&lt;br /&gt;
CONFIG_SND_HWDEP=m&lt;br /&gt;
CONFIG_SND_SEQ_DEVICE=m&lt;br /&gt;
CONFIG_SND_RAWMIDI=m&lt;br /&gt;
CONFIG_SND_JACK=y&lt;br /&gt;
CONFIG_SND_JACK_INPUT_DEV=y&lt;br /&gt;
CONFIG_SND_OSSEMUL=y&lt;br /&gt;
CONFIG_SND_MIXER_OSS=m&lt;br /&gt;
CONFIG_SND_PCM_OSS=m&lt;br /&gt;
CONFIG_SND_PCM_OSS_PLUGINS=y&lt;br /&gt;
CONFIG_SND_PCM_TIMER=y&lt;br /&gt;
CONFIG_SND_HRTIMER=m&lt;br /&gt;
# CONFIG_SND_DYNAMIC_MINORS is not set&lt;br /&gt;
CONFIG_SND_SUPPORT_OLD_API=y&lt;br /&gt;
CONFIG_SND_PROC_FS=y&lt;br /&gt;
# CONFIG_SND_VERBOSE_PROCFS is not set&lt;br /&gt;
# CONFIG_SND_VERBOSE_PRINTK is not set&lt;br /&gt;
# CONFIG_SND_DEBUG is not set&lt;br /&gt;
CONFIG_SND_VMASTER=y&lt;br /&gt;
CONFIG_SND_SEQUENCER=m&lt;br /&gt;
# CONFIG_SND_SEQ_DUMMY is not set&lt;br /&gt;
CONFIG_SND_SEQUENCER_OSS=m&lt;br /&gt;
CONFIG_SND_SEQ_HRTIMER_DEFAULT=y&lt;br /&gt;
CONFIG_SND_SEQ_MIDI_EVENT=m&lt;br /&gt;
CONFIG_SND_SEQ_MIDI=m&lt;br /&gt;
CONFIG_SND_SEQ_VIRMIDI=m&lt;br /&gt;
# CONFIG_SND_OPL3_LIB_SEQ is not set&lt;br /&gt;
# CONFIG_SND_OPL4_LIB_SEQ is not set&lt;br /&gt;
CONFIG_SND_DRIVERS=y&lt;br /&gt;
# CONFIG_SND_DUMMY is not set&lt;br /&gt;
CONFIG_SND_ALOOP=m&lt;br /&gt;
CONFIG_SND_VIRMIDI=m&lt;br /&gt;
# CONFIG_SND_MTPAV is not set&lt;br /&gt;
# CONFIG_SND_SERIAL_U16550 is not set&lt;br /&gt;
# CONFIG_SND_MPU401 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# HD-Audio&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SND_HDA_PREALLOC_SIZE=2048&lt;br /&gt;
# CONFIG_SND_ARM is not set&lt;br /&gt;
# CONFIG_SND_SPI is not set&lt;br /&gt;
CONFIG_SND_USB=y&lt;br /&gt;
CONFIG_SND_USB_AUDIO=m&lt;br /&gt;
CONFIG_SND_USB_UA101=m&lt;br /&gt;
CONFIG_SND_USB_CAIAQ=m&lt;br /&gt;
CONFIG_SND_USB_CAIAQ_INPUT=y&lt;br /&gt;
CONFIG_SND_USB_6FIRE=m&lt;br /&gt;
# CONFIG_SND_USB_HIFACE is not set&lt;br /&gt;
# CONFIG_SND_BCD2000 is not set&lt;br /&gt;
# CONFIG_SND_USB_POD is not set&lt;br /&gt;
# CONFIG_SND_USB_PODHD is not set&lt;br /&gt;
# CONFIG_SND_USB_TONEPORT is not set&lt;br /&gt;
# CONFIG_SND_USB_VARIAX is not set&lt;br /&gt;
CONFIG_SND_SOC=m&lt;br /&gt;
# CONFIG_SND_SOC_AMD_ACP is not set&lt;br /&gt;
# CONFIG_SND_ATMEL_SOC is not set&lt;br /&gt;
# CONFIG_SND_EDMA_SOC is not set&lt;br /&gt;
# CONFIG_SND_DAVINCI_SOC_MCASP is not set&lt;br /&gt;
# CONFIG_SND_DESIGNWARE_I2S is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SoC Audio for Freescale CPUs&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Common SoC Audio options for Freescale CPUs:&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SND_SOC_FSL_ASRC is not set&lt;br /&gt;
# CONFIG_SND_SOC_FSL_SAI is not set&lt;br /&gt;
# CONFIG_SND_SOC_FSL_SSI is not set&lt;br /&gt;
# CONFIG_SND_SOC_FSL_SPDIF is not set&lt;br /&gt;
# CONFIG_SND_SOC_FSL_ESAI is not set&lt;br /&gt;
# CONFIG_SND_SOC_IMX_AUDMUX is not set&lt;br /&gt;
# CONFIG_SND_I2S_HI6210_I2S is not set&lt;br /&gt;
CONFIG_SND_OMAP_SOC=m&lt;br /&gt;
CONFIG_SND_OMAP_SOC_MCBSP=m&lt;br /&gt;
# CONFIG_SND_OMAP_SOC_HDMI_AUDIO is not set&lt;br /&gt;
# CONFIG_SND_OMAP_SOC_RX51 is not set&lt;br /&gt;
CONFIG_SND_OMAP_SOC_OMAP_TWL4030=m&lt;br /&gt;
CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m&lt;br /&gt;
# CONFIG_SND_SOC_IMG is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# STMicroelectronics STM32 SOC audio support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SND_SOC_XTFPGA_I2S is not set&lt;br /&gt;
# CONFIG_ZX_TDM is not set&lt;br /&gt;
CONFIG_SND_SOC_I2C_AND_SPI=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CODEC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SND_SOC_AC97_CODEC is not set&lt;br /&gt;
# CONFIG_SND_SOC_ADAU1701 is not set&lt;br /&gt;
# CONFIG_SND_SOC_ADAU1761_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_ADAU1761_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_ADAU7002 is not set&lt;br /&gt;
# CONFIG_SND_SOC_AK4104 is not set&lt;br /&gt;
# CONFIG_SND_SOC_AK4554 is not set&lt;br /&gt;
# CONFIG_SND_SOC_AK4613 is not set&lt;br /&gt;
# CONFIG_SND_SOC_AK4642 is not set&lt;br /&gt;
# CONFIG_SND_SOC_AK5386 is not set&lt;br /&gt;
# CONFIG_SND_SOC_ALC5623 is not set&lt;br /&gt;
# CONFIG_SND_SOC_BT_SCO is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS35L32 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS35L33 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS35L34 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS35L35 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS42L42 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS42L51_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS42L52 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS42L56 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS42L73 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS4265 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS4270 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS4271_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS4271_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS42XX8_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS43130 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS4349 is not set&lt;br /&gt;
# CONFIG_SND_SOC_CS53L30 is not set&lt;br /&gt;
# CONFIG_SND_SOC_DIO2125 is not set&lt;br /&gt;
# CONFIG_SND_SOC_ES7134 is not set&lt;br /&gt;
# CONFIG_SND_SOC_ES8316 is not set&lt;br /&gt;
# CONFIG_SND_SOC_ES8328_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_ES8328_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_GTM601 is not set&lt;br /&gt;
# CONFIG_SND_SOC_INNO_RK3036 is not set&lt;br /&gt;
# CONFIG_SND_SOC_MAX98504 is not set&lt;br /&gt;
# CONFIG_SND_SOC_MAX98927 is not set&lt;br /&gt;
# CONFIG_SND_SOC_MAX98373 is not set&lt;br /&gt;
# CONFIG_SND_SOC_MAX9860 is not set&lt;br /&gt;
# CONFIG_SND_SOC_MSM8916_WCD_DIGITAL is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM1681 is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM179X_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM179X_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM186X_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM186X_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM3168A_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM3168A_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM512x_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_PCM512x_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_RT5514_SPI_BUILTIN is not set&lt;br /&gt;
# CONFIG_SND_SOC_RT5616 is not set&lt;br /&gt;
# CONFIG_SND_SOC_RT5631 is not set&lt;br /&gt;
# CONFIG_SND_SOC_RT5677_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_SGTL5000 is not set&lt;br /&gt;
# CONFIG_SND_SOC_SIRF_AUDIO_CODEC is not set&lt;br /&gt;
# CONFIG_SND_SOC_SPDIF is not set&lt;br /&gt;
# CONFIG_SND_SOC_SSM2602_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_SSM2602_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_SSM4567 is not set&lt;br /&gt;
# CONFIG_SND_SOC_STA32X is not set&lt;br /&gt;
# CONFIG_SND_SOC_STA350 is not set&lt;br /&gt;
# CONFIG_SND_SOC_STI_SAS is not set&lt;br /&gt;
# CONFIG_SND_SOC_TAS2552 is not set&lt;br /&gt;
# CONFIG_SND_SOC_TAS5086 is not set&lt;br /&gt;
# CONFIG_SND_SOC_TAS571X is not set&lt;br /&gt;
# CONFIG_SND_SOC_TAS5720 is not set&lt;br /&gt;
# CONFIG_SND_SOC_TAS6424 is not set&lt;br /&gt;
# CONFIG_SND_SOC_TFA9879 is not set&lt;br /&gt;
# CONFIG_SND_SOC_TLV320AIC23_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_TLV320AIC23_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_TLV320AIC31XX is not set&lt;br /&gt;
# CONFIG_SND_SOC_TLV320AIC32X4_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_TLV320AIC32X4_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_TLV320AIC3X is not set&lt;br /&gt;
# CONFIG_SND_SOC_TS3A225E is not set&lt;br /&gt;
# CONFIG_SND_SOC_TS3A227E is not set&lt;br /&gt;
# CONFIG_SND_SOC_TSCS42XX is not set&lt;br /&gt;
CONFIG_SND_SOC_TWL4030=m&lt;br /&gt;
# CONFIG_SND_SOC_WM8510 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8523 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8524 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8580 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8711 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8728 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8731 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8737 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8741 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8750 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8753 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8770 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8776 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8804_I2C is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8804_SPI is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8903 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8960 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8962 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8974 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8978 is not set&lt;br /&gt;
# CONFIG_SND_SOC_WM8985 is not set&lt;br /&gt;
# CONFIG_SND_SOC_ZX_AUD96P22 is not set&lt;br /&gt;
# CONFIG_SND_SOC_NAU8540 is not set&lt;br /&gt;
# CONFIG_SND_SOC_NAU8810 is not set&lt;br /&gt;
# CONFIG_SND_SOC_NAU8824 is not set&lt;br /&gt;
# CONFIG_SND_SOC_TPA6130A2 is not set&lt;br /&gt;
# CONFIG_SND_SIMPLE_CARD is not set&lt;br /&gt;
# CONFIG_SND_SIMPLE_SCU_CARD is not set&lt;br /&gt;
# CONFIG_SND_AUDIO_GRAPH_CARD is not set&lt;br /&gt;
# CONFIG_SND_AUDIO_GRAPH_SCU_CARD is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# HID support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_HID=y&lt;br /&gt;
# CONFIG_HID_BATTERY_STRENGTH is not set&lt;br /&gt;
CONFIG_HIDRAW=y&lt;br /&gt;
CONFIG_UHID=m&lt;br /&gt;
CONFIG_HID_GENERIC=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Special HID drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_HID_A4TECH is not set&lt;br /&gt;
# CONFIG_HID_ACCUTOUCH is not set&lt;br /&gt;
# CONFIG_HID_ACRUX is not set&lt;br /&gt;
# CONFIG_HID_APPLE is not set&lt;br /&gt;
# CONFIG_HID_APPLEIR is not set&lt;br /&gt;
# CONFIG_HID_ASUS is not set&lt;br /&gt;
# CONFIG_HID_AUREAL is not set&lt;br /&gt;
# CONFIG_HID_BELKIN is not set&lt;br /&gt;
# CONFIG_HID_BETOP_FF is not set&lt;br /&gt;
# CONFIG_HID_CHERRY is not set&lt;br /&gt;
# CONFIG_HID_CHICONY is not set&lt;br /&gt;
# CONFIG_HID_CORSAIR is not set&lt;br /&gt;
# CONFIG_HID_PRODIKEYS is not set&lt;br /&gt;
# CONFIG_HID_CMEDIA is not set&lt;br /&gt;
# CONFIG_HID_CP2112 is not set&lt;br /&gt;
# CONFIG_HID_CYPRESS is not set&lt;br /&gt;
# CONFIG_HID_DRAGONRISE is not set&lt;br /&gt;
# CONFIG_HID_EMS_FF is not set&lt;br /&gt;
# CONFIG_HID_ELECOM is not set&lt;br /&gt;
# CONFIG_HID_ELO is not set&lt;br /&gt;
# CONFIG_HID_EZKEY is not set&lt;br /&gt;
# CONFIG_HID_GEMBIRD is not set&lt;br /&gt;
# CONFIG_HID_GFRM is not set&lt;br /&gt;
# CONFIG_HID_HOLTEK is not set&lt;br /&gt;
# CONFIG_HID_GT683R is not set&lt;br /&gt;
# CONFIG_HID_KEYTOUCH is not set&lt;br /&gt;
# CONFIG_HID_KYE is not set&lt;br /&gt;
# CONFIG_HID_UCLOGIC is not set&lt;br /&gt;
# CONFIG_HID_WALTOP is not set&lt;br /&gt;
# CONFIG_HID_GYRATION is not set&lt;br /&gt;
# CONFIG_HID_ICADE is not set&lt;br /&gt;
# CONFIG_HID_ITE is not set&lt;br /&gt;
# CONFIG_HID_JABRA is not set&lt;br /&gt;
# CONFIG_HID_TWINHAN is not set&lt;br /&gt;
# CONFIG_HID_KENSINGTON is not set&lt;br /&gt;
# CONFIG_HID_LCPOWER is not set&lt;br /&gt;
# CONFIG_HID_LED is not set&lt;br /&gt;
# CONFIG_HID_LENOVO is not set&lt;br /&gt;
# CONFIG_HID_LOGITECH is not set&lt;br /&gt;
# CONFIG_HID_MAGICMOUSE is not set&lt;br /&gt;
# CONFIG_HID_MAYFLASH is not set&lt;br /&gt;
# CONFIG_HID_MICROSOFT is not set&lt;br /&gt;
# CONFIG_HID_MONTEREY is not set&lt;br /&gt;
# CONFIG_HID_MULTITOUCH is not set&lt;br /&gt;
# CONFIG_HID_NTI is not set&lt;br /&gt;
# CONFIG_HID_NTRIG is not set&lt;br /&gt;
# CONFIG_HID_ORTEK is not set&lt;br /&gt;
# CONFIG_HID_PANTHERLORD is not set&lt;br /&gt;
# CONFIG_HID_PENMOUNT is not set&lt;br /&gt;
# CONFIG_HID_PETALYNX is not set&lt;br /&gt;
# CONFIG_HID_PICOLCD is not set&lt;br /&gt;
# CONFIG_HID_PLANTRONICS is not set&lt;br /&gt;
# CONFIG_HID_PRIMAX is not set&lt;br /&gt;
# CONFIG_HID_RETRODE is not set&lt;br /&gt;
# CONFIG_HID_ROCCAT is not set&lt;br /&gt;
# CONFIG_HID_SAITEK is not set&lt;br /&gt;
# CONFIG_HID_SAMSUNG is not set&lt;br /&gt;
# CONFIG_HID_SONY is not set&lt;br /&gt;
# CONFIG_HID_SPEEDLINK is not set&lt;br /&gt;
# CONFIG_HID_STEELSERIES is not set&lt;br /&gt;
# CONFIG_HID_SUNPLUS is not set&lt;br /&gt;
# CONFIG_HID_RMI is not set&lt;br /&gt;
# CONFIG_HID_GREENASIA is not set&lt;br /&gt;
# CONFIG_HID_SMARTJOYPLUS is not set&lt;br /&gt;
# CONFIG_HID_TIVO is not set&lt;br /&gt;
# CONFIG_HID_TOPSEED is not set&lt;br /&gt;
# CONFIG_HID_THINGM is not set&lt;br /&gt;
# CONFIG_HID_THRUSTMASTER is not set&lt;br /&gt;
# CONFIG_HID_UDRAW_PS3 is not set&lt;br /&gt;
# CONFIG_HID_WACOM is not set&lt;br /&gt;
# CONFIG_HID_WIIMOTE is not set&lt;br /&gt;
# CONFIG_HID_XINMO is not set&lt;br /&gt;
# CONFIG_HID_ZEROPLUS is not set&lt;br /&gt;
# CONFIG_HID_ZYDACRON is not set&lt;br /&gt;
# CONFIG_HID_SENSOR_HUB is not set&lt;br /&gt;
# CONFIG_HID_ALPS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB HID support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_HID=m&lt;br /&gt;
CONFIG_HID_PID=y&lt;br /&gt;
CONFIG_USB_HIDDEV=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB HID Boot Protocol drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_KBD=m&lt;br /&gt;
CONFIG_USB_MOUSE=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C HID support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_I2C_HID is not set&lt;br /&gt;
CONFIG_USB_OHCI_LITTLE_ENDIAN=y&lt;br /&gt;
CONFIG_USB_SUPPORT=y&lt;br /&gt;
CONFIG_USB_COMMON=m&lt;br /&gt;
CONFIG_USB_ARCH_HAS_HCD=y&lt;br /&gt;
CONFIG_USB=m&lt;br /&gt;
CONFIG_USB_ANNOUNCE_NEW_DEVICES=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Miscellaneous USB options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_DEFAULT_PERSIST=y&lt;br /&gt;
# CONFIG_USB_DYNAMIC_MINORS is not set&lt;br /&gt;
CONFIG_USB_OTG=y&lt;br /&gt;
# CONFIG_USB_OTG_WHITELIST is not set&lt;br /&gt;
# CONFIG_USB_OTG_BLACKLIST_HUB is not set&lt;br /&gt;
# CONFIG_USB_OTG_FSM is not set&lt;br /&gt;
# CONFIG_USB_LEDS_TRIGGER_USBPORT is not set&lt;br /&gt;
CONFIG_USB_MON=m&lt;br /&gt;
# CONFIG_USB_WUSB_CBAF is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB Host Controller Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_USB_C67X00_HCD is not set&lt;br /&gt;
# CONFIG_USB_XHCI_HCD is not set&lt;br /&gt;
CONFIG_USB_EHCI_HCD=m&lt;br /&gt;
# CONFIG_USB_EHCI_ROOT_HUB_TT is not set&lt;br /&gt;
CONFIG_USB_EHCI_TT_NEWSCHED=y&lt;br /&gt;
# CONFIG_USB_EHCI_HCD_PLATFORM is not set&lt;br /&gt;
# CONFIG_USB_OXU210HP_HCD is not set&lt;br /&gt;
# CONFIG_USB_ISP116X_HCD is not set&lt;br /&gt;
# CONFIG_USB_ISP1362_HCD is not set&lt;br /&gt;
# CONFIG_USB_FOTG210_HCD is not set&lt;br /&gt;
# CONFIG_USB_MAX3421_HCD is not set&lt;br /&gt;
CONFIG_USB_OHCI_HCD=m&lt;br /&gt;
CONFIG_USB_OHCI_HCD_OMAP3=m&lt;br /&gt;
CONFIG_USB_OHCI_HCD_PLATFORM=m&lt;br /&gt;
# CONFIG_USB_SL811_HCD is not set&lt;br /&gt;
# CONFIG_USB_R8A66597_HCD is not set&lt;br /&gt;
# CONFIG_USB_HCD_TEST_MODE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB Device Class drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_USB_ACM is not set&lt;br /&gt;
# CONFIG_USB_PRINTER is not set&lt;br /&gt;
# CONFIG_USB_WDM is not set&lt;br /&gt;
# CONFIG_USB_TMC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# also be needed; see USB_STORAGE Help for more info&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_STORAGE=m&lt;br /&gt;
# CONFIG_USB_STORAGE_DEBUG is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_REALTEK is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_DATAFAB is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_FREECOM is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_ISD200 is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_USBAT is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_SDDR09 is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_SDDR55 is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_JUMPSHOT is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_ALAUDA is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_ONETOUCH is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_KARMA is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set&lt;br /&gt;
# CONFIG_USB_STORAGE_ENE_UB6250 is not set&lt;br /&gt;
# CONFIG_USB_UAS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB Imaging devices&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_USB_MDC800 is not set&lt;br /&gt;
# CONFIG_USB_MICROTEK is not set&lt;br /&gt;
# CONFIG_USBIP_CORE is not set&lt;br /&gt;
CONFIG_USB_MUSB_HDRC=m&lt;br /&gt;
# CONFIG_USB_MUSB_HOST is not set&lt;br /&gt;
# CONFIG_USB_MUSB_GADGET is not set&lt;br /&gt;
CONFIG_USB_MUSB_DUAL_ROLE=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Platform Glue Layer&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_MUSB_OMAP2PLUS=m&lt;br /&gt;
# CONFIG_USB_MUSB_DSPS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# MUSB DMA mode&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MUSB_PIO_ONLY is not set&lt;br /&gt;
CONFIG_USB_INVENTRA_DMA=y&lt;br /&gt;
# CONFIG_USB_TI_CPPI41_DMA is not set&lt;br /&gt;
# CONFIG_USB_DWC3 is not set&lt;br /&gt;
# CONFIG_USB_DWC2 is not set&lt;br /&gt;
# CONFIG_USB_CHIPIDEA is not set&lt;br /&gt;
# CONFIG_USB_ISP1760 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB port drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_SERIAL=m&lt;br /&gt;
# CONFIG_USB_SERIAL_GENERIC is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_SIMPLE is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_AIRCABLE is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_ARK3116 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_BELKIN is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_CH341 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_WHITEHEAT is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_CP210X is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_CYPRESS_M8 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_EMPEG is not set&lt;br /&gt;
CONFIG_USB_SERIAL_FTDI_SIO=m&lt;br /&gt;
# CONFIG_USB_SERIAL_VISOR is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_IPAQ is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_IR is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_EDGEPORT is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_EDGEPORT_TI is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_F81232 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_F8153X is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_GARMIN is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_IPW is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_IUU is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_KEYSPAN_PDA is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_KEYSPAN is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_KLSI is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_KOBIL_SCT is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_MCT_U232 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_METRO is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_MOS7720 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_MOS7840 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_MXUPORT is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_NAVMAN is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_PL2303 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_OTI6858 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_QCAUX is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_QUALCOMM is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_SPCP8X5 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_SAFE is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_SIERRAWIRELESS is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_SYMBOL is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_TI is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_CYBERJACK is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_XIRCOM is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_OPTION is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_OMNINET is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_OPTICON is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_XSENS_MT is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_WISHBONE is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_SSU100 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_QT2 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_UPD78F0730 is not set&lt;br /&gt;
# CONFIG_USB_SERIAL_DEBUG is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB Miscellaneous drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_USB_EMI62 is not set&lt;br /&gt;
# CONFIG_USB_EMI26 is not set&lt;br /&gt;
# CONFIG_USB_ADUTUX is not set&lt;br /&gt;
# CONFIG_USB_SEVSEG is not set&lt;br /&gt;
# CONFIG_USB_RIO500 is not set&lt;br /&gt;
# CONFIG_USB_LEGOTOWER is not set&lt;br /&gt;
# CONFIG_USB_LCD is not set&lt;br /&gt;
# CONFIG_USB_CYPRESS_CY7C63 is not set&lt;br /&gt;
# CONFIG_USB_CYTHERM is not set&lt;br /&gt;
# CONFIG_USB_IDMOUSE is not set&lt;br /&gt;
# CONFIG_USB_FTDI_ELAN is not set&lt;br /&gt;
# CONFIG_USB_APPLEDISPLAY is not set&lt;br /&gt;
# CONFIG_USB_SISUSBVGA is not set&lt;br /&gt;
# CONFIG_USB_LD is not set&lt;br /&gt;
# CONFIG_USB_TRANCEVIBRATOR is not set&lt;br /&gt;
# CONFIG_USB_IOWARRIOR is not set&lt;br /&gt;
# CONFIG_USB_TEST is not set&lt;br /&gt;
# CONFIG_USB_EHSET_TEST_FIXTURE is not set&lt;br /&gt;
# CONFIG_USB_ISIGHTFW is not set&lt;br /&gt;
# CONFIG_USB_YUREX is not set&lt;br /&gt;
# CONFIG_USB_EZUSB_FX2 is not set&lt;br /&gt;
# CONFIG_USB_HUB_USB251XB is not set&lt;br /&gt;
# CONFIG_USB_HSIC_USB3503 is not set&lt;br /&gt;
# CONFIG_USB_HSIC_USB4604 is not set&lt;br /&gt;
# CONFIG_USB_LINK_LAYER_TEST is not set&lt;br /&gt;
# CONFIG_USB_CHAOSKEY is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB Physical Layer drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_USB_PHY=y&lt;br /&gt;
# CONFIG_NOP_USB_XCEIV is not set&lt;br /&gt;
# CONFIG_USB_GPIO_VBUS is not set&lt;br /&gt;
# CONFIG_USB_ISP1301 is not set&lt;br /&gt;
# CONFIG_USB_ULPI is not set&lt;br /&gt;
CONFIG_USB_GADGET=m&lt;br /&gt;
# CONFIG_USB_GADGET_DEBUG is not set&lt;br /&gt;
# CONFIG_USB_GADGET_DEBUG_FILES is not set&lt;br /&gt;
# CONFIG_USB_GADGET_DEBUG_FS is not set&lt;br /&gt;
CONFIG_USB_GADGET_VBUS_DRAW=2&lt;br /&gt;
CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2&lt;br /&gt;
# CONFIG_U_SERIAL_CONSOLE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# USB Peripheral Controller&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_USB_FUSB300 is not set&lt;br /&gt;
# CONFIG_USB_FOTG210_UDC is not set&lt;br /&gt;
# CONFIG_USB_GR_UDC is not set&lt;br /&gt;
# CONFIG_USB_R8A66597 is not set&lt;br /&gt;
# CONFIG_USB_PXA27X is not set&lt;br /&gt;
# CONFIG_USB_MV_UDC is not set&lt;br /&gt;
# CONFIG_USB_MV_U3D is not set&lt;br /&gt;
# CONFIG_USB_SNP_UDC_PLAT is not set&lt;br /&gt;
# CONFIG_USB_M66592 is not set&lt;br /&gt;
# CONFIG_USB_BDC_UDC is not set&lt;br /&gt;
# CONFIG_USB_NET2272 is not set&lt;br /&gt;
# CONFIG_USB_GADGET_XILINX is not set&lt;br /&gt;
# CONFIG_USB_DUMMY_HCD is not set&lt;br /&gt;
CONFIG_USB_LIBCOMPOSITE=m&lt;br /&gt;
CONFIG_USB_F_ACM=m&lt;br /&gt;
CONFIG_USB_F_SS_LB=m&lt;br /&gt;
CONFIG_USB_U_SERIAL=m&lt;br /&gt;
CONFIG_USB_U_ETHER=m&lt;br /&gt;
CONFIG_USB_F_SERIAL=m&lt;br /&gt;
CONFIG_USB_F_OBEX=m&lt;br /&gt;
CONFIG_USB_F_NCM=m&lt;br /&gt;
CONFIG_USB_F_ECM=m&lt;br /&gt;
CONFIG_USB_F_EEM=m&lt;br /&gt;
CONFIG_USB_F_SUBSET=m&lt;br /&gt;
CONFIG_USB_F_RNDIS=m&lt;br /&gt;
CONFIG_USB_F_MASS_STORAGE=m&lt;br /&gt;
CONFIG_USB_F_FS=m&lt;br /&gt;
CONFIG_USB_F_HID=m&lt;br /&gt;
CONFIG_USB_CONFIGFS=m&lt;br /&gt;
CONFIG_USB_CONFIGFS_SERIAL=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_ACM=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_OBEX=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_NCM=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_ECM=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_ECM_SUBSET=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_RNDIS=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_EEM=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_MASS_STORAGE=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_F_LB_SS=y&lt;br /&gt;
CONFIG_USB_CONFIGFS_F_FS=y&lt;br /&gt;
# CONFIG_USB_CONFIGFS_F_UAC1 is not set&lt;br /&gt;
# CONFIG_USB_CONFIGFS_F_UAC1_LEGACY is not set&lt;br /&gt;
# CONFIG_USB_CONFIGFS_F_UAC2 is not set&lt;br /&gt;
# CONFIG_USB_CONFIGFS_F_MIDI is not set&lt;br /&gt;
CONFIG_USB_CONFIGFS_F_HID=y&lt;br /&gt;
# CONFIG_USB_CONFIGFS_F_PRINTER is not set&lt;br /&gt;
# CONFIG_USB_ZERO is not set&lt;br /&gt;
# CONFIG_USB_AUDIO is not set&lt;br /&gt;
CONFIG_USB_ETH=m&lt;br /&gt;
CONFIG_USB_ETH_RNDIS=y&lt;br /&gt;
CONFIG_USB_ETH_EEM=y&lt;br /&gt;
# CONFIG_USB_G_NCM is not set&lt;br /&gt;
# CONFIG_USB_GADGETFS is not set&lt;br /&gt;
# CONFIG_USB_FUNCTIONFS is not set&lt;br /&gt;
CONFIG_USB_MASS_STORAGE=m&lt;br /&gt;
# CONFIG_USB_G_SERIAL is not set&lt;br /&gt;
# CONFIG_USB_MIDI_GADGET is not set&lt;br /&gt;
# CONFIG_USB_G_PRINTER is not set&lt;br /&gt;
# CONFIG_USB_CDC_COMPOSITE is not set&lt;br /&gt;
# CONFIG_USB_G_ACM_MS is not set&lt;br /&gt;
# CONFIG_USB_G_MULTI is not set&lt;br /&gt;
CONFIG_USB_G_HID=m&lt;br /&gt;
# CONFIG_USB_G_DBGP is not set&lt;br /&gt;
# CONFIG_TYPEC is not set&lt;br /&gt;
# CONFIG_USB_LED_TRIG is not set&lt;br /&gt;
# CONFIG_USB_ULPI_BUS is not set&lt;br /&gt;
# CONFIG_UWB is not set&lt;br /&gt;
CONFIG_MMC=y&lt;br /&gt;
CONFIG_PWRSEQ_EMMC=y&lt;br /&gt;
CONFIG_PWRSEQ_SIMPLE=y&lt;br /&gt;
CONFIG_MMC_BLOCK=y&lt;br /&gt;
CONFIG_MMC_BLOCK_MINORS=8&lt;br /&gt;
CONFIG_SDIO_UART=m&lt;br /&gt;
# CONFIG_MMC_TEST is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# MMC/SD/SDIO Host Controller Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MMC_DEBUG is not set&lt;br /&gt;
# CONFIG_MMC_SDHCI is not set&lt;br /&gt;
CONFIG_MMC_OMAP=y&lt;br /&gt;
CONFIG_MMC_OMAP_HS=y&lt;br /&gt;
# CONFIG_MMC_SPI is not set&lt;br /&gt;
# CONFIG_MMC_DW is not set&lt;br /&gt;
# CONFIG_MMC_VUB300 is not set&lt;br /&gt;
# CONFIG_MMC_USHC is not set&lt;br /&gt;
# CONFIG_MMC_USDHI6ROL0 is not set&lt;br /&gt;
# CONFIG_MMC_CQHCI is not set&lt;br /&gt;
# CONFIG_MMC_MTK is not set&lt;br /&gt;
# CONFIG_MEMSTICK is not set&lt;br /&gt;
CONFIG_NEW_LEDS=y&lt;br /&gt;
CONFIG_LEDS_CLASS=y&lt;br /&gt;
# CONFIG_LEDS_CLASS_FLASH is not set&lt;br /&gt;
# CONFIG_LEDS_BRIGHTNESS_HW_CHANGED is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# LED drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_LEDS_BCM6328 is not set&lt;br /&gt;
# CONFIG_LEDS_BCM6358 is not set&lt;br /&gt;
# CONFIG_LEDS_LM3530 is not set&lt;br /&gt;
# CONFIG_LEDS_LM3642 is not set&lt;br /&gt;
# CONFIG_LEDS_LM3692X is not set&lt;br /&gt;
# CONFIG_LEDS_PCA9532 is not set&lt;br /&gt;
CONFIG_LEDS_GPIO=y&lt;br /&gt;
# CONFIG_LEDS_LP3944 is not set&lt;br /&gt;
# CONFIG_LEDS_LP3952 is not set&lt;br /&gt;
# CONFIG_LEDS_LP5521 is not set&lt;br /&gt;
# CONFIG_LEDS_LP5523 is not set&lt;br /&gt;
# CONFIG_LEDS_LP5562 is not set&lt;br /&gt;
# CONFIG_LEDS_LP8501 is not set&lt;br /&gt;
# CONFIG_LEDS_LP8860 is not set&lt;br /&gt;
# CONFIG_LEDS_PCA955X is not set&lt;br /&gt;
# CONFIG_LEDS_PCA963X is not set&lt;br /&gt;
# CONFIG_LEDS_DAC124S085 is not set&lt;br /&gt;
CONFIG_LEDS_PWM=y&lt;br /&gt;
# CONFIG_LEDS_REGULATOR is not set&lt;br /&gt;
# CONFIG_LEDS_BD2802 is not set&lt;br /&gt;
# CONFIG_LEDS_LT3593 is not set&lt;br /&gt;
# CONFIG_LEDS_TCA6507 is not set&lt;br /&gt;
# CONFIG_LEDS_TLC591XX is not set&lt;br /&gt;
# CONFIG_LEDS_LM355x is not set&lt;br /&gt;
# CONFIG_LEDS_IS31FL319X is not set&lt;br /&gt;
# CONFIG_LEDS_IS31FL32XX is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# LED driver for blink(1) USB RGB LED is under Special HID drivers (HID_THINGM)&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_LEDS_BLINKM is not set&lt;br /&gt;
# CONFIG_LEDS_SYSCON is not set&lt;br /&gt;
# CONFIG_LEDS_USER is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# LED Triggers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_LEDS_TRIGGERS=y&lt;br /&gt;
CONFIG_LEDS_TRIGGER_TIMER=m&lt;br /&gt;
CONFIG_LEDS_TRIGGER_ONESHOT=m&lt;br /&gt;
# CONFIG_LEDS_TRIGGER_MTD is not set&lt;br /&gt;
CONFIG_LEDS_TRIGGER_HEARTBEAT=m&lt;br /&gt;
CONFIG_LEDS_TRIGGER_BACKLIGHT=m&lt;br /&gt;
CONFIG_LEDS_TRIGGER_CPU=y&lt;br /&gt;
CONFIG_LEDS_TRIGGER_ACTIVITY=m&lt;br /&gt;
CONFIG_LEDS_TRIGGER_GPIO=m&lt;br /&gt;
CONFIG_LEDS_TRIGGER_DEFAULT_ON=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# iptables trigger is under Netfilter config (LED target)&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_LEDS_TRIGGER_TRANSIENT is not set&lt;br /&gt;
# CONFIG_LEDS_TRIGGER_CAMERA is not set&lt;br /&gt;
CONFIG_LEDS_TRIGGER_PANIC=y&lt;br /&gt;
# CONFIG_LEDS_TRIGGER_NETDEV is not set&lt;br /&gt;
# CONFIG_ACCESSIBILITY is not set&lt;br /&gt;
# CONFIG_INFINIBAND is not set&lt;br /&gt;
CONFIG_EDAC_ATOMIC_SCRUB=y&lt;br /&gt;
CONFIG_EDAC_SUPPORT=y&lt;br /&gt;
CONFIG_RTC_LIB=y&lt;br /&gt;
CONFIG_RTC_CLASS=y&lt;br /&gt;
CONFIG_RTC_HCTOSYS=y&lt;br /&gt;
CONFIG_RTC_HCTOSYS_DEVICE=&amp;quot;rtc0&amp;quot;&lt;br /&gt;
CONFIG_RTC_SYSTOHC=y&lt;br /&gt;
CONFIG_RTC_SYSTOHC_DEVICE=&amp;quot;rtc0&amp;quot;&lt;br /&gt;
# CONFIG_RTC_DEBUG is not set&lt;br /&gt;
CONFIG_RTC_NVMEM=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# RTC interfaces&lt;br /&gt;
#&lt;br /&gt;
CONFIG_RTC_INTF_SYSFS=y&lt;br /&gt;
CONFIG_RTC_INTF_PROC=y&lt;br /&gt;
CONFIG_RTC_INTF_DEV=y&lt;br /&gt;
# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set&lt;br /&gt;
# CONFIG_RTC_DRV_TEST is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# I2C RTC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RTC_DRV_ABB5ZES3 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_ABX80X is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1307 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1374 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1672 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_HYM8563 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_MAX6900 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RS5C372 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_ISL1208 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_ISL12022 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_X1205 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF8523 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF85063 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF85363 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF8563 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF8583 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_M41T80 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_BQ32K is not set&lt;br /&gt;
CONFIG_RTC_DRV_TWL4030=y&lt;br /&gt;
# CONFIG_RTC_DRV_S35390A is not set&lt;br /&gt;
# CONFIG_RTC_DRV_FM3130 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RX8010 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RX8581 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RX8025 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_EM3027 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RV8803 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SPI RTC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RTC_DRV_M41T93 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_M41T94 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1302 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1305 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1343 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1347 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1390 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_MAX6916 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_R9701 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RX4581 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RX6110 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RS5C348 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_MAX6902 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF2123 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_MCP795 is not set&lt;br /&gt;
CONFIG_RTC_I2C_AND_SPI=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SPI and I2C RTC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RTC_DRV_DS3232 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_PCF2127 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RV3029C2 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Platform RTC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RTC_DRV_CMOS is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1286 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1511 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1553 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1685_FAMILY is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS1742 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_DS2404 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_STK17TA8 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_M48T86 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_M48T35 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_M48T59 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_MSM6242 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_BQ4802 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_RP5C01 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_V3020 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_ZYNQMP is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# on-CPU RTC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RTC_DRV_OMAP is not set&lt;br /&gt;
# CONFIG_RTC_DRV_FTRTC010 is not set&lt;br /&gt;
# CONFIG_RTC_DRV_SNVS is not set&lt;br /&gt;
# CONFIG_RTC_DRV_R7301 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# HID Sensor RTC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RTC_DRV_HID_SENSOR_TIME is not set&lt;br /&gt;
CONFIG_DMADEVICES=y&lt;br /&gt;
# CONFIG_DMADEVICES_DEBUG is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DMA Devices&lt;br /&gt;
#&lt;br /&gt;
CONFIG_DMA_ENGINE=y&lt;br /&gt;
CONFIG_DMA_VIRTUAL_CHANNELS=y&lt;br /&gt;
CONFIG_DMA_OF=y&lt;br /&gt;
# CONFIG_ALTERA_MSGDMA is not set&lt;br /&gt;
CONFIG_DMA_OMAP=y&lt;br /&gt;
# CONFIG_FSL_EDMA is not set&lt;br /&gt;
# CONFIG_INTEL_IDMA64 is not set&lt;br /&gt;
# CONFIG_NBPFAXI_DMA is not set&lt;br /&gt;
# CONFIG_TI_CPPI41 is not set&lt;br /&gt;
CONFIG_TI_DMA_CROSSBAR=y&lt;br /&gt;
CONFIG_TI_EDMA=y&lt;br /&gt;
# CONFIG_QCOM_HIDMA_MGMT is not set&lt;br /&gt;
# CONFIG_QCOM_HIDMA is not set&lt;br /&gt;
# CONFIG_DW_DMAC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DMA Clients&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ASYNC_TX_DMA is not set&lt;br /&gt;
# CONFIG_DMATEST is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DMABUF options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SYNC_FILE=y&lt;br /&gt;
# CONFIG_SW_SYNC is not set&lt;br /&gt;
# CONFIG_AUXDISPLAY is not set&lt;br /&gt;
# CONFIG_UIO is not set&lt;br /&gt;
# CONFIG_VFIO is not set&lt;br /&gt;
# CONFIG_VIRT_DRIVERS is not set&lt;br /&gt;
CONFIG_VIRTIO_MENU=y&lt;br /&gt;
# CONFIG_VIRTIO_MMIO is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Microsoft Hyper-V guest support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_HYPERV_TSCPAGE is not set&lt;br /&gt;
# CONFIG_STAGING is not set&lt;br /&gt;
# CONFIG_GOLDFISH is not set&lt;br /&gt;
# CONFIG_CHROME_PLATFORMS is not set&lt;br /&gt;
# CONFIG_MELLANOX_PLATFORM is not set&lt;br /&gt;
CONFIG_CLKDEV_LOOKUP=y&lt;br /&gt;
CONFIG_HAVE_CLK_PREPARE=y&lt;br /&gt;
CONFIG_COMMON_CLK=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Common Clock Framework&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_CLK_HSDK is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_SI5351 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_SI514 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_SI570 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_CDCE706 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_CDCE925 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_CS2000_CP is not set&lt;br /&gt;
# CONFIG_CLK_QORIQ is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_NXP is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_PWM is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_PXA is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_PIC32 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_VC5 is not set&lt;br /&gt;
# CONFIG_COMMON_CLK_TI_ADPLL is not set&lt;br /&gt;
# CONFIG_HWSPINLOCK is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Clock Source drivers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_TIMER_OF=y&lt;br /&gt;
CONFIG_TIMER_PROBE=y&lt;br /&gt;
CONFIG_CLKSRC_MMIO=y&lt;br /&gt;
CONFIG_CLKSRC_TI_32K=y&lt;br /&gt;
CONFIG_ARM_ARCH_TIMER=y&lt;br /&gt;
CONFIG_ARM_ARCH_TIMER_EVTSTREAM=y&lt;br /&gt;
# CONFIG_ARM_TIMER_SP804 is not set&lt;br /&gt;
# CONFIG_ATMEL_PIT is not set&lt;br /&gt;
# CONFIG_SH_TIMER_CMT is not set&lt;br /&gt;
# CONFIG_SH_TIMER_MTU2 is not set&lt;br /&gt;
# CONFIG_SH_TIMER_TMU is not set&lt;br /&gt;
# CONFIG_EM_TIMER_STI is not set&lt;br /&gt;
# CONFIG_MAILBOX is not set&lt;br /&gt;
CONFIG_IOMMU_API=y&lt;br /&gt;
CONFIG_IOMMU_SUPPORT=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Generic IOMMU Pagetable Support&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set&lt;br /&gt;
# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set&lt;br /&gt;
CONFIG_OF_IOMMU=y&lt;br /&gt;
CONFIG_OMAP_IOMMU=y&lt;br /&gt;
# CONFIG_OMAP_IOMMU_DEBUG is not set&lt;br /&gt;
# CONFIG_ARM_SMMU is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Remoteproc drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_REMOTEPROC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Rpmsg drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_RPMSG_VIRTIO is not set&lt;br /&gt;
# CONFIG_SOUNDWIRE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SOC (System On Chip) specific Drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Amlogic SoC drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Broadcom SoC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SOC_BRCMSTB is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# i.MX SoC drivers&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Qualcomm SoC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SUNXI_SRAM is not set&lt;br /&gt;
# CONFIG_SOC_TI is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Xilinx SoC drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_XILINX_VCU is not set&lt;br /&gt;
CONFIG_PM_DEVFREQ=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DEVFREQ Governors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set&lt;br /&gt;
# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set&lt;br /&gt;
# CONFIG_DEVFREQ_GOV_POWERSAVE is not set&lt;br /&gt;
# CONFIG_DEVFREQ_GOV_USERSPACE is not set&lt;br /&gt;
# CONFIG_DEVFREQ_GOV_PASSIVE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DEVFREQ Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_PM_DEVFREQ_EVENT is not set&lt;br /&gt;
CONFIG_EXTCON=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Extcon Device Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_EXTCON_ADC_JACK is not set&lt;br /&gt;
# CONFIG_EXTCON_GPIO is not set&lt;br /&gt;
# CONFIG_EXTCON_MAX3355 is not set&lt;br /&gt;
# CONFIG_EXTCON_RT8973A is not set&lt;br /&gt;
# CONFIG_EXTCON_SM5502 is not set&lt;br /&gt;
# CONFIG_EXTCON_USB_GPIO is not set&lt;br /&gt;
CONFIG_MEMORY=y&lt;br /&gt;
CONFIG_TI_EMIF=m&lt;br /&gt;
CONFIG_OMAP_GPMC=y&lt;br /&gt;
# CONFIG_OMAP_GPMC_DEBUG is not set&lt;br /&gt;
CONFIG_IIO=m&lt;br /&gt;
CONFIG_IIO_BUFFER=y&lt;br /&gt;
# CONFIG_IIO_BUFFER_CB is not set&lt;br /&gt;
# CONFIG_IIO_BUFFER_HW_CONSUMER is not set&lt;br /&gt;
CONFIG_IIO_KFIFO_BUF=m&lt;br /&gt;
# CONFIG_IIO_CONFIGFS is not set&lt;br /&gt;
# CONFIG_IIO_TRIGGER is not set&lt;br /&gt;
# CONFIG_IIO_SW_DEVICE is not set&lt;br /&gt;
# CONFIG_IIO_SW_TRIGGER is not set&lt;br /&gt;
# CONFIG_IIO_INPUT_BRIDGE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Accelerometers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ADXL345_I2C is not set&lt;br /&gt;
# CONFIG_ADXL345_SPI is not set&lt;br /&gt;
# CONFIG_BMA180 is not set&lt;br /&gt;
# CONFIG_BMA220 is not set&lt;br /&gt;
# CONFIG_BMC150_ACCEL is not set&lt;br /&gt;
# CONFIG_DA280 is not set&lt;br /&gt;
# CONFIG_DA311 is not set&lt;br /&gt;
# CONFIG_DMARD06 is not set&lt;br /&gt;
# CONFIG_DMARD09 is not set&lt;br /&gt;
# CONFIG_DMARD10 is not set&lt;br /&gt;
# CONFIG_IIO_CROS_EC_ACCEL_LEGACY is not set&lt;br /&gt;
# CONFIG_IIO_ST_ACCEL_3AXIS is not set&lt;br /&gt;
# CONFIG_KXSD9 is not set&lt;br /&gt;
# CONFIG_KXCJK1013 is not set&lt;br /&gt;
# CONFIG_MC3230 is not set&lt;br /&gt;
# CONFIG_MMA7455_I2C is not set&lt;br /&gt;
# CONFIG_MMA7455_SPI is not set&lt;br /&gt;
# CONFIG_MMA7660 is not set&lt;br /&gt;
# CONFIG_MMA8452 is not set&lt;br /&gt;
# CONFIG_MMA9551 is not set&lt;br /&gt;
# CONFIG_MMA9553 is not set&lt;br /&gt;
# CONFIG_MXC4005 is not set&lt;br /&gt;
# CONFIG_MXC6255 is not set&lt;br /&gt;
# CONFIG_SCA3000 is not set&lt;br /&gt;
# CONFIG_STK8312 is not set&lt;br /&gt;
# CONFIG_STK8BA50 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Analog to digital converters&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AD7266 is not set&lt;br /&gt;
# CONFIG_AD7291 is not set&lt;br /&gt;
# CONFIG_AD7298 is not set&lt;br /&gt;
# CONFIG_AD7476 is not set&lt;br /&gt;
# CONFIG_AD7766 is not set&lt;br /&gt;
# CONFIG_AD7791 is not set&lt;br /&gt;
# CONFIG_AD7793 is not set&lt;br /&gt;
# CONFIG_AD7887 is not set&lt;br /&gt;
# CONFIG_AD7923 is not set&lt;br /&gt;
# CONFIG_AD799X is not set&lt;br /&gt;
# CONFIG_CC10001_ADC is not set&lt;br /&gt;
# CONFIG_ENVELOPE_DETECTOR is not set&lt;br /&gt;
# CONFIG_HI8435 is not set&lt;br /&gt;
# CONFIG_HX711 is not set&lt;br /&gt;
# CONFIG_INA2XX_ADC is not set&lt;br /&gt;
# CONFIG_LTC2471 is not set&lt;br /&gt;
# CONFIG_LTC2485 is not set&lt;br /&gt;
# CONFIG_LTC2497 is not set&lt;br /&gt;
# CONFIG_MAX1027 is not set&lt;br /&gt;
# CONFIG_MAX11100 is not set&lt;br /&gt;
# CONFIG_MAX1118 is not set&lt;br /&gt;
# CONFIG_MAX1363 is not set&lt;br /&gt;
# CONFIG_MAX9611 is not set&lt;br /&gt;
# CONFIG_MCP320X is not set&lt;br /&gt;
# CONFIG_MCP3422 is not set&lt;br /&gt;
# CONFIG_NAU7802 is not set&lt;br /&gt;
# CONFIG_SD_ADC_MODULATOR is not set&lt;br /&gt;
# CONFIG_TI_ADC081C is not set&lt;br /&gt;
# CONFIG_TI_ADC0832 is not set&lt;br /&gt;
# CONFIG_TI_ADC084S021 is not set&lt;br /&gt;
# CONFIG_TI_ADC12138 is not set&lt;br /&gt;
# CONFIG_TI_ADC108S102 is not set&lt;br /&gt;
# CONFIG_TI_ADC128S052 is not set&lt;br /&gt;
# CONFIG_TI_ADC161S626 is not set&lt;br /&gt;
# CONFIG_TI_ADS1015 is not set&lt;br /&gt;
# CONFIG_TI_ADS7950 is not set&lt;br /&gt;
# CONFIG_TI_ADS8688 is not set&lt;br /&gt;
# CONFIG_TI_TLC4541 is not set&lt;br /&gt;
CONFIG_TWL4030_MADC=m&lt;br /&gt;
# CONFIG_TWL6030_GPADC is not set&lt;br /&gt;
# CONFIG_VF610_ADC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Amplifiers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AD8366 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Chemical Sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ATLAS_PH_SENSOR is not set&lt;br /&gt;
# CONFIG_CCS811 is not set&lt;br /&gt;
# CONFIG_IAQCORE is not set&lt;br /&gt;
# CONFIG_VZ89X is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Hid Sensor IIO Common&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# SSP Sensor Common&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_IIO_SSP_SENSORHUB is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Counters&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Digital to analog converters&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AD5064 is not set&lt;br /&gt;
# CONFIG_AD5360 is not set&lt;br /&gt;
# CONFIG_AD5380 is not set&lt;br /&gt;
# CONFIG_AD5421 is not set&lt;br /&gt;
# CONFIG_AD5446 is not set&lt;br /&gt;
# CONFIG_AD5449 is not set&lt;br /&gt;
# CONFIG_AD5592R is not set&lt;br /&gt;
# CONFIG_AD5593R is not set&lt;br /&gt;
# CONFIG_AD5504 is not set&lt;br /&gt;
# CONFIG_AD5624R_SPI is not set&lt;br /&gt;
# CONFIG_LTC2632 is not set&lt;br /&gt;
# CONFIG_AD5686 is not set&lt;br /&gt;
# CONFIG_AD5755 is not set&lt;br /&gt;
# CONFIG_AD5761 is not set&lt;br /&gt;
# CONFIG_AD5764 is not set&lt;br /&gt;
# CONFIG_AD5791 is not set&lt;br /&gt;
# CONFIG_AD7303 is not set&lt;br /&gt;
# CONFIG_AD8801 is not set&lt;br /&gt;
# CONFIG_DPOT_DAC is not set&lt;br /&gt;
# CONFIG_DS4424 is not set&lt;br /&gt;
# CONFIG_M62332 is not set&lt;br /&gt;
# CONFIG_MAX517 is not set&lt;br /&gt;
# CONFIG_MAX5821 is not set&lt;br /&gt;
# CONFIG_MCP4725 is not set&lt;br /&gt;
# CONFIG_MCP4922 is not set&lt;br /&gt;
# CONFIG_TI_DAC082S085 is not set&lt;br /&gt;
# CONFIG_VF610_DAC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# IIO dummy driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Frequency Synthesizers DDS/PLL&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Clock Generator/Distribution&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AD9523 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Phase-Locked Loop (PLL) frequency synthesizers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ADF4350 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Digital gyroscope sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ADIS16080 is not set&lt;br /&gt;
# CONFIG_ADIS16130 is not set&lt;br /&gt;
# CONFIG_ADIS16136 is not set&lt;br /&gt;
# CONFIG_ADIS16260 is not set&lt;br /&gt;
# CONFIG_ADXRS450 is not set&lt;br /&gt;
# CONFIG_BMG160 is not set&lt;br /&gt;
# CONFIG_MPU3050_I2C is not set&lt;br /&gt;
# CONFIG_IIO_ST_GYRO_3AXIS is not set&lt;br /&gt;
# CONFIG_ITG3200 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Health Sensors&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Heart Rate Monitors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AFE4403 is not set&lt;br /&gt;
# CONFIG_AFE4404 is not set&lt;br /&gt;
# CONFIG_MAX30100 is not set&lt;br /&gt;
# CONFIG_MAX30102 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Humidity sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AM2315 is not set&lt;br /&gt;
# CONFIG_DHT11 is not set&lt;br /&gt;
# CONFIG_HDC100X is not set&lt;br /&gt;
# CONFIG_HTS221 is not set&lt;br /&gt;
# CONFIG_HTU21 is not set&lt;br /&gt;
# CONFIG_SI7005 is not set&lt;br /&gt;
# CONFIG_SI7020 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Inertial measurement units&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ADIS16400 is not set&lt;br /&gt;
# CONFIG_ADIS16480 is not set&lt;br /&gt;
# CONFIG_BMI160_I2C is not set&lt;br /&gt;
# CONFIG_BMI160_SPI is not set&lt;br /&gt;
# CONFIG_BNO055 is not set&lt;br /&gt;
# CONFIG_KMX61 is not set&lt;br /&gt;
# CONFIG_INV_MPU6050_I2C is not set&lt;br /&gt;
# CONFIG_INV_MPU6050_SPI is not set&lt;br /&gt;
# CONFIG_IIO_ST_LSM6DSX is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Light sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ADJD_S311 is not set&lt;br /&gt;
# CONFIG_AL3320A is not set&lt;br /&gt;
# CONFIG_APDS9300 is not set&lt;br /&gt;
# CONFIG_APDS9960 is not set&lt;br /&gt;
# CONFIG_BH1750 is not set&lt;br /&gt;
# CONFIG_BH1780 is not set&lt;br /&gt;
# CONFIG_CM32181 is not set&lt;br /&gt;
# CONFIG_CM3232 is not set&lt;br /&gt;
# CONFIG_CM3323 is not set&lt;br /&gt;
# CONFIG_CM3605 is not set&lt;br /&gt;
# CONFIG_CM36651 is not set&lt;br /&gt;
# CONFIG_GP2AP020A00F is not set&lt;br /&gt;
# CONFIG_SENSORS_ISL29018 is not set&lt;br /&gt;
# CONFIG_SENSORS_ISL29028 is not set&lt;br /&gt;
# CONFIG_ISL29125 is not set&lt;br /&gt;
# CONFIG_JSA1212 is not set&lt;br /&gt;
# CONFIG_RPR0521 is not set&lt;br /&gt;
# CONFIG_LTR501 is not set&lt;br /&gt;
# CONFIG_MAX44000 is not set&lt;br /&gt;
# CONFIG_OPT3001 is not set&lt;br /&gt;
# CONFIG_PA12203001 is not set&lt;br /&gt;
# CONFIG_SI1145 is not set&lt;br /&gt;
# CONFIG_STK3310 is not set&lt;br /&gt;
# CONFIG_ST_UVIS25 is not set&lt;br /&gt;
# CONFIG_TCS3414 is not set&lt;br /&gt;
# CONFIG_TCS3472 is not set&lt;br /&gt;
# CONFIG_SENSORS_TSL2563 is not set&lt;br /&gt;
# CONFIG_TSL2583 is not set&lt;br /&gt;
# CONFIG_TSL4531 is not set&lt;br /&gt;
# CONFIG_US5182D is not set&lt;br /&gt;
# CONFIG_VCNL4000 is not set&lt;br /&gt;
# CONFIG_VEML6070 is not set&lt;br /&gt;
# CONFIG_VL6180 is not set&lt;br /&gt;
# CONFIG_ZOPT2201 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Magnetometer sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AK8974 is not set&lt;br /&gt;
# CONFIG_AK8975 is not set&lt;br /&gt;
# CONFIG_AK09911 is not set&lt;br /&gt;
# CONFIG_BMC150_MAGN_I2C is not set&lt;br /&gt;
# CONFIG_BMC150_MAGN_SPI is not set&lt;br /&gt;
# CONFIG_MAG3110 is not set&lt;br /&gt;
# CONFIG_MMC35240 is not set&lt;br /&gt;
# CONFIG_IIO_ST_MAGN_3AXIS is not set&lt;br /&gt;
# CONFIG_SENSORS_HMC5843_I2C is not set&lt;br /&gt;
# CONFIG_SENSORS_HMC5843_SPI is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Multiplexers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_IIO_MUX is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Inclinometer sensors&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Digital potentiometers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_DS1803 is not set&lt;br /&gt;
# CONFIG_MAX5481 is not set&lt;br /&gt;
# CONFIG_MAX5487 is not set&lt;br /&gt;
# CONFIG_MCP4131 is not set&lt;br /&gt;
# CONFIG_MCP4531 is not set&lt;br /&gt;
# CONFIG_TPL0102 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Digital potentiostats&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_LMP91000 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Pressure sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ABP060MG is not set&lt;br /&gt;
# CONFIG_BMP280 is not set&lt;br /&gt;
# CONFIG_HP03 is not set&lt;br /&gt;
# CONFIG_MPL115_I2C is not set&lt;br /&gt;
# CONFIG_MPL115_SPI is not set&lt;br /&gt;
# CONFIG_MPL3115 is not set&lt;br /&gt;
# CONFIG_MS5611 is not set&lt;br /&gt;
# CONFIG_MS5637 is not set&lt;br /&gt;
# CONFIG_IIO_ST_PRESS is not set&lt;br /&gt;
# CONFIG_T5403 is not set&lt;br /&gt;
# CONFIG_HP206C is not set&lt;br /&gt;
# CONFIG_ZPA2326 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Lightning sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_AS3935 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Proximity and distance sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_LIDAR_LITE_V2 is not set&lt;br /&gt;
# CONFIG_RFD77402 is not set&lt;br /&gt;
# CONFIG_SRF04 is not set&lt;br /&gt;
# CONFIG_SX9500 is not set&lt;br /&gt;
# CONFIG_SRF08 is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Temperature sensors&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_MAXIM_THERMOCOUPLE is not set&lt;br /&gt;
# CONFIG_MLX90614 is not set&lt;br /&gt;
# CONFIG_TMP006 is not set&lt;br /&gt;
# CONFIG_TMP007 is not set&lt;br /&gt;
# CONFIG_TSYS01 is not set&lt;br /&gt;
# CONFIG_TSYS02D is not set&lt;br /&gt;
CONFIG_PWM=y&lt;br /&gt;
CONFIG_PWM_SYSFS=y&lt;br /&gt;
# CONFIG_PWM_FSL_FTM is not set&lt;br /&gt;
CONFIG_PWM_OMAP_DMTIMER=m&lt;br /&gt;
# CONFIG_PWM_PCA9685 is not set&lt;br /&gt;
# CONFIG_PWM_TIECAP is not set&lt;br /&gt;
# CONFIG_PWM_TIEHRPWM is not set&lt;br /&gt;
CONFIG_PWM_TWL=m&lt;br /&gt;
CONFIG_PWM_TWL_LED=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# IRQ chip support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_IRQCHIP=y&lt;br /&gt;
CONFIG_ARM_GIC_MAX_NR=1&lt;br /&gt;
# CONFIG_ARM_GIC_V3_ITS is not set&lt;br /&gt;
CONFIG_OMAP_IRQCHIP=y&lt;br /&gt;
# CONFIG_IPACK_BUS is not set&lt;br /&gt;
# CONFIG_RESET_CONTROLLER is not set&lt;br /&gt;
# CONFIG_FMC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# PHY Subsystem&lt;br /&gt;
#&lt;br /&gt;
CONFIG_GENERIC_PHY=y&lt;br /&gt;
# CONFIG_BCM_KONA_USB2_PHY is not set&lt;br /&gt;
# CONFIG_PHY_PXA_28NM_HSIC is not set&lt;br /&gt;
# CONFIG_PHY_PXA_28NM_USB2 is not set&lt;br /&gt;
# CONFIG_PHY_CPCAP_USB is not set&lt;br /&gt;
# CONFIG_PHY_DM816X_USB is not set&lt;br /&gt;
CONFIG_OMAP_CONTROL_PHY=m&lt;br /&gt;
# CONFIG_OMAP_USB2 is not set&lt;br /&gt;
# CONFIG_TI_PIPE3 is not set&lt;br /&gt;
CONFIG_TWL4030_USB=m&lt;br /&gt;
# CONFIG_POWERCAP is not set&lt;br /&gt;
# CONFIG_MCB is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Performance monitor support&lt;br /&gt;
#&lt;br /&gt;
CONFIG_ARM_PMU=y&lt;br /&gt;
# CONFIG_RAS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Android&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_ANDROID is not set&lt;br /&gt;
CONFIG_DAX=m&lt;br /&gt;
CONFIG_NVMEM=y&lt;br /&gt;
# CONFIG_STM is not set&lt;br /&gt;
# CONFIG_INTEL_TH is not set&lt;br /&gt;
# CONFIG_FPGA is not set&lt;br /&gt;
# CONFIG_FSI is not set&lt;br /&gt;
# CONFIG_TEE is not set&lt;br /&gt;
CONFIG_PM_OPP=y&lt;br /&gt;
# CONFIG_SIOX is not set&lt;br /&gt;
# CONFIG_SLIMBUS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Firmware Drivers&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_FIRMWARE_MEMMAP is not set&lt;br /&gt;
# CONFIG_FW_CFG_SYSFS is not set&lt;br /&gt;
CONFIG_HAVE_ARM_SMCCC=y&lt;br /&gt;
# CONFIG_GOOGLE_FIRMWARE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Tegra firmware driver&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# File systems&lt;br /&gt;
#&lt;br /&gt;
CONFIG_DCACHE_WORD_ACCESS=y&lt;br /&gt;
CONFIG_FS_IOMAP=y&lt;br /&gt;
# CONFIG_EXT2_FS is not set&lt;br /&gt;
# CONFIG_EXT3_FS is not set&lt;br /&gt;
CONFIG_EXT4_FS=y&lt;br /&gt;
CONFIG_EXT4_USE_FOR_EXT2=y&lt;br /&gt;
CONFIG_EXT4_FS_POSIX_ACL=y&lt;br /&gt;
CONFIG_EXT4_FS_SECURITY=y&lt;br /&gt;
CONFIG_EXT4_ENCRYPTION=y&lt;br /&gt;
CONFIG_EXT4_FS_ENCRYPTION=y&lt;br /&gt;
# CONFIG_EXT4_DEBUG is not set&lt;br /&gt;
CONFIG_JBD2=y&lt;br /&gt;
# CONFIG_JBD2_DEBUG is not set&lt;br /&gt;
CONFIG_FS_MBCACHE=y&lt;br /&gt;
CONFIG_REISERFS_FS=m&lt;br /&gt;
# CONFIG_REISERFS_CHECK is not set&lt;br /&gt;
# CONFIG_REISERFS_PROC_INFO is not set&lt;br /&gt;
CONFIG_REISERFS_FS_XATTR=y&lt;br /&gt;
CONFIG_REISERFS_FS_POSIX_ACL=y&lt;br /&gt;
CONFIG_REISERFS_FS_SECURITY=y&lt;br /&gt;
CONFIG_JFS_FS=m&lt;br /&gt;
CONFIG_JFS_POSIX_ACL=y&lt;br /&gt;
CONFIG_JFS_SECURITY=y&lt;br /&gt;
# CONFIG_JFS_DEBUG is not set&lt;br /&gt;
# CONFIG_JFS_STATISTICS is not set&lt;br /&gt;
CONFIG_XFS_FS=m&lt;br /&gt;
CONFIG_XFS_QUOTA=y&lt;br /&gt;
CONFIG_XFS_POSIX_ACL=y&lt;br /&gt;
CONFIG_XFS_RT=y&lt;br /&gt;
# CONFIG_XFS_ONLINE_SCRUB is not set&lt;br /&gt;
# CONFIG_XFS_WARN is not set&lt;br /&gt;
# CONFIG_XFS_DEBUG is not set&lt;br /&gt;
CONFIG_GFS2_FS=m&lt;br /&gt;
# CONFIG_OCFS2_FS is not set&lt;br /&gt;
CONFIG_BTRFS_FS=m&lt;br /&gt;
CONFIG_BTRFS_FS_POSIX_ACL=y&lt;br /&gt;
# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set&lt;br /&gt;
# CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not set&lt;br /&gt;
# CONFIG_BTRFS_DEBUG is not set&lt;br /&gt;
# CONFIG_BTRFS_ASSERT is not set&lt;br /&gt;
# CONFIG_BTRFS_FS_REF_VERIFY is not set&lt;br /&gt;
# CONFIG_NILFS2_FS is not set&lt;br /&gt;
# CONFIG_F2FS_FS is not set&lt;br /&gt;
CONFIG_FS_POSIX_ACL=y&lt;br /&gt;
CONFIG_EXPORTFS=y&lt;br /&gt;
# CONFIG_EXPORTFS_BLOCK_OPS is not set&lt;br /&gt;
CONFIG_FILE_LOCKING=y&lt;br /&gt;
# CONFIG_MANDATORY_FILE_LOCKING is not set&lt;br /&gt;
CONFIG_FS_ENCRYPTION=y&lt;br /&gt;
CONFIG_FSNOTIFY=y&lt;br /&gt;
CONFIG_DNOTIFY=y&lt;br /&gt;
CONFIG_INOTIFY_USER=y&lt;br /&gt;
CONFIG_FANOTIFY=y&lt;br /&gt;
CONFIG_QUOTA=y&lt;br /&gt;
# CONFIG_QUOTA_NETLINK_INTERFACE is not set&lt;br /&gt;
# CONFIG_PRINT_QUOTA_WARNING is not set&lt;br /&gt;
# CONFIG_QUOTA_DEBUG is not set&lt;br /&gt;
# CONFIG_QFMT_V1 is not set&lt;br /&gt;
# CONFIG_QFMT_V2 is not set&lt;br /&gt;
CONFIG_QUOTACTL=y&lt;br /&gt;
CONFIG_AUTOFS4_FS=m&lt;br /&gt;
CONFIG_FUSE_FS=m&lt;br /&gt;
# CONFIG_CUSE is not set&lt;br /&gt;
# CONFIG_OVERLAY_FS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Caches&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_FSCACHE is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# CD-ROM/DVD Filesystems&lt;br /&gt;
#&lt;br /&gt;
CONFIG_ISO9660_FS=m&lt;br /&gt;
CONFIG_JOLIET=y&lt;br /&gt;
CONFIG_ZISOFS=y&lt;br /&gt;
CONFIG_UDF_FS=m&lt;br /&gt;
CONFIG_UDF_NLS=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# DOS/FAT/NT Filesystems&lt;br /&gt;
#&lt;br /&gt;
CONFIG_FAT_FS=y&lt;br /&gt;
CONFIG_MSDOS_FS=y&lt;br /&gt;
CONFIG_VFAT_FS=m&lt;br /&gt;
CONFIG_FAT_DEFAULT_CODEPAGE=437&lt;br /&gt;
CONFIG_FAT_DEFAULT_IOCHARSET=&amp;quot;iso8859-1&amp;quot;&lt;br /&gt;
# CONFIG_FAT_DEFAULT_UTF8 is not set&lt;br /&gt;
# CONFIG_NTFS_FS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Pseudo filesystems&lt;br /&gt;
#&lt;br /&gt;
CONFIG_PROC_FS=y&lt;br /&gt;
CONFIG_PROC_SYSCTL=y&lt;br /&gt;
CONFIG_PROC_PAGE_MONITOR=y&lt;br /&gt;
CONFIG_PROC_CHILDREN=y&lt;br /&gt;
CONFIG_KERNFS=y&lt;br /&gt;
CONFIG_SYSFS=y&lt;br /&gt;
CONFIG_TMPFS=y&lt;br /&gt;
CONFIG_TMPFS_POSIX_ACL=y&lt;br /&gt;
CONFIG_TMPFS_XATTR=y&lt;br /&gt;
# CONFIG_HUGETLB_PAGE is not set&lt;br /&gt;
CONFIG_CONFIGFS_FS=y&lt;br /&gt;
CONFIG_MISC_FILESYSTEMS=y&lt;br /&gt;
# CONFIG_ORANGEFS_FS is not set&lt;br /&gt;
# CONFIG_ADFS_FS is not set&lt;br /&gt;
# CONFIG_AFFS_FS is not set&lt;br /&gt;
# CONFIG_ECRYPT_FS is not set&lt;br /&gt;
# CONFIG_HFS_FS is not set&lt;br /&gt;
CONFIG_HFSPLUS_FS=m&lt;br /&gt;
CONFIG_HFSPLUS_FS_POSIX_ACL=y&lt;br /&gt;
# CONFIG_BEFS_FS is not set&lt;br /&gt;
CONFIG_BFS_FS=m&lt;br /&gt;
CONFIG_EFS_FS=m&lt;br /&gt;
# CONFIG_JFFS2_FS is not set&lt;br /&gt;
CONFIG_UBIFS_FS=y&lt;br /&gt;
CONFIG_UBIFS_FS_ADVANCED_COMPR=y&lt;br /&gt;
CONFIG_UBIFS_FS_LZO=y&lt;br /&gt;
CONFIG_UBIFS_FS_ZLIB=y&lt;br /&gt;
# CONFIG_UBIFS_ATIME_SUPPORT is not set&lt;br /&gt;
# CONFIG_UBIFS_FS_ENCRYPTION is not set&lt;br /&gt;
CONFIG_UBIFS_FS_SECURITY=y&lt;br /&gt;
# CONFIG_CRAMFS is not set&lt;br /&gt;
CONFIG_SQUASHFS=m&lt;br /&gt;
CONFIG_SQUASHFS_FILE_CACHE=y&lt;br /&gt;
# CONFIG_SQUASHFS_FILE_DIRECT is not set&lt;br /&gt;
CONFIG_SQUASHFS_DECOMP_SINGLE=y&lt;br /&gt;
# CONFIG_SQUASHFS_DECOMP_MULTI is not set&lt;br /&gt;
# CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU is not set&lt;br /&gt;
# CONFIG_SQUASHFS_XATTR is not set&lt;br /&gt;
CONFIG_SQUASHFS_ZLIB=y&lt;br /&gt;
# CONFIG_SQUASHFS_LZ4 is not set&lt;br /&gt;
# CONFIG_SQUASHFS_LZO is not set&lt;br /&gt;
# CONFIG_SQUASHFS_XZ is not set&lt;br /&gt;
# CONFIG_SQUASHFS_ZSTD is not set&lt;br /&gt;
# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set&lt;br /&gt;
# CONFIG_SQUASHFS_EMBEDDED is not set&lt;br /&gt;
CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3&lt;br /&gt;
CONFIG_VXFS_FS=m&lt;br /&gt;
CONFIG_MINIX_FS=m&lt;br /&gt;
# CONFIG_OMFS_FS is not set&lt;br /&gt;
CONFIG_HPFS_FS=m&lt;br /&gt;
CONFIG_QNX4FS_FS=m&lt;br /&gt;
CONFIG_QNX6FS_FS=m&lt;br /&gt;
# CONFIG_QNX6FS_DEBUG is not set&lt;br /&gt;
CONFIG_ROMFS_FS=m&lt;br /&gt;
CONFIG_ROMFS_BACKED_BY_BLOCK=y&lt;br /&gt;
# CONFIG_ROMFS_BACKED_BY_MTD is not set&lt;br /&gt;
# CONFIG_ROMFS_BACKED_BY_BOTH is not set&lt;br /&gt;
CONFIG_ROMFS_ON_BLOCK=y&lt;br /&gt;
# CONFIG_PSTORE is not set&lt;br /&gt;
CONFIG_SYSV_FS=m&lt;br /&gt;
CONFIG_UFS_FS=m&lt;br /&gt;
# CONFIG_UFS_FS_WRITE is not set&lt;br /&gt;
# CONFIG_UFS_DEBUG is not set&lt;br /&gt;
CONFIG_NETWORK_FILESYSTEMS=y&lt;br /&gt;
CONFIG_NFS_FS=m&lt;br /&gt;
CONFIG_NFS_V2=m&lt;br /&gt;
CONFIG_NFS_V3=m&lt;br /&gt;
CONFIG_NFS_V3_ACL=y&lt;br /&gt;
CONFIG_NFS_V4=m&lt;br /&gt;
# CONFIG_NFS_SWAP is not set&lt;br /&gt;
# CONFIG_NFS_V4_1 is not set&lt;br /&gt;
# CONFIG_NFS_USE_LEGACY_DNS is not set&lt;br /&gt;
CONFIG_NFS_USE_KERNEL_DNS=y&lt;br /&gt;
CONFIG_NFSD=m&lt;br /&gt;
CONFIG_NFSD_V2_ACL=y&lt;br /&gt;
CONFIG_NFSD_V3=y&lt;br /&gt;
CONFIG_NFSD_V3_ACL=y&lt;br /&gt;
CONFIG_NFSD_V4=y&lt;br /&gt;
# CONFIG_NFSD_BLOCKLAYOUT is not set&lt;br /&gt;
# CONFIG_NFSD_SCSILAYOUT is not set&lt;br /&gt;
# CONFIG_NFSD_FLEXFILELAYOUT is not set&lt;br /&gt;
# CONFIG_NFSD_FAULT_INJECTION is not set&lt;br /&gt;
CONFIG_GRACE_PERIOD=m&lt;br /&gt;
CONFIG_LOCKD=m&lt;br /&gt;
CONFIG_LOCKD_V4=y&lt;br /&gt;
CONFIG_NFS_ACL_SUPPORT=m&lt;br /&gt;
CONFIG_NFS_COMMON=y&lt;br /&gt;
CONFIG_SUNRPC=m&lt;br /&gt;
CONFIG_SUNRPC_GSS=m&lt;br /&gt;
CONFIG_RPCSEC_GSS_KRB5=m&lt;br /&gt;
# CONFIG_SUNRPC_DEBUG is not set&lt;br /&gt;
# CONFIG_CEPH_FS is not set&lt;br /&gt;
CONFIG_CIFS=m&lt;br /&gt;
# CONFIG_CIFS_STATS is not set&lt;br /&gt;
# CONFIG_CIFS_WEAK_PW_HASH is not set&lt;br /&gt;
# CONFIG_CIFS_UPCALL is not set&lt;br /&gt;
CONFIG_CIFS_XATTR=y&lt;br /&gt;
CONFIG_CIFS_POSIX=y&lt;br /&gt;
# CONFIG_CIFS_ACL is not set&lt;br /&gt;
# CONFIG_CIFS_DEBUG is not set&lt;br /&gt;
# CONFIG_CIFS_DFS_UPCALL is not set&lt;br /&gt;
# CONFIG_CIFS_SMB311 is not set&lt;br /&gt;
# CONFIG_CODA_FS is not set&lt;br /&gt;
# CONFIG_AFS_FS is not set&lt;br /&gt;
CONFIG_NLS=y&lt;br /&gt;
CONFIG_NLS_DEFAULT=&amp;quot;utf-8&amp;quot;&lt;br /&gt;
CONFIG_NLS_CODEPAGE_437=m&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_737 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_775 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_850 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_852 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_855 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_857 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_860 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_861 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_862 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_863 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_864 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_865 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_866 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_869 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_936 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_950 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_932 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_949 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_874 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_8 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_1250 is not set&lt;br /&gt;
# CONFIG_NLS_CODEPAGE_1251 is not set&lt;br /&gt;
CONFIG_NLS_ASCII=m&lt;br /&gt;
CONFIG_NLS_ISO8859_1=m&lt;br /&gt;
# CONFIG_NLS_ISO8859_2 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_3 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_4 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_5 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_6 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_7 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_9 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_13 is not set&lt;br /&gt;
# CONFIG_NLS_ISO8859_14 is not set&lt;br /&gt;
CONFIG_NLS_ISO8859_15=m&lt;br /&gt;
# CONFIG_NLS_KOI8_R is not set&lt;br /&gt;
# CONFIG_NLS_KOI8_U is not set&lt;br /&gt;
# CONFIG_NLS_MAC_ROMAN is not set&lt;br /&gt;
# CONFIG_NLS_MAC_CELTIC is not set&lt;br /&gt;
# CONFIG_NLS_MAC_CENTEURO is not set&lt;br /&gt;
# CONFIG_NLS_MAC_CROATIAN is not set&lt;br /&gt;
# CONFIG_NLS_MAC_CYRILLIC is not set&lt;br /&gt;
# CONFIG_NLS_MAC_GAELIC is not set&lt;br /&gt;
# CONFIG_NLS_MAC_GREEK is not set&lt;br /&gt;
# CONFIG_NLS_MAC_ICELAND is not set&lt;br /&gt;
# CONFIG_NLS_MAC_INUIT is not set&lt;br /&gt;
# CONFIG_NLS_MAC_ROMANIAN is not set&lt;br /&gt;
# CONFIG_NLS_MAC_TURKISH is not set&lt;br /&gt;
CONFIG_NLS_UTF8=m&lt;br /&gt;
# CONFIG_DLM is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Kernel hacking&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# printk and dmesg options&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_PRINTK_TIME is not set&lt;br /&gt;
CONFIG_CONSOLE_LOGLEVEL_DEFAULT=7&lt;br /&gt;
CONFIG_MESSAGE_LOGLEVEL_DEFAULT=4&lt;br /&gt;
# CONFIG_BOOT_PRINTK_DELAY is not set&lt;br /&gt;
# CONFIG_DYNAMIC_DEBUG is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Compile-time checks and compiler options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_DEBUG_INFO=y&lt;br /&gt;
# CONFIG_DEBUG_INFO_REDUCED is not set&lt;br /&gt;
# CONFIG_DEBUG_INFO_SPLIT is not set&lt;br /&gt;
# CONFIG_DEBUG_INFO_DWARF4 is not set&lt;br /&gt;
# CONFIG_GDB_SCRIPTS is not set&lt;br /&gt;
CONFIG_ENABLE_WARN_DEPRECATED=y&lt;br /&gt;
CONFIG_ENABLE_MUST_CHECK=y&lt;br /&gt;
CONFIG_FRAME_WARN=2048&lt;br /&gt;
# CONFIG_STRIP_ASM_SYMS is not set&lt;br /&gt;
# CONFIG_READABLE_ASM is not set&lt;br /&gt;
# CONFIG_UNUSED_SYMBOLS is not set&lt;br /&gt;
# CONFIG_PAGE_OWNER is not set&lt;br /&gt;
CONFIG_DEBUG_FS=y&lt;br /&gt;
# CONFIG_HEADERS_CHECK is not set&lt;br /&gt;
# CONFIG_DEBUG_SECTION_MISMATCH is not set&lt;br /&gt;
CONFIG_SECTION_MISMATCH_WARN_ONLY=y&lt;br /&gt;
CONFIG_FRAME_POINTER=y&lt;br /&gt;
# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set&lt;br /&gt;
# CONFIG_MAGIC_SYSRQ is not set&lt;br /&gt;
CONFIG_DEBUG_KERNEL=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Memory Debugging&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_PAGE_EXTENSION is not set&lt;br /&gt;
# CONFIG_PAGE_POISONING is not set&lt;br /&gt;
# CONFIG_DEBUG_RODATA_TEST is not set&lt;br /&gt;
# CONFIG_DEBUG_OBJECTS is not set&lt;br /&gt;
# CONFIG_SLUB_DEBUG_ON is not set&lt;br /&gt;
# CONFIG_SLUB_STATS is not set&lt;br /&gt;
CONFIG_HAVE_DEBUG_KMEMLEAK=y&lt;br /&gt;
# CONFIG_DEBUG_KMEMLEAK is not set&lt;br /&gt;
# CONFIG_DEBUG_STACK_USAGE is not set&lt;br /&gt;
# CONFIG_DEBUG_VM is not set&lt;br /&gt;
CONFIG_ARCH_HAS_DEBUG_VIRTUAL=y&lt;br /&gt;
# CONFIG_DEBUG_VIRTUAL is not set&lt;br /&gt;
# CONFIG_DEBUG_MEMORY_INIT is not set&lt;br /&gt;
# CONFIG_DEBUG_HIGHMEM is not set&lt;br /&gt;
# CONFIG_DEBUG_SHIRQ is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Debug Lockups and Hangs&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_SOFTLOCKUP_DETECTOR is not set&lt;br /&gt;
CONFIG_DETECT_HUNG_TASK=y&lt;br /&gt;
CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120&lt;br /&gt;
# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set&lt;br /&gt;
CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0&lt;br /&gt;
# CONFIG_WQ_WATCHDOG is not set&lt;br /&gt;
# CONFIG_PANIC_ON_OOPS is not set&lt;br /&gt;
CONFIG_PANIC_ON_OOPS_VALUE=0&lt;br /&gt;
CONFIG_PANIC_TIMEOUT=12&lt;br /&gt;
CONFIG_SCHED_DEBUG=y&lt;br /&gt;
CONFIG_SCHED_INFO=y&lt;br /&gt;
# CONFIG_SCHEDSTATS is not set&lt;br /&gt;
# CONFIG_SCHED_STACK_END_CHECK is not set&lt;br /&gt;
# CONFIG_DEBUG_TIMEKEEPING is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Lock Debugging (spinlocks, mutexes, etc...)&lt;br /&gt;
#&lt;br /&gt;
CONFIG_DEBUG_RT_MUTEXES=y&lt;br /&gt;
CONFIG_DEBUG_SPINLOCK=y&lt;br /&gt;
CONFIG_DEBUG_MUTEXES=y&lt;br /&gt;
# CONFIG_DEBUG_WW_MUTEX_SLOWPATH is not set&lt;br /&gt;
CONFIG_DEBUG_LOCK_ALLOC=y&lt;br /&gt;
CONFIG_PROVE_LOCKING=y&lt;br /&gt;
CONFIG_LOCKDEP=y&lt;br /&gt;
# CONFIG_LOCK_STAT is not set&lt;br /&gt;
# CONFIG_DEBUG_LOCKDEP is not set&lt;br /&gt;
# CONFIG_DEBUG_ATOMIC_SLEEP is not set&lt;br /&gt;
# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set&lt;br /&gt;
# CONFIG_LOCK_TORTURE_TEST is not set&lt;br /&gt;
# CONFIG_WW_MUTEX_SELFTEST is not set&lt;br /&gt;
CONFIG_TRACE_IRQFLAGS=y&lt;br /&gt;
CONFIG_STACKTRACE=y&lt;br /&gt;
# CONFIG_WARN_ALL_UNSEEDED_RANDOM is not set&lt;br /&gt;
# CONFIG_DEBUG_KOBJECT is not set&lt;br /&gt;
# CONFIG_DEBUG_BUGVERBOSE is not set&lt;br /&gt;
# CONFIG_DEBUG_LIST is not set&lt;br /&gt;
# CONFIG_DEBUG_PI_LIST is not set&lt;br /&gt;
# CONFIG_DEBUG_SG is not set&lt;br /&gt;
# CONFIG_DEBUG_NOTIFIERS is not set&lt;br /&gt;
# CONFIG_DEBUG_CREDENTIALS is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# RCU Debugging&lt;br /&gt;
#&lt;br /&gt;
CONFIG_PROVE_RCU=y&lt;br /&gt;
# CONFIG_TORTURE_TEST is not set&lt;br /&gt;
# CONFIG_RCU_PERF_TEST is not set&lt;br /&gt;
# CONFIG_RCU_TORTURE_TEST is not set&lt;br /&gt;
# CONFIG_RCU_TRACE is not set&lt;br /&gt;
# CONFIG_RCU_EQS_DEBUG is not set&lt;br /&gt;
# CONFIG_DEBUG_WQ_FORCE_RR_CPU is not set&lt;br /&gt;
# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set&lt;br /&gt;
# CONFIG_NOTIFIER_ERROR_INJECTION is not set&lt;br /&gt;
# CONFIG_FAULT_INJECTION is not set&lt;br /&gt;
# CONFIG_LATENCYTOP is not set&lt;br /&gt;
CONFIG_HAVE_FUNCTION_TRACER=y&lt;br /&gt;
CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y&lt;br /&gt;
CONFIG_HAVE_DYNAMIC_FTRACE=y&lt;br /&gt;
CONFIG_HAVE_DYNAMIC_FTRACE_WITH_REGS=y&lt;br /&gt;
CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y&lt;br /&gt;
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y&lt;br /&gt;
CONFIG_HAVE_C_RECORDMCOUNT=y&lt;br /&gt;
CONFIG_TRACING_SUPPORT=y&lt;br /&gt;
# CONFIG_FTRACE is not set&lt;br /&gt;
# CONFIG_DMA_API_DEBUG is not set&lt;br /&gt;
# CONFIG_RUNTIME_TESTING_MENU is not set&lt;br /&gt;
# CONFIG_MEMTEST is not set&lt;br /&gt;
# CONFIG_BUG_ON_DATA_CORRUPTION is not set&lt;br /&gt;
# CONFIG_SAMPLES is not set&lt;br /&gt;
CONFIG_HAVE_ARCH_KGDB=y&lt;br /&gt;
# CONFIG_KGDB is not set&lt;br /&gt;
# CONFIG_ARCH_WANTS_UBSAN_NO_NULL is not set&lt;br /&gt;
# CONFIG_UBSAN is not set&lt;br /&gt;
CONFIG_ARCH_HAS_DEVMEM_IS_ALLOWED=y&lt;br /&gt;
# CONFIG_ARM_PTDUMP_CORE is not set&lt;br /&gt;
# CONFIG_ARM_PTDUMP_DEBUGFS is not set&lt;br /&gt;
# CONFIG_DEBUG_WX is not set&lt;br /&gt;
# CONFIG_ARM_UNWIND is not set&lt;br /&gt;
# CONFIG_DEBUG_USER is not set&lt;br /&gt;
# CONFIG_DEBUG_LL is not set&lt;br /&gt;
CONFIG_DEBUG_LL_INCLUDE=&amp;quot;mach/debug-macro.S&amp;quot;&lt;br /&gt;
# CONFIG_DEBUG_UART_8250 is not set&lt;br /&gt;
CONFIG_UNCOMPRESS_INCLUDE=&amp;quot;debug/uncompress.h&amp;quot;&lt;br /&gt;
# CONFIG_PID_IN_CONTEXTIDR is not set&lt;br /&gt;
# CONFIG_CORESIGHT is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Security options&lt;br /&gt;
#&lt;br /&gt;
CONFIG_KEYS=y&lt;br /&gt;
# CONFIG_PERSISTENT_KEYRINGS is not set&lt;br /&gt;
# CONFIG_BIG_KEYS is not set&lt;br /&gt;
# CONFIG_ENCRYPTED_KEYS is not set&lt;br /&gt;
# CONFIG_KEY_DH_OPERATIONS is not set&lt;br /&gt;
# CONFIG_SECURITY_DMESG_RESTRICT is not set&lt;br /&gt;
# CONFIG_SECURITY is not set&lt;br /&gt;
# CONFIG_SECURITYFS is not set&lt;br /&gt;
CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR=y&lt;br /&gt;
# CONFIG_HARDENED_USERCOPY is not set&lt;br /&gt;
# CONFIG_STATIC_USERMODEHELPER is not set&lt;br /&gt;
CONFIG_DEFAULT_SECURITY_DAC=y&lt;br /&gt;
CONFIG_DEFAULT_SECURITY=&amp;quot;&amp;quot;&lt;br /&gt;
CONFIG_XOR_BLOCKS=m&lt;br /&gt;
CONFIG_CRYPTO=y&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Crypto core or helper&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_ALGAPI=y&lt;br /&gt;
CONFIG_CRYPTO_ALGAPI2=y&lt;br /&gt;
CONFIG_CRYPTO_AEAD=y&lt;br /&gt;
CONFIG_CRYPTO_AEAD2=y&lt;br /&gt;
CONFIG_CRYPTO_BLKCIPHER=y&lt;br /&gt;
CONFIG_CRYPTO_BLKCIPHER2=y&lt;br /&gt;
CONFIG_CRYPTO_HASH=y&lt;br /&gt;
CONFIG_CRYPTO_HASH2=y&lt;br /&gt;
CONFIG_CRYPTO_RNG=y&lt;br /&gt;
CONFIG_CRYPTO_RNG2=y&lt;br /&gt;
CONFIG_CRYPTO_RNG_DEFAULT=y&lt;br /&gt;
CONFIG_CRYPTO_AKCIPHER2=y&lt;br /&gt;
CONFIG_CRYPTO_AKCIPHER=y&lt;br /&gt;
CONFIG_CRYPTO_KPP2=y&lt;br /&gt;
CONFIG_CRYPTO_ACOMP2=y&lt;br /&gt;
CONFIG_CRYPTO_RSA=y&lt;br /&gt;
# CONFIG_CRYPTO_DH is not set&lt;br /&gt;
# CONFIG_CRYPTO_ECDH is not set&lt;br /&gt;
CONFIG_CRYPTO_MANAGER=y&lt;br /&gt;
CONFIG_CRYPTO_MANAGER2=y&lt;br /&gt;
# CONFIG_CRYPTO_USER is not set&lt;br /&gt;
CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y&lt;br /&gt;
CONFIG_CRYPTO_GF128MUL=y&lt;br /&gt;
CONFIG_CRYPTO_NULL=y&lt;br /&gt;
CONFIG_CRYPTO_NULL2=y&lt;br /&gt;
CONFIG_CRYPTO_WORKQUEUE=y&lt;br /&gt;
CONFIG_CRYPTO_CRYPTD=m&lt;br /&gt;
CONFIG_CRYPTO_MCRYPTD=m&lt;br /&gt;
CONFIG_CRYPTO_AUTHENC=m&lt;br /&gt;
# CONFIG_CRYPTO_TEST is not set&lt;br /&gt;
CONFIG_CRYPTO_SIMD=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Authenticated Encryption with Associated Data&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_CCM=m&lt;br /&gt;
CONFIG_CRYPTO_GCM=m&lt;br /&gt;
# CONFIG_CRYPTO_CHACHA20POLY1305 is not set&lt;br /&gt;
CONFIG_CRYPTO_SEQIV=y&lt;br /&gt;
CONFIG_CRYPTO_ECHAINIV=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Block modes&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_CBC=y&lt;br /&gt;
CONFIG_CRYPTO_CTR=y&lt;br /&gt;
CONFIG_CRYPTO_CTS=y&lt;br /&gt;
CONFIG_CRYPTO_ECB=y&lt;br /&gt;
CONFIG_CRYPTO_LRW=m&lt;br /&gt;
# CONFIG_CRYPTO_PCBC is not set&lt;br /&gt;
CONFIG_CRYPTO_XTS=y&lt;br /&gt;
# CONFIG_CRYPTO_KEYWRAP is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Hash modes&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_CMAC=m&lt;br /&gt;
CONFIG_CRYPTO_HMAC=y&lt;br /&gt;
# CONFIG_CRYPTO_XCBC is not set&lt;br /&gt;
# CONFIG_CRYPTO_VMAC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Digest&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_CRC32C=y&lt;br /&gt;
# CONFIG_CRYPTO_CRC32 is not set&lt;br /&gt;
CONFIG_CRYPTO_CRCT10DIF=y&lt;br /&gt;
CONFIG_CRYPTO_GHASH=m&lt;br /&gt;
# CONFIG_CRYPTO_POLY1305 is not set&lt;br /&gt;
CONFIG_CRYPTO_MD4=m&lt;br /&gt;
CONFIG_CRYPTO_MD5=m&lt;br /&gt;
CONFIG_CRYPTO_MICHAEL_MIC=y&lt;br /&gt;
# CONFIG_CRYPTO_RMD128 is not set&lt;br /&gt;
# CONFIG_CRYPTO_RMD160 is not set&lt;br /&gt;
# CONFIG_CRYPTO_RMD256 is not set&lt;br /&gt;
# CONFIG_CRYPTO_RMD320 is not set&lt;br /&gt;
CONFIG_CRYPTO_SHA1=m&lt;br /&gt;
CONFIG_CRYPTO_SHA256=y&lt;br /&gt;
CONFIG_CRYPTO_SHA512=m&lt;br /&gt;
CONFIG_CRYPTO_SHA3=m&lt;br /&gt;
# CONFIG_CRYPTO_SM3 is not set&lt;br /&gt;
CONFIG_CRYPTO_TGR192=m&lt;br /&gt;
CONFIG_CRYPTO_WP512=m&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Ciphers&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_AES=y&lt;br /&gt;
# CONFIG_CRYPTO_AES_TI is not set&lt;br /&gt;
# CONFIG_CRYPTO_ANUBIS is not set&lt;br /&gt;
CONFIG_CRYPTO_ARC4=m&lt;br /&gt;
# CONFIG_CRYPTO_BLOWFISH is not set&lt;br /&gt;
# CONFIG_CRYPTO_CAMELLIA is not set&lt;br /&gt;
# CONFIG_CRYPTO_CAST5 is not set&lt;br /&gt;
# CONFIG_CRYPTO_CAST6 is not set&lt;br /&gt;
CONFIG_CRYPTO_DES=m&lt;br /&gt;
# CONFIG_CRYPTO_FCRYPT is not set&lt;br /&gt;
# CONFIG_CRYPTO_KHAZAD is not set&lt;br /&gt;
# CONFIG_CRYPTO_SALSA20 is not set&lt;br /&gt;
CONFIG_CRYPTO_CHACHA20=m&lt;br /&gt;
# CONFIG_CRYPTO_SEED is not set&lt;br /&gt;
# CONFIG_CRYPTO_SERPENT is not set&lt;br /&gt;
# CONFIG_CRYPTO_TEA is not set&lt;br /&gt;
# CONFIG_CRYPTO_TWOFISH is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Compression&lt;br /&gt;
#&lt;br /&gt;
CONFIG_CRYPTO_DEFLATE=y&lt;br /&gt;
CONFIG_CRYPTO_LZO=y&lt;br /&gt;
# CONFIG_CRYPTO_842 is not set&lt;br /&gt;
# CONFIG_CRYPTO_LZ4 is not set&lt;br /&gt;
# CONFIG_CRYPTO_LZ4HC is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Random Number Generation&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_CRYPTO_ANSI_CPRNG is not set&lt;br /&gt;
CONFIG_CRYPTO_DRBG_MENU=y&lt;br /&gt;
CONFIG_CRYPTO_DRBG_HMAC=y&lt;br /&gt;
# CONFIG_CRYPTO_DRBG_HASH is not set&lt;br /&gt;
# CONFIG_CRYPTO_DRBG_CTR is not set&lt;br /&gt;
CONFIG_CRYPTO_DRBG=y&lt;br /&gt;
CONFIG_CRYPTO_JITTERENTROPY=y&lt;br /&gt;
CONFIG_CRYPTO_USER_API=y&lt;br /&gt;
CONFIG_CRYPTO_USER_API_HASH=y&lt;br /&gt;
# CONFIG_CRYPTO_USER_API_SKCIPHER is not set&lt;br /&gt;
# CONFIG_CRYPTO_USER_API_RNG is not set&lt;br /&gt;
# CONFIG_CRYPTO_USER_API_AEAD is not set&lt;br /&gt;
CONFIG_CRYPTO_HASH_INFO=y&lt;br /&gt;
CONFIG_CRYPTO_HW=y&lt;br /&gt;
# CONFIG_CRYPTO_DEV_FSL_CAAM_CRYPTO_API_DESC is not set&lt;br /&gt;
# CONFIG_CRYPTO_DEV_OMAP is not set&lt;br /&gt;
CONFIG_ASYMMETRIC_KEY_TYPE=y&lt;br /&gt;
CONFIG_ASYMMETRIC_PUBLIC_KEY_SUBTYPE=y&lt;br /&gt;
CONFIG_X509_CERTIFICATE_PARSER=y&lt;br /&gt;
CONFIG_PKCS7_MESSAGE_PARSER=y&lt;br /&gt;
# CONFIG_PKCS7_TEST_KEY is not set&lt;br /&gt;
# CONFIG_SIGNED_PE_FILE_VERIFICATION is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Certificates for signature checking&lt;br /&gt;
#&lt;br /&gt;
CONFIG_SYSTEM_TRUSTED_KEYRING=y&lt;br /&gt;
CONFIG_SYSTEM_TRUSTED_KEYS=&amp;quot;&amp;quot;&lt;br /&gt;
# CONFIG_SYSTEM_EXTRA_CERTIFICATE is not set&lt;br /&gt;
# CONFIG_SECONDARY_TRUSTED_KEYRING is not set&lt;br /&gt;
# CONFIG_SYSTEM_BLACKLIST_KEYRING is not set&lt;br /&gt;
CONFIG_ARM_CRYPTO=y&lt;br /&gt;
CONFIG_CRYPTO_SHA1_ARM=m&lt;br /&gt;
CONFIG_CRYPTO_SHA1_ARM_NEON=m&lt;br /&gt;
# CONFIG_CRYPTO_SHA1_ARM_CE is not set&lt;br /&gt;
# CONFIG_CRYPTO_SHA2_ARM_CE is not set&lt;br /&gt;
CONFIG_CRYPTO_SHA256_ARM=m&lt;br /&gt;
CONFIG_CRYPTO_SHA512_ARM=m&lt;br /&gt;
CONFIG_CRYPTO_AES_ARM=m&lt;br /&gt;
CONFIG_CRYPTO_AES_ARM_BS=m&lt;br /&gt;
CONFIG_CRYPTO_AES_ARM_CE=m&lt;br /&gt;
CONFIG_CRYPTO_GHASH_ARM_CE=m&lt;br /&gt;
CONFIG_CRYPTO_CRC32_ARM_CE=m&lt;br /&gt;
CONFIG_CRYPTO_CHACHA20_NEON=m&lt;br /&gt;
# CONFIG_BINARY_PRINTF is not set&lt;br /&gt;
&lt;br /&gt;
#&lt;br /&gt;
# Library routines&lt;br /&gt;
#&lt;br /&gt;
CONFIG_RAID6_PQ=m&lt;br /&gt;
CONFIG_BITREVERSE=y&lt;br /&gt;
# CONFIG_HAVE_ARCH_BITREVERSE is not set&lt;br /&gt;
CONFIG_RATIONAL=y&lt;br /&gt;
CONFIG_GENERIC_STRNCPY_FROM_USER=y&lt;br /&gt;
CONFIG_GENERIC_STRNLEN_USER=y&lt;br /&gt;
CONFIG_GENERIC_NET_UTILS=y&lt;br /&gt;
CONFIG_GENERIC_PCI_IOMAP=y&lt;br /&gt;
CONFIG_ARCH_USE_CMPXCHG_LOCKREF=y&lt;br /&gt;
CONFIG_CRC_CCITT=m&lt;br /&gt;
CONFIG_CRC16=y&lt;br /&gt;
# CONFIG_CRC_T10DIF is not set&lt;br /&gt;
CONFIG_CRC_ITU_T=m&lt;br /&gt;
CONFIG_CRC32=y&lt;br /&gt;
# CONFIG_CRC32_SELFTEST is not set&lt;br /&gt;
CONFIG_CRC32_SLICEBY8=y&lt;br /&gt;
# CONFIG_CRC32_SLICEBY4 is not set&lt;br /&gt;
# CONFIG_CRC32_SARWATE is not set&lt;br /&gt;
# CONFIG_CRC32_BIT is not set&lt;br /&gt;
# CONFIG_CRC4 is not set&lt;br /&gt;
CONFIG_CRC7=m&lt;br /&gt;
CONFIG_LIBCRC32C=m&lt;br /&gt;
# CONFIG_CRC8 is not set&lt;br /&gt;
CONFIG_XXHASH=m&lt;br /&gt;
CONFIG_AUDIT_GENERIC=y&lt;br /&gt;
# CONFIG_AUDIT_ARCH_COMPAT_GENERIC is not set&lt;br /&gt;
# CONFIG_RANDOM32_SELFTEST is not set&lt;br /&gt;
CONFIG_ZLIB_INFLATE=y&lt;br /&gt;
CONFIG_ZLIB_DEFLATE=y&lt;br /&gt;
CONFIG_LZO_COMPRESS=y&lt;br /&gt;
CONFIG_LZO_DECOMPRESS=y&lt;br /&gt;
CONFIG_ZSTD_COMPRESS=m&lt;br /&gt;
CONFIG_ZSTD_DECOMPRESS=m&lt;br /&gt;
CONFIG_XZ_DEC=y&lt;br /&gt;
# CONFIG_XZ_DEC_X86 is not set&lt;br /&gt;
# CONFIG_XZ_DEC_POWERPC is not set&lt;br /&gt;
# CONFIG_XZ_DEC_IA64 is not set&lt;br /&gt;
CONFIG_XZ_DEC_ARM=y&lt;br /&gt;
CONFIG_XZ_DEC_ARMTHUMB=y&lt;br /&gt;
# CONFIG_XZ_DEC_SPARC is not set&lt;br /&gt;
CONFIG_XZ_DEC_BCJ=y&lt;br /&gt;
# CONFIG_XZ_DEC_TEST is not set&lt;br /&gt;
CONFIG_GENERIC_ALLOCATOR=y&lt;br /&gt;
CONFIG_BCH=y&lt;br /&gt;
CONFIG_ASSOCIATIVE_ARRAY=y&lt;br /&gt;
CONFIG_HAS_IOMEM=y&lt;br /&gt;
CONFIG_HAS_IOPORT_MAP=y&lt;br /&gt;
CONFIG_HAS_DMA=y&lt;br /&gt;
CONFIG_SGL_ALLOC=y&lt;br /&gt;
# CONFIG_DMA_DIRECT_OPS is not set&lt;br /&gt;
# CONFIG_DMA_VIRT_OPS is not set&lt;br /&gt;
CONFIG_DQL=y&lt;br /&gt;
CONFIG_GLOB=y&lt;br /&gt;
# CONFIG_GLOB_SELFTEST is not set&lt;br /&gt;
CONFIG_NLATTR=y&lt;br /&gt;
CONFIG_CLZ_TAB=y&lt;br /&gt;
# CONFIG_CORDIC is not set&lt;br /&gt;
CONFIG_DDR=y&lt;br /&gt;
# CONFIG_IRQ_POLL is not set&lt;br /&gt;
CONFIG_MPILIB=y&lt;br /&gt;
CONFIG_LIBFDT=y&lt;br /&gt;
CONFIG_OID_REGISTRY=y&lt;br /&gt;
CONFIG_FONT_SUPPORT=y&lt;br /&gt;
# CONFIG_FONTS is not set&lt;br /&gt;
CONFIG_FONT_8x8=y&lt;br /&gt;
CONFIG_FONT_8x16=y&lt;br /&gt;
CONFIG_SG_SPLIT=y&lt;br /&gt;
CONFIG_SG_POOL=y&lt;br /&gt;
CONFIG_ARCH_HAS_SG_CHAIN=y&lt;br /&gt;
CONFIG_SBITMAP=y&lt;br /&gt;
# CONFIG_STRING_SELFTEST is not set&lt;br /&gt;
# CONFIG_VIRTUALIZATION is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo_kernel-patch-Fn-keys.txt&amp;diff=30283</id>
		<title>Cross Install Gentoo kernel-patch-Fn-keys.txt</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo_kernel-patch-Fn-keys.txt&amp;diff=30283"/>
		<updated>2018-06-05T06:41:17Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: Patch file released&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/arch/arm/boot/dts/omap3-pandora-common.dtsi b/arch/arm/boot/dts/omap3-pandora-common.dtsi&lt;br /&gt;
index c3db2086be41..beed98eee1d3 100644&lt;br /&gt;
--- a/arch/arm/boot/dts/omap3-pandora-common.dtsi&lt;br /&gt;
+++ b/arch/arm/boot/dts/omap3-pandora-common.dtsi&lt;br /&gt;
@@ -483,13 +483,56 @@&lt;br /&gt;
 		MATRIX_KEY(6, 1, KEY_2)&lt;br /&gt;
 		MATRIX_KEY(6, 2, KEY_W)&lt;br /&gt;
 		MATRIX_KEY(6, 3, KEY_A)&lt;br /&gt;
-		MATRIX_KEY(6, 4, KEY_RIGHTBRACE)&lt;br /&gt;
+		MATRIX_KEY(6, 4, KEY_DOT)&lt;br /&gt;
 		MATRIX_KEY(7, 0, KEY_ENTER)&lt;br /&gt;
 		MATRIX_KEY(7, 1, KEY_1)&lt;br /&gt;
 		MATRIX_KEY(7, 2, KEY_Q)&lt;br /&gt;
 		MATRIX_KEY(7, 3, KEY_LEFTSHIFT)&lt;br /&gt;
-		MATRIX_KEY(7, 4, KEY_LEFTBRACE )&lt;br /&gt;
-	 &amp;gt;;&lt;br /&gt;
+		MATRIX_KEY(7, 4, KEY_COMMA)&lt;br /&gt;
+		MATRIX_KEY(8, 0, KEY_F9)&lt;br /&gt;
+		MATRIX_KEY(8, 1, KEY_F8)&lt;br /&gt;
+		MATRIX_KEY(8, 2, KEY_BRIGHTNESSUP)&lt;br /&gt;
+		MATRIX_KEY(8, 3, KEY_F13)           /* apostrophe, differs from Fn-A? */&lt;br /&gt;
+		MATRIX_KEY(8, 4, KEY_F22)&lt;br /&gt;
+		MATRIX_KEY(8, 5, KEY_F23)&lt;br /&gt;
+		MATRIX_KEY(9, 0, KEY_F10)&lt;br /&gt;
+		MATRIX_KEY(9, 1, KEY_F7)&lt;br /&gt;
+		MATRIX_KEY(9, 2, KEY_BRIGHTNESSDOWN)&lt;br /&gt;
+		MATRIX_KEY(9, 3, KEY_GRAVE)&lt;br /&gt;
+		MATRIX_KEY(9, 4, KEY_F14)           /* pipe/bar */&lt;br /&gt;
+		MATRIX_KEY(9, 5, KEY_TAB)&lt;br /&gt;
+		MATRIX_KEY(10, 0, KEY_INSERT)&lt;br /&gt;
+		MATRIX_KEY(10, 1, KEY_F6)&lt;br /&gt;
+		MATRIX_KEY(10, 2, KEY_F15)           /* dash */&lt;br /&gt;
+		MATRIX_KEY(10, 3, KEY_EQUAL)&lt;br /&gt;
+		MATRIX_KEY(10, 4, KEY_F16)           /* # (pound/hash) */&lt;br /&gt;
+		MATRIX_KEY(10, 5, KEY_FN)&lt;br /&gt;
+		MATRIX_KEY(11, 0, KEY_F11)&lt;br /&gt;
+		MATRIX_KEY(11, 1, KEY_F5)&lt;br /&gt;
+		MATRIX_KEY(11, 2, KEY_F17)           /* ! */&lt;br /&gt;
+		MATRIX_KEY(11, 3, KEY_KPPLUS)&lt;br /&gt;
+		MATRIX_KEY(11, 4, KEY_BACKSLASH)&lt;br /&gt;
+		MATRIX_KEY(12, 0, KEY_F12)&lt;br /&gt;
+		MATRIX_KEY(12, 1, KEY_F4)&lt;br /&gt;
+		MATRIX_KEY(12, 2, KEY_RIGHTBRACE)&lt;br /&gt;
+		MATRIX_KEY(12, 3, KEY_KPMINUS)&lt;br /&gt;
+		MATRIX_KEY(12, 4, KEY_QUESTION)&lt;br /&gt;
+		MATRIX_KEY(13, 0, KEY_F18)           /* £ (pound) */&lt;br /&gt;
+		MATRIX_KEY(13, 1, KEY_F3)&lt;br /&gt;
+		MATRIX_KEY(13, 2, KEY_LEFTBRACE)&lt;br /&gt;
+		MATRIX_KEY(13, 3, KEY_F19)           /* &amp;quot; */&lt;br /&gt;
+		MATRIX_KEY(13, 4, KEY_SLASH)&lt;br /&gt;
+		MATRIX_KEY(14, 0, KEY_YEN)&lt;br /&gt;
+		MATRIX_KEY(14, 1, KEY_F2)&lt;br /&gt;
+		MATRIX_KEY(14, 2, KEY_F20)           /* @ */&lt;br /&gt;
+		MATRIX_KEY(14, 3, KEY_APOSTROPHE)&lt;br /&gt;
+		MATRIX_KEY(14, 4, KEY_F21)           /* : */&lt;br /&gt;
+		MATRIX_KEY(15, 0, KEY_ENTER)&lt;br /&gt;
+		MATRIX_KEY(15, 1, KEY_F1)&lt;br /&gt;
+		MATRIX_KEY(15, 2, KEY_ESC)&lt;br /&gt;
+		MATRIX_KEY(15, 3, KEY_CAPSLOCK)&lt;br /&gt;
+		MATRIX_KEY(15, 4, KEY_SEMICOLON)&lt;br /&gt;
+	&amp;gt;;&lt;br /&gt;
 };&lt;br /&gt;
 &lt;br /&gt;
 /* backup battery charger */&lt;br /&gt;
diff --git a/drivers/input/keyboard/twl4030_keypad.c b/drivers/input/keyboard/twl4030_keypad.c&lt;br /&gt;
index 323a0fb575a4..b9e19aa3d4e4 100644&lt;br /&gt;
--- a/drivers/input/keyboard/twl4030_keypad.c&lt;br /&gt;
+++ b/drivers/input/keyboard/twl4030_keypad.c&lt;br /&gt;
@@ -55,7 +55,7 @@&lt;br /&gt;
  * row lines connected to the gnd (see twl4030_col_xlate()).&lt;br /&gt;
  */&lt;br /&gt;
 #define TWL4030_ROW_SHIFT	4&lt;br /&gt;
-#define TWL4030_KEYMAP_SIZE	(TWL4030_MAX_ROWS &amp;lt;&amp;lt; TWL4030_ROW_SHIFT)&lt;br /&gt;
+#define TWL4030_KEYMAP_SIZE	((TWL4030_MAX_ROWS &amp;lt;&amp;lt; TWL4030_ROW_SHIFT)*2)&lt;br /&gt;
 &lt;br /&gt;
 struct twl4030_keypad {&lt;br /&gt;
 	unsigned short	keymap[TWL4030_KEYMAP_SIZE];&lt;br /&gt;
@@ -65,6 +65,9 @@ struct twl4030_keypad {&lt;br /&gt;
 	unsigned int	n_cols;&lt;br /&gt;
 	unsigned int	irq;&lt;br /&gt;
 &lt;br /&gt;
+	unsigned	fn_down:1;&lt;br /&gt;
+	unsigned	fn_sticked:1;&lt;br /&gt;
+&lt;br /&gt;
 	struct device *dbg_dev;&lt;br /&gt;
 	struct input_dev *input;&lt;br /&gt;
 };&lt;br /&gt;
@@ -233,6 +236,7 @@ static void twl4030_kp_scan(struct twl4030_keypad *kp, bool release_all)&lt;br /&gt;
 		/* Extra column handles &amp;quot;all gnd&amp;quot; rows */&lt;br /&gt;
 		for (col = 0; col &amp;lt; kp-&amp;gt;n_cols + 1; col++) {&lt;br /&gt;
 			int code;&lt;br /&gt;
+			int code2, kcode, is_down;&lt;br /&gt;
 &lt;br /&gt;
 			if (!(changed &amp;amp; (1 &amp;lt;&amp;lt; col)))&lt;br /&gt;
 				continue;&lt;br /&gt;
@@ -242,9 +246,34 @@ static void twl4030_kp_scan(struct twl4030_keypad *kp, bool release_all)&lt;br /&gt;
 				&amp;quot;press&amp;quot; : &amp;quot;release&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
 			code = MATRIX_SCAN_CODE(row, col, TWL4030_ROW_SHIFT);&lt;br /&gt;
+			kcode = kp-&amp;gt;keymap[code];&lt;br /&gt;
+			is_down = (new_state[row] &amp;amp; (1 &amp;lt;&amp;lt; col)) ? 1 : 0;&lt;br /&gt;
+&lt;br /&gt;
+			dev_dbg(kp-&amp;gt;dbg_dev, &amp;quot;code:     %d %d\n&amp;quot;, code, kcode);&lt;br /&gt;
+			/* Fn handling */&lt;br /&gt;
+			if (kcode == KEY_FN) {&lt;br /&gt;
+			    kp-&amp;gt;fn_down = is_down;&lt;br /&gt;
+			    kp-&amp;gt;fn_sticked |= is_down;&lt;br /&gt;
+			} else if (kp-&amp;gt;fn_down || kp-&amp;gt;fn_sticked) {&lt;br /&gt;
+			    /* make sure other function is up */&lt;br /&gt;
+			    input_event(input, EV_MSC, MSC_SCAN, code);&lt;br /&gt;
+			    input_report_key(input, kcode, 0);&lt;br /&gt;
+&lt;br /&gt;
+			    code = MATRIX_SCAN_CODE(row + TWL4030_MAX_ROWS,&lt;br /&gt;
+			        col, TWL4030_ROW_SHIFT);&lt;br /&gt;
+			    kcode = kp-&amp;gt;keymap[code];&lt;br /&gt;
+&lt;br /&gt;
+			    kp-&amp;gt;fn_sticked = 0;&lt;br /&gt;
+			} else {&lt;br /&gt;
+			    code2 = MATRIX_SCAN_CODE(row + TWL4030_MAX_ROWS,&lt;br /&gt;
+			        col, TWL4030_ROW_SHIFT);&lt;br /&gt;
+			    input_event(input, EV_MSC, MSC_SCAN, code2);&lt;br /&gt;
+			    input_report_key(input, kp-&amp;gt;keymap[code2], 0);&lt;br /&gt;
+			}&lt;br /&gt;
+&lt;br /&gt;
+			dev_dbg(kp-&amp;gt;dbg_dev, &amp;quot;code(fn): %d %d\n&amp;quot;, code, kcode);&lt;br /&gt;
 			input_event(input, EV_MSC, MSC_SCAN, code);&lt;br /&gt;
-			input_report_key(input, kp-&amp;gt;keymap[code],&lt;br /&gt;
-					 new_state[row] &amp;amp; (1 &amp;lt;&amp;lt; col));&lt;br /&gt;
+			input_report_key(input, kcode, is_down);&lt;br /&gt;
 		}&lt;br /&gt;
 		kp-&amp;gt;kp_state[row] = new_state[row];&lt;br /&gt;
 	}&lt;br /&gt;
@@ -395,7 +424,7 @@ static int twl4030_kp_probe(struct platform_device *pdev)&lt;br /&gt;
 	}&lt;br /&gt;
 &lt;br /&gt;
 	error = matrix_keypad_build_keymap(keymap_data, NULL,&lt;br /&gt;
-					   TWL4030_MAX_ROWS,&lt;br /&gt;
+					   TWL4030_MAX_ROWS &amp;lt;&amp;lt; 1,&lt;br /&gt;
 					   1 &amp;lt;&amp;lt; TWL4030_ROW_SHIFT,&lt;br /&gt;
 					   kp-&amp;gt;keymap, input);&lt;br /&gt;
 	if (error) {&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30282</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30282"/>
		<updated>2018-06-05T06:38:04Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: Links to files fixed&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare target file system ==&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile/install kernel ==&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Download kernel ===&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile kernel ===&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file [[Cross Install Gentoo kernel-patch-Fn-keys.txt|kernel-patch-Fn-keys.txt]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
[[Cross Install Gentoo kernel-config|kernel-config]] which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install kernel ===&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile system ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross development system ===&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross-compilation and QEmu environment ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start cross compilation ===&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Continue cross-compilation with QEmu ===&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix lib64-problem ==&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configure system ==&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
[[File:Keymap-pandora.map|thumbnail|keymap-pandora.map]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noauto,noatime                  1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noauto,noatime,nodev,nosuid     1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* wl1251 board initialization failed&lt;br /&gt;
* tw1: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Cursor and other GPIO-related keys do not work correctly if CPU is idle. Workaround: echo 1 &amp;gt;/sys/devices/system/cpu/cpu0/cpuidle/state4/disable&lt;br /&gt;
* Kernel panic at system shutdown&lt;br /&gt;
* fstab: Auto-Mounting /boot or /home causes system suspend after about 30 Seconds.&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30281</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30281"/>
		<updated>2018-06-05T06:32:38Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: Case of file corrected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare target file system ==&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile/install kernel ==&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Download kernel ===&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile kernel ===&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file kernel-patch-Fn-keys.txt.&lt;br /&gt;
[[File:kernel-patch-Fn-keys.txt|thumbnail|kernel-patch-Fn-keys.txt]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
kernel-config which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
[[File:Kernel-config|thumbnail|kernel-config]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install kernel ===&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile system ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross development system ===&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross-compilation and QEmu environment ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start cross compilation ===&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Continue cross-compilation with QEmu ===&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix lib64-problem ==&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configure system ==&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
[[File:Keymap-pandora.map|thumbnail|keymap-pandora.map]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noauto,noatime                  1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noauto,noatime,nodev,nosuid     1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* wl1251 board initialization failed&lt;br /&gt;
* tw1: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Cursor and other GPIO-related keys do not work correctly if CPU is idle. Workaround: echo 1 &amp;gt;/sys/devices/system/cpu/cpu0/cpuidle/state4/disable&lt;br /&gt;
* Kernel panic at system shutdown&lt;br /&gt;
* fstab: Auto-Mounting /boot or /home causes system suspend after about 30 Seconds.&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30280</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30280"/>
		<updated>2018-06-04T19:10:50Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: Section indentation corrected&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare target file system ==&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile/install kernel ==&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Download kernel ===&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile kernel ===&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file kernel-patch-Fn-keys.txt.&lt;br /&gt;
[[File:Kernel-patch-Fn-keys.txt|thumbnail|kernel-patch-Fn-keys.txt]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
kernel-config which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
[[File:Kernel-config|thumbnail|kernel-config]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install kernel ===&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile system ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross development system ===&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross-compilation and QEmu environment ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start cross compilation ===&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Continue cross-compilation with QEmu ===&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix lib64-problem ==&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configure system ==&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
[[File:Keymap-pandora.map|thumbnail|keymap-pandora.map]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noauto,noatime                  1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noauto,noatime,nodev,nosuid     1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Update system =&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Start cross-compilation ==&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Optional: Remove cross compiler =&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Create SD-card partitions phlnx_boot/root/swap/home =&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #1: Copy target system to SD-card =&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Desktop computer ==&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Option #2: Copy target system to SD-card via WiFi network =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Pandora ==&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Boot the new system =&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: USB-networking ==&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Shutdown Pandora ==&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Open issues =&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* wl1251 board initialization failed&lt;br /&gt;
* tw1: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Cursor and other GPIO-related keys do not work correctly if CPU is idle. Workaround: echo 1 &amp;gt;/sys/devices/system/cpu/cpu0/cpuidle/state4/disable&lt;br /&gt;
* Kernel panic at system shutdown&lt;br /&gt;
* fstab: Auto-Mounting /boot or /home causes system suspend after about 30 Seconds.&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30279</id>
		<title>Cross Install Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Cross_Install_Gentoo&amp;diff=30279"/>
		<updated>2018-06-04T19:03:15Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: First release of this description&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Cross install Gentoo Linux on Pandora =&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
These instructions are for installing a recent Gentoo Linux on the OpenPandora&lt;br /&gt;
handheld console. The system will be installed and booted from a SD-card. The&lt;br /&gt;
Gentoo Linux will be cross-compiled on another desktop computer also running&lt;br /&gt;
Gentoo Linux.&lt;br /&gt;
&lt;br /&gt;
It is not necessary to follow all instructions exactly. Some of them can be&lt;br /&gt;
changed to your own needs.&lt;br /&gt;
&lt;br /&gt;
'''The system currently supports only the text console and no X11 or sound.'''&lt;br /&gt;
'''Also a lot of features are missing.''' See &amp;quot;Open issues&amp;quot; at the end.&lt;br /&gt;
&lt;br /&gt;
=== Prerequisites ===&lt;br /&gt;
&lt;br /&gt;
These instructions assume the following prerequisites:&lt;br /&gt;
&lt;br /&gt;
* Good knowledge in Gentoo Linux.&lt;br /&gt;
* A desktop computer running Gentoo Linux. Other Linux is, of course, also possible but requires proper adaption of these instructions.&lt;br /&gt;
* An OpenPandora handheld console.&lt;br /&gt;
* A SD-card with least 8 GB size.&lt;br /&gt;
* A USB cable to connect the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
=== Improvement ===&lt;br /&gt;
&lt;br /&gt;
Due to the constant changes of the Linux kernel, GNU software, etc. this&lt;br /&gt;
document will be outdated very quick. To avoid this, help is always appreciated&lt;br /&gt;
improving this document. If you can update, improve, add or complete this&lt;br /&gt;
document, don't hesitate to do so.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare/install cross compile system ==&lt;br /&gt;
&lt;br /&gt;
To perform the cross-compilation a cross compiler and QEmu must be installed&lt;br /&gt;
on the desktop computer. QEmu will help a lot for compiling packages which&lt;br /&gt;
will not properly cross compile.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install cross compiling system ===&lt;br /&gt;
&lt;br /&gt;
For compiling software for an ARM controller a cross compiler must be installed.&lt;br /&gt;
&lt;br /&gt;
We can use ARMv7 using either soft float (armv7a-softfp-linux-gnueabi) or hard&lt;br /&gt;
float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-softfp-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The additional portage tree in &amp;quot;/usr/local/portage-crossdev&amp;quot; will hold all&lt;br /&gt;
information for emerging the cross build system (cross compiler and tools).&lt;br /&gt;
&lt;br /&gt;
To prepare emerging a cross compiler, execute the following commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
&lt;br /&gt;
emerge -av crossdev&lt;br /&gt;
&lt;br /&gt;
mkdir -p /usr/local/portage-crossdev/{profiles,metadata}&lt;br /&gt;
&lt;br /&gt;
echo 'local-crossdev' &amp;gt;/usr/local/portage-crossdev/profiles/repo_name&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
echo 'thin-manifests = true' &amp;gt;&amp;gt;/usr/local/portage-crossdev/metadata/layout.conf&lt;br /&gt;
chown -R portage:portage /usr/local/portage-crossdev&lt;br /&gt;
&lt;br /&gt;
echo '[local-crossdev]' &amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'location = /usr/local/portage-crossdev' \&lt;br /&gt;
&amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&lt;br /&gt;
echo 'priority = 10' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'masters = gentoo' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
echo 'auto-sync = no' &amp;gt;&amp;gt;/etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The portage tree for emerging the cross build system is set up. Now we have to&lt;br /&gt;
find out which versions of the cross build components are about to be installed.&lt;br /&gt;
The target system will get binutils, gcc, glibc and linux-headers of a certain&lt;br /&gt;
version. The same version should be installed in the cross build system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export BINUTILS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/binutils/binutils-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/binutils-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GCC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-devel/gcc/gcc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/gcc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export GLIBC_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-libs/glibc/glibc-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/glibc-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&lt;br /&gt;
export LINUX_HEADERS_VER=$(grep -le 'KEYWORDS.* arm' \&lt;br /&gt;
/usr/portage/sys-kernel/linux-headers/linux-headers-*.ebuild | tail -1 | \&lt;br /&gt;
awk 'match($0, &amp;quot;.*/linux-headers-(.*).ebuild&amp;quot;, v) { print(v[1]); }')&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now emerge the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
crossdev --binutils $BINUTILS_VER --gcc $GCC_VER --libc $GLIBC_VER \&lt;br /&gt;
--kernel $LINUX_HEADERS_VER --target $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install QEmu ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will not cross compile properly. QEmu will help for these&lt;br /&gt;
packages. Install it to emulate an ARM controller.&lt;br /&gt;
&lt;br /&gt;
Edit /etc/portage/make.conf.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano /etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add the following lines.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
QEMU_SOFTMMU_TARGETS=&amp;quot;&amp;quot;&lt;br /&gt;
QEMU_USER_TARGETS=&amp;quot;arm&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also enable the use flag static-user. This builds QEmu as static binary.&lt;br /&gt;
QEmu will be used later in a chroot environment of an ARM controller and will&lt;br /&gt;
be unable to access needed shared libraries. So it must contain all these&lt;br /&gt;
libraries by building it in a static way.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
euse -E static-user&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
All the needed libraries for QEmu must also be available as library archive&lt;br /&gt;
(static libs). Emerging QEmu will request to emerge these libraries as&lt;br /&gt;
static variants, also. Create and add these libraries in the file&lt;br /&gt;
&amp;quot;/etc/portage/package.use/qemu&amp;quot;. Look which libraries are needed.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge -pv qemu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And add them with the use flag static-libs. Here is an Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;gt;=net-misc/curl-7.53.0 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/attr-2.4.47-r2 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libsdl-1.2.15-r9 static-libs&lt;br /&gt;
&amp;gt;=sys-apps/dtc-1.4.1 static-libs&lt;br /&gt;
&amp;gt;=app-arch/bzip2-1.0.6-r7 static-libs&lt;br /&gt;
&amp;gt;=x11-libs/pixman-0.34.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libpcre-8.40-r1 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libseccomp-2.3.0 static-libs&lt;br /&gt;
&amp;gt;=net-fs/libnfs-1.9.7 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/cyrus-sasl-2.1.26-r9 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/gmp-6.1.0 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/libaio-0.3.110 static-libs&lt;br /&gt;
&amp;gt;=sys-fs/xfsprogs-4.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/zlib-1.2.11 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libjpeg-turbo-1.5.0 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/libcap-ng-0.7.8 static-libs&lt;br /&gt;
&amp;gt;=dev-libs/openssl-1.0.2k static-libs&lt;br /&gt;
&amp;gt;=dev-libs/glib-2.50.3-r1 static-libs&lt;br /&gt;
&amp;gt;=virtual/jpeg-0-r2:0 static-libs&lt;br /&gt;
&amp;gt;=media-libs/libpng-1.6.27 static-libs&lt;br /&gt;
&amp;gt;=sys-libs/ncurses-6.0-r1 static-libs&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Emerge QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge qemu&lt;br /&gt;
udevadm trigger -c add /dev/kvm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
QEmu will execute ARM binaries on the desktop computer as if it would have an&lt;br /&gt;
ARM controller. To achieve this, register foreign binaries and start the&lt;br /&gt;
systemd service.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -s /usr/share/qemu/binfmt.d/qemu.conf /etc/binfmt.d/qemu.conf&lt;br /&gt;
systemctl start systemd-binfmt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now our desktop computer is able to execute ARM binaries as well as his own&lt;br /&gt;
binaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install GIT ===&lt;br /&gt;
&lt;br /&gt;
To get the kernel sources, GIT will be needed. Emerge it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emerge git&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now the cross build system is ready to compile a Gentoo Linux for the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepare target file system ==&lt;br /&gt;
&lt;br /&gt;
To build the system for the Pandora about 10 GB disk space is needed. Create a&lt;br /&gt;
directory &amp;quot;CrossDev&amp;quot; to store all data there. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir CrossDev&lt;br /&gt;
cd CrossDev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this directory two more directories will be created:&lt;br /&gt;
&lt;br /&gt;
* One to store and build the Linux kernel.&lt;br /&gt;
* Another will store the whole system for the Pandora including QEmu which is not really a part of the system for Pandora, but it is needed as long as the building process runs.&lt;br /&gt;
* Some files and archives.&lt;br /&gt;
&lt;br /&gt;
First get the Gentoo base system &amp;quot;stage3-armv7a-*.tar.bz2&amp;quot;. Download it from&lt;br /&gt;
a suitable mirror of the Gentoo distribution. See&lt;br /&gt;
https://www.gentoo.org/downloads/mirrors for a list of mirrors.&lt;br /&gt;
&lt;br /&gt;
Go to the directory &amp;quot;releases/arm/autobuilds&amp;quot;. According to your target, enter&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;current-stage3-armv7a&amp;quot; for soft float (armv7a-softfp-linux-gnueabi),&lt;br /&gt;
* &amp;quot;current-stage3-armv7a_hardfp&amp;quot; for hard float (armv7a-hardfloat-linux-gnueabi).&lt;br /&gt;
&lt;br /&gt;
There is a stage 3 file for ARMv7. Download this archive.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a/stage3-armv7a-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wget http://mirror.eu.oneandone.net/linux/distributions/gentoo/gentoo/\&lt;br /&gt;
releases/arm/autobuilds/current-stage3-armv7a_hardfp/\&lt;br /&gt;
stage3-armv7a_hardfp-20161129.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As long as we are cross compiling, we use &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; as working&lt;br /&gt;
directory. The cross compiler looks for libraries there and uses many references&lt;br /&gt;
to this directory. That's why &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot; will be saved, so it can&lt;br /&gt;
be restored after the build.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unpack the stage 3 archive into &amp;quot;/usr/$CROSSDEV_TARGET&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
tar --xattrs --numeric-owner -xpjf stage3-*.tar.bz2 -C /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sometimes there is a lot of garbage in the &amp;quot;tmp&amp;quot; directory. Remove it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/tmp/*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell and go back to our working directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile/install kernel ==&lt;br /&gt;
&lt;br /&gt;
The standard Gentoo kernel will not run on the Pandora (or, at least, takes too&lt;br /&gt;
much effort to make it run), so download a current kernel from&lt;br /&gt;
https://goldelico.com using GIT.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Download kernel ===&lt;br /&gt;
&lt;br /&gt;
Download the kernel with GIT.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
git clone git://git.goldelico.com/gta04-kernel.git&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Compile kernel ===&lt;br /&gt;
&lt;br /&gt;
Prepare an environment to cross compile the kernel. First call another shell&lt;br /&gt;
instance for saving the current environment. This instance is not really&lt;br /&gt;
necessary but it is more convenient because the saved environment is restored&lt;br /&gt;
after exiting the new shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The kernel does not support the blue symbols on the keys used by &amp;quot;Fn&amp;quot;. To enable&lt;br /&gt;
this, patch the kernel using the patch file kernel-patch-Fn-keys.txt.&lt;br /&gt;
[[File:Kernel-patch-Fn-keys.txt|thumbnail|kernel-patch-Fn-keys.txt]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
patch -p1 &amp;lt;../kernel-patch-Fn-keys.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This patches the files &amp;quot;arch/arm/boot/dts/omap3-pandora-common.dtsi&amp;quot; which will&lt;br /&gt;
get more key codes for the blue symbols and&lt;br /&gt;
&amp;quot;drivers/input/keyboard/twl4030_keypad.c&amp;quot; which will handle the keys.&lt;br /&gt;
&lt;br /&gt;
Now a default configuration for the kernel will be created.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make omap2plus_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A lot of configuration must be done to make the kernel work. To ease this use&lt;br /&gt;
kernel-config which will configure a running&lt;br /&gt;
kernel for the Pandora. It uses the name &amp;quot;pherkad&amp;quot; as computer name. Change&lt;br /&gt;
this to any name you like in the config file. Calling oldconfig might be&lt;br /&gt;
necessary if &amp;quot;kernel-config&amp;quot; is too old for the current gta04-kernel.&lt;br /&gt;
[[File:Kernel-config|thumbnail|kernel-config]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp ../kernel-config .config&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In &amp;quot;General setup/Local version&amp;quot; change &amp;quot;-pherkad&amp;quot; to any name you like. But&lt;br /&gt;
use &amp;quot;-&amp;quot; as prefix.&lt;br /&gt;
&lt;br /&gt;
Build the kernel and the device tree &amp;quot;omap3-pandora-600mhz.dtb&amp;quot;. Pandora users&lt;br /&gt;
with 1 GHz units can use &amp;quot;omap3-pandora-1ghz.dts&amp;quot;. Use as much CPU cores as you&lt;br /&gt;
have for the compiling process.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Convert the kernel into an image for the U-Boot loader. Use any name you&lt;br /&gt;
like for &amp;quot;Linux-pherkad&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generate a &amp;quot;boot.scr&amp;quot; file which loads the kernel image and the correct device&lt;br /&gt;
tree.&lt;br /&gt;
&lt;br /&gt;
Keep an eye to the bootargs. It uses the following commands:&lt;br /&gt;
&lt;br /&gt;
* Start the systemd as init process: &amp;quot;init=/lib/systemd/systemd&amp;quot;.&lt;br /&gt;
* Be quiet: &amp;quot;quiet&amp;quot;. This can be removed while development.&lt;br /&gt;
* Show a splash screen: &amp;quot;splash&amp;quot;. There is currently no splash screen, so this&lt;br /&gt;
* Use the root file system at: &amp;quot;root=/dev/mmcblk0p2&amp;quot;. Take care to use the same partition as described below.&lt;br /&gt;
* Use Ext 4 root file system: &amp;quot;rootfstype=ext4&amp;quot;.&lt;br /&gt;
* Wait for root file system: &amp;quot;rootwait&amp;quot;.&lt;br /&gt;
* Mount initially read only: &amp;quot;ro&amp;quot;. systemd will remount it later as RW.&lt;br /&gt;
* Use the following SWAP partition for hibernation/resume: &amp;quot;resume=/dev/mmcblk0p3&amp;quot;. This is currently not used.&lt;br /&gt;
&lt;br /&gt;
The file &amp;quot;boot.txt&amp;quot; will be converted to the boot script &amp;quot;boot.src&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the kernel build environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Install kernel ===&lt;br /&gt;
&lt;br /&gt;
The installation of the kernel into the target directory must be done as root.&lt;br /&gt;
Create the &amp;quot;boot&amp;quot; directory for the kernel, device tree and boot script and&lt;br /&gt;
copy them to the target directory.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a link for the boot directory. This is used if the boot directory is an&lt;br /&gt;
own partition and the boot loader wants to load the kernel from &amp;quot;boot/uImage-*&amp;quot;.&lt;br /&gt;
In our case it is not really necessary.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
(cd /usr/$CROSSDEV_TARGET/boot; ln -s . boot)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install all kernel modules into &amp;quot;target/lib/modules&amp;quot;. The symbolic link is for&lt;br /&gt;
the cross compiling process to find the kernel configuration.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Compile system ==&lt;br /&gt;
&lt;br /&gt;
Now it's time to cross compile the whole Gentoo system. The base system is&lt;br /&gt;
already installed in the &amp;quot;target&amp;quot; directory. All the binaries there will&lt;br /&gt;
be compiled again with our own cross compiler. Also a lot of new packages&lt;br /&gt;
(more binaries) will be installed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross development system ===&lt;br /&gt;
&lt;br /&gt;
Go to the target and copy all portage configurations from the desktop computer&lt;br /&gt;
to the target system, since we want to use the desktop computer system as&lt;br /&gt;
base of the Pandora system. This must be done as root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the &amp;quot;make.conf&amp;quot; file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
nano etc/portage/make.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change some of the lines there. You might copy some of the contents from&lt;br /&gt;
the desktop computer but be sure to have the same CHOST as the CROSSDEV_TARGET. &lt;br /&gt;
Especially add or change for the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=softfp \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CFLAGS=&amp;quot;-O2 -pipe -march=armv7-a -mfpu=vfpv3-d16 -mfloat-abi=hard \&lt;br /&gt;
-mfpu=neon -fno-stack-protector&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
CXXFLAGS=&amp;quot;${CFLAGS}&amp;quot;&lt;br /&gt;
USE=&amp;quot;systemd &amp;lt;and a lot of your own use flags&amp;gt;&amp;quot;&lt;br /&gt;
LINGUAS=&amp;quot;en de&amp;quot;&lt;br /&gt;
L10N=&amp;quot;en de&amp;quot;&lt;br /&gt;
FEATURES=&amp;quot;sandbox -preserve-libs clean-logs unmerge-orphans buildpkg&amp;quot;&lt;br /&gt;
VIDEO_CARDS=&amp;quot;omapfb&amp;quot;&lt;br /&gt;
INPUT_DEVICES=&amp;quot;evdev keyboard mouse&amp;quot;&lt;br /&gt;
MAKEOPTS=&amp;quot;-j&amp;lt;number of CPU cores&amp;gt;&amp;quot;&lt;br /&gt;
PORTAGE_COMPRESS=&amp;quot;&amp;quot;&lt;br /&gt;
PORTAGE_NICENESS=3&lt;br /&gt;
PORTAGE_IONICE_COMMAND=&amp;quot;ionice -c 3 -p \${PID}&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_CLASSES=&amp;quot;warn error log&amp;quot;&lt;br /&gt;
PORTAGE_ELOG_SYSTEM=&amp;quot;save&amp;quot;&lt;br /&gt;
PORT_LOGDIR=&amp;quot;/var/log/portage&amp;quot;&lt;br /&gt;
&lt;br /&gt;
PORT_LOGDIR_CLEAN=&amp;quot;find \&amp;quot;\${PORT_LOGDIR}\&amp;quot; -type f ! -name \&amp;quot;summary.log*\&amp;quot; \&lt;br /&gt;
-mtime +7 -delete&amp;quot;&lt;br /&gt;
&lt;br /&gt;
EMERGE_DEFAULT_OPTS=&amp;quot;--alphabetical --nospinner --quiet-build --usepkg=y \&lt;br /&gt;
--binpkg-respect-use=y&amp;quot;&lt;br /&gt;
&lt;br /&gt;
GENTOO_MIRRORS=&amp;quot;&amp;lt;enter your mirrors&amp;gt;&amp;quot;&lt;br /&gt;
PKGDIR=&amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is recommended to activate the build of binary packages. The cross&lt;br /&gt;
compilation will fail to build some packages, so QEmu will build all packages&lt;br /&gt;
again. It is not necessary to build good cross compiled packages by QEmu again.&lt;br /&gt;
Using binary packages will avoid this and save a lot of time.&lt;br /&gt;
&lt;br /&gt;
To avoid mixing up the binary packages of the desktop comuter and the Pandora&lt;br /&gt;
set PKGDIR accordingly. Example: &amp;quot;/usr/portage/packages/${CHOST}&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Also copy and edit some package specific files from your desktop computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /etc/portage/package.* etc/portage/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the files in &amp;quot;etc/portage/package.*&amp;quot; and configure the portage tree.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -i &amp;quot;s/amd64/arm/g&amp;quot; etc/portage/package.keywords/*&lt;br /&gt;
rm -r etc/portage/package.keywords/cross*&lt;br /&gt;
rm -r etc/portage/package.mask/cross*&lt;br /&gt;
rm etc/portage/package.use/cross*&lt;br /&gt;
rm etc/portage/package.env/cross*&lt;br /&gt;
&lt;br /&gt;
mkdir etc/portage/repos.conf&lt;br /&gt;
cp usr/share/portage/config/repos.conf etc/portage/repos.conf/gentoo.conf&lt;br /&gt;
rm -f etc/portage/make.profile&lt;br /&gt;
&lt;br /&gt;
(cd etc/portage &amp;amp;&amp;amp; \&lt;br /&gt;
ln -s /usr/portage/profiles/default/linux/arm/13.0/armv7a/desktop make.profile)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy the world file from the desktop computer and remove all packages which&lt;br /&gt;
should not be installed on the Pandora system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /var/lib/portage/world var/lib/portage/world&lt;br /&gt;
nano var/lib/portage/world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Prepare cross-compilation and QEmu environment ===&lt;br /&gt;
&lt;br /&gt;
A lot of packages will fail but we will keep going the emerge process and&lt;br /&gt;
compile the failed packages again with QEmu.&lt;br /&gt;
&lt;br /&gt;
But first update the compiler tools in the target system. They will be needed&lt;br /&gt;
later in the QEmu environment. If they fail here, try to do it in the QEmu&lt;br /&gt;
part.&lt;br /&gt;
&lt;br /&gt;
Copy the static QEmu binary to the target system and set up portage for the&lt;br /&gt;
target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
mkdir -p usr/portage&lt;br /&gt;
touch usr/portage/.keep&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Do some standard setup for the target system. Copy some personal configurations&lt;br /&gt;
to the root account.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -L /etc/resolv.conf etc/.&lt;br /&gt;
cp -r etc/skel/. root/.&lt;br /&gt;
&lt;br /&gt;
cp /root/.bashrc /root/.dir_colors /root/.screenrc /root/.toprc \&lt;br /&gt;
/root/.xsession root/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some nice tools like htop are worth to install them on the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -m0700 root/.config&lt;br /&gt;
cp -r /root/.config/htop root/.config/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To access the root account with ssh, copy its configuration. This copies the&lt;br /&gt;
&amp;quot;id_*&amp;quot; files, also. Don't do this if you deliberately take care about security.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -r /root/.ssh/. root/.ssh/.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Start cross compilation ===&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (use a third shell instance).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Try to cross compile all packages.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a binutils glibc linux-headers gcc&lt;br /&gt;
$CHOST-emerge -ae @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now go to &amp;quot;Continue cross-compilation with QEmu&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Continue cross-compilation with QEmu ===&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment and emerge the failed package again (the first one&lt;br /&gt;
in the packages.txt file).&lt;br /&gt;
&lt;br /&gt;
The portage tree will be mounted into the target system.&lt;br /&gt;
&lt;br /&gt;
In the chroot environment it might be necessary to switch the compiler. Check&lt;br /&gt;
if the same version of gcc is used than the cross compiler with&lt;br /&gt;
&amp;quot;gcc-config -l&amp;quot;. Set the correct version before starting &amp;quot;emerge&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.*&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Fix lib64-problem ==&lt;br /&gt;
&lt;br /&gt;
Some cross compiled packages install their libraries into the &amp;quot;lib64&amp;quot; directory.&lt;br /&gt;
This is not used on the Pandora. So we have to copy all contents from &amp;quot;lib64&amp;quot;&lt;br /&gt;
to &amp;quot;lib&amp;quot; and set a link for &amp;quot;lib64&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rsync -avc usr/lib64/. usr/lib/.&lt;br /&gt;
rm -rf usr/lib64&lt;br /&gt;
(cd usr &amp;amp;&amp;amp; ln -s lib lib64)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Configure system ==&lt;br /&gt;
&lt;br /&gt;
Set the key map for Pandora in the console and, as usual in Gentoo,&lt;br /&gt;
configure the target system.&lt;br /&gt;
&lt;br /&gt;
Use to make the Pandora keyboard work on the console.&lt;br /&gt;
[[File:Keymap-pandora.map|thumbnail|keymap-pandora.map]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp &amp;quot;$FROM_DIR/keymap-pandora.map&amp;quot; etc/.&lt;br /&gt;
chmod 644 etc/keymap-pandora.map&lt;br /&gt;
echo &amp;gt;etc/vconsole.conf &amp;quot;KEYMAP=/etc/keymap-pandora.map&amp;quot;&lt;br /&gt;
echo &amp;gt;&amp;gt;etc/vconsole.conf &amp;quot;FONT=eurlatgr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up the mount table. Every line in &amp;quot;etc/fstab&amp;quot; will be commented out and&lt;br /&gt;
new entries added. The file system labels are used to mount the partitions.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sed -ie &amp;quot;s,^/,#/,g&amp;quot; etc/fstab&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;&amp;gt;etc/fstab &amp;lt;&amp;lt;EOF&lt;br /&gt;
LABEL=phlnx_boot        /boot   ext2    noauto,noatime                  1 2&lt;br /&gt;
LABEL=phlnx_root        /       ext4    errors=remount-ro,noatime       1 1&lt;br /&gt;
LABEL=phlnx_home        /home   ext4    noauto,noatime,nodev,nosuid     1 2&lt;br /&gt;
EOF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment again.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set a password for root.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
passwd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the time zone and generate the locale info you want (example: enable all&lt;br /&gt;
lines with en_US and de_DE).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
echo &amp;quot;Europe/Berlin&amp;quot; &amp;gt;/etc/timezone&lt;br /&gt;
emerge --config sys-libs/timezone-data&lt;br /&gt;
nano -w /etc/locale.gen&lt;br /&gt;
locale-gen&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Use en_US.utf8 (entry #9) as locale.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eselect locale list&lt;br /&gt;
eselect locale set 9&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Set up mount table, the machine ID and host name.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ln -sf /proc/self/mounts /etc/mtab&lt;br /&gt;
systemd-machine-id-setup&lt;br /&gt;
echo &amp;gt;/etc/machine-info &amp;quot;PRETTY_HOSTNAME=Pherkad&amp;quot;&lt;br /&gt;
echo &amp;gt;/etc/hostname &amp;quot;pherkad&amp;quot;&lt;br /&gt;
ln -snf /run/systemd/resolve/resolv.conf /etc/resolv.conf&lt;br /&gt;
systemctl enable systemd-resolved.service&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the chroot environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the QEmu binary. It is not used anymore.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Also remove some leftovers from the cross compiler and the link to our kernel&lt;br /&gt;
sources.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -f etc/portage/profile/package.provided&lt;br /&gt;
rm -f sys-include&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
mkdir $CROSSDEV_TARGET&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exit the root shell.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Update system ==&lt;br /&gt;
&lt;br /&gt;
To update the system, use a similar approach as in the cross compilation phase.&lt;br /&gt;
Define CROSSDEV_TARGET as in &amp;quot;Install cross compiling system&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Start cross-compilation ===&lt;br /&gt;
&lt;br /&gt;
Set up a cross compilation environment (become root and use a second shell&lt;br /&gt;
instance again).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd CrossDev&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
tar -cpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
mkdir /usr/$CROSSDEV_TARGET&lt;br /&gt;
rsync -a $CROSSDEV_TARGET/. /usr/$CROSSDEV_TARGET/.&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check status of our own modifications and stash them. Update the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd gta04-kernel&lt;br /&gt;
git status&lt;br /&gt;
git stash push&lt;br /&gt;
git pull&lt;br /&gt;
git stash pop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Compile and install the kernel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bash&lt;br /&gt;
umask 0022&lt;br /&gt;
export ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}-&lt;br /&gt;
export PS1=&amp;quot;($ARCH) $PS1&amp;quot;&lt;br /&gt;
make oldconfig&lt;br /&gt;
make menuconfig&lt;br /&gt;
export CPUS=&amp;quot;$(grep processor /proc/cpuinfo | wc -l)&amp;quot;&lt;br /&gt;
make -j$CPUS zImage&lt;br /&gt;
make -j$CPUS modules&lt;br /&gt;
make omap3-pandora-600mhz.dtb&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T kernel -C none -a 0x80008000 -e 0x80008000 -n \&lt;br /&gt;
'Linux-pherkad' -d arch/arm/boot/zImage arch/arm/boot/uImage&lt;br /&gt;
&lt;br /&gt;
cat &amp;gt;boot.txt &amp;lt;&amp;lt;EOF&lt;br /&gt;
if itest.w *0x4830a204 == 0x102f&lt;br /&gt;
then&lt;br /&gt;
    setenv devicetree omap3-pandora-1ghz&lt;br /&gt;
else&lt;br /&gt;
    setenv devicetree omap3-pandora-600mhz&lt;br /&gt;
fi&lt;br /&gt;
setenv defaultdisplay lcd&lt;br /&gt;
setenv bootargs &amp;quot;init=/lib/systemd/systemd quiet splash \&lt;br /&gt;
root=/dev/mmcblk0p2 rootfstype=ext4 rootwait ro resume=/dev/mmcblk0p3&amp;quot;&lt;br /&gt;
ext2load mmc 0:1 0x825f0000 /boot/\${devicetree}.dtb&lt;br /&gt;
ext2load mmc 0:1 0x80300000 /boot/uImage-pherkad&lt;br /&gt;
bootm 0x80300000 - 0x825f0000&lt;br /&gt;
EOF&lt;br /&gt;
&lt;br /&gt;
mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n 'Boot script' \&lt;br /&gt;
-d boot.txt boot.scr&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
su&lt;br /&gt;
umask 0022&lt;br /&gt;
cp arch/arm/boot/uImage /usr/$CROSSDEV_TARGET/boot/uImage-pherkad&lt;br /&gt;
cp .config /usr/$CROSSDEV_TARGET/boot/config-pherkad&lt;br /&gt;
cp System.map /usr/$CROSSDEV_TARGET/boot/System.map-pherkad&lt;br /&gt;
cp arch/arm/boot/dts/omap3-pandora-600mhz.dtb /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
cp boot.scr /usr/$CROSSDEV_TARGET/boot/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/lib/modules/*&lt;br /&gt;
&lt;br /&gt;
make ARCH=arm CROSS_COMPILE=${CROSSDEV_TARGET}- \&lt;br /&gt;
INSTALL_MOD_PATH=/usr/$CROSSDEV_TARGET modules_install&lt;br /&gt;
&lt;br /&gt;
(DIR=&amp;quot;$PWD&amp;quot;; cd /usr/$CROSSDEV_TARGET/usr/src; ln -s $DIR linux)&lt;br /&gt;
cd ..&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Prepare cross development system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export FROM_DIR=&amp;quot;$PWD&amp;quot;&lt;br /&gt;
cd /usr/$CROSSDEV_TARGET&lt;br /&gt;
cp /usr/bin/qemu-arm usr/bin/.&lt;br /&gt;
bash&lt;br /&gt;
export CBUILD=x86_64-pc-linux-gnu&lt;br /&gt;
export CHOST=$CROSSDEV_TARGET&lt;br /&gt;
export ROOT=$PWD&lt;br /&gt;
export PORTAGE_CONFIGROOT=$ROOT&lt;br /&gt;
export PS1=&amp;quot;($CHOST) $PS1&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Clean up unused binary packages, optionally install new packages and start&lt;br /&gt;
updating all installed packages by cross compilation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eclean -d packages&lt;br /&gt;
$CHOST-emerge -a &amp;lt;pkgs&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and/or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -auDN --with-bdeps=y @world&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Continue cross-compilation with QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p $PWD/run/systemd/resolve&lt;br /&gt;
cp /run/systemd/resolve/resolv.conf $PWD/run/systemd/resolve/.&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
emerge -aB1 $(head -1 /tmp/packages.txt)&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After fixing the failed package(s), continue with the cross compiler.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cat tmp/packages.txt | xargs $CHOST-emerge -1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If one of them fails again, save the resume list.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -p --resume | grep &amp;quot;^\[[eb].*\]&amp;quot; | grep -ve &amp;quot;^\[blocks&amp;quot; | \&lt;br /&gt;
cut -b 18- | cut -d &amp;quot; &amp;quot; -f1 | awk '{ print(&amp;quot;=&amp;quot; $0); }' &amp;gt;tmp/packages.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Go back to &amp;quot;Continue cross-compilation with QEmu&amp;quot; until all packages are merged&lt;br /&gt;
successfully.&lt;br /&gt;
&lt;br /&gt;
Update the configuration files and read/clear all news from portage.&lt;br /&gt;
Remove some leftovers temporary files and exit the cross compilation&lt;br /&gt;
environment.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$CHOST-emerge -a --depclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enter the chroot environment, fix all missing dynamics and edit updated&lt;br /&gt;
configurations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount --rbind /proc $PWD/proc&lt;br /&gt;
mount --make-rslave $PWD/proc&lt;br /&gt;
mount --rbind /sys $PWD/sys&lt;br /&gt;
mount --make-rslave $PWD/sys&lt;br /&gt;
mount --rbind /dev $PWD/dev&lt;br /&gt;
mount --make-rslave $PWD/dev&lt;br /&gt;
mount --rbind /usr/portage $PWD/usr/portage&lt;br /&gt;
chroot $PWD /bin/bash&lt;br /&gt;
unset CBUILD CHOST ROOT PORTAGE_CONFIGROOT&lt;br /&gt;
env-update&lt;br /&gt;
source /etc/profile&lt;br /&gt;
cd&lt;br /&gt;
source ./.bashrc&lt;br /&gt;
export PS1=&amp;quot;(chroot) $PS1&amp;quot;&lt;br /&gt;
revdep-rebuild -i -- -a --usepkg=n&lt;br /&gt;
dispatch-conf&lt;br /&gt;
eselect news list&lt;br /&gt;
eselect news read&lt;br /&gt;
eselect news purge&lt;br /&gt;
emaint --check all&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If something is reported wrong by &amp;quot;emain&amp;quot;, fix it.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
emaint --fix &amp;lt;...&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Check if everything is OK.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eix-test-obsolete -b&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Read any messages from portage.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
eread&lt;br /&gt;
exit&lt;br /&gt;
umount -l usr/portage&lt;br /&gt;
umount -l dev sys proc&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove some leftover temporary files and QEmu.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rm -rf /var/tmp/portage/* /usr/$CROSSDEV_TARGET/var/tmp/portage/* \&lt;br /&gt;
/usr/$CROSSDEV_TARGET/tmp/packages.txt&lt;br /&gt;
&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET/run/systemd&lt;br /&gt;
rm -f usr/src/linux&lt;br /&gt;
rm usr/bin/qemu-arm&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Copy back the target system and restore the previous cross compiler state.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd &amp;quot;$FROM_DIR&amp;quot;&lt;br /&gt;
rsync -a /usr/$CROSSDEV_TARGET/. $CROSSDEV_TARGET/.&lt;br /&gt;
rm -rf /usr/$CROSSDEV_TARGET&lt;br /&gt;
tar -xpjf ${CROSSDEV_TARGET}-saved.tar.bz2 -C /usr&lt;br /&gt;
rm ${CROSSDEV_TARGET}-saved.tar.bz2&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Optional: Remove cross compiler ==&lt;br /&gt;
&lt;br /&gt;
If the cross build system is no more used, it can be removed by the following&lt;br /&gt;
commands.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
crossdev --clean $CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/portage/packages/x86_64-pc-linux-gnu/cross-$CROSSDEV_TARGET&lt;br /&gt;
emaint --fix binhost&lt;br /&gt;
emaint --fix world&lt;br /&gt;
rm -rf /usr/local/portage-crossdev&lt;br /&gt;
rm -rf /usr/libexec/gcc/$CROSSDEV_TARGET&lt;br /&gt;
rm -rf /usr/bin/${CROSSDEV_TARGET}*&lt;br /&gt;
rm -f /etc/portage/repos.conf/crossdev.conf&lt;br /&gt;
rm -f /etc/portage/categories&lt;br /&gt;
emerge --depclean crossdev&lt;br /&gt;
rm /usr/bin/repositories_configuration-*&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Create SD-card partitions phlnx_boot/root/swap/home ==&lt;br /&gt;
&lt;br /&gt;
Finally the target system is done. Now it's time to copy it to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
It's recommended to partition the SD-card for the target system on the Pandora.&lt;br /&gt;
Otherwise the boot loader might refuse to work.&lt;br /&gt;
&lt;br /&gt;
Insert the SD-card in the left slot (mmcblk0) and unmount it if necessary.&lt;br /&gt;
&lt;br /&gt;
Create the following partitions:&lt;br /&gt;
&lt;br /&gt;
* A boot partition (ext2).&lt;br /&gt;
* A root partition which will contain the target system (at least 4 GB).&lt;br /&gt;
* A home partition which we can use later.&lt;br /&gt;
* A SWAP partition which we can use later.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
&lt;br /&gt;
/sbin/fdisk /dev/mmcblk0&lt;br /&gt;
    Create new DOS partition label: o&lt;br /&gt;
    Create new partition: n p 1 Return +8M&lt;br /&gt;
    Create new partition: n p 2 Return +4G&lt;br /&gt;
    Create new partition: n p 3 Return +1G&lt;br /&gt;
    Change partition type: t 3 82 (Linux swap)&lt;br /&gt;
    Create new partition: n p Return Return&lt;br /&gt;
    Write all changes: w&lt;br /&gt;
&lt;br /&gt;
/sbin/mkfs.ext2 -FL phlnx_boot /dev/mmcblk0p1&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_root -O ^has_journal /dev/mmcblk0p2&lt;br /&gt;
/sbin/mkswap -L phlnx_swap /dev/mmcblk0p3&lt;br /&gt;
/sbin/mkfs.ext4 -FL phlnx_home -O ^has_journal /dev/mmcblk0p4&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Option #1: Copy target system to SD-card ==&lt;br /&gt;
&lt;br /&gt;
One of the possibilities to copy the target system to the SD-card on the Pandora&lt;br /&gt;
is to use a USB cable connecting the Pandora to the desktop computer.&lt;br /&gt;
&lt;br /&gt;
It's also possible to copy it via the WiFi network (see below).&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
Connect the Pandora via USB to the desktop computer. Insert the SD-card in the&lt;br /&gt;
left slot (mmcblk0). Use menu &amp;quot;System/SD-Mass Storage&amp;quot; to access partition&lt;br /&gt;
&amp;quot;phlnx_root&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Mount the root partition and copy the target system. Use the correct &amp;quot;/dev/sd*&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
su&lt;br /&gt;
mkdir /tmp/mnt&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
mkdir -p /tmp/mnt/boot&lt;br /&gt;
touch /tmp/mnt/boot/.keep&lt;br /&gt;
mkdir -p /tmp/mnt/home&lt;br /&gt;
touch /tmp/mnt/home/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
Use &amp;quot;System/SD-Mass Storage&amp;quot; again to access phlnx_boot.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Desktop computer ===&lt;br /&gt;
&lt;br /&gt;
Mount the boot partition and copy boot directory of the target system.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mount /dev/sdc /tmp/mnt&lt;br /&gt;
rm -f /tmp/mnt/uImage-pherkad&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
CrossDev/$CROSSDEV_TARGET/boot/. /tmp/mnt/.&lt;br /&gt;
&lt;br /&gt;
umount /tmp/mnt&lt;br /&gt;
rmdir /tmp/mnt&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
End SD-Mass Storage.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Option #2: Copy target system to SD-card via WiFi network ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Pandora ===&lt;br /&gt;
&lt;br /&gt;
Copy all files from the desktop computer to the SD-card partitions. Use the&lt;br /&gt;
same CROSSDEV_TARGET and FROM_DIR environment settings as on the desktop &lt;br /&gt;
computer.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo -s&lt;br /&gt;
export REMOTE=mizar.spdns.de&lt;br /&gt;
export FROM_DIR=/home/jgeiss/Data/Systems/Pandora/Pherkad/Linux/Gentoo/CrossDev&lt;br /&gt;
export CROSSDEV_TARGET=armv7a-hardfloat-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
mkdir -p /media/phlnx_root/boot&lt;br /&gt;
touch /media/phlnx_root/boot/.keep&lt;br /&gt;
&lt;br /&gt;
rsync -av --numeric-ids --delete --exclude lost+found --exclude /boot \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/. /media/phlnx_root/.&lt;br /&gt;
&lt;br /&gt;
rsync -av --delete --exclude lost+found \&lt;br /&gt;
$REMOTE:$FROM_DIR/$CROSSDEV_TARGET/boot/. /media/phlnx_boot/.&lt;br /&gt;
&lt;br /&gt;
exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Boot the new system ==&lt;br /&gt;
&lt;br /&gt;
Reboot the Pandora and hold the right shoulder button until the boot menu&lt;br /&gt;
appears.&lt;br /&gt;
&lt;br /&gt;
'''Sometimes it is necessary to switch off the Pandora for 10-60 seconds.'''&lt;br /&gt;
&lt;br /&gt;
Choose &amp;quot;boot from SD1:1&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
It the boot works well, login as root and play around.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Optional: USB-networking ===&lt;br /&gt;
&lt;br /&gt;
To use networking to the desktop computer via USB cable, execute the&lt;br /&gt;
following commands on both systems.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Pandora ====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
modprobe g_ether&lt;br /&gt;
ifconfig usb0 192.168.129.3 netmask 255.255.255.0&lt;br /&gt;
route add default gw 192.168.129.2&lt;br /&gt;
systemctl start sshd&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Desktop computer ====&lt;br /&gt;
&lt;br /&gt;
Configure the corresponding network interface.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ifconfig enp0s20u1u1 192.168.129.2 netmask 255.255.255.0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you should be able to connect to the Pandora.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
ssh root@192.168.129.3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Shutdown Pandora ===&lt;br /&gt;
&lt;br /&gt;
To shutdown the Pandora system enter the following command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
systemctl poweroff&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Open issues ==&lt;br /&gt;
&lt;br /&gt;
The following things are currently not working and need to be implemented/fixed:&lt;br /&gt;
&lt;br /&gt;
* wl1251 board initialization failed&lt;br /&gt;
* tw1: not initialized&lt;br /&gt;
* omapfb omapfb: no displays, failed to setup omapfb&lt;br /&gt;
* omap2_set_init_voltage: unable to find boot up OPP vor ...&lt;br /&gt;
* __nand_correct_data: uncorrectable ECC error&lt;br /&gt;
* Buffer I/O error on dev mtdblock0, logical block 0, async page read&lt;br /&gt;
* Cursor and other GPIO-related keys do not work correctly if CPU is idle. Workaround: echo 1 &amp;gt;/sys/devices/system/cpu/cpu0/cpuidle/state4/disable&lt;br /&gt;
* Kernel panic at system shutdown&lt;br /&gt;
* fstab: Auto-Mounting /boot or /home causes system suspend after about 30 Seconds.&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
	<entry>
		<id>https://pandorawiki.org/index.php?title=Gentoo&amp;diff=30278</id>
		<title>Gentoo</title>
		<link rel="alternate" type="text/html" href="https://pandorawiki.org/index.php?title=Gentoo&amp;diff=30278"/>
		<updated>2018-06-04T18:27:30Z</updated>

		<summary type="html">&lt;p&gt;Jgeiss: Link to page for Cross Install Gentoo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Lead_Photo_For_Gentoo0-3487219834854004.jpg|thumbnail|Gentoo running on Alec' pandora]]&lt;br /&gt;
&lt;br /&gt;
Alternative: '''[[Cross Install Gentoo]]'''.&lt;br /&gt;
&lt;br /&gt;
[http://boards.openpandora.org/topic/16315-gentoo-for-pandora-release-201405/ forum thread]&lt;br /&gt;
&lt;br /&gt;
* Razor-qt 0.5.2 desktop&lt;br /&gt;
* Over 500 pre-built packages, including: Firefox 29.0, GIMP 2.8.10, QtCreator 2.8.1, gdb 7.6.2, Valgrind 3.9.0, gcc 4.7.3&lt;br /&gt;
* All the packages were built for Cortex-A8 (softfp), mostly Gentoo arm stable&lt;br /&gt;
&lt;br /&gt;
=== '''Installation''' requirements===&lt;br /&gt;
* '''Pandora''' All versions fine?&lt;br /&gt;
* '''SD card''' Minimum 2GB&lt;br /&gt;
&lt;br /&gt;
=== '''Download''' the gentoo image ===&lt;br /&gt;
* [http://gentoo.openpandora.org/images Images]&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# wget http://gentoo.openpandora.org/images/gentoo-pandora-2014.05.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Partition''' the SD card ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkfs.ext2 -L boot /dev/mmcblk0p1&lt;br /&gt;
# mkfs.ext4 -L gentoo -E stride=2,stripe-width=1024 /dev/mmcblk0p2&lt;br /&gt;
# mkdir -p /mnt/gentoo&lt;br /&gt;
# mount /dev/mmcblk0p2 /mnt/gentoo&lt;br /&gt;
# mkdir /mnt/gentoo/boot&lt;br /&gt;
# mount /dev/mmcblk0p1 /mnt/gentoo/boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== '''Extract''' Gentoo onto the SD card partitions ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tar xapvf gentoo-pandora-2014.05.tar.bz2 -C /mnt/gentoo&lt;br /&gt;
# umount /mnt/gentoo/boot&lt;br /&gt;
# umount /mnt/gentoo&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== ''' Wireless ''' ===&lt;br /&gt;
# Click the wifi icon in the tray.&lt;br /&gt;
# In the window, press scan.&lt;br /&gt;
# &amp;quot;Double-click&amp;quot; your network (hit right nub up, might take a few tries if it's not tuned)&lt;br /&gt;
# Fill in the auth info and hit enter&lt;br /&gt;
# You should be connected now. It now will connect every time Gentoo starts.&lt;br /&gt;
&lt;br /&gt;
=== '''Installing packages''' === &lt;br /&gt;
[http://gentoo.openpandora.org/packages available packages]&lt;br /&gt;
* Open a terminal and run:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# $ su - &lt;br /&gt;
# Password:&lt;br /&gt;
# emerge -avK htop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Updating the system using binary packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# emerge -auvDK @world &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Build portage tree to install prebuilt packages:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# emerge --sync          (will take a while the first time)&lt;br /&gt;
# emerge -av wgetpaste&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Operating system]]&lt;/div&gt;</summary>
		<author><name>Jgeiss</name></author>
		
	</entry>
</feed>