東京エリア Debian 勉強会
第 75 回 2011 年 5 月度

岩松 信洋 iwamatsu@debian.org
IRC nick: iwamatsu

2011 年 5 月 21 日

Agenda

注意事項
飲酒禁止
宗教禁止
営利活動禁止最近あった Debian 関連のイベント報告
第 75 回 東京エリア
Debian 勉強会
第 46 回関西
Debian 勉強会@OSC2011 Kobe

Apache2 のモジュールをつくってみた
Debian on NiftyCloud
Debian/m68k 開発
月刊 PPC64 ポーティ
ング

前回

注意事項
飲食禁止
宗教禁止
営利活動禁止最近あった Debian 関連のイベント報告
会長就任挨拶

backports.debian.orgの話
initramfs-tools の話
月刊 PPC64 ポー
ティング
僕が DD 目指すの手伝ってくださいイベント報
告DWN quiz

Debian 常識クイズ

Debian の常識、もちろん知ってますよね? 知らないなんて恥ずかしくて、知らないとは言えないあんなことやこんなこと、みんなで確認してみましょう。
今回の出題範囲は
debian-devel-announce@lists.debian.org に投稿された内容と Debian Project News からです。

問題 1. HPPA と alpha の移転先はどこでしょうか？

A buildd.debian.or.jp

B buildd.debian-ports.org

C www.buildd.net

問題 1. HPPA と alpha の移転先はどこでしょうか？
答えは:

A buildd.debian.or.jp

B buildd.debian-ports.org

C www.buildd.net

B問題 1. HPPA と alpha の移転先はどこでしょうか？

解説：問題 2. linux カーネル 2.6.39 が Debian に入ることによって起きる変更は？

A i386-bigmem が i386-pae になった
B amd64 が i386 になった
C i386 は amd64 のマルチバイナリになった

問題 2. linux カーネル 2.6.39 が Debian に入ることによって起きる変更は？
答えは:A i386-bigmem が i386-pae になった
B amd64 が i386 になった
C i386 は amd64 のマルチバイナリになったA

問題 2. linux カーネル 2.6.39 が Debian に入ることによって起きる変更は？

解説：

問題 3. Qt3 パッケージが削除されない理由は？

A Qt3 ユーザによる哀願のため
B LSB 4.1 が Qt3 を必要としているためC 削除の仕方がわからない

問題 3. Qt3 パッケージが削除されない理由は？

答えは:

A Qt3 ユーザによる哀願のため
B LSB 4.1 が Qt3 を必要としているためC 削除の仕方がわからない

B

問題 3. Qt3 パッケージが削除されない理由は？

解説：問題 4. Debian のサーバに追加された機能は？

A ログインしているユーザをIRC に流す機能
B RFC1149 の実装

C DNSSEC

問題 4. Debian のサーバに追加された機能は？

答えは:

A ログインしているユーザをIRC に流す機能
B RFC1149 の実装

C DNSSECC

問題 4. Debian のサーバに追加された機能は？

解説：preworkキタハラ

Debian 限定だと思いつかない・・・ 。 (お題の意図を読み違えているのかも) apt-get を http で実行するとウェブサービスと言える?

MATOHARA

Debian 使いとしてウェブサービスに期待すること．最近は少なくなりまし
たが， IE 必須のサービス等の環境依存のサービスをやめて欲しいです．最近だと Silverlight 必須のサービスで Moonlight で動きそうで動かないといったことがありました．
http://live6.channel.ne.jp/world_ipv6/

taitioooo

情報に対する課金がなくなること。

