[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-devel:19119] Re: 2016年2月の東京debian勉強会presentation



野島です。

りょうかいしましたー!当日は是非。資料マージしましたら、ご連絡します。

野島

2016-02-12 (金) の 14:12 +0900 に Takashi Sakamoto さんは書きました:
> 野島さん
> 
> 件名に関して、以下のように作成しました。
> 処理のほう、よろしくお願いします。
> 
> ----- 8< -----
> 
> \section{libhinawaというライブラリをDebianプロジェクトにITP/RFSした話}
> \emtext{libhinawaというライブラリをDebianプロジェクトにITP/RFSした話}
> 
> \begin{frame}{概要}
>  libhinawaというライブラリをDebianプロジェクトにITP/RFSしたので、
>  その背景や設計、機能に関して、ALSAのupstreamでの活動も踏まえて
>  お話します。
> \end{frame}
> 
> \begin{frame}{内容}
>  \begin{itemize}
>  \item ALSAについて
>  \item libhinawaについて
>  \item 今回のITP/RFSについて
>  \end{itemize}
>  質疑は適宜行ってください。
> \end{frame}
> 
> \begin{frame}{ALSAの概要}
>  ALSA
>  \begin{itemize}
>  \item Linux sound subsystem
>  \item ユーザースペースのアプリケーションに対し、サウンドデバイスを
> 制御する手段を提供
>  \item 特定のサウンドデバイスに対しては、CUIやGUIを伴うツールを提供
>  \end{itemize}
>  ALSAを利用しているもの
>  \begin{itemize}
>  \item Linuxカーネルを採用した製品全般
>  \end{itemize}
> \end{frame}
> 
> \begin{frame}{ALSAがサポートするサウンドデバイス}
>  \begin{itemize}
>  \item PCI/PCI-Expressバスに接続するもの
>  \item プラットフォーム固有のペリフェラルバスに接続するもの
>  \item USBに接続するもの
>  \item 他、レガシーな汎用バスに接続するもの (IEEE 1394バス)
>  \end{itemize}
> \end{frame}
> 
> \begin{frame}{ALSAとIEEE 1394バス}
>  2000-2010年にかけて、IEEE 1394バスに接続して使う
>  サウンドデバイスが発売されていた。
>  \begin{itemize}
>  \item 主にレコーディング用途
>  \item 一部の高級オーディオ機器
>  \end{itemize}
>  ALSAでのサポートは2010年に始まった。
>  \begin{itemize}
>  \item Linux 2.6.39に初期のコードをマージ
>  \item 以降の開発は進まず
>  \end{itemize}
> \end{frame}
> 
> \begin{frame}{ユーザースペースのドライバ実装}
>  Linux FireWire subsystemが、キャラクタデバイス越しに
>  デバイスを制御する手段をユーザースペースに提供
>  \begin{itemize}
>  \item /dev/fw[0-9]*
>  \end{itemize}
>  FFADO
>  \begin{itemize}
>  \item ユーザースペースのドライバ開発プロジェクト
>  \item http://ffado.org/
>  \item libffado2として、CのライブラリAPIを公開
>  \item 2004年あたりに開発開始
>  \end{itemize}
>  ALSAとは異なるAPI
>  \begin{itemize}
>  \item ALSAのアプリケーションから使えない
>  \item プロトコル仕様(IEC 61883-1/6)的に、ALSA-FFADO
> ブリッジが成立しない。
>  \end{itemize}
> \end{frame}
> 
> \begin{frame}{ALSAのfirewireスタックの成長}
>  2013年1月時点。2モデルをサポート。
>  \begin{itemize}
>  \item 2,600行程度
>  \end{itemize}
>  2016年2月現在、約140モデルをサポートするに至る。
>  \begin{itemize}
>  \item 20,000行程度
>  \end{itemize}
> \end{frame}
> 
> \begin{frame}{libhinawaの概要}
>  ALSAのfirewireスタックの設計
>  \begin{itemize}
>  \item リアルタイムデータ転送以外の機能はユーザースペースに置く
>  \item どうしてもカーネルランドに必要な機能はALSAのHwDepを使って
> ユーザースペースからアクセス可能にする
>  \end{itemize}
>  当初はFFADOの資産を再利用するつもりだった
>  \begin{itemize}
>  \item が、それは困難を伴うことが後に判明
>  \end{itemize}
> \end{frame}
> 
> \begin{frame}{FFADOの困難}
>  FFADOのツールを開発に用立てるのはむつかしい
>  \begin{itemize}
>  \item libffado2の設計上の欠陥
>  \end{itemize}
>  FFADOのコードベースの古さ
>  \begin{itemize}
>  \item FFADOのツールがPython2で書かれている
>  \end{itemize}
>  開発に用立てるツールの必要
>  \begin{itemize}
>  \item libhinawaの開発に着手
>  \end{itemize}
> \end{frame}
> 
> \begin{frame}{libhinawaの設計}
>  キャラクタデバイスに対する入出力の抽象
>  \begin{itemize}
>  \item /dev/fw[0-9]*
>  \item /dev/snd/hwC[0-9]*D0
>  \end{itemize}
>  GObject Introspectionによる、言語バインディングからの利用
>  \begin{itemize}
>  \item 140デバイスそれぞれ固有の操作が必要
>  \item デバイス操作方法を見出す試行錯誤が必要
>  \item LLで書きたかった
>  \end{itemize}
> \end{frame}
> 
> \begin{frame}{libhinawaの開発}
>  \begin{itemize}
>  \item 2014年9月あたりに開発着手。CのライブラリAPIを公開 (0.2.0)
>  % [alsa-devel] [RFC] libhinawa: a light-weight I/O library for
> status/transactions to ALSA FireWire devices
>  %
> http://mailman.alsa-project.org/pipermail/alsa-devel/2014-September/0
> 81732.html
>  \item 2015年1月にGObject Introspection対応 (0.3.0)
>  % [alsa-devel] [RFC] libhinawa: gobject introspection library for
> ALSA/FireWire transaction
>  %
> http://mailman.alsa-project.org/pipermail/alsa-devel/2015-January/086
> 371.html
>  \item その2週間後にalsa-tools.gitに対するRFC (0.4.0)
>  % [alsa-devel] [RFC][PATCH 00/13] alsa-tools: libhinawa for control
> applications of FireWire devices
>  %
> http://mailman.alsa-project.org/pipermail/alsa-devel/2015-January/086
> 969.html
>  \item 2015年2月にalsa-libへの依存を破棄 (0.5.0)
>  \item 2015年3月に初期のdebian/rpmパッケージングとそれに伴う修正 (0.6.0)
>  \item 2016年1月にDebianへのITPとそれに伴う修正 (0.7.0)
>  %[alsa-devel] About planning of libhinawa ITP to debian project
>  %
> http://mailman.alsa-project.org/pipermail/alsa-devel/2016-February/10
> 3771.html
>  \end{itemize}
> \end{frame}
> 
> \begin{frame}{libhinawa開発の裏}
>  メインラインの作業
>  \begin{itemize}
>  \item Linux 3.16 - 63パッチ
>  %\item https://lkml.org/lkml/2014/6/4/895
>  \item Linux 3.19 - 31パッチ
>  %\item https://lkml.org/lkml/2014/12/11/226
>  \item Linux 4.2 - 22パッチ
>  %\item https://lkml.org/lkml/2015/6/25/59
>  \item Linux 4.4 - 68パッチ
>  %\item https://lkml.org/lkml/2015/11/6/410
>  \end{itemize}
>  Linux stable kernel
>  \begin{itemize}
>  \item バグが報告されたら、その修正パッチを作ってstableに送る。
>  \end{itemize}
> \end{frame}
> 
> \begin{frame}{libhinawaのITP/RFS}
>  作業はgithubを使って進める。
>  \begin{itemize}
>  \item https://github.com/takaswie/libhinawa/
>  \end{itemize}
>  1/14あたり
>  \begin{itemize}
>  \item 林さんと、libhinawaのITPの話をする。
>  \end{itemize}
>  1/18
>  \begin{itemize}
>  \item 林さんから最初のPR
>  \end{itemize}
>  1/24あたり
>  \begin{itemize}
>  \item Ubuntu 16.04のDebianImportFreeze(2/17)に間に合わせる方針
>  % https://wiki.ubuntu.com/XenialXerus/ReleaseSchedule
>  \end{itemize}
>  1/28あたり
>  \begin{itemize}
>  \item Autotools周りの修正終了
>  \item debian/* の用意終了
>  \end{itemize}
>  1/31
>  \begin{itemize}
>  \item DebianプロジェクトにITPすることを、Linux FireWire subsystem,
> Linux sound subsystem、FFADOに対して連絡。
>  \item
> http://mailman.alsa-project.org/pipermail/alsa-devel/2016-January/103
> 693.html
>  \end{itemize}
>  2/2
>  \begin{itemize}
>  \item ITP
>  \begin{itemize}
>  \item https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=813474
>  \end{itemize}
>  \item RFS
>  \begin{itemize}
>  \item https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=813489
>  \end{itemize}
>  \end{itemize}
> \end{frame}
> 
> \begin{frame}{DebianへのITP/RFS後}
>  2/6
>  \begin{itemize}
>  \item 樋口大輔さんにスポンサードしてもらう
>  \item New queue入りする
>  \end{itemize}
>  2/7
>  \begin{itemize}
>  \item 朝、ftp-master入り。unstableリポジトリに入る
>  \begin{itemize}
>  \item https://packages.debian.org/source/sid/libhinawa
>  \end{itemize}
>  \item 夜、UbuntuのDebian AutoSync botが捕捉。universeリポジトリに入る。
>  \begin{itemize}
>  \item https://launchpad.net/ubuntu/+source/libhinawa
>  \end{itemize}
>  \item 深夜、アップストリームに報告
>  \begin{itemize}
>  \item
> http://mailman.alsa-project.org/pipermail/alsa-devel/2016-February/10
> 4046.html
>  \end{itemize}
>  \end{itemize}
> \end{frame}
> 
> \begin{frame}{まとめ}
> \begin{itemize}
> \item libhinawaをDebianプロジェクトにITPしました
> \end{itemize}
> \end{frame}