1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Ubuntu 24.04 LTS のRUSTでのデバイスドライバ開発環境設定(参考サイトがあります、これも玄人のFUKUTAKA編)

Last updated at Posted at 2024-05-09

Ubuntu 24.04 LTS のRUSTでのデバイスドライバ開発環境設定(参考サイトがあります、これも玄人のFUKUTAKA編)

ここをクリックすると他の技術投稿の目次に行きます

なお、この記事は一番下の参考サイトをほんの少し応用したものですのご了承ください

説明:

カーネルバージョンからRustや必要なツール等のバージョンを割り出しそれに合わせることが重要
例:
カーネルバージョン: 6.8.0-31-generic
rustバージョン: 1.75.0
bindgenのバージョン:0.66.1

① ディストリビューションのバージョン情報の確認

$ lsb_release -d
Description: Ubuntu 24.04.3 LTS

② 今のカーネルバージョンの確認

$ uname -r
6.8.0-31-generic

③ 今の開発をするためのRust 対応か確認

$ grep _RUST /boot/config-$(uname -r)

CONFIG_RUST_IS_AVAILABLE=y ← y かどうか?確認
CONFIG_RUST=y ← yならRust開発対応
CONFIG_RUSTC_VERSION_TEXT="rustc 1.75.0 (82e1608df 2023-12-21) (built from a source tarball)" ←カーネルがビルドされた時のインストールされていたrustcコマンドのバージョン
CONFIG_HAVE_RUST=y
CONFIG_RUST_OVERFLOW_CHECKS=y

④ 現在のヘッダーのRust のバージョン確認(サポートしている最低バージョン)

$ /usr/src/linux-headers-$(uname -r)/scripts/min-tool-version.sh rustc
1.75.0
$ /usr/src/linux-headers-$(uname -r)/scripts/min-tool-version.sh bindgen
0.65.1

⑤ 必要なものをインストール

現バージョンのrustcなどのインストール
$ sudo apt install rustc rust-src rustfmt bindgen llvm clang build-essential linux-lib-rust-$(uname -r)

これだけです

注意:
カーネルがバージョンアップすると
違いがでてきますのでインストールしたい旧バージョンをインストールするときは

$ sudo apt install rustc-1.68 rust-1.68-src rustfmt-1.68 bindgen-0.56
みたいな感じでする

ただし、この方法 インストールできるバージョンとできないバージョンがありますので、ご注意をしてください

なお、この投稿はさらなる検証が必要ですので、後日(いつになるかわかりません)一部変更することがあります。たとえば、カーネルのバージョンが上がった場合はどうするかとかです。

テスト用 Rustのプログラミングソースは、下記の参考サイトを参考にしてください
なお、この記事は下記のほんの少し参考サイトを応用したもの(ほぼ、そのままです)ですのでご了承ください

参考サイト
Ubuntu Weekly Recipe - 第793回 自作のカーネルモジュールをRustで作る
[Ubuntu] RustでLinux kernel モジュールを開発する

ここをクリックすると他の技術投稿の目次に行きます

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?