野島 貴英jslinux という強力なエミュレータも出たので、ブラウザで動く
Debian experimental 環境とかブラウザで動く Gnome のお試し環境とかを提供するウェブサービスとか素敵かも。こもきっとウェブサー
ビス！（ なんか空気読めてない回答な気もするけど...)USB に書き込めば debian 環境がそのままブートできるようなイメージをつくってくれるウェブサービスが良さそうな気も... 例えば、パッケージ一覧にチェック入れて、 sid とかにチェック入れると、 USBメモリにそのまま書き込めばその仕様で debian sid がブートできるようなカスタムイメージを作ってくれるとか。
チェックボックスとセレクタだけで、 preceed ファイル生成してくれるウェブサービスもいいかも... 大量のインストール時とかよさそう。
（ もう言いたい放題ですね...)岩松 信洋全世界の Web サーバを提供する OS が Debian になること。
分散コンパイルサーバとか欲しい。

日比野 啓Web サービスもできれば機械処理しやすいものが良い。あと、クラウド上での API を提供しているようなサービスに、関数型言語に対するサポートが増えてほしい。

dictoss(杉本 典充)

CPU とある deb パッケージを選択すると、その CPU 向けに最大限の最適化したパッケージと依存するパッケージを再ビルドしてくれるサービス。

kazken3

翻訳をたまにしているので、ディストリビューション間横どおしでの翻訳関連情報を提供するサイトがあればいいなと思うことがあります。
＃課題とは少しズレているかも知れませんが、＃個人向けのウェブサービ
スには食傷気味というところもあるので。

まえだこうへい

Debian システムで作った環境との相互互換性。例えば、最近 GAE/Pythonをよく使うので、作ったシステムを GAE/Python ¡-¿ → Debian システムのどちらでも (ほとんど変更なしで) 動かせると便利ですね。すぐ始めるのにクラウドサービスを利用して作ったけど将来は Debian で動かしたい、逆に今は政治的な理由で外に出せない Debian システムを将来は自分の管理から外れるので手離れをよくするためにクラウドサービスに簡単に移行できる、など。

yamamoto

そうですね。今の所導入を検討しているのは、パーソナルストレージサー
ビスぐらいですかね。あらゆる所で自分のデータが自分で共有できれば、それで十分な感じです。

Apache2 のモジュ ールをつくっ てみたApache2 モジュール入門

apache httpd で動くモジュール
C 言語で実装
Debian の流儀

apxs2: テンプレ作成$ apxs2 -g -n dancerqps$ cd dancerqps
$ ls
$ ls
Makefile mod_dancerqps.c

modules.mk

コードを書く

適当にフックを記述

apxs: インストール

コンパイルしてインストール$ sudo apxs2 -c -i mod_dancerqps.c

実行

4 種類方法があります。
Debian way 1 a2enmod
Debian way 2 手動で設定
Apache を適当な httpd.conf で起動
Apache を自前でインストールしなおす適当な httpd.confListen 8080
LockFile /home/test/tmp/apache.1.lock
PidFile /home/test/tmp/apache.1.pid# log configuration.
LogFormat "%h %l %u %t \"%r\" %>s %b" common
CustomLog "/home/test/log/access_log" common
ErrorLog "/home/test/log/error_log"# Order, Allow.
LoadModule authz_host_module /usr/lib/apache2/modules/mod_authz# map from / -> /index.html
LoadModule dir_module /usr/lib/apache2/modules/mod_dir.so
DirectoryIndex index.html index.cgi index.pl index.php index.xh# .html -> content-type: text/html
LoadModule mime_module /usr/lib/apache2/modules/mod_mime.so
TypesConfig /etc/mime.types# Document root
DocumentRoot "/home/test/hoge"<Directory "/home/test/hoge">apache 実行

APACHE_RUN_USER=dancer \APACHE_RUN_GROUP=dancer \/usr/sbin/apache2 -f $(readlink -f ./httpd.conf) -k restartapachebench 使ってみる$ /usr/sbin/ab -c 100 -n 100 http://localhost:8080/

apache 実行$ /usr/sbin/ab -c 100 -n 100 http://localhost:8080/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeus
Licensed to The Apache Software Foundation, http://www.apache.o
Benchmarking localhost (be patient).....done
Server Software:
Server Hostname:Server Port:

Apache/2.2.9
localhost
8080

Document Path:
Document Length:/44 bytes

