In der Kategorie "Projekte" befinden sich 4 Blog's oder Artikel
Es wird mal wieder Zeit für eine neue Installation da die alte beim Update-Versuch nun endgültig zerschossen ist 🤬 .
Da es eine ganz neue aktuelle (2017/2018) Gentoo Installation sein wird kann ich auch gleich ein How-To daraus machen... Der erste Schritt beginnt damit eine Gentoo Live-CD / Live-DVD oder von USB zu booten. Die Images zum brennen findet man unter https://www.gentoo.org/downloads/ . Ich habe noch eine alte Live-DVD von 2012 gefunden und diese gebootet. Hier eine lspci Ausgabe:
console ~ $ lspci
00:00.0 Host bridge: Intel Corporation Core Processor DRAM Controller (rev 02)
00:01.0 PCI bridge: Intel Corporation Core Processor PCI Express x16 Root Port (rev 02)
00:16.0 Communication controller: Intel Corporation 5 Series/3400 Series Chipset HECI Controller (rev 06)
00:19.0 Ethernet controller: Intel Corporation 82577LM Gigabit Network Connection (rev 06)
00:1a.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1b.0 Audio device: Intel Corporation 5 Series/3400 Series Chipset High Definition Audio (rev 06)
00:1c.0 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 1 (rev 06)
00:1c.1 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 2 (rev 06)
00:1c.3 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 4 (rev 06)
00:1c.4 PCI bridge: Intel Corporation 5 Series/3400 Series Chipset PCI Express Root Port 5 (rev 06)
00:1d.0 USB controller: Intel Corporation 5 Series/3400 Series Chipset USB2 Enhanced Host Controller (rev 06)
00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev a6)
00:1f.0 ISA bridge: Intel Corporation QM57 Chipset LPC Interface Controller (rev 06)
00:1f.2 SATA controller: Intel Corporation 5 Series/3400 Series Chipset 6 port SATA AHCI Controller (rev 06)
00:1f.3 SMBus: Intel Corporation 5 Series/3400 Series Chipset SMBus Controller (rev 06)
00:1f.6 Signal processing controller: Intel Corporation 5 Series/3400 Series Chipset Thermal Subsystem (rev 06)
01:00.0 VGA compatible controller: NVIDIA Corporation GT218M [NVS 3100M] (rev a2)
01:00.1 Audio device: NVIDIA Corporation High Definition Audio Controller (rev a1)
03:00.0 Network controller: Intel Corporation Centrino Ultimate-N 6300 (rev 35)
0d:00.0 SD Host controller: Ricoh Co Ltd MMC/SD Host Controller (rev 01)
0d:00.1 System peripheral: Ricoh Co Ltd R5U2xx (R5U230 / R5U231 / R5U241) [Memory Stick Host Controller] (rev 01)
0d:00.3 FireWire (IEEE 1394): Ricoh Co Ltd R5C832 PCIe IEEE 1394 Controller (rev 01)
ff:00.0 Host bridge: Intel Corporation Core Processor QuickPath Architecture Generic Non-core Registers (rev 02)
ff:00.1 Host bridge: Intel Corporation Core Processor QuickPath Architecture System Address Decoder (rev 02)
ff:02.0 Host bridge: Intel Corporation Core Processor QPI Link 0 (rev 02)
ff:02.1 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor QPI Physical 0 (rev 02)
ff:02.2 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved (rev 02)
ff:02.3 Host bridge: Intel Corporation 1st Generation Core i3/5/7 Processor Reserved (rev 02)
Nach dem ich die alte Installation über rsync auf meinem Backup-System gesichert habe formatiere ich die bestehenden Partitionen einfach wieder mit ext4. Mein Partitionaslayout ist etwas ungewöhnlich da noch ein anderes Betriebssystem installiert ist... Bei euch kann das Partitonslayout anders sein, daher müsst ihr hier besonders aufpassen und nicht blind meine Einstellungen übernehmen. Diese Einstellungen ziehen sich über das ganze How-To.
Gerät Boot Anfang Ende Sektoren Größe Kn Typ /dev/sda1 * 2048 206847 204800 100M 7 HPFS/NTFS/exFAT /dev/sda2 206848 230893567 230686720 110G 7 HPFS/NTFS/exFAT /dev/sda3 230893568 256059391 25165824 12G 7 HPFS/NTFS/exFAT /dev/sda4 256059392 976773119 720713728 343,7G 5 Erweiterte /dev/sda5 256061440 258158591 2097152 1G 83 Linux /dev/sda6 258160640 264452095 6291456 3G 82 Linux Swap / Solaris /dev/sda7 264454144 976773119 712318976 339,7G 83 Linux
Ich habe für Gentoo ein klassisches Layout mit einer Hauptpartition (ext4), einer Boot-Partition (ext2) und einer Swap-Partition. Das wird nun neu erstellt und gemountet:
console ~ $ mkfs.ext2 -T small /dev/sda5 console ~ $ mkfs.ext4 /dev/sda7 console ~ $ mkswap /dev/sda6 console ~ $ swapon /dev/sda6 console ~ $ mount /dev/sda7 /mnt/gentoo
Im nächsten Schritt muss die Systemzeit richtig eingestellt werden... "date" gibt die aktuelle Systemzeit aus und kann sie auch mit dem Format MMDDhhmmYYYY neu einstellen:
console ~ $ date 122120002017
Nun wird in ein aktuelles Stage3 Basissystem in das neue Wurzelverzeichnis heruntergeladen und entpackt:
console ~ $ cd /mnt/gentoo console ~ $ wget http://distfiles.gentoo.org/releases/amd64/autobuilds/20171215T184104Z/stage3-amd64-20171215T184104Z.tar.bz2 console ~ $ tar xvjpf stage3-*.tar.bz2 --xattrs --numeric-owner
Als nächstes wird die zentrale und wichtige Konfigurationsdatei /mnt/gentoo/etc/portage/make.conf angepasst. Ich will nicht detailiert auf die Optionen eingehen... Die Einstellungen stammen noch zum größten Teil von meiner alten Installation und sind gut auf das Thinkpad abgestimmt. So sieht meine neue make.conf aus:
# These settings were set by the catalyst build script that automatically # built this stage. # Please consult /usr/share/portage/config/make.conf.example for a more # detailed example. CFLAGS="-march=native -O2 -pipe" CXXFLAGS="${CFLAGS}" CPU_FLAGS_X86="mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" # WARNING: Changing your CHOST is not something that should be done lightly. # Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing. CHOST="x86_64-pc-linux-gnu" # With MAKEOPTS you define how many parallel compilations should occur when you install a package. A good choice is the number of CPUs (or CPU cores) in your system plus one, but this guideline isn\'t always perfect. MAKEOPTS="-j4" # These are the USE flags that were used in addition to what is provided by the # profile used for building. # general USE="pcre16 upcall encode cups rdesktop minizip script nss policykit icu consolekit bindist python X ipp mkl ssl xml xml2 win32codecs unicode lame mp3 mpeg a52 aac pulseaudio offensive ogg openrc-force vorbis xpm wmf mad sql sqlite -systemd mysql declarative vhost-net -libproxy" # hardware USE="$USE xkb gudev udev opengl hddtemp hwdb upower wifi cdr 64bit laptop usb dvd alsa dvdr dbus hal dvdread nvidia fbcondecor hdaps kernel_linux scanner threads" # gui/wm USE="$USE qt3support qt4 qt5 kde kdepim truetype webkit semantic-desktop xosd" # graphic USE="$USE apng jpeg png gif tiff svg exif vnc xmp" # NOTE: This stage was built with the bindist Use flag enabled PORTDIR="/usr/portage" DISTDIR="/usr/portage/distfiles" PKGDIR="/usr/portage/packages" INPUT_DEVICES="evdev synaptics" #VIDEO_CARDS="nvidia vesa" VIDEO_CARDS="nouveau" ALSA_CARDS="hda-intel usb-audio" SANE_BACKENDS="hp4200" ACCEPT_LICENSE="*" #ACCEPT_KEYWORDS="~amd64" LINGUAS="de en" ABI_X86="64 32" # This sets the language of build output to English. # Please keep this setting intact when reporting bugs. LC_MESSAGES=C
Nun richten wir das zentrale Paketverwaltungssystem ein, setzen Umgebungsvariablen für die neue Installation und wechseln über "chroot" direkt in die neue Umgebung.
console ~ $ mkdir --parents /mnt/gentoo/etc/portage/repos.conf console ~ $ cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf console ~ $ cp --dereference /etc/resolv.conf /mnt/gentoo/etc/ console ~ $ mount --types proc /proc /mnt/gentoo/proc console ~ $ mount --rbind /sys /mnt/gentoo/sys console ~ $ mount --make-rslave /mnt/gentoo/sys console ~ $ mount --rbind /dev /mnt/gentoo/dev console ~ $ mount --make-rslave /mnt/gentoo/dev console ~ $ chroot /mnt/gentoo /bin/bash console ~ $ source /etc/profile console ~ $ export PS1="(chroot) ${PS1}"
Jetzt sind wir in der neuen Umgebung, also dem Zielsystem, dass wir gerade installiert haben, angemeldet und können mit der Einrichtung weitermachen. Es fehlt nur noch die Boot-Parition:
console ~ $ mkdir /boot console ~ $ mount /dev/sda5 /boot
Das Paketverwaltungssystem wird nun das erste mal eingerichtet
console ~ $ emerge-webrsync console ~ $ emerge --sync console ~ $ eselect news read
Wir müssen das Profil bestimmen. Das Profil enthält wichtige Einstellungen und wirkt sich auf alle zu installierenden Pakete aus, da es bestimmte USE-Flags setzt.
console ~ $ eselect profile list console ~ $ eselect profile set default/linux/amd64/17.0/desktop
Nun sollten wir ein Systemupdate machen. Durch die zahlreichen USE-Flags meiner älteren make.conf werden schon einige Zusatzpakete installiert die das System für Stunden auslasten wird...
console ~ $ emerge --ask --update --deep --newuse @world
Es muss die Zeitzone eingestellt werden.
console ~ $ echo "Europe/Berlin" > /etc/timezone console ~ $ emerge --config sys-libs/timezone-data
Und nun wird die Systemsprache und der Zeichensatz eingestellt. Dazu muss die Datei /etc/locale.gen angepasst werden. Ich habe Deutsch und Englisch mit zwei Zeichensätzen aktiviert:
# /etc/locale.gen: list all of the locales you want to have on your system. # See the locale.gen(5) man page for more details. en_US ISO-8859-1 en_US.UTF-8 UTF-8 de_DE ISO-8859-1 de_DE@euro ISO-8859-15 de_DE.UTF-8 UTF-8
Als nächstes muss dieser Einstellung entsprechend die Lokalisierung generiert werden.
console ~ $ locale-gen
Und wir setzen die Standardlokalisierung.
console ~ $ eselect locale list console ~ $ eselect locale set de_DE.utf8 console ~ $ env-update && source /etc/profile && export PS1="(chroot) $PS1"
Jetzt kommt der wirlich schwierige Teil... Es muss der Kernel konfiguriert und gebaut werden. Ich nehme hier immer schon den Standardkernel von gentoo "gentoo-sources" und habe ihn über viele Jahre optimiert und genau eingestellt. Am Anfang lief das nicht immer ganz rund aber mitlerweile kann ich den Kernel ganz gut einstellen... Ich verfolge stehts die Strategie, nur die benötigten Treiber im Kernel zu aktivieren und alles was man garantiert nicht brauch zu deaktivieren. Die meisten benötigten Treiber aktiviere ich mit der Option "Y" damit sie fest im Kernel integriert sind und nicht als Module geladen werden müssen. Bei einigen Treibern gibt es jedoch Probleme und sie müssen als Modul "M" gebaut werden.
Der Kernel muss zunächst installiert und verlinkt werden.
console ~ $ emerge --ask sys-kernel/gentoo-sources console ~ $ ln -s /usr/src/linux-4.14.8-gentoo-r1 /usr/src/linux
Ihr könnt meine fertige Kernelkonfiguration für den Thinkpad T410 hier herunterladen: [URL=downloads/config-4.14.8-gentoo-r1-thinkpad]4.14.8-gentoo-r1[/URL]
Die Konfiguration muss als Datei ".config" im Verzeichnis /usr/src/linux-4.14.8-gentoo-r1/ hinterlegt werden. Anschließend wird der Kernel kompiliert und im System integriert.
console ~ $ cd /usr/src/linux console ~ $ make && make modules_install && make install
Nun müssen wir noch ein paar Extra-Pakete installieren weil nicht alle Treiber im Kernel enthalten sind.
console ~ $ emerge --ask app-laptop/tp_smapi app-laptop/tpb sys-kernel/linux-firmware
Und es muss die Datei /etc/conf.d/modules angepasst werden damit einige Module beim Boot geladen werden.
# You should consult your kernel documentation and configuration # for a list of modules and their options. modules="nouveau" modules="iwlwifi" modules="tp_smapi" # qemu modules="kvm kvm-intel vhost_net"
Es folgen nun weitere Systemeinstellungen... Es müssen die Dateisystem Einhängepunkte in der Datei /etc/fstab eingestellt werden... Meine sieht wegen des Dualboot so aus:
# /etc/fstab: static file system information. # # /dev/sda5 /boot ext2 noauto,noatime 1 2 /dev/sda7 / ext4 noatime 0 1 /dev/sda6 none swap sw 0 0 #/dev/sda1 /mnt/WINBOOT ntfs-3g noatime 0 0 #/dev/sda2 /mnt/WINMAIN ntfs-3g noatime 0 0 #/dev/sda3 /mnt/WINRESQ ntfs-3g noatime 0 0 /dev/cdrom /mnt/cdrom auto noauto,ro 0 0 #/dev/fd0 /mnt/floppy auto noauto 0 0
Es wird der Hostname in der Datei /etc/conf.d/hostname festgelegt:
# Set to the hostname of this machine hostname="alex_mobil"
Und die Netzwerkeinstellungen in /etc/conf.d/net. Wegen udev heißen die Netzwerkschnittstellen etwas anders. Man kann nach dem Reboot unter /sys/class/net/ nachgucken wie sie benannt wurden.
# This blank configuration will automatically use DHCP for any net.* # scripts in /etc/init.d. To create a more complete configuration, # please review /usr/share/doc/openrc*/net.example* and save your configuration # in /etc/conf.d/net (this file :]!). # Home config_enp0s25="192.168.0.123 netmask 255.255.255.0 brd 192.168.0.255" routes_enp0s25="default via 192.168.0.1" dns_servers_enp0s25="192.168.0.1"
Mit passwd sollte man jetzt außerdem sein root-Passwort festlegen:
console ~ $ passwd
Es wird die Datei /etc/rc.conf angepasst. Da sie zu 99% aus Kommentare besteht sind naxhfolgend nur die aktivierten Optionen aufgeschrieben:
# Linux users could specify /sbin/sulogin rc_shell=/sbin/sulogin # rc_logger launches a logging daemon to log the entire rc process to # /var/log/rc.log # NOTE: Linux systems require the devfs service to be started before # logging can take place and as such cannot log the sysinit runlevel. rc_logger="yes" # Set unicode to YES to turn on unicode support for keyboards and screens. unicode="YES" # on Linux and Hurd, this is the number of ttys allocated for logins # It is used in the consolefont, keymaps, numlock and termencoding # service scripts. rc_tty_number=12
In der Datei /etc/conf.d/keymaps wird das Tastaturlayout festgelegt
# Use keymap to specify the default console keymap. There is a complete tree # of keymaps in /usr/share/keymaps to choose from. keymap="de" # Should we first load the \'windowkeys\' console keymap? Most x86 users will # say "yes" here. Note that non-x86 users should leave it as "no". # Loading this keymap will enable VT switching (like ALT+Left/Right) # using the special windows keys on the linux console. windowkeys="YES" # The maps to load for extended keyboards. Most users will leave this as is. extended_keymaps="" #extended_keymaps="backspace keypad euro2" # Tell dumpkeys(1) to interpret character action codes to be # from the specified character set. # This only matters if you set unicode="yes" in /etc/rc.conf. # For a list of valid sets, run `dumpkeys --help` dumpkeys_charset="" # Some fonts map AltGr-E to the currency symbol instead of the Euro. # To fix this, set to "yes" fix_euro="NO"
Außerdem muss in der Datei /etc/conf.d/hwclock die Uhrzeiteinstellung festgelegt werden. Für ein Dualboot sollte man hier "local" einstellen.
# Set CLOCK to "UTC" if your Hardware Clock is set to UTC (also known as # Greenwich Mean Time). If that clock is set to the local time, then # set CLOCK to "local". Note that if you dual boot with Windows, then # you should set it to "local". clock="local"
Jetzt werden noch ein paar wichtige Standardtools installiert und eingerichtet bevor wir fertig sind. Mit "rc-update" können INIT-Scripte aus /etc/init.d/ in diversen runleveln gestartet werden. Hier ein Beispiel:
Den SSHD Dämon aus dem paket net-misc/openssh sollte man beim Systemstart für den runlevel "default" starten. "default" steht für den Normalbetrieb mit Netzwerkanbindung direkt nach dem Bootvorgang.
console ~ $ rc-update add sshd default
Als nächstes richtet man den Systemlogger ein. Ich nutze hier syslog-ng. Die Konfigurationsdatei liegt dann in /etc/syslog-ng/syslog-ng.conf.
console ~ $ emerge --ask app-admin/syslog-ng console ~ $ rc-update add syslog-ng default
Beim CRON-Dämon nutze ich vixie-cron. Er ist simpel und legt folgende Verzeichnisse an: /etc/cron.daily /etc/cron.hourly /etc/cron.monthly /etc/cron.weekly ... Auführbare Scripte müssen später nur noch in diese Verzeichnisse verlinkt werden. Einige Systemtools tun das schon automatisch.
console ~ $ emerge --ask sys-process/vixie-cron console ~ $ rc-update add vixie-cron default
Außerdem sehr nützlich für die Suche nach Dateinamen ist mlocate. Nach der Installation führt man "updatedb" aus (erstellt den Index) und kann mit dem Befehl "locate XYZ" blitzschnell die gewünschte Datei finden :)
console ~ $ emerge --ask sys-apps/mlocate
Nun eine Anpassung in der Datei /etc/inittab. Hier habe ich bei # TERMINALS die Option --noclear hinzugefügt damit nach dem Bootvorgang die Bootnachrichten nicht mehr ausgeblendet werden. Hier ist der relevante Inhalt:
# TERMINALS #x1:12345:respawn:/sbin/agetty 38400 console linux c1:12345:respawn:/sbin/agetty --noclear 38400 tty1 linux c2:2345:respawn:/sbin/agetty 38400 tty2 linux c3:2345:respawn:/sbin/agetty 38400 tty3 linux c4:2345:respawn:/sbin/agetty 38400 tty4 linux c5:2345:respawn:/sbin/agetty 38400 tty5 linux c6:2345:respawn:/sbin/agetty 38400 tty6 linux
Jetzt installieren wir noch ein paar Dateisystemtools. Damit kann man EXT2, EXT3, EXT4, VFAT, FAT32 und NTFS Verwalten.
console ~ $ emerge --ask sys-fs/e2fsprogs sys-fs/dosfstools sys-fs/ntfs3g
Als letztes installieren wir den Bootloader und richten ihn für den Dualboot ein...
Ich nutze hier GRUB2 da er über eine eigene Konsole verfügt. Diese Konsole kann im Notfall ganz nützlich sein um Bootparameter einzustellen.
console ~ $ emerge --ask sys-boot/grub:2 console ~ $ grub-install /dev/sda
Hier muss noch die Konfigurationsdatei /etc/default/grub angepasst werden. Ich habe die Komentare aus der Datei weggelassen und ein Hintergrundbild eingestellt. Falls Ihr kein Hintergrundbild parat habt solltet ihr die letzte Zeile auskommentieren.
GRUB_DISTRIBUTOR="Gentoo" GRUB_TIMEOUT=30 GRUB_CMDLINE_LINUX="acpi_backlight=vendor" GRUB_GFXMODE=1440x900 #GRUB_BACKGROUND="/boot/grub/mybackground.png"
Nun muss ich noch ein Extra für die Windows-Partiton einbauen... Die Bootpartiton von Windows liegt auf /dev/sda1 und hat eine spezielle UUID die beim Booten übergeben werden muss. Die UUID bekommt man folgenden Befehl:
console ~ $ grub-probe -t fs_uuid -d /dev/sda1
Mit der UUID die man nun bekommt legen wir die Konfigurationsdatei /etc/grub.d/39_win7 mit folgenden Inhalt an:
#!/bin/sh echo "Eigener Menüeintrag für Windows 7 hinzugefügt" >&2 #BEFEHL FUER --set-root: grub-probe -t fs_uuid -d /dev/sda1 cat << EOF menuentry "Microsoft Windows im BIOS-Modus starten" { insmod part_msdos insmod ntfs search --no-floppy --fs-uuid --set=root 62127CC3127C9E2B parttool \${root} hidden- drivemap -s (hd0) \${root} chainloader +1 } EOF
Jetzt generieren wir endgültig die Bootkonfiguration:
console ~ $ grub-mkconfig -o /boot/grub/grub.cfg
Außerdem noch ein Tipp für ein schönes Gentoo Logo nach dem Boot:
console ~ $ cp /etc/issue.logo /etc/issue
Wenn alles gekappt hat ist das System in der Basis fertig und kann neugestartet werden, ich hoffe es hat sich kein grober Fehler eingeschlichen 😎
Multimedia Shuttle PC mit Gentoo Linux, Fernbedienung und Kodi
Hier nun eine überarbeitete Version. Anfangs hatte ich mal geplant einen kleinen Shuttle-PC als Backup-System auf zu bauen. Das System sollte klein und stromsparend sein, einige meiner Festplatten als Speicher nutzen und im Wohnzimmer als Mediacenter-PC Musik und Videos abspielen können. Da in dem Shuttle-Gehäuse wenig Platz ist passten dann nur zwei Festplatten, eine SSD und zum Abspielen von Filmen eine DVD-Laufwerk rein. Das System hat anfangs ein gutes Backupsystem abgegeben, jedoch reichte der Platz bald nicht mehr aus und selbst zwei Festplatten im RAID1-Verbund schienen mir nicht sicher genug für meine Daten.
So ist aus dem kleinen Shuttle nun ein reines Multimediasystem geworden. Als Mediacenter ist kodi (ehemals XMBC) unter gentoo Linux installiert. Mit einer Fernbedienung lassen sich fast alle Funktionen Programmieren wofür sonst Tastatur und Maus nötig wären. Das OS startet und läuft auf einer kleinen SSD und für die Medien sind zwei 2TB Festplatten im RAID1 Verbund eingebunden.
Anschießend kommt nun eine kleine Dokumentation über das System :)
Update Liste der Komponenten:
- Gehäuse: Cooler Master Elite 120
- Netzteil: Enermax Triathlor ETL 300 AWT
- Mainboard: Biostar NM70i-847
- Speicher: ADATA DIMM 16GB DDR3 - 1333
- DVD-Laufwerk: LG GH-24 NS DVD Brenner
- HDD: 2 x Seagate ST2000DM 001 2TB SATA600
- SSD: Intel 330 Series 2,5" SSD 60GB SATA600
Erste Fotos vor und nach dem Zusammenbau
Der Zusammenbau war dann, als endlich alle Komponenten da waren, leichter als gedacht. Es war nicht mal nötig Anpassungen am Gehäuse vorzunehmen, so wie ich das sonst von meinen Rechnern gewohnt bin. Als dann alles zusammengebaut und angeschlossen war ging er schon beim ersten Mal an :D
Ausgabe lspci
00:00.0 Host bridge: Intel Corporation 2nd Generation Core Processor Family DRAM Controller (rev 09) 00:01.0 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09) 00:01.2 PCI bridge: Intel Corporation Xeon E3-1200/2nd Generation Core Processor Family PCI Express Root Port (rev 09) 00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09) 00:16.0 Communication controller: Intel Corporation 7 Series/C210 Series Chipset Family MEI Controller #1 (rev 04) 00:1a.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #2 (rev 04) 00:1b.0 Audio device: Intel Corporation 7 Series/C210 Series Chipset Family High Definition Audio Controller (rev 04) 00:1c.0 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 1 (rev c4) 00:1c.1 PCI bridge: Intel Corporation 7 Series/C210 Series Chipset Family PCI Express Root Port 2 (rev c4) 00:1d.0 USB controller: Intel Corporation 7 Series/C210 Series Chipset Family USB Enhanced Host Controller #1 (rev 04) 00:1f.0 ISA bridge: Intel Corporation 7 Series Chipset Family LPC Controller (rev 04) 00:1f.2 IDE interface: Intel Corporation 7 Series Chipset Family 4-port SATA Controller [IDE mode] (rev 04) 00:1f.3 SMBus: Intel Corporation 7 Series/C210 Series Chipset Family SMBus Controller (rev 04) 00:1f.5 IDE interface: Intel Corporation 7 Series Chipset Family 2-port SATA Controller [IDE mode] (rev 04) 04:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168 PCI Express Gigabit Ethernet controller (rev 07)
Installation und Doku für Gentoo Linux 64Bit
Diese kleine Doku ist nicht als Anleitung gedacht und auch nicht so geschrieben. Für eine detailierte Anleitung muss weiterhin auf das [URL=http://www.gentoo.org/doc/en/handbook/handbook-amd64.xml?full=1]Gentoo handbook[/URL] zurückgeriffen werden...
Als Erstes zieht man sich die Minimal Install Live-CD ISO und brennt sie auf eine CD. In diesem Fall die letzte Gentoo Livecd AMD64. Dann Bootet man sie und die Installation kann beginnen:
Partitionslayout
Die SSD ist am Mainboard an den einzigen SATA600 Port angeschlossen und wird praktischerweise gleich als sda erkannt. Die zwei Festplatten schließlich als sdb und sdc. Sie sollen später mit Hilfe von mdadm in einem RAID1-Verbund laufen.
Mittels fdisk wird sda so partitioniert:
- sda1: 100MB Bootpartition
- sda2: 1GB Swappartition
- sda3: Rest Rootpartition
fdisk -p sieht bei mir am Ende so aus
Disk /dev/sda: 60.0 GB, 60022480896 bytes, 117231408 sectors Units = Sektoren of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0xe5818ec1 Gerät boot. Anfang Ende Blöcke Id System /dev/sda1 * 2048 206847 102400 83 Linux /dev/sda2 206848 2303999 1048576 83 Linux /dev/sda3 2304000 117231407 57463704 83 Linux
Dann formatiert man sda1 mit EXT2 und sda3 mit EXT4. Geswapt wird auf sda2 und schließlich werden die Partitionen für die Installation gemountet:
#$ mkfs.ext2 /dev/sda1 #$ mkfs.ext4 /dev/sda3 #$ mkswap /dev/sda2 #$ mount /dev/sda3 /mnt/gentoo #$ mkdir /mnt/gentoo/boot #$ mount /dev/sda1 /mnt/gentoo/boot
Nun wird das Datum und die Uhrzeit eingestellt
#$ date 040818032013
Und das Stage3 Basissystem runtergeladen und entpackt
#$ cd /mnt/gentoo #$ wget ftp://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/releases/amd64/current-stage3/default/20130321/stage3-amd64-20130321.tar.bz2 #$ tar xvjpf stage3-*.tar.bz2
Dann die Vorbereitung für den chroot
#$ cp -L /etc/resolv.conf /mnt/gentoo/etc/ #$ mount -t proc none /mnt/gentoo/proc #$ mount --rbind /sys /mnt/gentoo/sys #$ mount --rbind /dev /mnt/gentoo/dev
Und schließlich der chroot :)
#$ chroot /mnt/gentoo /bin/bash #$ source /etc/profile #$ export PS1="(chroot) $PS1"
Nun ist man in dem neuen Basissystem eingeloggt und portage muss das erste Mal aufgebaut werden.
Dazu muss /etc/portage/make.conf angepasst werden, meine sieht z.Z. so aus:
# These settings were set by the catalyst build script that automatically # built this stage. # Please consult /usr/share/portage/config/make.conf.example for a more # detailed example. CFLAGS="-march=native -O2 -pipe" CXXFLAGS="${CFLAGS}" # WARNING: Changing your CHOST is not something that should be done lightly. # Please consult http://www.gentoo.org/doc/en/change-chost.xml before changing. CHOST="x86_64-pc-linux-gnu" # With MAKEOPTS you define how many parallel compilations should occur when you install a package. A good choice is the number of CPUs (or CPU cores) in your system plus one, but this guideline isn\'t always perfect. MAKEOPTS="-j4" # These are the USE flags that were used in addition to what is provided by the # profile used for building. USE="a52 aac alsa apache aqua bzip2 cdda cdr cgi consolekit cups crypt css dbus declarative dvd dvdr gif gtk gtk2 gudev gstreamer hddtemp hwdb java jpeg jpeg2k kde libkms mad mmx mng mp3 mp4 mpeg mysql nas ogg opengl perl png policykit python qt3support qt4 script sensord sql sse sse2 sse3 svg tiff truetype udev unicode vorbis webkit win32codecs wmf xa X x264 xpm xvid zlib" #xorg-server VIDEO_CARDS="intel vesa" INPUT_DEVICES="evdev keyboard mouse" #remote controll LIRC_DEVICES="atiusb" # alsa ALSA_CARDS="hda-intel usb-audio" # sane SANE_BACKENDS="hp4200" GENTOO_MIRRORS="http://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo ftp://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo ftp://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ rsync://ftp-stud.hs-esslingen.de/gentoo/ ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo ftp://ftp6.uni-muenster.de/pub/linux/distributions/gentoo ftp://ftp.ipv6.uni-muenster.de/pub/linux/distributions/gentoo" ACCEPT_LICENSE="*" ACCEPT_KEYWORDS="~amd64" LINGUAS="de en"
Nun wird gesynct
#$ mkdir /usr/portage #$ emerge-webrsync #$ emerge --sync
das Profil festgelegt
#$ eselect profile set 1 --> default/linux/amd64/13.0 *
Die Zeitzone eingestellt
#$ cp /usr/share/zoneinfo/Europe/Berlin /etc/localtime #$ echo "Europe/Berlin" > /etc/timezone
Und /etc/fstab angepasst. Entsprechend meinen Laufwerken und Partitionslayout sieht sie bei mir so aus, md0 ist aber noch nicht angelegt.
# # NOTE: If your BOOT partition is ReiserFS, add the notail option to opts. /dev/sda1 /boot ext2 defaults,noatime 0 2 /dev/sda3 / ext4 noatime 0 1 /dev/sda2 none swap sw 0 0 /dev/cdrom /mnt/cdrom auto noauto,user 0 0 # /dev/md0 /var/data ext3 noatime 0 1
Nun kommt der schwierigste und aufwendigste Teil der Installation, der Kernel...
#$ emerge gentoo-sources #$ cd /usr/src/linux #$ make menuconfig #$ make && make modules_install
Da ich ihn schon mühevoll zusammengebaut und eingestellt habe braucht ihr glücklicherweise nur noch die .config übernehmen. Ihr könnt sie hier runterladen: [URL=downloads/config-3.8.6-gentoo-nas]config-3.8.6-gentoo[/URL] dann als .config nach /usr/src/linux kopieren und über oldconfig alle Einstellungen übernehmen :) Der Kernel ist genau auf das System zugeschnitten und von allen anderem weitestgehend befreit. die Treiber sind alle direkt im Kernel und nicht als Module eingestellt.
Jetzt gehts ans Netzwerk. Es wird /etc/conf.d/hostname angepasst
# Set to the hostname of this machine hostname="nas"
Und /etc/conf.d/net
# This blank configuration will automatically use DHCP for any net.* # scripts in /etc/init.d. To create a more complete configuration, # please review /usr/share/doc/openrc*/net.example* and save your configuration # in /etc/conf.d/net (this file :]!). config_enp4s0="192.168.0.115 netmask 255.255.255.0 brd 192.168.0.255" routes_enp4s0="default via 192.168.0.1" dns_servers_enp4s0="192.168.0.1"
Wie man sieht musste ich mich bereits mit udev-200 rumschlagen wodurch eth0 zu enp4s0 wurde. Entsprechend werden so auch die symlinks gesetzt
#$ cd /etc/init.d #$ ln -s net.lo net.enp4s0 #$ rc-update add net.enp4s0 default
Schließlich wird das Passwort gesetzt
#$ passwd
Tastatur auf deutsches Layout in /etc/conf.d/keymaps
# Use keymap to specify the default console keymap. There is a complete tree # of keymaps in /usr/share/keymaps to choose from. keymap="de" # Should we first load the \'windowkeys\' console keymap? Most x86 users will # say "yes" here. Note that non-x86 users should leave it as "no". # Loading this keymap will enable VT switching (like ALT+Left/Right) # using the special windows keys on the linux console. windowkeys="YES" # The maps to load for extended keyboards. Most users will leave this as is. extended_keymaps="" #extended_keymaps="backspace keypad euro2" # Tell dumpkeys(1) to interpret character action codes to be # from the specified character set. # This only matters if you set unicode="yes" in /etc/rc.conf. # For a list of valid sets, run `dumpkeys --help` dumpkeys_charset="" # Some fonts map AltGr-E to the currency symbol ¤ instead of the Euro ⬠# To fix this, set to "yes" fix_euro="NO"
Und deutsche + englische Lokalisierung in /etc/locale.gen
en_US ISO-8859-1 en_US.UTF-8 UTF-8 de_DE ISO-8859-1 de_DE@euro ISO-8859-15 de_DE.UTF-8 UTF-8
Dann die Lokalisierungen generieren
#$ locale-gen
Die Umgebungslokalisierung festlegen in /etc/env.d/02locale
LANG="de_DE.UTF-8" LC_COLLATE="C"
Und die Umgebung aktualisieren
#$ env-update && source /etc/profile
Jetzt können wir die ersten System-tools installieren, ich setze dabei auf die bewährten Standard-tools syslog-ng, vixie-cron usw...
Natürlich dürfen bei mir gentoolkit, eix, vim, htop, pciutils, usbutils, lshw, mlocate, smartmontools usw nicht fehlen, ich liste hier aber nur den Standard
#$ emerge syslog-ng #$ rc-update add syslog-ng default #$ emerge vixie-cron #$ emerge mlocate
sshd nicht vergessen
#$ rc-update add sshd default
Zum Schluss wird der Bootloader eingerichtet. Musste mich das erste Mal mit grub2 rumschlagen...
#$ emerge grub #$ grub2-install /dev/sda #$ grub2-mkconfig -o /boot/grub2/grub.cfg
So viel zur Installation...
Achtung, UPDATE!
Mein Shuttle läuft mitlerweile mit dem neuen Kernel 4.8.12-gentoo-r1, der Treiber für die Fernbedienung kommt nicht mehr von lirc sondern wird im Kernel aktiviert (CONFIG_RC_ATI_REMOTE=m). Nach dem lirc 0.9.4c endlich eine lauffähige Version ist, läuft kodi nun wieder mit voller Unterstützung der Fernbedienung. :)
Aber zunächst kommt ein kleines How-To zu Kodi. Bei mir sind folgende USE Flags gesetzt:
#$ emerge -pv media-tv/kodi [ebuild R ] media-tv/kodi-16.1::gentoo USE="X alsa css dbus java mysql opengl samba texturepacker usb -airplay -bluetooth -bluray -caps -cec -debug -gles -joystick -midi -nfs -profile -pulseaudio -rtmp -sftp {-test} -udisks -upnp -upower -vaapi -vdpau -webserver -zeroconf" PYTHON_TARGETS="python2_7" 0 KiB
Kodi Installation:
#$ emerge media-tv/kodi
Um Kodi zu letzendlich zu betreiben legen wir den User "kodi" an und vergeben genug Rechte damit Sound und Videos abgespielt werden können.
#$ useradd -m -G audio,cdrom,video,cdrw,usb,users kodi
Für den automatischen Start beim Hochfahren erstellen wir ein Init-Script unter /etc/init.d/ namens kodi:
#!/sbin/runscript # Released under the 2-clause BSD license. description="Start and stop Kodi" depend() { need net } start() { ebegin "Starting Kodi" start-stop-daemon --start -u ${KODI_USER:-kodi} --background --pidfile /var/run/kodi.pid --make-pidfile --exec /usr/bin/xinit -- /usr/bin/kodi-standalone ${KODI_OPTS} -- :0 eend $? } stop() { ebegin "Stopping Kodi" start-stop-daemon --stop --pidfile /var/run/kodi.pid eend $? }
Das Script muss ausführbar sein und soll beim Hochfahren automatisch starten:
#$ chmod +x /etc/init.d/kodi #$ rc-update add kodi default
Nun wird das Startscript für X erstellt. Dafür wird im User Verzeichnis von kodi die Datei .xinitrc erstellt:
# .xinitrc /usr/bin/xset s noblank /usr/bin/xset s off /usr/bin/xset -dpms /usr/bin/evilwm & exec /usr/bin/kodi
Der Eigentümer der Datei muss zu kodi geändert werden:
#$ chmown -c kodi:kodi /home/kodi/.xinitrc
In /home/kodi/.bash_profile tragen wir startx ein:
/home/kodi/.bash_profile # .bash_profile case "`tty`" in *tty9) startx; logout ;; esac
Und in die /etc/inittab sollte man unter dem Eintrag #TERMINALS den Logineintrag für kodi erstellen:
# Start Kodi c9:2345:respawn:/sbin/mingetty --autologin kodi tty9
Damit ist kodi eingerichtet und wir kommen zur Fernbedienung :)
Meine Fernbedienung ist eine alte Medion PC-Fernbedienung 20014752. Der Empfänger wird an USB angeschlossen und sieht unter lslusb so aus:
#$ lsusb Bus 001 Device 005: ID 0bc7:0006 X10 Wireless Technology, Inc. Wireless Transceiver (ACPI-compliant)
Wie Anfangs erwähnt muss der Treiber im Kernel über die Option CONFIG_RC_ATI_REMOTE=m aktiviert werden. Meine aktuelle Kernel Konfiguration könnt ihr hier herunterladen: [URL=downloads/config-4.8.12-r1-gentoo-nas]config-4.8.12-r1-gentoo-nas[/URL] :)
Das neue Modul ati_remote muss in die /etc/conf.d/modules eingetragen werden. Ich habe hier außerdem noch das Modul für meine Netzwerkkarte von Realtek 8169 eingetragen:
modules="r8169" modules="ati_remote"
Nun muss lirc installiert werden. Ab Version 0.9.4c funktioniert es endlich wieder aber es haben sich einige Punkte geändert... Hier sind meine USE Flags:
#$ emerge -pv lirc [ebuild R ] app-misc/lirc-0.9.4c::gentoo USE="X gtk inputlirc usb -audio -doc -ftdi -static-libs -systemd" PYTHON_SINGLE_TARGET="python3_4 -python3_5" PYTHON_TARGETS="python3_4 -python3_5" 0 KiB
Lirc muss auch in den Autostart, ich habe lircd in den runlevel "boot" gesteckt:
#$ rc-update add lircd boot
Unter /etc/lirc liegen nun einige neue Dateien. hier kommen die Inhalte (ohne Kommentare):
/etc/lirc/lirc_options.conf
[lircd] nodaemon = False driver = devinput device = auto output = /var/run/lirc/lircd pidfile = /var/run/lirc/lircd.pid plugindir = /usr/lib64/lirc/plugins permission = 666 allow-simulate = No repeat-max = 600 [lircmd] uinput = False nodaemon = False
Achtung, die folgende Datei ist sehr lang da jede einzelne Taste definiert wird...
/etc/lirc/lircd.conf.d/devinput.lircd.conf
begin remote name devinput-64 bits 16 eps 30 aeps 100 pre_data_bits 16 pre_data 0x0001 post_data_bits 32 post_data 0x00000001 gap 132799 toggle_bit 0 driver devinput begin codes KEY_0 11 KEY_102ND 86 KEY_10CHANNELSDOWN 0x1b9 KEY_10CHANNELSUP 0x1b8 KEY_1 2 KEY_2 3 KEY_3 4 KEY_3D_MODE 0x26f KEY_4 5 KEY_5 6 KEY_6 7 KEY_7 8 KEY_8 9 KEY_9 10 KEY_A 30 KEY_AB 0x196 KEY_ADDRESSBOOK 0x1ad KEY_AGAIN 129 KEY_ALS_TOGGLE 0x230 KEY_ALTERASE 222 KEY_ANGLE 0x173 KEY_APOSTROPHE 40 KEY_APPSELECT 0x244 KEY_ARCHIVE 0x169 KEY_ATTENDANT_OFF 0x21c KEY_ATTENDANT_ON 0x21b KEY_ATTENDANT_TOGGLE 0x21d KEY_AUDIO 0x188 KEY_AUDIO_DESC 0x26e KEY_AUX 0x186 KEY_B 48 KEY_BACK 158 KEY_BACKSLASH 43 KEY_BACKSPACE 14 KEY_BASSBOOST 209 KEY_BATTERY 236 KEY_BLUE 0x191 KEY_BLUETOOTH 237 KEY_BOOKMARKS 156 KEY_BREAK 0x19b KEY_BRIGHTNESS_AUTO 244 KEY_BRIGHTNESS_CYCLE 243 KEY_BRIGHTNESSDOWN 224 KEY_BRIGHTNESS_MAX 0x251 KEY_BRIGHTNESS_MIN 0x250 KEY_BRIGHTNESSUP 225 KEY_BRL_DOT10 0x1fa KEY_BRL_DOT1 0x1f1 KEY_BRL_DOT2 0x1f2 KEY_BRL_DOT3 0x1f3 KEY_BRL_DOT4 0x1f4 KEY_BRL_DOT5 0x1f5 KEY_BRL_DOT6 0x1f6 KEY_BRL_DOT7 0x1f7 KEY_BRL_DOT8 0x1f8 KEY_BRL_DOT9 0x1f9 KEY_BUTTONCONFIG 0x240 KEY_C 46 KEY_CALC 140 KEY_CALENDAR 0x18d KEY_CAMERA 212 KEY_CAMERA_DOWN 0x218 KEY_CAMERA_FOCUS 0x210 KEY_CAMERA_LEFT 0x219 KEY_CAMERA_RIGHT 0x21a KEY_CAMERA_UP 0x217 KEY_CAMERA_ZOOMIN 0x215 KEY_CAMERA_ZOOMOUT 0x216 KEY_CANCEL 223 KEY_CAPSLOCK 58 KEY_CD 0x17f KEY_CHANNEL 0x16b KEY_CHANNELDOWN 0x193 KEY_CHANNELUP 0x192 KEY_CHAT 216 KEY_CLEAR 0x163 KEY_CLOSE 206 KEY_CLOSECD 160 KEY_COFFEE 152 KEY_COMMA 51 KEY_COMPOSE 127 KEY_COMPUTER 157 KEY_CONFIG 171 KEY_CONNECT 218 KEY_CONTEXT_MENU 0x1b6 KEY_CONTROLPANEL 0x243 KEY_COPY 133 KEY_CUT 137 KEY_CYCLEWINDOWS 154 KEY_D 32 KEY_DASHBOARD 204 KEY_DATA 0x275 KEY_DATABASE 0x1aa KEY_DEL_EOL 0x1c0 KEY_DEL_EOS 0x1c1 KEY_DELETE 111 KEY_DELETEFILE 146 KEY_DEL_LINE 0x1c3 KEY_DIGITS 0x19d KEY_DIRECTORY 0x18a KEY_DISPLAY_OFF 245 KEY_DISPLAYTOGGLE 0x1af KEY_DOCUMENTS 235 KEY_DOLLAR 0x1b2 KEY_DOT 52 KEY_DOWN 108 KEY_DVD 0x185 KEY_E 18 KEY_EDIT 176 KEY_EDITOR 0x1a6 KEY_EJECTCD 161 KEY_EJECTCLOSECD 162 KEY_EMAIL 215 KEY_END 107 KEY_ENTER 28 KEY_EPG 0x16d KEY_EQUAL 13 KEY_ESC 1 KEY_EURO 0x1b3 KEY_EXIT 174 KEY_F10 68 KEY_F11 87 KEY_F12 88 KEY_F13 183 KEY_F14 184 KEY_F15 185 KEY_F1 59 KEY_F16 186 KEY_F17 187 KEY_F18 188 KEY_F19 189 KEY_F20 190 KEY_F21 191 KEY_F22 192 KEY_F23 193 KEY_F24 194 KEY_F2 60 KEY_F 33 KEY_F3 61 KEY_F4 62 KEY_F5 63 KEY_F6 64 KEY_F7 65 KEY_F8 66 KEY_F9 67 KEY_FASTFORWARD 208 KEY_FASTREVERSE 0x275 KEY_FAVORITES 0x16c KEY_FILE 144 KEY_FINANCE 219 KEY_FIND 136 KEY_FIRST 0x194 KEY_FN 0x1d0 KEY_FN_1 0x1de KEY_FN_2 0x1df KEY_FN_B 0x1e4 KEY_FN_D 0x1e0 KEY_FN_E 0x1e1 KEY_FN_ESC 0x1d1 KEY_FN_F 0x1e2 KEY_FN_F10 0x1db KEY_FN_F1 0x1d2 KEY_FN_F11 0x1dc KEY_FN_F12 0x1dd KEY_FN_F2 0x1d3 KEY_FN_F3 0x1d4 KEY_FN_F4 0x1d5 KEY_FN_F5 0x1d6 KEY_FN_F6 0x1d7 KEY_FN_F7 0x1d8 KEY_FN_F8 0x1d9 KEY_FN_F9 0x1da KEY_FN_S 0x1e3 KEY_FORWARD 159 KEY_FORWARDMAIL 233 KEY_FRAMEBACK 0x1b4 KEY_FRAMEFORWARD 0x1b5 KEY_FRONT 132 KEY_G 34 KEY_GAMES 0x1a1 KEY_GOTO 0x162 KEY_GRAPHICSEDITOR 0x1a8 KEY_GRAVE 41 KEY_GREEN 0x18f KEY_H 35 KEY_HANGEUL 122 KEY_HANJA 123 KEY_HELP 138 KEY_HENKAN 92 KEY_HIRAGANA 91 KEY_HOME 102 KEY_HOMEPAGE 172 KEY_HP 211 KEY_I 23 KEY_IMAGES 0x1ba KEY_INFO 0x166 KEY_INSERT 110 KEY_INS_LINE 0x1c2 KEY_ISO 170 KEY_J 36 KEY_JOURNAL 0x242 KEY_K 37 KEY_KATAKANA 90 KEY_KATAKANAHIRAGANA 93 KEY_KBDILLUMDOWN 229 KEY_KBDILLUMTOGGLE 228 KEY_KBDILLUMUP 230 KEY_KBDINPUTASSIST_ACCEPT 0x264 KEY_KBDINPUTASSIST_CANCEL 0x265 KEY_KBDINPUTASSIST_NEXT 0x261 KEY_KBDINPUTASSIST_NEXTGROUP 0x263 KEY_KBDINPUTASSIST_PREV 0x260 KEY_KBDINPUTASSIST_PREVGROUP 0x262 KEY_KEYBOARD 0x176 KEY_KP0 82 KEY_KP1 79 KEY_KP2 80 KEY_KP3 81 KEY_KP4 75 KEY_KP5 76 KEY_KP6 77 KEY_KP7 71 KEY_KP8 72 KEY_KP9 73 KEY_KPASTERISK 55 KEY_KPCOMMA 121 KEY_KPDOT 83 KEY_KPENTER 96 KEY_KPEQUAL 117 KEY_KPJPCOMMA 95 KEY_KPLEFTPAREN 179 KEY_KPMINUS 74 KEY_KPPLUS 78 KEY_KPPLUSMINUS 118 KEY_KPRIGHTPAREN 180 KEY_KPSLASH 98 KEY_L 38 KEY_LANGUAGE 0x170 KEY_LAST 0x195 KEY_LEFT 105 KEY_LEFTALT 56 KEY_LEFTBRACE 26 KEY_LEFTCTRL 29 KEY_LEFT_DOWN 0x269 KEY_LEFTMETA 125 KEY_LEFTSHIFT 42 KEY_LEFT_UP 0x268 KEY_LIGHTS_TOGGLE 0x21e KEY_LINEFEED 101 KEY_LIST 0x18b KEY_LOGOFF 0x1b1 KEY_M 50 KEY_MACRO 112 KEY_MAIL 155 KEY_MAX 0x2ff KEY_MEDIA 226 KEY_MEDIA_REPEAT 0x1b7 KEY_MEDIA_TOP_MENU 0x26b KEY_MEMO 0x18c KEY_MENU 139 KEY_MESSENGER 0x1ae KEY_MHP 0x16f KEY_MICMUTE 248 KEY_MINUS 12 KEY_MODE 0x175 KEY_MOVE 175 KEY_MP3 0x187 KEY_MSDOS 151 KEY_MUHENKAN 94 KEY_MUTE 113 KEY_N 49 KEY_NEW 181 KEY_NEWS 0x1ab KEY_NEXT 0x197 KEY_NEXT_FAVORITE 0x270 KEY_NEXTSONG 163 KEY_NUMERIC_0 0x200 KEY_NUMERIC_1 0x201 KEY_NUMERIC_11 0x26c KEY_NUMERIC_12 0x26d KEY_NUMERIC_2 0x202 KEY_NUMERIC_3 0x203 KEY_NUMERIC_4 0x204 KEY_NUMERIC_5 0x205 KEY_NUMERIC_6 0x206 KEY_NUMERIC_7 0x207 KEY_NUMERIC_8 0x208 KEY_NUMERIC_9 0x209 KEY_NUMERIC_A 0x20c KEY_NUMERIC_B 0x20d KEY_NUMERIC_C 0x20e KEY_NUMERIC_D 0x20f KEY_NUMERIC_POUND 0x20b KEY_NUMERIC_STAR 0x20a KEY_NUMLOCK 69 KEY_O 24 KEY_OK 0x160 KEY_OPEN 134 KEY_OPTION 0x165 KEY_P 25 KEY_PAGEDOWN 109 KEY_PAGEUP 104 KEY_PASTE 135 KEY_PAUSE 119 KEY_PAUSECD 201 KEY_PAUSE_RECORD 0x272 KEY_PC 0x178 KEY_PHONE 169 KEY_PLAY 207 KEY_PLAYCD 200 KEY_PLAYER 0x183 KEY_PLAYPAUSE 164 KEY_POWER 116 KEY_POWER2 0x164 KEY_PRESENTATION 0x1a9 KEY_PREVIOUS 0x19c KEY_PREVIOUSSONG 165 KEY_PRINT 210 KEY_PROG1 148 KEY_PROG2 149 KEY_PROG3 202 KEY_PROG4 203 KEY_PROGRAM 0x16a KEY_PROPS 130 KEY_PVR 0x16e KEY_Q 16 KEY_QUESTION 214 KEY_R 19 KEY_RADIO 0x181 KEY_RECORD 167 KEY_RED 0x18e KEY_REDO 182 KEY_REFRESH 173 KEY_REPLY 232 KEY_RESERVED 0 KEY_RESTART 0x198 KEY_REWIND 168 KEY_RFKILL 247 KEY_RIGHT 106 KEY_RIGHTALT 100 KEY_RIGHTBRACE 27 KEY_RIGHTCTRL 97 KEY_RIGHT_DOWN 0x267 KEY_RIGHTMETA 126 KEY_RIGHTSHIFT 54 KEY_RIGHT_UP 0x266 KEY_RO 89 KEY_ROOT_MENU 0x26a KEY_ROTATE_DISPLAY 153 KEY_S 31 KEY_SAT 0x17d KEY_SAT2 0x17e KEY_SAVE 234 KEY_SCALE 120 KEY_SCREEN 0x177 KEY_SCREENSAVER 0x245 KEY_SCROLLDOWN 178 KEY_SCROLLLOCK 70 KEY_SCROLLUP 177 KEY_SEARCH 217 KEY_SELECT 0x161 KEY_SEMICOLON 39 KEY_SEND 231 KEY_SENDFILE 145 KEY_SETUP 141 KEY_SHOP 221 KEY_SHUFFLE 0x19a KEY_SLASH 53 KEY_SLEEP 142 KEY_SLOW 0x199 KEY_SLOWREVERSE 0x276 KEY_SOUND 213 KEY_SPACE 57 KEY_SPELLCHECK 0x1b0 KEY_SPORT 220 KEY_SPREADSHEET 0x1a7 KEY_STOP 128 KEY_STOPCD 166 KEY_STOP_RECORD 0x271 KEY_SUBTITLE 0x172 KEY_SUSPEND 205 KEY_SWITCHVIDEOMODE 227 KEY_SYSRQ 99 KEY_T 20 KEY_TAB 15 KEY_TAPE 0x180 KEY_TASKMANAGER 0x241 KEY_TEEN 0x19e KEY_TEXT 0x184 KEY_TIME 0x167 KEY_TITLE 0x171 KEY_TOUCHPAD_OFF 0x214 KEY_TOUCHPAD_ON 0x213 KEY_TOUCHPAD_TOGGLE 0x212 KEY_TUNER 0x182 KEY_TV 0x179 KEY_TV2 0x17a KEY_TWEN 0x19f KEY_U 22 KEY_UNDO 131 KEY_UNKNOWN 240 KEY_UNMUTE 0x274 KEY_UP 103 KEY_UWB 239 KEY_V 47 KEY_VCR 0x17b KEY_VCR2 0x17c KEY_VENDOR 0x168 KEY_VIDEO 0x189 KEY_VIDEO_NEXT 241 KEY_VIDEOPHONE 0x1a0 KEY_VIDEO_PREV 242 KEY_VOD 0x273 KEY_VOICECOMMAND 0x246 KEY_VOICEMAIL 0x1ac KEY_VOLUMEDOWN 114 KEY_VOLUMEUP 115 KEY_W 17 KEY_WAKEUP 143 KEY_WLAN 238 KEY_WORDPROCESSOR 0x1a5 KEY_WPS_BUTTON 0x211 KEY_WWAN 246 KEY_WWW 150 KEY_X 45 KEY_XFER 147 KEY_Y 21 KEY_YELLOW 0x190 KEY_YEN 124 KEY_Z 44 KEY_ZENKAKUHANKAKU 85 KEY_ZOOM 0x174 KEY_ZOOMIN 0x1a2 KEY_ZOOMOUT 0x1a3 KEY_ZOOMRESET 0x1a4 BTN_0 0x100 BTN_1 0x101 BTN_2 0x102 BTN_3 0x103 BTN_4 0x104 BTN_5 0x105 BTN_6 0x106 BTN_7 0x107 BTN_8 0x108 BTN_9 0x109 BTN_BACK 0x116 BTN_BASE 0x126 BTN_BASE2 0x127 BTN_BASE3 0x128 BTN_BASE4 0x129 BTN_BASE5 0x12a BTN_BASE6 0x12b BTN_C 0x132 BTN_DEAD 0x12f BTN_DIGI 0x140 BTN_DPAD_DOWN 0x221 BTN_DPAD_LEFT 0x222 BTN_DPAD_RIGHT 0x223 BTN_DPAD_UP 0x220 BTN_EAST 0x131 BTN_EXTRA 0x114 BTN_FORWARD 0x115 BTN_GAMEPAD 0x130 BTN_GEAR_DOWN 0x150 BTN_GEAR_UP 0x151 BTN_JOYSTICK 0x120 BTN_LEFT 0x110 BTN_MIDDLE 0x112 BTN_MISC 0x100 BTN_MODE 0x13c BTN_MOUSE 0x110 BTN_NORTH 0x133 BTN_PINKIE 0x125 BTN_RIGHT 0x111 BTN_SELECT 0x13a BTN_SIDE 0x113 BTN_SOUTH 0x130 BTN_START 0x13b BTN_STYLUS 0x14b BTN_STYLUS2 0x14c BTN_TASK 0x117 BTN_THUMB 0x121 BTN_THUMB2 0x122 BTN_THUMBL 0x13d BTN_THUMBR 0x13e BTN_TL 0x136 BTN_TL2 0x138 BTN_TOOL_AIRBRUSH 0x144 BTN_TOOL_BRUSH 0x142 BTN_TOOL_DOUBLETAP 0x14d BTN_TOOL_FINGER 0x145 BTN_TOOL_LENS 0x147 BTN_TOOL_MOUSE 0x146 BTN_TOOL_PEN 0x140 BTN_TOOL_PENCIL 0x143 BTN_TOOL_QUADTAP 0x14f BTN_TOOL_QUINTTAP 0x148 BTN_TOOL_RUBBER 0x141 BTN_TOOL_TRIPLETAP 0x14e BTN_TOP 0x123 BTN_TOP2 0x124 BTN_TOUCH 0x14a BTN_TR 0x137 BTN_TR2 0x139 BTN_TRIGGER 0x120 BTN_TRIGGER_HAPPY 0x2c0 BTN_TRIGGER_HAPPY10 0x2c9 BTN_TRIGGER_HAPPY1 0x2c0 BTN_TRIGGER_HAPPY11 0x2ca BTN_TRIGGER_HAPPY12 0x2cb BTN_TRIGGER_HAPPY13 0x2cc BTN_TRIGGER_HAPPY14 0x2cd BTN_TRIGGER_HAPPY15 0x2ce BTN_TRIGGER_HAPPY16 0x2cf BTN_TRIGGER_HAPPY17 0x2d0 BTN_TRIGGER_HAPPY18 0x2d1 BTN_TRIGGER_HAPPY19 0x2d2 BTN_TRIGGER_HAPPY20 0x2d3 BTN_TRIGGER_HAPPY2 0x2c1 BTN_TRIGGER_HAPPY21 0x2d4 BTN_TRIGGER_HAPPY22 0x2d5 BTN_TRIGGER_HAPPY23 0x2d6 BTN_TRIGGER_HAPPY24 0x2d7 BTN_TRIGGER_HAPPY25 0x2d8 BTN_TRIGGER_HAPPY26 0x2d9 BTN_TRIGGER_HAPPY27 0x2da BTN_TRIGGER_HAPPY28 0x2db BTN_TRIGGER_HAPPY29 0x2dc BTN_TRIGGER_HAPPY30 0x2dd BTN_TRIGGER_HAPPY3 0x2c2 BTN_TRIGGER_HAPPY31 0x2de BTN_TRIGGER_HAPPY32 0x2df BTN_TRIGGER_HAPPY33 0x2e0 BTN_TRIGGER_HAPPY34 0x2e1 BTN_TRIGGER_HAPPY35 0x2e2 BTN_TRIGGER_HAPPY36 0x2e3 BTN_TRIGGER_HAPPY37 0x2e4 BTN_TRIGGER_HAPPY38 0x2e5 BTN_TRIGGER_HAPPY39 0x2e6 BTN_TRIGGER_HAPPY40 0x2e7 BTN_TRIGGER_HAPPY4 0x2c3 BTN_TRIGGER_HAPPY5 0x2c4 BTN_TRIGGER_HAPPY6 0x2c5 BTN_TRIGGER_HAPPY7 0x2c6 BTN_TRIGGER_HAPPY8 0x2c7 BTN_TRIGGER_HAPPY9 0x2c8 BTN_WEST 0x134 BTN_WHEEL 0x150 BTN_Z 0x135 end codes end remote # generated by lirc-make-devinput (obsolete 32 bit version) begin remote name devinput-32 bits 16 eps 30 aeps 100 pre_data_bits 16 pre_data 0x8001 gap 132799 toggle_bit 0 driver devinput begin codes KEY_0 11 KEY_102ND 86 KEY_10CHANNELSDOWN 0x1b9 KEY_10CHANNELSUP 0x1b8 KEY_1 2 KEY_2 3 KEY_3 4 KEY_3D_MODE 0x26f KEY_4 5 KEY_5 6 KEY_6 7 KEY_7 8 KEY_8 9 KEY_9 10 KEY_A 30 KEY_AB 0x196 KEY_ADDRESSBOOK 0x1ad KEY_AGAIN 129 KEY_ALS_TOGGLE 0x230 KEY_ALTERASE 222 KEY_ANGLE 0x173 KEY_APOSTROPHE 40 KEY_APPSELECT 0x244 KEY_ARCHIVE 0x169 KEY_ATTENDANT_OFF 0x21c KEY_ATTENDANT_ON 0x21b KEY_ATTENDANT_TOGGLE 0x21d KEY_AUDIO 0x188 KEY_AUDIO_DESC 0x26e KEY_AUX 0x186 KEY_B 48 KEY_BACK 158 KEY_BACKSLASH 43 KEY_BACKSPACE 14 KEY_BASSBOOST 209 KEY_BATTERY 236 KEY_BLUE 0x191 KEY_BLUETOOTH 237 KEY_BOOKMARKS 156 KEY_BREAK 0x19b KEY_BRIGHTNESS_AUTO 244 KEY_BRIGHTNESS_CYCLE 243 KEY_BRIGHTNESSDOWN 224 KEY_BRIGHTNESS_MAX 0x251 KEY_BRIGHTNESS_MIN 0x250 KEY_BRIGHTNESSUP 225 KEY_BRL_DOT10 0x1fa KEY_BRL_DOT1 0x1f1 KEY_BRL_DOT2 0x1f2 KEY_BRL_DOT3 0x1f3 KEY_BRL_DOT4 0x1f4 KEY_BRL_DOT5 0x1f5 KEY_BRL_DOT6 0x1f6 KEY_BRL_DOT7 0x1f7 KEY_BRL_DOT8 0x1f8 KEY_BRL_DOT9 0x1f9 KEY_BUTTONCONFIG 0x240 KEY_C 46 KEY_CALC 140 KEY_CALENDAR 0x18d KEY_CAMERA 212 KEY_CAMERA_DOWN 0x218 KEY_CAMERA_FOCUS 0x210 KEY_CAMERA_LEFT 0x219 KEY_CAMERA_RIGHT 0x21a KEY_CAMERA_UP 0x217 KEY_CAMERA_ZOOMIN 0x215 KEY_CAMERA_ZOOMOUT 0x216 KEY_CANCEL 223 KEY_CAPSLOCK 58 KEY_CD 0x17f KEY_CHANNEL 0x16b KEY_CHANNELDOWN 0x193 KEY_CHANNELUP 0x192 KEY_CHAT 216 KEY_CLEAR 0x163 KEY_CLOSE 206 KEY_CLOSECD 160 KEY_COFFEE 152 KEY_COMMA 51 KEY_COMPOSE 127 KEY_COMPUTER 157 KEY_CONFIG 171 KEY_CONNECT 218 KEY_CONTEXT_MENU 0x1b6 KEY_CONTROLPANEL 0x243 KEY_COPY 133 KEY_CUT 137 KEY_CYCLEWINDOWS 154 KEY_D 32 KEY_DASHBOARD 204 KEY_DATA 0x275 KEY_DATABASE 0x1aa KEY_DEL_EOL 0x1c0 KEY_DEL_EOS 0x1c1 KEY_DELETE 111 KEY_DELETEFILE 146 KEY_DEL_LINE 0x1c3 KEY_DIGITS 0x19d KEY_DIRECTORY 0x18a KEY_DISPLAY_OFF 245 KEY_DISPLAYTOGGLE 0x1af KEY_DOCUMENTS 235 KEY_DOLLAR 0x1b2 KEY_DOT 52 KEY_DOWN 108 KEY_DVD 0x185 KEY_E 18 KEY_EDIT 176 KEY_EDITOR 0x1a6 KEY_EJECTCD 161 KEY_EJECTCLOSECD 162 KEY_EMAIL 215 KEY_END 107 KEY_ENTER 28 KEY_EPG 0x16d KEY_EQUAL 13 KEY_ESC 1 KEY_EURO 0x1b3 KEY_EXIT 174 KEY_F10 68 KEY_F11 87 KEY_F12 88 KEY_F13 183 KEY_F14 184 KEY_F15 185 KEY_F1 59 KEY_F16 186 KEY_F17 187 KEY_F18 188 KEY_F19 189 KEY_F20 190 KEY_F21 191 KEY_F22 192 KEY_F23 193 KEY_F24 194 KEY_F2 60 KEY_F 33 KEY_F3 61 KEY_F4 62 KEY_F5 63 KEY_F6 64 KEY_F7 65 KEY_F8 66 KEY_F9 67 KEY_FASTFORWARD 208 KEY_FASTREVERSE 0x275 KEY_FAVORITES 0x16c KEY_FILE 144 KEY_FINANCE 219 KEY_FIND 136 KEY_FIRST 0x194 KEY_FN 0x1d0 KEY_FN_1 0x1de KEY_FN_2 0x1df KEY_FN_B 0x1e4 KEY_FN_D 0x1e0 KEY_FN_E 0x1e1 KEY_FN_ESC 0x1d1 KEY_FN_F 0x1e2 KEY_FN_F10 0x1db KEY_FN_F1 0x1d2 KEY_FN_F11 0x1dc KEY_FN_F12 0x1dd KEY_FN_F2 0x1d3 KEY_FN_F3 0x1d4 KEY_FN_F4 0x1d5 KEY_FN_F5 0x1d6 KEY_FN_F6 0x1d7 KEY_FN_F7 0x1d8 KEY_FN_F8 0x1d9 KEY_FN_F9 0x1da KEY_FN_S 0x1e3 KEY_FORWARD 159 KEY_FORWARDMAIL 233 KEY_FRAMEBACK 0x1b4 KEY_FRAMEFORWARD 0x1b5 KEY_FRONT 132 KEY_G 34 KEY_GAMES 0x1a1 KEY_GOTO 0x162 KEY_GRAPHICSEDITOR 0x1a8 KEY_GRAVE 41 KEY_GREEN 0x18f KEY_H 35 KEY_HANGEUL 122 KEY_HANJA 123 KEY_HELP 138 KEY_HENKAN 92 KEY_HIRAGANA 91 KEY_HOME 102 KEY_HOMEPAGE 172 KEY_HP 211 KEY_I 23 KEY_IMAGES 0x1ba KEY_INFO 0x166 KEY_INSERT 110 KEY_INS_LINE 0x1c2 KEY_ISO 170 KEY_J 36 KEY_JOURNAL 0x242 KEY_K 37 KEY_KATAKANA 90 KEY_KATAKANAHIRAGANA 93 KEY_KBDILLUMDOWN 229 KEY_KBDILLUMTOGGLE 228 KEY_KBDILLUMUP 230 KEY_KBDINPUTASSIST_ACCEPT 0x264 KEY_KBDINPUTASSIST_CANCEL 0x265 KEY_KBDINPUTASSIST_NEXT 0x261 KEY_KBDINPUTASSIST_NEXTGROUP 0x263 KEY_KBDINPUTASSIST_PREV 0x260 KEY_KBDINPUTASSIST_PREVGROUP 0x262 KEY_KEYBOARD 0x176 KEY_KP0 82 KEY_KP1 79 KEY_KP2 80 KEY_KP3 81 KEY_KP4 75 KEY_KP5 76 KEY_KP6 77 KEY_KP7 71 KEY_KP8 72 KEY_KP9 73 KEY_KPASTERISK 55 KEY_KPCOMMA 121 KEY_KPDOT 83 KEY_KPENTER 96 KEY_KPEQUAL 117 KEY_KPJPCOMMA 95 KEY_KPLEFTPAREN 179 KEY_KPMINUS 74 KEY_KPPLUS 78 KEY_KPPLUSMINUS 118 KEY_KPRIGHTPAREN 180 KEY_KPSLASH 98 KEY_L 38 KEY_LANGUAGE 0x170 KEY_LAST 0x195 KEY_LEFT 105 KEY_LEFTALT 56 KEY_LEFTBRACE 26 KEY_LEFTCTRL 29 KEY_LEFT_DOWN 0x269 KEY_LEFTMETA 125 KEY_LEFTSHIFT 42 KEY_LEFT_UP 0x268 KEY_LIGHTS_TOGGLE 0x21e KEY_LINEFEED 101 KEY_LIST 0x18b KEY_LOGOFF 0x1b1 KEY_M 50 KEY_MACRO 112 KEY_MAIL 155 KEY_MAX 0x2ff KEY_MEDIA 226 KEY_MEDIA_REPEAT 0x1b7 KEY_MEDIA_TOP_MENU 0x26b KEY_MEMO 0x18c KEY_MENU 139 KEY_MESSENGER 0x1ae KEY_MHP 0x16f KEY_MICMUTE 248 KEY_MINUS 12 KEY_MODE 0x175 KEY_MOVE 175 KEY_MP3 0x187 KEY_MSDOS 151 KEY_MUHENKAN 94 KEY_MUTE 113 KEY_N 49 KEY_NEW 181 KEY_NEWS 0x1ab KEY_NEXT 0x197 KEY_NEXT_FAVORITE 0x270 KEY_NEXTSONG 163 KEY_NUMERIC_0 0x200 KEY_NUMERIC_1 0x201 KEY_NUMERIC_11 0x26c KEY_NUMERIC_12 0x26d KEY_NUMERIC_2 0x202 KEY_NUMERIC_3 0x203 KEY_NUMERIC_4 0x204 KEY_NUMERIC_5 0x205 KEY_NUMERIC_6 0x206 KEY_NUMERIC_7 0x207 KEY_NUMERIC_8 0x208 KEY_NUMERIC_9 0x209 KEY_NUMERIC_A 0x20c KEY_NUMERIC_B 0x20d KEY_NUMERIC_C 0x20e KEY_NUMERIC_D 0x20f KEY_NUMERIC_POUND 0x20b KEY_NUMERIC_STAR 0x20a KEY_NUMLOCK 69 KEY_O 24 KEY_OK 0x160 KEY_OPEN 134 KEY_OPTION 0x165 KEY_P 25 KEY_PAGEDOWN 109 KEY_PAGEUP 104 KEY_PASTE 135 KEY_PAUSE 119 KEY_PAUSECD 201 KEY_PAUSE_RECORD 0x272 KEY_PC 0x178 KEY_PHONE 169 KEY_PLAY 207 KEY_PLAYCD 200 KEY_PLAYER 0x183 KEY_PLAYPAUSE 164 KEY_POWER 116 KEY_POWER2 0x164 KEY_PRESENTATION 0x1a9 KEY_PREVIOUS 0x19c KEY_PREVIOUSSONG 165 KEY_PRINT 210 KEY_PROG1 148 KEY_PROG2 149 KEY_PROG3 202 KEY_PROG4 203 KEY_PROGRAM 0x16a KEY_PROPS 130 KEY_PVR 0x16e KEY_Q 16 KEY_QUESTION 214 KEY_R 19 KEY_RADIO 0x181 KEY_RECORD 167 KEY_RED 0x18e KEY_REDO 182 KEY_REFRESH 173 KEY_REPLY 232 KEY_RESERVED 0 KEY_RESTART 0x198 KEY_REWIND 168 KEY_RFKILL 247 KEY_RIGHT 106 KEY_RIGHTALT 100 KEY_RIGHTBRACE 27 KEY_RIGHTCTRL 97 KEY_RIGHT_DOWN 0x267 KEY_RIGHTMETA 126 KEY_RIGHTSHIFT 54 KEY_RIGHT_UP 0x266 KEY_RO 89 KEY_ROOT_MENU 0x26a KEY_ROTATE_DISPLAY 153 KEY_S 31 KEY_SAT 0x17d KEY_SAT2 0x17e KEY_SAVE 234 KEY_SCALE 120 KEY_SCREEN 0x177 KEY_SCREENSAVER 0x245 KEY_SCROLLDOWN 178 KEY_SCROLLLOCK 70 KEY_SCROLLUP 177 KEY_SEARCH 217 KEY_SELECT 0x161 KEY_SEMICOLON 39 KEY_SEND 231 KEY_SENDFILE 145 KEY_SETUP 141 KEY_SHOP 221 KEY_SHUFFLE 0x19a KEY_SLASH 53 KEY_SLEEP 142 KEY_SLOW 0x199 KEY_SLOWREVERSE 0x276 KEY_SOUND 213 KEY_SPACE 57 KEY_SPELLCHECK 0x1b0 KEY_SPORT 220 KEY_SPREADSHEET 0x1a7 KEY_STOP 128 KEY_STOPCD 166 KEY_STOP_RECORD 0x271 KEY_SUBTITLE 0x172 KEY_SUSPEND 205 KEY_SWITCHVIDEOMODE 227 KEY_SYSRQ 99 KEY_T 20 KEY_TAB 15 KEY_TAPE 0x180 KEY_TASKMANAGER 0x241 KEY_TEEN 0x19e KEY_TEXT 0x184 KEY_TIME 0x167 KEY_TITLE 0x171 KEY_TOUCHPAD_OFF 0x214 KEY_TOUCHPAD_ON 0x213 KEY_TOUCHPAD_TOGGLE 0x212 KEY_TUNER 0x182 KEY_TV 0x179 KEY_TV2 0x17a KEY_TWEN 0x19f KEY_U 22 KEY_UNDO 131 KEY_UNKNOWN 240 KEY_UNMUTE 0x274 KEY_UP 103 KEY_UWB 239 KEY_V 47 KEY_VCR 0x17b KEY_VCR2 0x17c KEY_VENDOR 0x168 KEY_VIDEO 0x189 KEY_VIDEO_NEXT 241 KEY_VIDEOPHONE 0x1a0 KEY_VIDEO_PREV 242 KEY_VOD 0x273 KEY_VOICECOMMAND 0x246 KEY_VOICEMAIL 0x1ac KEY_VOLUMEDOWN 114 KEY_VOLUMEUP 115 KEY_W 17 KEY_WAKEUP 143 KEY_WLAN 238 KEY_WORDPROCESSOR 0x1a5 KEY_WPS_BUTTON 0x211 KEY_WWAN 246 KEY_WWW 150 KEY_X 45 KEY_XFER 147 KEY_Y 21 KEY_YELLOW 0x190 KEY_YEN 124 KEY_Z 44 KEY_ZENKAKUHANKAKU 85 KEY_ZOOM 0x174 KEY_ZOOMIN 0x1a2 KEY_ZOOMOUT 0x1a3 KEY_ZOOMRESET 0x1a4 BTN_0 0x100 BTN_1 0x101 BTN_2 0x102 BTN_3 0x103 BTN_4 0x104 BTN_5 0x105 BTN_6 0x106 BTN_7 0x107 BTN_8 0x108 BTN_9 0x109 BTN_BACK 0x116 BTN_BASE 0x126 BTN_BASE2 0x127 BTN_BASE3 0x128 BTN_BASE4 0x129 BTN_BASE5 0x12a BTN_BASE6 0x12b BTN_C 0x132 BTN_DEAD 0x12f BTN_DIGI 0x140 BTN_DPAD_DOWN 0x221 BTN_DPAD_LEFT 0x222 BTN_DPAD_RIGHT 0x223 BTN_DPAD_UP 0x220 BTN_EAST 0x131 BTN_EXTRA 0x114 BTN_FORWARD 0x115 BTN_GAMEPAD 0x130 BTN_GEAR_DOWN 0x150 BTN_GEAR_UP 0x151 BTN_JOYSTICK 0x120 BTN_LEFT 0x110 BTN_MIDDLE 0x112 BTN_MISC 0x100 BTN_MODE 0x13c BTN_MOUSE 0x110 BTN_NORTH 0x133 BTN_PINKIE 0x125 BTN_RIGHT 0x111 BTN_SELECT 0x13a BTN_SIDE 0x113 BTN_SOUTH 0x130 BTN_START 0x13b BTN_STYLUS 0x14b BTN_STYLUS2 0x14c BTN_TASK 0x117 BTN_THUMB 0x121 BTN_THUMB2 0x122 BTN_THUMBL 0x13d BTN_THUMBR 0x13e BTN_TL 0x136 BTN_TL2 0x138 BTN_TOOL_AIRBRUSH 0x144 BTN_TOOL_BRUSH 0x142 BTN_TOOL_DOUBLETAP 0x14d BTN_TOOL_FINGER 0x145 BTN_TOOL_LENS 0x147 BTN_TOOL_MOUSE 0x146 BTN_TOOL_PEN 0x140 BTN_TOOL_PENCIL 0x143 BTN_TOOL_QUADTAP 0x14f BTN_TOOL_QUINTTAP 0x148 BTN_TOOL_RUBBER 0x141 BTN_TOOL_TRIPLETAP 0x14e BTN_TOP 0x123 BTN_TOP2 0x124 BTN_TOUCH 0x14a BTN_TR 0x137 BTN_TR2 0x139 BTN_TRIGGER 0x120 BTN_TRIGGER_HAPPY 0x2c0 BTN_TRIGGER_HAPPY10 0x2c9 BTN_TRIGGER_HAPPY1 0x2c0 BTN_TRIGGER_HAPPY11 0x2ca BTN_TRIGGER_HAPPY12 0x2cb BTN_TRIGGER_HAPPY13 0x2cc BTN_TRIGGER_HAPPY14 0x2cd BTN_TRIGGER_HAPPY15 0x2ce BTN_TRIGGER_HAPPY16 0x2cf BTN_TRIGGER_HAPPY17 0x2d0 BTN_TRIGGER_HAPPY18 0x2d1 BTN_TRIGGER_HAPPY19 0x2d2 BTN_TRIGGER_HAPPY20 0x2d3 BTN_TRIGGER_HAPPY2 0x2c1 BTN_TRIGGER_HAPPY21 0x2d4 BTN_TRIGGER_HAPPY22 0x2d5 BTN_TRIGGER_HAPPY23 0x2d6 BTN_TRIGGER_HAPPY24 0x2d7 BTN_TRIGGER_HAPPY25 0x2d8 BTN_TRIGGER_HAPPY26 0x2d9 BTN_TRIGGER_HAPPY27 0x2da BTN_TRIGGER_HAPPY28 0x2db BTN_TRIGGER_HAPPY29 0x2dc BTN_TRIGGER_HAPPY30 0x2dd BTN_TRIGGER_HAPPY3 0x2c2 BTN_TRIGGER_HAPPY31 0x2de BTN_TRIGGER_HAPPY32 0x2df BTN_TRIGGER_HAPPY33 0x2e0 BTN_TRIGGER_HAPPY34 0x2e1 BTN_TRIGGER_HAPPY35 0x2e2 BTN_TRIGGER_HAPPY36 0x2e3 BTN_TRIGGER_HAPPY37 0x2e4 BTN_TRIGGER_HAPPY38 0x2e5 BTN_TRIGGER_HAPPY39 0x2e6 BTN_TRIGGER_HAPPY40 0x2e7 BTN_TRIGGER_HAPPY4 0x2c3 BTN_TRIGGER_HAPPY5 0x2c4 BTN_TRIGGER_HAPPY6 0x2c5 BTN_TRIGGER_HAPPY7 0x2c6 BTN_TRIGGER_HAPPY8 0x2c7 BTN_TRIGGER_HAPPY9 0x2c8 BTN_WEST 0x134 BTN_WHEEL 0x150 BTN_Z 0x135 end codes end remote
Gut und jetzt müssen diese Tasten für Kodi eingestellt werden. Ich habe mir eine eigene Konfiguration erstellt womit die meisten Tasten ganz gut alle Funktionen abdecken. Das Kontextmenü habe ich auf SNAPSHOT gelegt und für Zurück habe ich die DELETE Taste genommen. Die Tasten sind gleich in der Nähe der OK Taste die zum Bestätigen benutzt wird.
/home/kodi/.kodi/userdata/Lircmap.xml
KEY_PLAY KEY_PAUSE KEY_STOP KEY_FORWARD KEY_REWIND KEY_LEFT KEY_RIGHT KEY_UP KEY_DOWN KEY_CHANNELUP KEY_CHANNELDOWN KEY_DELETE KEY_NEXT KEY_PREVIOUS KEY_SWITCHVIDEOMODE KEY_1 KEY_2 KEY_3 KEY_4 KEY_5 KEY_6 KEY_7 KEY_8 KEY_9 KEY_0 KEY_TV
KEY_AUDIO KEY_VOLUMEUP KEY_VOLUMEDOWN KEY_MUTE KEY_POWER
Nicht vergessen, dass diese Datei dem User kodi gehören sollte:
#$ chown -c kodi:kodi /home/kodi/.kodi/userdata/Lircmap.xml
Das sollte es nun gewesen sein und ich hoffe ich habe nichts vergessen :)
Falls ihr Probleme mit kodi habt, hilft das Log unter /home/kodi/.kodi/temp/kodi.log. Den Loglevel könnt ihr hier einstellen:
/home/kodi/.kodi/userdata/advancedsettings.xml
1 true 64,2048,32768 false
Wiederbelebung einer Sun Ultra 5/10 mit Solaris 9
Neulich bekam ich eine Sun Microsystems Ultra 5 Maschine geschenkt 😊 Da ich noch null Erfahrung mit Solaris und SPARC64 hatte, beschloss ich die alte Maschine wieder auf zu bauen und irgend etwas sinnvolles damit zu tun... Leider musste ich schnell feststellen, dass der NVRAM kaputt und das openboot System passwort geschützt war. Ohne Kenntnis des Passworts konnte ich nun kein neues OS installieren und ein neuer NVRAM wäre eigentlich zu teuer und hätte das ganze um Monate verzögert, da dieser nur aus den USA bestellt werden konnte.
Kurz mal eine Leistungsübersicht dieser Ultra 5 Machine:
- CPU: UltraSPARC IIi 333Mhz
- RAM: DIMM 168-pin 265 MB
- NIC: Sun Happy Meal Ethernet, Fast Ethernet
- GPU: ATI 3D RAGE II
- HDD: EIDE 80GB
- CDROM: Goldstar CD-ROM
- FLOPPY: 3.5" 1.44 MB Floppy
So schaute ich mich bei ebay um und entdeckte eine günstige Sun Ultra 10 Maschine... Sie ist praktisch baugleich mit der Ultra 5, nur dass sie im Towerformat statt im Desktopformat kommt. Einziges Problem war auch hier ein kaputter NVRAM, also recherchierte ich das Problem.
Ein BIOS existiert nicht, stattdessen stützt sich das System auf Sun OpenBoot. Der NVRAM besteht aus einem aufgesteckten Speicherbautstein welcher MAC-Adresse, Seriennummer, Datum usw speichert. Leider wurde die Batterie, welche diese Daten "am Leben hält", direkt in den NVRAM eingegossen und ist nach seiner Lebensdauer nicht so einfach austauschbar. Ein kaputter NVRAM hängt also mit der integrierten Batterie zusammen und ist anscheinend heut zu Tage bei einer Sun Ultra unvermeidlich 😞
Nun fand ich diverse Anleitungen wie der NRAM gerettet werden kann, in dem man ihn tatsächlich aufsägt und eine neue Batterie einlötet 😄
Ich bestellte also die Sun Ultra 10 und machte mich an die Arbeit. Benötigte Sachen zum Reparieren des NVRAM:
- Metallsäge oder Laubsäge
- Lötkolben + Lötzin
- Zwei kleine Verbindungskabel
- Dremel mit spitzen Schleifkopf
- eine 3V Knopfzelle oder zwei normale 1,5V AA Batterien
- Klebeband und eine Heißklebepistole
- Styroporplatte oder Polyethylenschaumplatte zum Fixieren des NVRAM
Der NVRAM-Baustein wird von oben, so wie auf den Bildern zu sehen, mittig angesägt. Von oben gesehen ist in einer Ecke links ein Punkt. Man sägt nun auf der entgegen gesetzten Seite seitlich in den Chip bis man zur mittigen Sägestelle kommt. Der Teil mit der toten Knopfzelle wird abgetrennt und die zwei Pole mit Hilfe des Dremels freigegelegt. Legt man den NVRAM mit der abgesägten Stelle vor sich, ist links der Minuspol und rechts der Pluspol. Man lötet nun die Verbindungskabel an und schließt die Batterie an. Das ganze erfordert viel Fingerspitzengefühl und etwas Glück. Ich habe es selbst erst beim zweiten Anlauf geschafft und hatte große Mühe den Lötzin mit den Kabeln zu verbinden...
Nun verbindet man die Batterie und steckt den NVRAM wieder auf das Mainboard. Achtung: der NVRAM muss richtig herum aufgesteckt werden, sonst könnte dieser beim Einschalten zerstört werden! Auf den Bildern sieht man die Richtige Position.
Hat man diesen Schritt gemeistert, muss der NVRAM neu programmiert werden. Hier biete ich eine einfache Anleitung dazu:
- System einschalten und Fehlermeldung des NVRAM abwarten
- "The IDPROM contents are invalid" erscheint
- auf der Sun-Tastatur die Tasten Stop+A drücken
- der ok-prompt erscheint, nun folgt die Programmierung:
Achtung: das "@" wird bei der Programmierung benötigt und scheint bei der deutschen Tastatur nicht möglich zu sein. Zumindest konnte ich es nicht über die übliche Tastenkombi eingeben. Meine Sun-Tastatur von der Ultra 5 war glücklicherweise eine US-Version und so hatte ich diese angeschlossen...
ok set-defaults ok 1 0 mkp ok 80 1 mkp ok 8 2 mkp ok 0 3 mkp ok 20 4 mkp ok c0 5 mkp ok ff 6 mkp ok ee 7 mkp ok 0 8 mkp ok 0 9 mkp ok 0 a mkp ok 0 b mkp ok c0 c mkp ok ff d mkp ok ee e mkp ok 0 f 0 do i idprom@ xor loop f mkp
Die MAC-Adresse lautet nun 08:00:20:C0:FF:EE und die Host ID 80c0ffee 😊
Wenn alles geklappt hat, ist die Maschine vorbereitet und man kann endlich ein OS installieren. Leider war der RAM von der Ultra 10 defekt und ich musste die 256MB von der Ultra 5 einbauen. Als benutzbar erwies sich der gentoo SPARC64 Port und Solaris 7 sowie Solaris 9. Solaris 10 sollte eigentlich auch funktionieren, aber dafür reichen wohl die 256MB RAM nicht aus...
Hier gibt es einige Fotos von Hardwareprojekten und selbst gebauten Computern, die ich auf alten Festplatten von mir gefunden habe 😊
Diese Computer liefen zum Teil zuverlässig, zum Teil instabil, aber ich hatte viel gelernt und die Motivation hält bis heute an. Der Moment, wenn man das halb bestückte Motherboard durch den Power-Knopf zum Testen einschaltet ist nach wie vor voller Spannung... Habe ich alles richtig angeschlossen? Und habe ich die Kapazität des Netzteils richtig eingeschätzt? Ist die Belüftung ausreichend um alle Komponenten zu kühlen? Wird er bei einem Stresstest abstürzen?
Wenn ich heute ein neues System zusammenbaue achte ich vor allem auf Energieeffizienz und besonders leise Kühlung. Linuxunterstützung sowie Staubfilter und gute Lüfter spielen dabei eine große Rolle.
Hier sieht man unter anderem einen Siemens Fujitsu mit AMD Athlon (Designed for Windows 98) und einen umgebauten Aldi-PC 😄
Irgendwann kaufte ich mir ein Chieftec Gehäuse welches ich sogar heute noch habe...
Ein Thermaltake ARMOR Gehäuse, dass ich auf Wasserkühlung umgebaut habe... Bis es undicht wurde 😒
Dieses Gehäuse habe ich für meinen neusten Rechner ebenfalls wiederverwendet.
Ein Projekt im Informatik-Unterricht mit Arduino UNO und mein Thinkpad T410
Dieser Rechner ist etwas neuer und war schon bei der Northcon mit dabei 😊
Und hier ein Cubietruck den ich noch mit einem angepassten Android-Image ausstatten muss...