Difference between pages "Experimental branch" and "Extlinux"

From Funtoo
(Difference between pages)
Jump to navigation Jump to search
 
 
Line 1: Line 1:
{{Fancynote| Funtoo Experimental is where we test bleeding-edge stuff. Don't use experimental unless you are helping us test new features.}}
== What is ExtLinux? ==
{{Fancywarning| experimental tree perodically stopped and not getting updates. Current status is stopped}}
== Status ==
Future plans:
* funtoo profile integration
* udev and friends bump


== Introduction ==
ExtLinux is a simple and modern systemloader bundled with the syslinux tools. Installation is simple and fast, and thanks to our CoreTeam member Slashbeast the configuration is easily automated.


The Funtoo experimental branch is used by Funtoo Core Developers to try and test new features to be included in Funtoo stable and current branches when ready. Users that want to help the developers test those new features are welcome to switch to the experimental branch and report problems on IRC or the forum. However, problems may arise from using it and there is no guarantee that your system will stay usable.
= Installing ExtLinux for funtoo =
 
Installing ExtLinux for funtoo is known to work and supported too. If you like to try it just emerge syslinux
 
<console>
# ##i##emerge syslinux
</console>
 
with that you have the complete syslinux tools installed. Another helpful tool you should merge with syslinux is slashbeast's lazykernel tool, so let us merge it too:


== Upgrading an existing Funtoo installation to experimental ==
<console>
<console>
###i## rm -rf /usr/portage
# ##i##emerge lazykernel
</console>
</console>
Add the following line (or modify it if it's already there):
 
== Installing extlinux ==
 
to install extlinux just follow these steps:
 
<console>
<console>
###i## nano -w /etc/make.conf
# ##i##install -d /boot/extlinux
SYNC="git://github.com/funtoo/experimental-mini-2011.git"
# ##i##extlinux --install /boot/extlinux
</console>
</console>


=== First method ===
the next steps are different depending if you use an MBR or GPT setup and the HDD you installed on and want to boot from. Let us now for general take /dev/sda as your boot device.
 
=== MBR ===
 
If you set up your disk with MBR partition scheme just do the next steps:
 
<console>
<console>
###i## emerge --sync     
# ##i##dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/mbr.bin of=/dev/sda
# ##i##cp /usr/share/syslinux/menu.c32 /boot/extlinux/
# ##i##cp /usr/share/syslinux/libutil.c32 /boot/extlinux/
# ##i##touch /boot/extlinux/extlinux.conf
</console>
</console>


Verify that the experimental tree has been properly installed:
=== GPT ===
 
<console>
<console>
###i## cat /usr/portage/.git/config
# ##i##sgdisk /dev/sda --attributes=1:set:2
...
# ##i##sgdisk /dev/sda --attributes=1:show
[remote "origin"]
1:2:1 (legacy BIOS bootable)
fetch = +refs/heads/*:refs/remotes/origin/*
# ##i##dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=/dev/sda
url = git://github.com/funtoo/experimental-mini-2011.git
# ##i##cp /usr/share/syslinux/menu.c32 /boot/extlinux/
...
# ##i##cp /usr/share/syslinux/libutil.c32 /boot/extlinux/
# ##i##touch /boot/extlinux/extlinux.conf
</console>
</console>


You should see that the git repository is pointing to experimental-mini-2011.git.
== Setting up the Kernel ==


If for any reason this method did not work, use the second method to manually clone the experimental branch.
Now if you followed our advice to install lazykernel we have a pretty nice way to solve all the setup with a bit of prework and finish it then. If not you should go to the manual part. :)
 
=== lazykernel way ===
 
Edit <tt>/etc/lazykernel.conf</tt>:
 
{{file|name=/etc/lazykernel.conf|desc= |body=
# After configuring, hash or remove line below.
#CONFIGUREFIRST
 
# Number of the kernels to keep so `lazykernel clean` will not propose to remove them. Default: 3
keep_kernels=5
 
# Sort kernels by 'version' (biggest version first) or by 'mtime' (latest images first). Default: mtime
# Sorting by version may fail and 3.3.0-rc2 will be marked as newer than 3.3.0.
#sort_by='version'
sort_by=mtime
 
# The name for menu entry.
menu_entry_name="Funtoo Linux"
 
# Specify what initramfs image to use, if any. (Optional)
initramfs='initramfs.cpio.gz'
 
# Append kernel params, usualy you use it to specify rootfs device, but you can use it to pass switches to initramfs as well.
kernel_params="rootfstype=ext4 luks enc_root=/dev/sdb3 lvm root=/dev/mapper/vg-root uswsusp resume=/dev/mapper/vg-swap"
}}
 
{{fancynote| Please make sure to comment out or delete the second line of the config file...else it will spit out an error.}}
 
Now let us setup our kernel with lazykernel. If you have a manual kernel just run:


=== Second method ===
<console>
<console>
###i## rm -rf /usr/portage
# ##i##cd <kernel build dir>
###i## cd /usr
# ##i##lazykernel auto
###i## git clone git://github.com/funtoo/experimental-mini-2011.git portage
###i## emerge --sync
</console>
</console>


== Installation from an experimental branch stage3 ==
This will generate the modules for you. Copy your kernel form <tt>/usr/src/linux</tt> to <tt>/boot</tt> and generate the <tt>/boot/extlinux/extlinux.conf</tt>. The manual kernel will be the only one supported by lazykernel.
You can find some stage3s on the Funtoo mirror: [http://ftp.osuosl.org/pub/funtoo/funtoo-experimental/]. These stages are updated weekly, possibly more often during active experimental development.
 
=== manual extlinux.conf ===


== Building stage3s using Metro ==
For other kernels, like those created by genkernel or by the binary USE-flag you need to edit your config by yourself. Just open <tt>/boot/extlinux/extlinux.conf</tt> in your favorite editor:
You may build your own stages of the experimental branch using [[Metro]]. The stages from the Funtoo mirror ([http://ftp.osuosl.org/pub/funtoo/funtoo-experimental/]) can be used as a seed. A funtoo-experimental target is available.


== History ==
<pre>
{{SectionNeedsUpdates}}
TIMEOUT 30
=== Iteration 1 (Completed Dec 16, 2011) ===
UI menu.c32


Implementation and stabilization of a new set of toolchain packages:
MENU TITLE Boot Menu
MENU COLOR title        1;37;40
MENU COLOR border      30;40
MENU COLOR unsel        37;40


* gcc-4.6.2
LABEL funtoo1
* binutils-2.21-r1
        MENU LABEL Funtoo Linux KERNEL-VERSION
* linux-headers-2.6.39
        LINUX /<kernel>
* glibc-2.13-r4
        INITRD /<initramfs>
* udev-171-r1
        APPEND rootfstype=ext4 luks enc_root=/dev/sdb3 lvm root=/dev/mapper/vg-root uswsusp resume=/dev/mapper/vg-swap
* patched lvm2-2.02.85
</pre>
* Several patches to solve problems building with this toolchain


And some other features:
That's all. You are now ready for boot. You can also define several LABELs in that list to have multiple kernels been booted... :)
* [[Portage Dynamic Slot]]
* Modifications of Mesa, libdrm and radeon drivers to support each type of Radeon video card individually, as well as masked -9999 versions of those packages.


[[Category:Portage]]
[[Category:HOWTO]]
[[Category:HOWTO]]
[[Category:Featured]]

Revision as of 18:52, June 27, 2014

What is ExtLinux?

ExtLinux is a simple and modern systemloader bundled with the syslinux tools. Installation is simple and fast, and thanks to our CoreTeam member Slashbeast the configuration is easily automated.

Installing ExtLinux for funtoo

Installing ExtLinux for funtoo is known to work and supported too. If you like to try it just emerge syslinux

root # emerge syslinux

with that you have the complete syslinux tools installed. Another helpful tool you should merge with syslinux is slashbeast's lazykernel tool, so let us merge it too:

root # emerge lazykernel

Installing extlinux

to install extlinux just follow these steps:

root # install -d /boot/extlinux
root # extlinux --install /boot/extlinux

the next steps are different depending if you use an MBR or GPT setup and the HDD you installed on and want to boot from. Let us now for general take /dev/sda as your boot device.

MBR

If you set up your disk with MBR partition scheme just do the next steps:

root # dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/mbr.bin of=/dev/sda
root # cp /usr/share/syslinux/menu.c32 /boot/extlinux/
root # cp /usr/share/syslinux/libutil.c32 /boot/extlinux/
root # touch /boot/extlinux/extlinux.conf

GPT

root # sgdisk /dev/sda --attributes=1:set:2
root # sgdisk /dev/sda --attributes=1:show
1:2:1 (legacy BIOS bootable)
root # dd bs=440 conv=notrunc count=1 if=/usr/share/syslinux/gptmbr.bin of=/dev/sda
root # cp /usr/share/syslinux/menu.c32 /boot/extlinux/
root # cp /usr/share/syslinux/libutil.c32 /boot/extlinux/
root # touch /boot/extlinux/extlinux.conf

Setting up the Kernel

Now if you followed our advice to install lazykernel we have a pretty nice way to solve all the setup with a bit of prework and finish it then. If not you should go to the manual part. :)

lazykernel way

Edit /etc/lazykernel.conf:

   /etc/lazykernel.conf
# After configuring, hash or remove line below.
#CONFIGUREFIRST

# Number of the kernels to keep so `lazykernel clean` will not propose to remove them. Default: 3
keep_kernels=5

# Sort kernels by 'version' (biggest version first) or by 'mtime' (latest images first). Default: mtime
# Sorting by version may fail and 3.3.0-rc2 will be marked as newer than 3.3.0.
#sort_by='version'
sort_by=mtime

# The name for menu entry.
menu_entry_name="Funtoo Linux"

# Specify what initramfs image to use, if any. (Optional)
initramfs='initramfs.cpio.gz'

# Append kernel params, usualy you use it to specify rootfs device, but you can use it to pass switches to initramfs as well. 
kernel_params="rootfstype=ext4 luks enc_root=/dev/sdb3 lvm root=/dev/mapper/vg-root uswsusp resume=/dev/mapper/vg-swap"
   Note
Please make sure to comment out or delete the second line of the config file...else it will spit out an error.

Now let us setup our kernel with lazykernel. If you have a manual kernel just run:

root # cd <kernel build dir>
root # lazykernel auto

This will generate the modules for you. Copy your kernel form /usr/src/linux to /boot and generate the /boot/extlinux/extlinux.conf. The manual kernel will be the only one supported by lazykernel.

manual extlinux.conf

For other kernels, like those created by genkernel or by the binary USE-flag you need to edit your config by yourself. Just open /boot/extlinux/extlinux.conf in your favorite editor:

TIMEOUT 30
UI menu.c32

MENU TITLE Boot Menu
MENU COLOR title        1;37;40
MENU COLOR border       30;40
MENU COLOR unsel        37;40

LABEL funtoo1
        MENU LABEL Funtoo Linux KERNEL-VERSION
        LINUX /<kernel>
        INITRD /<initramfs>
        APPEND rootfstype=ext4 luks enc_root=/dev/sdb3 lvm root=/dev/mapper/vg-root uswsusp resume=/dev/mapper/vg-swap

That's all. You are now ready for boot. You can also define several LABELs in that list to have multiple kernels been booted... :)