Concurrency Level:
Time taken for tests:
Complete requests:
Failed requests:
Write errors:
Total transferred:
HTML transferred:

1000.056 seconds
1000029600 bytes
4400 bytes

Debian on
NiftyCloudDebian/m68k
開発m68k とは？
Motorola
680x0/m68000/68000 の事。省略して m68k。
32bit で CISC。エンディ
アンはビッグ。
今はフリースケール・ セミコンダクタによって開発および販売。
Debian に最初にポーティ
ング (hamm) され、最初に脱落した (etch) アーキテクチャ。

メーカ
Apple
シャープ
PalmATARIHP
SUN
DEC
SGI
SEGA
SNK

ハードウェアMacintosh SE
X68000Palm Pilot
Atari Falcon
HP 9000 Series 200
Sun-1
VAXstation 100
RIS 1000
メガドライブネオジオ

Debian/m68k の現状
etch から脱落した後、 Thorsten Glaser
氏が拾い上げ debian-ports.org 上で開発継続中。
ハードウェア（ ATARI 社の Amiga など）は入手が難しくなっているので主にエミュレータを使っている。
Debian の bootstrap が行える程度のパッケージはメンテナンスされている。
ちなみに、 Debian に再度取り込むことは目標にしていない。 Linux/m68k の開発ベースとして生きるみたい。
開発議論は ML（ http://lists.
debian.org/debian-68k/）と IRC（ debian-68k@oftc）で行われている。

なぜ m68k に手を出してしまったのか

Ruby1.9.1 パッケージのバグ #611691（ m68k がFTBFS）を見つけた。
Ruby コミッタになったのでなんかできないかなぁと。

開発環境設定方法

実機での開発は行われておらず、エミュレータを使って開発。

qemu の 68k は不具合が多いので、 Debian では
ARAnyM という 68k エミュレータを使って開発。

ARAnyM とはARAnyM は Atari Running on
Any Machine の略。
68040 + MMU + FPU(68882)を実装したエミュレータ。
グラフィックス、ディスクドラ
イブ、 CDROM、ネットワークのサポート。
OpenGL を使った高速なグラフィックと 4GB のメモリを扱える。

ARAnyM のインストール$ sudo apt-get install aranym p7zip

カーネルとユーザランドイメージのダウンロード

Debian m68k の開発に必要なカーネル、ユーザランドイメージのダウンロードします。

$ wget http://debian.nctu.edu.tw/debian-ports/pool-m68k/main \/l/linux-2.6/linux-image-2.6.38-2-atari_2.6.38-5_m68k.deb$ ar -x linux-image-2.6.38-2-atari_2.6.38-5_m68k.deb$ tar -xzf data.tar.gz$ ls boot/vmlinuz-2.6.38-2-atari-rw-r--r-- 1 iwamatsu iwamatsu 1767311 2011-05-12 00:48 boot/vm

build-essentail がインストールされたイメージが既にある。

$ wget http://people.debian.org/~smarenka/aranym/sid/disk.tar.7$ 7zr x -so disk.tar.7z | tar xvf $ ls -l disk.img-rw-r--r-- 1 iwamatsu iwamatsu 10737377280 2011-05-18 00:37 disネットワーク構成

uml-utilities パッケージのインストール

ARAnyM では tun を使うので uml-utilities パッケージをインストールする。
$ sudo apt-get install uml-utilities

uml-net グループへの追加

tun および ARAnyM を使うユーザを uml-net に追加する。
$ sudo gpasswd -a iwamatsu uml-net

ネットワークの設定

ホスト側の ネットワークを以下のように設定する。

$ cat /etc/network/interfaces
auto tap0
iface tap0 inet static
address 192.168.2.1pointopoint 192.168.2.2
netmask 255.255.255.255
tunctl_user iwamatsu
up iptables -t nat -A POSTROUTING -s 192.168.2.2 -j MASQUERADE
down iptables -t nat -D POSTROUTING -s 192.168.2.2 -j MASQUERAD

