コグノスケ


link 未来から過去へ表示(*)  link 過去から未来へ表示

link もっと前
2018年11月10日 >>> 2018年11月1日
link もっと後

2018年11月10日

ROCK64のアナログオーディオ - その2 - I2SのDMA問題

目次: ROCK64/ROCKPro64

ROCK64のI2Sが動かない

先日(2018年7月22日の日記参照)買ったRockchip RK3328搭載ボードROCK64で遊んでいます。

RockchipのSoCで動くLinuxはRockchipがメンテナンスしているLinux(以降Rockchip Linux)ですが、実はLinuxの本流開発ツリー(以降linux-next)も動作します。

しかしlinux-nextの方は全く音が出ません(speaker-testで叩くとxrun_recovery faild: -5, Input/output errorが出ます)。

以前S/PDIFも全く動かなかったのですが、原因が分かったのでパッチを送って直しました。今は出音までできているはずです。しかしI2Sは原因が違うらしく、なぜ動かないのかさっぱりです。

Rockchip Linuxとの差

I2Sのレジスタ情報はTRM(Technical Reference Manual)に載っていたので、それを見つつRockchip Linuxとレジスタ値を同じに揃えましたが、I2Sは微塵も動きませんでした……。

I2S以外のドライバのバグを疑い、Rockchip LinuxのI2Sドライバを丸ごとコピーしたら、動いてしまいました。疑いはハズレ、つまりI2Sドライバに何らかのバグがあることは確定です。一体何が違うんでしょう。diffを見ましたが差分の意味がわかりません。

差分は多くないので、力技でRockchip Linuxからlinux-nextに1つずつ差分を移植していって、動作するかどうか確かめました。原因はdevm_snd_dmaengine_pcm_register() の第2引数(config)にNULLを渡すかどうか、でした。

私には、その違いの意味するところも、現在のlinux-nextのコードの何が悪いのかも、さっぱりわかりません。

差分の意味

動作とコードを追ってみると、現在のlinux-nextのコードはstruct snd_dmaengine_pcm_configのprepare_slave_configを設定し忘れているため、全くDMA転送設定がされていないことがわかりました。

要は、音声データを全くI2Sハードに送っていなかったんです。そりゃ動くわけないわ。

Rockchip Linuxはなぜ動くのか

Rockchip Linuxはどうしていたかというとdevm_snd_dmaengine_pcm_register() の第2引数にNULLを指定していました。何も指定していないのに、どうして動くのでしょう?同じバグを踏まないのでしょうか?

実は第二引数にNULLを指定するとALSAのフレームワーク側でprepare_slave_configにsnd_dmaengine_pcm_prepare_slave_config() を指定した状態と同等に扱われます。この働きにより、無事動作していたのでした。わかるかそんなの。

知っていれば秒殺系のバグでしょうけど、私はぱっと見ではわかりませんでした。

バグの修正としてはたった1行なんですが、理解するまで2日掛かりました。Linux詳しい人はもっと早く解析できると思います……。Linuxを触っているとこういうの多いので、もっとLinuxパワーが欲しいです。

せっかく判明したバグなのでALSA MLにパッチをぶん投げておきました。

まだまだ問題は山積み

ちなみに、これで万事解決ではなく、アナログ音声端子から音を出すにはI2S1とACODECというハードを叩かないといけないです(今回動いたのはI2S0)。今わかっているだけで、

  • I2S1はなぜか動かない
  • I2S2はSPDIFと資源が衝突して認識しない
  • ACODECはTRMに何も情報が載っていない

これだけの問題があります。Rockchip Linuxは何らかの方法で問題を解決しているはずなのですが、今のところ私にはさっぱりわかりません。

私のような門外漢が四苦八苦するより、Rockchipの中の人がlinux-nextに修正パッチを投げてくれる方が断然早いんですけどねえ。あまりlinux-nextにはご興味がないのでしょうか。

編集者:すずき(2020/10/30 01:31)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年11月9日

遠くに映せ

LANケーブルでHDMI伝送できる世界初の "GPU搭載" HDBaseTカード - PCWatch を読んで。

面白い製品だな〜と思いつつ、今一つこの製品の価値が理解できていませんので、少し調べてみました。

私の予想するこの製品の魅力は、

  • 価格: LANケーブルはHDMIケーブルより安い
  • 距離: HDMIの伝送距離は短い、LANは長距離引き回せる

のどちらかです。まず価格を見てみると、

10m
LAN: 4,800円(Amazon): サンワサプライKB-T7-10NVN
HDMI: 2,200円(Amazon): HORIC HDM100-886SV
30m
LAN: 9,700円(Amazon): サンワサプライKB-T7-30NVN
HDMI: 9,500円(Amazon): HORIC HDM300-008
50m
LAN: 17,700円(Amazon): サンワサプライKB-T7-50NVN
HDMI: 14,000円(Amazon): HORIC HDM500-275GD

HDMIケーブルは確かに高いけど、実はCAT7 LANケーブルもかなり高いため、大きな違いがありません。

