Jun

29

Posted by : Florian Löffler | On : 29.06.2009

Nach dem letzten Update meines Gentoo Systems musste ich feststellen, dass das Automounting von Wechseldaträgern wie USB-Sticks unter Gnome nicht mehr funktionierte.
Nach einigem Googeln brachte mich ein Blogeintrag auf “Der Standardleitweg” der Problemlösung ein gutes Stück näher.

Für die Ungeduldigen:
HAL war der Schuldige. Beim Update auf sys-apps/hal-0.5.12_rc1-r6 wurde ein neues USE-Flag “disk-partition” eingeführt, welches per default nicht aktiviert ist. Nach einem re-compile mit aktiviertem “disk-partition” Flag lief alles wieder wie geschmiert.

Für alle Interessierten folgt noch der komplette Lösungsweg…

1. Debugging aktivieren

Zu Anfang aktivierte ich das Debugging für HAL in der /etc/conf.d/hald

# Should HAL be verbose to syslog? Useful for debugging
HALD_VERBOSE="yes"
2. Fehlersuche

Im Syslog unter /var/log/messages lässt sich dann Folgendes beim Einstecken eines USB-Sticks beobachten:

Jun 29 09:47:35 acer hald[7265]: 09:47:35.013 [I] osspec.c:247: SEQNUM=2177, ACTION=add, SUBSYSTEM=block, DEVPATH=/sys/block/sdb, DEVNAME=/dev/sdb, IFINDEX=0
Jun 29 09:47:35 acer hald[7265]: 09:47:35.013 [I] hotplug.c:435: checking event /sys/block/sdb
Jun 29 09:47:35 acer hald[7265]: 09:47:35.013 [I] osspec.c:980: hal_util_find_known_parent: '/sys/block/sdb'->'/sys/devices/pci0000:00/0000:00:13.2/usb2/2-4/2-4.2/2-4.2.1/2-4.2.1:1.0/host4/target4:0:0/4:0:0:0'
Jun 29 09:47:35 acer hald[7265]: 09:47:35.013 [I] blockdev.c:904: block_add: sysfs_path=/sys/block/sdb dev=/dev/sdb is_part=0, parent=0x080da9b0
Jun 29 09:47:35 acer hald[7265]: 09:47:35.013 [D] blockdev.c:1193: block_add: info.subsystem='scsi'
Jun 29 09:47:35 acer hald[7265]: 09:47:35.013 [D] blockdev.c:1193: block_add: info.subsystem='scsi_host'
Jun 29 09:47:35 acer hald[7265]: 09:47:35.013 [D] blockdev.c:1193: block_add: info.subsystem='usb'
Jun 29 09:47:35 acer hald[7265]: 09:47:35.013 [I] blockdev.c:1308: parent_bus is scsi
Jun 29 09:47:35 acer hald[7265]: 09:47:35.014 [I] blockdev.c:530: Probing storage device /dev/sdb
Jun 29 09:47:35 acer hald[7265]: 09:47:35.014 [D] hotplug.c:453: events queued = 0, events in progress = 1
Jun 29 09:47:35 acer hald[7265]: 09:47:35.022 [I] blockdev.c:415: entering; exit_type=0, return_code=127
Jun 29 09:47:35 acer hald[7265]: 09:47:35.022 [D] hotplug.c:453: events queued = 0, events in progress = 0
Jun 29 09:47:35 acer hald[7265]: 09:47:35.022 [D] hotplug.c:458: Hotplug-queue empty now ... no hotplug events in progress
Jun 29 09:47:35 acer hald[7265]: 09:47:35.057 [I] osspec.c:247: SEQNUM=2178, ACTION=add, SUBSYSTEM=block, DEVPATH=/sys/block/sdb/sdb1, DEVNAME=/dev/sdb1, IFINDEX=0
Jun 29 09:47:35 acer hald[7265]: 09:47:35.057 [I] hotplug.c:435: checking event /sys/block/sdb/sdb1
Jun 29 09:47:35 acer hald[7265]: 09:47:35.057 [I] blockdev.c:904: block_add: sysfs_path=/sys/block/sdb/sdb1 dev=/dev/sdb1 is_part=1, parent=0x00000000
Jun 29 09:47:35 acer hald[7265]: 09:47:35.057 [I] blockdev.c:1015: Ignoring hotplug event - no parent
Jun 29 09:47:35 acer hald[7265]: 09:47:35.057 [W] blockdev.c:1577: Not adding device object
Jun 29 09:47:35 acer hald[7265]: 09:47:35.057 [D] hotplug.c:453: events queued = 0, events in progress = 0
Jun 29 09:47:35 acer hald[7265]: 09:47:35.057 [D] hotplug.c:458: Hotplug-queue empty now ... no hotplug events in progress

Besonders interessant ist die hervorgehobene Zeile. Die Partition /dev/sdb1 kann aus irgendeinem Grund nicht korrekt eingebunden werden. Im Block darüber wird allerdings das Device an sich als /dev/sdb einwandfrei erkannt und via SCSI Emulation angesprochen.
Irgendetwas scheint also nicht mit den Partitionen zu stimmen. Das Device /dev/sdb selbst wird ja korrekt eingebunden.

Also erstmal den HAL ebuild genauer unter die Lupe nehmen.

acer ~ # equery uses sys-apps/hal
[ Searching for packages matching sys-apps/hal... ]
[ Colour Code : set unset ]
[ Legend : Left column  (U) - USE flags from make.conf              ]
[        : Right column (I) - USE flags packages was installed with ]
[ Found these USE variables for sys-apps/hal-0.5.12_rc1-r6 ]
 U I
 + + X              : Adds support for X11
 + + acpi           : Adds support for Advanced Configuration and Power Interface
 - - apm            : Adds APM (Advanced Power Management) support
 - - consolekit     : Enables HAL to interact with consolekit for determining whether a given process is running on behalf of the person setting at the console.
 + + crypt          : Add support for encryption -- using mcrypt or gpg where applicable
 - - debug          : Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see http://www.gentoo.org/proj/en/qa/backtraces.xml
 - - dell           : Builds and installs the Dell addon, which reads data from the Dell SM BIOS via sys-libs/libsmbios. It will read your service tag information and your hardware backlight data as well as allow you to modify the backlight settings on a Dell laptop.
 - - disk-partition : Allows HAL to use libparted from sys-apps/parted to read raw partition data from your disks and process that data. Future versions of HAL (possibly 0.5.11 and higher) will allow you to create, modify, delete and format partitions from a GUI interface agnostic of your desktop environment.
 - - doc            : Adds extra documentation (API, Javadoc, etc)
 - - kernel_FreeBSD : KERNEL setting for system using the FreeBSD kernel
 + + kernel_linux   : KERNEL setting for system using the Linux kernel
 - - laptop         : Adds support for power management scripts (sys-power/pm-utils)
 - - policykit      : Use sys-auth/policykit to gain privileges
 - - selinux        : !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur

Die Beschreibung des disk-partition USE-Flags hört sich im Zusammenhang mit der Unterstützung von Partitionen sehr vielversprechend an und ist zudem neu eingeführt worden. Sehr verdächtig ;)

3. Lösung

Gleich mal aktivieren mittels folgenden Eintrages in der /etc/portage/package.use.

sys-apps/hal disk-partition

Und danach HAL neu emergen und neu starten.

acer ~ # emerge -av --newuse sys-apps/hal
[...]
acer ~ # /etc/init.d/hald restart
[...]

Jetzt sollte das Automounting wieder so wie vor dem Update funktionieren.
Nicht vergessen das Debugging für HAL wieder zu deaktivieren, um das Zumüllen des Syslog zu verhindern.

Jun

19

Posted by : Florian Löffler | On : 19.06.2008

Das die ATI Treiber für Linux nicht so das Gelbe vom Ei sind ist ja allgemein bekannt. Nach vielem hin und her und testen von zig Versionskombinationen hatte ich die Dinger irgendwann soweit, dass die 3D-Beschleunigung tatsächlich funktionierte und das ganze sogar mit Standby …. meistens!
Meistens ist leider nicht immer und nach Murphy funktionierts immer dann nicht wenn man’s am wenigsten brauchen kann (ok, wann kommt ein Absturz schonmal gelegen? :).
Aus diesem Grund hab ich mich jedenfalls mal aufgemacht Hibernation (Suspend-to-disk) mit den TuxOnICE Kernel Patches ans laufen zu bekommen. Mehr dazu wirds später geben.
Nachdem Ruhezustand und Resume zu meiner Zufriedenheit funktionierten musste ich feststellen, dass 3D-Anwendungen, wie z.B. glxgears vor dem Ruhezustand funktionierten und nach dem Aufwachen aber das System einfrieren ließen. Banshee spielte zwar im Hintergrund munter weiter Musik, aber das System reagierte auf keine Eingaben mehr.
Die Lösung fand ich, wie so oft in letzter Zeit (Danke Jungs!) in den Ubuntu Foren.
Scheinbar liegt ein Problem bei ATI PCI express Karten vor, das aber mit der korrekten Konfiguration in der xorg.conf behoben werden kann.

Im Device Abschnitt der ATI Karte einfach folgende Optionen hinzufügen:

Option "UseInternalAGPGART" "no"
Option "KernelModuleParm" "agplock=0"

Nach X-Neustart sollte nun die 3D-Beschleunigung auch nach dem Resume noch funktionieren.

Mai

31

Posted by : Florian Löffler | On : 31.05.2008

Hat man wenigstens auf 2 Rechnern Gentoo laufen und aktualisiert auf beiden regelmäßig den Portage, so ist es schon sinnvoll sich einen eigenen rsync Mirror zuzulegen.
Dazu sollte man sich zunächst überlegen welcher Rechner dazu als “rsync-Server” agieren soll bzw. ob man gleich die “Männermethode” wählt und einen lokalen 24/7-Gentoo-Server mit via NFS gesharetem Portage verwendet ;)
Einige Möglichkeiten seinen lokalen Portage anderen Rechnern im Netz zugänglich zu machen möchte ich im Folgenden vorstellen. Vorneweg: Die Einfachste – der rsync Mirror – ist in nicht mal 5 Minuten startklar gemacht!
Das lohnt sich schonmal fast immer.

Continue Reading

Jan

02

Posted by : Florian Löffler | On : 02.01.2008

Die Portage Paketverwaltung gefällt mir persönlich sehr gut. Das sehr zuverlässige Auflösen aller Abhängigkeiten ist mir dabei neben Transparenz und Flexibilität in der Anwendung am wichtigsten. Leider gibt es einen Haken, um den man sich noch per Hand kümmern muss: blocked packages

Kurz erklärt können zwei Pakete, welche dieselbe oder sich überschneidende Funktionen anbieten meist nicht parallel installiert sein, sie schließen sich also gegenseitig aus. Im Beispiel weiter unten blockt der bereits installierte SimpleSMTP (ssmtp) Mail Transfer Agent die Installation des Qmail MTA, welcher gleiches (und noch mehr) leisten würde wie der ssmtp.

Continue Reading