フォワーディングを有効

フォワーディングを有効にして、 tap0 ネットワークデバイスを上げる。
$ sudo sh -c ’echo 1 > /proc/sys/net/ipv4/ip_forward’$ sudo ifup tap0

Aranym の設定$ cat aranym.config[GLOBAL]
FastRAM = 768 # メモリサイズ。単位は MB。
Floppy =TOS =EmuTOS =AutoGrabMouse = No
GMTime = Yes[LILO]# Linux カーネルイメージ
Kernel = vmlinuz-2.6.38-2-atari# these Args for normal X operation# カーネルコマンドライン
Args = root=/dev/hda1 console=tty debug=par# these Args for headless#Args = root=/dev/hda1 console=nfcon# ネットワーク設定[ETH0]
Type = bridge

Aranym の起動$ aranym-mmu -l -c aranym.config

uname と /proc/cpuinfo:$ uname -a
Linux aranym 2.6.38-2-atari #1 Mon May 9 16:39:31 UTC
2011 m68k GNU/Linux$ cat /proc/cpuinfo
CPU:68040
MMU:68040
FPU:68040
Clocking:73.5MHz
BogoMips:49.04
Calibration:245248 loopsターゲットでの設定
Debian OS が立ち上がったら、 root ユーザでログイン（ パスワードは無し）し、ネットワーク設定を行う。
起動時に ARAnyM の仮想ネットワークデバイス（ nfeth:nat-feature) を eth0 として認識する。
認識されている場合には、 ARAnyM で設定した MAC アドレスが eth0 が認識されている。

# dmesg | grep eth0
eth0: nfeth addr:192.168.0.1 (192.168.0.2) HWaddr:XX:XX:XX

もしホスト側の設定が間違っている場合、 eth0 が存在しない状態になる。このような場合には、ホスト側の設定を見直す。

eth0 が認識されているのなら、/etc/network/interfaces と/etc/resolv.conf を以下のように変更する。
# cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet staticaddress 192.168.2.2
netmask 255.255.255.0
gateway 192.168.2.1# cat /etc/resolv.conf
nameserver 192.168.3.1

ネットワークのチェックと確認# ifup lo# ifup eth0
# ping 192.168.2.1 # gateway へのチェック# ping 192.168.3.1 # DNS へのチェック# apt-get update# apt-get update# apt-get install debian-ports-archive-keyring# apt-get update# apt-get dist-upgrade

その他開発環境

エミュレータを使って開発できるのはすごく良いことなのですが、エミュレータだけでは遅いのでクロスツールチェインが欲しくなります。 Debian でのクロス toolchain は emdebian プロ
ジェクトが提供していますが、 m68k のものは提供されていません。しかし、 amd64 バイナリは Thorsten Glaser 氏が以下の apt-line で提供しています。
deb http://www.freewrt.org/~tg/debs68k/ cross main

ARAnyM 上での開発動作しているのが エミュレータ上というだけで通常の開発と変わらない。

cowbuilder も使えるので、遅いという以外には問題はないだろう。
開発速度を上げたい場合には、 distcc/icecc/ccache など使うとよい（ このあたりの話はまた今度）。

Ruby の FTBFS バグはどうなったのか？

Debian/m68k の開発環境は構築できましたが、 Ruby のバグはどうなったのかというと、http://redmine.ruby-lang.org/issues/4745 としてバグレポートし、 r31646 でコミットしておきました。

月刊 PPC64
ポーティ ング今後のイベント

5 月 第 47 回関西 Debian 勉強会 (5 月 22 日)
6 月 OSC2011 Hokkaido 出張勉強会 (6 月 11 日), 第 77回東京エリア Debian 勉強会 (6 月 18 日)
7 月 Debian 勉強会 & Debconf11 in ボスニア
未実施ネタ： PS Move ネタ? デジタル放送取り込み? Debian
Pod cast? 100 台 Squeeze アップグレード (吐血) 体験記?

今日の宴会場所

新宿のどこか。