次に距離を見てみると、HDMIも50mくらいならイコライザ付きのケーブルを使えば、引き回せるみたいです。さすがにケーブル1本で100mは無理そうでした。商品が見当たりません。HDMIで100mに挑むとすると、

  • HDMIエクステンダ(送信、受信に2つ必要、1つ1万円くらい、電源も必要、LANケーブルも必要)で延長
  • 光ファイバのHDMIケーブル(10万円くらい、電源必要)で接続

このような選択肢があるようです。HDMIで50mを超えることは不可能ではないですが、一気に価格が跳ね上がります。

従って、この製品が輝くシーンは
「50m〜100mのディスプレイ配線をケーブル1本で安く繋ぎたいとき」
だと思われます。たぶん。

メモ: 技術系の話はFacebookから転記しておくことにした。少し加筆。

編集者:すずき(2018/11/09 15:03)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年11月8日

家にたくさんマウスとキーボードがある

引っ越し荷物を開梱していると、たくさんのマウスとキーボードが出てきました。いつのまにこんなに買っていたのか。


我が家のマウスとキーボード

写真には6つのマウス、6つのキーボードが映っていますが、他にもマウス3つ(Logicool V450、Microsoft Wireless Mouse 1000が2つ)と、キーボード1つ(Topre REALFORCE)がありました。

マウスの一覧です。

  • Logitech Optical Mouse USB M-UV96
  • ELECOM EX-G Ultimate Laser Mouse M-XGL20DL(リンク)
  • Logicool Wireless Mouse M510(リンク)
  • Logicool Wireless Mouse M560(リンク)
  • Logicool Cordless Laser Mouse MX1100(リンク)
  • Logicool Marathon Mouse M705(リンク)
  • Logicool Nono Cordless Laser Mouse V450(リンク)
  • Microsoft Wireless Mouse 1000(リンク)

キーボードの一覧です。

マウスの感想

マウスは9個も買ったにも関わらず、一番手に合うと思ったのは、会社のPCに付属している有線タイプのマウスでした。サイズが絶妙で、とても軽くて良いです。

ワイヤレスマウスは妙に小さいか、妙に重たいので、手が疲れてしまいます。今のところ唯一気に入ったのはLogicoolのM705だけです。

キーボードの感想

キーボードは7個も買いましたが、キーの配置がスタンダードであることだけが重要で、構造や他の要素はあまり気にならないことがわかりました。PCに付属しているキーボードはキー配置に捻りがなくて使いやすいものが多いですが、最近のPCは変なキー配置のキーボードが増えていて困ります。普通の配置が良いです。要らんことしないで欲しい。

前の会社(ソシオ)で使っていた富士通PCに付いてたキーボード(FKB-1424と配置が似ているやつ)はキーが若干頼りなかったですけど、キー配置が普通で良かったです。

今の会社のDELL KB216はイマイチです。左下のFnキーが邪魔ですし、左Altのところ(Zキーの一段下)にWinキーが来ていて、メチャクチャ押し間違えます。あまりに誤打するので撤去して、REALFORCEに置き換えたほどです。昔使っていたDELLマシンのキーボード(DELL SK8115?スペースキーが正方形のもの)はスタンダードな配置で良かったのにな〜。なんでノートPCもどきの配置にしたんでしょうね。

Logicoolのマウスは良いものが多いんですけど、キーボードはイマイチなキー配置が多いです。K275以外は誤打連発で手に合いません。

REALFORCEは価格は高いのを除けば、キー配置がスタンダードで非常に良いキーボードです。我が家では活躍の場がないため、会社に持って行って活躍してもらっています。

メモ: 技術系の話はFacebookから転記しておくことにした。10月13日の投稿が元だが、大幅に加筆した。

編集者:すずき(2018/11/09 14:43)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



2018年11月6日

職業ダブってた

先日(2018年10月15日の日記参照)気づいたことですが、FacebookやLinkedInの職歴では、現職として2社以上に所属することができるようになっています。

エグゼクティブクラスなら複数の会社の取締役を兼任するだろうけど、正直言って自分には縁が無い機能だと思っていました。

しかしエグゼクティブでなくとも、この世には「出向」という2足の草鞋を履ける制度がある訳で。自分でこの機能を使うことになるとは思いませんでした……。

メモ: 技術系の話はFacebookから転記しておくことにした。

編集者:すずき(2018/11/09 14:42)

コメント一覧

  • コメントはありません。
open/close この記事にコメントする



link もっと前
2018年11月10日 >>> 2018年11月1日
link もっと後

管理用メニュー

link 記事を新規作成

<2018>
<<<11>>>
----123
45678910
11121314151617
18192021222324
252627282930-

最近のコメント5件

  • link 20年6月19日
    すずきさん (04/06 22:54)
    「ディレクトリを予め作成しておけば良いです...」
  • link 20年6月19日
    斎藤さん (04/06 16:25)
    「「Preferencesというメニューか...」
  • link 21年3月13日
    すずきさん (03/05 15:13)
    「あー、このプログラムがまずいんですね。ご...」
  • link 21年3月13日
    emkさん (03/05 12:44)
    「キャストでvolatileを外してアクセ...」
  • link 24年1月24日
    すずきさん (02/19 18:37)
    「簡単にできる方法はPowerShellの...」

最近の記事20件

  • link 24年4月12日
    すずき (04/16 00:12)
    「[台湾東部沖地震に寄付] ささやかではありますが台湾東部沖地震に寄付しました。日本の赤十字社→台湾の赤十字(正式名称...」
  • link 23年4月10日
    すずき (04/16 00:10)
    「[Linux - まとめリンク] 目次: Linuxカーネル、ドライバ関連。Linuxのstruct pageって何?Linu...」
  • link 22年9月3日
    すずき (04/16 00:08)
    「[MarkDownのその向こう] 目次: Linux簡単なドキュメントやメモはMarkDownで書くことが多いですが、気合を入...」
  • link 22年9月4日
    すずき (04/16 00:08)
    「[Asciidocをさらに活用] 目次: Linux前回(2022年9月3日の日記参照)、Asciidocのプレビュー環境の設...」
  • link 24年4月11日
    すずき (04/16 00:08)
    「[VScodeとAsciiDocとKrokiローカルサーバー] 目次: LinuxAsciiDoc ExtensionはAsc...」
  • link 24年3月19日
    すずき (04/16 00:07)
    「[モジュラージャックの規格] 目次: Arduino古くは電話線で、今だとEthernetで良く見かけるモジュラージャックとい...」
  • link 23年6月2日
    すずき (04/16 00:07)
    「[Arduino - まとめリンク] 目次: Arduino一覧が欲しくなったので作りました。 M5Stackとesp32とA...」
  • link 24年4月9日
    すずき (04/12 12:44)
    「[初めて作ったボード動作せず(手で直した)] 目次: Arduino以前(2024年3月24日の日記参照)発注して、全く動ない...」
  • link 24年4月2日
    すずき (04/12 11:00)
    「[KiCadが動かなくなったのでビルド] 目次: ArduinoDebian Testingなマシンをapt-get upgr...」
  • link 24年4月3日
    すずき (04/12 11:00)
    「[初めて作ったボード動作せず(燃えた)] 目次: Arduino以前(2024年3月24日の日記参照)発注したPCBが届いたの...」
  • link 24年3月24日
    すずき (04/12 11:00)
    「[PCBを設計して注文] 目次: Arduinoシューティングの練習でいつもお世話になっているTARGET-1秋葉原店に、6つ...」
  • link 24年3月25日
    すずき (03/26 03:20)
    「[Might and Magic Book One TASのその後] 目次: Might and Magicファミコン版以前(...」
  • link 21年10月4日
    すずき (03/26 03:14)
    「[Might and Magicファミコン版 - まとめリンク] 目次: Might and Magicファミコン版TASに挑...」
  • link 24年3月18日
    すずき (03/19 11:47)
    「[画面のブランクを無効にする] 目次: LinuxROCK 3 model CのDebian bullseyeイメージは10分...」
  • link 24年3月3日
    すずき (03/19 11:07)
    「[解像度の設定を保存する] 目次: LinuxRaspberry Pi 3 Model B (以降RasPi 3B)のHDMI...」
  • link 24年3月14日
    すずき (03/16 23:03)
    「[JavaとM5Stamp C3とBluetooth LE - Bluetoothデバイスとの通信] 目次: ArduinoM...」
  • link 24年3月8日
    すずき (03/16 23:03)
    「[JavaとM5Stamp C3とBluetooth LE - BluetoothデバイスとServiceの列挙] 目次: A...」
  • link 23年5月15日
    すずき (03/16 00:57)
    「[車 - まとめリンク] 目次: 車三菱FTOの話。群馬県へのドライブ将来車を買い替えるとしたら?FTOのオイル交換とオイル漏...」
  • link 24年3月9日
    すずき (03/16 00:56)
    「[車のバッテリー完全に死亡で交換かと思いきや] 目次: 車またまた車のバッテリーが干上がって死にました。写真は撮っていませんが...」
  • link 24年3月10日
    すずき (03/15 03:34)
    「[誕生日] 早いもので41歳になりました。昨年の日記(2023年3月10日の日記参照)を見ると、コロナの流行を心配していました...」
link もっとみる

こんてんつ

open/close wiki
open/close Linux JM
open/close Java API

過去の日記

open/close 2002年
open/close 2003年
open/close 2004年
open/close 2005年
open/close 2006年
open/close 2007年
open/close 2008年
open/close 2009年
open/close 2010年
open/close 2011年
open/close 2012年
open/close 2013年
open/close 2014年
open/close 2015年
open/close 2016年
open/close 2017年
open/close 2018年
open/close 2019年
open/close 2020年
open/close 2021年
open/close 2022年
open/close 2023年
open/close 2024年
open/close 過去日記について

その他の情報

open/close アクセス統計
open/close サーバ一覧
open/close サイトの情報

合計:  counter total
本日:  counter today

link About www.katsuster.net
RDFファイル RSS 1.0

最終更新: 04/16 00:12