セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... RaspberryPIでNetBSDを使ってみる 特徴 NetBSDをRaspberryPIで利用するために、ディスクイメージを用意しました。 Xが動いて、ご家庭のテレビでmikutterが動きます。 うまく動いたら、動いた記念写真をツイートだ! fossil(http://www.fossil-scm.org/)も入れてあります。家庭内Webサーバとかチケットシステムとかwikiサーバになるんでないかい。 準備するもの RaspberryPI本体 HDMI入力のあるテレビ/ディスプレイ USBキーボード USBマウス 有線ネットワーク 起動ディスクの作成 ディスクイメージのダウンロード earmv6hf # ftp http://cdn.netbsd.org/pub/NetBSD/misc/jun/raspberry-pi/ 2016-07-29-earmv6hf/2016-07-29-netbsd-raspi-earmv6hf.img.gz 2GB以上のSDカードを準備します。 ダウンロードしたディスクイメージを、SDカード上で展開します。 disklabel sd0 ..... 必ずインストールするSDカードか確認してください。 gunzip < 2016-07-29-netbsd-raspi-earmv6hf.img.gz.gz|dd of=/dev/rsd0d bs=1m Cubieboard2,BananaPI用イメージ Cubieboard2,BananaPI用のイメージが、 http://cdn.netbsd.org/pub/NetBSD/misc/jun/allwinner/ 以下にあります。 同じ手 順で起動できます。 ODROID-C1用イメージ ODROID-C1用のイメージが、 http://cdn.netbsd.org/pub/NetBSD/misc/jun/odroid_c1/ 以下にあります。 同じ手順で起動で きます。 RaspberryPIの起動 1. HDMIケーブル/USBキーボード/USBマウス/有線ネットワークをRPIにさします。 2. 電源を入れてRPIを起動します。 3. 少し待つと、HDMIからNetBSDの起動メッセージが表示されます。 4. メモリカードの容量にあわせたサイズまでルートパーティションを自動調整します。(現在、RPI2では自動調整プログラムの起動が失 敗します) 5. 容量調整後に再起動します。再起動した後は、起動プロセスが最後まで進み、ログインできる状態になります。 6. 起動しない場合、まず基板上のLEDを確認してください。 赤いランプのみ点灯している場合 OSを正しく読み込めていません。 少なくともMSDOS領域に各種ファームウェアファイルが見えていることを確認する。 SDカードの接触不良の可能性があるので、SDカードを挿しなおしてみる。 ファームウェアが古いため起動しない 緑のランプも点灯している場合 OSは起動しているのに画面をHDMIに表示できていません。 HDMIケーブルを差した状態で電源ケーブルを抜き差しして、HDMIディスプレイに何か表示するか確認する。 HDMIケーブル自体の接触不良。ケーブルを何度か差し直してください。 電源アダプタ容量には、少なくとも800mA程度の容量を持つアダプタを使ってみてください。スマートフォン用のアダプタなら まず大丈夫です。起動途中で画面が一瞬消えたり、負荷をかけるといきなり再起動したりする場合は、電源やUSBケーブルを気 にしてみてください。 1 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... ログイン rootでログインできます。rootアカウントではリモートからログインすることはできません。 login: root startxでicewmが立ち上がります。 # startx mikutterを使ってみよう xtermからdilloとmikutterを起動します。 # dillo & # mikutter & しばらく待ちます。 mikutterの認証画面がうまく出たら、httpsからはじまるURLをクリックするとdilloが起動します。 twitterのIDとパスワードを入力すると、pin番号が表示されます。pin番号をmikutterの認証画面に入力します。 しばらくすると、mikutterの画面が表示されます。表示されるはずです。落ちてしまう場合は時計が合っているか確認してくださ い。 漢字は[半角/全角]キーを入力すると漢字モードに切り替わります。anthyです。 青い鳩を消したいとき:mikutterのプラグインを試してみる % touch ~/.mikutter/plugin/display_requirements.rb すると、鳩が消えます。 mikutterはプラグインを組み込むことで、機能を追加できる自由度の高いtwitterクライアントです。プラグイ ンに関しては、「mikutterの薄い本 プラグイン」で検索してみてください。 fossilを使ってみよう fossilは、Wiki/チケット管理システム/HTTPサーバ機能を持つ、コンパクトなソースコード管理システムです。fossilバイナリひとつと、 リポジトリファイルひとつにすべての情報が集約されています。ちょっとしたメモをまとめたりToDoリストを簡単に管理できます。 % fossil help Usage: fossil help COMMAND Common COMMANDs: (use "fossil help -a|--all" for a complete list) add changes finfo merge revert tag addremove clean gdiff mv rm timeline all clone help open settings ui annotate commit import pull sqlite3 undo bisect diff info push stash update branch export init rebuild status version cat extras ls remote-url sync % fossil init sample-repo project-id: bcf0e5038ff422da876b55ef07bc8fa5eded5f55 server-id: 5b21bd9f4de6877668f0b9d90b3cff9baecea0f4 admin-user: jun (initial password is "f73efb") % ls -l total 116 -rw-r--r-- 1 jun users 58368 Nov 14 18:34 sample-repo % fossil server sample-repo -P 12345 & ブラウザでポート12345にアクセスし、fossil initを実行した時のユーザとパスワードでログインします。 キーマップの設定を変更する ログインした状態でのキーマップは/etc/wscons.confで設定します。 encoding jp.swapctrlcaps .... 日本語キーボード,CtrlとCAPSを入れ替える。 Xでのキーマップは.xinitrcで設定します。 setxkbmap -model jp106 jp -option ctrl:swapcap コンパイル済パッケージをインストールする コンパイルしたパッケージを以下のURLに用意しました。 2 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... % cat /etc/pkg_install.conf PKG_PATH=http://cdn.netbsd.org/pub/NetBSD/misc/jun/raspberry-pi/earmv6hf/2016-07-29 パッケージのインストール pkg_addコマンドで、あらかじめコンパイル済みのパッケージをインストールします。関連するパッケージも自動的にインス トールします。 # pkg_add zsh パッケージの一覧 pkg_infoコマンドで、インストールされているパッケージの一覧を表示します。 # pkg_info パッケージの削除 # pkg_delete パッケージ名 /usr/pkgsrcを使ってみよう たとえばwordpressをコンパイル/インストールする時には、以下の手順で行います。 # # # # # # # # cd /usr/ ls /usr/pkgsrc ... 上書きしてしまわないか確認 ftp http://cdn.netbsd.org/pub/pkgsrc/current/pkgsrc.tar.gz tar tzvf pkgsrc.tar.gz |head ... アーカイブの内容確認 tar xzvf pkgsrc.tar.gz ls /usr/pkgsrc cd /usr/pkgsrc/www/php-ja-wordpress make package-install # cd /usr/pkgsrc # cvs update -PAd パッケージ管理 pkg_chk コマンドを使って、インストールしたパッケージを管理してみましょう。あらかじめpkgsrcの内容を更新しておきま す。どこからパッケージファイルを取得するかは、/etc/pkg_install.confのPKG_PATHに書いておきます。 # # # # pkg_info pkg_chk -g pkg_chk -un pkg_chk -u ... ... ... ... インストールしているパッケージ名と概要を出力します。 使っているパッケージの一覧を/usr/pkgsrc/pkgchk.confに作ってくれます。 パッケージをアップデートします。(nオプション付きなので実行はしません) パッケージをアップデートします。 ユーザー作成 # useradd -m jun # passwd jun root権限で作業するユーザーの場合: # useradd -m jun -G wheel # passwd jun サービス起動方法 /etc/rc.d以下にスクリプトがあります。dhcpクライアント(dhcpcd)を起動してみます。 テスト起動: /etc/rc.d/dhcpcd onestart テスト停止: /etc/rc.d/dhcpcd onestop 正しく動作することが確認できたら/etc/rc.confに以下のとおり指定します。 3 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... dhcpcd=YES /etc/rc.confでYESに指定したサービスは、マシン起動時に同時に起動します。 起動: /etc/rc.d/dhcpcd start 停止: /etc/rc.d/dhcpcd stop 再起動: /etc/rc.d/dhcpcd restart vnconfigでイメージ編集 NetBSDの場合、vnconfigコマンドでイメージファイルの内容を参照できます。 # vnconfig vnd0 2016-07-29-netbsd-raspi-earmv6hf.img.gz # vnconfig -l vnd0: /usr (/dev/wd0e) inode 53375639 # disklabel vnd0 : 8 partitions: # size offset fstype [fsize bsize cpg/sgs] a: 3428352 385024 4.2BSD 0 0 0 # (Cyl. 188 b: 262144 122880 swap # (Cyl. 60 c: 3690496 122880 unused 0 0 # (Cyl. 60 d: 3813376 0 unused 0 0 # (Cyl. 0 e: 114688 8192 MSDOS # (Cyl. 4 # mount_msdos /dev/vnd0e /mnt # ls /mnt LICENCE.broadcom cmdline.txt fixup_cd.dat start.elf bootcode.bin fixup.dat kernel.img start_cd.elf # cat /mnt/cmdline.txt root=ld0a console=fb #fb=1280x1024 # to select a mode, otherwise try EDID #fb=disable # to disable fb completely 1861) 187) 1861) 1861) 59) # umount /mnt # vnconfig -u vnd0 HDMIじゃなくシリアルコンソールで使うには MSDOS領域にある設定ファイルcmdline.txtの内容を変更してください。 https://raw.github.com/Evilpaul/RPi-config/master/config.txt fb=1280x1024 fb=disable # to select a mode, otherwise try EDID # to disable fb completely 起動ディスクを変えるには MSDOS領域にある設定ファイルcmdline.txtの内容を変更してください。 root=sd0a console=fb ←ld0をsd0にするとUSB接続したディスクから起動します 最小構成のディスクイメージ NetBSD-currentのディスクイメージに関しては、以下の場所にあります。日付の部分は適宜読み替えてください。 # ftp://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201502042230Z/evbarm-earmv6hf/binary/gzimg/rpi_inst.bin.gz # gunzip < rpi_inst.bin.gz |dd of=/dev/rsd3d bs=1m .... sd3にコピー。 RaspberryPIにsdカードを差して、起動すると、# プロンプトが表示されます。 # sysinst .... NetBSDのインストールプログラムが起動します。 X11のインストール rpi.bin.gzからインストールした場合、Xは含まれていません。追加したい場合は、 ftp://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201310161210Z/evbarm-earmv6hf/binary/sets/ 以下にあるtarファイルを展開しま す。tarで展開するときにpオプションをつけて、必要な権限が保たれるようにしてください。 4 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント tar xzpvf xbase.tar.gz -C / file:///usr/local/Github/NetBSD/Guide/_build/singleh... .... pをつける クロスビルドの方法 ソースファイル展開 ./build.sh -U -m evbarm -a earmv6hf release earm{v[4567],}{hf,}{eb} earmv4hf http://mail-index.netbsd.org/tech-kern/2013/11/12/msg015933.html acorn26 armv2 acorn32 armv3 armv4 (strongarm) cats shark netwinder armv4 (strongarm) iyonix armv5 hpcarm armv4 (strongarm) armv5. zaurus armv5 evbarm armv5/6/7 外付けUSB端子 NetBSDで利用できるUSBデバイスは利用できる(はずです)。電源の制約があるので、十分に電源を供給できる外付けUSBハブ 経由で接続したほうが良いです。動作しているRPIにUSBデバイスを挿すと、電源の関係でRPIが再起動してしまう場合があり ます。その場合、電源を増強する基板を利用する方法もあります。 外付けSSD コンパイルには、サンディスク X110 Series SSD 64GB(読込 505MB/s、書込 445MB/s) SD6SB1M-064G-1022I を外付け ディスクケース経由で使っています。NFSが使える環境なら、NFSを使い、pkgsrcの展開をNFSサーバ側で実行する方法もあり ます。RPIにSSDを接続した場合、OSの種類と関係なく、RPI基板の個体差により、SSDが壊れる場合があるので十分注意して ください。 液晶ディスプレイ 液晶キット( http://www.aitendo.com/page/28 )で表示できています。 aitendoの液晶キットはモデルチェンジした新型になっています。 On-Lap 1302でHDMI出力を確認できました。 HDMI-VGA変換ケーブル を利用する場合、MSDOS領域にある設定ファイルcmdline.txtで解像度を指定してください。 https://twitter.com/oshimyja/status/399577939575963648 とりあえずうちの1024x768の液晶の場合、 hdmi_group=2 hdmi_mode=16 の2行をconfig.txtに書いただけ。なんと単純。disable_borderはあってもなくても関 inode inodeが足りない場合は、ファイルシステムを作り直してください。 # newfs -n 500000 -b 4096 /dev/rvnd0a bytebench おおしまさん(@oshimyja)がbytebenchの結果を測定してくれました。 https://twitter.com/oshimyja/status/400306733035184129/photo/1 /400303304573341696/photo/1 https://twitter.com/oshimyja/status 壁紙 おおしまさん(@oshimyja)ありがとうございます。 http://www.yagoto-urayama.jp/~oshimaya/netbsd/Proudly/2013/ – パーティションサイズをSDカードに合わせる 2GB以上のSDカードを利用している場合、パーティションサイズをSDカードに合わせることができます。この手順はカードの内容が消 5 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... えてしまう可能性もあるため、重要なデータはバックアップをとるようにしてください。 手順は、http://wiki.netbsd.org/ports/evbarm/raspberry_pi/ のGrowing the root file-systemにあります。 シングルユーザでの起動 1. /etc/rc.confのrc_configured=YESをNOにして起動します。 2. 戻すときはmount / ;vi /etc/rc.conf でNOをYESに変更してrebootします。 参考URL http://wiki.netbsd.org/ports/evbarm/raspberry_pi/ NetBSD Guide http://www.netbsd.org/docs/guide/en/ NetBSD/RPiで遊ぶ(SDカードへの書き込み回数を気にしつつ) http://hachulog.blogspot.jp/2013/03/netbsdrpisd.html http://www.raspberrypi.org/phpBB3/viewforum.php?f=86 NetBSDフォーラム http://www.raspberrypi.org/phpBB3/viewforum.php?f=82 日本語フォーラム RaspberryPIでNetBSDを使ってみる(omxplayerとか) omxplayer RaspberryPIにはGPUが載っていて、動画再生ソフトのomxplayer(https://github.com/popcornmix/omxplayer)をNetBSDでも使うことが できます。 pkgsrc/multimedia/omxplayer です。 # pkg_add omxplayer youtube-dlのインストール youtube-dl(http://rg3.github.io/youtube-dl/)もインストールしてみましょう。 pkgsrc/net/youtube-dl です。 # pkg_add youtube-dl youtube-dlとomxplayerで動画再生 youtube-dl経由でダウンロードしたビデオをomxplayerで再生してみます。 スペースキーで一時停止、qで終了します。 # youtube-dl https://www.youtube.com/watch?v=wG8ZCC8IwvM # omxplayer *.mp4 livestreamerをインストールしてみる ストリームを再生するためのコマンドラインユーティリティ livestreamer(http://livestreamer.tanuki.se/)をインストールしてみましょ う。 pkgsrc/wip/livestreamerにもありますが、Pythonのpip経由をつかってみます。 # pkg_add py27-pip # pip2.7 install livestreamer livestreamer経由のストリーム再生 youtubeのビデオを、livestreamer経由でストリーム再生してみましょう。コマンドラインでプレーヤーと再生品質を指定して、 livestreamerを起動します。crontabで起動するようにすると、定期的にビデオ再生をするシステムを簡単に作ることができます。 # livestreamer --player omxplayer --fifo --yes-run-as-root https://www.youtube.com/watch?v=wG8ZCC8IwvM --default-stream best RaspberryPIでNetBSDを使ってみる(Xfceとか) startxと.xinitrc コマンドプロンプトからstartxコマンドを実行すると、icewmが起動するように なっています。 # startx このイメージの/root/.xinitrcは以下のURLにあります。 6 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... https://github.com/ebijun/NetBSD/blob/master/RPI/RPIimage/root/.xinitrc 順番にざっとみてみましょう。 このあたりで、日本語キーボードに設定しています。 オプションにctrl:swapcapsと指定すると、コント ロールキーとCAPSキーを入れ替えます。 #set keyboard layout #setxkbmap -layout jp -option ctrl:swapcaps setxkbmap -model jp106 jp 次に、日本語入力の設定です。uim経由で入力できるように、環境変数XMODIFIERSを 設定します。uimの設定を細かく指定したい時は、 uim-pref-gtkというアプリケーションを 起動して変更します。 uim-xim & # To select input method via uim-pref-gtk userinterface. # uim-pref-gtk export XMODIFIERS=@im=uim もし、デスクトップ環境としてxfce4を使うときにはコメントアウトしてあるstartxfce4の #をはずせば、ここでXfce4を起動できます。 ディスク容量の関係でXfceをイメージには入れて いないので、この後追加してみましょう。 #to install: pkg_add xfce4 #startxfce4;exit icewmを使うときにはこのまま進みます。背景の色はxsetrootで決められます。 バックグラウンドでの画像表示はxsetbgを使っています が、icewmの設定ファイルでも 指定できます。 xsetroot -bg black -grey #kterm -geometry 80x25+0+0 -fk k14 -fn a14 -fr r14 -km euc& xsetbg NetBSD.png mikutterを使いはじめるとき、twitterの認証画面をWebブラウザで表示します。 デフォルトのブラウザをdilloに指定しておくと、クリッ クしただけでdilloが 起動します。 #for mikutter , click and start browser. export BROWSER=dillo あとは、icewmが入っていればicewmを。なければtwmを起動します。 xterm -geometry 80x25+0+0 & if [ -f /usr/pkg/bin/icewm ]; then icewm else twm fi Xfce4をインストールする pkg_addコマンドでXfce4をインストールしてみましょう。正常に終わればXfce4がインストールできています。 pkg_add xfce4 .xinitrcでコメントアウトされていたstartxfce4の行の#をはずして、startxコマンドを 実行してみましょう。画面が真っ黒になってびびり ますが、そのまま待っているとねずみちゃんの ような何かが表示されます。 Firefoxもインストールしてみる うまくいったらfirefoxもインストールしてみましょう。正常に終わればfirefoxがインストールできています。 pkg_add firefox pkg_add firefox-l10n コンパイル済みパッケージのありか このイメージではpkg_addコマンドでコンパイル済みパッケージをインストールできるようにしています。 コンパイル済みイメージの場 所は、/etc/pkg_install.confに書いてあります。 そこにはftp://ftp.netbsd.org/pub/NetBSD/misc/jun/raspberry-pi/earmv6hf/2015-11-26/ のようなURLがかいてあります。自分でコンパイルしたパッケージを使う場合は、この部分を書き換えて みてください。 7 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... RaspberryPIでNetBSDを使ってみる(イメージ作成) Raspberry PIのイメージをつくろう Raspberry PIで動くイメージファイルの作り方を説明します。 ISOイメージ取得 NetBSDのISOイメージをダウンロードします。 ダウンロードには、以下のRubyスクリプトを使っています。 https://github.com/ebijun/NetBSD/blob/master/RPI/RPIimage/Image/NewestISO 編集するところ:ftpサーバを選ぶ FTP="nyftp.netbsd.org" #FTP="ftp.jp.netbsd.org" #FTP="ftp7.jp.netbsd.org" 編集するところ: アーキテクチャ選択 #ARCH="earmv7hf" ARCH="earmv6hf" #ARCH="earm" コマンドを実行すると、指定したftpサーバが持っている最新のイメージをダウンロードするためのスクリプトを生成します。 $ ./NewestISO ftp ftp://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201511241720Z/images/NetBSD-7.99.21-evbarm-earmv6hf.iso mv NetBSD-7.99.21-evbarm-earmv6hf.iso ./NetBSD-7.99.21-evbarm-earmv6hf-201511241720Z.iso コマンドの出力結果をshに渡すとダウンロードを実行します。 $ ./NewestISO |sh ダウンロードがうまくいくと、以下のようなisoイメージをダウンロードできます。 NetBSD-7.99.21-evbarm-earmv6hf-201511241720Z.iso イメージ作成用Makefile イメージファイルを作るためにMakefileを作っています。 https://github.com/ebijun/NetBSD/blob/master/RPI/RPIimage/Image/Makefile 編集するところ: イメージファイルの置き場所とかを指定します。 ARCH=earmv6hf #ARCH=earmhf #ARCH=earm PKG_PATH=ftp://ftp.netbsd.org/pub/NetBSD/misc/jun/raspberry-pi/${ARCH}/2015-11-14/ # iso file information IMAGE=/usr/release/images/NetBSD-7.99.21-evbarm-${ARCH}-201511091610Z.iso PKGSRC=../../../pkgsrc/pkgsrc-2015Q3.tar.gz make を実行するとイメージファイルができます。 make releaseを実行すると、初期設定ファイル等をコピーします。 make pkgを実行 すると、パッケージをインストールするための準備ができます。 # make # make release # make pkg ./Copy を実行して、パッケージをSDカードにコピーします。 https://github.com/ebijun/NetBSD/blob/master/RPI/RPIimage/Image/Copy より: DEVICE=rsd2d #BOARD=raspi-earm BOARD=raspi-earmv6hf #BOARD=raspi-earmv7hf 8 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... COMPRESS=-z SUFFIX=.gz #COMPRESS= #DATE=`date +%Y-%m-%d` #DATE=2015-11-10 progress $COMPRESS -f ${DATE}-netbsd-${BOARD}.img${SUFFIX} dd of=/dev/${DEVICE} bs=4m RPIでパッケージのインストール RPI2にSDカードをさして、ブートするか確認します。rootでログインして、必要なパッケージをインストールします。 cd Package edit Install ./Install インストールが終わったら再起動して、fontconfigを実行しておきます。 RPIに差し替えて起動して、dmesgを出力しておきます。 # dmesg > dmesg ...RPIの場合 # dmesg > dmesg7 ...RPI2の場合 イメージをSDカードから書き戻すためのスクリプトを実行します。 https://github.com/ebijun/NetBSD/blob/master/RPI/RPIimage/Image/03_back tmp日付ディレクトリにRPI,RPI2のdmesgとpkginfoができます。 一時起動時にできたログファイルを消して、配布用イメージを作ります。 make logclean make release ./Copy (https://github.com/ebijun/NetBSD/blob/master/RPI/RPIimage/Image/Copy)を実行して、できたイメージをSDカードに書き戻し ます。RPIにさして起動して、自動リサイズが正しく起動するか確認します。 rootでログインします。startxを実行します。mikutterを起動します。認証し、何かツィートしてみます。 あひる焼きを含む文章をツィー トして、何か返事があればできあがりです。 http://movapic.com/ebijun/pic/5287850 できたことを知らせる port-armメーリングリストにリリースメールを書きます。mail-indexに載ったらURLをツィートします。 https://github.com/ebijun/NetBSD/blob/master/RPI/RPIimage/README に書いて、 http://mail-index.netbsd.org/port-arm/2015/11/11/msg003550.html dmesg/pkginfoを書きます。 https://github.com/ebijun/NetBSD/blob/master/dmesg/earmv6hf/RPI https://github.com/ebijun/NetBSD/blob/master/dmesg/earmv6hf/RPI2 https://github.com/ebijun/NetBSD/blob/master/RPI/RPIimage/pkgsrc/pkginfo RPIのフォーラムにも投げます。 https://www.raspberrypi.org/forums/viewforum.php?f=86 9 / 48 2015/2/7 2015年に作ったRPIイメージ一覧 http://mail-index.netbsd.org/port-arm/2015/02/04/msg002833.html 2015/2/28 http://mail-index.netbsd.org/port-arm/2015/02/26/msg002883.html 2015/3/13 http://mail-index.netbsd.org/port-arm/2015/03/10/msg002918.html 2015/4/19 http://mail-index.netbsd.org/port-arm/2015/04/19/msg003100.html 2015/5/23 http://mail-index.netbsd.org/port-arm/2015/05/21/msg003185.html 2015/6/13 http://mail-index.netbsd.org/port-arm/2015/06/06/msg003243.html 2015/6/30 http://mail-index.netbsd.org/port-arm/2015/06/30/msg003266.html (7.0RC1) 2015/7/4 http://mail-index.netbsd.org/port-arm/2015/07/02/msg003268.html 2015/7/30 http://mail-index.netbsd.org/port-arm/2015/07/31/msg003351.html (7.0RC2) 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... 2015/8/8 http://mail-index.netbsd.org/port-arm/2015/08/06/msg003389.html 2015/8/19 http://mail-index.netbsd.org/port-arm/2015/08/19/msg003428.html 2015/8/22 http://mail-index.netbsd.org/port-arm/2015/08/20/msg003430.html 2015/9/5 http://mail-index.netbsd.org/port-arm/2015/09/03/msg003439.html 2015/9/19 http://mail-index.netbsd.org/port-arm/2015/09/14/msg003467.html 2015/9/28 http://mail-index.netbsd.org/port-arm/2015/09/29/msg003496.html (7.0) 2015/10/3 http://mail-index.netbsd.org/port-arm/2015/09/30/msg003497.html 2015/10/25 http://mail-index.netbsd.org/port-arm/2015/10/20/msg003534.html 2015/11/7 http://mail-index.netbsd.org/port-arm/2015/11/04/msg003546.html 2015/11/14 http://mail-index.netbsd.org/port-arm/2015/11/11/msg003550.html 2015/12/27 http://mail-index.netbsd.org/port-arm/2015/12/27/msg003586.html NetBSDのご紹介 こういうOSが欲しい 世界中にあるコンピュータ、昔の計算機から最近のパソコン、組み込み系まで、身の回りで目についたすべてのコンピュータ で動くOSは、どのようなものでしょうか?コンピュータに接続できる機器もたくさんあります。手持ちの周辺機器を全部利用 できるOSを考えてみましょう。これまでに利用したことのあるソフトウェアすべてを動かすことのできるOSはどのようなもの であればよいでしょうか?ソースコードを自由に読んだり、書いたり、引用したり、配布したり、売ったり買ったりできるOS を、世界中の人々と共同で作るためにはどのような枠組みがあればよいでしょうか? NetBSD NetBSDは、4.3/4.4BSD&386BSDベースのOSです。 プロジェクトは1993年3月21日から開始していて、現在も活発に開発が進 んでいます。 60種類以上のハードウェアを、単一ソースツリーでサポートしています。 ハードウェア依存/非依存部分を分離しており、IPv6をはじめとする最新のネットワークプロトコルをサポートしています。 ソースコードは、商用ルータ・プリンタ・家電製品・ゲーム機など、幅広い機器に組み込まれています。 OSとして組み込まれ ることもあれば、ネットワーク機能など、一部のコードが取り込まれることもあります。 NetBSDのウエブサイトは、http://www.NetBSD.org/ です。 NetBSD全般に関するガイドは、http://www.NetBSD.org/docs/guide/en/ にあります。 BSDライセンス 2 条項 BSD ライセンス http://www.jp.NetBSD.org/ja/about/redistribution.html Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 2条項BSDライセンス(訳) http://www.jp.NetBSD.org/ja/about/redistribution.html ソースおよびバイナリー形式の再配布および使用を、変更の有無にかかわらず、 以下の条件を満たす場合に認める: 1. ソースコードの再配布においては、上記の著作権表示、この条件の列挙、下記の注意書きを残すこと。 2. バイナリー形式の再配布においては、上記の著作権表示、この条件の列挙、下記の注意書きを、 配布物に附属した文書お よび/または他のものに再現させること。 このライセンスの前には著作権表示そのものが付きます。この後には注意書きが付き、このソフトウェアに関して問題が生じ ても、作者は責任を負わないと述べます。 BSDライセンスとNetBSD NetBSDのソースコードを自由に売ることができます。 NetBSDのソースコードから作ったバイナリを売ることもできます。バ イナリのソースコードを公開する義務はありません。 10 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... ライセンス条項が異なるソースを分離する NetBSDの配布物には、2 条項 BSD ライセンスのソースコードで書かれているソフトウェアと、そうでないソフトウェアが含ま れています。NetBSDでは、ライセンス条項が違うソースコードをディレクトリごとに分けて管理しています。 % ls /usr/src/external/ CVS atheros Makefile broadcom README bsd apache2 cddl gpl2 gpl3 historical ibm-public intel-fw-eula intel-fw-public lgpl2 lgpl3 mit public-domain realtek zlib 単一ソースツリー NetBSDは、単一ソースツリーで15種類のCPUアーキテクチャと58種類以上のプラットホームで動きます。 % ls /usr/src/sys/arch CVS bebox Makefile cats README cesfic acorn26 cobalt acorn32 dreamcast algor emips alpha epoc32 amd64 evbarm amiga evbmips amigappc evbppc arc evbsh3 arm evbsh5 atari ews4800mips hp300 hp700 hpc hpcarm hpcmips hpcsh hppa i386 ia64 ibmnws iyonix landisk luna68k m68k mac68k macppc mips mipsco mmeye mvme68k mvmeppc netwinder news68k newsmips next68k ofppc pmax powerpc prep rs6000 sandpoint sbmips sgimips sh3 sh5 shark sparc sparc64 sun2 sun3 sun68k usermode vax x68k x86 xen zaurus ソースコードからNetBSDをコンパイルする ソースコードからNetBSDのインストールCDをコンパイルしてみましょう。 ダウンロード ソースコードをダウンロードします。 % ftp ftp://ftp.jp.NetBSD.org/pub/NetBSD/NetBSD-current/tar_files/src.tar.gz 展開 ソースコードを展開します。 % tar xvzf src.tar.gz コンパイル ここではbuild.shを利用して、i386用のバイナリを作ってみます。 -U スーパーユーザー以外の権限でコンパイルするときに指定します。 -m 機種種類 どの機種向けの実行ファイルを作るのか指定します。 % cd src % ./build.sh -U -m i386 release : ===> Successful make release ===> build.sh ended: Tue Jul 2 15:37:03 JST 2013 ===> Summary of results: build.sh command: ./build.sh -U -m i386 release build.sh started: Tue Jul 2 17:38:40 JST 2013 NetBSD version: 6.99.22 MACHINE: i386 MACHINE_ARCH: i386 Build platform: Linux 2.6.32-358.11.1.el6.centos.plus.x86_64 x86_64 11 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... HOST_SH: /bin/sh No $TOOLDIR/bin/nbmake, needs building. Bootstrapping nbmake MAKECONF file: /etc/mk.conf (File not found) TOOLDIR path: /home/jun/NetBSD/src/obj/tooldir.Linux-2.6.32-358.11.1.el6.centos.plus.x86_64-x86_64 DESTDIR path: /home/jun/NetBSD/src/obj/destdir.i386 RELEASEDIR path: /home/jun/NetBSD/src/obj/releasedir Created /home/jun/NetBSD/src/obj/tooldir.Linux-2.6.32-358.11.1.el6.centos.plus.x86_64-x86_64/bin/nbmake Updated makewrapper: /home/jun/NetBSD/src/obj/tooldir.Linux-2.6.32-358.11.1.el6.centos.plus.x86_64-x86_64/bin/nbmake-i386 Successful make release build.sh ended: Tue Jul 2 19:37:03 JST 2013 ===> . コンパイルが正常に終了しました。NetBSD/i386のファイルができています。 % ls /home/jun/NetBSD/src/obj/releasedir/i386 INSTALL.html INSTALL.more INSTALL.ps INSTALL.txt binary installation $ ls /home/jun/NetBSD/src/obj/releasedir/i386/binary/sets/ MD5 etc.tgz kern-XEN3PAE_DOM0.tgz man.tgz text.tgz SHA512 games.tgz kern-XEN3PAE_DOMU.tgz misc.tgz base.tgz kern-GENERIC.tgz kern-XEN3_DOM0.tgz modules.tgz comp.tgz kern-MONOLITHIC.tgz kern-XEN3_DOMU.tgz tests.tgz 次に、OSのCD-ROMイメージを作ってみましょう。 % ./build.sh -U -m i386 iso-image : RELEASEDIR path: /home/jun/NetBSD/src/obj/releasedir : Successful make iso-image 正常に終了すると、NetBSD/i386のCD-ROMイメージができています。このイメージは、VirtualBoxなどでも利用できます。 $ ls /home/jun/NetBSD/src/obj/releasedir/images/ NetBSD-6.99.22-i386.iso ..... CDROMイメージができました! 次に、USBメモリに書き込むとブートするインストールイメージを作ってみましょう。 % ./build.sh -U -m i386 install-image RELEASEDIR path: /home/jun/NetBSD/src/obj/releasedir : Successful make install-image $ ls /home/jun/NetBSD/src/obj/releasedir/images/ MD5 NetBSD-6.99.22-i386-install.img.gz NetBSD-6.99.22-i386.iso SHA512 ...... USBメモリにコピーするとインストールできるイメージができました! 次に、USBメモリに書き込むとそのまま使えるLiveイメージを作ってみましょう。 % ./build.sh -U -m i386 live-image RELEASEDIR path: /home/jun/NetBSD/src/obj/releasedir $ ls /home/jun/NetBSD/src/obj/releasedir/images/ MD5 NetBSD-6.99.22-i386-install.img.gz NetBSD-6.99.22-i386-live-sd0root.img.gz ... liveイメージができました! NetBSD-6.99.22-i386-live-wd0root.img.gz NetBSD-6.99.22-i386.iso SHA512 X11も作ってみる X11を含んだ形のCD-ROMイメージを作ってみましょう。 % cd .. % ls src src.tar.gz % ftp ftp://ftp.jp.NetBSD.org/pub/NetBSD/NetBSD-current/tar_files/xsrc.tar.gz % tar xzvf xsrc.tar.gz % ls src src.tar.gz xsrc xsrc.tar.gz % cd src % ./build.sh -U -u -X ../xsrc -x -m i386 release -u オプション: 初期化しない -X [パス名] : Xを作る。パス名を指定しない場合/usr/xsrc 12 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... Xのコンパイルができました。X関連のtgzファイルができています。 % $ ls /home/jun/NetBSD/src/obj/releasedir/i386/binary/sets MD5 games.tgz kern-XEN3_DOM0.tgz tests.tgz xfont.tgz SHA512 kern-GENERIC.tgz kern-XEN3_DOMU.tgz text.tgz xserver.tgz base.tgz kern-MONOLITHIC.tgz man.tgz xbase.tgz comp.tgz kern-XEN3PAE_DOM0.tgz misc.tgz xcomp.tgz etc.tgz kern-XEN3PAE_DOMU.tgz modules.tgz xetc.tgz Xを含むCD-ROM/起動イメージを作ってみましょう。 % ./build.sh -U -u -m i386 iso-image % ./build.sh -U -u -m i386 install-image % ./build.sh -U -u -m i386 live-image % ls ls /home/jun/NetBSD/src/obj/releasedir/images/ MD5 NetBSD-6.99.22-i386-install.img.gz NetBSD-6.99.22-i386-live-sd0root.img.gz NetBSD-6.99.22-i386-live-wd0root.img.gz NetBSD-6.99.22-i386.iso SHA512 X Window システムの初期設定 X Windowシステムも含めてインストールした場合、以下の手順で設定ファイルを作ります。 % # # % % su root .... root権限で実行します。 X -configure .... /root/xorg.conf.new ができます。 mv /root/xorg.conf.new /etc/X11/xorg.conf startx .... twmの画面が出てくれば成功です!twm!twm! xeyes & .... 浮動小数点チェック:ちゃんと目が回るかな? .xinitrc のコピー cp /etc/X11/xinit/xinitrc ~/.xinitrc キーボードレイアウトの変更 コンソール画面ではwsconsを利用して、キーボードレイアウトを変更します。 % more /etc/wscons.conf : # Select a kernel builtin keyboard map by uncommenting the following line and # altering the country code to your requirements # (choose from user, us, uk, be, cz, dk, nl, fi, fr, de, gr, hu, it, jp, no, # pl, pt, ru, es, sv, sf, sg, ua) # See wsconsctl(8), pckbd(4), ukbd(4) etc. for more details. #encoding us.swapctrlcaps encoding jp.swapctrlcaps .... この行を追加します X Window システムでは、setxkbmapコマンドを利用して、レイアウトを切り替えます。 setxkbmap -model jp106 jp -option ctrl:swapcap 外部ディスプレイへの出力切り替え 外部ディスプレイへの出力は、xrandrコマンドで行います。xrandrを実行すると、X画面が表示されますが、色がおかしい場 合、コンソールを一度、X以外に切り替えてからX画面に戻ると正しく表示されます。うまく切り替わらない場合は、/etc /rc.confに、wscons=YESが指定してあるか確認してください。 % grep wscons /etc/rc.conf wscons=YES % xrandr --auto ... 外部ディスプレイ端子に出力されます。 Control+Alt+F4 を押して、コンソール画面に切り替えます。 Control+Alt+F5 を押して、X画面に戻ります。 ネットワーク設定 13 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... DHCPでつないでみる # dhcpcd ale0 無線LANの設定(WEP) # ifconfig ath0 up # ifconfig ath0 ssid "SSIDをここに書く" nwkey "WEPキーをここに書く" 無線LANの設定(WPA-PSK) % cat wpa.conf ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=wheel network={ ssid="SSIDをここに書く" scan_ssid=1 key_mgmt=WPA-PSK psk="pskをここに書く" } # /usr/sbin/wpa_supplicant -B -i athn0 -c wpa.conf # dhcpcd athn0 rc.d # ls /etc/rc.d DAEMON downinterfaces ldpd DISKS envsys local LOGIN fccache lpd NETWORKING fsck lvm RCS fsck_root makemandb SERVERS ftp_proxy mdnsd accounting ftpd mixerctl altqd gpio mopd amd hostapd motd apmd httpd mountall bluetooth identd mountcritlocal bootconf.sh ifwatchd mountcritremote bootparams inetd mountd ccd ipfilter moused cgd ipfs mrouted cleartmp ipmon named cron ipnat ndbootd dbus ipsec network devpubd irdaattach newsyslog dhclient iscsi_target nfsd dhcpcd isdnd nfslocking dhcpd isibootd npf dhcrelay kdc ntpd dmesg ldconfig ntpdate # cat /etc/rc.conf : wscons=YES rtclocaltime=YES hostname=yourhostname.example.com ip6mode=autohost rtsol=YES sshd=YES powerd=YES dbus=YES perusertmp pf pf_boot pflogd postfix powerd ppp pwcheck quota racoon raidframe raidframeparity random_seed rarpd rbootd rndctl root route6d routed rpcbind rtadvd rtclocaltime rtsold rwho savecore screenblank securelevel sshd staticroute swap1 swap2 sysctl sysdb syslogd timed tpctl ttys veriexec virecover wdogctl wpa_supplicant wscons wsmoused xdm xfs ypbind yppasswdd ypserv httpdの起動方法 NetBSDには、標準でbozohttpdというhttpdプログラムが含まれています。以下の手順で起動できます。 # cat > /var/www/index.html << EOF <TITLE>test page</TITLE> test 14 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... EOF # /etc/rc.d/httpd onestart # grep httpd /etc/rc.conf httpd=YES # /etc/rc.d/httpd start # /etc/rc.d/httpd stop TireI/II/III Tier I Tier I: Focus — support is part of NetBSD’s strategy Machines Port CPU amd64 x86_64 64-bit x86-family machines with AMD and Intel CPUs Latest Release evbarm arm ARM evaluation boards 6.1 evbmips mips MIPS-based evaluation boards 6.1 evbppc powerpc PowerPC-based evaluation boards 6.1 hpcarm arm StrongARM based Windows CE PDA machines 6.1 i386 i386 32-bit x86-family generic machines (“PC clones”) 6.1 sparc64 sparc Sun UltraSPARC (64-bit) 6.1 xen i386 x86_64 Xen Virtual Machine Monitor 6.1 6.1 Tier II 15 / 48 Tier II: Organic — evolving at its own pace Machines Port CPU acorn26 arm Acorn Archimedes, A-series and R-series systems 6.1 Latest Release acorn32 arm Acorn RiscPC/A7000/NC and compatibles 6.1 algor mips Algorithmics MIPS evaluation boards 6.1 alpha alpha Digital Alpha (64-bit) 6.1 amiga m68k Commodore Amiga, MacroSystem DraCo 6.1 amigappc powerpc PowerPC-based Amiga boards 6.1 arc mips Machines following the Advanced RISC Computing spec 6.1 atari m68k Atari TT030, Falcon, Hades 6.1 bebox powerpc Be Inc’s BeBox 6.1 cats arm Chalice Technology’s Strong Arm evaluation board 6.1 cesfic m68k CES’s FIC8234 VME processor board 6.1 cobalt mips Cobalt Networks’ Microservers 6.1 dreamcast sh3 Sega Dreamcast game console 6.1 emips mips Machines based on “Extensible MIPS” 6.1 evbsh3 sh3 Evaluation boards with Renesas (Hitachi) Super-H SH3 and SH4 CPUs 6.1 ews4800mips mips NEC’s MIPS based EWS4800 workstations 6.1 hp300 m68k Hewlett-Packard 9000/300 and 400 series 6.1 hp700 hppa Hewlett-Packard 9000/700 series 6.1 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... hpcmips mips MIPS based Windows CE PDA machines 6.1 hpcsh sh3 Renesas (Hitachi) SH3 and SH4 based Windows CE PDA machines 6.1 ia64 itanium Itanium family of processors none ibmnws powerpc IBM Network Station Series 1000 6.1 iyonix arm Iyonix ARM pc 6.1 landisk sh3 SH4 based NAS appliances by I-O DATA 6.1 luna68k m68k OMRON Tateisi Electronics’ LUNA series 6.1 mac68k m68k Apple Macintosh 6.1 macppc powerpc Apple Power Macintosh and clones 6.1 mipsco mips Mips family of workstations and servers 6.1 mmeye sh3 Brains’ mmEye Multi Media Server 6.1 mvme68k m68k Motorola MVME 68k SBCs 6.1 mvmeppc powerpc Motorola MVME PowerPC SBCs 6.1 netwinder arm StrongARM based NetWinder machines 6.1 news68k m68k Sony’s m68k based “NET WORK 6.1 STATION” series newsmips mips Sony’s MIPS based “NET WORK STATION” series 6.1 next68k m68k NeXT 68k ‘black’ hardware 6.1 ofppc powerpc Generic OpenFirmware compliant PowerPC machines 6.1 pmax mips Digital MIPS-based DECstations 6.1 and DECsystems prep powerpc PReP (PowerPC Reference Platform) and CHRP machines 6.1 rs6000 powerpc MCA-based IBM RS/6000 workstations 6.1 sandpoint powerpc Motorola Sandpoint reference platform 6.1 sbmips mips Broadcom SiByte evaluation boards 6.1 sgimips mips Silicon Graphics’ MIPS-based workstations 6.1 shark arm Digital DNARD (“shark”) 6.1 sparc sparc Sun SPARC (32-bit) 6.1 sun2 m68k Sun 2 6.1 sun3 m68k Sun 3 and 3x 6.1 vax vax Digital VAX 6.1 x68k m68k Sharp X680x0 series 6.1 zaurus arm Sharp C7x0/C860/C1000/C3x00 6.1 series PDA Tier III: Life Support — severely incapacitated or broken TierIII状態のPortはありません。 サポートしているCPU Ports by CPU architecture 16 / 48 CPU Tier(s) Port(s) alpha II alpha 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... arm I, II acorn26 acorn32 cats evbarm hpcarm iyonix netwinder shark zaurus hppa II hp700 i386 I i386 xen m68010 II sun2 m68k II amiga atari cesfic hp300 luna68k mac68k mvme68k news68k next68k sun3 x68k mipseb I, II emips evbmips ews4800mips mipsco newsmips sbmips sgimips mipsel I, II algor arc cobalt evbmips hpcmips pmax sbmips powerpc I, II amigappc bebox evbppc ibmnws macppc mvmeppc ofppc prep rs6000 sandpoint sh3eb II evbsh3 mmeye sh3el II dreamcast evbsh3 landisk hpcsh sparc II sparc sparc64 I sparc64 (Can also run sparc binaries) vax II vax x86_64 I amd64 (Can also run i386 binaries), xen NetBSDを使ってみる daily-snapshot ftp://nyftp.netbsd.org/pub/NetBSD-daily/ 以下には、 毎日コンパイルされているNetBSDの動作イメージがあります。 ミラーサイトは、 http://nycdn.netbsd.org/pub/NetBSD-daily/ にあります。 ftp://nyftp.netbsd.org/pub/NetBSD-daily/ の一覧 サイズ 最終更新日時 名前 HEAD 2013年07月10日 01時00分00秒 ファイル:README 1 KB 2012年11月21日 00時00分00秒 netbsd-5 2013年07月10日 01時00分00秒 netbsd-5-1 2013年07月05日 01時00分00秒 netbsd-5-2 2013年07月01日 01時00分00秒 netbsd-6 2013年07月04日 01時00分00秒 netbsd-6-0 2013年07月03日 01時00分00秒 名前 ftp://nyftp.netbsd.org/pub/NetBSD-daily/HEAD の一覧 サイズ 最終更新日時 201307060520Z 2013年07月06日 18時13分00秒 201307070030Z 2013年07月07日 12時23分00秒 201307071220Z 2013年07月08日 00時24分00秒 201307080020Z 2013年07月08日 12時17分00秒 201307081220Z 2013年07月09日 00時15分00秒 201307090630Z 2013年07月09日 18時29分00秒 PCでどの程度起動するか確認する ftp://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201307080020Z/images/NetBSD-6.99.23-amd64-install.img.gz RPIでどの程度起動するか確認する ftp://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201307080020Z/evbarm/binary/gzimg/rpi.img.gz ftp://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/201307080020Z/evbarm/binary/gzimg/rpi_inst.img.gz ておくれイメージ 筒井さんが配布しているNetBSD/i386,amd64,WZero3で動作する イメージファイルがあります。 NetBSDの設定例としても優れているの で、一読をおすすめします。 17 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... http://www.ceres.dti.ne.jp/tsutsui/netbsd/liveimage ...i386/amd64 http://www.ceres.dti.ne.jp/tsutsui/netbsd/liveimage/wzero3.html ..WZero3 http://www.youtube.com/watch?v=Jl0BZVfVSLs ... WZero3起動動画 http://www.slideshare.net/tsutsuii/netbsdcrossliveimage http://www.ceres.dti.ne.jp/tsutsui/osc12do/NetBSD-cross-liveimage.html RaspberryPI用NetBSDイメージ RaspberryPI用NetBSDイメージを配布しています。SDカードにコピーして、RaspberryPIから起動すると動作します。 ftp://ftp.netbsd.org/pub/NetBSD/misc/jun/raspberry-pi/ ftp://ftp.netbsd.org/pub/NetBSD/misc/jun/raspberry-pi/README-RPI.pdf ドリームキャスト版CD http://ftp.netbsd.org/pub/NetBSD/misc/tsutsui/dreamcast/ dreamcastbootcd-20101010.tar.gz 1. CD-R付きNetBSDマシンで展開します。 2. CD-R入れる 3. makeすると、バイナリをダウンロードしてブートCDが焼ける 4. dreamcastに入れるとNetBSDが起動します。 X68030エミュレータ XM6i Windows/NetBSD/CentOS上で動くX68000エミュレータです。 NetBSD/x68kがブートします http://xm6i.org/ OSC広島で祭り 21世紀のX68→実機デバッグ&エミュレータデバッグ CPU内部の挙動を細かく観測できる ATCエントリが見える WindowsCE向けNetBSD MIPS系CPU搭載 NEC MobileGear SHARP Tellios SH系CPU搭載 HP Jornadaシリーズ SEGA DreamCast ARM系CPU搭載 Compaq iPAQ HP Jornadaシリーズ WZero3 ブートまでの流れ コンパクトフラッシュを2分割します WindowsCEの領域 NetBSD/hpcmipsの領域 WindowsCE上のブートローダからブート メモリ空間を取れるだけ確保する カーネルファイルをメモリ空間に送り込んで NetBSDを起動します NetBSD/hpcsh SH搭載WindowsCEマシン向け HP Jornada680 690 620LX 日立ペルソナ HPW50 230 (NetBSD/sh3+NetBSD/hpcmips)/2+α 従来の開発ノウハウとソフトウェア資産 NetBSD/hpcmipsとのソース共有化 NetBSD/Dreamcast互換 NetBSD/hpcarm 18 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... StrongArm搭載WindowsCEマシン向け SA-1100/1110対応 HP Jornada720 WZero3 Compaq iPAQ hpcファミリー中最速 NetBSD/evbarm RPI Gumstix Netwalker (KOBO) 新しく移植するときには 1. まず、機種に依存しない部品を組み合わせます CPU..バス.. 2. 次に機種依存部分だけを追加します 3. 足りない部分を作りこみます 4. 自分で自分をコンパイルして、配布できる状態にします 5. pkgsrcにあるソフトウェアを実際に動かしてみます 6. 何か目的を持った配布イメージを配ってみます twitterクライアント,Webサーバ.... 移植成果をNetBSDに組み込む カーネル部分を移植する セルフコンパイルでスナップショット作成 パッケージソフトウェアセットを作る ドキュメント整備 Web・マニュアル・FAQ インストーラを作る メーリングリストを作る プログラミング以外にすること Port登録 NetBSD/???? 部分 Webページ作成 バグレポートデータベース作成 GNATS マニュアル作成 インストールマニュアル・マニュアル・FAQ メーリングリスト作成 ニュースとして報告 アーキテクチャに共通する部分 Package system バス USB、CardBus デバイスドライバ オーディオフレームワーク OSエミュレーション バスサポート 仮想デバイス Concatenated disk driver Memory disk driver RAIDframe disk Random device Vnode disk 物理デバイス オーディオデバイス WSCONS - ワークステーションコンソール 19 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... wsdisplay wskbd wsmouse 4.4BSD由来の機能 nullfs – loopbackマウント unionfs – ファイルシステムを重ねる lfs – 高速書き込み性能 NFS – NFSv3 NFSoverTCP IP virtual hosting NetBSD独自の改良 NFS – WebNFS NFS over IPv6 UVM virtual memory system UBC unified buffer cache system Cardbus Wscons USB ver2.0 64bit clean Wireless networking http://www.NetBSD.org/about/features.html ZFS? Google Summer of Code 2038年問題 1970/1/19 0:0:0 GMTからの経過秒数 2^31-1=2147483647 2,147,483,648秒以上を表示できるか 対応済み:date -r 2147483648 Tue Jan 19 12:14:08 JST 2038 未対応:date -r 2147483648 Tue Jan 19 12:14:07 JST 2038 NetBSD:カーネル 機種に依存する部分 i386/MIPS/SH/68000… デバイスに依存する部分 PCIバス/ISAバス/PCMCIA… その他 メモリ管理 新しいマシンをサポートするには 搭載CPUがサポートされているか? 搭載バスがサポートされているか? 搭載デバイスがサポートされているか? 共有部分はすべてで共有できる サポートされていない部分だけを作り、CVSツリーに追加する NetBSDのリリース リリース版 2.0 3.0 4.0 5.0...... マイナーリリース 2.1.. 3.1... パッチリリース 2.1.1... 3.1.1... 開発版 2.99 3.99 4.99 5.99... カーネルAPIの変更があるとき 2.99.1... NetBSD開発ロードマップ 20 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... NetBSD release announcements NetBSD 0.8 20 Apr 1993 NetBSD 0.9 23 Aug 1993 NetBSD 1.0 26 Oct 1994 NetBSD 1.1 26 Nov 1995 NetBSD 1.2 04 Oct 1996 NetBSD 1.2.1 20 May 1997 NetBSD 1.3 04 Jan 1998 NetBSD 1.3.1 09 Mar 1998 NetBSD 1.3.2 29 May 1998 NetBSD 1.3.3 23 Dec 1998 NetBSD 1.4 12 May 1999 NetBSD 1.4.1 26 Aug 1999 NetBSD 1.4.2 19 Mar 2000 NetBSD 1.4.3 25 Nov 2000 NetBSD 1.5 06 Dec 2000 NetBSD 1.5.1 11 Jul 2001 NetBSD 1.5.2 13 Sep 2001 NetBSD 1.5.3 22 July 2002 NetBSD 1.6 14 Sep 2002 NetBSD 1.6.1 21 Apr 2003 NetBSD 1.6.2 01 Mar 2004 NetBSD 2.0 09 Dec 2004 NetBSD 2.0.2 14 Apr 2005 NetBSD 2.0.3 31 Oct 2005 NetBSD 2.1 02 Nov 2005 NetBSD 3.0 23 Dec 2005 NetBSD 3.0.1 24 July 2006 NetBSD 3.0.2 04 Nov 2006 NetBSD 3.1 04 Nov 2006 NetBSD 4.0 19 Dec 2007 NetBSD 4.0.1 14 Oct 2008 NetBSD 5.0 29 Apr 2009 NetBSD 5.0.1 02 Aug 2009 NetBSD 5.0.2 12 Feb 2010 NetBSD 5.1 19 Nov 2010 NetBSD 5.1.2 02 Feb 2012 NetBSD 5.2 03 Dec 2012 NetBSD 6.0 17 Oct 2012 NetBSD 6.0.1 26 Dec 2012 NetBSD 6.0.2 18 May 2013 NetBSD 6.1 18 May 2013 Automated Testing Framework http://www-soc.lip6.fr/~bouyer/NetBSD-tests/xen/ に、i386/amd64に関する自動テストレポートがあります。 # cd /usr/tests; # atf-run | atf-report 組織構成 Core 5人 テクニカルマネージメント Port maintainer 28人 各実装に関する担当者 Developer CVS/WWW/FTP等開発資産に書き込みできる アクティブなのは188人 NetBSD Foundation,Inc 21 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... デラウェア州の法人組織 サーバマシンを所有 お金と寄付を管理 NetBSDの版権を管理 http://www.NetBSD.org/foundation/ developer 直接ソースを変更できる CVS/FTP/WWWサーバの内容 世界中で256人 GNATSでバグ管理 cvsweb.netbsd.org 日本人40人 http://www.NetBSD.org/people/developers.html NetBSD開発者世界分布図 NetBSD開発者分布図 Developerになるには(1) PGP/GnuPGの鍵を作る fingerprint印刷 gpg –fingerprint [email protected] fingerprint交換 他のDeveloperとfingerprint印刷を交換 本人確認 公的証明書を見せあって本人確認 Developerになるには(2) 相手の鍵を取り込んで、fingerprint照合 gpg-email-confirm [email protected].. ランダムな文字列を送る メールを暗号化して送り返してもらう 送った文字列とメールアドレスを照合する 鍵にサインしてもらって送り返してもらう Developerサイン入り自分の鍵ができる 自分の鍵束にimport pgp.mit.eduにサイン入り自分の鍵を登録する 世界中で打ち合わせをする時間 May 21 03:00 PM -0700 America/Los_Angeles May 21 06:00 PM -0400 America/New_York May 21 11:00 PM +0100 Europe/London May 22 00:00 AM +0200 Europe/Berlin May 22 01:00 AM +0300 Europe/Helsinki May 22 07:00 AM +0900 Asia/Tokyo May 22 08:00 AM +1000 Australia/Melbourne Port-maintainer 移植責任者 57種類のうち15種類以上は日本人が担当 日本人担当ハードウェア15/56 NetBSD動作マシン@日本 日本からの貢献 国産ハードウェアサポート ゲーム機・携帯情報端末サポート IPv6/ IPSEC Pkgsrc CardBusサポート 22 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... MIPS/SH/m68K NetBSD書籍が世界一多く出版される developer53人 クロス開発環境 NetBSD/i386でクロスコンパイル build.sh –m hpcmips Pkgsrc/cross以下に各種パッケージ Windows環境でクロスコンパイル Cygwinなど Linux上でクロスコンパイル FreeBSD上でクロスコンパイル distcc - コンパイルだけ速いマシンで pkgsrcをクロスコンパイル pkgsrcのcrossbuildでググる! http://www.lins.jp/~obata/diary/200803242.html クロス用toolsを作る バイナリ互換性を利用する Cobalt Qube2でhpcmipsバイナリ作成 MIPSでendian little =mipsel同士なら動く ユーザランドはほとんどそのまま動く パッケージも共通化 NetBSD/{pmax,cobalt,arc,hpcmips}で共通 数GBある各種アプリケーション群を共通にする エミュレーション環境 Linuxエミュレーション i386以外のバイナリも動くようにする FreeBSD Windows2000/XP PECOFF Win32アプリケーションをそのまま動かす ゲーム/WINE Unixware NetBSD開発者情報 ftp/WWW/CVS/SUPサーバ http://www.jp.NetBSD.org/ja/JP/sites.html 開発環境設定方法 http://www.NetBSD.org/developers/ http://releng.NetBSD.org ソースコード取得方法 ftp Cvs cvsup Sup Anonymous CVS rsync www.netbsd.org 翻訳 現在 www.netbsd.org上のCVSリポジトリ 削除→各国のwwwサーバ 各国の翻訳 ドイツ語 韓国語 ポーランド語 フランス語 緊急度の高い情報を正確に広報する 古いドキュメントでもあった方がいいか そもそも英語 のドキュメントは正確か まとめ 23 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... NetBSDはいろんなハードで動きます 自作ソフトをいろんなCPUで試せます 最初から移植を考えて設計されています 試作機に移植する工数が最小ですみます 自分の専門分野だけを組み込めます 自由に利用可能で再配布可能なOSです 移植するとIPv6マシンに変貌 さまざまなCPU向けIPv6スタックがあります 愛着あるハードウェアが生き返ります 最新のネットワークコードが利用できます もしかしたらリサイクル団体なんでしょうか? NetBSD/x68k 「動かしたいアプリが自分の持ってるコンピュータで動かない場合、たとえばAndroid用出てるけどiOS用はない、みたいのは今でも理解 してもらえると思うけど、どうしても動かしたい+ソースはある→移植するぜ、ってやっちゃったのがNetBSD/x68kでした。」 [18] X68K関連発表 X680x0 でもユーザストリームがしたい! OSC2014広 島 http://www.pastel-flower.jp/-isaki/NetBSD/osc14hi/ NetBSD/x68k 近況 OSC2014広 島 http://www.pastel-flower.jp/-isaki/NetBSD/osc14hi/ NetBSD/x68k 近況 OSC2013広 島 http://www.pastel-flower.jp/-isaki/NetBSD/osc13hi/ (XM6iによる?)NetBSD/m68k FPE の実装 OSC2013広 島 http://www.pastel-flower.jp/-isaki/NetBSD/osc13hi/ NetBSD/x68kとXM6i 追いかけっこ開発 OSC2012広 島 http://xm6i.org/event/osc2012hi OSC展示に見るNetBSD6.0新機能 OSC2012広 島 http://www.slideshare.net/tsutsuii/osc-netbsd-60 NetBSD/x68k近況 OSC2012愛 媛 http://xm6i.org/event/osc2012eh/page1.html XM6iのご紹介 OSC2011広 島 http://xm6i.org/event/osc2011hi OSCとX68K展示 24 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... OSC2015京都 2012/10/20 XM6i-earmv6hf初展示 OSC2014広島 2012/10/20 Neptune-X Nereid 060turbo Xellent30 XM6i OSC2013広島 2012/10/20 Neptune-X Nereid 060turbo Xellent30 XM6i OSC2012広島 2012/10/20 Neptune-X Nereid 060turbo Xellent30 XM6i OSC2011広島 2011/10/1 Neptune-X Nereid 060turbo XM6i OSC2011神戸 2011/4/16 TT030 X68K OSC2010東京秋 2010/9 /10-11 XM6i 初展示 OSC2007東京秋 2007/10/5-6 Nereid オープンソース祭り2001 2001/2 /10-11 X68030 みのうらさんの? [6] NetBSDでXM6iを動かしてみる。 NetBSD/amd64を用意し、その上でXM6iを動かしてみます。 必要なパッケージのインストール XM6iを動かすために必要なパッケージをインストールしておきます。 # cd /usr/pkgsrc/x11/wxGTK30 # make package-install XM6iのダウンロード XM6iをダウンロードして、展開します。 # # # # mkdir -p /usr/local/XM6i cd /usr/local/XM6i http://xm6i.org/download.html tar xzvf XM6i-0.51-netbsd7.0-i386-amd64-2015Q2.tar.gz 参考資料 [1] Neptune-X http://www.amy.hi-ho.ne.jp/shimada/neptune/ [2] Nereid http://xps.jp/ [3] 060turboの世界 http://homepage2.nifty.com/m_kamada/docs/060turbo.htm [4] Xellent30 関連 http://retropc.net/x68000/software/hardware/xellent30/ [5] X68000 LIBRARY http://retropc.net/x68000/ 25 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... [6] オープンソースまつり2001 in 秋葉原 http://www.cqpub.co.jp/interface/column/ShowandNews/010211/010211.htm [7] XM6i http://xm6i.org/ [8] xkeropi http://www.asahi-net.or.jp/-aw9k-nnk/keropi/ [9] XM6i/TypeG勉強会 http://xm6i.org/event/meeting1/ [10] NetBSD/x68k開発用 X68030 ブートストラップ起動動作仕様 http://togetter.com/li/410617 [11] 21世紀のX68000まとめ http://togetter.com/li/195551 [12] X68/040turbo―A Story of Making“After X68030 ,ソフトバンククリエイティブ,1994 [13] NetBSD/X68k (X68k Programming Series),ソフトバンククリエイティブ,1995 [14] 究極!!X68000エミュレータ,秀和システム,2001 [15] Inside X68000,ソフトバンククリエイティブ,1992 [16] X68000テクニカルデータブック,アスキー,1987 [17] Outside X68000,ソフトバンククリエィティブ,1993 [18] https://twitter.com/masaru0714/status/506653219687120896 ザウルスでNetBSDを使ってみる 用意するもの 1. ザウルス本体 2. 1G以上のSDカードまたはMicroSDカード+SDカードアダプタ 3. 2G以上のSDカードを使う場合、SD+SDHCドライバインストール用に、1G以下のSDカードまたはコンパクトフラッシュ。 4. ディスクイメージコピー用NetBSDマシン 5. USBカードリーダ SDカード用デバイスドライバのインストール ザウルスSL-Cシリーズでは、2G以上のSDカードを利用できません。 「SL-A300、SL-Cシリーズ、SL-6000用のSD+SDHCドライバ」( [http://petit-noise.net/download/sdhc-driver])を利用すると2G以上のSDカードを利用できます。 ダウンロード SL-Cxx00用 http://petit-noise.net/system/files/zaurus-sd-driver-update_2.1-for-Cxx00_arm.ipk SL-C750/760/860用 http://petit-noise.net/system/files/zaurus-sd-driver-update_2.1-for-Cxx0_arm.ipk SL-C700用 http://petit-noise.net/system/files/zaurus-sd-driver-update_2.0-for-C700_arm.ipk インストール ダウンロードしたzaurus-sd-driver-update_2.1-for-C..._arm.ipkを、CFカードまたは、1GB以下のSDカードにコピーします。コ ピーしたカードをザウルスのカードスロットに差します。 デバイスドライバのインストール ザウルスを起動し、ファイル→CFカード→zaurus-sd-driver-update_2.1-for-C..._arm.ipkをクリック→インストール先 本体メ モリーを選ぶ→再起動 OKを選択→メニューバー右上のXをクリックすると再起動が始まります。 NetBSDディスクイメージのダウンロード http://ftp.netbsd.org/pub/NetBSD/misc/tsutsui/zaurus/ ftp ftp://ftp.netbsd.org/pub/NetBSD/misc/tsutsui/zaurus/netbsd-zaurus-20120204-1GB-SD.img.gz ディスクイメージをコンパクトフラッシュにコピーする NetBSDをインストールするSDカードをUSBカードアダプタ経由でNetBSDマシンにつなぎます。 # dmesg .... sd3に2GBのMicroSDカードがつながっています。 sd3 at scsibus0 target 0 lun 3: <USB2.0, CardReader SD, 0100> disk removable sd3: fabricating a geometry sd3: 1936 MB, 1936 cyl, 64 head, 32 sec, 512 bytes/sect x 3964928 sectors 26 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント sd3: fabricating a geometry # disklabel sd3 ... sd3のパーティションを確認します。 : 4 partitions: # size offset fstype fsize bsize cpg/sgs a: 2030112 0 MSDOS # (Cyl. d: 2030112 0 unused 0 0 # (Cyl. ... NetBSDではdパーティションがディスク全体になります。 # gunzip < netbsd-zaurus-20120204-1GB-SD.img.gz|dd of=/dev/rsd3d 0+14144 records in 0+14144 records out 926941184 bytes transferred in 158.240 secs (5857818 bytes/sec) USBカードリーダーを差し直します。 # disklabel sd3 8 partitions: # size offset fstype fsize bsize cpg/sgs a: 1742848 67584 4.2BSD 2048 16384 128 # (Cyl. b: 131072 1810432 swap # (Cyl. c: 1742848 67584 unused 0 0 # (Cyl. d: 1941504 0 unused 0 0 # (Cyl. e: 65536 2048 MSDOS # (Cyl. file:///usr/local/Github/NetBSD/Guide/_build/singleh... 0 0 - 991*) 991*) bs=1m 33 884 33 0 1 - 883) 947) 883) 947) 32) ターミナルソフトのインストール ターミナルソフトのダウンロード ftp http://kimux.org/liza/arc/qpe-embeddedkonsole-ja_1.6.0-wide3_arm.ipk ターミナルソフトのコピー # mount_msdos /dev/sd3e /mnt # cp qpe-embeddedkonsole-ja_1.6.0-wide3_arm.ipk /mnt # umount /mnt ターミナルソフトのインストール ターミナルソフトをインストールするために、ファイル→SDカード→qpe-embeddedkonsole-ja_1.6.0-wide3_arm.ipkをク リックして、インストーラ経由でターミナルソフトをインストールします。 ターミナルソフトの起動 アプリケーションメニュー内に端末ウィンドウアイコンがあることを確認します。端末ウィンドウアイコンを長押しして離す と、プロパティメニューを表示します。チェックボックス 「アプリケーションをVGA(480x640ドット)の画面に最適化して実行 する」のチェックを外して、「OK」ボタンを押してアイコン画面に戻ります。 端末ウィンドウアイコンをクリックして、ターミナルを起動します。フォントの大きさは、Fn+Qで現れるメニューで変更できます。 NetBSDの起動 SL-C700以外 bash-2.05$ cd /mnt/card bash-2.05$ su # insmod -f zbsdmod.o # ./zboot : NetBSD/zaurus (Amnesiac) (console) login: SL-C700の場合 メンテナンスカーネルからLinuxを起動 BとDを押しながら、電池ぶたロックをロック、解除、ロックと動かして電源ボタンを押すと、メンテナンスカーネルが起動し ます。 メンテナンスカーネルでは、1GB以上のSDカードは認識しないため、差しておくとキーボード入力を受け付けません。 rootでログインします。 27 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... # # # # zaurus login: root cd /mnt/card insmod -f zbsdmod.o ./zboot スペースキーを押して中断します。 > boot netbsd.c700 : ログイン rootでログインします。 X起動 startxコマンドを実行すると、Xサーバが起動します。 cp /etc/X11/xinit/xinitrc ~/.xinitrc chmod +w ~/.xinitrc vi ~/.xinitrc /etc/X11/xorg.conf: Section "Device" : # Option "Rotate" "CW" ... この行をコメントアウトしてください。 EndSection NetBSD6.1.5用イメージ NetBSD6.1.5用のイメージを作りました。 http://mail-index.netbsd.org/port-zaurus/2014/12/06/msg000056.html ftp://ftp.netbsd.org/pub/NetBSD/misc/jun/zaurus/2014-12-06-netbsd6-zaurus.img.gz このイメージを2GB以上の容量のコンパクトフラッシュにコピーします。 # ftp ftp://ftp.netbsd.org/pub/NetBSD/misc/jun/zaurus/2014-12-06-netbsd6-zaurus.img.gz # gunzip < 2014-12-06-netbsd6-zaurus.img.gz |dd of=/dev/コンパクトフラッシュのデバイス 例) # gunzip < 2014-12-06-netbsd6-zaurus.img.gz |dd of=/dev/rsd3d ザウルスを起動します。 # cd /mnt/cf # ./Boot で起動します。起動デバイスはwd0を指定してください。 ZAURUS用の動くイメージを作ってみる https://github.com/ebijun/NetBSD/tree/master/zaurus/Image の下にある Makefileを見てみてください。 # make # make release とすると、イメージファイルができます。 参考リンク より詳細な説明は、以下のリンクを参考にしてください。 NetBSD/zaurus installation tips [http://mail-index.netbsd.org/port-zaurus/2011/05/20/msg000045.html] ↑日本語訳 [http://www.na.rim.or.jp/~kano/tmp/msg000045ja.html] [http://ftp.jp.NetBSD.org/pub/NetBSD/misc/tsutsui/zaurus/] ザウルス SL-C700 シリアルケーブル作成 [http://togetter.com/li/237198] NetBSDでザウルス SL-C700 サポートするぞ [http://togetter.com/li/242873] NetBSD/zaurus お試し用 1GB SDイメージ [http://togetter.com/li/243703] SDHCドライバ [http://petit-noise.net/download/sdhc-driver] SL-C700でNetBSD/zaurus [http://qml.610t.org/FreeBSD/mutoh_20120212.html] NetBSD/zaurus [http://www.NetBSD.org/ports/zaurus/] NetBSD Guide [http://www.NetBSD.org/docs/guide/download/netbsd-en.pdf.gz] Pkgsrc Guide [http://www.NetBSD.org/docs/pkgsrc/pkgsrc.pdf] 日本NetBSDユーザーグループ [http://www.jp.NetBSD.org/] 28 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... 日本NetBSDユーザーグループfacebookページ [http://www.facebook.com/NetBSD.jp] WZERO3でNetBSDを使ってみる NetBSD/hpcarm 6.1 W-ZERO3 ておくれLive Image 筒井さんによる、ておくれイメージのページも見てください。 http://www.ceres.dti.ne.jp/tsutsui/netbsd/liveimage/wzero3.html 用意するもの 1. WZERO3本体 WS003SH/WS004SH/WS007SH/WS011SH/WS020SH 2. ディスクイメージコピー用NetBSDマシン 3. USBカードリーダ 4. NetBSDインストール用メモリカード WS003SH/004SH/007SH MiniSDカードが必要です。MicroSDカードとMiniSDカードアダプタを組み合わせても利用できます。 2G以上のSDHCカードを使う場 合は、SDHCドライバをインストールするために、2G以下のSDカードが必要です。 WS011SH/WS020SH 2G以上のMicroSDカード SDカード用デバイスドライバのインストール WS003SH,WS004SH,WS007SHで、2G以上のSDHCカードを利用するためにはSDカード用デバイスドライバをインストールします。 SDHCドライバ http://w-zero3.org/?%A5%B7%A5%B9%A5%C6%A5%E0%B4%D8%B7%B8#wf87e46c インストール ダウンロードしたSDHCドライバを、2GB以下のMicro/MiniSDカードにコピーします。コピーしたカードをWZEROのカードス ロットに差します。 デバイスドライバのインストール WZERO3を起動し、ファイルエクスプローラ→mini/microSDカード→コピーしたSDHCドライバをクリック→インストールす る場所 デバイスを選んでインストール→再起動 OKを選択→メニューバー右上のXをクリックすると再起動が始まります。 NetBSDディスクイメージのダウンロード NetBSD7.99.4インストール済みのディスクイメージファイルを作りました。 ftp://ftp.netbsd.org/pub/NetBSD/misc/jun/hpcarm/2015-01-24-netbsd-hpcarm.img.gz ディスクイメージをコンパクトフラッシュにコピーする NetBSDをインストールするMini/MicroSDカードをUSBカードアダプタ経由でNetBSDマシンにつなぎます。 # dmesg .... sd3に2GBのMicroSDカードがつながっています。 sd3 at scsibus0 target 0 lun 3: <USB2.0, CardReader SD, 0100> disk removable sd3: fabricating a geometry sd3: 1947 MB, 1947 cyl, 64 head, 32 sec, 512 bytes/sect x 3987456 sectors sd3: fabricating a geometry # disklabel sd3 ... sd3のパーティションを確認します。 : 5 partitions: # size offset fstype fsize bsize cpg/sgs d: 3987456 0 unused 0 0 # (Cyl. 0 - 1946) e: 3987209 247 MSDOS # (Cyl. 0*- 1946) ... NetBSDではdパーティションがディスク全体になります。 # gunzip < 2014-12-06-netbsd6-hpcarm.img.gz |dd of=/dev/rsd3d bs=1m USBカードリーダーを差し直します。 # disklabel sd3 # size offset fstype fsize bsize cpg/sgs 29 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント a: b: c: d: e: 2947392 526016 3473408 3964928 393184 393216 3340608 393216 0 32 4.2BSD swap unused unused MSDOS 2048 16384 0 0 0 0 0 # # # # # file:///usr/local/Github/NetBSD/Guide/_build/singleh... (Cyl. (Cyl. (Cyl. (Cyl. (Cyl. 97*828*97*0 0*- 828*) 958*) 958*) 983*) 97*) NetBSDの起動 hpcboot起動 ファイルエクスプローラ→hpcboot.exe を起動すると、ブートローダhpcbootが起動します。 hpcboot内で機種とカーネルを指定 1. mini/microSDカード→カード種別を指定します。 2. netbsd→呼び出すカーネルを指定します。 3. Sharp W-ZERO3(WS004SH)→機種名をプルダウンメニューから選択します。 NetBSD起動 Bootボタンを押すと、本当に起動していいか確認メニューが現れます。NetBSDを起動すると、WZERO3のメモリ上にセーブし ていたデータは消えてしまうので、必要ならバックアップをとっておいてください。 ログイン root でログインできます。 login: root X起動 startxコマンドを実行すると、Xサーバが起動します。 # startx 無線LAN (WS003SH/004SH) NetBSD起動前にWindowsMobile上で有効(無線LAN LED点灯状態)にしておきます。 「スタート」→「設定」→「ユーティ リティ」→「無線ON/OFF」→「内蔵ワイアレスLANを停止」チェックをはずす→MACアドレスが表示されるか確認する [http://www.nazgul.ch/upgt/upgt-firmware-1.1.tar.gz]をダウンロードします。 % tar xzpvf upgt-firmware-1.1.tar.gz : % ls -l total 68 -rw-r--r-- 1 root wheel 23 Dec 23 2008 Makefile -rw-r--r-- 1 root wheel 28976 Dec 23 2008 upgt-gw3887 -rw-r--r-- 1 root wheel 372 Dec 23 2008 upgt-info # dmesg ... MicroSDカードをUSBカードアダプタ経由でNetBSDマシンにつなぎます。 : sd3 at scsibus0 target 0 lun 3: <USB2.0, CardReader SD, 0100> disk removable sd3: fabricating a geometry sd3: 1947 MB, 1947 cyl, 64 head, 32 sec, 512 bytes/sect x 3987456 sectors sd3: fabricating a geometry # fsck /dev/sd3a ... sd3にメディアがつながっている場合 # mount /dev/sd3a /mnt ... /mntにマウントする。 無線LANのファームウェアをコピーします。 # cp upgt-gw3887 /mnt/libdata/firmware/upgt/upgt-gw3887 参考リンク より詳細な説明は、以下のリンクを参考にしてください。 http://www.ceres.dti.ne.jp/tsutsui/netbsd/liveimage/wzero3.html http://ftp.netbsd.org/pub/NetBSD/misc/tsutsui/wzero3/ http://ftp.netbsd.org/pub/NetBSD/misc/tsutsui/wzero3/README.ja 30 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... NetBSD Guide [http://www.NetBSD.org/docs/guide/download/netbsd-en.pdf.gz Pkgsrc Guide [http://www.NetBSD.org/docs/pkgsrc/pkgsrc.pdf http://www.amazon.co.jp/dp/B000L81AAU/ 日本NetBSDユーザーグループ http://www.jp.NetBSD.org/ NetBSD/hpcmipsを使ってみる 特徴 NetBSD/hpcmipsを利用するために、ディスクイメージを用意しました。 NetBSDでmatt-nb... がマージされたあと、hpcmipsは不安定です。 NetBSD7に向けて、バイナリイメージで試せるようにします。 RPI向けイメージと同じバイナリを作ってみます。 準備するもの NetBSD/hpcmipsをサポートしているマシン (NEC mobilegear,sigmarion) 2GB コンパクトフラッシュ SigmarionII:FOMA接続ケーブル+USB ネットワークアダプタ PCMCIAネットワークカード (カードバス対応でないもの) 起動ディスクの作成 ディスクイメージのダウンロード # ftp ftp://ftp.netbsd.org/pub/NetBSD/misc/jun/hpcmips/ 2013-08-23-netbsd-hpcmips.img.gz 2GB以上のコンパクトフラッシュを準備します。 ダウンロードしたディスクイメージを、コンパクトフラッシュ上で展開します。 disklabel sd0 ..... 必ずインストールするSDカードか確認してください。 gunzip < 2013-08-23-netbsd-hpcmips.img.gz|dd of=/dev/rsd0d bs=1m NetBSD/hpcmipsの起動 1. コンパクトフラッシュをWindowsCE機に挿して起動します。 2. CF上に見えるhpcboot.exeを実行します。 3. メニューでカーネルを指定して起動します。 4. 少し待つと、NetBSDの起動メッセージが表示されます。 ログイン rootでログインできます。 login: root DreamCastでNetBSD DreamCastでNetBSDを起動してみましょう。DreamCastからNetBSDを 起動するために、起動用のCD-Rを作ります。 1. CD-Rに書き込めるドライブ付きのPCを用意します。 2. ブータブルNetBSDイメージで起動します。 3. CD-ROMドライブでDreamCast起動CD-Rを作ります。 4. 作ったCD-Rを使ってDreamCastを起動します。 @tsutsuiiさん作、DreamCastのCD-Rを作るための環境を準備します。 http://ftp.netbsd.org/pub/NetBSD/arch/dreamcast/dcburn/ 詳しい手順はREADMEに書いてあります。 dcburn-20151122.img.gz をダウンロードして、ブート用USBメモリを 作ります。 USBメモリからPCを起動します。 rootでログインします。 31 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... うまくCD-Rドライブとネットワークインターフェースが見えていれば大丈夫です。 ping www.netbsd.org CD-Rをドライブにいれます。 make を実行します。 http://ftp.netbsd.org/pub/NetBSD/arch/dreamcast/dcserv/ KOBOでNetBSDを動かしてみる 目標 KOBOでNetBSDを動かしてみます。 KOBOにシリアルポート経由で接続します。 バイナリイメージで試せるようにします。 RPI向けイメージと同じイメージで起動します。 できることとできないこと NetBSDが起動します。 外部から電源を供給できるUSBハブ経由で接続したUSB機器を利用できるはずです。 電子インクは利用できません。 準備するもの KOBO 2GB 以上のmicro SDカード2枚 シリアル接続ケーブル KOBOとシリアルを接続するジャンパ線 秋月:FTDI 3.3V http://akizukidenshi.com/catalo TXD: 橙色 RXD: 黄色 GND: 黒色 microSDカードの設定 kobo touchには、内蔵microSDスロットと、脇部分にあるmicroSDスロットがあります。内蔵microSDスロットにubootイメー ジを書き込んだmicroSDを挿します。 脇部分にあるmicroSDスロットには、RPI用に作ったイメージを挿します。 元から刺さっていたmicroSDは大事に保管しておきます。 もし NetBSD起動に飽きた時でも、本来の電子図書として楽しく使えます。 KOBOではmicroSDに書き込んだPDFファイルも読めるので、 PDF ビューワとしても便利です。 シリアルケーブル まず裏蓋を開けます。右下の部分にTX,RXと書いた基盤の穴があります。 ここにシリアルポートを接続します。 uboot KOBO用ubootイメージは以下の場所にもあります。 http://rappappararin.blogspot.jp/2012/09/kobou-boot.html http://rappappararin.blogspot.jp/2012/09/kobonetbsd.html https://docs.google.com/open?id=0B-K-8275486qNDk2VFVKS3ZaOHc 以下のコマンドでカーネルをロードして起動します。 mmcinfo 1 fatload mmc 1 0x70800000 kobo.bin go 0x70800000 または、環境変数に引数を設定しておきます。 32 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... BR-1A # setenv bootcmd_netbsd 'mmcinfo 1;fatload mmc 1 0x70100000 kobo.bin; go 0x70100000' BR-1A # setenv bootcmd 'run bootcmd_netbsd' BR-1A # saveenv pkgsrcでソフトウェアをインストールする pkgsrcを利用すると、さまざまなソフトウェアをコンパイル、インストールすることができます。 1. まずOSをインストールします 2. pkgsrc.tar.gzを展開します 3. 必要なパッケージをコンパイル、インストールします tcsh,icewm,kterm,anthy-elisp,ja-less libreoffice4,firefox,gimp ... pkgsrcをダウンロード pkgsrcのWebサイトはhttp://www.pkgsrc.org/です。pkgsrcは、一年に4回定期的にリリースされます。 % ftp ftp://ftp.pkgsrc.org/pub/pkgsrc/ pkgsrc-2012Q4 pkgsrc-2013Q1 pkgsrc-2013Q2 : % ftp ftp://ftp.pkgsrc.org/pub/pkgsrc/stable/pkgsrc.tar.gz 日本のミラーの場合: % ftp ftp://ftp7.jp.NetBSD.org/pub/pkgsrc/stable/pkgsrc.tar.gz /usr/pkgsrcにダウンロードしたtar ファイルを展開してみましょう。 % su # tar xzvf pkgsrc.tar.gz # ls /usr/pkgsrc CVS comms Makefile converters README cross archivers databases audio devel benchmarks distfiles biology doc bootstrap editors cad emulators chat filesystems -C /usr ... /usr以下に展開します。 finance fonts games geography graphics ham inputmethod lang licenses mail math mbone meta-pkgs misc mk multimedia net news packages parallel pkglocate pkgtools print regress security shells sysutils templates textproc time wip wip-jp wm www x11 ソフトウェアをコンパイルしてインストールする枠組みが、/usr/pkgsrc/ジャンル/ソフトウェア名 以下にあります。 LibreOfficeをコンパ イルして、インストールしたいときには、次のようにコマンドを実行します。 # cd /usr/pkgsrc/misc/libreoffice4 # make package-install うまくコンパイルしてインストールできると、LibreOfficeを実行出来ます。 % soffice pkgsrcを使ってみる 「RaspberryPIでmikutterというtwitterクライアントを使いたい」場合を考えてみます。 インストールできそうなソフトウェアは、/usr /pkgsrc/ジャンル名/ 以下にディレクトリがあります。 ここに使いたいソフトウェアがあれば、コンパイルしてインストールできるかもし れません。 % ls /usr/pkgsrc/* |grep mikutter mikutter .... % cd /usr/pkgsrc/*/mikutter .... % pwd /usr/pkgsrc/net/mikutter .... % ls CVS DESCR Makefile PLIST % cat DESCR .... Mikutter is a Twitter client aim for Miku-aholics and Twitter-holics. 33 / 48 pkgsrcにmikutterがある! ジャンルはわからないけど移動 "net" の下にあった distinfo files ソフトウェアの説明 endsville Twitter client For all of 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... % cat Makefile # $NetBSD: Makefile,v 1.68 2013/06/23 01:09:43 tsutsui Exp $ # DISTNAME= PKGNAME= CATEGORIES= MASTER_SITES= mikutter.0.2.2.1264 ... mikutterのバージョンとか ${RUBY_PKGPREFIX}-${DISTNAME:S/./-/} net http://mikutter.hachune.net/bin/ ... 配布サイト MAINTAINER= HOMEPAGE= COMMENT= LICENSE= [email protected] ... このパッケージを管理している人 http://mikutter.hachune.net/ ... ソフトウェアのホームページ Simple, powerful, and moeful twitter client .. 一行説明 gnu-gpl-v3 AND cc-by-sa-v3.0 ... ソフトウェアのライセンス RUBY_VERSION_SUPPORTED= 193 .include "../../lang/ruby/rubyversion.mk" xdg-utils-[0-9]*:../../misc/xdg-utils ... 依存しているソフトウェア ${RUBY_PKGPREFIX}-hmac>=0.4.0:../../security/ruby-hmac : % cat PLIST ... インストールするファイルの一覧です @comment $NetBSD: PLIST,v 1.23 2013/05/15 11:24:14 obache Exp $ bin/mikutter ... /usr/pkg/bin/mikutterにインストールされます share/applications/mikutter.desktop share/doc/mikutter/README share/mikutter/core/boot/check_config_permission.rb share/mikutter/core/boot/load_plugin.rb share/mikutter/core/boot/mainloop.rb share/mikutter/core/boot/option.rb DEPENDS+= DEPENDS+= % distinfo .... ダウンロードするファイルの一覧とチェックサム $NetBSD: distinfo,v 1.60 2013/06/16 08:58:06 obache Exp $ SHA1 (mikutter.0.2.2.1264.tar.gz) = f93757ca51f3fe9f555df32c86c2ed7021992887 RMD160 (mikutter.0.2.2.1264.tar.gz) = bd3f4a49eb8d96a225b4cc704115995fe390e42a Size (mikutter.0.2.2.1264.tar.gz) = 2318031 bytes mikutterと、mikutterをインストールするために必要なソフトウェアをインストールoします。 % su # cd /usr/pkgsrc/net/mikutter # make package-install RaspberryPIで使いそうなソフトを一気にインストールする /usr/pkgsrc/ジャンル名を眺めて、使いそうなソフトウェアをリストアップします。 % cat List kterm tcsh vlgothic-ttf icewm xli mikutter uim fossil sudo scmgit-base zsh dillo 簡単なシェルスクリプトを作って、実行します。コンパイルがうまく進めば、必要なソフトウェアがすべてソースコードからコンパイ ル・インストールされた状態になります。 % cat Package for i in `cat List` do cd /usr/pkgsrc/*/$i make package-install done % su # sh Package # pkg_info .... インストールされたパッケージの一覧を表示します。 34 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... デスクトップ環境を作ってみる デスクトップ環境の設定:Xfceの場合 # # # % % % % % cd /usr/pkgsrc/meta-pkgs/xfce4 make package-install pkg_info |wc .... 110個程度の関連パッケージがインストールされます rehash .... ログインシェルがcshの場合に必要です startxfce4 .... 英語版の環境が立ち上がります setenv LANG ja_JP.UTF-8 .... ログインシェルがcshの場合 .... ログインシェルがshの場合 export LANG=ja_JP.UTF-8 startxfce4 .... 日本語版の環境が立ち上がります デスクトップ環境の設定:gnomeの場合 # cd /usr/pkgsrc/meta-pkgs/desctop-gnome # make package-install # gnome-session デスクトップ環境の設定: deforaos-desktopの場合 RPIなどでは、/etc/mk.confに以下の行を追加します。 PKG_OPTIONS.deforaos-terminal=embedded # cd /usr/pkgsrc/meta-pkgs/deforaos-desktop # make package-install ウィンドウマネージャの設定:icewmの場合 # cd /usr/pkgsrc/wm/icewm # make package-install # which icewm /usr/pkg/bin/icewm % cd % ls .xinitrc ..... .xinitrcがあるかどうか確認します。 もし.xinitrcがない場合、以下の手順でコピーします。 cp /etc/X11/xinit/xinitrc -/.xinitrc ... XXX:上書きしないよう気をつけて! % vi .xinitrc ..... 最後の5行を書き換えます。 twm & xclock -geometry 50x50-1+1 & /usr/X11R7/bin/xterm -geometry 80x50+494+51 & /usr/X11R7/bin/xterm -geometry 80x20+494-0 & exec /usr/X11R7/bin/xterm -geometry 80x66+0+0 -name login ↓ xclock -geometry 50x50-1+1 & /usr/X11R7/bin/xterm -geometry 80x50+494+51 & /usr/X11R7/bin/xterm -geometry 80x20+494-0 & /usr/X11R7/bin/xterm -geometry 80x66+0+0 & icewm % startx ..... icewmが起動します。 % cp -r /usr/pkg/share/icewm -/.icewm .... メニューをカスタマイズ % vi -/.icewm/menu prog Kterm Kterm kterm -fk k14 -fn a14 -fr r14 -km euc prog SeaMonkey seamonkey seamonkey prog Mikutter mikutter miutter separator prog Shotwell shotwell shotwell prog GtkPod gtkpod gtkpod prog Fossil fossil fossil server /usr/local/fossil/my-repo separator prog OpenOffice soffice soffice prog Acroread acroread9 acroread9 separator menuprog Gnome folder icewm-menu-gnome1 --list menuprog Gnome folder icewm-menu-gnome2 --list menuprog KDE folder icewm-menu-gnome --list menufile Emulators folder programs ... 階層構造 menufile Games folder games % vi -/.icewm/programs ... .icewmで指定した階層構造 # This is an example for IceWM's toolbar definition file. # 35 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... # Place your variants in /usr/pkg/etc/icewm or in $HOME/.icewm # since modifications to this file will be discarded when you # (re)install icewm. # prog Xnp2 xnp2 xnp2 prog XM6i xm6i xm6i prog Minux Minux Minux % vi -/.icewm/preferences : # Desktop background image # DesktopBackgroundImage="" .... 壁紙のイメージをここで設定できます。 ウィンドウマネージャの設定:jwmの場合 # cd /usr/pkgsrc/wm/jwm # make package-install 漢字変換&emacs mozcを利用する場合 % cd /usr/pkgsrc/inputmethod/ibus-mozc # make package-install 漢字変換に必要な環境変数を.xinitrc等で設定します。 export LANG=ja_JP.eucJP export GTK_IM_MODULE="ibus" export XMODIFIERS="@im=ibus" export QT_IM_MODULE="ibus" ibus-daemon --xim & emacsを利用する場合は、mozc-elispパッケージをインストールします。 % cd /usr/pkgsrc/inputmethod/mozc-elisp # make package-install anthyを利用する場合 # # # # cd /usr/pkgsrc/inputmethod/anthy make package-install cd /usr/pkgsrc/inputmethod/uim make package-install .xinitrcに以下の行を追加します。 export GTK_IM_MODULE=uim export LANG=ja_JP.eucJP export XMODIFIERS=@im=uim export QT_IM_MODULE="uim" uim-xim & emacsを利用する場合は、anthy-elispパッケージをインストールします。 % cd /usr/pkgsrc/inputmethod/anthy-elisp # make package-install .emacs に、以下の記述を追加します。 (set-language-environment "Japanese") (set-default-coding-systems 'utf-8) (set-language-environment "Japanese") (load-library "anthy") (setq default-input-method "japanese-anthy") ; (define-obsolete-variable-alias 'last-command-char 'last-command-event "at least 19.34") 壁紙 36 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... # cd /usr/pkgsrc/graphics/xli # make package-install .xinitrcに以下の行を追加して、壁紙画像を表示するプログラムを起動します。 例) xsetbg -/Desktop/penguindrum_wp1_1s.jpg ソフトウェアのコンパイル/インストール gedit % cd /usr/pkgsrc/editors/gedit # make package-install firefox % cd /usr/pkgsrc/www/firefox # make package-install % cd /usr/pkgsrc/www/firefox-l10n # make package-install # grep flashsupport /etc/mk.conf ACCEPTABLE_LICENSES+= adobe-flashsupport-license # cd /usr/pkgsrc/multimedia/adobe-flash-plugin11 # make package-install LibreOffice # # # % grep libreoffice4 /etc/mk.conf cd /usr/pkgsrc/misc/libreoffice4 make package-install /usr/pkg/bin/soffice LaTeX # cd /usr/pkgsrc/print/ja-ptex # make package-install CMSを使ってみる drupal # cd /usr/pkgsrc/www/drupal7 # make package-install wordpress # cd /usr/pkgsrc/www/php-ja-wordpress # make package-install # cd /usr/pkgsrc/archivers/php-zlib # make package-install .... zip形式のテーマをインストールする時に必要 AddHandler application/x-httpd-php .php fossilを使ってみる # cd /usr/pkgsrc/devel/fossil # make package-install % ls /usr/pkg/bin/fossil % fossil help Usage: fossil help COMMAND Common COMMANDs: (use "fossil help --all" for a complete list) add changes finfo merge revert tag addremove clean gdiff mv rm timeline all clone help open settings ui 37 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... annotate commit import pull sqlite3 undo bisect diff info push stash update branch export init rebuild status version cat extras ls remote-url sync This is fossil version 1.25 [d2e07756d9] 2013-02-16 00:04:35 UTC % fossil init my-repo fossil init my-repo project-id: fdd587ee44f524d432186fe6a1dc379c51b26c1d server-id: 7873c960d27f3b0ef2d7da2294bfc6eb092dc61e admin-user: jun (initial password is "bb4867") % fossil server my-repo & .... ブラウザでポート8080にアクセスするとGUI画面が表示されます。 Gitのインストール # cd /usr/pkgsrc/devel/git-base # make package-install % ls -l /usr/pkg/bin/git エミュレータでNetBSD Qemu # # # # # cd /usr/pkgsrc/emulators/qemu make package-install qemu-img create -f qed NetBSD-sparc.qed 500M ... qedが動くかチェック qemu-system-sparc -M SS-20 -m 64 -kernel netbsd-GENERIC -hda my-sun4c-disk.img -hdb miniroot.fs -nographic -cdrom NetBSD-6.99.17-sparc.is qemu-system-sparc -M SS-20 -m 64 -kernel netbsd-sd -hda my-sun4c-disk.img -nographic -net nic -net user -redir tcp:2222::22 Gxemul # /usr/pkgsrc/emulators/gxemul # make package-install # gxemul -e mobilepro770 -M 128 -I 800000000 -d Z50.img -d c:/usr/release/images/NetBSD-6.99.14-hpcmips.iso netbsd-install # gxemul -e jornada680 -M 128 -I 800000000 -d c:/usr/release/iso/NetBSD-5.1.2-hpcmips.iso /mnt/netbsd Package - /usr/pkgsrc 簡単にソフトウェアをコンパイル・インストール 1997年8月開始 201?-Q[1-4] もうすぐ準備 41種類のジャンル 9963種類以上のソフトウェア Make installでソフトウェアのインストール 各CPUアーキテクチャ間で共通 mipsel –mips endian little arc – MIPSで動くNTマシン cobalt – Cobalt Qube1/2 pmax – DEC station hpcmips – MIPS搭載WinCE /usr/pkgsrc/emulators gxemul mips (pmax,hpcmips) dreamcast simh NetBSD/vax tme sun2,sun3,SPARCstation 2 QEMU PC USBデバッグ 38 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... Packagesジャンル一覧 The NetBSD Packages Collection Packages to support the X window system x11 archivers Archivers audio Audio tools benchmarks Benchmarking tools biology Software for the biological sciences cad CAD tools chat Communication programs comms Communication utilities converters Document format and character code converters cross Cross-platform development utilities databases Databases devel Development utilities editors Editors emulators Emulators for other operating systems filesystems File systems and file system related packages finance Monetary financial and related applications fonts Fonts games Games geography Software for geographical-related uses graphics Graphics tools and libraries ham Wireless communication tools and applications inputmethod Input method tools and libraries lang Programming languages mail Electronic mail utilities math Mathematics mbone Multi-cast backBone applications meta-pkgs Collections of other packages misc Miscellaneous utilities multimedia Multimedia utilities net Networking tools news Network news parallel Applications dealing with parallelism in computing pkgtools Tools for use in the packages collection print Desktop publishing security Security tools shells Shells sysutils System utilities textproc Text processing utilities (does not include desktop publishing) time Clocks calendars daily planners and other time related applications wm X11 window managers configuration tools and themes www Packages related to the World Wide Web 目的別 デスクトップ向け 組み込み向け pkgsrc/meta-pkgにいくつかある Package対応プラットフォーム 1. NetBSD 2. Solaris / SmartOS / illumos 3. Linux 4. Darwin (Mac OS X) 5. FreeBSD 6. OpenBSD 39 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... 7. IRIX 8. AIX 9. DragonFlyBSD 10. OSF/1 11. HP-UX 12. QNX 13. Haiku 14. MirBSD 15. Minix3 16. Cygwin 17. GNU/kFreeBSD 18. SCO OpenServer 5 NetBSD以外でpkgsrc # tar xzvf pkgsrc.tgz # cd pkgsrc/bootstrap # ./bootstrap Packageとライセンスの取扱い 個々のパッケージごとにLICENSE定義 受け入れられるライセンスを制御したい ツールとライブラリのライセンスが違う ツールがGPL,ライブラリがLGPL GPLv2とv3が混在する例 rubyとreadline6 GPL2とGPL2 or laterの区別 GPL3とリンクできるかできないか http://d.hatena.ne.jp/obache/20090922/ バイナリ互換性を利用する Cobalt Qube2でhpcmipsバイナリ作成 MIPSでendian little =mipsel同士なら動く ユーザランドはほとんどそのまま動く パッケージも共通化 NetBSD/{pmax,cobalt,arc,hpcmips}で共通 数GBある各種アプリケーション群を共通にする pkgsrcを更新する まず/usr/pkgsrcを更新し、次に、必要なソフトウェアを再コンパイルします。cvsで、/usr/pkgsrcを更新します。 # cd /usr/pkgsrc # cvs update -PAd ... 最新版に上げる # cvs update -Pdr pkgsrc-2013Q2 ... 2013Q2に上げる 更新が必要なソフトウェアを更新します。pkg_chkコマンド、またはpkg_rolling-replaceコマンドで更新します。 # pkg_chk -u # /usr/pkg/sbin/pkg_chk -u -b -n -P /usr/local/src/NetBSD/pkgsrc-2013Q2/packages/All # /usr/pkg/sbin/pkg_chk -u -b -P /usr/local/src/NetBSD/pkgsrc-2013Q2/packages/All # cd /usr/pkgsrc/pkgtools/pkg_rolling-replace # make package-install # /usr/pkg/bin/pkg_rolling-replace このドキュメント 以下のURLからこのドキュメントのソースコードをダウンロードできます。 ドキュメントはpy-sphinxを利用しています。 https://github.com/ebijun/NetBSD/tree/master/Guide フォーマット: /usr/pkgsrc/textproc/py-sphinx 編集: /usr/pkgsrc/editors/gedit PDFチェック: /usr/pkgsrc/pring/evince bccksで豆本にしたい 40 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... mlterm-fbを使ってみる mlterm リソースの限られたマシンでは、Xを起動させるだけでリソースを使いきってしまう場合があります。 mlterm (pkgsrc/x11/mlterm) [mlterm] は、X上で動作する多言語ターミナルエミュレータですが、mlterm-fbを有効にしてコンパイルすると、フレームバッファ上で動 作する多言語ターミナルエミュレータとして利用できます。 mlterm-fb向けオプション設定 /etc/mk.confに、mltermに与えるオプションを指定しておきます。pkgsrc/x11/mlterm以下を利用して、mltermをインストールします。 % grep mlterm /etc/mk.conf PKG_OPTIONS.mlterm=xft2 mlterm-fb # cd /usr/pkgsrc/x11/mlterm # make package-install # which mlterm-fb /usr/pkg/bin/mlterm-fb 起動 コンソール画面からmlterm-fbを起動します。 % mlterm-fb PCでのmlterm-fb起動 NetBSD/i386,amd64でmlterm-fbを利用する場合、起動時にVESAを指定します。 [はよーん] 1. 起動オプションで5を選択 2. > プロンプトでvesa を指定 3. boot 4. 起動 5. ログイン 6. mlterm-fb起動 テスト画像表示 mlterm-fbを起動した状態で、catを利用して、画像イメージを表示します。 % ftp http://mlterm.sourceforge.net/vimperator.six % cat vimperator.six 41 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... 画像変換方法 netpbmをインストールして、以下のコマンドを実行するとsixel形式に変換できます。 # cd /usr/pkgsrc/graphics/netpbm;make package-install % jpegtopnm aaa.jpg |pnmquant 256 |ppmtosixel > aaa.sixel % pngtopnm aaa.png |pnmquant 256 |ppmtosixel > aaa.sixel mltermソースからmlterm-fbをコンパイルする # ./configure --with-gui=xlib,fb # make install 回転させて表示 NetBSD/zaurus C1000以降および、NetBSD/hpcarm WS011SHでは、そのまま起動すると、 mltermが縦画面で起動してしまいます。こ の場合、mltermに–rotateオプションをつけて起動するか、起動後に$ mlcc rotate_display trueすると回転します。 。 .. –rotateオプショ ンの挙動を変更し、–rotate=rightで時計回りに、–rotate=leftで反時計回りに回転します。(WS011SHは反時計回り?) この機能は最新版( http://t.co/l52DRJGwGf ) に追加されています。 mltermについて http://mlterm.sourceforge.net/ に、より詳しい情報があります。 mlterm-fb上でtwを動かしてみる mlterm-fb上で日本語が表示できたら、tw [tw] を利用してツイッターのタイムラインを表示してみましょう。 twのインストール pkgsrcからtwをインストールします。 # cd /usr/pkgsrc/net/ruby-tw # make package-install [mlterm] mlterm http://mlterm.sourceforge.net/ [tw] tw http://shokai.github.io/tw/ [はよーん] http://jnug.net/msg012914ja.html PkgsrcでCMSを使ってみる net commons http://www.netcommons.org/ NetCommons-2.4.1.0.tar.gz をダウンロード 「推奨の組み合わせ: Linux, PHP 5.1.6, MySQL 5.0.22, Apache 2.2.3」 # cd /usr/pkgsrc/lang/php53 ... netcommonsはphp54以降未サポート(2013/8/1) # cd /usr/pkgsrc/databases/php-mysql ... php53+mysqlインストール # vi /usr/pkg/etc/php.ini extension=mysql.so # cd /usr/pkgsrc/www/ap-php ... php53+apacheインストール # make package-install # vi /usr/pkg/etc/httpd/httpd.conf LoadModule php5_module lib/httpd/mod_php5.so AddHandler application/x-httpd-php .php # cd /usr/pkgsrc/converters/php-mbstring # make package-install # vi /usr/pkg/etc/php.ini extension=mbstring.so # vi /usr/pkg/etc/httpd/httpd.conf DirectoryIndex index.php index.html 42 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... # vi /etc/rc.conf apache=YES # cp /usr/pkg/share/examples/rc.d/apache/etc/rc.d/apache # /etc/rc.d/apache start # # # # cp -r NetCommons-2.4.1.0/html/html /usr/pkg/share/httpd/htdocs/ cd /usr/pkg/share/httpd/htdocs chown -R www.www html mv html/* . 2013/8/1現在php5.4未対応 [Unknown_Condition_2048 ]:Non-static method LogFactory::getLog() should not be called statically,assuming $this from incompatible context in /usr/pkgsrc/lang/php53 make package-install SSL設定 /usr/pkg/etc/httpd/httpd-ssl.conf SSLCertificateFile SSLCertificateKeyFile SSLCertificateChainFile /usr/pkg/etc/httpd/httpd.conf Include etc/httpd/httpd-ssl.conf ... コメントはずす プリンターの設定 hplipのインストール # cd /usr/pkgsrc/print/hplip # /etc/mk.confに PKG_OPTIONS.hplip=qt追加 # hpli.. cupsのインストール # # # # # cd /usr/pkgsrc/print/cups make package-install /etc/rc.conf に cupsd=YESを追加する ブラウザでhttp://localhost:631にアクセス。 Administratorタブを開いて、rootでログイン。 NetBSDでの無線LAN設定 1. WEPの時 # ifconfig iwn0 ssid "sdfsdfdsfsdf" nwkey "sdfsfsdfsfs" # ifconfig iwn0 ssid "sdfsdfdsfsdf" nwkey "0x0123ABCDEF" 2. WPA-PSKの時 /etc/wpa_supplicant.confに設定内容を書く。 ctrl_interface=/var/run/wpa_supplicant ctrl_interface_group=wheel network={ ssid="oschiroshima_booth_xx" scan_ssid=1 key_mgmt=WPA-PSK psk="osc2011hiroshima1" } と書いて、 # ifconfig iwn0 up # /usr/sbin/wpa_supplicant -dd -i iwn0 -c /etc/wpa_supplicant.conf 43 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... でうまく動いたら-ddをとる。 NetBSDで観光ガイドを作ってみる イベントで配る小冊子を作る オープンソースカンファレンスではいつもNetBSDブースで「観光ガイド」と いう小冊子を配っています。この作り方を紹介します。 観光ガイド一覧 https://github.com/ebijun/osc-demo 観光ガイドを配るまで 観光ガイドはA4 20ページくらいのPDFファイルです。印刷はセブンイレブンの コピー機を使っています。USBメモリに入れたPDFファイ ルを、セブンイレブンに あるコピー機でカラー1部,白黒15部印刷します。 そのとき「小冊子印刷」を選ぶと、コピー機がページの割付を してくれて、 A5サイズの小冊子を印刷できます。小冊子印刷で印刷するPDFファイルの ページ数は4の倍数にしておきます。一回にかか る費用は2800円程度です。 観光ガイドの構造 観光ガイドは、3つのPDFを組み合わせて作っています。 表紙 本文 裏表紙 PDFを組み合わせる PDFを組みあわせて、ひとつのPDFファイルにするときには、 pdfshufflerを使っています。 # cd /usr/pkgsrc/print/pdfshuffler # make package-install % pdfshuffler 表紙 表紙は、WindowsのIllustratorで作って、PDF出力しています。 ガイドを作りはじめた頃はWindowsで作っていました。 NetBSDなら inkscapeが使えます。 # cd /usr/pkgsrc/graphics/inkscape # make package-install % inkscape 裏表紙 裏表紙は、scribusを使っています。これもPDF出力できます。 # cd /usr/pkgsrc/print/scribus-qt4 # make package-install % scribus 本文 本文部分は、sphinxとgithubを組み合わせて使っています。 # cd /usr/pkgsrc/textproc/py-sphinx # make package-install Sphinxでドキュメントを作る sphinx-quickstartコマンドを実行すると、文書のスケルトンを作ってくれます。 % sphinx-quickstart Welcome to the Sphinx 1.2.2 quickstart utility. 44 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... Please enter values for the following settings (just press Enter to accept a default value, if one is given in brackets). Enter the root path for documentation. > Root path for the documentation [.]: You have two options for placing the build directory for Sphinx output. Either, you use a directory "_build" within the root path, or you separate "source" and "build" directories within the root path. > Separate source and build directories (y/n) [n]: Inside the root directory, two more directories will be created; "_templates" for custom HTML templates and "_static" for custom stylesheets and other static files. You can enter another prefix (such as ".") to replace the underscore. > Name prefix for templates and static dir [_]: The project name will occur in several places in the built documentation. > Project name: Pipe Piper Paper > Author name(s): Jun Ebihara Sphinx has the notion of a "version" and a "release" for the software. Each version can have multiple releases. For example, for Python the version is something like 2.5 or 3.0, while the release is something like 2.5.1 or 3.0a1. If you don't need this dual structure, just set both to the same value. > Project version: 1.0 > Project release [1.0]: 0 The file name suffix for source files. Commonly, this is either ".txt" or ".rst". Only files with this suffix are considered documents. > Source file suffix [.rst]: One document is special in that it is considered the top node of the "contents tree", that is, it is the root of the hierarchical structure of the documents. Normally, this is "index", but if your "index" document is a custom template, you can also set this to another filename. > Name of your master document (without suffix) [index]: [39;49;00m Sphinx can also add configuration for epub output: > Do you want to use the epub builder (y/n) [n]: Please indicate if you want to use one of the following Sphinx extensions: > autodoc: automatically insert docstrings from modules (y/n) [n]: > doctest: automatically test code snippets in doctest blocks (y/n) [n]: > intersphinx: link between Sphinx documentation of different projects (y/n) [n]: > todo: write "todo" entries that can be shown or hidden on build (y/n) [n]: > coverage: checks for documentation coverage (y/n) [n]: > pngmath: include math, rendered as PNG images (y/n) [n]: > mathjax: include math, rendered in the browser by MathJax (y/n) [n]: > ifconfig: conditional inclusion of content based on config values (y/n) [n]: > viewcode: include links to the source code of documented Python objects (y/n) [n]: A Makefile and a Windows command file can be generated for you so that you only have to run e.g. `make html' instead of invoking sphinx-build directly. > Create Makefile? (y/n) [y]: > Create Windows command file? (y/n) [y]: Creating Creating Creating Creating file file file file ./conf.py. ./index.rst. ./Makefile. ./make.bat. Finished: An initial directory structure has been created. You should now populate your master file ./index.rst and create other documentation source files. Use the Makefile to build the docs, like so: make builder where "builder" is one of the supported builders, e.g. html, latex or linkcheck. html出力をしてみる gmake htmlを実行すると、_build/html以下にhtmlファイルを作ってくれます。 % gmake html % ls _build/html 45 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント _sources _static genindex.html index.html objects.inv search.html file:///usr/local/Github/NetBSD/Guide/_build/singleh... searchindex.js テキスト出力をしてみる gmake textを実行すると、_build/テキスト以下にtxtファイルを作ってくれます。 % gmake text % ls _build/text index.txt Sphinxのディレクトリをgithubに登録する Sphinxのディレクトリをgithubに登録して、文章の版数管理とプレビューを githubでやってみます。 https://github.com/ebijun/NetBSD/tree/master/Guide たとえば、 https://github.com/ebijun/NetBSD/blob/master/Guide/Luna.rst を見ると、Lunaの薄い本の内容がそれっぽくフォーマット されて出力されます。 観光ガイド本文を作る いろんな文章を、markdownでかいて、どんどんgithubに登録していきます。 観光ガイドを作るときは、イベントに合わせた文章をいく つか選んで、 index.rstに登録します。 https://raw.githubusercontent.com/ebijun/NetBSD/master/Guide/index.rst : Place/fukuoka https://github.com/ebijun/NetBSD/blob/master/Guide/Place/fukuoka.rst Place/intro https://github.com/ebijun/NetBSD/blob/master/Guide/Place/intro.rst RPI https://github.com/ebijun/NetBSD/blob/master/Guide/RPI.rst Place/asiabsdcon https://github.com/ebijun/NetBSD/blob/master/Guide/Place/asiabsdcon.rst gmake singlehtmlを実行します。すべての文章が一つのhtmlファイルにまとまります。 % gmake singlehtml % ls _build/singlehtml _images _static index.html objects.inv まとまった文章をfirefoxで開きます。全体を20ページにするなら、表紙と裏表紙2ページ分を抜いた18ページ分になるよう、firefoxの表示 縮尺を調整して、PDFで出力します。 % firefox _build/singlehtml/index.html PDFを組み合わせる 表紙、裏表紙、本文3つのPDFをpdfshufflerでひとつのPDFファイルにつなぎあわせて、 FTPサーバにアップデートします。アップデート したらtwitterなりfacebookなりで 報告します。イベント終了後には、URLを配布ドキュメントとして連絡します。 まとめ イベントごとに配布している小冊子をNetBSD上で作る方法を紹介しました。 おもにAtomのネットブックでいつも作っていますが、 NetBSDであればどのマシンでも手順自体はおなじです。 日本NetBSDユーザーグループのご紹介 Japan NetBSD Users’ Group 1999年8月21日成立 members-ja:45人 committee:18人 日本のNetBSDユーザに便宜を図る FTP/CVS/WWWサーバの管理 ドキュメント・WWWページ翻訳 KOF,OSCに全て参加(.DB/.cloud除く) 46 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... 回線提供:IIJ http://www.jp.NetBSD.org/ 年一度定期総会・BoFを実施 2016/7/9 東京 根津 東大武田先端知ビル ハッシュタグ: #JNUG メーリングリスト http://www.jp.netbsd.org/ja/JP/ml.html NetBSD一般 announce-ja,junk-ja,tech-misc-ja,tech-pkg-ja 機種特有 port-arm32-ja,port-hpcmips-ja,port-mac68k-ja,port-mips-ja,port-powerpc-ja,hpcmips-changes-ja JNUG関連 members-ja,admin-ja jp.NetBSD.org運営関連 www-changes-ja サーバ周り ftp?.jp.NetBSD.org 1時間に一度更新:cvsweb.NetBSD.org (pigu)とanoncvs.jp.NetBSD.org (incubator) Webページ CVS管理からgit管理へ git clone git://github.com/NetBSDjp/htdocs.git FaceBook http://www.facebook.com/NetBSD.jp/ 366いいね: イベント欄: www.jp.NetBSD.orgと連携 [email protected] 参加申し込み: [email protected] にメールください アーカイブ: http://www.re.soum.co.jp/~fukaumi/ 1994/11/25-: 10446通/7897日(2016/7/9まで:21年227日) メールアドレス登録数 873 有効メールアドレス 402 国内BSDユーザグループ http://www.netbsd.org/gallery/groups.html BBQ: ? BSD Users Group,Shinshu: ? Chofu *BSD Users’ Grup: ? Chiba *BSD Users’ Grup: ? Daibou East *BSD Users Group: ? Echigo BSD Users Group: 活動中 Kansai *BSD Users Group: 活動中 Nagoya *BSD Users Group: 活動中 Northern land BSD Users Group: 活動中 Shikoku *BSD Users Group: 活動中 Tohoku BSD Users Group: ? オープンソースカンファレンスこの一年 オープンソースカンファレンスと関西オープンソースに出展しています 47 / 48 2016/07/21 13:57 セキュリティキャンプ2016 SecCamp2016 ドキュメント file:///usr/local/Github/NetBSD/Guide/_build/singleh... Facebookイベントページ作成 毎月 [email protected]アナウンス ブース出展:基本セット(RPIなど)+ご当地出展 セミナー:NetBSD観光ガイド(https://github.com/ebijun/osc-demo) +希望者発表 netbsd-advocacyへ参加報告 RaspberryPIイメージ作成 port-armへ告知 togetterでツィートまとめ→反応がわかります pkgsrc: mikutter,mlterm,contao,libreoffice,basercms... 2016/7/5時点のtogetterアクセス数です。 48 / 48 イベント名 URL View オープンソースカンファレンス2016 Okinawa NetBSDブース展示の記録 http://togetter.com/li/995155 551 オープンソースカンファレンス2016 Hokkaido NetBSDブース展示の記録 http://togetter.com/li/988853 598 オープンソースカンファレンス2016 Nagoya NBUG & NetBSDブース展示の記録 http://togetter.com/li/980383 1050 オープンソースカンファレンス2016 Gunma NetBSDブース展示の記録 http://togetter.com/li/975036 739 AsiaBSDCon 2016の記録 http://togetter.com/li/947029 2737 オープンソースカンファレンス2016 Tokyo/Spring NetBSDブース展示の記録 http://togetter.com/li/943037 1749 オープンソースカンファレンス2016 Hamanako NetBSDブース展示の記録 http://togetter.com/li/929091 1098 NetBSD Advent Calendar 2015の記録 http://togetter.com/li/916444 1003 オープンソースカンファレンス2015 Tokushima NetBSDブース展示の記録 http://togetter.com/li/899923 1160 関西オープンソース2015 NetBSDブース展示の記録 http://togetter.com/li/896456 1855 オープンソースカンファレンス2015 Tokyo/Fall NetBSDブース展示の記録 http://togetter.com/li/891107 1233 オープンソースカンファレンス2015 Fukuoka NetBSDブース展示の記録 http://togetter.com/li/881732 977 オープンソースカンファレンス2015 Hiroshima NetBSDブース展示の記録 http://togetter.com/li/875487 1675 オープンソースカンファレンス2015 Niigata NetBSDブース展示の記録 http://togetter.com/li/869752 984 オープンソースカンファレンス2015 Shimane NetBSDブース展示の記録 http://togetter.com/li/863726 1062 オープンソースカンファレンス2015 Kansai@Kyoto NetBSDブース展示の記録 http://togetter.com/li/857157 4008 日本NetBSDユーザーグループ第十七回定期総会 および NetBSD BoF 2015 の記録 http://togetter.com/li/845730 1499 2016/07/21 13:57
© Copyright 2024 Paperzz