#5000へCメールを送れないau端末でezweb.ne.jpの電子メールアドレスをIMAP4/SMTPで扱う方法
前に、電話番号#5000にCメールを送れるau端末を持っている場合の、ezweb.ne.jpドメインの電子メールをIMAP4/SMTPで扱う方法を書いたのだが、手元にもう一台あるW61CAは、#5000へはCメールを送信できない。
その場合の方法を模索して、可能になったので書いておく。
W61CA以外にも、Androidな端末でも#5000へCメールを送れない機種は存在するようなので、最近の機種の場合には役立つかもしれない。
ちなみに、#5000へ送信できた端末は、W64Kであった。
過去の記事とは、
http://blog.onodera.asia/2014/12/auezwebnejpmew.html
を指す。
## IMAP4/SMTP用のユーザーIDとパスワードの入手
(1) まずは、au IDに登録する。これによって、標準的には電話番号のユーザーIDのアカウントが作成される。ここで、パスワードを登録しないことも選択できるのだが、パスワードを設定しておく。
これは標準的にはフィーチャーフォン(W61CA)のEZwebなブラウザーの上で行うことになる。
(2) ついでに、ウェブメールのサービス登録をする。
これをしないと以下の設定ができないことはないと思うが、私の場合はここでしてしまった。これについては、公式な情報がちゃんとあるので、説明は割愛する。
(3) フィーチャーフォンから、au.NETに接続する。これは過去の記事で、NetBSDの場合を書いているので、その通りに実施すれば良い。
(4) au.NETの回線で、iPhoneのuser agentを偽装したFirefoxを使い、https://set.mail.ezweb.ne.jp/md/signin を開く。これについても、方法は基本的には前の記事に書いた通りである。
au IDとパスワードを入力する。
すると、#5000にCメールを送り返信されて来たURLにアクセスしたのと同じウェブページへ行くことができる。
ここで、電話番号0002001003からMMSメールアドレスの通知をするCメールが送信されて来る。
(5) 手動設定のリンクから、設定情報送信リンクのある画面へ行き、そのリンクにアクセスする。そうすると、電話番号0002001003からIMAP4/SMTP用のユーザーIDとパスワードがCメールで送信されて来る。
(6) 適当なMUAにそれらを設定する。過去の記事にmewに設定した場合を書いた。
(7) 電話番号00090015へ本文1234なCメールを送信する。
## まとめ
電話番号#5000にCメールを送れないau端末の場合でも、au.NETの回線でウェブアクセスでき、user agentを偽装できる環境があれば、IMAP4/SMTPのユーザーIDとパスワードを入手することができる。この方法をとっても、特にezweb.ne.jpな電子メールアドレスへの電子メールのフィーチャーフォンへの到着通知に影響はなかった。
auのezweb.ne.jpな電子メールアドレスをmewから使う
mew http://www.mew.org/ がIMAP4に向いていないのは良く理解しているつもりであるが、私の通常の環境はPOP3で受信する環境なので、mewが良い。
今回書く内容は、別に他のIMAP4が使えるMUAでも当てはまるので、mewが最適かどうかは話題にしない。
## はじめに
ドメインがezweb.ne.jpな電子メールアドレスは、auの携帯電話用に提供されているものであるが、長らくPCからは送受信できなかった。
私は、電子メールの通信料は無料になる料金プランに加入しているので、PCで送受信する金銭的なメリットもないように思う。
ただ、せっかくできるのに設定しておかないのはもったいないので、設定してみた。
PCから送受信するサポートされている手法は、https://mail.ezweb.ne.jp/login から使えるウェブメールサービスなので、特にこだわりがなければ、それを使えば良いと思う。
## IMAP4/SMTP用のユーザーIDとパスワードの入手
Googleで、"ezweb imap"などと検索してみると、Apple iPhone用にユーザーID/パスワードが取得でき、それを使って他社のAndroidなスマートフォンやPCから送受信する例を見付けることができる。
ただし、それらの例では、すでに手元にAndroidなauのスマートフォンがあって、それのウェブブラウザーのuser agentをApple iPhoneに偽装して作業している。
私はauのスマートフォンなど持っていないので、それに替えてCDMA 1X WINなフィーチャーフォンのUSBモデム機能を使って、au.NETにダイヤルアップ接続してユーザーIDとパスワードを入手できるか試した。
私の環境はNetBSDであるので、以下のようにpppd(8)を使ってau.NETに接続した。
(1) フィーチャーフォン附属のUSBケーブルを使ってPCとつなぐ。
(2) マスストレージ/データ通信の選択画面で、データ通信を選択する。
dmesgに以下のように認識された。よって/dev/ttyU0から使用できる。
umodem0 at uhub1 port 2 configuration 1 interface 0 umodem0: Kyocera Corporation Kyocera EV-DO Technologies, rev 2.00/0.00, addr 6, iclass 2/2 umodem0: data interface 1, has CM over data, has no break umodem0: status change notification available ucom0 at umodem0
(3) pppd(8)の設定をする。以下のようにファイルを用意する。
PPP接続のユーザーIDとパスワードは、共通のものであるので、特に隠してはいない。
http://www.au.kddi.com/wau/auinfo/aunet_settei.html から確認できる。
PPP接続の場合にDNSサーバーのIPアドレスをもらってくる方法を忘れたので、
手作業で追加した。
# mkdir /etc/ppp/peers
# touch /etc/ppp/options
# cat /etc/ppp/peers/au.net
ttyU0 115200
crtscts
modem
lock
defaultroute
connect '/usr/sbin/chat -V -f /etc/ppp/chat-au.net -T *99**24#'
noauth
name au@au-win.ne.jp
# cat /etc/ppp/chat-au.net
ABORT "NO CARRIER"
ABORT "NO DIALTONE"
ABORT "ERROR"
ABORT "NO ANSWER"
ABORT "BUSY"
ABORT "Username/Password Incorrect"
"" "at"
OK "atz"
OK "atdp*99**24#"
CONNECT ""
# cat /etc/ppp/pap-secrets
au@au-win.ne.jp * au
# cat /etc/resolv.conf
nameserver 210.196.3.183
nameserver 210.141.112.163
# chmod 660 /dev/ttyU0
(ここで、自分はwheelグループに所属していると仮定している。)
(4) ダイヤルアップ接続する。
$ pppd call au.net
を実行して、接続する。
正常に接続すると、/var/log/messagesに以下のように出力される。
pppd 2.4.7 started by ryo_on, uid 1000
set_up_tty: Changed queue size of 4 from 1024 to 32768
Serial connection established.
Using interface ppp0
Connect: ppp0 <--> /dev/ttyU0
Warning - secret file /etc/ppp/pap-secrets has world and/or group access
Warning - secret file /etc/ppp/pap-secrets has world and/or group access
PAP authentication succeeded
local IP address 106.xxx.xxx.xxx
remote IP address 172.xxx.xxx.xxx
(5) フィーチャーフォンから#5000の電話番号に本文が1234であるCメールを送信する。
0002001003の電話番号からCメールで「メール設定用URL」としてset.mail.ezweb.ne.jpなURLが送信されて来るので、PCに転送する。この作業は(1)の前にやっておいても良いようだ。
(6) FirefoxにUser Agent Switcher extensionをインストールし、デフォルトで用意されているiPhone 3を選択しておく。
(6) set.mail.ezweb.ne.jpなURLのウェブページを開く。上部のEZwebメールを使用するとか言うリンクをクリックすると、電話番号0002001003から、自分のezweb.ne.jpな電子メールアドレスを通知するCメールが届く。
(7) 引き続き同じ画面の下部に手動設定をするリンクがあるので、クリックすると、設定情報送信というリンクがあるので、クリックする。
(8) 電話番号0002001003からCメールで「メール設定」としてユーザー名/パスワードを通知されて来る。
(9) mewには以下のように設定する。一部抜粋したものを掲載する。
(setq mew-config-alist '( ("ezweb" ("pop-delete" . nil) ("user" . "@の前の文字列") ("name" . "Ryo ONODERA") ("mail-domain" . "ezweb.ne.jp") ("smtp-server" . "smtp.ezweb.ne.jp") ("smtp-auth" . t) ("smtp-user" . "Cメールで通知されて来たユーザー名") ("smtp-port" . "submission") ("smtp-auth-list" . ("CRAM-MD5")) ("imap-ssl" . t) ("imap-user" . "Cメールで通知されて来たユーザー名") ("imap-server" . "imap.ezweb.ne.jp") ("imap-auth" . pass) ) ) )
(10) mewで$inboxにアクセスし、C-uZでフォルダー情報を更新した後にSでアップデートすると、今ezweb.ne.jpのサーバーにある電子メールを参照できる。
## おわりに
mewの場合、ユーザー名は~/.mewに記録しておけるが、パスワードは原則毎回入力するものなので、変更できない現在の仕様はとても不便ではある。
NetBSDでイメージ系USBデバイスを使ってみる
はじめに
USBでつながるデバイスは多くの種類がありますが、NetBSDでどう使うかと言うと、 あまり解説がない気がします。 ちゃんと動かない状況もあると思っているのですが、多くの人が使って バグを報告しないと良くなって行かないと思うので、私の把握できている 使い方をまとめておきたいと思います。
今回は、フラットベッドイメージスキャナーと、ビデオカメラについて、書きたいと思います。
NetBSDの環境としては、NetBSD/amd64 7.99.2を使います。 pkgsrcは、stable branch (pkgsrc-2014Q3等)ではなくcurrentを使います。
フラットベッドスキャナー
私の自由に使えるフラットベッドスキャナーとしては、EPSON GT-8200U、 Canon CanoScan LiDE 40、Canon CanoScan LiDE 500Fの3台を持っている のですが、今回はEPSON GT-8200Uを使ってみます。 Canonの製品は、いずれもNetBSD/amd64 6.99.xの頃には使っていて、 正常に動作していたのですが、7.99.2では動かなくなっていました…。
基本的には、pkgsrc/graphics/sane-backendsとpkgsrc/graphic/xsaneを使います。 pkgsrc/graphics/sane-frontendsのxscanimageは、EPSON GT-8200Uとの組み合わせでは segfaultして動きませんでした。
どれも古いものですが、中古で非常に安価に買えるので、使い始めには 良いように思います。
カーネルの準備
GENERICカーネルでは、EPSON GT-8200Uは、uscanner(4)なデバイスとして 認識されます。 saneを使うには、ugen(4)として認識される必要があります。 USERCONFで無効にするか、kernel設定ファイルでuscannerで始まる行を コメントアウトして、ビルドし直して起動させます。
ugen0: EPSON EPSON Scanner, rev 1.00/1.10, addr 6のように認識されるようになります。
認識できるか確認する
scanimage(1)を使って、SANEで 使用できるか確認します。 scanimage(1)は、pkgsrc/graphics/sane-backendsに含まれているので、 インストールします。
$ cd /usr/pkgsrc/graphics/sane-backends $ make installこのままでは、/dev/usb*と/dev/ugen*が一般ユーザーでは読めないために、 使えません。rootになって自分を所有者にしておきます。 複数人で使うマシンであれば、スキャナーを使えるユーザーの所属するグループ を作成し、そのグループが読み書きできるようにしておけば良いと思います。
# chown YOUR_USERNAME /dev/usb* /dev/ugen*スキャナーをUSB接続した上で、以下のように実行してみましょう。
$ scanimage -L device `epson2:libusb:/dev/usb0:/dev/ugen0' is a Epson GT-8200 flatbed scannerのように表示されます。epson2ドライバーを使っていることが分かります。 以上のように表示されれば、基本的には使えます。
コマンドラインで使ってみる
GUIで操作する前に、コマンドラインで使ってみます。 コマンドラインでも解像度等のいろいろな設定ができるので、 定型のスキャンをするのであれば、一度コマンドラインオプションを しっかり決めて、それを毎回実行するようにすれば、面倒はないと思います。 ここでは、用紙サイズはカードサイズくらい、カラーで、解像度は300 dpi、 出力ファイル形式はTIFFである場合のテストをしてみます。 ファイルにリダイレクトしないとスキャンは実行されません。
$ scanimage --format=tiff --mode Color -x 86 -y 55 --resolution 300 > test.tif例えば、ImageMagickのdisplay(1)コマンド等でスキャン結果は確認できます。 その他のコマンドラインオプションについては、sane-epson2(5)のman pageに 書かれているので、参照してみてください。
GUIでスキャンする
XSane-0.998は古いですが最新のリリースです。 pkgsrc/graphics/xsaneからインストールできます。 以下のように操作します。$ cd /usr/pkgsrc/graphics/xsane $ make installスキャナーを接続した上で、起動させます。
$ xsane&検出されたら、条件を選択した上で、「スキャン」ボタンを押してスキャンできます。
GIMPからスキャンする
XSaneはGIMPのプラグインとして 使うことができます。プラグインとすることで、スキャンした画像を GIMP内に自動的に取り込むことができます。 Microsoft Windows等のAdobe Photoshop等でスキャンするのと同じ感じです。 まずは、GIMPからXSaneをプラグインとして登録します。 ホームディレクトリーのGIMPのディレクトリー以下にシンボリックリンクを 作って置きます。
$ ln -s /usr/pkg/bin/xsane ~/.gimp-2.8/plug-insその上で、GIMPを起動します。GIMPはpkgsrc/graphics/gimpからインストール できます。 起動させると、 GIMPのファイル→画像の生成→XSane: デバイスダイアログ からXSaneを起動させることができます。
「スキャン」ボタンを押してスキャンが終わると、自動的にGIMPに取り込まれます。
ビデオカメラ
LogicoolのWebcam C300 (V-U0004)と言うカメラを持っています。 ビデオチャット用にUSBオーディオデバイスも内蔵されています。 以下のように認識されます。audio1でplaybackがあるのは違いそうな気もしますが…。 USB Video Classなビデオカメラが使えます。
uvideo0 at uhub1 port 2 configuration 1 interface 0: Logitech product 0805, rev 2.00/0.09, addr 4 video0 at uvideo0: Logitech product 0805, rev 2.00/0.09, addr 4 uaudio0 at uhub1 port 2 configuration 1 interface 2 uaudio0: Logitech product 0805, rev 2.00/0.09, addr 4 uaudio0: audio rev 1.00 audio1 at uaudio0: full duplex, playback, capture, independentpkgsrc/graphics/ucviewを使えば、複数のビデオカメラを切り替えて参照すること ができます。 pkgsrc/graphics/mplayerで
$ mplayer -tv fps=30 tv://のようにすれば、参照することができますが、driver=v4l2:...のようなオプションが 効かないようなので、解像度や複数のビデオカメラを扱うことはできませんでした。
qemuでNetBSD/earmを体験する
はじめに
ARMなマシンでNetBSDを体験するには、Raspberry PiとかCubieBoard2とかを買えば良いのですが、まずはARMなNetBSDを触ってみたいだけと言う人もいるかもしれません。http://mail-index.netbsd.org/port-arm/2013/02/06/msg001739.html
の投稿にあるようにすれば、最新のNetBSD/evbearm current (7.99.2)がqemu-system-armで起動するので、ご紹介したいと思います。
このドキュメントは、
http://wiki.netbsd.org/ports/evbarm/qemu_arm/
に以前に書いた内容をまとめ直したものです。
qemuを準備する
まず、qemuを用意します。
NetBSDにはpkgsrcと言うパッケージ管理システムが用意されています。インストールの際に、pkgsrcのツリーも展開してあれば、以下のようにして、ツリーを更新して、2014年12月4日現在の最新版であるqemu 2.1.2をインストールすることができます。
$ cd /usr/pkgsrc $ cvs update -dPA # pkgsrcのツリーを更新します。anoncvs.NetBSD.orgと同期させます。 $ cd emulators/qemu $ make clean && make install # 途中で、rootのパスワードを求められるので、適宜入力してインストールします。
ここまでで、qemu 2.1.2はインストールできました。 qemu 2.1.2以外にも、1.6.2や1.7.0でもNetBSD/earmは動作することが分かっているので、2.1.2以外をインストール済みの方も、そのまま試せると思います。
qemu-system-armコマンドを動かして、どのようなマシンがエミュレートできるのかを確認してみましょう。
$ qemu-system-arm -M ? Supported machines are: versatileab ARM Versatile/AB (ARM926EJ-S) lm3s811evb Stellaris LM3S811EVB sx1 Siemens SX1 (OMAP310) V2 z2 Zipit Z2 (PXA27x) connex Gumstix Connex (PXA255) versatilepb ARM Versatile/PB (ARM926EJ-S) realview-eb ARM RealView Emulation Baseboard (ARM926EJ-S) realview-pb-a8 ARM RealView Platform Baseboard for Cortex-A8 vexpress-a9 ARM Versatile Express for Cortex-A9 cubieboard cubietech cubieboard kzm ARM KZM Emulation Baseboard (ARM1136) terrier Terrier PDA (PXA270) verdex Gumstix Verdex (PXA270) musicpal Marvell 88w8618 / MusicPal (ARM926EJ-S) mainstone Mainstone II (PXA27x) lm3s6965evb Stellaris LM3S6965EVB realview-pbx-a9 ARM RealView Platform Baseboard Explore for Cortex-A9 nuri Samsung NURI board (Exynos4210) xilinx-zynq-a9 Xilinx Zynq Platform Baseboard for Cortex-A9 n810 Nokia N810 tablet aka. RX-44 (OMAP2420) borzoi Borzoi PDA (PXA270) highbank Calxeda Highbank (ECX-1000) smdkc210 Samsung SMDKC210 board (Exynos4210) integratorcp ARM Integrator/CP (ARM926EJ-S) sx1-v1 Siemens SX1 (OMAP310) V1 cheetah Palm Tungsten|E aka. Cheetah PDA (OMAP310) n800 Nokia N800 tablet aka. RX-34 (OMAP2420) collie Collie PDA (SA-1110) vexpress-a15 ARM Versatile Express for Cortex-A15 none empty machine realview-eb-mpcore ARM RealView Emulation Baseboard (ARM11MPCore) tosa Tosa PDA (PXA255) midway Calxeda Midway (ECX-2000) virt ARM Virtual Machine spitz Spitz PDA (PXA270) akita Akita PDA (PXA270) canon-a1100 Canon PowerShot A1100 IS
今回は、NetBSD 7.99.2がサポートしているARM Integrator/CPというボードをエミュレートし、その上でNetBSDを動かしたいと思います。
; connexやverdex、cubieboardなどもNetBSDがサポートしているボードですし、 ; spitzやakitaなどもサポートしているかもしれませんが、 ; 私はそれらでNetBSDを動かせていません…。 ; verdexエミュレーションは、qemu 0.15では動いていましたが、qemu 2.1.2では ; qemu 0.15で起動していたLinuxイメージも起動しないので、 ; 壊れているのかもしれません。
ちなみに、ARM Integrator/CPというボードについては、
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0159b/index.html
の最下部からPDFファイルのマニュアルをダウンロードして読むと分かると思います。
NetBSDは、PL181というMMC/SD cardのコントローラーをサポートしていないので、 起動させるにはネットワークブートしかありません。他にもVGAもサポートしていないようなので、シリアルコンソールで動かすことにします。
NetBSD/earmのクロスビルド
クロスビルドとは、ビルドするマシンのアーキテクチャー以外のアーキテクチャー 用のバイナリーファイルを生成することを言うものだと思います。 今回は、NetBSD/amd64 7.99.2上で、NetBSD/evbearm-el 7.99.2のバイナリーファイル を生成しました。みなさんは、好きなPOSIXな環境で実行したら良いと思います。 別にNetBSDでなくても良いはずです。
クロスビルドについての記事もあると思いますので、ここでは詳しくは 説明しません。
以下のようにして、ARM Integrator/CP用のバイナリーファイルを生成します。
/usr/srcにNetBSD currentのソースコードを、展開しているとして説明します。 今回は、Xはビルドしません。 ARM Integrator/CP用のカーネルは、build.sh -m evbearm-el releaseの過程ではビルドされません。 build.sh -m evbearm-el kernel=INTEGRATOR_CPとして別途ビルドする必要があります。
ちなみに、evbearm-elは、ARMなCPUの載った評価用ボード用のEABIなバイナリーでlittle endiannessなものと言う意味です。
# mkdir /usr/world # chown YOURNAME /usr/world $ cd /usr/src $ ./build.sh -U -T /usr/world/evbearm-el/tools -O /usr/world/evbearm-el/obj \ -D /usr/world/evbearm-el/NewWorld -R /usr/world/evbearm-el/release -m evbearm-el -j 5 release $ ./build.sh -U -T /usr/world/evbearm-el/tools -O /usr/world/evbearm-el/obj \ -D /usr/world/evbearm-el/NewWorld -R /usr/world/evbearm-el/release -m evbearm-el -j 5 kernel=INTEGRATOR_CP
; -j 5の部分は、ビルドするマシンのCPUの数に合わせて変えてください。
これで、インストールに必要なファイルは全て作成できました。
試運転
まだ、ユーザーランドの用意ができていませんが、カーネルだけ起動させて みましょう。ctrl+cでqemuを中断できます。
$ qemu-system-arm -M integratorcp -cpu arm1136 \ -kernel /usr/world/evbearm/obj/sys/arch/evbarm/compile/INTEGRATOR_CP/netbsd.gz.ub -serial stdio NetBSD/evbarm (EVBARM_BOARDTYPE) booting ... [ Kernel symbol table missing! ] Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The NetBSD Foundation, Inc. All rights reserved. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. NetBSD 7.99.2 (INTEGRATOR_CP) #0: Sat Nov 29 02:57:06 JST 2014 ryo_on@bismuth.elements.tetera.org:/usr/world/current/evbearm/obj/sys/arch/evbarm/compile/INTEGRATOR_CP total memory = 128 MB avail memory = 122 MB sysctl_createv: sysctl_create(machine_arch) returned 17 kern.module.path=/stand/evbarm/7.99.2/modules mainbus0 (root) cpu0 at mainbus0 core 0: ARM1136J-S r1p3 (ARM11J V6J core) cpu0: DC enabled IC enabled WB disabled EABT cpu0: 4KB/32B 4-way L1 VIPT Instruction cache cpu0: 64KB/32B 4-way write-through L1 VIPT Data cache vfp0 at cpu0: VFP11, rounding, exceptions ifpga0 at mainbus0: Build 0, Rev A, Manufacturer Unknown, ASB, Little-endian, ifpga0: FPGA unknown, SYSCLK 2.00MHz ifpga0: vendor 0000 product 0000 (miscellaneous prehistoric) pci_configure_bus done sm0 at ifpga0 addr 0xb8000000 irq 27 sm0: SMC91C111, revision 1, buffer size: 8192 sm0: MAC address 52:54:00:12:34:56, default media MII (internal PHY) plcom0 at ifpga0 addr 0x6000000 irq 1 plcom0: console plcom1 at ifpga0 addr 0x7000000 irq 2 plrtc0 at ifpga0 addr 0x5000000 pci0 at ifpga0 bus 0 clock: hz=100 stathz = 100 profhz = 500 boot device: <unknown> root device:
ネットブート環境の準備
さきほど、NetBSD/evbearmのINTEGRATOR_CPカーネルは、内蔵ストレージをサポートしていないと書きました。ですので、ブートはネットワーク経由でする必要があります。
今回は、エミュレートしたARM Integrator/CP上のNetBSDから、外部のネットワーク(The Internet等)にはつながないことにします。 ですので、仮想のEthernetアダプターであるtap0というのを作って、それを使ってNFSサーバーとDHCPサーバー、エミュレートされたARM Integrator/CPのつながったネットワークを作ることにします。
; そもそもこの原稿を書いているマシンには、NetBSDで使える ; Ethernetアダプターが内蔵されていません…。
# ifconfig tap0 create # ifconfig tap0 inet 192.168.91.2 netmask 255.255.255.0 up # chown YOURUSERNAME /dev/tap0
これで、tap0ができ、ユーザーから読み書きできるようになりました。qemu上のNetBSD/evbearmは、これを通じて通信をします。
NFSサーバー/DHCPサーバーの準備
ネットブートには、典型的には、カーネルを読み込むtftpサーバーとユーザーランドをホストするNFSサーバー、それらのIPアドレスを通知し、ブートしているマシンにIPアドレスを割り当てるDHCPサーバーが必要です。 しかし、今回はカーネルはqemu-system-armコマンドで直接指定してしまいますので、tftpサーバーは不要です。
NFSサーバー兼DHCPサーバーとして、qemuを動かしているNetBSD環境を使う例を示します。
まず、NFSサーバーを起動させます。 /etc/rc.confに以下のような行を追加します。
# vi /etc/rc.conf rpcbind=YES mountd=YES nfs_server=YES
今回は、/usr/tmp/evbearm-el/root以下にユーザーランドを展開し、qemu上のNetBSD/evbearmのために使います。以下のようにpオプション付きでtar ballsを展開します。
# mkdir -p /usr/tmp/evbearm-el/root # tar zxvfp /usr/world/evbearm-el/release/evbarm/binary/sets/base.tgz # tar zxvfp /usr/world/evbearm-el/release/evbarm/binary/sets/etc.tgz # tar zxvfp /usr/world/evbearm-el/release/evbarm/binary/sets/modules.tgz
/dev以下については、作っておかないとtmpfsがmountされてしまうので、 用意して置いた方が良いでしょう。
# cd dev # ./MAKEDEV all
また、提供するユーザーランドのツリーをNFSでexportする必要があります。 以下のようなファイルを作ります。
# vi /etc/exports /usr/tmp/evbearm-el/root -maproot=root:wheel -network 192.168.91.0 -mask 255.255.255.0
NFSサーバーに必要なデーモンを起動させます。
# /etc/rc.d/rpcbind start # /etc/rc.d/mountd start # /etc/rc.d/nfsd start
次に、DHCPサーバーを起動させます。
まず、/etc/rc.confに以下のような行を追加します。
# vi /etc/rc.conf dhcpd=YES dhcpd_flags="tap0"
次に、以下のような内容の/etc/dhcpd.conを作成します。 ここで、qemuのエミュレートするARM Integrator/CPのsm0のMACアドレスを 52:54:00:12:34:56としています。さきほどのカーネルのみの起動の 際に確認できるので、その値を使ってください。
; 特に指定しなければ、どのマシンでも一緒のMACアドレスになるようですが。
subnet 192.168.91.0 netmask 255.255.255.0 { range 192.168.91.10 192.168.91.200; host integratorcp { hardware ethernet 52:54:00:12:34:56; next-server 192.168.91.2; option root-path "/usr/tmp/evbearm-el/root" } }
これらを設定した上で、以下のようにdhcpdを起動させます。
# /etc/rc.d/dhcpd start
エラーが出ていないことを確認してください。
showmount -eとして、以下のようになっていれば、準備は無事に完了しています。
$ showmount -e Exports list on localhost: /usr/tmp/evbearm-el/root 192.168.91.0
最後に、起動後に必要となる設定をしておきます。
# vi /usr/tmp/evbearm-el/root/etc/fstab 192.168.91.2:/usr/tmp/evbearm-el/root / nfs rw 0 0 ptyfs /dev/pts ptyfs rw
# vi /usr/tmp/evbearm-el/root/etc/rc.conf rc_configured=YES sshd=YES
起動
では、起動させます。-nographicを付けたくなりますが、付けると必要な入力ができなくなるので、まずは止めておきましょう。
うまく起動したら、sshでログインして使うと、エラーに邪魔されないので快適です。
$ cp /usr/world/evbearm-el/obj/sys/arch/evbarm/compile/INTEGRATOR_CP/netbsd.gz.ub . $ qemu-system-arm -M integratorcp -cpu arm1136 -kernel netbsd.gz.ub -serial stdio -m 512M \ -net nic -net tap,fd=3 3<>/dev/tap0
statclockhandler: Statclock overrunエラーがたくさん出ますが、 気にしないでおきます。
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The NetBSD Foundation, Inc. All rights reserved. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. NetBSD 7.99.2 (INTEGRATOR_CP) #0: Sat Nov 29 02:57:06 JST 2014 ryo_on@bismuth.elements.tetera.org:/usr/world/current/evbearm/obj/sys/arch/evbarm/compile/INTEGRATOR_CP total memory = 255 MB avail memory = 246 MB sysctl_createv: sysctl_create(machine_arch) returned 17 kern.module.path=/stand/evbarm/7.99.2/modules timecounter: Timecounters tick every 10.000 msec mainbus0 (root) cpu0 at mainbus0 core 0: ARM1136J-S r1p3 (ARM11J V6J core) cpu0: DC enabled IC enabled WB disabled EABT cpu0: isar: [0]=0x140011 [1]=0x12002111 [2]=0x11231111 [3]=0x1102131, [4]=0x141, [5]=0 cpu0: mmfr: [0]=0x1130003 [1]=0x10030302 [2]=0x1222110 [3]=0 cpu0: pfr: [0]=0x111 [1]=0x1 cpu0: 4KB/32B 4-way L1 VIPT Instruction cache cpu0: 64KB/32B 4-way write-through L1 VIPT Data cache vfp0 at cpu0: VFP11, rounding, exceptions vfp0: mvfr: [0]=0x11111111 [1]=0 ifpga0 at mainbus0: Build 0, Rev A, Manufacturer Unknown, ASB, Little-endian, ifpga0: FPGA unknown, SYSCLK 2.00MHz ifpga0: vendor 0000 product 0000 (miscellaneous prehistoric) pci_configure_bus done sm0 at ifpga0 addr 0xb8000000 irq 27 sm0: SMC91C111, revision 1, buffer size: 8192 sm0: MAC address 52:54:00:12:34:56, default media MII (internal PHY) plcom0 at ifpga0 addr 0x6000000 irq 1 plcom0: console plcom1 at ifpga0 addr 0x7000000 irq 2 plrtc0 at ifpga0 addr 0x5000000 pci0 at ifpga0 bus 0 pci0: i/o space, memory space enabled timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0 clock: hz=100 stathz = 100 profhz = 500 timecounter: Timecounter "ifpga" frequency 62500 Hz quality 100 boot device:最近のマシン上であれば、それなりの速さで動きますので、楽しめると思います。root device: sm0 dump device: file system (default generic): root on sm0 nfs_boot: trying DHCP/BOOTP nfs_boot: DHCP next-server: 192.168.91.2 nfs_boot: my_addr=192.168.91.10 nfs_boot: my_mask=255.255.255.0 nfs_boot: gateway=192.168.91.2 root on 192.168.91.2:/usr/tmp/evbearm-el/root root file system type: nfs init path (default /sbin/init): init: trying /sbin/init Tue Dec 2 13:46:10 UTC 2014 Not checking /: fs_passno = 0 in /etc/fstab Starting file system checks: random_seed: /var/db/entropy-file: Not present Setting tty flags. Setting sysctl variables: ddb.onpanic: 1 -> 0 Starting network. /etc/rc: WARNING: $hostname not set. IPv6 mode: host Configuring network interfaces:. Adding interface aliases:. Waiting for DAD to complete for statically configured addresses... Building databases: dev, utmp, utmpx, servicesstatclockhandler: Statclock overrun . Starting syslogd. Mounting all file systems... Clearing temporary files. Creating a.out runtime link editor directory cache. Checking quotas: done. Setting securelevel: kern.securelevel: 0 -> 1 /etc/rc: WARNING: No swap space configured! /etc/rc.d/swap2 exited with code 1 Starting virecover. Checking for core dump... savecore: no core dump (no dumpdev) Starting local daemons:. Updating motd. /usr/sbin/postconf: warning: valid_hostname: empty hostname /usr/sbin/postconf: fatal: unable to use my own hostname Dec 2 13:46:40 postfix[1358]: fatal: unable to use my own hostname /etc/rc.d/postfix exited with code 1 Starting inetd. Starting cron. The following components reported failures: /etc/rc.d/swap2 /etc/rc.d/postfix See /var/run/rc.log for more information. Tue Dec 2 13:46:44 UTC 2014 NetBSD/evbarm (Amnesiac) (console) login: root Dec 2 13:46:48 login: ROOT LOGIN (root) on tty console Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014 The NetBSD Foundation, Inc. All rights reserved. Copyright (c) 1982, 1986, 1989, 1991, 1993 The Regents of the University of California. All rights reserved. NetBSD 7.99.2 (INTEGRATOR_CP) #0: Sat Nov 29 02:57:06 JST 2014 Welcome to NetBSD! This system is running a development snapshot of the NetBSD operating system, also known as NetBSD-current. It is very possible that it has serious bugs, regressions, broken features or other problems. Please bear this in mind and use the system with care. You are encouraged to test this version as thoroughly as possible. Should you encounter any problem, please report it back to the development team using the send-pr(1) utility (requires a working MTA). If yours is not properly set up, use the web interface at: http://www.NetBSD.org/support/send-pr.html Thank you for helping us test and improve NetBSD. Terminal type is vt100. We recommend that you create a non-root account and use su(1) for root access. #
plgarc/wip/llama.cppでpkgsrcのBLASサポートを探る
この記事は、 NetBSD Advent Calendar 2024 の13日目の記事です。 llama.cppを使ってみる 以前に、 NetBSD/amd64でllama.cppを使ってみる という記事で llama.cpp を使ってみていました。 あれか...
-
先週末に、OpenVMSを使ってみたいと思っていたのを思い出して、OpenVMSのhobbyist licenseを取得し、simhのVAXエミュレーターで使う、VAX用のインストール用のISOイメージをダウンロードしたので、その手順を書いておく。 どうやら、OpenVMS ...
-
Apache TomcatのフロントエンドにApche httpdを設置している環境がある。 Apache httpdとApache Tomcatの間は、AJP接続をしている。 Apache Tomcatを9.0.34にアップデートしたとこと、以下のようなエラーになってAJP接...
-
Arvel SRC06-USB USBシリアルケーブルというUSBシリアル変換器を持っている。 これにはFDTI製のUSBシリアル変換チップをい利用していて、USB VendorID/ProductID=0x0403/0x6001として認識される。 Arvelを買収...