Mem-flash ulang inti perangkat android. Ikhtisar fitur inti Android 3.10 65 versi kernel

Pada Minggu malam, Linus Torvalds, induk dari Linux dan pengembang kernel sistem operasi, setelah dua bulan bekerja, mengumumkan rilis versi baru dari kernel Linux 3.10.

Menurut pengembangnya sendiri, inti ini ternyata menjadi yang terbesar dalam hal volume inovasi selama beberapa tahun terakhir.

Linus mengaku awalnya berniat melepas calon rilisan lain, namun setelah ragu-ragu, ia cenderung merilis rilis final sekaligus dengan nomor 3.10. Juga Torvalds dalam pesannya, dia memperhatikan bahwa kernel baru, seperti versi 3.9, benar-benar siap untuk penggunaan sehari-hari.

Selain itu, dalam pengumuman kernel versi RC, Linus Torvalds menulis bahwa sebelumnya dia selalu menyertakan daftar nama orang yang mengirim bagian tertentu dari kode, tetapi kali ini daftar ini akan sangat besar sehingga tidak dapat diberikan seluruhnya dalam satu lembar.

Daftar perubahan utama yang dibuat pada kernel 3.10:

  • Sekarang dimungkinkan untuk melarang eksekusi skrip sebagai program - fungsionalitas meluncurkan skrip yang berisi jalur ke penerjemah di header "#!" Sekarang dapat dikompilasi sebagai modul kernel;
  • Sistem Bcache yang dikembangkan dan digunakan oleh Google telah terintegrasi. Bcache memungkinkan Anda untuk mengatur caching akses ke hard drive lambat pada drive SSD cepat; dalam hal ini, caching dilakukan pada tingkat perangkat blok - dan ini memungkinkan Anda untuk mempercepat akses ke drive, dan terlepas dari sistem file yang digunakan pada perangkat;
  • Kernel dapat dibangun dengan compiler Clang berkat patch yang disiapkan oleh proyek LLVMLinux;
  • Sistem dinamis untuk mengontrol pembangkitan interupsi oleh timer telah muncul. Sekarang, tergantung pada status saat ini, Anda dapat mengubah interupsi dalam kisaran dari ribuan tick per detik hingga satu interupsi per detik - ini memungkinkan Anda meminimalkan beban pada CPU saat memproses interupsi jika sistem tidak aktif. Sekarang fitur ini digunakan untuk sistem waktu nyata dan HPC (komputasi kinerja tinggi), tetapi pada rilis kernel berikutnya akan digunakan untuk sistem desktop juga;
  • Sekarang dimungkinkan untuk menghasilkan suatu peristiwa yang memberi tahu aplikasi tentang pendekatan terhadap kehabisan memori yang tersedia untuk proses / sistem (dalam cgroups);
  • Untuk perintah perf, profil akses memori sekarang tersedia;
  • Menambahkan dukungan untuk protokol RDMA (iSER) ke subsistem iSCSI;
  • Ada driver baru "sinkronisasi" (eksperimental). Ini dikembangkan dalam platform Android dan digunakan untuk sinkronisasi antara driver lain;
  • Driver kartu grafis virtual QXL terintegrasi (digunakan dalam sistem virtualisasi untuk output grafis yang dipercepat menggunakan protokol SPICE);
  • Fitur manajemen daya baru yang diperkenalkan di keluarga prosesor AMD 16h ("Jaguar") kini didukung;
  • Dukungan untuk akselerasi decoding video menggunakan dekoder UVD perangkat keras yang dibangun ke dalam GPU AMD modern telah ditambahkan ke modul Radeon DRM;
  • Driver untuk adaptor video virtual Microsoft Hyper-V telah muncul (ada juga peningkatan dalam operasi Hyper-V secara umum);
  • Eksekusi fungsi kriptografi (sha256, sha512, blowfish, twofish, serpent dan camellia) dioptimalkan menggunakan instruksi AVX / AVX2 dan SSE.

Pengguna perangkat seluler tidak selalu puas dengan pekerjaan dan kemampuan gadget mereka. Untuk alasan ini, pengguna mencari cara terbaik untuk mem-flash kernel sistem operasi Android. Di satu sisi, tindakan ini dapat dengan mudah dilakukan dengan tablet atau smartphone Anda. Ribuan pengguna telah berhasil mem-flash kernel tanpa komplikasi atau masalah. Namun, di sisi lain, kesalahan selama proses ini dapat menyebabkan, di antaranya adalah kegagalan gadget dan kebutuhan akan layanan yang mahal. Pada tahap yang berbeda, ada risiko memilih versi firmware kernel yang salah, yang dibuat oleh pengembang yang tidak memenuhi syarat, atau tidak sesuai dengan perangkat seluler Anda. Kami menyarankan Anda untuk sangat berhati-hati saat melakukan tindakan apa pun yang membuat perubahan pada bagian perangkat lunak perangkat pada tingkat rendah. Setelah berhasil mem-flash kernel, banyak yang merasa bahwa mereka memegang perangkat yang sama sekali baru di tangan mereka. Dengan demikian, pengguna tingkat lanjut dapat menyesuaikan gadget agar sesuai dengan kebutuhan dan preferensi mereka, sambil memperoleh pengetahuan dan pengalaman baru tentang teknologi seluler modern.

Inti dari sistem operasi Android dan firmware

Apa inti dari perangkat seluler?

Kernel sistem operasi adalah tulang punggung perangkat lunak yang mengelola perangkat keras perangkat. Parameter utama gadget apa pun bergantung padanya. Perlu dicatat bahwa ini terdiri dari tiga komponen yang saling berhubungan - kernel Linux, mesin Dalvik vertikal, dan berbagai layanan dan perpustakaan tingkat rendah. Jika kita berbicara tentang firmware khusus, maka hanya dua komponen yang terpengaruh, yang memungkinkan Anda untuk menambahkan layanan sistem baru, mengoptimalkan parameter yang ada, dan mengubah shell grafis.

Mereka yang ingin menginstal kernel di Android harus memahami bahwa ada perbedaan antara konsep kernel kustom dan firmware kustom. Yang terakhir adalah versi tidak resmi dari perangkat lunak. Firmware khusus dikembangkan oleh tim spesialis untuk perangkat tertentu. Kernel kustom didasarkan pada kernel Linux dan merupakan versi tidak resmi. Seringkali kernel khusus dibundel dengan firmware. Tetapi dapat diinstal secara terpisah setelah mengubah firmware. Faktanya, itu tidak menggantikan inti asli perangkat seluler, yang merupakan tujuan akhir dari operasi semacam itu.

Firmware kernel Android terutama dilakukan untuk meningkatkan runtime perangkat beberapa jam dengan menyesuaikan pengaturan daya. Mungkin inilah alasan utama mengapa pengguna melakukan transformasi perangkat lunak yang rumit pada gadget mereka. Firmware akan memungkinkan Anda untuk mengubah chip video tanpa memengaruhi ponsel cerdas atau tablet Anda. Pengguna tingkat lanjut dengan demikian menyesuaikan kerja layar, mengubah tampilan warna, sensitivitasnya. Firmware kernel memungkinkan Anda meningkatkan suara perangkat, memperbarui driver, dan menerapkan dukungan untuk gadget eksternal non-standar.

Sebelum mem-flash kernel, kami menyarankan Anda untuk memastikan bahwa Anda telah memilih versi yang bagus, yang dibuat oleh pengembang berpengalaman. Selain itu, penting untuk memastikan bahwa itu cocok dengan versi firmware Android Anda. Dianjurkan untuk membaca ulasan orang-orang yang berhasil menginstal versi kernel yang sesuai di ponsel mereka. Ulasan mungkin berisi informasi penting tentang masalah yang mungkin muncul pada tahap firmware atau pengoperasian perangkat lebih lanjut.

Firmware gadget melalui Fastboot

Anda dapat mem-reflash perangkat Android Anda melalui Fastboot. Tetapi pertama-tama, Anda perlu menginstal utilitas di gadget Anda. Ada dua versi dari program ini. Yang pertama melibatkan mengunduh Fastboot bersama dengan program Android SDK resmi. Versi kedua melibatkan pengunduhan utilitas secara terpisah.

Sebaiknya periksa apakah perangkat seluler Anda melihat laptop atau komputer. Untuk melakukan ini, Anda perlu mengeksekusi. Setelah mengunduh dan menginstal di komputer, laptop yang berjalan pada sistem operasi Windows, utilitas Fastboot dan menghubungkan smartphone, Anda harus membuka baris perintah. Untuk melakukan ini, buka Pencarian. Di Windows 8, yang perlu Anda lakukan hanyalah memindahkan kursor mouse ke sisi kanan layar dan memilih bagian yang sesuai. Dalam Pencarian, Anda harus memasukkan "cmd", setelah itu baris perintah akan muncul di depan Anda. Perangkat harus dimasukkan ke mode firmware. Selanjutnya, masukkan perintah yang akan menguji interaksi antara komputer dan perangkat seluler:

perangkat fastboot

Jika semuanya berfungsi, Anda perlu memuat versi boot.img firmware kernel yang benar. Kami tidak menyarankan untuk mem-flash ulang kernel firmware asli, karena ini dapat menyebabkan masalah dalam pengoperasian ponsel cerdas. File harus disimpan ke partisi yang dibuat sebelumnya pada drive C yang disebut "Android". Setelah itu, Anda perlu memuat perangkat seluler Anda ke Fastboot dan menghubungkannya ke komputer Anda. Pesan "Fastboot USB" akan muncul di layar.

  • cd C:\Android.
  • fastboot flash boot boot.img.
  • fastboot menghapus cache.
  • boot ulang cepat.

Sangat penting untuk memasukkan semua kata dengan benar, dengan mempertimbangkan huruf besar dan spasi. Perintah cd membuka folder yang diperlukan yang berisi file yang diperlukan. Setelah itu, flashing terjadi. Perintah fastboot erase cache menghapus partisi Cache. Perintah terakhir adalah fastboot reboot, yang me-reboot perangkat dari mode firmware ke normal. Jika Anda melakukan semua tindakan yang ditunjukkan dengan benar, maka prosesnya akan berhasil.

Firmware dengan Pemulihan ClockworkMod

ClockworkMod Recovery (atau disingkat CWM) adalah sistem pemulihan yang digunakan sebagai pengganti pemulihan pabrik asli. CWM memungkinkan Anda untuk menginstal firmware baru pada perangkat seluler, mem-flash kernel, mencadangkan file, dan memulihkan shell. Sistem seperti itu dapat bekerja dengan file pembaruan firmware dalam format zip. ClockworkMod diinstal, menggantikan Pemulihan pabrik. Untuk meluncurkan CWM, Anda perlu mengetahui kombinasi tombol yang sesuai dengan gadget Anda. Dalam kebanyakan kasus, ini adalah kombinasi tombol volume turun dan daya hidup yang harus ditekan saat perangkat melakukan booting.

Untuk mem-flash kernel, unduh arsip dengan ekstensi zip. Itu harus berisi folder META-INF. Lalu ada dua pilihan. Dalam kasus pertama, Anda perlu menentukan file firmware. Opsi kedua melibatkan menempatkan file firmware di folder / sdcard. Setelah itu, Anda harus mengaktifkan Pemulihan ClockworkMod, temukan fungsi Terapkan pembaruan dari sdcard di sana dan tentukan file yang diperlukan.

Perlu dicatat bahwa menu Pemulihan ClockworkMod nyaman dan dapat dimengerti oleh sebagian besar pengguna. Selain sistem pemulihan seperti itu untuk firmware, Anda dapat menggunakan Pemulihan TWRP. Alat ini nyaman dan populer di kalangan pengguna Android. Hal utama adalah memilih file firmware yang benar.

Firmware kernel Android adalah prosedur yang tidak kami sarankan untuk digunakan jika Anda benar-benar puas dengan pekerjaan gadget. Tindakan tersebut didorong oleh keinginan untuk meningkatkan kinerja ponsel atau tablet. Pengguna tingkat lanjut mendapatkan kemampuan untuk mengatur parameter pada tingkat yang lebih rendah. Tetapi tanpa pengetahuan dan alasan obyektif tertentu, lebih baik tidak mengubah bagian perangkat lunak dari perangkat seluler, karena ini terkait dengan risiko dan kegagalan dalam pengoperasiannya.

"Dan aku... mencuci karburator!"
Candaan

pengantar

Di taman kanak-kanak, kami dengan orang-orang yang berpikiran sama membedah belalang dengan harapan dapat memahami struktur mereka. Di sekolah, penerima radio "Rusia" disolder. Di institut, giliran datang ke mobil, yang murnya berulang kali diatur ulang. Minat telah berubah, tetapi keinginan untuk "membongkar" terkadang muncul, dan hari ini diarahkan ke Android.

Berapa kali Anda diselamatkan oleh ketersediaan sumber Android? Saya - tidak lagi dihitung. Android adalah proyek open source, tetapi sayangnya kami hanya memiliki kemampuan untuk membaca; hampir tidak mungkin untuk mengedit kode Android tanpa menjadi karyawan Google. Mari bersedih tentang momen ini dan unduh repositori. Cara melakukan ini dijelaskan dengan sempurna di situs web resmi.


Arsitektur umum

Secara skematis arsitektur Android dapat digambarkan sebagai berikut:

Komputer desktop dan laptop memiliki sistem mode energi yang mapan (prosesor x86 memiliki beberapa): komputer berjalan "dengan kecepatan penuh" saat sesuatu selesai, dan beralih ke mode hemat energi saat sistem dalam keadaan diam. Masuk ke mode "tidur" terjadi baik setelah periode tidak aktif yang cukup lama, atau secara manual, misalnya, saat menutup penutup laptop.

Mekanisme yang berbeda diperlukan pada telepon: keadaan utama sistem adalah "hibernasi", jalan keluar darinya hanya dilakukan jika diperlukan. Dengan demikian, sistem dapat tertidur, meskipun beberapa aplikasi aktif. Di Android, mekanisme wakelock diimplementasikan: jika aplikasi (atau driver) melakukan sesuatu yang penting yang harus mencapai kesimpulan logisnya, itu "menangkap" wakelock, mencegah perangkat tertidur.

Upaya untuk mem-port mekanisme wakelock ke kernel telah mendapat perlawanan dari banyak pengembang. Pemrogram Android memecahkan masalah tertentu, yang solusinya adalah mekanisme tertentu. Kondisi masalahnya sangat sempit. Platform target adalah ARM, jadi fitur-fiturnya digunakan: prosesor ARM awalnya mengasumsikan perubahan yang sering terjadi dalam mode operasi "tidur" dan "bangun", berbeda dengan x86. Di Android, aplikasi berkomunikasi dengan sistem manajemen daya melalui PowerManager, tetapi apa yang harus dilakukan aplikasi klien Linux?

Pengembang Android bahkan tidak mencoba menemukan solusi umum "untuk masa depan", yang kemudian akan digabungkan ke dalam kernel utama tanpa masalah, mereka tidak berkonsultasi dengan komunitas kernel Linux tentang masalah ini. Bisakah Anda menyalahkan mereka untuk ini? Terlepas dari semua masalah dan diskusi, seperti yang disebutkan di atas, API dengan fungsi autosleep yang identik muncul di inti.

Pemrogram aplikasi untuk Android jarang harus berurusan dengan wakelock, karena platform dan driver memproses kewajiban yang diberikan kepada mereka, dengan mempertimbangkan mode "tidur". Namun demikian, PowerManager yang sudah dikenal akan membantu untuk campur tangan dalam proses ini. Omong-omong, penulis hanya memikirkan satu skenario: untuk mencegah ponsel tertidur saat memulai layanan dari BroadcastReceiver, yang diselesaikan oleh kelas tambahan dari Pustaka Dukungan Android WakefulBroadcastReceiver.

Pembunuh memori rendah

Kernel Linux standar memiliki Out of Memory Killer, yang, berdasarkan parameter badness, menentukan proses yang akan dimatikan:

Badness_for_task = total_vm_for_task / (sqrt (cpu_time_in_seconds) *
sqrt (sqrt (cpu_time_in_minutes)))

Dengan demikian, semakin banyak proses yang menghabiskan memori dan semakin sedikit hidupnya, semakin kurang beruntungnya.

Diagram menunjukkan sistem pencatatan Android secara umum. Driver log menyediakan akses ke setiap buffer melalui / dev / log / *. Aplikasi tidak mengaksesnya secara langsung, tetapi melalui perpustakaan liblog. Kelas Log, Slog, dan EventLog berkomunikasi dengan perpustakaan liblog. Perintah adb logcat menunjukkan isi buffer "utama".

Kesimpulan

Dalam posting ini, kami mengulas secara singkat beberapa fitur Android sebagai sistem Linux. Beberapa bagian lain (pmem, konsol RAM, dll.), serta aspek penting dari platform secara keseluruhan, seperti Layanan Sistem, proses memulai sistem, dan lainnya, tetap berada di luar tanda kurung. Jika topik ini menarik, kami akan mempertimbangkannya di artikel berikut.

Kami telah menulis tentang firmware khusus, aplikasi root, dan menu boot alternatif. Semua ini adalah topik standar di komunitas peretas Android, namun, selain semua hal di atas, ada juga yang disebut "kernel khusus", yang dapat memberikan kemungkinan yang hampir tak terbatas untuk mengontrol ponsel cerdas dan perangkat kerasnya pada tingkat terendah. tingkat. Pada artikel ini saya akan memberi tahu Anda apa itu, mengapa Anda membutuhkannya dan bagaimana memilih kernel khusus yang tepat.

Kernel khusus?

Apa itu kernel khusus? Seperti yang kita semua tahu, Android adalah kue yang terdiri dari tiga lapisan dasar: kernel Linux, satu set perpustakaan dan layanan tingkat rendah, dan mesin virtual Dalvik, yang di atasnya menjalankan shell grafis, alat tingkat tinggi dan layanan, serta hampir semua aplikasi yang diinstal dari pasar. Pembuat sebagian besar firmware kustom alternatif biasanya hanya bekerja dengan dua lapisan teratas, menambahkan fungsi ke cangkang grafis (misalnya, tombol di tirai), mengubahnya (mesin tema di CyanogenMod), serta menambahkan layanan sistem baru ( equalizer di CyanogenMod) dan mengoptimalkan yang sudah ada.

Pembuat firmware populer juga, sejauh mungkin, membuat perubahan pada kernel Linux: mereka mengoptimalkan (membangun dengan flag pengoptimalan kompiler yang lebih agresif), menyertakan fungsionalitas baru (misalnya, dukungan untuk bola Windows), dan juga membuat perubahan lain , seperti kemampuan untuk menaikkan frekuensi prosesor lebih tinggi dari yang disediakan oleh pabrikan ... Seringkali, semua ini tetap berada di belakang layar, dan banyak pengguna firmware khusus bahkan tidak menyadari kemampuan ini, terutama karena CyanogenMod yang sama hadir dengan kernel khusus hanya untuk rentang perangkat terbatas yang keduanya merupakan kode sumber dari kernel asli. dan kemungkinan untuk menggantinya tersedia. Misalnya, hampir semua firmware CyanogenMod untuk ponsel cerdas Motorola menggunakan kernel standar - tidak mungkin untuk menggantinya dengan milik Anda sendiri karena perlindungan bootloader yang tidak dapat ditembus.

Namun, kernel di smartphone dengan bootloader yang tidak terkunci dapat diganti secara terpisah dari firmware utama. Dan itu tidak mudah untuk diganti, tetapi untuk menginstal kernel dengan sejumlah besar fungsi berbeda yang memerlukan pengetahuan teknis tertentu untuk mengelola, dan oleh karena itu biasanya tidak dibangun ke dalam kernel firmware populer, seperti CyanogenMod, AOKP dan MIUI. Di antara fitur-fitur ini, Anda dapat menemukan dukungan untuk frekuensi prosesor tinggi, kontrol gamma layar, mode hemat daya, pengelola daya yang sangat efisien, dan sejumlah besar fitur lainnya.

Pada artikel ini, kita akan berbicara tentang apa yang ditawarkan oleh pembuat kernel kustom, pertimbangkan kernel kustom utama untuk berbagai perangkat, dan juga mencoba menginstal kernel terlepas dari firmware utama dan memeriksa semuanya di kulit kita sendiri. Jadi apa yang biasanya disarankan oleh pengembang kernel alternatif?

Pengontrol lalu lintas pintar

SoC OMAP35XX yang digunakan di Galaxy S II dan Galaxy Nexus, misalnya, memiliki fungsi SmartReflex yang berfungsi sebagai sistem cerdas untuk menyesuaikan voltase saat beban prosesor berubah. Bahkan, ini menghilangkan kebutuhan untuk menyetel tegangan oleh pengguna.


Optimasi

Seringkali tujuan utama membangun kernel khusus adalah untuk mengoptimalkan kinerja. Biasanya, vendor teknologi seluler berusaha menjaga keseimbangan antara kinerja dan stabilitas, sehingga bahkan teknik pengoptimalan yang baik yang dapat meningkatkan kecepatan perangkat secara signifikan dapat ditolak oleh produsen hanya dengan alasan bahwa setelah menggunakannya, beberapa aplikasi mulai mogok. setiap peluncuran kesepuluh. Tentu saja, penggemar tidak malu dengan hal-hal sepele seperti itu, dan banyak dari mereka siap untuk menerapkan opsi kompiler apa pun, algoritme hemat daya ke kernel rakitan mereka sendiri, dan meningkatkan frekuensi prosesor setinggi yang dapat ditangani perangkat. Di antara semua teknik optimasi, empat yang paling umum:



Jenis optimasi lain: mengubah penjadwal I / O standar. Situasi di bidang ini bahkan lebih menarik, karena alih-alih memahami cara kerja penjadwal, beberapa pembuat kernel hanya membaca dokumen pada penjadwal I / O untuk Linux di Web dan menarik kesimpulan. Pendekatan ini bahkan lebih umum di kalangan pengguna. Faktanya, hampir semua penjadwal Linux yang paling kuat dan cerdas sama sekali tidak cocok untuk Android: mereka dirancang untuk digunakan dengan penyimpanan data mekanis, di mana kecepatan akses data bervariasi tergantung pada posisi kepala. Penjadwal menggunakan skema yang berbeda untuk menggabungkan kueri tergantung pada lokasi fisik data, sehingga kueri ke data yang dekat dengan posisi kepala saat ini akan menerima prioritas yang lebih tinggi. Ini sama sekali tidak logis dalam kasus memori solid-state, yang menjamin kecepatan akses yang sama ke semua sel. Perencana tingkat lanjut akan melakukan lebih banyak kerusakan daripada kebaikan pada smartphone, dan yang paling kikuk dan primitif akan menunjukkan hasil terbaik. Linux memiliki tiga penjadwal seperti itu:

  • Noop (Tidak ada operasi)- yang disebut non-penjadwal. Antrian permintaan FIFO sederhana, permintaan pertama akan diproses terlebih dahulu, kedua kedua, dan seterusnya. Sangat cocok untuk memori solid-state dan memungkinkan Anda untuk cukup memprioritaskan aplikasi untuk akses ke drive. Nilai tambah tambahan: beban prosesor rendah karena prinsip pengoperasian yang sangat sederhana. Kerugian: tidak ada pertimbangan spesifik dari operasi perangkat, yang dapat menyebabkan kegagalan kinerja.
  • SIO (I/O Sederhana)- analog dari penjadwal Tenggat waktu tanpa memperhitungkan kedekatan sektor satu sama lain, yaitu, dirancang khusus untuk memori solid-state. Ada dua fitur utama: prioritas operasi baca di atas operasi tulis dan pengelompokan operasi berdasarkan proses dengan alokasi sepotong waktu untuk setiap proses untuk melakukan operasi. Di smartphone, di mana kecepatan aplikasi saat ini penting dan prevalensi operasi baca di atas tulis, ini menunjukkan kinerja yang sangat baik. Tersedia dalam Leankernel, inti Matr1x untuk Nexus 4 dan SiyahKernel.
  • BARIS (BACA SAMPAI TULIS)- penjadwal yang dirancang khusus untuk perangkat seluler dan ditambahkan ke kernel hanya beberapa bulan yang lalu. Tantangan utama: memproses permintaan baca terlebih dahulu, tetapi waktu yang adil untuk permintaan tulis juga. Dianggap sebagai penjadwal NAND terbaik saat ini, ini digunakan secara default di Leankernel dan Matr1x.

Patut dikatakan bahwa hampir semua firmware standar dan setengah dari yang khusus masih menggunakan kernel dengan penjadwal CFQ Linux standar, yang, bagaimanapun, tidak terlalu buruk, karena ia tahu cara bekerja dengan benar dengan solid-state drive. Di sisi lain, itu terlalu rumit, menciptakan beban yang lebih besar pada prosesor (dan karenanya baterai) dan tidak memperhitungkan spesifikasi OS seluler. Pilihan populer lainnya adalah Penjadwal Tenggat, yang sebagus SIO tetapi berlebihan. Anda dapat melihat daftar penjadwal yang tersedia menggunakan perintah berikut:

# cat / sys / blok / * / antrian / penjadwal

Untuk mengubah, terapkan yang berikut (di mana baris adalah nama penjadwal):

# untuk i di / sys / block / * / queue / scheduler; lakukan echo baris > $1; selesai

Beberapa pembuat kernel juga menggunakan jenis optimasi I/O yang berbeda. Ini menonaktifkan panggilan sistem fsync, yang digunakan untuk memaksa konten yang diubah dari file terbuka untuk di-flush ke disk. Dipercaya bahwa tanpa fsync, sistem akan lebih jarang mengakses drive dan dengan demikian menghemat waktu CPU dan daya baterai. Pernyataan yang agak kontroversial: fsync tidak terlalu sering digunakan dalam aplikasi dan hanya untuk menyimpan informasi yang sangat penting, tetapi menonaktifkannya dapat menyebabkan hilangnya informasi ini jika terjadi sistem operasi crash atau masalah lain. Kemampuan untuk menonaktifkan fsync tersedia di kernel franco.Kernel dan GLaDOS, dan file / sys / module / sync / parameter / fsync_enabled digunakan untuk kontrol, di mana Anda harus menulis 0 untuk menonaktifkan atau 1 untuk mengaktifkan. Sekali lagi, fitur ini tidak disarankan.

Menambahkan fungsi baru ke inti

Tentu saja, selain pengoptimalan, penyesuaian, dan berbagai sistem manajemen perangkat keras canggih, Anda juga dapat menemukan fungsionalitas yang sama sekali baru di kernel khusus yang tidak ada dalam kernel standar, tetapi dapat berguna bagi pengguna.

Ini terutama berbagai driver dan sistem file. Misalnya, beberapa kernel menyertakan dukungan untuk modul CIFS untuk memasang bola Windows. Modul tersebut ada di kernel Matr1x untuk Nexus S, faux123 untuk Nexus 7, SiyahKernel dan GLaDOS. Dengan sendirinya, itu tidak berguna, tetapi ada beberapa aplikasi di pasar yang memungkinkan Anda untuk menggunakan kemampuannya.

Kegunaan lain adalah penyertaan driver ntfs-3g di kernel (lebih tepatnya, dalam paket dengan kernel, driver itu sendiri berfungsi sebagai aplikasi Linux), yang diperlukan untuk memasang flash drive yang diformat dalam sistem file NTFS. Driver ini tersedia di kernel faux123 dan SiyahKernel. Biasanya diaktifkan secara otomatis, tetapi jika ini tidak terjadi, Anda dapat menggunakan aplikasi StickMount dari pasar.

Banyak kernel juga menyertakan dukungan untuk apa yang disebut teknologi zram, yang memungkinkan Anda untuk memesan sejumlah kecil RAM (biasanya 10%) dan menggunakannya sebagai area swap terkompresi. Akibatnya, ada semacam perluasan jumlah memori, tanpa konsekuensi serius untuk kinerja. Tersedia di Leankernel, diaktifkan dengan Trickster MOD atau perintah zram enable.

Dua fitur menarik terakhir adalah Fast USB charge dan Sweep2wake. Yang pertama tidak lebih dari penyertaan paksa mode "pengisian cepat", bahkan jika smartphone terhubung ke port USB komputer. Mode pengisian cepat tersedia di hampir semua smartphone baru, namun karena keterbatasan teknis, mode ini tidak dapat diaktifkan secara bersamaan dengan akses ke kartu memori. Fungsi pengisian USB Cepat memungkinkan Anda untuk selalu mengaktifkan mode ini, sambil menonaktifkan akses ke drive.

Sweep2wake adalah cara baru untuk membangunkan perangkat, ditemukan oleh penulis Breaked-kernel. Artinya adalah untuk menghidupkan smartphone dengan menggesekkan jari Anda di atas tombol navigasi yang terletak di bawah layar, atau di layar itu sendiri. Ini adalah fitur yang sangat berguna, tetapi sebagai hasil dari pengaktifannya, sensor akan tetap aktif bahkan ketika perangkat sedang tidur, yang dapat menguras baterai secara signifikan.

Overclocking, tegangan dan hemat daya

Overclocking populer tidak hanya di kalangan pemilik komputer stasioner dan laptop, tetapi juga di kalangan penggemar teknologi seluler. Seperti batu arsitektur x86, prosesor dan inti grafis dari teknologi seluler sangat bagus untuk dikejar. Namun, metode overclocking itu sendiri dan langkah-langkah yang diambil untuk menerapkannya agak berbeda di sini. Faktanya adalah bahwa driver standar untuk SoC, yang bertanggung jawab untuk penghematan energi dan mengubah frekuensi prosesor, biasanya dikunci pada frekuensi standar, jadi untuk fine tuning Anda harus menginstal driver alternatif atau kernel khusus.

Hampir semua kernel kustom yang kurang lebih berkualitas tinggi dan populer sudah menyertakan driver yang tidak terkunci, jadi setelah menginstalnya, kemungkinan untuk mengontrol "kekuatan" prosesor diperluas secara signifikan. Biasanya, pembuat kernel kustom melakukan dua hal yang memengaruhi pemilihan frekuensi. Ini adalah perpanjangan dari rentang frekuensi di luar yang ditentukan sebelumnya - Anda dapat mengatur frekuensi prosesor yang lebih tinggi dan yang sangat rendah, yang memungkinkan Anda menghemat baterai dan meningkatkan gradasi frekuensi, misalnya, alih-alih tiga frekuensi yang mungkin, a pilihan enam ditawarkan. Yang kedua adalah penambahan kemampuan untuk mengatur voltase prosesor, sehingga Anda dapat menurunkan voltase prosesor pada frekuensi rendah untuk menghemat daya baterai dan meningkatkan pada frekuensi tinggi untuk meningkatkan stabilitas.

Semua ini dapat dikontrol menggunakan utilitas berbayar terkenal SetCPU atau MOD Trickster gratis. Rekomendasi manajemen sama seperti untuk sistem desktop. Lebih baik mengatur frekuensi prosesor yang lebih rendah ke minimum, tetapi tidak lebih rendah dari 200 MHz (untuk menghindari kelambatan), ambang atas naik secara bertahap dengan menguji stabilitas operasi, ketika turun, disarankan untuk sedikit menaikkan tegangan untuk frekuensi ini. Tidak ada rekomendasi untuk voltase, karena setiap prosesor unik dan nilainya akan berbeda untuk setiap orang.

Selain mengubah frekuensi, assembler sering menambahkan algoritme kontrol hemat daya baru (kontrol otomatis frekuensi prosesor) ke inti, yang, menurut pendapat mereka, dapat menunjukkan hasil yang lebih baik dibandingkan dengan yang standar. Hampir semuanya didasarkan pada algoritma Interaktif yang digunakan secara default di versi baru Android, yang intinya adalah meningkatkan frekuensi prosesor secara tajam ke maksimum jika terjadi peningkatan beban, dan kemudian secara bertahap menguranginya ke minimum . Ini menggantikan algoritma OnDemand yang digunakan sebelumnya, yang dengan mulus menyesuaikan frekuensi di kedua arah secara proporsional dengan beban, dan membuat sistem lebih responsif. Kolektor kernel alternatif menawarkan algoritme berikut untuk menggantikan Interaktif:

  • SmartAssV2- memikirkan kembali algoritma Interaktif dengan fokus pada penghematan baterai. Perbedaan utama adalah tidak menyentak prosesor ke frekuensi tinggi jika terjadi ledakan beban pendek, yang cukup untuk kinerja prosesor yang rendah. Standarnya digunakan di kernel Matr1x.
  • InteraktifX- Algoritme Interaktif yang disetel, fitur utamanya adalah kunci prosesor pada frekuensi minimum yang ditentukan oleh pengguna dan de-energi inti prosesor kedua saat layar dimatikan. Standarnya digunakan di Leankernel.
  • LulzactiveV2 pada dasarnya adalah OnDemand yang diciptakan kembali. Ketika beban pada prosesor melebihi yang ditentukan (secara default 60%), algoritme meningkatkan frekuensi dengan sejumlah divisi (secara default 1), ketika beban berkurang, ia menurunkannya. Yang menarik adalah memungkinkan Anda untuk mengatur parameter kerja secara mandiri, oleh karena itu, sangat cocok untuk geek hard-core.

Secara umum, pengumpul kernel sangat suka membuat algoritme hemat energi baru karena kesederhanaan penerapannya, sehingga Anda dapat menemukan selusin lainnya. Kebanyakan dari mereka adalah terak lengkap, dan ketika memilih penjadwal, Anda harus dipandu oleh aturan: salah satu dari tiga yang dijelaskan di atas, atau Interaktif standar, yang, omong-omong, sangat bagus. Anda dapat membuat pilihan menggunakan Trickster MOD yang sama.

Antarmuka manajemen

Sebagian besar kernel kustom populer menyertakan beberapa mekanisme untuk menyempurnakan berbagai parameter driver, yang paling umum adalah ColorControl, GammaControl, SoundControl, dan TempControl.

Dua antarmuka pertama tersedia hampir di semua tempat, termasuk kernel CyanogenMod, dua antarmuka kedua tersedia di Leankernel dan mungkin yang lain. Dengan satu atau lain cara, semuanya dapat dikontrol dengan MOD Trickster.

Kernel

