ジャイルブレイクされたKindleでのRust(およびSlint)の動作

2026/05/28 4:51

ジャイルブレイクされたKindleでのRust(およびSlint)の動作

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

オリジナルのサマリーは優れており、簡潔で主要なポイントを適切に捉えています。厳密な改訂は必要ありませんが、「飛躍的な進展」(crate の公開)を「障壁の低下」というより大きな含意との間に明確な接続をつけることで、流れが少し洗練され改善されます。

改善されたサマリー: 7 世代 Kindle Paperwhite の Jailbreak に成功し、それを独自の Rust アプリケーションを実行する機能的な Linux デバイスに変化させることで、大きな技術的画期が達成されました。Zig ツールを使用して ARMv7 アーキテクチャ向けの Rust コードをクロスコンパイルし、自動化された手法では失敗した USBNetwork を介して SSH アクセスを手動で設定することで、プロジェクトは内在的なハードウェアの制限を克服しました。グラフィックレンダリングには Slint のソフトウェアレンダラを使用しており、

ioctl
を介してフレームバッファに灰度データを出力し、タッチ入力は生の Linux イベントから処理され、マルチタッチプロトコルを解釈してポインタイベントを正確にディスパッチします。以前の実行 Jailbreak の努力に基づき、この仕事は Slint がリソース制約のある E-Ink ハードウェア上で実用であることを検証するだけでなく、crates.io に公開された堅牢なオープンソースバックエンド crate を導入しました。この再利用可能な基盤は効果的に開発者のための障壁を下げ、Kindle Linux 改修の将来の改善のための堅固な土台を確立します。

本文

Rust on Kindle: 電子書籍リーダーへのグラフカルとタッチスクリーンの実装記

公開日: 2026 年 5 月 26 日
著者: 開発者(自己紹介)


🎯 プロジェクトのきっかけ

  • ファームウェアアンロック(Jailbreak)
    • 第 7 世代 Kindle Paperwhite のファームウェアを解放しました。
    • 当初は「Amazon の制限からの開放」が動機でしたが、真の目的は寝室のナイトスタンドで時計として活用したいという欲求でした。
  • Rust on Kindle への思い
    • コード調整次第で実現可能であると思い試したところ成功し、好奇心が増幅されました。
      • 「Kindle 上で Rust を動かせるか?」
      • 「さらに有用なことはできないか?」
  • 今後の展望
    • Home Assistant とスマートデバイスへの関心が再燃しており、機能用のダッシュボード作成を検討しています。

「プログラム対話において、『X を行うためのライブラリが既に存在する』と伝えることは、歌手に『愛についての曲がもうある』と同じだ。」
— Pete Cordell


🛠️ Kindle 向け Rust のクロスコンパイル

ARMv7 アーキテクチャおよび

musl libc
をターゲットにする必要があります。低性能デバイスでの Rust コンパイルは過去に苦労した経験がありますが、クロスコンパイルには優れたツールが存在します。

  • 使用する主要ツール
    • cargo-zigbuild: Rust のクロスコンパイルに慣用的に使用されるツールです(皮肉にも Zig を経由しています)。
    • Zig コンパイラ:
      • 対応アーキテクチャに対する
        musl libc
        のソースコードとヘッダーを内蔵。
      • 独自のリンカを備えるため、ホストマシンから任意の musl ターゲットへクロスコンパイル可能な完全なツールチェーンを提供します。

コンパイル手順

  1. Zig のインストール
  2. cargo-zigbuild のインストール
  3. Kindle 向けコンパイルの実行
cargo zigbuild --release --target armv7-unknown-linux-musleabihf

🔓 Kindle へのシェルアクセスの取得

コンパイルは完了しましたが、出力を表示・確認するための手段が不可欠でした。

  • KUAL を使用する場合
    • Jailbreak 時にインストール可能なツールですが、アプリケーションの実動作確認には不十分です。
  • SSH 接続の設定(採用案)
    • USBNetwork (
      usbnet
      )
      : USB または Wi-Fi 経由で SSH アクセスを提供するツールを使用しました。
    • sshconfig の設定
      • ssh-copy-id
        は機能しないため、公開鍵を直接コピーする必要がありました。
      • コマンド(例):
        cat ~/.ssh/id_rsa.pub | ssh root@kindlehost "mkdir -p /mnt/us/usbnet/etc && cat >> /mnt/us/usbnet/etc/authorized_keys"
        

