4 votes

Création et activation d'une partition swap de stockage interne sur Android Kitkat rooté

Système : Téléphone Android 4.4 rooté (rom actuelle : CM 11 Milestone 6) avec 1GB ram, beaucoup de stockage interne, mais pas de slot sdcard. Le schéma de partition de mon téléphone est CyanogenMod 11 non modifié.

Problème : Le gestionnaire lowmemorykiller/OOM de mon téléphone n'arrête pas de tuer des processus système vitaux tels que le lockscreen, ou incallui, ou acore, provoquant au mieux de longs freezes, et plus souvent des verrouillages doux et durs du système. J'exécute probablement des applications qui utilisent la RAM au-delà du minimum requis par le système, et le choix des processus d'arrière-plan à tuer est sous-optimal. J'ai cherché à affiner le réglage de lowmemkiller mais je n'ai rien trouvé.

Comme la RAM et non le CPU est le problème, je veux essayer d'activer le stockage interne basé sur le swap au lieu de la zRAM comme solution de contournement, ce que le téléphone devrait gérer. Mais je ne trouve pas d'instructions claires sur la façon de le faire. Toutes les pages d'instructions que j'ai trouvées sont soit non spécifiques à Android, soit spécifiques au stockage externe (carte SD) ("partitionner en utilisant USB+Windows"), supposent que vous voulez un échange basé sur les fichiers et non sur les partitions, ou suggèrent une application Google Play à utiliser. Aucune n'explique étape par étape comment le faire.

En supposant que j'ai lu les avertissements et que je connais les risques, et que je veux quand même aller de l'avant, comment dois-je m'y prendre ? Je veux juste obtenir une liste des exemples de commandes de la console pour utiliser l'échange basé sur les partitions. Je suppose que ça donne quelque chose comme ça :

  1. Redimensionnez la ou les partition(s) ou sous-partition(s) existante(s) pour créer de l'espace libre pour une partition swap dédiée de taille fixe.
  2. Créez ou définissez une nouvelle partition dans l'espace libre, et assurez-vous qu'elle est formatée en tant que swap, sinon le système d'exploitation la formatera ou l'utilisera comme swap au démarrage.
  3. Modifiez d'autres fichiers système pour vous assurer que l'espace de pagination sera monté et activé de manière appropriée au démarrage, afin que le système d'exploitation puisse le reconnaître et l'utiliser. (fstab, ou autre chose ?)
  4. Désactiver ou déprioriser la zRAM, et modifier le swappiness à environ 20-30.
  5. Redémarrer, croiser les doigts, et espérer que je l'ai bien fait.

Mon niveau d'expérience *nix actuel : Je sais que Linux utilise des partitions et des sous-partitions, que les nouvelles partitions et les changements de partitions nécessitent probablement que je modifie manuellement les fichiers fstab ou autres, et que des modifications manuelles peuvent également être nécessaires pour s'assurer que les partitions seront montées/activées/utilisées au démarrage. Je n'ai pas utilisé les commandes réelles ou modifié les fichiers réels, donc je ne sais pas à quoi m'attendre. Je suis à l'aise avec la console, mais c'est un peu un nouveau domaine pour moi.

Comment dois-je procéder, étape par étape, et quelles sont les commandes que je dois utiliser si elles ne sont pas évidentes. Je peux comprendre le reste à partir de ça.

6voto

Milner Points 533

Juste une idée brute, non testée/vérifiée par moi-même :

L'échange peut également être établi à l'aide d'un fichier d'échange, de sorte que vous pourriez facilement tester s'il fonctionne du tout. Essayez via adb shell ou d'une application terminale, après être devenu Root, que le dd , mkswap y swapon sont disponibles. Si c'est le cas, vous pouvez essayer :

# create a file to be used for swapping
# (adjust the filename to where the file should reside, and the count
# to the size in kb it should occupy)
dd if=/dev/zero of=</path/to/swapfile> bs=1024 count=65536

# initialize the file for swap use
# (use the file created in the previous step)
mkswap </path/to/swapfile>

# enable swapping
swapon </path/to/swapfile>

# to disable swapping to that file:
# swapoff </path/to/swapfile>

Il existe des moyens d'affiner ce réglage (par exemple, en définissant des valeurs spécifiques pour les éléments suivants l'échange ) - mais avec les étapes décrites, vous pouvez facilement tester si cela fonctionne, sans grand danger de casser des choses. Un redémarrage n'est même pas nécessaire. Dans le meilleur des cas, cela fonctionne tout simplement - dans le pire des cas, cela ne fonctionne pas, et vous devrez peut-être supprimer manuellement le fichier </path/to/swapfile> ;)

3voto

Phil Points 21

J'avais le même problème. J'ai essayé 4 applications qui ont toutes échoué. Je sais comment faire cela dans d'autres distros Linux, également montré manuellement ci-dessus, mais ça n'a toujours pas marché. J'ai essayé d'autres idées données ci-dessus : déplacement vers d'autres points de montage. La plupart vous sont refusées, d'autres sont trop petites pour en valoir la peine.

J'ai ensuite remarqué qu'en exécutant df

J'ai vu une sortie comme celle-ci :

/storage/sdcard0
/mnt/media_rw/sdcard0

Utilisation de la /mnt 代わりに /storage ou /sdcard semble m'avoir permis d'activer le swap avec succès.

androidalle.com

AndroidAlle est une communauté de androiders où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X