Bearbeiten von „HTC/Perflock

Warnung: Du bist nicht angemeldet. Deine IP-Adresse wird bei Bearbeitungen öffentlich sichtbar. Melde dich an oder erstelle ein Benutzerkonto, damit Bearbeitungen deinem Benutzernamen zugeordnet werden. Ein eigenes Benutzerkonto hat eine ganze Reihe von Vorteilen.

Die Bearbeitung kann rückgängig gemacht werden. Bitte prüfe den Vergleich unten, um sicherzustellen, dass du dies tun möchtest, und veröffentliche dann unten deine Änderungen, um die Bearbeitung rückgängig zu machen.

Aktuelle Version Dein Text
Zeile 1: Zeile 1:
{{DISPLAYTITLE:HTC Kernel: ''Perflock''?}}
'''Perflock''' ist eine "Funktion" in HTC-[[Stock]]-[[Kernel]]n.
'''Perflock''' ist verallgemeinert eine [[Kernel]]-Funktion in vielen [[Android]]-Smartphones von [[HTC]]. Sie übernimmt die Aufgabe, in regelmäßigen Zeitabständen die CPU-Frequenzen auf die von HTC voreingestellten Standardwerte zurück zu setzten.<ref>
{{cite web | url=http://www.setcpu.com/documentation.html#disabling_perflock | title=SetCPU Help | accessdate=2014-06-25 | format=text/html | work=SetCPU Help | language=englisch }}</ref> Dies beeinträchtigt maßgeblich das [[Übertakten|Über-]] bzw. [[Untertakten]] des Prozessors.


Durch das stetige Zurücksetzen der CPU-Werte muss die Methode, die zur Anpassung dieser verwendet wurde, in regelmäßigen Zeitabständen wiederhohlt werden, was zeitlich gesehen ein großer Aufwand und sein kann und vermutlich in den seltensten Fällen wirklich praktikabel ist.
== Was ist Perflock? ==
Perflock ist eine bei HTC eingebaute Funktion im Kernel, welche verhindert, dass die Taktraten der CPU durch den Benutzer [[Overclocking|geändert]] werden können. Dabei werden die voreingestellten Taktraten des Kernels beibehalten und können auch nicht nachträglich durch [[App]]s, wie zum Beispiel SetCPU, geändert werden.


== Umgehen von Perflock ==
== Umgehen von Perflock ==
Der Perflock kann in aller Regel durch ein Kernelmodul deaktiviert werden. Dies geht auch ohne Root oder Zugriff auf die /system-Partition (was S-OFF oder einen entsperrten Bootloader benötigen würde), muss dann allerdings zur Laufzeit (also nach dem Start des Kernels) geschehen. SetCPU bietet hierfür einen Automatismus an.
Man kann Perflock allerdings auch relativ einfach zum Beispiel mit SetCPU umgehen. Dabei wird die "Sperre" aus dem Kernel temporär entfernt und die Anpassung der Taktraten ist problemlos möglich.
 
Dazu wird allerdings [[Root]] benötigt, um Zugriff auf bestimmte Ressourcen zu erhalten.
Alternativ kann mit einem init.d Script das Laden des Moduls auch während der Initialisierung des Kernels geschehen. Hierfür benötigt man i.d.R. allerdings einen veränderten Kernel, der dass Ausführen von init.d-Scripts ermöglicht. Hier ist es von Gerät zu Gerät verschieden, ob ein solcher angepasster Kernel und dem passenden Modul vorhanden ist oder nicht.
Eine andere Möglichkeit ist das Flashen eines Custom-Kernels, der kein Perflock beinhaltet. Das ist bei allen OC (Overclocked Kernels) so sowie bei den meisten Custom-ROMs.
 
== Hintergrund ==
Definiert ist das Perflock-Interface im Kernel-Header<ref>
{{cite web | url=http://debianforum.de/forum/viewtopic.php?f=33&t=40821 | title=Was sind Kernel Headers? | accessdate=2014-06-25 | date=2005-02-15 | format=text/html | work=debianforum.de | publisher=debianforum.de | language=deutsch }}</ref> ''perflock.h'', welcher im Kernel unter ''/arch/arm/mach-msm/include/mach'' zu finden ist (Beispiel [[HTC/Wildfire S|HTC Wildfire S]], sollte aber bei anderen Geräten gleich sein) und hat folgenden Inhalt:<ref>
{{cite web | url=http://www.htcdev.com/devcenter/downloads | title=HTCdev - HTC Kernel Source Code and Binaries | accessdate=2014-06-25 | format=text/html | work=HTCDev | publisher=HTC Corp. | language=englisch }}</ref>
<syntaxhighlight lang="c">
/* arch/arm/mach-msm/perflock.h
*
* MSM performance lock driver header
*
* Copyright (C) 2008 HTC Corporation
* Author: Eiven Peng <eiven_peng@htc.com>
*
* This software is licensed under the terms of the GNU General Public
* License version 2, as published by the Free Software Foundation, and
* may be copied, distributed, and modified under those terms.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
*/
 
#ifndef __ARCH_ARM_MACH_PERF_LOCK_H
#define __ARCH_ARM_MACH_PERF_LOCK_H
 
#include <linux/list.h>
 
/*
* Performance level determine differnt EBI1 rate
*/
 
enum {
PERF_LOCK_MEDIUM, /* Medium performance */
PERF_LOCK_HIGH, /* High performance */
PERF_LOCK_HIGHEST, /* Highest performance */
PERF_LOCK_INVALID,
};
 
struct perf_lock {
struct list_head link;
unsigned int flags;
unsigned int level;
const char *name;
};
 
struct perflock_platform_data {
unsigned int *perf_acpu_table;
unsigned int table_size;
};
 
#ifndef CONFIG_PERFLOCK
static inline void __init perflock_init(
struct perflock_platform_data *pdata) { return; }
static inline void perf_lock_init(struct perf_lock *lock,
unsigned int level, const char *name) { return; }
static inline void perf_lock(struct perf_lock *lock) { return; }
static inline void perf_unlock(struct perf_lock *lock) { return; }
static inline int is_perf_lock_active(struct perf_lock *lock) { return 0; }
static inline int is_perf_locked(void) { return 0; }
#else
extern void __init perflock_init(struct perflock_platform_data *pdata);
extern void perf_lock_init(struct perf_lock *lock,
unsigned int level, const char *name);
extern void perf_lock(struct perf_lock *lock);
extern void perf_unlock(struct perf_lock *lock);
extern int is_perf_lock_active(struct perf_lock *lock);
extern int is_perf_locked(void);
#endif
 
 
#endif
 
 
</syntaxhighlight>
 
== Einzelnachweise ==
<references />


[[Kategorie:Software]]
[[Kategorie:Software]]
[[Kategorie:HTC]]
[[Kategorie:HTC]]
Bitte kopiere keine Webseiten, die nicht deine eigenen sind, benutze keine urheberrechtlich geschützten Werke ohne Erlaubnis des Urhebers!
Du gibst uns hiermit deine Zusage, dass du den Text selbst verfasst hast, dass der Text Allgemeingut (public domain) ist, oder dass der Urheber seine Zustimmung gegeben hat. Falls dieser Text bereits woanders veröffentlicht wurde, weise bitte auf der Diskussionsseite darauf hin. Bitte beachte, dass alle Android Wiki-Beiträge automatisch unter der „Creative Commons Attribution/Share-Alike Lizenz 3.0“ stehen. Falls du nicht möchtest, dass deine Arbeit hier von anderen verändert und verbreitet wird, dann klicke nicht auf „Seite speichern“.

Um das Wiki vor automatisiertem Bearbeitungsspam zu schützen, bitten wir dich, das folgende CAPTCHA zu lösen:

Abbrechen Bearbeitungshilfe (wird in einem neuen Fenster geöffnet)

Folgende Vorlagen werden auf dieser Seite verwendet: