3.10 65 versi kernel. Memutakhirkan kernel Linux ke versi baru

"Dan aku ... mencuci karburator!"
Candaan

pengantar

Di taman kanak-kanak, orang-orang yang berpikiran sama dan saya membedah belalang dengan harapan dapat memahami struktur mereka. Penerima radio "Rusia" disolder di sekolah. Di institut, giliran 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 kehadiran sumber Android? Aku sudah tidak bisa dihitung lagi. Android - proyek terbuka, tapi sayangnya kita hanya memiliki kemampuan membaca; mengedit kode Android tanpa menjadi karyawan Google hampir tidak mungkin. Mari berkabung saat ini dan unduh repositori. Cara melakukan ini dijelaskan dengan sempurna di official .


Arsitektur umum

Secara skematis arsitektur Android dapat digambarkan sebagai berikut:

Komputer desktop dan laptop memiliki sistem mode daya yang mapan (prosesor x86 memiliki beberapa di antaranya): komputer berjalan "dengan kecepatan penuh" ketika sesuatu sedang dilakukan, dan beralih ke mode hemat daya 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.

Pada ponsel, mekanisme yang berbeda diperlukan: status utama sistem adalah "hibernasi", keluar darinya hanya dilakukan jika diperlukan. Dengan demikian, sistem dapat tidur 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 menyebabkan penolakan dari banyak pengembang. Pemrogram Android memecahkan masalah tertentu, yang solusinya adalah mekanisme tertentu. Kondisi tugas sangat sempit. Platform target adalah ARM, jadi fitur-fiturnya digunakan: Prosesor ARM pada awalnya mengasumsikan perubahan yang sering terjadi dalam mode tidur dan bangun, tidak seperti x86. Di Android, aplikasi berkomunikasi dengan sistem manajemen daya melalui PowerManager, tetapi bagaimana dengan aplikasi klien Linux?

Pengembang Android bahkan tidak mencoba untuk menemukan keputusan bersama"untuk masa depan", yang kemudian akan mengalir ke kernel utama tanpa masalah, tidak berkonsultasi dengan komunitas kernel Linux tentang masalah ini. Bisakah mereka disalahkan untuk ini? Terlepas dari semua masalah dan diskusi, seperti yang disebutkan di atas, API muncul di inti dengan fungsionalitas autosleep yang identik.

Pemrogram aplikasi Android jarang harus berurusan dengan wakelock, karena platform dan driver menangani kewajiban yang diberikan kepada mereka, dengan mempertimbangkan mode "tidur". Namun, PowerManager yang sudah dikenal akan membantu campur tangan dalam proses ini. Omong-omong, penulis hanya membuat satu skenario: agar ponsel tidak tertidur ketika layanan dimulai 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)))

Jadi, semakin banyak memori yang dikonsumsi proses dan semakin sedikit hidupnya, semakin kurang beruntungnya.

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

Kesimpulan

Dalam catatan ini, kami meninjau secara singkat beberapa fitur Android sebagai sistem Linux. Beberapa bagian lain tidak dimasukkan dalam kurung (pmem, konsol RAM, dll.), serta aspek penting dari platform secara keseluruhan, seperti Layanan Sistem, proses startup sistem, dan lain-lain. Jika topik ini menarik, kami akan mempertimbangkannya di artikel berikut.

Minggu malam Linus Torvalds, induk 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 inovasi selama beberapa tahun terakhir.

Linus mengakui bahwa pada awalnya dia bermaksud untuk melepaskan kandidat rilis lain, tetapi setelah beberapa pemikiran, dia segera melepaskan rilis final di nomor 3.10. Torvalds juga mencatat dalam pesannya bahwa kernel baru, seperti versi 3.9, sepenuhnya 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 besar yang dibuat di kernel 3.10:

  • Sekarang dimungkinkan untuk mencegah skrip dieksekusi sebagai program - fungsionalitas untuk menjalankan skrip yang berisi jalur ke juru bahasa di header "#!" sekarang dapat dikompilasi sebagai modul kernel;
  • Sistem Bcache yang dikembangkan dan digunakan oleh Google terintegrasi. Bcache memungkinkan Anda untuk men-cache akses ke hard drive lambat pada drive SSD cepat; caching dilakukan pada tingkat perangkat blok - dan ini memungkinkan Anda untuk mempercepat akses ke drive, terlepas dari sistem file yang digunakan pada perangkat;
  • Kernel dapat dikompilasi dengan compiler Clang berkat patch yang disiapkan oleh proyek LLVMLinux;
  • Sebuah sistem kontrol dinamis untuk generasi interupsi 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. Saat ini fitur ini digunakan untuk sistem waktu nyata dan HPC (komputasi kinerja tinggi), tetapi di rilis kernel mendatang fitur ini juga akan diaktifkan untuk sistem desktop;
  • Sekarang dimungkinkan untuk menghasilkan suatu peristiwa yang memberi tahu aplikasi tentang mendekati kehabisan memori yang tersedia untuk proses/sistem (dalam cgroups);
  • Profil akses memori telah tersedia untuk perintah perf;
  • Menambahkan dukungan untuk protokol RDMA (iSER) ke subsistem iSCSI;
  • Ada driver "sinkronisasi" baru (percobaan). Ini dikembangkan dalam kerangka platform Android dan digunakan untuk sinkronisasi antara driver lain;
  • Driver kartu grafis virtual QXL telah terintegrasi (digunakan dalam sistem virtualisasi untuk penarikan cepat grafik menggunakan protokol SPICE);
  • Fitur manajemen daya baru yang diperkenalkan dengan prosesor AMD 16h (Jaguar) kini didukung;
  • Dukungan untuk decoding video yang dipercepat menggunakan dekoder UVD perangkat keras yang dibangun ke dalam GPU AMD modern telah ditambahkan ke Radeon DRM;
  • Driver untuk adaptor video virtual Microsoft Hyper-V telah muncul (ada juga peningkatan dalam pengoperasian Hyper-V secara keseluruhan);
  • 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 cara flash kernel sistem operasi android. Di satu sisi, tindakan seperti itu dapat dengan mudah dilakukan dengan tablet atau ponsel cerdas Anda. Ribuan pengguna telah berhasil mem-flash kernel tanpa kesulitan atau masalah. Namun, di sisi lain, kesalahan apa pun selama proses ini dapat menyebabkan, di antaranya kegagalan gadget dan kebutuhan akan biaya yang mahal. layanan purna jual. Pada tahap yang berbeda ada risiko memilih tidak versi yang benar firmware kernel yang dibuat oleh pengembang yang tidak terampil 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.

Kernel sistem operasi Android dan firmware-nya

Apa inti dari perangkat seluler?

Kernel sistem operasi adalah dasarnya perangkat lunak, yang mengontrol perangkat keras perangkat. Parameter utama gadget apa pun bergantung padanya. Perlu dicatat bahwa itu terdiri dari tiga komponen yang saling terkait - kernel Linux, mesin vertikal Dalvik 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 yang dikembangkan oleh tim spesialis di bawah perangkat tertentu. Kernel kustom didasarkan pada kernel Linux, yang mewakili versi tidak resminya. Seringkali kernel khusus dilengkapi 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.

Mem-flash kernel Android terutama dilakukan untuk meningkatkan waktu pengoperasian perangkat beberapa jam dengan menyesuaikan parameter konsumsi daya. Mungkin inilah alasan utama mengapa pengguna melakukan transformasi kompleks perangkat lunak gadget mereka. Firmware juga akan memungkinkan Anda untuk mengubah chip video tanpa konsekuensi untuk ponsel cerdas atau tablet Anda. Pengguna tingkat lanjut dengan demikian menyesuaikan layar, mengubah reproduksi warna, sensitivitas. Firmware kernel memungkinkan Anda meningkatkan suara perangkat, memperbarui driver, dan menerapkan dukungan untuk gadget eksternal non-standar.

Sebelum menginstal kernel, kami menyarankan Anda untuk memastikan bahwa Anda telah memilih versi yang tepat, yang dibuat oleh pengembang berpengalaman. Selain itu, penting untuk memastikan bahwa itu sesuai 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 selama firmware atau pengoperasian perangkat lebih lanjut.

Firmware gadget melalui Fastboot

