Kernel-Patches

Hier möchte ich ein paar Kernel-Patches anbieten, die ich im Laufe der Zeit brauchte.

Wie Kernel-Patches im Detail zu Erstellen und einzubinden sind werde ich hier nicht erläutern.

  • Bootsplash Patch für Kernel 2.6.14
  • Lösung für das Problem der DELL ePort Dockingstation und dem Intel i915 Treiber. Behebt die lange Wartezeit beim Aufwachen aus dem Standby. Fehler im Log, der nach dem Patch nicht mehr auftaucht:
    [drm:intel_dp_complete_link_train] *ERROR* failed to train DP, aborting
    Für den Kernel 3.13.0, ggf. auch höher - als Skript
    #!/bin/bash
    
    version=`uname -r`
    
    if [ "$version" = "" ]; then
        echo "kernel version cannot be determined"
        exit 1
    else
        echo "version to patch: $version"
    fi
    
    mainversion=`echo $version | sed -nr 's/([0-9]+\.[0-9]+\.[0-9]+).*/\1/p'`
    
    # Temporary folder
    cd /tmp/
    
    # Patch
    cat > intel_dp.patch <<EOF
    diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
    index 8f17f8fbd0b1..5631cfb874db 100644
    --- a/drivers/gpu/drm/i915/intel_dp.c
    +++ b/drivers/gpu/drm/i915/intel_dp.c
    @@ -847,8 +847,8 @@ intel_dp_compute_config(struct intel_encoder *encoder,
     		mode_rate = intel_dp_link_required(adjusted_mode->crtc_clock,
     						   bpp);
     
    -		for (clock = 0; clock <= max_clock; clock++) {
    -			for (lane_count = 1; lane_count <= max_lane_count; lane_count <<= 1) {
    +		for (lane_count = 1; lane_count <= max_lane_count; lane_count <<= 1) {
    +			for (clock = 0; clock <= max_clock; clock++) {
     				link_clock = drm_dp_bw_code_to_link_rate(bws[clock]);
     				link_avail = intel_dp_max_data_rate(link_clock,
     								    lane_count);
    EOF
    
    # hier muss ggf. bei Nicht-Ubuntu Systemen der Bezug der Sourcen geändert werden
    sudo apt-get source linux-image-$version
    cd linux-$mainversion/drivers/gpu/drm/i915/
    sudo patch intel_dp.c /tmp/intel_dp.patch
    sudo make -C /usr/src/linux-headers-$version M=`pwd` modules
    sudo make -C /usr/src/linux-headers-$version M=`pwd` modules_install
    sudo depmod -a