背景
私が実験しているStar Five VisionFive 2 SBCにはDebian Linuxが搭載されています。 VisionFive 2はRISC-V SBCで、Star Fiveはコアを構築するために必要なすべてのデータを含むGithubリポジトリを提供します。
SDカードに適した画像を作成する方法については、以下を参照してください。StarFive Debian イメージのビルド。実際のソースストアは次の場所にあります。Github - スターFive-tech/VisionFive2。
SDカード用の画像を作成し、すべてが記事の説明に従って動作します。VisionFive 2 RISC-V - Linuxカーネルの構築、私は数ヶ月前に書いた記事です。私はApache2 Webサーバーのような他の多くの部分を追加しましたが、うまくいくようです。
私はUbuntuをビルド環境として使用し、Windows 10でWSLを使用しています。
VisionFive 2はu-boot
代わりにローダーを使用しますGRUB
。購入したVisionFive 2バンドルに付属のUSB / TTYアダプタを使用してVisionFive 2コンソールにアクセスできます。私はOrangePi 5 Plusgtkterm
に接続されている/dev/ttyUSB0
Linux上でアプリケーションを使用してgtkterm
セッションをホストしていますrsh
。
明確に言えば、Windows 11システムでWSLを使用してイメージを構築して転送し、OrangePi 5でLinuxを使用してVisionFive 2のコンソール出力を表示できます。 Windows 11はUSB / TTYをサポートしていないためです。認識したいアダプタがありますが、Linuxでは認識できます。gtkterm
このStackoverflowの記事に記載されているように、初期の問題に直面しました。Ubuntu 10.10(Maverick Meerkat)で端末をUSBデバイスに直列に接続するには?
Q:Linuxカーネルをテストするための次の手順は正しいですか?
いくつかの変更を加えて、現在のLinuxカーネルバージョンのソースコードで構築されたテストカーネルでLinuxカーネルを更新したいと思います。次のようなプロセスを使用しましたが、本当に良いプロセスかどうかはわかりません。
- Linuxカーネルを編集して次に変更します
Makefile
。vi
SUBLEVEL=0
SUBLEVEL=11
- ファイルを生成したカーネルを再構築します。
linux-image-5.15.11-starfive_5.15.11-starfive-8_riscv64.deb
- この
psftp
ユーティリティを使用してVisionFive 2 SBCにファイルを保存します。 PuTTY
コマンドシェルを開き、ファイルを保存したフォルダに移動します.deb
。- 使用される
sudo apt install ./linux-image-5.15.11-starfive_5.15.11-starfive-8_riscv64.deb
- VisionFive 2を再起動して
sudo reboot
祈ります。
これはうまくいくようです。
フォローアップの質問:Linuxカーネルを更新するには、常にバージョン番号を変更する必要がありますか?
結果
これで、次のファイルの一覧がsudo ls -l /boot
表示されます。
user@starfive:~$ sudo ls -l /boot
[sudo] password for user:
total 43672
-rwx------ 1 root root 4455561 Oct 30 05:12 System.map-5.15.0-starfive
-rwx------ 1 root root 4461300 Feb 19 14:00 System.map-5.15.11-starfive
-rwx------ 1 root root 213287 Oct 30 05:12 config-5.15.0-starfive
-rwx------ 1 root root 212806 Feb 19 14:00 config-5.15.11-starfive
drwx------ 4 root root 2048 Oct 30 06:33 dtbs
drwx------ 2 root root 2048 Feb 19 14:17 extlinux
-rwx------ 1 root root 9226555 Feb 19 13:50 initrd.img-5.15.0-starfive
-rwx------ 1 root root 9226555 Feb 19 14:17 initrd.img-5.15.11-starfive
-rwx------ 1 root root 406 Oct 30 01:21 uEnv.txt
-rwx------ 1 root root 8478959 Oct 30 05:12 vmlinuz-5.15.0-starfive
-rwx------ 1 root root 8428381 Feb 19 14:00 vmlinuz-5.15.11-starfive
user@starfive:~$
代わりにコマンドuname -a
が表示されます。5.15.11-starfive
5.15.0-starfive
user@starfive:~$ uname -a
Linux starfive 5.15.11-starfive #8 SMP Mon Feb 19 14:00:22 EST 2024 riscv64 GNU/Linux
user@starfive:~$
Makefile
生成されたファイルで上記のプロセスを試みたときに、linux-image-5.15.11-starfive_5.15.11-starfive-8_riscv64.deb
SBCに記載されている内容が/boot
ファイルのタイムスタンプがvmlinuz-5.15.0-starfive
変更されていないことがわかったため、Linuxバージョンを変更しました。System.map-5.15.0-starfive
インストール中にファイルが交換されないというインストールエラーも表示されます。
今私のディレクトリ/boot
に2つのバージョンのLinuxカーネルがあるようです。
VisionFive 2を再起動してコンソールに表示されているログを観察すると、デフォルト設定に進む前に画像リストが表示されている間に数秒間一時停止することがわかりu-boot
ます。u-boot
デフォルトは私のバージョンのように見えますが、元のバージョンを選択できます。そうすると、デバイスは完全に起動し、リモートシェルを使用しますrsh -l user starfive
(VisionFive 2のホスト名がstarfive
私のLANに表示されます)。uname
オリジナルを表すイメージです。
user@starfive:~$ uname -a
Linux starfive 5.15.0-starfive #1 SMP Mon Oct 30 09:12:59 UTC 2023 riscv64 GNU/Linux
user@starfive:~$
付録I:テストLinuxのバージョンを削除する
私が最初にしたことは、VisionFive 2を再起動してgtkterm
コンソールにセッションを接続することで、u-boot
利用可能な画像のリストが表示されたら元の画像を選択しました。その後、コマンドを使用して確認すると、デバイスはそのイメージから起動しますuname
。
次の手順を使用してください。最近インストールされたパッケージを削除または削除する方法インストールされたテストバージョンを削除しました。まず、apt list "*starfive*"
Show Linux Image Installed Packagesコマンドを使用してパッケージ名を確認しました。その後、sudo apt remove
テストバージョンのパッケージ名を指定しました。
デバイスを再起動してコンソールを確認しましたが、表示されたメニューにテストu-boot
ビルドが表示されなくなりました。デフォルトの起動を許可するために、どの入力も入力しませんでした。/boot
でチェックすると、sudo ls -l /boot
テストビルドイメージはもう存在しません。このコマンドを使用すると、元のuname-a
画像名と日付が10月30日に表示されます。