Anda dapat mem-flash perangkat Android Anda menggunakan Fastboot. Tetapi pertama-tama Anda perlu menginstal utilitas di gadget Anda. Ada dua versi dari program ini. Yang pertama melibatkan mengunduh Fastboot dalam kombinasi dengan yang resmi program android SDK. 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 berjalan pada operasi Sistem Windows, utilitas fastboot dan menghubungkan smartphone, Anda perlu membuka baris perintah. Untuk melakukan ini, buka Pencarian. Di Windows 8, yang perlu Anda lakukan hanyalah mengarahkan 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 firmware kernel boot.img yang benar. Kami tidak menyarankan untuk menginstal kernel firmware asli, karena ini dapat menyebabkan masalah dengan pengoperasian ponsel cerdas. File harus disimpan ke partisi yang telah dibuat sebelumnya di drive C yang disebut "Android". Setelah itu, Anda perlu mem-boot 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 - fastboot reboot me-reboot perangkat dari mode firmware ke normal. Jika Anda telah melakukan semua langkah ini dengan benar, maka prosesnya akan berhasil.

Firmware menggunakan Pemulihan ClockworkMod

ClockworkMod Recovery (atau disingkat CWM) adalah sistem pemulihan yang digunakan sebagai pengganti Pemulihan asli pabrik. CWM memungkinkan Anda menginstal firmware baru di perangkat seluler, mem-flash kernel, membuat cadangan file dan mengembalikan shell. Sistem seperti itu dapat bekerja dengan file pembaruan firmware yang memiliki format zip. ClockworkMod dipasang di , menggantikan Pemulihan pabrik. Untuk meluncurkan CWM, Anda perlu mengetahui kombinasi tombol yang cocok untuk gadget Anda. Dalam kebanyakan kasus, ini adalah kombinasi dari tombol volume turun dan tombol daya hidup, yang harus ditekan selama boot perangkat.

Untuk mem-flash kernel, unduh arsip dengan ekstensi zip. Itu harus berisi folder META-INF. Selanjutnya, ada dua opsi. Dalam kasus pertama, Anda perlu menentukan file firmware. Opsi kedua melibatkan menempatkan file firmware di folder / sdcard. Setelah itu, Anda harus mengaktifkan ClockworkMod Recovery, temukan fungsi Apply update from sdcard disana dan tentukan file yang dibutuhkan.

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.

Mem-flash kernel Android adalah prosedur yang tidak kami sarankan untuk digunakan jika Anda benar-benar puas dengan pengoperasian 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 fungsi dalam pengoperasiannya.