Inti mana yang harus Anda pilih? Tidak ada jawaban tunggal untuk pertanyaan ini, dan bukan karena "untuk masing-masing miliknya", tetapi karena ada sejumlah besar perangkat Android di dunia dan inti yang berbeda hampir sama banyaknya. Namun, ada beberapa kernel populer yang sedang dikembangkan untuk beberapa perangkat sekaligus. Dengan satu atau lain cara, saya menyebutkan banyak dari mereka dalam perjalanan cerita, di sini saya akan memberikan deskripsi singkat tentang mereka.

  • Leankernel adalah kernel untuk Galaxy Nexus, Nexus 7 dan Galaxy S III. Fokus utama pengembangan adalah pada kesederhanaan dan kecepatan kerja. Algoritme hemat daya: InteractiveX V2, I / O: Penjadwal ROW, semua antarmuka kontrol di atas, dukungan untuk pengisian USB Cepat, Swap dan zram, opsi overclocking CPU dan GPU yang fleksibel. Salah satu kernel terbaik. Dapat dikonfigurasi dengan Trickster MOD.
  • Matr1x (http://goo.gl/FQLBI, goo.gl/ZcyvA) - Kernel untuk Nexus S dan Nexus 4. Kernel sederhana dan tidak kelebihan beban. Mendukung overclocking CPU dan GPU, GammaControl, Fast USB Charge, Sweep2wake, I/O scheduler: SIO, ROW dan FIOPS. Tweak kinerja. Dapat dikonfigurasi dengan Trickster MOD.
  • Bricked-Kernel (http://goo.gl/kd5F4, goo.gl/eZkAV) - kernel sederhana dan tidak kelebihan beban untuk Nexus 4 dan HTC One X. Pengoptimalan untuk Snapdragon S4 dan NVIDIA Tegra 3, mode hemat daya yang didesain ulang untuk Tegra 3, kemampuan overclocking, algoritma hemat daya: disetel oleh OnDemand (Interaktif juga tersedia).
  • SiyahKernel adalah inti untuk Galaxy S II dan S III. Opsi overclocking yang fleksibel, kalibrasi baterai otomatis, driver layar sentuh yang ditingkatkan, algoritme hemat daya: smartassV2 dan lulzactiveV2, penjadwal I / O: noop, tenggat waktu, CFQ, BFQV3r2 (default), V (R), SIO. Driver CIFS dan NTFS (pemasangan otomatis). Dapat dikonfigurasi menggunakan ExTweaks.
  • franco.Kernel adalah kernel untuk Nexus S, Galaxy Nexus, Nexus 4, Nexus 7, Nexus 10, Galaxy S III, Galaxy Note, Optimus One dan One X.

Kemampuan kernel sangat bervariasi dari perangkat ke perangkat, jadi Anda harus melihat detailnya di tempat. Namun demikian, dengan mem-flash kernel ini, Anda akan mendapatkan overclocking, penyetelan driver, kinerja yang sangat baik, serta dukungan untuk berbagai algoritma dan penjadwal hemat energi. Faktanya, kernel mencakup hampir semua tweak yang dijelaskan dalam artikel. Dianggap sebagai salah satu kernel terbaik yang tersedia. Ada aplikasi untuk update otomatis franko.Kernel Updater. Itu dapat dikonfigurasi menggunakan Trickster MOD.

Bagaimana cara meng-install?

Semua kernel didistribusikan dalam arsip ZIP Android standar, yang harus di-flash melalui konsol pemulihan dengan cara yang sama seperti firmware alternatif. Sebagai aturan, kernel kompatibel dengan firmware apa pun, oleh karena itu, setelah memilih kernel yang diperlukan, Anda dapat menginstalnya dengan aman. Satu-satunya hal yang harus diwaspadai adalah versi Android yang kompatibel dengan kernel. Itu bisa cocok dengan semua versi Android yang tersedia untuk perangkat, atau bekerja dengan hanya satu (pengembang biasanya mengatakan ini secara eksplisit). Sebelum mem-flash, pastikan untuk membuat cadangan firmware saat ini menggunakan konsol pemulihan yang sama. Jika terjadi kesalahan, Anda selalu dapat memutar kembali.

kesimpulan

Seperti yang Anda lihat, kernel kustom memiliki banyak keunggulan dibandingkan kernel yang digunakan dalam firmware standar atau pihak ketiga. Dan yang lebih penting, Anda tidak perlu mengetahui semua seluk-beluk Android untuk menggunakannya, Anda hanya perlu mengunduh dan menginstal arsip ZIP.

Baru-baru ini, kernel versi baru telah dirilis cukup sering. Rilis stabil dirilis setiap beberapa bulan. Dan kandidat rilis yang tidak stabil keluar lebih sering. Linus Torvalds dan banyak pengembang di seluruh dunia terus bekerja untuk meningkatkan kernel baru dan menambahkan lebih banyak fungsi ke dalamnya.

Dengan setiap rilis baru, kernel Linux menambahkan dukungan untuk beberapa perangkat baru, seperti prosesor baru, kartu video, atau bahkan layar sentuh. Baru-baru ini, dukungan untuk perangkat keras baru telah meningkat secara dramatis. Juga, sistem file baru termasuk dalam kernel, tumpukan jaringan ditingkatkan, kesalahan dan bug diperbaiki.

Jika Anda memerlukan informasi lebih rinci tentang perubahan pada versi kernel tertentu, lihat Changelog-nya di kernel.org, dan dalam artikel ini kita akan melihat memperbarui kernel Linux ke versi terbaru. Saya akan mencoba untuk tidak mengikat instruksi ke versi kernel tertentu, kernel baru cukup sering dirilis dan itu akan relevan untuk masing-masing kernel.

Pertimbangkan untuk memperbarui kernel Ubuntu dan CentOS. Pertama, mari kita lihat cara memutakhirkan kernel di Ubuntu 16.04.

Mari kita lihat kernel mana yang telah Anda instal. Untuk melakukan ini, buka terminal dan jalankan:

Sebagai contoh, saya saat ini memiliki versi 4.3 dan dapat meningkatkan ke versi terbaru. Pengembang Ubuntu telah memastikan bahwa penggunanya tidak membangun kernel secara manual dan membuat paket deb dari versi kernel baru. Mereka dapat diunduh dari situs web resmi Canonical.

Saya dapat membuat daftar perintah wget untuk mengunduh di sini jika versi kernel diketahui, tetapi dalam kasus kami akan lebih baik menggunakan browser. Buka http://kernel.ubuntu.com/~kernel-ppa/mainline/. Di sinilah semua kernel yang dikompilasi oleh tim Ubuntu berada. Kernel dibuat untuk distribusi tertentu, dengan nama kode distribusi, serta yang umum. Selain itu, kernel dari Ubuntu 16.10 kemungkinan besar akan bekerja di 16.04, tetapi dari 9.04 di Ubuntu 16.04, Anda tidak boleh menginstal kernel.

Gulir ke bawah, di sinilah versi kernel yang lebih baru:

Selain itu, di bagian paling atas ada folder daily / current, yang berisi kernel terbaru setiap malam. Pilih versi kernel yang benar dan unduh dua file linux-header dan linux-image untuk arsitektur Anda:

Setelah unduhan selesai, Anda dapat melanjutkan ke instalasi. Untuk melakukan ini, lakukan hal berikut di terminal:

Buka folder dengan paket instalasi, misalnya ~ / Unduhan:

Jalankan instalasi:

Jika perintah ini tidak berhasil, Anda dapat pergi ke arah lain. Instal utilitas gdebi:

sudo apt-get install gdebi

Kemudian gunakan untuk menginstal kernel:

sudo gdebi linux-headers * .deb linux-image - *.deb

Kernel diinstal, tetap memperbarui bootloader:

sudo update-grub

Sekarang Anda dapat me-restart komputer Anda dan melihat apa yang terjadi. Setelah reboot, pastikan pembaruan kernel Linux ke versi terbaru berhasil:

Seperti yang Anda lihat, kernel telah berhasil diinstal dan berfungsi. Tetapi jangan terburu-buru untuk menghapus versi kernel yang lama, disarankan untuk memiliki beberapa versi kernel di sistem sehingga jika terjadi masalah Anda dapat mem-boot dari versi kerja yang lama.

Pembaruan kernel Linux otomatis di Ubuntu

Di atas, kami membahas cara menginstal versi kernel yang diperlukan secara manual. Ubuntu dulu memiliki PPA untuk pembuatan kernel harian, tetapi sekarang sudah ditutup. Oleh karena itu, Anda dapat memperbarui kernel hanya dengan mengunduh paket deb dan menginstalnya. Tetapi semua ini dapat disederhanakan dengan skrip khusus.

Instal skrip:

cd / tmp
$ git clone git: //github.com/GM-Script-Writer-62850/Ubuntu-Mainline-Kernel-Updater
$ bash Ubuntu-Mainline-Kernel-Updater / install

Memeriksa pembaruan:

KernelUpdateChecker -r yakkety

Opsi -r memungkinkan Anda untuk menentukan cabang distribusi yang ingin Anda cari kernelnya. Untuk xenial, kernel tidak lagi dibuat, tetapi kernel dari versi berikutnya akan bekerja dengan baik di sini. Selain itu, opsi -no-rc dapat memberi tahu utilitas untuk tidak menggunakan kandidat rilis, dan opsi -v menentukan versi kernel yang akan diinstal. Jika Anda tidak peduli dengan distribusi kernel mana, selama yang terbaru, gunakan opsi --any-release. Script akan menghasilkan hasil sebagai berikut:

Sebelum menginstal kernel, Anda dapat melihat detailnya dengan membuka file /tmp/kernel-update:

Di sini kita dapat melihat bahwa pencarian dilakukan untuk yakkety, dan versi kernel 4.7-rc6 saat ini tersedia. Kita dapat menginstal:

sudo / tmp / pembaruan kernel

Script akan menunjukkan kepada kita versi kernel saat ini, serta versi kernel yang akan diinstal, tanggal pembuatannya, dan detail lainnya. Anda juga akan ditanya apakah Anda perlu menyimpan log perubahan. Selanjutnya adalah instalasi:

Kernel lama, kalau-kalau jangan hapus (n):

Selesai, update kernel ke versi terbaru selesai, sekarang restart komputer Anda (y):

Periksa apakah pembaruan kernel Ubuntu benar-benar berfungsi:

Selain itu, skrip telah ditambahkan ke startup dan sekarang akan memeriksa pembaruan secara otomatis 60 detik setelah masuk. Pintasan pemuatan otomatis ada di file:

vi ~ / .config / autostart / KernelUpdate.desktop

Anda dapat mengubahnya sesuai kebutuhan atau menghapusnya. Jika Anda ingin menghapus skrip sepenuhnya dari sistem, jalankan:

rm ~ / .config / autostart / KernelUpdate.desktop
$ sudo rm / usr / local / bin / KernelUpdate (Pemeriksa, ScriptGenerator)

Tidak mengunduh

Jika ada kesalahan yang terjadi selama instalasi, atau kernel tidak diperbarui dengan benar dan sistem sekarang tidak bisa boot dengan kernel baru, Anda dapat menggunakan kernel lama. Juga, sistem mungkin tidak memulai jika Anda menggunakan driver berpemilik untuk kartu video NVIDIA, dalam hal ini jangan buru-buru mengunduh versi kernel terbaru, gunakan hanya kernel yang stabil, sebagai aturan, dukungan untuk modul ini telah ditambahkan ke mereka.

Dan untuk memulihkan sistem, pilih item Opsi lanjutan untuk Ubuntu di menu Grub:

Dan mulai menjalankan kernel sebelumnya:

Setelah boot, tetap menghapus kernel yang salah diinstal dan memperbarui Grub lagi, mengganti versi kernel yang diperlukan, bukan 4.7:

sudo apt menghapus linux-header-4.7 * linux-image-4.7 *

sudo update-grub

Sistem Anda sekarang kembali ke keadaan sebelumnya. Anda dapat mencoba menginstal versi kernel yang lebih lama atau coba lagi.

Memutakhirkan Kernel Linux ke 4.4 di CentOS

Sekarang mari kita lihat cara memperbarui kernel Linux terbaru di CentOS. Instruksi telah diuji pada CentOS 7, tetapi kemungkinan besar akan bekerja pada RedHat 7, Fedora dan distribusi serupa lainnya.

Sebagai aturan, kernel baru tidak termasuk dalam repositori CentOS resmi, jadi untuk mendapatkan versi stabil terbaru, kita perlu menambahkan repositori ELRepo. Ini adalah gudang Paket Enterprise Linux dan juga didukung oleh RedHat dan Fedora.

Ikuti langkah-langkah ini untuk menambahkan repositori:

Pertama, Anda perlu mengimpor kunci:

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

Tambahkan repositori dan komponen yang diperlukan ke RHEL / Scientific Linux / CentOS-7:

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum install yum-plugin-cermin tercepat

Fedora 22 dan yang lebih baru: