Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
lt_alsa_kernel_vm_kansai_5th
Search
坂本 貴史
October 19, 2013
Programming
0
190
lt_alsa_kernel_vm_kansai_5th
カーネル/VM + K*BUG勉強会でやったLTのスライド。
坂本 貴史
October 19, 2013
Tweet
Share
Other Decks in Programming
See All in Programming
SpringBoot+MyBatisで例外が出たときどこを見るか
syukai
0
110
Designing for tomorrow's programming workflows
honnibal
PRO
2
110
受託開発でGitLab CI を活用していく
xiombatsg
1
270
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
1.2k
puregoの活用例
aethiopicuschan
0
220
Git Lint
bkuhlmann
4
740
Changed Rules: Architectures with Lightweight Stores
manfredsteyer
PRO
0
230
StoreKit2によるiOSのアプリ内課金のリニューアル
kangnux
0
100
SwiftUI Performance 不要なViewの再描画と更新を抑える
bigamitiongit
1
160
Tailwind CSSを本気でカスタマイズする方法
fsubal
7
2.1k
Site Reliability Engineering for GMO
pyama86
6
970
Blue/Greenデプロイの導入による 運用フローの改善
kudoas
1
360
Featured
See All Featured
Product Roadmaps are Hard
iamctodd
43
9.7k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
5
1.5k
Unsuck your backbone
ammeep
662
57k
ParisWeb 2013: Learning to Love: Crash Course in Emotional UX Design
dotmariusz
104
6.6k
Designing for humans not robots
tammielis
247
25k
Facilitating Awesome Meetings
lara
41
5.6k
Principles of Awesome APIs and How to Build Them.
keavy
120
16k
Agile that works and the tools we love
rasmusluckow
324
20k
Designing on Purpose - Digital PM Summit 2013
jponch
110
6.4k
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
19
1.9k
Transcript
ALSAのカーネルモジュール書きました
坂本 貴史 さかもと たかし - Ubuntu日本コミュニティで活動しています - Linuxのサウンドサブシステムをいじってます - でも市井の普通のひと
- ALSAとはLinuxのサウンドサブシステムです。 - システムにPCMキャラクターデバイスその他を 設けて、asoundライブラリでAPIを提供してます
カーネル/VM勉強会@関西 其の参 LT 「soundcoreモジュールとLinuxのサウンドシステム」 質問者: 「Firewire接続のオーディオインターフェイスには FFADOというプロジェクトがドライバーを 開発してる。その説明はないの?」 坂本: 「Firewireについては今回はやりません」
(こんなやりとりだったはず・・・)
内心 「ALSAにFirewireスタックあるけど、デバイス3 つくらいしかサポートしてないよな」 「しかもplaybackしかできないよな」 「FFADO使ったことあるけど、コード読んだこ とないわ」 「IEEE1394はオワコンだしな・・・」
→当時はFFADOのコード読めなかった(C++) →そもそもJack Audio Connection Kitのjackdとい うサウンドサーバーを起動しないとデバイスが使 えない。いまどきのLinuxデスクトップ環境は PulseAudioだから超不便 →ALSAで動かせたらいろいろ嬉しそうではある →いまどきIEEE1394は使う人いないよなー
→いまどきIEEE1394は使う人いないよなー (重要)
当時勤めてた職場の資料をあさったところ、 IEEE1394の主要な規格書があった。 →へぇ。こんな風に制御するんだ。 当時勤めてた職場にパケットアナライザがあった →へぇ。こんな風に通信するんだ。
バス仕様 IEEE1394 ホストコントローラー仕様 OHCI 1394 プロトコル仕様 IEC 61883-1 サウンド&ミュージックプロトコル仕様 IEC
61883-6
ふむ。 ちょっとALSAのドライバーを書いてみようかな
snd-fireworks - ALSAのコミッタが2010年に書いたもの - 忙しくて(+モチベーションの問題で)開発中 断。 - 米国Echo Audio社のデバイスチップ向け
→持ってた b
→書いて投げた(2013年6月)
ALSAのFirewireスタックのメンテナ 「timestampどう扱うの?」 →TODO(8月に解決)
Fireworksはだいたいよさそう。 →IEEE1394使う他のサウンドデバイスは どうなってるかな?
None
やったねさかもっちー サウンドデバイスが増えたよ!! →計12台になった。 →そのうち7台は、メーカーは違うけど同じチッ プを使ってる。このチップにはFFADOが対応で きる。
FFADOにバグを発見 →パッチ投げたらコミット権もらえた。 「このデバイス、今はメンテできる人がいないか ら、お前メンテやれ(意訳)」 →メンテナになりました。 やったねさかもっちー。(思いがけず)FFADO のメンテナーになったよ!
snd-bebob - スイスのBridgeCo社のデバイスチップ向け - 当初はパケットダンプからプロトコルを予想し て書いた。 - 今は中の人からもらった資料を参照 - snd-fireworksを開発した知識を使って書いた
snd-fireworks 計12台のサウンドデバイスに対応 snd-bebob 計34台のサウンドデバイスに対応 やったねさかもっちー。(テストしなきゃならな いから)デバイスが増やせるよ。
→これ以上増やす・・・のか・・・?
無理なのでCall for testing(2013年10月)
中古で安く手に入るよ →発売時の価格の半分以下 今なら目の前にメンテナ(予定)がいるよ →ALSAのFirewireスタックいじってるの、世界 で2人しかいない バグがあったらすぐに直すよ →失業中
デイジーチェーンしてみた
宣伝 - Software Design12月号の「Ubuntu Monthly Report」に、ALSAとHDAについて書きました。 - ALSAのカーネルランドからユーザーランドまで 簡単にまとめときました。
ALSAのメンテナも「takashi」