Kami telah menulis tentang firmware khusus, aplikasi root, dan menu boot alternatif lebih dari sekali. Semua ini adalah topik standar di komunitas peretas Android, namun, selain semua hal di atas, ada juga yang namanya "kernel khusus", yang dapat memberikan kemungkinan yang hampir tak terbatas untuk mengelola 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, di atasnya menjalankan shell grafis, alat dan layanan tingkat tinggi, serta hampir semua aplikasi yang diinstal dari pasar. Pembuat sebagian besar firmware kustom alternatif biasanya hanya bekerja dengan dua lapisan teratas, menambahkan fitur ke cangkang grafis (seperti 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 membuat perubahan pada kernel Linux sejauh mungkin: mereka mengoptimalkannya (membangun dengan flag pengoptimalan kompiler yang lebih agresif), memasukkan fungsionalitas baru (misalnya, dukungan untuk berbagi Windows), dan juga membuat perubahan lain, seperti kemampuan untuk menaikkan frekuensi prosesor di atas yang disediakan oleh pabrikan. Seringkali, semua ini tertinggal di belakang layar, dan banyak pengguna firmware kustom bahkan tidak menyadari fitur ini, terutama karena CyanogenMod yang sama hadir dengan kernel kustom hanya untuk perangkat terbatas yang keduanya kode sumber 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 tidak hanya mengganti, tetapi menginstal kernel dengan sejumlah besar fungsi berbeda yang memerlukan pengetahuan teknis tertentu untuk mengelolanya, 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 dapat ditawarkan oleh pembuat kernel kustom, pertimbangkan kernel kustom utama untuk berbagai perangkat, dan juga coba instal kernel terlepas dari firmware utama dan periksa semuanya di kulit kita sendiri. Jadi, apa yang biasanya ditawarkan oleh pengembang kernel alternatif?

pengontrol lalu lintas pintar

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


Optimasi

Seringkali, tujuan utama membangun kernel khusus adalah untuk mengoptimalkan kinerja. Biasanya, vendor teknologi seluler mencoba 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 aplikasi mereka, beberapa aplikasi mulai mogok. setiap peluncuran kesepuluh. Tentu saja, hal-hal sepele seperti itu tidak mengganggu penggemar, dan banyak dari mereka siap untuk menerapkan opsi kompiler apa pun, algoritme hemat daya ke inti rakitan mereka sendiri, dan meningkatkan frekuensi prosesor setinggi yang dapat ditahan perangkat. Di antara semua teknik optimasi, empat adalah yang paling umum:



Jenis pengoptimalan lainnya: mengubah penjadwal I/O default. Situasi di bidang ini bahkan lebih menarik, karena alih-alih memahami cara kerja penjadwal, beberapa pembuat kernel hanya membaca dokumen pada penjadwal I/O Linux di Web dan menarik kesimpulan. Di antara pengguna, pendekatan ini bahkan lebih luas. 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 menggabungkan permintaan berdasarkan posisi fisik data, sehingga permintaan data yang dekat dengan posisi kepala saat ini akan mendapat prioritas 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 lebih berbahaya daripada kebaikan pada ponsel cerdas, 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. Kelebihan tambahan: beban rendah pada prosesor karena sangat prinsip sederhana kerja. Minus: tidak ada pertimbangan spesifikasi perangkat, yang dapat menyebabkan kegagalan kinerja.
  • SIO (I/O Sederhana)- analog penjadwal Tenggat waktu tanpa memperhitungkan kedekatan sektor satu sama lain, yaitu, dirancang khusus untuk memori solid-state. Dua sorotan utama: prioritas operasi baca di atas operasi tulis dan pengelompokan operasi berdasarkan proses dengan alokasi irisan waktu untuk setiap proses untuk melakukan operasi. Di smartphone, di mana kecepatan aplikasi saat ini dan dominasi baca di atas tulis penting, ini menunjukkan kinerja yang sangat baik. Tersedia dalam Leankernel, kernel Matr1x untuk Nexus 4 dan SiyahKernel.
  • BARIS (BACA SAMPAI TULIS) adalah penjadwal yang dirancang khusus untuk perangkat seluler dan ditambahkan ke inti hanya beberapa bulan yang lalu. Tantangan utama: prioritas pemrosesan permintaan baca, tetapi distribusi waktu yang adil untuk permintaan tulis. Dianggap sebagai penjadwal NAND terbaik yang tersedia saat ini, default pada Leankernel dan Matr1x.

Patut dikatakan bahwa hampir semua firmware standar dan setengah dari yang kustom masih menggunakan kernel dengan penjadwal CFQ Linux standar, yang, bagaimanapun, tidak terlalu buruk, karena dapat 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 sama baiknya dengan SIO tetapi berlebihan. Anda dapat melihat daftar penjadwal yang tersedia dengan perintah berikut:

# cat /sys/block/*/queue/scheduler

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

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

Beberapa pembuat kernel juga menggunakan jenis lain dari optimasi terkait I/O. Ini adalah penonaktifan panggilan sistem fsync yang digunakan untuk memaksa flush konten yang diubah. buka file ke disk. Ada pendapat bahwa tanpa fsync, sistem akan lebih jarang mengakses drive dan dengan demikian menghemat waktu prosesor 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 yang sama jika sistem operasi crash atau masalah lain. Kemampuan untuk menonaktifkan fsync tersedia di kernel franco.Kernel dan GLaDOS, dan dikendalikan menggunakan file /sys/module/sync/parameters/fsync_enabled, yang harus ditulis 0 untuk menonaktifkan atau 1 untuk mengaktifkan. Sekali lagi, fitur ini tidak disarankan.

Menambahkan fitur baru ke kernel

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

Pada dasarnya, ini adalah berbagai driver dan sistem file. Misalnya, beberapa kernel menyertakan dukungan untuk modul CIFS, yang memungkinkan Anda memasang share 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.

Hal lain yang bermanfaat 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 memaksakan masuknya mode "pengisian cepat", bahkan jika smartphone terhubung ke port USB komputer. Mode pengisian cepat tersedia di semua smartphone baru, namun karena keterbatasan teknis, mode ini tidak dapat diaktifkan bersamaan dengan mengakses kartu memori. Fitur Fast USB charge memungkinkan Anda untuk selalu mengaktifkan mode ini, sambil menonaktifkan akses ke drive.

Sweep2wake adalah jalan baru bangun perangkat ditemukan oleh penulis Breaked-kernel. Artinya adalah menghidupkan smartphone dengan menggesekkan tombol navigasi yang terletak di bawah layar, atau melintasi layar itu sendiri. Ini adalah fitur yang sangat berguna, tetapi menyalakannya akan membuat sensor tetap aktif bahkan saat perangkat sedang tidur, yang dapat menguras baterai secara nyata.

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 berjalan dengan baik. 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, kemampuan untuk mengontrol "kekuatan" prosesor sangat berkembang. Biasanya, pembuat kernel kustom melakukan dua hal yang memengaruhi pemilihan frekuensi. Ini adalah perpanjangan dari rentang frekuensi di luar yang awalnya ditetapkan - 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, Anda ditawari pilihan enam. Yang kedua adalah penambahan kemampuan untuk menyesuaikan tegangan prosesor, berkat itu Anda dapat mengurangi tegangan prosesor pada frekuensi rendah untuk menghemat daya baterai dan meningkatkannya pada frekuensi tinggi untuk meningkatkan stabilitas.

Semua ini dapat dikontrol menggunakan utilitas terkenal SetCPU atau Trickster MOD 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 batas atas ditingkatkan secara bertahap dengan pengujian stabilitas, ketika turun, disarankan untuk sedikit meningkatkan tegangan untuk yang diberikan frekuensi. Tidak ada rekomendasi voltase, karena setiap prosesor unik dan nilainya akan berbeda untuk semua orang.

Selain mengubah frekuensi, assembler sering menambahkan algoritme kontrol hemat daya baru (kontrol frekuensi prosesor otomatis) ke kernel, yang, menurut pendapat mereka, dapat menunjukkan hasil yang lebih baik daripada 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 algoritme OnDemand yang digunakan sebelumnya, yang dengan mulus menyesuaikan frekuensi di kedua arah secara proporsional dengan beban, dan memungkinkan Anda membuat sistem lebih responsif. Pembuat 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 kinerja prosesornya rendah sudah cukup. 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 selama layar mati. Standarnya digunakan di Leankernel.
  • LulzactiveV2- pada dasarnya adalah OnDemand yang diciptakan kembali. Ketika beban prosesor melebihi yang ditentukan (60% secara default), algoritme menaikkan frekuensi dengan jumlah pembagian tertentu (1 secara default), dan menurunkannya saat beban berkurang. Yang menarik adalah memungkinkan Anda untuk mengatur parameter kerja secara mandiri, oleh karena itu cocok untuk Geeks yang keras.

Secara umum, pembuat kernel sangat suka membuat algoritme hemat daya baru karena kesederhanaan penerapannya, sehingga Anda dapat menemukan sekitar selusin lainnya. Sebagian besar 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 kontrol halus atas berbagai parameter driver, yang paling umum adalah ColorControl, GammaControl, SoundControl, dan TempControl.

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

inti

Inti apa yang harus dipilih? Tidak ada jawaban tunggal untuk pertanyaan ini, dan bukan karena "untuk masing-masing miliknya", tetapi karena ada sejumlah besar perangkat Android di dunia dan kernel yang 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, tetapi di sini saya akan memberikan deskripsi singkat tentang mereka.

  • Leankernel adalah kernel untuk Galaxy Nexus, Nexus 7 dan Galaxy S III. Penekanan utama dalam pengembangan adalah pada kesederhanaan dan kecepatan kerja. Algoritma Penghematan Daya: InteractiveX V2, Penjadwal I/O: ROW, semua antarmuka kontrol di atas, dukungan untuk pengisian USB Cepat, Swap dan zram, overclocking CPU dan GPU yang fleksibel. Satu dari inti terbaik. Dapat disesuaikan dengan Trickster MOD.
  • Matr1x (http://goo.gl/FQLBI , goo.gl/ZcyvA) - Kernel untuk Nexus S dan Nexus 4. Kernel sederhana dan rapi. Dukungan untuk overclocking CPU dan GPU, GammaControl, Pengisian USB Cepat, Sweep2wake, penjadwal I/O: SIO, ROW, dan FIOPS. Tweak kinerja. Dapat disesuaikan dengan Trickster MOD.
  • Bricked-Kernel (http://goo.gl/kd5F4 , goo.gl/eZkAV) adalah kernel sederhana dan rapi untuk Nexus 4 dan HTC One X. Optimalisasi untuk Snapdragon S4 dan NVIDIA Tegra 3, mode hemat daya yang didesain ulang untuk Tegra 3, kemampuan overclocking, algoritme hemat daya: OnDemand yang disetel (Interaktif juga tersedia).
  • SiyahKernel adalah kernel 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 (dengan automount). Dapat dikonfigurasi dengan ExTweaks.
  • franco.Kernel - 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, sehingga detailnya harus dilihat di tempat. Namun, dengan mem-flash kernel ini, Anda akan mendapatkan kemungkinan overclocking, penyetelan driver, kinerja luar biasa, serta dukungan untuk berbagai algoritme dan penjadwal hemat daya. Faktanya, intinya mencakup hampir semua tweak yang dijelaskan dalam artikel. Dianggap sebagai salah satu kernel terbaik yang tersedia. Ada aplikasi untuk pembaruan otomatis pemutakhiran franko.kernel. Anda dapat mengkonfigurasi 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. Biasanya, kernel kompatibel dengan firmware apa pun, oleh karena itu, setelah memilih kernel yang tepat, Anda dapat menginstalnya dengan aman. Satu-satunya hal yang harus Anda perhatikan adalah versi Android yang kompatibel dengan kernel. Keduanya dapat mendekati semua perangkat yang tersedia versi Android, dan bekerja hanya dengan satu (pengembang biasanya secara eksplisit mengatakan ini). Sebelum mem-flash, pastikan untuk mencadangkan 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, cukup unduh dan instal arsip ZIP.

DI DALAM Akhir-akhir ini kernel versi baru cukup sering keluar. Setiap beberapa bulan ada rilis stabil. Nah, 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 versi baru, kernel Linux menambahkan dukungan untuk beberapa perangkat baru, seperti prosesor baru, kartu video, atau bahkan layar sentuh. Akhir-akhir ini, dukungan untuk perangkat keras baru telah meningkat pesat. Juga, sistem file baru disertakan dalam kernel, tumpukan jaringan ditingkatkan, kesalahan dan bug diperbaiki.

Jika Anda memerlukan informasi lebih lanjut 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 memperbarui kernel di Ubuntu 16.04.

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

Sebagai contoh, saat ini saya menggunakan versi 4.3 dan dapat mengupgrade ke versi terbaru. Pengembang Ubuntu telah memastikan bahwa pengguna mereka tidak membangun kernel dengan tangan dan membuat paket deb dari versi kernel baru. Mereka dapat diunduh dari situs web resmi Canonical.

Saya dapat memberikan 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/. Semuanya dikompilasi oleh tim kernel Ubuntu ada di sini. Kernel dibangun baik untuk distribusi tertentu, dengan nama kode distribusi, dan 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 situlah versi kernel yang lebih baru berada:

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

Setelah unduhan selesai, Anda dapat melanjutkan dengan instalasi. Untuk melakukan ini, jalankan yang berikut di terminal:

Arahkan ke folder dengan paket instalasi, misalnya, ~/Downloads:

Jalankan instalasi:

Jika perintah ini tidak berhasil, Anda dapat menggunakan cara 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 berhasil diinstal dan dijalankan. Tapi jangan terburu-buru untuk menghapus versi lama kernel, 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 melihat cara menginstal versi kernel yang diinginkan 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.

Menginstal 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 akan dicari 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 tepat untuk diinstal. Jika Anda tidak peduli untuk distribusi kernel mana, selama itu yang terbaru, gunakan opsi --any-release. Script akan memberikan output berikut:

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

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

sudo /tmp/kernel-update

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, untuk jaga-jaga, jangan hapus (n):

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

Memeriksa apakah pembaruan kernel Ubuntu benar-benar berfungsi:

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

vi ~/.config/autostart/KernelUpdate.desktop

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

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

Tidak mengunduh

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

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

Dan mulai kernel yang berjalan sebelumnya:

Setelah mengunduh, tetap menghapus kernel yang salah diinstal dan memperbarui Grub lagi, mengganti versi kernel yang diinginkan alih-alih 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

Dan sekarang mari kita lihat cara memperbarui kernel Linux versi 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 komersial (Paket Enterprise Linux) dan juga dikelola di RedHat dan Fedora.

Untuk menambahkan repositori, ikuti langkah-langkah berikut:

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

Di Fedora 22 dan di atasnya: