/
atom.xml
273 lines (205 loc) · 12 KB
/
atom.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title><![CDATA[Category: alsa | @znz blog]]></title>
<link href="http://blog.n-z.jp/blog/categories/alsa/atom.xml" rel="self"/>
<link href="http://blog.n-z.jp/"/>
<updated>2014-04-09T09:49:24+09:00</updated>
<id>http://blog.n-z.jp/</id>
<author>
<name><![CDATA[Kazuhiro NISHIYAMA]]></name>
</author>
<generator uri="http://octopress.org/">Octopress</generator>
<entry>
<title type="html"><![CDATA[第 77 回 関西 Debian 勉強会に参加した]]></title>
<link href="http://blog.n-z.jp/blog/2013-10-27-kansai-debian-meeting.html"/>
<updated>2013-10-27T13:46:00+09:00</updated>
<id>http://blog.n-z.jp/blog/kansai-debian-meeting</id>
<content type="html"><![CDATA[<p><a href="https://wiki.debian.org/KansaiDebianMeeting/20131027">第 77 回 関西 Debian 勉強会</a>
に参加してきました。</p>
<p>前回の「Linuxとサウンドシステム」
の続きの
「ALSAのユーザーランド解説」
と
「git-buildpackage 入門 again」
という話でした。</p>
<!--more-->
<h2>Intro</h2>
<p><code>jessie</code> に向けての話で、
デフォルトの <code>init</code> が <code>systemd</code> に変わるかも、
というのが気になりました。
他に UTF-8 といえば UTF-8 に対応していない namazu のようなものが
どうなるのかというのもちょっと気になりました。</p>
<p>事前課題では、
前回の時に発表者の坂本さんに
VirtualBox の中の wheezy で音が出ない原因を調べてもらって、
<code>alsamixer</code> でボリュームが 0 になっていたから、
というのを直してもらっていたので、
すんなり音を出すことができました。</p>
<p>佐々木さんは警告のフラグ (<code>-Wall -Wextra</code>) を増やしてビルドしていて、
その警告メッセージを事前課題のところに書いていました。</p>
<p>警告の一部は <code>if</code> 文の処理内容が <code>;</code> だけで <code>{}</code> でくくった方が良いという警告だったのですが、
何もしないままよりも、
後ろにコメントで書いてあるメッセージを <code>puts</code> などで出力するようにした方が良いのではないかと思いました。</p>
<h2>ALSA のユーザーランド解説</h2>
<p>事前課題の添付ファイルの <code>pcm_minimal.c</code> の <code>device</code> のところにある
PCM ノードの指定は <code>default</code> 以外にも
<code>aplay -L</code> (または <code>arecord -L</code>) で表示されるものが指定できるという話がありました。</p>
<p><code>c
/* playback PCM node */
static char *device = "default";
</code></p>
<p><code>dmix</code>, <code>dsnoop</code>, <code>hw</code>, <code>plughw</code> はデフォルトでは隠されていて、
<code>~/.asoundrc</code> で以下のように設定をオーバーライドすれば <code>aplay -L</code> などで
出てくるようになるという話がありました。
(ALSA の上流や Debian では出ないのがデフォルトで、
Ubuntu ではパッチが当たっていて、
標準で出てくるようになっているという話もありました。)</p>
<p><code>text ~/.asoundrc
defaults.namehint.extended on
</code></p>
<p>その前に asound の設定ファイルは独自形式で、
書式の説明は <code>libasound2-doc</code> パッケージの
<code>/usr/share/doc/libasound2-doc/html/</code>
以下にあるという話もありました。
独自形式のため、ライブラリとして設定ファイルを読み込む部分も持っているそうです。</p>
<p>PulseAudio 関係のパッケージを入れた時に
default が dmix/dsnoop から pulse に変わって、
PulseAudio のデーモンはログイン時に起動するという話もありました。</p>
<p>Android ではユーザーランドは asound ではなく tinyalsa で
カーネルランドは ASoC という話もありました。</p>
<h2>git-buildpackage 入門 again</h2>
<p>実際に <code>git-buildpackage</code> を使ってみるという内容でした。
最初にモバイルルーターなどを使ってみんなネットにつながるようにしてから始まりました。</p>
<p>事前課題で候補にあがったものを実際に <code>git-buildpackage</code> でビルドしてみるという話が続きました。
最後は時間切れで次回予告などは片付けをしながらになってしまいました。</p>
<p>最新の <code>git-buildpackage</code> だと <code>git</code> と同じように <code>gbp</code> コマンドとそのサブコマンドになっていて、
<code>wheezy</code> だと <code>gbp-clone</code> などの <code>-</code> 付きのコマンドを実行する必要がありました。</p>
<p><code>git-dch</code> という <code>git</code> のコミットログから <code>debian/changelog</code> を生成するツールではコミットログの1行目だけとってくるのがデフォルトの動作で、
<code>--full</code> というオプションでコミットログ全体を使えるとか、
man page の <code>META TAGS</code> にあるような情報を入れられるとか、
そういう話もしていました。</p>
<p><code>gbp clone</code> と <code>git clone</code> の違いは、
gbp 用の設定 (<code>debian/gbp.conf</code> とか) を見るとか、
upstream ブランチとかの設定をしてくれるということでした。</p>
<p><code>pbuilder</code> を使っていても前処理の <code>fakeroot debian/rules clean</code> が <code>pbuilder</code> の外で動いて、
そこで依存パッケージが必要なことがあるので <code>git-buildpackage</code> の前に
<code>build-dep</code> でビルドに必要なパッケージを入れる必要があるという話がありました。</p>
<h2>/dev/snd の ACL</h2>
<p>Debian 勉強会ということでホスト OS は Mac OS X なのですが、
サウンド関連や git-buildpackage は
VirtualBox の中の wheezy で試していました。</p>
<p>そのときに <code>ls -al /dev/snd</code> でサウンド関連のデバイスファイルに
<code>+</code> がついていて ACL がついているということに気がついて、
どこで設定されているのか気になったので帰ってから調べてみました。</p>
<p>```
$ ls -al /dev/snd
合計 0
drwxr-xr-x 3 root root 180 10月 27 22:44 .
drwxr-xr-x 13 root root 3180 10月 27 22:44 ..
drwxr-xr-x 2 root root 60 10月 27 22:44 by-path
crw-rw—-T+ 1 root audio 116, 5 10月 27 22:44 controlC0
crw-rw—-T+ 1 root audio 116, 4 10月 27 22:44 pcmC0D0c
crw-rw—-T+ 1 root audio 116, 3 10月 27 22:44 pcmC0D0p
crw-rw—-T+ 1 root audio 116, 2 10月 27 22:44 pcmC0D1c
crw-rw—-T+ 1 root audio 116, 1 10月 27 22:44 seq
crw-rw—-T+ 1 root audio 116, 33 10月 27 22:44 timer
$ getfacl /dev/snd/seq
getfacl: Removing leading ‘/’ from absolute path names</p>
<h1>file: dev/snd/seq</h1>
<h1>owner: root</h1>
<h1>group: audio</h1>
<h1>flags: —t</h1>
<p>user::rw-
user:admin0:rw-
group::rw-
mask::rw-
other::—–
```</p>
<p>まず、 <code>grep -r snd /lib/udev/rules.d</code> でデバイスを作成している場所を
探してみましたが、 <code>audio</code> グループに設定している箇所しか見つかりませんでした。</p>
<p>```text /lib/udev/rules.d/91-permissions.rules</p>
<h1>sound devices</h1>
<p>SUBSYSTEM==“sound”, GROUP=“audio”,</p>
<pre><code> OPTIONS+="static_node=snd/seq", OPTIONS+="static_node=snd/timer"
</code></pre>
<p>```</p>
<p>次に、ログインしているユーザーの ACL が追加されているということで、
PAM が関係しているだろうという見当をつけて、
<code>/etc/pam.d</code> を確認してみたところ、
<code>common-session</code> の <code>pam_ck_connector</code> が関係してそうだと気付きました。</p>
<p><code>text /etc/pam.d/common-session
session optional pam_ck_connector.so nox11
</code></p>
<p>そこで <code>dpkg -L consolekit</code> などで <code>ConsoleKit</code> 関連のファイルをみていくと
<code>/usr/lib/ConsoleKit/run-seat.d/udev-acl.ck -> /lib/udev/udev-acl</code>
が関係してそうだと気がついたので、
もう一度 udev のルールを確認してみると <code>70-udev-acl.rules</code> で
<code>udev-acl</code> というタグを設定していました。</p>
<p>```text /lib/udev/rules.d/70-udev-acl.rules</p>
<h1>sound devices</h1>
<p>SUBSYSTEM==“sound”, TAG+=“udev-acl”
```</p>
<p><code>70-udev-acl.rules</code> をみたり <code>udev-acl</code> のソースをみると <code>ACL</code> を設定しているのは
<code>udev-acl</code> で間違いなさそうでした。
ただし、 <code>70-udev-acl.rules</code> で
<code># systemd replaces udev-acl entirely, skip if active</code>
と書いてあったので、 <code>systemd</code> を使っている環境だと
<code>udev-acl</code> は何もしないようです。</p>
]]></content>
</entry>
<entry>
<title type="html"><![CDATA[第 76 回 関西 Debian 勉強会に参加した]]></title>
<link href="http://blog.n-z.jp/blog/2013-09-22-kansai-debian-meeting.html"/>
<updated>2013-09-22T13:40:00+09:00</updated>
<id>http://blog.n-z.jp/blog/kansai-debian-meeting</id>
<content type="html"><![CDATA[<p><a href="https://wiki.debian.org/KansaiDebianMeeting/20130922">第 76 回 関西 Debian 勉強会</a>
に参加してきました。</p>
<p>「Linuxとサウンドシステム」
という主に ALSA の話と
「dgit でソースパッケージを触ってみる」
という話でした。</p>
<!--more-->
<h2>事前課題</h2>
<p>「libasound2-data」が wheezy には無いという無理難題だったので、
<a href="http://mla.n-z.jp/?debian-users:56906">debian-usersで質問してみた</a>
ところ、
<a href="http://mla.n-z.jp/?debian-users:56907">wheezyではlibasound2がインストールされていれば大丈夫</a>
という話でした。</p>
<h2>Linuxとサウンドシステム</h2>
<p>主に ALSA の話で、
サウンドシステム周りはいろいろ関連するものが多くて大変そうな印象を受けました。</p>
<p>説明以外の実際にコマンドを試す部分では、</p>
<ul>
<li><code>/dev/snd/</code></li>
<li><code>/proc/asound/</code></li>
<li><code>/proc/asound/cards</code>
(ALSA が認識しているカードの一覧)</li>
<li><code>/usr/include/sound/asound.h</code>
(<code>linux-libc-dev</code> パッケージに入っていた)</li>
<li><code>/proc/asound/card0/pcm0p/sub0/status</code>
(再生出来ないときのトラブルシューティングに有用、入力側は pcm0c)</li>
<li><code>/sys/class/sound/</code></li>
<li><code>/usr/share/alsa/</code>
(<code>libasound2</code> の設定ファイルとか)</li>
</ul>
<p>あたりの話がありました。</p>
<p>最終的には時間が足りなくて、続きは次回ということになりました。</p>
<p>VirtualBox に Wheezy を入れた環境を用意していたのですが、
なぜか音が鳴らなくて、
最終的に懇親会の時に調べてもらったら、
結局ボリュームがミュートになっていたというのが
原因でした。</p>
<h2>dgit でソースパッケージを触ってみる</h2>
<p>いきなり現状は DD (Debian Developer) じゃないと使えないツールという話でした。
そのうち一般ユーザーでも使えるようになるかも、ということで、
主に調べた内容の発表でした。</p>
<p><code>dgit</code> を使っているパッケージは
<a href="http://anonscm.debian.org/gitweb/">http://anonscm.debian.org/gitweb/</a>
の <code>dgit-repos/</code> でわかるようです。</p>
<p>最後は
Debian Developer
の矢吹さんに実際に使えるところを
デモしてもらえて終わりました。</p>
]]></content>
</entry>
</feed>