「ホビーとしてのPC」を思う

かつて「MacとWindows」は二項対立の文脈で語られたものだが、そんな話もいまや昔。市場シェアはいまもWindowsが圧倒的優位だが、長年にわたるAppleの開発者フォローアップが奏功してか、ソフトのバリエーションという点では引けをとらない。同じApple製品でiPhone/iPadとの連係に有利ということもあり、Macオンリーの人気ソフトも少なくないほどだ。

しかし、"手をかける"機会は減った。CPUの換装はおろかメモリの増設すらユーザの自由にはならず、大半のユーザは拡張ボードを意識していない。もうOrangePC(PCとして動作する拡張ボード)のような変態的周辺機器を目にすることはないのだろう。それはWindows PCといえど同じこと、これも時代の流れだ。

そのためか、Mac以外に"ホビーとしてのPC"を求めるユーザが現れはじめた。一例がRaspberry Piなどの「シングルボード・コンピュータ」だ。むき出しの基板とLinuxという組み合わせは、くすぶっているマインドを奮い立たせてくれる。特に、タブレット菓子ほどのサイズに1GHz動作のCPUと512MB RAMを搭載、しかも500円という超低価格の「Raspberry Pi Zero」は、ホビー用途にちょうどいい。

このRaspberry Pi Zero、よく見れば「Macのよきパートナー」となる可能性を秘めている。Linuxには各種再生ソフトやAirPlay互換機能(ShairPort-sync)が充実しているので、音楽用途だけでもかなりのことができる。AvahiというBonjour互換機能も利用できるから、通信もかんたんだ。

それに、USB microB端子がOTG対応なので、MacのUSBポート経由で通信/電源調達できる。標準のRaspbery Pi Zero(最近Wi-Fi対応の「W」が発売された)でも、OTGケーブルでMacとつなげばストリーミングプレイヤーとして活用できるということだ。またしても壮大な前振りとなったが、今回はそんなRaspberry Pi ZeroをMac経由でインターネットに接続する手順を紹介したい。

ヘッドホン端子付きDACボードを装備した筆者のRaspberry Pi Zero。Wi-Fi対応ではないが、Macにつなげばじゅうぶん楽しめる

Raspberry Pi ZeroをUSBにつなぐための設定

これから行う作業は、Linuxの「USB Gadget」を利用したもの。2016年6月公開のRaspbian(Raspberry Piの公式Linuxディストロ)でサポートされた機能で、USBがEthernetやシリアル通信として振る舞うことを可能にする。USBコントローラの関係で他のRaspberry Piでは利用できない、Zero専用のフィーチャーだ。

Zero側の準備は、bootパーティションにある設定ファイル「config.txt」と「cmdline.txt」をかきかえること。前者は最終行に「dtoverlay=dwc2」を、後者は行末のrootwait以降(ファイルは1行で構成される)に「modules-load=dwc2,g_ether」を書き加えればOK。

なお、Raspbianをベースに開発された最新のLinuxディストリビューションであれば、同じ設定が使えるはず。実際、MacBook Air/macOS Sierra 10.12.15を利用し、Moode AudioとVolumioの最新版で試したところ、支障なく動作することを確認している。

リスト1:config.txtの記述例

disable_splash=1
hdmi_drive=2
dtparam=i2c_arm=on
dtparam=i2s=on
dtoverlay=dwc2


リスト2:cmdline.txtの記述例

dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=PARTUUID=a8790229-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait modules-load=dwc2,g_ether

「RNDIS/Ethernet Gadget」ポートをチェックしたうえでインターネット共有を有効にしておくこと

Raspberry Pi ZeroをMacのUSBポートに接続すると、「自己割り当てIPアドレス」がリースされる

USBでつながる「Macの子分」

Mac側の設定は、システム環境設定「共有」ペインを開き、「RNDIS/Ethernet Gadget」にチェックを入れたうえでインターネット共有を有効にすればOK。あとはUSB OTGケーブルでMacと接続すれば、ZeroにIPアドレスが貸与されて通信可能になる。

接続の確認は、Terminalからpingコマンドを利用する。Raspbian系ディストリビューションは、デフォルトでBonjour互換のAvahiが有効なはずなので、「ping raspberrypi.local」などという形式でOKだ。ホスト名はディストリビューションごとに異なるため、Moode Audioは「moode.local」、Volumioは「volumio.local」のように環境にあわせて変更しよう。

Raspbian系ディストリビューションは「Avahi」が有効なため、Bonjourのような感覚でホスト名を指定できる

Macを介してインターネットに接続できるから、音楽ストリーミングサービスを楽しむことも

この作業の何がおもしろいのかという話になると思うが、よく考えていただきたい。マッチ箱程度のマシンがMacのUSBポートに挿すだけで動き出し、独立したLinuxシステムとして活用できるのだ。

USBバスパワーで動作するからバッテリーを持ち歩く必要はなく、インターネットにもMacを経由して接続できる。ミュージックサーバといったホビー用途はもちろん、HTTPサーバを動かしWEBアプリのプロトタイプを開発する用途にも使える。SSHサーバを稼働させておけば、MacのTerminalから存分に機能を利用できる。SMBを動かしファイルサーバとして活用してもいいだろう。USBでつながる「Macの子分」には、大きな可能性があると思う。

USBバスパワーで動く小さなLinuxマシンで、Macの使いかたが変わるかも?