Tipps für Gentoo-Linux


Inhaltsverzeichnis

Links
Installation
Gentoo aktuell halten
Tipps


Links


Gentoo installieren

Gentoo-Universal-Installation CD 2004.2 booten, dann:
ifconfig eth0 10.3.3.42
vi /etc/ssh/sshd_config (Und "PasswordAuthentication yes" und "X11Forwarding yes" eintragen.)
/etc/init.d/sshd start
passwd
Der Rest geht dann auch Remote :-).
Mit fdisk eine Swap- und eine Root-Partition anlegen.
Evtl. dieses Layout:
/dev/hda1               1         259     1958008+  82  Linux swap
/dev/hda2             260        5168    37112040   83  Linux
mkswap -L SWAP /dev/hda1
swapon -L SWAP
mkfs.ext3 /dev/hda2
e2label /dev/hda2 ROOT
mount -L ROOT /mnt/gentoo
mkdir /mnt/gentoo/proc
# Stimmt das Datum?
date
# Wenn nicht, dann:
date 112415392005 (Format: MMDDhhmmYYYY)
cd /mnt/gentoo
# Falls das Stage3 nicht auf CD ist, dann erst noch herunterladen, z.B.:
wget http://distfiles.gentoo.org/releases/x86/2004.2/stages/stage3-i686-2004.2.tar.bz2
# oder das 2008.0:
wget http://distfiles.gentoo.org/releases/x86/2008.0/stages/stage3-i686-2008.0.tar.bz2
# bzw. gleich von CD nehmen:
tar -xjpf /mnt/cdrom/stages/stage3-i686-2004.2.tar.bz2
mount -t proc none /mnt/gentoo/proc
tar -xjf /mnt/cdrom/snapshots/portage-20040710.tar.bz2 -C /mnt/gentoo/usr
mkdir /mnt/gentoo/usr/portage/distfiles
cp /mnt/cdrom/distfiles/* /mnt/gentoo/usr/portage/distfiles/
chroot /mnt/gentoo /bin/bash
env-update
source /etc/profile
ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime
emerge -avt vanilla-sources
cd /usr/src/linux
make menuconfig
Hier muss mindestens das eingestellt werden:
Code maturity level options  --->
[*] Prompt for development and/or incomplete code/drivers

Processor type and features  --->
Processor family

File systems  --->
<*> Reiserfs support
[*] Virtual memory file system support (former shm fs)
[*] /proc file system support
[*] /dev file system support (EXPERIMENTAL)
[*]   Automatically mount at boot
[ ] /dev/pts file system for Unix98 PTYs

Dann weiter:
make dep && make bzImage modules modules_install
cp arch/i386/boot/bzImage /boot/2.4.26
cp .config /boot/.config.2.4.26
modules-update
nano /etc/fstab

Beispiel:
/dev/hda2        /               reiserfs        defaults            0 0
/dev/hda1        none            swap            sw                  0 0
/dev/fd0         /mnt/floppy     vfat            noauto,user,sync    0 0
/dev/cdroms/cdrom0 /mnt/cdrom    auto            noauto,user         0 0
none             /proc           proc            defaults            0 0
none             /dev/shm        tmpfs           defaults            0 0
none             /proc/bus/usb   usbfs           defaults            0 0
echo mein_neuer_rechner > /etc/hostname
nano -w /etc/conf.d/net (Und iface_eth0 anpassen.)
rc-update add net.eth0 default
Den Host-Namen und Domain-Name des Rechners trägt man in /etc/hosts ein:
1.2.3.4 myhost.sl.de myhost
Dann:
nano -w /etc/rc.conf (Und KEYMAP="de-latin1-nodeadkeys" eintragen.)
emerge -avt grub
grub
grub> root (hd0,1)
grub> setup (hd0)
grub> quit
nano -w /boot/grub/grub.conf
default 0
timeout 8
splashimage=(hd0,1)/boot/grub/splash.xpm.gz

title=Linux
root (hd0,1)
kernel /boot/2.4.26 root=/dev/hda2 vga=789
emerge -avt sysklogd
rc-update add sysklogd default
emerge -avt reiserfsprogs
emerge -avt vixie-cron
rc-update add vixie-cron default
rc-update add sshd default
passwd
useradd john -m
passwd john
exit
cd /
umount /mnt/gentoo/proc
umount /mnt/gentoo
reboot

Nach der Installation und dem Reboot:
In /etc/make.conf das eintragen:
SYNC="rsync://server.sl.de/portage"
Lokale Profil-Erweiterungen:
mkdir /etc/profile.d
ln -s /etc/profile.local /etc/profile.d/local.sh
SSH für den Rechner "sl" und root freischalten:
ssh sl
sl# scp ~/.ssh/id_dsa.pub NEUER_RECHNER:~/.ssh/authorized_keys
Dann meine eigenen Skripte übertragen:
sync-bin-NEUER_RECHNER
echo loescher > /ichbin
Distcc installieren:
USE="-gtk" emerge -avt distcc
Und dann in /etc/make.conf das eintragen: FEATURES="distcc" und mit distcc-config --set-hosts ... Rechner eintragen.
In /etc/make.conf die USE-Flags anpassen, z.B.:
USE="aac -aalib -acl -crypt dga directfb divx4linux -dv fbcon -flac -fortran -gnome -ipv6 -kde -ldap mad mbox -mikmod mmx -motif -mysql network -ogg -oggvorbis ppds -python quicktime -ruby rtc v4l v4l2 -vorbis win32codecs -xmms xv xvmc xvid 3dnow 3dnowext activefilter alsa apache2 dvb mmxext sse"
SYNC="rsync://server.sl.de/portage"
Da ich in meinen neuen USE-Flags "-acl" habe:
emerge -avt coreutils
emerge unmerge attr acl
Portage auf den neuesten Stand bringen: emerge --sync
eselect news read new | less
ggf.: emerge -avt -u portage
Wenns nicht klappt, kann das helfen:
cd /etc
rm make.profile
ln -sf /usr/portage/profiles/obsolete/x86 make.profile
emerge -avt -n '>=sys-apps/portage-2.0.51'
cd /etc/
rm make.profile
ln -s ../usr/portage/profiles/default-linux/x86/2005.1 make.profile
In /root/bin/ ein Skript backup-NEUER_RECHNER zum Backup anlegen:
fdisk -l > /fdisk.txt
dd if=/dev/hda  of=/hda.dd  bs=512 count=1
dd if=/dev/hda2 of=/hda2.dd bs=512 count=1
rsync -avH --delete --delete-excluded --exclude /cdrom --exclude /delwatch --exclude /proc --exclude /sys --exclude /xtemp --exclude /mnt --exclude /usr/portage/distfiles / server:/mnt/disk03/backup_von_NEUER_RECHNER/
Als Root eine crontab mit crontab -e anlegen:
SHELL=/bin/bash
PATH=/usr/sl:/usr/local/bin/:/bin:/usr/bin

# /tmp zu jeder vollen Stunde aufräumen
# Dauer: 1 min.
0 *  *  *  *  /usr/sl/clean-tmp

# /delwatch zu jeder halben Stunde aufräumen
# Dauer: 1 min.
30 *  *  *  *  /usr/sl/clean-delwatch
Weiterhin:
emerge -avt gentoolkit
emerge -avt vim
emerge unmerge nano
emerge unmerge linux-headers
emerge -avt linux-headers
emerge -avt vanilla-sources
emerge -avt nfs-utils
emerge -avt screen
emerge -avt netdate
emerge -avt Time-modules
emerge -avt genlop
emerge -avt app-admin/sudo
emerge -avt smartmontools
rc-update add smartd default
vi /etc/smartd.conf (und die Platten eintragen.)
/etc/init.d/smartd start
rc-update add portmap default
/etc/init.d/portmap start
emerge -avt eix
update-eix
echo "sys-libs/glibc userlocales" >> /etc/portage/package.use
/bin/echo -e "en_US/ISO-8859-1\nen_US.UTF-8/UTF-8\nde_DE/ISO-8859-1\nde_DE@euro/ISO-8859-15" > /etc/locales.build
emerge -avt lsof
emerge -avt pciutils
emerge -avt alsa-utils
rc-update add alsasound default
/etc/init.d/alsasound start
emerge -avt mmv
emerge -avt strace
emerge -avt xv
emerge -avt gnu-netcat
emerge -avt netperf
emerge -avt minicom
emerge -avt ppp
emerge -avt dhcpcd
emerge -avt ntp

Umstellung auf udev:
emerge -avt udev hotplug coldplug
rc-update add coldplug boot
vi /etc/conf.d/rc (Und das ändern: RC_DEVICE_TARBALL="no")
Um z.B. das Nokia-Handy immer unter /dev/handy erscheinen zu lassen braucht man das:
udevinfo -a -p /sys/block/sda
vi /etc/udev/rules.d/10-udev.rules
BUS="usb", KERNEL="sd?1", SYSFS{product}=="Nokia 6230i", NAME="handy"
Wenn man z.B. einen USB-Stick beim Einstecken automatisch mounten will, dann legt man einfach ein Skript /etc/dev.d/default/usbstick.dev mit diesem Inhalt an:
mount $DEVNAME /mnt/usbstick
und macht es ausführbar.
Zur Fehlersuche:
Wenn keine Gerätedateien in /dev angelegt werden, dann erst einmal schauen, ob der Dämon /sbin/udevd läuft.
Wenn nicht, dann liegts evtl. an einem alten /dev/.devfsd das so löschen kann:
mkdir /test
mount --bind / /test
rm /test/dev/.devfsd
Im Kernel braucht man außerdem die Option CONFIG_KOBJECT_UEVENT:
General setup --->
Kernel Userspace Events

Für Notebooks:
emerge -avt pcmcia-cs
rc-update add pcmcia default
emerge -avt apmd
oder emerge -avt acpi acpid ibm-acpi
emerge -avt hibernate-script
emerge -avt klaptopdaemon
/etc/init.d/acpid start
rc-update add acpid default

Für einen grafischen KDE-Desktop:
In /etc/make.conf z.B. das setzen:
INPUT_DEVICES="keyboard mouse"
VIDEO_CARDS="fbdev v4l vesa vga via"
und dann:
emerge -avt xorg-x11
env-update
source /etc/profile
Xorg -configure
X -config /root/xorg.conf.new
cp /root/xorg.conf.new /etc/X11/xorg.conf
vi /etc/X11/xorg.conf
Anpassen an deutsche Tastatur:
Section "InputDevice"
        Identifier  "Keyboard0"
        Driver      "kbd"
        Option      "XkbLayout" "de"
        Option      "XkbVariant" "nodeadkeys"
EndSection
bzw. wenn X11 den HAL verwendet, dann geht das in /etc/hal/fdi/policy/german-keyboard.fdi:
<?xml version="1.0" encoding="utf-8"?>
<deviceinfo version="0.2">
 <device>
  <match key="info.capabilities" contains="input.keys">
   <merge key="input.xkb.layout"       type="string">de</merge>
   <merge key="input.xkb.variant"      type="string">nodeadkeys</merge>
  </match>
 </device>
</deviceinfo>
Und dann natürlich noch ein: /etc/init.d/hald restart

In der Section "Screen" kann man noch die gewünschte Standard-Farbtiefe einstellen:
DefaultDepth 24
Für automatische Abschaltung des Displays trägt man folgendes in /etc/X11/xorg.conf ein:
Section "ServerFlags"
        Option      "BlankTime"    "5"
        Option      "StandbyTime"  "10"
        Option      "SuspendTime"  "20"
        Option      "OffTime"      "30"
EndSection
und in der Screen-Section braucht man noch die Option DPMS.
Für KDE braucht man in /etc/make.conf noch diese USE-Flags:
kde qt4 hal
Dann:
emerge -avt kdebase-startkde
echo "kde-base/kde-i18n linguas_de" >> /etc/portage/package.use
emerge -avt kde-i18n
emerge -avt konsole
Dann noch weitere Programme, die für einen Desktop interessant sind:
emerge -avt mplayer
In /etc/conf.d/local.start die Zeile
echo 1024 > /proc/sys/dev/rtc/max-user-freq
für mplayer hinzufügen.
emerge -avt gimp
emerge -avt gqview
emerge -avt mozilla-firefox-bin
#...
echo "app-office/openoffice-bin kde linguas_de" >> /etc/portage/package.use
emerge -avt openoffice-bin
emerge -avt k3b dvd+rw-tools

Für WLAN:
Siehe: WLAN einrichten.

Boot-Zeit verkürzen: Kurz-Zusammenfassung von diesen drei Anleitungen: echo "sys-apps/initng ~x86" >> /etc/portage/package.keywords
emerge -avt sys-apps/initng
Beim Grub die Kerneloption init=/sbin/initng ergänzen.
Aber: InitNG läuft bei mir nicht auf Anhieb.
(Aus Zeitmangel wieder deaktiviert.)
Modul-Abhängigkeiten mit folgendem Patch nur neu berechnen, wenn nötig:
--- /etc/init.d/modules.orig    2006-04-27 17:13:07.995167896 +0200
+++ /etc/init.d/modules 2006-04-27 17:14:57.448528456 +0200
@@ -79,9 +79,14 @@
 
        if [ -z "${CDBOOT}" ] && touch /etc/modules.conf 2> /dev/null
        then
-               ebegin "Calculating module dependencies"
-               /sbin/modules-update
-               eend $? "Failed to calculate module dependencies"
+               if [ /etc/modules.d -nt /etc/modules.conf ]
+               then
+                       ebegin "Calculating module dependencies"
+                       /sbin/modules-update
+                       eend $? "Failed to calculate module dependencies"
+               else
+                       einfo "Module dependencies are up-to-date"
+               fi
        fi
 
        local autoload=""

Gentoo aktuell halten


Tipps zu Gentoo


Valid HTML 4.01 Transitional   Valid CSS!