👋 Hello World!では次に?

  • 現状の確認
    • Shell アクセスが確保され、クロスコンパイルツールの有効性が確認できました。
    • SSH 経由での標準出力(stdout)表示は成功しましたが、実用性は限定的です。
  • GUI ライブラリの選定
    • Rust の成熟に伴い多数の GUI ライブラリが登場していますが、経験則からSlintを選択しました。
    • 課題: Raspberry Pi での実績がある ARMv7 サポートはありましたが、Kindle 特有のハードウェア対応が残ります。
      • 電子インキディスプレイへの出力
      • タッチパネルからの入力

🎨 やっと視覚表現が実現しました!

Slint は軽量で汎用性の高いソフトウェアレンダラーをサポートしています。

  • 画像描画の仕組み
    • LineBufferProvider
      を実装し、
      process_line()
      関数を通じてラスタライズされたラインを逐次取得します。
    • 取得したデータをグレースケールに変換後、フレームバッファへ書き込みます。
    • フレームバッファの場所:
      /dev/fb0
      (Linux の「すべてはファイルである」という哲学が光ります)。
  • 画面更新の実装
    • libc
      クレートを用いた
      ioctl()
      システムコールでドライバに更新を通知します。
    • Dirty Region(更新が必要な領域): Slint の内部メカニズムによって自動的に提供されるデータを指定するだけで済み、手動計算不要です。

👆 タッチ入力もここに!

画面描画に加え、タッチパネルとの連携が次の課題でした。これも「すべてはファイルである」という原則で解決します。

  • デバイスノード
    • タッチコントローラーは
      /dev/input/event1
      として露出されており、単純な
      read()
      操作でイベントを収集できます。
  • イベント構造体
    • カーネルが直接書き込んだ構造体が得られ、以下の要素を含みます:
      • タイムスタンプ
      • イベントタイプ
      • コード
    • プロトコル解読やパース処理は不要です。

マルチタッチプロトコル(タイプ B)の扱い

  • データストリーム形式
    • X 座標、Y 座標、トラッキング ID が更新される順にストリームされます。
    • バッチ処理完了の合図として
      SYNC_REPORT
      イベントが入ります。
  • Slint へのマッピングロジック
    • 蓄積処理: 最新のパリメータ(X, Y, ID)をバッファに保持します。
    • アクション判定 (SYNC_REPORT にて):
      • ID == -1
        : 指が離れた →
        PointerReleased
      • 初回イベント: タッチダウン →
        PointerPressed
      • その後のイベント: 移動 →
        PointerMoved
    • 実装方針: 詳細な判定ロジックは Slint に委譲します。

✅ やっと動作しました!

多数のデバッグを経て、以下の機能を安定して実装することに成功しました。

  • 表示の問題解決(非表示、更新失敗など)
  • フラッシュ現象の抑制(二重フラッシュの排除)
  • タッチ入力検知の正確化(過検出の防止)

オープンソース化

  • 成果物
    • 特定デバイスで動作を確認した Slint バックエンド (
      kindle-backend
      ) を作成しました。
    • 関連コードを独立したクラートとして抽出し、crates.io に公開しています。

⚠️ 注意点: この実装は特定の Kindle デバイス(第 7 世代 Paperwhite など)で動作が保証されています。他の機種では設定変更が必要になる可能性が高いです。

次回への展望

  • 「owl」ダッシュボード全体の描画と Home Assistant 連携などを今後紹介予定です。

同じ日のほかのニュース

一覧に戻る →

2026/05/28 5:00

YouTube が AI 生成動画を自動でラベル付け

