Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

2 Writes give "Operation not supported on transport endpoint"

オープン
#121 コメント 4 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
38/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
rust
領域
embedded-iot

調査の方向性

crates/rig/src/bin/gps.rs で再現から始め、一覧にある Linux I2C デバイスを使って、2 回の書き込みによるトランザクションと 1 回のより長い書き込みを比較します。I2cdev が複数の Operation::Write 値をどのようにマッピングするかを確認し、EOPNOTSUPP の結果に照らして動作を検証します。サポートされている動作が確立され、実装またはドキュメントに反映された時点で issue は完了です。

索引モデルが issue の本文から書いたものです。

説明

I was trying to get the examples in https://github.com/alexeden/adafruit-seesaw to work on linux but i kept getting errors

I managed to track down the problem to this MVP example

use embedded_hal::i2c::{Error, I2c, Operation};
use linux_embedded_hal::{Delay, I2CError, I2cdev, i2cdev::core::I2CDevice};

fn main() {
    let mut i2c = I2cdev::new("/dev/i2c-10").unwrap();

    let regester_num: &[u8] = &[0x00, 0x7F];
    let mut data = [0xFF];
    let mut ops = [Operation::Write(regester_num), Operation::Write(&data)];
    i2c.transaction(0x36_u8, &mut ops).unwrap();
}
thread 'main' panicked at crates/rig/src/bin/gps.rs:10:40:
called `Result::unwrap()` on an `Err` value: I2CError { err: Errno(95) }
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

using https://www.adafruit.com/product/4471 and https://www.adafruit.com/product/5880 but i had the same issue with other i2c peripherals.

95 	EOPNOTSUPP 	Operation not supported on transport endpoint

Please note that a single write of a longer array does not cause the same error.

It should be noted that a single write operation with a longer array does run, let mut ops = [Operation::Write(&[0x00, 0x7F, 0xFF ])]

I cant tell if im doing something wrong or if there is a bug some were.

主要言語
Rust
スター
323
フォーク
60
PR マージ指標
30日以内にマージされた PR はありません

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

rust-embedded/linux-embedded-hal のほかの issue

rust-embedded/linux-embedded-hal の issue をすべて見る

似ている issue

Rust の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。