システムの準備
- Ubuntu 22.04.2 LTSをインストールする
- パッケージをインストールする
|
|
ダウンロードコード
リポジトリコードのクローンを作成する
|
|
カーネルのコンパイル
コアのオーバークロック
ファイル linux/drivers/clk/qcom/a53-pll.c を変更します。
|
|
最初の列は動作周波数、2 番目の列は電源電圧です。
これまでのルールによれば、200Mhz増加ごとに電圧値が10ずつ増加すると大まかに判断できます。ただし、チップの設計周波数を超えているため、消費電力と発熱を同時に考慮する必要があるため、後から増やす場合は電圧値を若干上げる必要があります。 1401600000以降のデータは上記のルールに従って追加されます。
ファイル linux/arch/arm64/boot/dts/qcom/msm8916.dtsi を変更します。デフォルトの周波数は 220 行目あたりに表示されます。その後、周波数を上げます。増加した周波数を前のファイルに追加する必要があります。
|
|
コンパイル設定
|
|
make msm8916_defconfig はプリセットのコンパイルパラメータをインポートします make menuconfig 構成オプション
Klipper USBシリアルポートドライバーを追加
USB デバイスは見つかるが、/dev でシリアル ディレクトリとデバイスが見つからない問題に適用されます。
- lsubをインストールする sudo apt-get install usbutils
- USB ポートをホスト モードに切り替えます (root として実行) echo host > /sys/kernel/debug/usb/ci_hdrc.0/role
- USB デバイスを表示する lsusb コマンドを実行すると、対応する USB デバイスが表示されるはずです。対応する USB デバイスがない場合は、通信の問題、ファームウェアの問題、またはボード自体の異常が考えられます。
- 上記の問題をすべて解決したら、シリアル ポート ドライバーを追加します。
|
|
コンパイルを開始する
|
|
上記のコマンドは、1 ステップで deb ファイル パッケージを直接生成します。 ls ../ と入力して表示します。
Ubuntu 22.04では、make-kpkgに対応するソフトウェアパッケージをアップデートできません。公式声明では、あまりにも長い間維持されていなかったため、削除されたとのことです。したがって、次のコマンドは実行できません。一部の以前のバージョンでは可能な場合があります。
|
|
コンパイルが完了すると、ファイルの 3 つの部分が生成されます
-
ヘッダーとイメージを含むカーネル deb パッケージ linux-headers-5.15.0-handsomekernel+_5.15.0-handsomekernel+-7_arm64.deb および linux-image-5.15.0-handsomekernel+_5.15.0-handsomekernel+-7_arm64.deb は、コンパイル ディレクトリ ../ の 1 レベル上にあります。
-
Image.gz linux/arch/arm64/boot/Image.gz
-
デバイスツリーdtb linux/arch/arm64/boot/dts/qcom/msm8916-handsome-openstick-xxxxxxxx、デバイスに応じて選択してください
|
|
rootfs、ルートパーティションの処理中
変更は、元の openstick プロジェクトによってリリースされたルート パーティション パッケージに基づいて完了します。
オリジナルの openstick debian 基本パッケージをダウンロードする
|
|
debian.zip パッケージでは、rootfs.img はルート パーティションの img ファイルです。
simg2imgを使用してマウント可能な形式に変換します
|
|
chroot は rootfs を処理します
mount root.img
|
|
最新のコンパイル済みカーネルをインストールする
|
|
chroot を使用してマウントされたシステムに入り、システム内の元の linux-image パッケージを削除し、生成されたばかりの deb ソフトウェア パッケージをインストールします。インストール後はdebファイルを削除してください。
|
|
rc.localブートスクリプトを作成する
|
|
ロケールを再構成する
OpenStickで使用されているdebianは効率化されているため、エラーメッセージが表示される場合があります。 warning: setlocale: LC_ALL: cannot change locale (en_US)
次の方法でこの問題を解決できます
|
|
en_US.UTF-8 を選択できます
適切なソース修正
/etc/apt/sources.list.d/mobian.list は無効なので、直接削除できます
後続のブート パーティションに必要なファイルを抽出します
ファイル:/mnt/boot/initrd**.img 事前にコピーしておいてください
chroot の終了 umount の終了
出口から出口へ直接入力
|
|
simg2img を使用して逆変換します
フラッシュ用に boot.img を rootfs.img 形式に変換します
|
|
rootfs.img は、最終処理後のルート パーティション イメージ ファイルです。
ブートパーティションのハンドル
以下では ufi001c デバイスを例として取り上げますが、他のデバイスも類推できます。
必要書類一覧
- コンパイル中に生成される Image.gz (linux/arch/arm64/boot/Image.gz)
- コンパイルプロセス中に生成されるデバイスツリー dtb (linux/arch/arm64/boot/dts/qcom/msm8916-handsome-openstick-ufi001c.dtb) は、デバイスに応じて選択されます。
- rootfs の変更後に生成される /boot/initrd**.img
ブートの生成
|
|
ufi001c-boot.img は、最終的に生成されたブート パーティション イメージ ファイルです。
この時点で、rootfs.img ufi001c-boot.img が生成されています。 debian.zip フラッシュ パッケージ内の rootfs.img boot.img を置き換えてフラッシュするだけです。