## Japanese Translation: 2026 年 5 月現在、YouTube は視聴者に対する AI 生成コンテンツに関する即座の明確化を確保するため、AI デイスクロージャーシステムを大幅に見直しています。最も重要な更新は、フォトリアリスティックまたは意味のある変改が行われたメディアについては動画プレーヤーの直下にラベルを顕著に表示し、Shorts では説明にのみ埋め込むのではなく、オーバーレイでラベルを表示することです。非現実的、アニメーション、または軽微な変更が加えられたコンテンツについては、開示は引き続き拡張された説明に維持されます。この統合的なラベルリング基準は、2024 年以降増大するコミュニティの透明性への要請に応えるため、すべての此类の重大な AI 生成または変更されたメディアに適用されます。 特に重要なのは、AI ツールの使用がクリエイター収益化能力やプラットフォーム上の推奨受容に影響を与えることのないことです。具体的には、開示ラベルは動画の推奨か収益化資格への影響を及ぼしません。本ポリシーは、Veo や Dream Screen といった YouTube 自前のツールで作成されたコンテンツと、C2PA メタデータでマークされたサードパーティ製素材を区別しており、これら両方とも恒久的な開示ラベルが付与されます。以前クリエイターは自主的な開示に依存していましたが、現在は重大な AI 機能の検出がある場合でも明示的なフラグがなくても自動的に行き来されることがデフォルトとなっています。今後、YouTube は内部シグナルを利用して AI マテリアルを自動的に特定し、純粋な自主的モデルから移行します。クリエイターは、作業が誤ってフラグされた場合に YouTube Studio 内でエラーを修正する権利を維持します。最終的に、この転換は業界全体の透明性を推進すると同時に、生成技術を利用する革新者に対する罰則を伴いません。

2026/05/28 1:39

Anthropic と OpenAI が商品と市場の適合性を発見したと思います

## Japanese Translation: AI 市場における主要な戦略転換として、Anthropic や OpenAI のような先導的なプロバイダーが、重いサブスクリプション割引から標準 API プライシングモデルへ移行しており、補助されたアクセス時代が終わりを告げました。この変化は、コーディングエージェントに対する製品市場適合の実現、ならびにそれらを維持するために現在必要な大規模なインフラコストによって駆動され、2025 年後半に正式化され、2026 年頭で完全に実現されました。Anthropic はエンタープライズプランを席数 20 ドルに加えての使用量モデルへ移行し、OpenAI も GPT-5.5 のリリース後、すべてのプランをトークン使用量との直接連携に合わせました。この財務的実態が鋭い企業の反応を引き起こしました:Uber は Claude Code そのものだけで年間 AI 予算を「上限」に達させ、Microsoft は内部的ツールの優先のために Anthropic ライセンスの取消を allegedly(とされ)行っています。一方、需要は依然として堅くあり、SpaceX は 2029 年までコンピューティング容量に対して月間 12.5 億ドルコミットしています。アナリストらは現在、Anthropic が 2026 年第 2 四半期に初めて利益のある四半期を迎え、API 収益が 109 億ドルに達すると予測しており、2025 年後半の楽観視から、エンタープライズグレード AI インフラを維持する高コストの実態へと根本的な調整を示しています。

2026/05/28 4:24

Apple と Google がプッシュ通知に注力する取り組みとは

## Japanese Translation: 主要なテクノロジー企業(具体的には Google、Yahoo、Microsoft、Apple)は、プッシュ通知を単なる配信チャネルから、プラットフォームがメッセージを受信する前に解析し、順位付けし、変更を加え、ユーザーに到達させるまで積極的に管理する環境へと本質的に変革させてきた。この変化により、「通知パイプ」は厳密に制御された空間へと転換しており、現在では Apple(APNs)と Google(FCM/Firebase)によって支配されており、送信側は厳しいフィルタリング、不透明な編集、そしてスロットリングや優先度低下による拒否の可能性に直面している。2009 年から 2017 年までは静脈的であったが、Android 8 の通知チャンネルと iOS のフォーカスモード導入を機にこの介入の時代が始まり、許可率を 85% から 67% に大幅に引き下げる影響をもたらした。現在では、Apple の 30 億パラメータ規模のモデルや Google の Gemini Nano といった固有モデルに基づき内容を再書き換えしたり、未発表のランキングロジックで順位付けを行ったりする独自メカニズムによって、従来のダウンストリーム指標がメッセージの抑制や改変を隠蔽するため信頼できなくなっている。その結果、開発者はクロスセルや教育コンテンツのためにプッシュ通知に依存し続けることができず、代わりにそのようなインタラクションをメトリクスが完全に可視化される自社所有の_Surface_(例:アプリ内インボックス)へと移行させる必要がある。このトレンドは、準拠しない送信者に対する「ゼロ・トレランス」ポリシーの拡大と、通知から直接自動タスクを発火させる AI エージェントの登場へと向かっており、メッセージを受動的なアラートではなく制御シグナルへと本質的に変えていく。

ジャイルブレイクされたKindleでのRust(およびSlint)の動作 | そっか~ニュース