3.6. Penyiapan Perangkat Keras dan Sistem Operasi Pra Instalasi

Bagian ini akan memandu Anda melalui penyiapan perangkat keras pra-instalasi, jika ada, yang perlu Anda lakukan sebelum memasang Debian. Umumnya, ini melibatkan pemeriksaan dan mungkin mengubah pengaturan firmware BIOS/UEFI/sistem untuk sistem Anda. BIOS/UEFI atau firmware sistem adalah perangkat lunak inti yang digunakan oleh perangkat keras; ini paling kritis dipanggil selama proses bootstrap (setelah daya dihidupkan).

3.6.1. Firmware ARM

Seperti yang telah disebutkan sebelumnya, sayangnya tidak ada standar untuk firmware sistem pada sistem ARM. Bahkan perilaku sistem yang berbeda yang menggunakan firmware yang secara nominal sama bisa sangat berbeda. Ini dihasilkan dari fakta bahwa sebagian besar perangkat yang menggunakan arsitektur ARM adalah sistem tertanam (embedded), dimana produsen biasanya membangun versi firmware yang sangat disesuaikan dan menyertakan patch spesifik perangkat. Sayangnya produsen sering tidak mengirimkan perubahan dan ekstensi mereka kembali ke pengembang firmware mainline, sehingga perubahan mereka tidak diintegrasikan ke dalam versi firmware asli yang lebih baru.

Akibatnya bahkan sistem yang baru dijual sering menggunakan firmware yang didasarkan pada versi firmware yang dimodifikasi pabrikan berusia bertahun-tahun yang basis kode mainline-nya telah berkembang lebih jauh sementara itu dan menawarkan fitur tambahan atau menunjukkan perilaku yang berbeda dalam aspek-aspek tertentu. Selain itu, penamaan perangkat onboard tidak konsisten antara versi modifikasi pabrikan yang berbeda dari firmware yang sama, oleh karena itu hampir tidak mungkin untuk memberikan instruksi independen produk yang dapat digunakan untuk sistem berbasis ARM.

3.6.2. Image U-Boot (firmware sistem) yang disediakan Debian

Debian menyediakan image U-Boot untuk berbagai sistem armhf yang dapat memuat U-Boot mereka dari kartu SD di .../images/u-boot/ . Build U-Boot ditawarkan dalam dua format: komponen U-Boot mentah dan image kartu siap pakai yang dapat dengan mudah ditulis ke SD card. Komponen U-Boot mentah disediakan untuk pengguna tingkat lanjut; cara yang umumnya disarankan adalah dengan menggunakan salah satu image SD card yang sudah jadi. Mereka diberi nama <system-type>.sdcard.img.gz dan dapat ditulis ke kartu misalnya dengan

zcat <system-type>.sdcard.img.gz > /dev/SD_CARD_DEVICE

Seperti halnya semua image, perlu diketahui bahwa menulis image ke SD card menghapus semua konten kartu sebelumnya!

Jika Debian menyediakan image U-Boot untuk sistem Anda, disarankan agar Anda menggunakan image ini alih-alih U-Boot yang disediakan vendor, karena versi di Debian biasanya lebih baru dan memiliki lebih banyak fitur.

3.6.3. Mengatur alamat MAC ethernet di U-Boot

Alamat MAC dari setiap antarmuka ethernet biasanya harus unik secara global, dan secara teknis harus unik dalam domain broadcast ethernet-nya. Untuk mencapai hal ini, pabrikan biasanya mengalokasikan satu blok alamat MAC dari kumpulan yang dikelola secara terpusat (yang biayanya harus dibayar) dan mem-prakonfigurasi salah satu alamat ini pada setiap item yang dijual.

Dalam kasus papan pengembangan, kadang-kadang produsen ingin menghindari pembayaran biaya ini dan karena itu tidak memberikan alamat yang unik secara global. Dalam kasus ini pengguna sendiri harus menentukan alamat MAC untuk sistem mereka. Ketika tidak ada alamat MAC yang didefinisikan untuk antarmuka ethernet, beberapa driver jaringan menghasilkan alamat MAC acak yang dapat berubah pada setiap boot, dan jika ini terjadi, akses jaringan akan dimungkinkan bahkan ketika pengguna belum menetapkan alamat secara manual, tetapi misalnya menetapkan alamat IP semi-statis oleh DHCP berdasarkan alamat MAC klien yang meminta jelas tidak akan berfungsi dengan andal.

Untuk menghindari konflik dengan alamat MAC yang ditetapkan secara resmi, ada kumpulan alamat yang dicadangkan untuk apa yang disebut alamat yang dikelola secara lokal. Ini didefinisikan oleh nilai dua bit spesifik dalam byte pertama alamat (artikel alamat MAC di Wikipedia bahasa Inggris memberikan penjelasan yang baik). Dalam praktiknya ini berarti bahwa misalnya alamat apa pun yang dimulai dengan heksadesimal ca (seperti ca:ff:ee:12:34:56) dapat digunakan sebagai alamat yang dikelola secara lokal.

Pada sistem yang menggunakan U-Boot sebagai firmware sistem, alamat MAC ethernet ditempatkan dalam variabel lingkungan ethaddr. Itu dapat diperiksa di prompt perintah U-Boot dengan perintah printenv ethaddr dan dapat diatur dengan perintah setenv ethaddr ca:ff:ee:12:34:56. Setelah mengatur nilai, perintah saveenv membuat penugasan permanen.

3.6.4. Masalah relokasi kernel/initrd/device-tree di U-Boot

Pada beberapa sistem dengan versi U-Boot yang lebih lama mungkin ada masalah dengan relokasi kernel Linux dengan benar, ramdisk awal dan blob pohon perangkat dalam memori selama proses boot. Dalam hal ini, U-Boot menunjukkan pesan Starting kernel ..., tetapi sistem membeku setelahnya tanpa keluaran lebih lanjut. Masalah ini telah diselesaikan dengan versi U-Boot yang lebih baru dari v2014.07 dan seterusnya.

Jika sistem awalnya menggunakan versi U-Boot yang lebih lama dari v2014.07 dan telah ditingkatkan ke versi yang lebih baru nanti, masalah mungkin masih terjadi bahkan setelah memutakhirkan U-Boot. Memutakhirkan U-Boot biasanya tidak memodifikasi variabel lingkungan U-Boot yang ada dan perbaikannya memerlukan variabel lingkungan tambahan (bootm_size) untuk diatur, yang dilakukan U-Boot secara otomatis hanya pada instalasi baru tanpa data lingkungan yang ada. Dimungkinkan untuk mengatur bootm_size secara manual ke nilai baku U-Boot baru dengan menjalankan perintah env default bootm_size; saveenv pada prompt U-Boot.

Kemungkinan lain untuk menghindari masalah terkait relokasi adalah dengan menjalankan perintah setenv fdt_high ffffffff; setenv initrd_high 0xffffffff; saveenv pada prompt U-Boot untuk sepenuhnya menonaktifkan relokasi ramdisk awal dan blob pohon perangkat.