There is a possibility that you could brick your NAS with these instructions. Please make sure that you read the entire page carefully. It is easy to recover your bricked LS-GL, but you have to disassemble it. Disassembling may void your warranty or cause severe damage of the hardware!

GenLink on the LS-GL (manual install)

At the moment, to get Gentoo running on the Linkstation Pro your only choice is manually unpack the latest Genlink_arm9 rootfs image to your /dev/sda2. The rootfs image consists of a typical Gentoo stage3, with very few modifications, and pre-configured to give you the possibility to emerge several binary packages, without having to compile them yourself.
Don't be scared off by the rather long instructions, actually they where even longer in their first version :-). Please make sure to read them through and understand them before starting to install Gentoo!

Preliminary

Get needed packages

Download all the packages needed in the further process, because in EM mode you have no way to get them easily.

Boot into EM mode

The simple one needs the ACP Commander. It allows to switch to EM mode via:

java -jar acp_commander.jar -t <linkstation-ip> -emmode

and opens an telnet server via:

java -jar acp_commander.jar -t <linkstation-ip> -o

Modify Initrd

To boot another firmware you need an modified Initrd. You can use for example lb_worm's 'Modified Initrd' or install the Genlink tarball, which you only have to unpack over /dev/sda1 in order to have a custom initrd, a modified stock kernel with NFS and usb-printer support pre-configured to boot an alternative distribution.

Of course, if your box was already setup to boot an alternative firmware previously, you don't need to replace the kernel and the initrd. This is most likely the case if the contents of your /dev/sda1 looks similar to

## Set to YES if not a stock box, comment out if stock box
OTHER_DISTRIBUTION=YES
## Define root path, comment out if stock box
ROOTPATH=/boot
## Advanced use only, specify system area format
SYSTEM_FORMAT="mkfs.xfs -d agcount=4 -l size=32m"
## Set menu timeout (secs), default is 4. Disable, set to 0 or OFF. For
## EM mode set to EM
MENU_TIMEOUT=0
## Set to YES to delete hdd image following update or NO to leave it
REMOVE_HDDROOTFS=YES
## Reset fan as micocontroller does not do this after reboot
miconapl -a fan_set_speed stop
## Watch-dog reset to 250 secs
miconapl -a system_set_watchdog 250
## Clear error LED indication
miconapl -a led_set_code_information clear
## Indicate it ran
miconapl -a bz_imhere 1 b4 a4

while the bold and italic lines should be exactly as shown, in order to boot an alternative firmware (distribution). Also, rootfs_ok should contain a fresh date, but more about this in the last section before booting into the newly installed system.

Optional partitions (if not created previously)

While you're at resizing the big data partition anyway, create another logical
partition behind it, of approx. 3-4GB for gentoo portage (if you
won't, you still can make a symlink /mnt/xtra to point to some directory
on the big partition.
If you added that xtra partition, you might also want to add one for mounting later in /home to use it also for your workstations in the LAN if you make your LSpro
a server.
Format these partitions as xfs, too.

Installation, while still in EM boot

Actuially, this is where you can directly start in case you already did the previous steps some other time.

Mounting needed partitions

Optional quick backup of old system on the same partition

If your system partition mounted under /mnt/sda2 still contains an old system at this point (simply because you didn't have to resize it just now, since you already did it in the past, or this is a re-installation, if you want to keep that old system at least until the new one boots, you can quickly backup that system to a 00_backup directory on the same partition:

mkdir -p /mnt/sda2/00_backup
mv -r /mnt/sda2/* /mnt/sda2/00_backup

Ignore the error message about 00_backup, it's normal. Now your /mnt/sda2 should contain that backup directory, at most, your system partition is now ready for installation.

Downloading the latest rootfs image

NOTE: At this time the IP address of the server is 89.149.216.143, that will change and this will need updating after the beginning of September. Post a reminder if you get a 404 error.

If your initrd can't resolve names, put the download address in your /etc/hosts, it's only in RAM anyway. If you don't, your wget will be in trouble with the path on the virtual http server on Linkstationwiki:

echo '89.149.216.143 downloads.nas-central.org' >> /etc/hosts

Also make sure to replace the download link with a current one, LATEST being just a placeholder. Just paste the link from the internet browser from your desktop:

Note: You could also have downloaded the rootfs image to your data partition, maybe before booting into EM-mode or if you had the HDD mounted in your desktop, and now before unpacking you should then have made a symlink to the actual archive, on /mnt/sda2 to unpack it to the right place.

Unpacking the rootfs image

Make sure you execute the following command while your current directory is cd /mnt/sda2, regardless if the rootfs archive is a real file or a symlink pointing to another partition:

tar xvjpf ./GenLink_arm9-LATEST.tar.bz2

Important: Adjusting the network setup before rebooting

If you can't use DHCP, or want to adjust the fallback IP in case DHCP does not work,
edit network configuration in /mnt/sda2/etc/conf.d/net(in EM mode, your only choice is vi), either leave the DHCP configuration active, as it is, and only edit the fallbacks, or comment the DHCP section and uncomment the static configuration and edit it according to your LAN. The DNS entry at the end of the file is common for both scenarios, it will automatically overwrite /etc/resolv.conf, please adjust that, too.

If you want to change the hostname from the default GenLSPro, edit /mnt/sda2/etc/conf.d/hostname.

Important: Configuring the initrd to boot the HDD

Depending on the initrd used, you may have to adjust/touch the respective tracer files on your /dev/sda1 partition:

touch /boot/hddrootmode
date > /boot/rootfs_ok

At this point, you may also edit the keymap in /mnt/sda2/etc/conf.d/keymaps if you want to use non-US when Gentoo boots.

Time to flush all buffers and reboot!!

sync
reboot

First boot of the new Genlink rootfs

While rebooting, after some while the power-LED will stop blinking and stay solid green, the boot process will last a bit longer for the first time, because SSHD will create new RSA keys, and finally you'll hear the I'm here sound signalizing that you're ready to ssh to your box. If you succeed to get a login prompt, log in as root with the password lspro, then you should see this:

Adjusting /etc/fstab according to your partition scheme

If you created the optional partition(s) above, edit /etc/fstab (now you can use nano for this) and
uncomment/adapt the respective line(s) to mount it under
/mnt/xtra, then mount it.
If you did not create it, then just make symlink /mnt/xtra point to some directory on your big partition;

Initializing Portage

If this is your first Genlink installation on this Linkstation, or you didn't keep the optional gentoo partition from a previous Genlink installation, you have to initialize portage by running

/00-post_1st_boot/init_portage.sh

otherwise just go on to the next step. If you had to start the script, you can take a 20 minutes brake now, after that you may continue with the next step.

Finishing basic system (stage3) installation

Emerge the basic system just from already built packages hosted at linkstationwiki by issuing the emerge commands with --getbinpkgonly and --usepkgonly (PLEASE see emerge --help and note that the --getbinpkg[only] switches will download binary packages to /var/tmp/binpkgs/All and the --usebinpkg[only] will do the actual binary installation from there, so if you do this later you might skip downloading if you have the binaries ). If you don't use those switches, portage will start to compile packages from the sources it will download. For now it's more efficient to use the already compiled packages which didn't fit on the initial rootfs image. If you add the --pretend switch, portage will just show you what packages it would emerge (with respect to required dependencies).

emerge system --getbinpkgonly --usepkgonly --pretend --verbose

If you omit --pretend --verbose, emerging all those packages will really start.

emerge system --getbinpkgonly --usepkgonly

This will take some time at first run (maybe 5 to 10 minutes), as a cache is calculated for the binary packages repository.
Note:system is not a package itself, but rather defines a whole set of the basic packages required to boot and run a linux system. Another example is world, which will contain almost all packages you installed, it's useful when you generally
update packages later.

Now that the zoneinfo has been installed (as part of the emerge system you just completed), you can replace the file /etc/localtime with a symlink according to your
timezone. Mine looks like this:

/etc/localtime -> /usr/share/zoneinfo/Europe/Berlin

Of course, you can also do this later, after you have MC for example, if you're more comfortable.

After following these instructions and rebooting, the Pro retected ssh connections. Emerge OpenSSH from source to avoid this problem.

emerge net-misc/openssh

Setting up layman, the portage overlay manager

In order to get the buffalo-patched linux headers and other packages which had to be adjusted for usage and compilation on the Linkstation Pro from our SF.net overlay later, we want to get the overlay manager layman:

After emerging Layman you will get a notification that a config file in etc needs updating. Run etc-update and discard the updated config file, to keep the original as the original file has been edited for the linkstation overlay already. More on this...

After binary emerging layman, you can check what remote overlays (alternative portage repositories) are currently known to layman:

layman -L

You can also verify if our SF.net overlay is already configured (should be):

which you also should have seen on top of the output of layman -L.
You can also try to sync the LinkStation-Pro-arm9overlay to the latest version, by issuing

layman -S

which would sync all overlays configured locally (at this time, we only have one, if there where more, you can specify which one to sync with lowercase -s, please check layman --help.

Before emerging further pacakges, a note about configuration files

You'll be emerging (installing) packages now, please remember as a rule of thumb, that portage will inform you sometimes after emerging about configuration files in /etc that need updating, and that you should run etc-update to update them. Running this script is convenient, and also recommended, as sometimes configuration files really need to be upgraded to newer versions (some packages might even work badly or not at all if you won't update the configuration files).
etc-update will notice if a configuration file has too complex changes compared to the previous version and can't just be overwritten, and will prompt you to decide what to do about those files. Therefore, it is good practice to:

try to postpone customizations to configuration files or scripts you intend to do yourself, after upgrading them;

in case of being prompted with files you know they have been customized (for those you know they where left as they originally came and you are sure you never customized them, just overwrite them), cancel etc-update, go and edit the new replacement files (they start with ._cfg0000_...) to manually migrate your old settings in the new files, run etc-update again and now you can safely overwrite them all.

These being said, please also consider as customized, the following files, take care when updating them, either keep their old versions (only recommended between minor updates), or manually migrate their settings, paying very special attention to the indicated lines, they have to remain like this:

since we can't actually use udev yet. Well, if you leave it on "auto", Gentoo should still boot after a delay;

/etc/conf.d/local.start:

not so important, but I thought it's useful to have the LS-Pro signalize when the services are up and running, so just delete the new proposed ._cfg0000_local.start file.

Emerging further useful binary packages

Continue emerging further packages now. Since I want to use postfix as my SMTP agent later, I'd emerge postfix now, otherwise simple smtp would be pulled and compiled due to dependencies of other packages. Well, it's up to you if you emerge postfix now or skip to MC:

Midnight Commander and all its dependencies (including really large packages, like samba, cups, ghostscript, php5, apache), plus lots of other useful programs (more to follow) are just waiting at linkstationwiki to be binary emerged:

Start & configure automatic start for cron and logger

As on any GNU/Linux, service scripts are in /etc/init.d and you can look what's
already there, the Gentoo runlevels you should be interested in are /etc/runlevels/boot
and /etc/runlevels/default. Add the cron and logger services to the default runlevel:

rc-update add vixie-cron default
rc-update add metalog default

Start them in this uptime, too (cron will also pull the logger):

/etc/init.d/vixie-cron start

Final words

Please test how packages actually run and report problems.

If you want to share your emerged packages because you consider them useful and compilation took a long time (you can always check with genlop -t package-name) , and feel you might want to change USE flags, try to get away with changing them only in /etc/portage/package.use for that specific package and contact someone with developer access to upload the binpkg to the repository.

Add services, emerge normally (with compiling) new packages, play with other things, read some Gentoo docs if you're new to Gentoo and have fun with it!