にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ

2014年05月21日

モバイルUbuntu、NetWalker登場 mikutter 3.0.0-alpha3 動作テスト @pkgsrc current編 その225

今遊んでいるNetBSDのpkgsrc上の開発版で
リリースされたばかりのmikutter3.0.0 alpha3が
光の速さで移植されましたので
Ubuntu Jaunty上のpkgsrc環境で動作してみました。
結論は問題なく動きました。
開発者の皆様ありがとうございます。
仕事早すぎです。

○Mikutter3とpkgsrc
mikutterはToshiaki Asai氏がArchLinux上で開発している
Twitterクライアントです。
Unix〜Linux関連のユーザーの中では大変人気のあるクライアントで
Rubyで動作する為、環境を選びません。

今回開発版がNetBSDのパッケージ、Pkgsrcに移植されましたので
Ubuntu9.04 Jaunty上のpkgsrc current環境でも動作してみました。

○Mikutter3.0.0 alpha3とpkgsrc
pkgsrcのインストールと運用はこちらを参考。

 モバイルUbuntu、NetWalker登場 Jaunty環境最新版パッケージ NetBSD pkgsrc導入完了2編 その222

特別な事はなく、currentを更新してbmakeするだけです。
関連パッケージのコンパイルとインストールは自動でやってくれます。

 cd ~/pkgsrc/
 cvs update -PAd
 cd net/mikutter
 bmake
 bmake install

あとは端末から

 mikutter

で普通に起動できました。
仕事早すぎですw

古いバージョンを削除してアップグレードする時は

 pkg_delete ruby200-mikutter-3.0.0alpha3
 bmake clean && bmake && bmake install

みたいな感じで古いパッケージを削除してから入れなおしましょう。
また初回の場合は日本語フォントも入れておきましょう。

 cd fonts/efont-unicode
 bmake && bmake install

○まとめ
ちゃんと動作しました。
pkgsrcのcurrentは移植が大変早いので
古いJaunty環境では大変助かります。
こういう切っ掛けを機会としてpkgsrcの良さが
見直されると良いですね。
posted by kapper at 05:01 | Comment(0) | Netwalker

2014年05月09日

モバイルUbuntu、NetWalker登場 Raspbian chroot導入 専用アプリテストNG編 その224

前回のブログでNetwalker上でDebian Wheezyを
chroot環境で動作致しました。
折角なのでRaspbianのレポジトリを追加して
RaspberryPi専用アプリが動くかどうか試してみました。
結果はlib不足で動作NGでしたが、固有ハードに
よるものだろうとの事でそのまま移植しても難しそうです。
記録として残しておきます。

○Raspbianと専用アプリ
RaspberryPiの専用アプリとしていくつかのアプリが
最適化されてARM用として移植されてます。
ハードウェアを叩いているものが殆どですが
かなり高性能なアプリです。
aptレポジトリを追加して試してみました。

まずchroot環境でDebian Wheezyを導入してから
追加するaptレポジトリはこちらです。
/etc/apt/souces.listにテキストエディタで追加しておきます。
その後 apt-get update、apt-get dist-upgradeです。

 deb http://mirrordirector.raspbian.org/raspbian/ wheezy main contrib non-free rpi  
 deb http://raspberrypi.collabora.com wheezy rpi
 deb http://archive.raspberrypi.org/debian/ wheezy main

○RaspberryPi専用アプリのテスト結果

・Mathematica
残念ながら認証の段階で止まります。
今の所動作しません。エラー原因のlogが出ないので良く分かりません。

・omxplayer
HD動画を再生する脅威の高速動画プレイヤーです。
エラーログを読む限りではOpenGLESを使う様で、
標準のNetwalkerではOpenGLESのドライバ登録してないので動作しません。
libWFC.soを移植しても難しそうですね。

/usr/bin/omxplayer.bin: error while loading shared libraries: libWFC.so: cannot open shared object file: No such file or directory


ldd /usr/bin/omxplayer.bin
libWFC.so => /opt/vc/lib/libWFC.so (0x400a3000)
libGLESv2.so => /opt/vc/lib/libGLESv2.so (0x4005a000)
libEGL.so => /opt/vc/lib/libEGL.so (0x40105000)
libbcm_host.so => /opt/vc/lib/libbcm_host.so (0x400b6000)
libopenmaxil.so => /opt/vc/lib/libopenmaxil.so (0x40137000)
libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0x40144000)
libz.so.1 => /usr/lib/libz.so.1 (0x401c5000)
libvchiq_arm.so => /opt/vc/lib/libvchiq_arm.so (0x40018000)
libvcos.so => /opt/vc/lib/libvcos.so (0x401e0000)
librt.so.1 => /lib/librt.so.1 (0x40077000)
libpthread.so.0 => /lib/libpthread.so.0 (0x401f1000)
libavutil.so.51 => /usr/lib/ffmpeg-compat/libavutil.so.51 (0x40025000)
libavcodec.so.53 => /usr/lib/ffmpeg-compat/libavcodec.so.53 (0x40211000)
libavformat.so.53 => /usr/lib/ffmpeg-compat/libavformat.so.53 (0x40f66000)
libswscale.so.2 => /usr/lib/ffmpeg-compat/libswscale.so.2 (0x41070000)
libpcre.so.1 => /usr/lib/libpcre.so.1 (0x410a7000)
libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0x41104000)
libm.so.6 => /lib/libm.so.6 (0x411cc000)
libc.so.6 => /lib/libc.so.6 (0x4126b000)
libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x4139d000)
libdl.so.2 => /lib/libdl.so.2 (0x4008a000)
libbz2.so.1.0 => /usr/lib/libbz2.so.1.0 (0x413c4000)
/lib/ld-linux.so.3 (0x400dd000)
libva.so.1 => /usr/lib/libva.so.1 (0x413d5000)
libxvidcore.so.4 => /usr/lib/libxvidcore.so.4 (0x413f0000)
libx264.so.124 => /usr/lib/libx264.so.124 (0x414e1000)
libvorbisenc.so.2 => /usr/lib/libvorbisenc.so.2 (0x415ff000)
libvorbis.so.0 => /usr/lib/libvorbis.so.0 (0x41775000)
libtheoraenc.so.1 => /usr/lib/libtheoraenc.so.1 (0x417a8000)
libtheoradec.so.1 => /usr/lib/libtheoradec.so.1 (0x417e8000)
libspeex.so.1 => /usr/lib/libspeex.so.1 (0x41805000)
libschroedinger-1.0.so.0 => /usr/lib/libschroedinger-1.0.so.0 (0x41825000)
libopenjpeg.so.1 => /usr/lib/libopenjpeg.so.1 (0x418de000)
libopencore-amrwb.so.0 => /usr/lib/libopencore-amrwb.so.0 (0x41906000)
libopencore-amrnb.so.0 => /usr/lib/libopencore-amrnb.so.0 (0x4191e000)
libmp3lame.so.0 => /usr/lib/libmp3lame.so.0 (0x41949000)
libgsm.so.1 => /usr/lib/libgsm.so.1 (0x419c2000)
librtmp.so.0 => /usr/lib/librtmp.so.0 (0x419d5000)
libogg.so.0 => /usr/lib/libogg.so.0 (0x419f2000)
liborc-0.4.so.0 => /usr/lib/liborc-0.4.so.0 (0x419fe000)
libssl.so.1.0.0 => /usr/lib/libssl.so.1.0.0 (0x41a70000)
libcrypto.so.1.0.0 => /usr/lib/libcrypto.so.1.0.0 (0x41ac8000)


・Mincraft Pi Edition
RaspberryPiのGPUのlibbcmを使って動作する様で
エラーログに出てきます。
これも無理そうだなぁ。

./minecraft-pi: error while loading shared libraries: libbcm_host.so: cannot open shared object file: No such file or directory


・PCSX-Rearmed
PCSXRのARM高速版です。
これはどちらかと言うとNEONとかのARM汎用でしょうか。
DirectFBを使う様で、/dev/fb0と/dev/fb/0が無いとエラーがでます。
DirectFBを登録すれば動作するかもしれません。


/lib/libts-0.0.so.0: cannot open shared object file: No such file or directory
Could not open touchscreen
No protocol specified
No protocol specified
commandline read: pcsx

~~~~~~~~~~~~~~~~~~~~~~~~~~| DirectFB 1.2.10 |~~~~~~~~~~~~~~~~~~~~~~~~~~
(c) 2001-2008 The world wide DirectFB Open Source Community
(c) 2000-2004 Convergence (integrated media) GmbH
----------------------------------------------------------------

(*) DirectFB/Core: Single Application Core. (2012-05-20 13:57)
(!) Direct/Util: opening '/dev/fb0' and '/dev/fb/0' failed
--> No such file or directory
(!) DirectFB/FBDev: Error opening framebuffer device!
(!) DirectFB/FBDev: Use 'fbdev' option or set FRAMEBUFFER environment variable.
(!) DirectFB/Core: Could not initialize 'system_core' core!
--> Initialization error!
SDL_Init failed: DirectFBCreate: Initialization error!


○まとめ
パッケージをそのまま入れるだけでは難しそうです。
やはりメーカーサポートと全世界コミュニティの強みでしょうか。
そこまで解析が進めばもっと性能が出せるのかもしれませんが。
英語圏の開発力は相当なものがあるなと実感しました。
posted by kapper at 05:27 | Comment(0) | Netwalker

2014年05月06日

モバイルUbuntu、NetWalker登場 Debian 7.0 Wheezy chroot導入編 その223

今回はNetwalkerのchrootでWheezyを入れてみました。
ネットで情報を入手してテストしてます。
若干内容を変えてありますが基本は同じです。
感謝です。

○Netwalkerのchroot環境
Netwalkerでもchrootを使う事で様々なディストリを導入可能です。
サポートされているOSを使う事で一部分でも最新版を導入できます。
今回はWheezyをテストしました。

○Debian Wheezyの導入
今回はこちらを参考にしました。

 打倒RaspberryPi!? NetWalkerはじめました(その9:Chrootでdebian)

まずはapt-getで関連パッケージを導入。

 sudo apt-get install debootstrap schroot

chrootを導入するディレクトリは~/debianにします。

 mkdir ~/debian

debootstrapの設定を変更。
Wheezyの設定は無いので書き換えます。

 cd /usr/share/debootstrap/scripts
 sudo cp sid wheezy

debootstrapコマンドでWheezyをインストールします。

 sudo debootstrap --arch armel wheezy ~/debian http://ftp.jp.debian.org/debian/

インストールが終わったらrootでOSに入ります。

sudo chroot ~/debian /bin/bash

chrootで、地域や言語の設定を行います。[ ] の中身が設定値。
ついでにapt-getで必要なアプリを追加します。

 dpkg-reconfigure tzdata [Asia -> Tokyo]
 apt-get install locales sudo
 dpkg-reconfigure locales [en_US.UTF-8 / ja_JP.UTF-8]

ユーザーを追加します。

 adduser (username)

ユーザーを追加します。
とまあ、ここまでやったら一旦親OSに戻ります。

 exit

戻ってきても管理者権限のままのはず…
その足で、子OSへ通常ユーザーで入るときの設定をします。

 sudo gedit /etc/schroot/schroot.conf

※[sarge]の設定を[Wheezy]に替えて、users=(username)にすればいいと思います。
書き換えます。


[wheezy]
description=Debian wheezy (stable)
location=/home/kapper1224/debian
priority=2
groups=sbuild
aliases=stable
users=kapper1224


管理者権限から降りて

 exit

通常ユーザーで子OSに入ります。

 schroot -c Wheezy -p

多分動いたはずです。

○まとめ
細かい所に課題はありますが一応動作します。
kapperはまだchroot勉強中です。
是非使ってみて下さい。
posted by kapper at 13:13 | Comment(0) | Netwalker

2014年04月29日

モバイルUbuntu、NetWalker登場 Jaunty環境最新版パッケージ NetBSD pkgsrc導入完了2編 その222

Jaunty環境でも最新パッケージを提供してくれる
NetBSDの神Toolのpkgsrcがようやく完全動作しましたので
再度ブログに追記致します。
CoreutilsをLucid化して運用します。
ここまでの道のり結構長かったですが安心して使えるのは良い事です。
是非試してみましょう。

○pkgsrcとは
細かい内容はこちらに記載しました。
長いのでまず一読願います。
 
 Ubuntu改造日記 最新版 NetBSDパッケージ pkgsrcテスト編 その22

○Coreutilsのバージョンエラー
Jaunty環境そのままでpkgsrcが動作しなかったのは
Coreutilsのバージョンが古かった為と想定しまして
installコマンドが所定の動作しなかったのが理由とおおよそ結論付けします。
他のパッケージも入れ変えてるので多分ですが。
Jauntyのバージョンではコンパイルまでは通るのですがbmake installが通らない為、
一個のパッケージでエラー止まりを繰り返すのは大変苦痛で
依存関係を解消するのが出来ず続かないといった悩みがありました。

所が同じCortexA8 iMX515 Ubuntu10.04のHercules eCAFE EX HDで
pkgsrcがすんなり動作したのでバージョン違いだろうという事で
現象とバージョンのChengelogから、
GNU Coreutilsパッケージに含まれるinstallコマンドが原因と推定しました。

GNU CoreutilsとはUnix関係のlsとか基本パッケージをまとめた物で
こんな感じに沢山のtoolを一括してます。

・File Utilities
 chgrp ファイルの所有グループを変更する
 chown ファイルの所有者を変更する
 chmod ファイル、またはディレクトリのアクセス権を変更する
 cp ファイル、またはディレクトリをコピーする
 dd ファイルのコピーと変換を行う
 df ディスクの空き容量を表示する
 dir lsと同等
 dircolors lsの表示色を設定する
 install ファイルをコピーし、属性を設定する
 ln リンクを作成する
 ls ディレクトリに含まれるファイル一覧を表示する
 mkdir ディレクトリを作成する
 mkfifo FIFO(名前付きパイプ)を作成する
 mknod 特殊ファイル(デバイスファイルなど)を作成する
 mv ファイルを移動する
 rm ファイルを削除する
 rmdir 空のディレクトリを削除する
 shred ファイルの内容を破壊し、復旧できなくする
 sync ファイルのキャッシュを物理的に書き込む
 touch ファイルの時刻を変更する
 vdir 詳細なディレクトリ内容を表示する(ls -lと同等)
 
・Text utilities
 cat ファイルの中身を表示する、またはファイルを連結して表示する
 cksum ファイルのチェックサムとファイルサイズを計算する
 comm 2つのファイルについて行ごとに比較する
 csplit ファイルを文脈ベースで分割する
 cut 各行から選択した部分を表示する
 expand タブをスペースに変換する
 fmt テキストを段落に整形する
 fold 入力行を指定された幅にあわせて折りたたむ
 head ファイルの最初の部分を表示する
 join 二つのファイルを読み、フィールドが共通な行を結合する
 md5sum MD5 ハッシュチェックサムを計算・チェックする
 nl 行番号を付けてファイルを出力する
 od ファイルを 8 進数 (または他の形式) で出力する
 paste ファイルを行単位でマージする
 pr 印刷用にファイルのページづけ・段組みを行う
 ptx 整列済み索引を作成する
 sha1sum SHA-1 ハッシュチェックサムの計算と検証を行う
 sort テキストファイルを行単位でソートする
 split ファイルを決まった大きさに分割する
 sum チェックサムとブロック数を表示する
 tac ファイルを結合して逆順に表示する
 tail ファイルの末尾の部分を表示する
 tr 文字の変換・削除や、連続する文字の圧縮を行う
 tsort 有向グラフのトポロジカルなソートを行う
 unexpand スペースをタブに変換する
 uniq ソートされたファイルから重複する行を削除する
 wc ファイルのバイト数・単語数・行数を表示する
 Shell utilities
 basename ファイル名からディレクトリと拡張子を取り去る
 chroot ルートディレクトリを変更する
 date 現在のOS日時を表示、または変更する
 dirname パスからディレクトリ名以外の部分を除去する
 du ファイルのディスク使用量を見積もる
 echo 1行のテキストを表示する
 env 環境変数を一時的に設定、または表示する
 expr 式を評価する
 factor 数値を素因数分解して素数の約数を表示する
 false 何もせずに失敗の値を返す
 groups ログインしているユーザーのグループを表示する
 hostid 現在のホストの識別値を表示する
 id 現在のユーザID名とグループID名を表示する
 link ファイルの新しい名前を作成する
 logname ユーザーのログイン名を表示する
 nice プロセスの優先度を変更する
 nohup ログアウト後もコマンドの実行が継続することを許可する
 pathchk ファイル名の可搬性 (portability) をチェックする
 pinky fingerコマンドの軽量版
 printenv 環境変数の全部あるいは一部を表示する
 printf データの表示形式を変換して表示する
 pwd カレントディレクトリの名前を表示する
 readlink シンボリックリンクの値を表示する
 seq 通し番号を表示する
 sleep 指定された時間休止する
 stat ファイルの状態を得る
 stty 端末の行設定を変更、表示する
 tee 標準入力から読んだ内容を標準出力とファイルとに書き出す
 test ファイル形式のチェックや値の比較を行う
 true 何もせずに成功の値を返す
 tty 端末名を表示する
 uname システムの情報を表示する
 unlink 名前を削除し、場合によってはそれが参照しているファイルも削除する
 users 現在ログインしているユーザーを表示する
 who 現在ログインしているユーザーを詳細に表示する
 whoami ユーザーのログイン名を表示する
 yes killシグナルが送られるまで文字を表示し続ける


JauntyのCoreutilsは6.12でLucidのCoreutilsは7.4です。
6系⇒7系のinstallコマンドの変化点がこちらです。
本家GNUのHPより抜粋。

 [Coreutils-announce] coreutils-7.0 released (beta)

install accepts a new option --strip-program to specify
 the program used to strip binaries.

この--strip-programのオプションが更新された事で
古い環境でpkgsrcが動作しない主な理由と推定してます。
pkgsec側で対応できれば、本当に嬉しいな(わがまま)
まあそれ以外でエラーが無い移植性が驚きですけどね。
パッケージを載せ替えて運用出来ます。

○pkgsrcインストールメモ
ざっくりと今回の記録します。
詳細は超長くなりますので
x86環境で洗い出ししましたので
やる前にそちらを参考願います。

 Ubuntu改造日記 最新版 NetBSDパッケージ pkgsrcテスト編 その22


・Pin-Priorityによる部分Lucid化
まずapt.confのファイルを作りjauntyを指定します。
Lucidパッケージを入れてもJauntyのPin-Priority: 1001に設定しなおせば
元のJauntyバージョンにいつでも戻せます。
参考はこちら。

 モバイルUbuntu、NetWalker登場 Jaunty-Lucid混載 apt Pin-Priority設定編 その164

 sudo gedit /etc/apt/apt.conf

で下記の文章を貼り付けて保存します。

APT
{
Default-Release "jaunty";
Cache-Limit "50331648";
};

Pin-Priorityを設定します。

 sudo gedit /etc/apt/preferences

で下記の文章を貼り付けて保存します。

 Package: *
 Pin: release a=jaunty
 Pin-Priority: 1000

 Package: *
 Pin: release a=lucid
 Pin-Priority: 0

設定終了しましたらLucidのリポジトリを登録します。

 sudo gedit /etc/apt/sources.list

で下の1行を追加して保存。
以前のとURLが違いますので注意。

 deb http://old-releases.ubuntu.com/ubuntu lucid main restricted universe multiverse

でアップデート

 sudo apt-get update

コンパイルに必要なパッケージを入れます。

sudo apt-get install build-essential/lucid libncurses5-dev/lucid libc6-dev/lucid g++/lucid libncurses5/lucid g++-4.4/lucid gcc-4.4/lucid libgomp1/lucid cpp/lucid gcc/lucid libstdc++6-4.4-dev/lucid binutils/lucid libstdc++6/lucid coreutils/lucid libc6/lucid libgcc1/lucid

次にパッケージソース、pkgsrcを保存します。
本家HPからcurrent.tgzかstable.tgzをダウンロードします。
2014Q2今の時点ではどちらでも問題ないはずです。

 http://www.pkgsrc.org/

落としたら展開します。
今回はHomeフォルダにインストールします。
Bashを使っている場合は下記を.bashrcに追記します。

 gedit 〜/.bashrc

みたいな感じで下記一行を最後らへんに追加。

 PATH=${HOME}/pkg/bin:${HOME}/pkg/sbin:${PATH}

面倒ならexport SH=/bin/bashも追加するのもありですけど。
端末を一度閉じて再び起動させて.bashrcのPATHを更新します。
bootstrapを展開してpkgsrcをインストール。

 cd pkgsrc/bootstrap
 export SH=/bin/bash
 ./bootstrap --unprivileged

pkgsrcが動いてインストールされたはず。
ここからが本番。
初期インストールの際に注意が必要です。
まずキーとなるパッケージを先にいれます。重要です。
順番に。
エラーが出てもbmake clean、bmakeでやり直すだけですが。 
まずpkg-vulnerabilitiesから

 /home/{home}/pkg/sbin/pkg_admin -K /home/{home}/pkg/var/db/pkg fetch-pkg-vulnerabilities

 cd pkgsrc/pkgtool/digest
bmake
bmake install

 cd pkgsrc/devel/nbpatch
bmake
bmake install

 devel/ncurses
bmake
bmake install

後は多分問題ないはずなのでそれぞれのパッケージをコンパイルしてみましょう。

 lang/g95

などでUSE_TOOLS+=perlをMakefileに追加してくださいとか
たまに固有のエラーは出るかもしれませんが仕様です。
どの環境でも起こります。
追加してからbmake clean && bmakeしてやり直しましょう。

○アプリのインストール
色々とテスト中ですが、
まず設定ファイルであるmk.confの設定を変更します。
最初のコンパイル環境が無事完成するまでは手を付けてはいけません。
大体ncursesをコンパイル完了した後あたりが良いです。
要注意。

 gedit /home/{ユーザー}/pgk/etc/mk.conf

下の行を真ん中らへんに追加して保存します。

 PREFER_PKGSRC=yes
 DEPENDS_TARGET=bin-install
 USE_LIBTOOL=yes
 USE_LANGUAGES=c++

上のPREFER_PKGSRC=yes、USE_LIBTOOL=yesを入れると
pkgsrcで入っているライブラリが優先的に使われます。
DEPENDS_TARGET=bin-installはバイナリパッケージがあれば
優先的にそちらをインストールします。
gccなど言語関係を入れる時はUSE_LANGUAGES=c++で指定が必要です。
Firefoxなどコンパイルする際には依存関係でgcc45を
入れようとするので必要です。


○MicroSD、USBでpkgsrcをコンパイルする
pkgsrc自体はソースコードの集まりなので、とっても容量を食います。
大体普通に使う程度でも10GB位は必要でSSDを直ぐに食いつぶします。
またコンパイルはSSDの負担が大きいので寿命が短くなります。
コンパイルしたバイナリはSSDに置けるので実行には外しても問題ありません。
やり方はpkgsrcのフォルダをMicroSDかUSBにコピーするだけです。

・MicroSD、pkgsrcのパーミッションを変更する
作業用のworkフォルダを自動作成する際にパーミッションのエラーが出ますので
パーミッションを変更しておきます。
-Rコマンドを付けて再帰的に全フォルダのパーミッションを変更しておきます。

 sudo chmod 777 /media/disk/ -R

・MicroSD、USBをEXT3で運用する。
Windowsから見れなくなりますが、必要であればEXT3に変更しておきます。
まず右クリックかなにかでメニューからアンマウント
やるまえにディスクの/devを確認しておきましょう。

MicroSDの場合はこちら
 sudo fdisk /dev/mmcblk0p1

USBの場合はこちら
 sudo fdisk /dev/sda

fdiskが起動したら領域削除 d
新しく領域を作成 n
フォーマット形式をEXT3を選択 83
基本領域1〜4を選択、シリンダで必要な容量を選択
テーブルをファイルに保存 w

再び自動でマウントされるので再度アンマウント
EXT3でフォーマットします。

MicroSDの場合
 sudo mkfs.ext3 /dev/mmcblk0p1
USBの場合はこちら
 sudo mkfs.ext3 /dev/sda


○まとめ
動くようになりましても、
ダウンロードとコンパイルでめちゃくちゃ時間がかかります。
PerlやPython、GCC、LibreOfficeとか巨大なアプリをコンパイルする際には
とっても注意しましょう。

ここまでpkgsrcテストから検証に1.5か月くらいかかってます。
一応完全動作まで行きましたが苦肉の策でした。
Jauntyの環境でパッケージだけ最新に更新したい人にはお勧めです。
Gnuplugとか玄柴とかJaunty環境を使わざる得ない人にもお勧めです。
一応、パッケージのサポートアウト課題はこれで解決しました。

コンパイルエラーが出て対応した際には
世界の平和の為、ネットのどこかに記載して頂ければ助かります。
検索エンジンにヒットして知らないうちに誰かが幸せになるはずです。
是非コンパイルエラーを乗り越えて使ってみましょう。
posted by kapper at 06:59 | Comment(0) | Netwalker

2014年03月30日

モバイルUbuntu、NetWalker登場 Jaunty環境最新版パッケージ NetBSD pkgsrc導入テスト1NG編 その221

注意)
 こちらの記録はテスト目的で読みが間違っており内容が不十分でした。
 Coreutils関係をLucid化しないと動作しない結論になりました。
 この方法ではJaunty環境上では動作しません。
 このドキュメントは記録の為にあえて残しておきます。
 pkgsrcを使用する際はこちらを参考にお願いいたします。

 モバイルUbuntu、NetWalker登場 Jaunty環境最新版パッケージ NetBSD pkgsrc導入完了2編 その222

さて本丸のpkgsrcにいきましょうか。
とりあえずNetwalkerのJaunty環境で動作する所までもってきました。
相当面倒な所がありますが、とても優れたツールなので
是非使いこなしましょう。
世界の皆の為、エラーと対処法が分かった際には
ネットのどこでも良いので情報発信して下さい。
Kapperも頑張りましたので少しでも優しい世界をご協力お願いしますw


○pkgsrcとは
細かい内容はこちらに記載しました。
長いのでまず一読願います。
 
 Ubuntu改造日記 最新版 NetBSDパッケージ pkgsrcテスト編 その22

○pkgsrcインストールメモ
ざっくりと今回の記録します。
詳細は超長くなりますので
x86環境で洗い出ししましたので
やる前にそちらを参考願います。

 Ubuntu改造日記 最新版 NetBSDパッケージ pkgsrcテスト編 その22

まず前回作ったbinutils-2.24とlibtool-2.4.2を入れる。

コンパイルに必要なパッケージを入れます。

 sudo apt-get install build-essential libncurses5-dev libncursesw5-dev

次にパッケージソース、pkgsrcを保存します。
本家HPからcurrent.tgzバージョンをダウンロードします。
本来ならstableの方が良いのですが、エラーに泣かされるので。

 http://www.pkgsrc.org/

落としたら展開します。
今回はHomeフォルダにインストールします。
Bashを使っている場合は下記を.bashrcに追記します。

 gedit 〜/.bashrc

みたいな感じで下記一行を最後らへんに追加。

 PATH=${HOME}/pkg/bin:${HOME}/pkg/sbin:${PATH}

端末を一度閉じて再び起動させて.bashrcのPATHを更新します。
bootstrapを展開してpkgsrcをインストール。

 cd pkgsrc/bootstrap
 export SH=/bin/bash
 ./bootstrap --unprivileged

pkgsrcが動いてインストールされたはず。
ここからが本番。
初期インストールの際に注意が必要です。
まずキーとなるパッケージを先にいれます。重要です。
順番に。
エラーが出てもbmake clean、bmakeでやり直すだけですが。 
まずpkg-vulnerabilitiesから

 /home/{home}/pkg/sbin/pkg_admin -K /home/{home}/pkg/var/db/pkg fetch-pkg-vulnerabilities

 pkgtool/digest
 devel/nbpatch
 devel/libtool-base

○はまったエラー達

・ncursesを入れようとするとnbpatchのエラーが出ますので
まずこちらを先にbmakeします。

===> Installing for nbpatch-20100124
=> Creating installation directories
/usr/bin/install -c -s -o kapper1224 -g kapper1224 -m 755 nbpatch /home/kapper1224/pkgsrc/devel/nbpatch/work/.destdir/home/kapper1224/pkg/bin/nbpatch
/usr/bin/install -c -o kapper1224 -g kapper1224 -m 644 nbpatch.1 /home/kapper1224/pkgsrc/devel/nbpatch/work/.destdir/home/kapper1224/pkg/man/man1/nbpatch.1
=> Automatic manual page handling
=> Creating binary package /home/kapper1224/pkgsrc/devel/nbpatch/work/.packages/nbpatch-20100124.tgz
===> Install binary package of nbpatch-20100124
pkg_add: Can't open pkgdb for writing: Invalid argument
pkg_add: cannot open pkgdb: Invalid argument
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/devel/nbpatch
*** Error code 1


・コンパイルしても何故かnbpatchが/pkg/binに入っていない。
nbpatchのバイナリを端末かファイラーで手動でコピー。


=> Bootstrap dependency digest>=20010302: found digest-20121220
===> Skipping vulnerability checks.
WARNING: No /home/kapper1224/pkg/var/db/pkg/pkg-vulnerabilities file found.
WARNING: To fix run: `/home/kapper1224/pkg/sbin/pkg_admin -K /home/kapper1224/pkg/var/db/pkg fetch-pkg-vulnerabilities'.
=> Checksum SHA1 OK for ncurses-5.9.tar.gz
=> Checksum RMD160 OK for ncurses-5.9.tar.gz
===> Installing dependencies for ncurses-5.9nb2
=> Tool dependency libtool-base>=2.2.6bnb3: NOT found
=> Verifying reinstall for ../../devel/libtool-base
=> Bootstrap dependency digest>=20010302: found digest-20121220
===> Skipping vulnerability checks.
WARNING: No /home/kapper1224/pkg/var/db/pkg/pkg-vulnerabilities file found.
WARNING: To fix run: `/home/kapper1224/pkg/sbin/pkg_admin -K /home/kapper1224/pkg/var/db/pkg fetch-pkg-vulnerabilities'.
===> Patching for libtool-base-2.4.2nb6
=> Applying pkgsrc patches for libtool-base-2.4.2nb6
/bin/sh: /home/kapper1224/pkg/bin/nbpatch: not found
Patch /home/kapper1224/pkgsrc/devel/libtool-base/../../devel/libtool/patches/patch-aa failed
/bin/sh: /home/kapper1224/pkg/bin/nbpatch: not found
Patch /home/kapper1224/pkgsrc/devel/libtool-base/../../devel/libtool/patches/patch-ab failed
/bin/sh: /home/kapper1224/pkg/bin/nbpatch: not found
Patch /home/kapper1224/pkgsrc/devel/libtool-base/../../devel/libtool/patches/patch-ac failed
/bin/sh: /home/kapper1224/pkg/bin/nbpatch: not found
Patch /home/kapper1224/pkgsrc/devel/libtool-base/../../devel/libtool/patches/patch-ad failed
ERROR: Patching failed due to modified or broken patch file(s):
ERROR: /home/kapper1224/pkgsrc/devel/libtool-base/../../devel/libtool/patches/patch-aa
ERROR: /home/kapper1224/pkgsrc/devel/libtool-base/../../devel/libtool/patches/patch-ab
ERROR: /home/kapper1224/pkgsrc/devel/libtool-base/../../devel/libtool/patches/patch-ac
ERROR: /home/kapper1224/pkgsrc/devel/libtool-base/../../devel/libtool/patches/patch-ad
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/devel/libtool-base
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/devel/libtool-base
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/devel/ncurses







kapper1224@kapper1224:~/pkgsrc/devel/nbpatch/work/nbpatch-20100124$ bmake install
install -c -s -o kapper1224 -g kapper1224 -m 555 nbpatch /nbpatch
install -c -o kapper1224 -g kapper1224 -m 444 nbpatch.1 /usr/share/man/man1/nbpatch.1
install: 通常のファイル `/usr/share/man/man1/nbpatch.1' を作成できません: Permission denied
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/devel/nbpatch/work/nbpatch-20100124
kapper1224@kapper1224:~/pkgsrc/devel/nbpatch/work/nbpatch-20100124$ sudo bmake install
[sudo] password for kapper1224:
sudo: bmake: command not found
kapper1224@kapper1224:~/pkgsrc/devel/nbpatch/work/nbpatch-20100124$ sudo /home/kapper1224/pkg/bin/bmake install
install -c -s -o kapper1224 -g kapper1224 -m 555 nbpatch /nbpatch
install -c -o kapper1224 -g kapper1224 -m 444 nbpatch.1 /usr/share/man/man1/nbpatch.1



・libtool-baseをbmakeし直す


=> Automatic manual page handling
=> Creating binary package /home/kapper1224/pkgsrc/devel/libtool-base/work/.packages/libtool-base-2.4.2nb6.tgz
===> Install binary package of libtool-base-2.4.2nb6
pkg_add: Can't open pkgdb for writing: Invalid argument
pkg_add: cannot open pkgdb: Invalid argument
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/devel/libtool-base
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/devel/libtool-base
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/devel/libtool-base

・checksum fileのエラー

=> Bootstrap dependency digest>=20010302: found digest-20121220
===> Checking for vulnerabilities in ncurses-5.9nb2
checksum: ``/home/kapper1224/pkg/bin/digest'' is missing
ERROR: Make sure the Makefile and checksum file (/home/kapper1224/pkgsrc/devel/ncurses/distinfo)
ERROR: are up to date. If you want to override this check, type
ERROR: "/home/kapper1224/pkg/bin/bmake NO_CHECKSUM=yes [other args]".
*** Error code 1




・pkg_addの解読不明なエラーが出て悩む。
libtoolを本家からダウンロードして入れてみる。
(前述のlibtool-2.4.2をコンパイルして入れなおしたアレです)

libtoolを入れたいのにlibtoolが/pkg/binに無いというエラー。
どうせいと。
仕方がないのでGNU本家よりlibtoolを拾ってきてJauntyでコンパイルする。
それで出来たlibtoolを/pkg/binにコピー。
libtool-baseからbmakeをやり直す。
無事終了した。多分jauntyのlibtoolがダメだったんだろう。
再びncursesとncurseswをbmake。
無事コンパイル成功。
まずは一息。


/bin/bash ../../libtool --tag=CC --mode=compile gcc -std=gnu99 -DHAVE_CONFIG_H -I. -I../.. -I../../src/liblzma/api -I../../src/liblzma/common -I../../src/liblzma/check -I../../src/liblzma/lz -I../../src/liblzma/rangecoder -I../../src/liblzma/lzma -I../../src/liblzma/delta -I../../src/liblzma/simple -I../../src/common -DTUKLIB_SYMBOL_PREFIX=lzma_ -I/usr/include -pthread -fvisibility=hidden -Wall -Wextra -Wvla -Wformat=2 -Winit-self -Wmissing-include-dirs -Wstrict-aliasing -Wfloat-equal -Wundef -Wshadow -Wpointer-arith -Wbad-function-cast -Wwrite-strings -Wlogical-op -Waggregate-return -Wstrict-prototypes -Wold-style-definition -Wmissing-prototypes -Wmissing-declarations -Wmissing-noreturn -Wredundant-decls -O2 -Wno-error -I/usr/include -MT liblzma_la-tuklib_physmem.lo -MD -MP -MF .deps/liblzma_la-tuklib_physmem.Tpo -c -o liblzma_la-tuklib_physmem.lo `test -f '../../src/common/tuklib_physmem.c' || echo './'`../../src/common/tuklib_physmem.c
/home/kapper1224/pkgsrc/archivers/xz/work/.wrapper/bin/libtool: line 77: /home/kapper1224/pkg/bin/libtool: No such file or directory
*** Error code 127

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/archivers/xz/work/xz-5.0.5/src/liblzma
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/archivers/xz/work/xz-5.0.5/src/liblzma
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/archivers/xz/work/xz-5.0.5/src
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/archivers/xz/work/xz-5.0.5
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/archivers/xz/work/xz-5.0.5
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/archivers/xz
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/archivers/xz
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/devel/automake
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/lang/g95
*** Error code 1

Stop.
bmake: stopped in /home/kapper1224/pkgsrc/devel/libtool-fortran
*** Error code 1

Stop.



○アプリのインストール
色々とテスト中ですが、
まず設定ファイルであるmk.confの設定を変更します。
最初のコンパイル環境が無事完成するまでは手を付けてはいけません。
大体ncursesをコンパイル完了した後あたりが良いです。
要注意。

 gedit /home/{ユーザー}/pgk/etc/mk.conf

下の行を真ん中らへんに追加して保存します。

 PREFER_PKGSRC=yes
 DEPENDS_TARGET=bin-install
 USE_LIBTOOL=yes

上のPREFER_PKGSRC=yes、USE_LIBTOOL=yesを入れると
pkgsrcで入っているライブラリが優先的に使われます。
DEPENDS_TARGET=bin-installはバイナリパッケージがあれば
優先的にそちらをインストールします。

 
アップデートしておいた方が良さそうなもの

devel/zlib
lang/gcc48


依存関係のエラーが出やすく入れておいた方が
よいものを整理した方が良いかもしれません。
後からコンパイルし直して問題ありませんが。

 devel/pkg-config
 archives/xz
 archives/unzip
 archives/bzip2
 archives/zip
 database/db4


○まとめ
ダウンロードとコンパイルでめちゃくちゃ時間がかかります。
検証に2週間くらいかかってます。
また謎のエラーが多発して非常に悩みます。
何故か一括で入らず、エラーが頻発して止まり該当パッケージを再コンパイル。
多分ですが最後の/usr/bin/installに渡すパスのスクリプトが
機能していない可能性があります。netwalker Jaunty側の問題でしょうか。
エラー情報が十分出ていません。
x86 Ubuntuと異なりまだ解消されておりません。
ARM Jaunty環境で直接導入は無理と考えて
x86の最新Ubuntu環境で出来るだけのエラー抽出を先に行いました。
結局ですがJauntyのパッケージが古いだけが問題で
ARMアーキテクチャの課題は少なそうです。まだ見えておりません。
流石移植性に優れたNetBSDですね。ほれぼれします。

コンパイルエラーが出て対応した際には
世界の平和の為、ネットのどこかに記載して頂ければ助かります。
検索エンジンにヒットして知らないうちに誰かが幸せになるはずです。
是非コンパイルエラーを乗り越えて使ってみましょう。

PS.1 UbuntuLinux 9.04 Jauntyを使ってpkgsrcをインストールした際に
   GNU Toolを一通りセルフコンパイルして入れてみましたが何故か動作しません。
   1.5か月間、思いつく事を色々試してみましたが、
   この方法では無理だという結論になりましたので
   Coreutils関係のみLucid化して運用してます。
   そちらを使用下さい。
posted by kapper at 09:31 | Comment(0) | Netwalker

モバイルUbuntu、NetWalker登場 最新版 GNU libtool-2.4.2 コンパイル編 その220

次も同様に最新版libtoolのコンパイルです。
pkgsrcの動作に必要なのでコンパイルしてみました。
本家GNUのアプリなので特に注意する事はありませんが
記録の為に残しておきます。

○libtoolとは
コンパイル支援に必要な環境毎の構成を吸収するリンカー生成の集まりです。
pkgsrcを使う際には何故かエラーが出ますので
必ず更新して入れておきましょう。


○libtool-2.4.2コンパイル
本家GNUのサイトよりlibtool-2.4.2をダウンロードします。
展開したらコンパイルします。

 http://www.gnu.org/software/libtool/libtool.html

 sudo apt-get build-dep libtool
 tar xvf libtool-2.4.2.tar.gz
 cd libtool-2.4.2
 ./configure --prefix=/usr/bin
 make
 sudo make install

--prefix=/usr/binにしないと何故かpkgsrcでエラーが出ます。
多分/usr/local/binを見ていない可能性もありますね。
パッケージ化する際はcheckinstallを使います。
とても時間がかかりますので
chekinstallで作ったパッケージを置いておきます。


 libtool_2.4.2-1_armel.deb

○まとめ
普通に使う分にはそれ程必要じゃないかと思いますが
pkgsrcを使う際には必要です。
入れてからコンパイルを楽しみましょう。
posted by kapper at 08:55 | Comment(0) | Netwalker

モバイルUbuntu、NetWalker登場 最新版 GNU binutils-2.24 コンパイル編 その219

今回は最新版binutilsのコンパイルです。
pkgsrcの動作に必要なのでコンパイルしてみました。
本家GNUのアプリなので特に注意する事はありませんが
記録の為に残しておきます。

○binutilsとは
コンパイル支援に必要なアプリの集まりです。
pkgsrcを使う際にはJauntyのバージョンにバグがありますので
必ず更新して入れておきましょう。

 The GNU Binutils are a collection of binary tools. The main ones are:

 ld - the GNU linker.
 as - the GNU assembler.

 But they also include:

 addr2line - Converts addresses into filenames and line numbers.
 ar - A utility for creating, modifying and extracting from archives.
 c++filt - Filter to demangle encoded C++ symbols.
 dlltool - Creates files for building and using DLLs.
 gold - A new, faster, ELF only linker, still in beta test.
 gprof - Displays profiling information.
 nlmconv - Converts object code into an NLM.
 nm - Lists symbols from object files.
 objcopy - Copys and translates object files.
 objdump - Displays information from object files.
 ranlib - Generates an index to the contents of an archive.
 readelf - Displays information from any ELF format object file.
 size - Lists the section sizes of an object or archive file.
 strings - Lists printable strings from files.
 strip - Discards symbols.
 windmc - A Windows compatible message compiler.
 windres - A compiler for Windows resource files.

○binutils-2.24コンパイル
本家GNUのサイトよりbinutils-2.24をダウンロードします。
展開したらコンパイルします。

 http://ftp.gnu.org/gnu/binutils/

 sudo apt-get build-dep binutils
 tar xvf binutils-2.24.tar.gz
 cd binutils-2.24
 ./configure --prefix=/usr/bin
 make
 sudo make install

--prefix=/usr/binにしないと何故かpkgsrcでエラーが出ます。
多分/usr/local/binを見ていない可能性もありますね。
パッケージ化する際はcheckinstallを使います。
約200MBをコンパイルするのはとても時間がかかりますので
chekinstallで作ったパッケージを置いておきます。

 binutils_2.24-1_armel.deb


○まとめ
普通に使う分にはそれ程必要じゃないかと思いますが
pkgsrcを使う際には必要です。
入れてからコンパイルを楽しみましょう。
posted by kapper at 08:34 | Comment(0) | Netwalker

2014年03月21日

オープンソースカンファレンス2014浜名湖 講演資料作成

3/22にオープンソースカンファレンス2014浜名湖で
Netwalkerの初公演を致します。
資料を作ってみましたのでPDFで公開します。
まだ直すかもしれませんがご意見願います。
今回は時間15分と短く、深い話はできそうにありません。
後半は説明を諦めてブースでお話する予定です。
基本的にHPに書いてある事が殆どなので
実はそれ以外には説明できないと思っております。

○OSC2104浜名湖の講演内容、アジェンダ
だいぶ悩みましたが思いつく内容を並べてみました。
現在進行中の実験も一部加えてあります。
15分では無理そうなので割愛します。
次回の楽しみということで。
皆様とお話できる機会が出来たことを楽しみにしております。
 
 NetwalkerOSC2014Hama.pdf

ひとまず反応を伺いたいなと思います。
反応が全く読めませんので、
ダメ出しして頂ければ大変助かります。
posted by kapper at 14:21 | Comment(0) | Netwalker

2014年03月02日

オープンソースカンファレンス2014浜名湖 アジェンダ作成中

3/22にオープンソースカンファレンス2014浜名湖で
Netwalkerの初公演を致します。
所が15分と短く、深い話はできそうにありません。
今回は概要を説明して、本番は夏のOSC名古屋と京都で
一個づつ解説しようかなと思っております。
もちろんブースまで来て頂ける方々には色々お話できると思いますが、
基本的にHPに書いてある事が殆どなので
実はそれ以外には説明できないと思っております。

ただHPに書いてある事は成功談だけで、
それをはるかに上回る失敗談は実は書いてません。
ブログに書くと多すぎてキリがありませんでしたので。

○OSC2104浜名湖の講演内容、アジェンダ
どういう内容にしようかなと未だに悩んでいます。
ざっくりな初心者向けにしてさらっと流す程度にしようかなと
思っておりますが、知りたいことが沢山いる方々には
物足りないかなと思います。
プレゼンにして15分だと一枚2分と換算して
普通に説明するとおおよそ8枚位が時間的に精一杯な感じです。
あれもこれもは初めから諦めて要約します。
時間的に無理なら後ろから2つは諦めて割愛します。
ブースにフォトフレームか印刷して展示しておいても良いかもしれません。
出来ればNetwalkerユーザー以外にも聞いてよかったなと、
ある程度思えるアバウトな内容にもしたいですね。
今でも現役のユーザーは少なそうなので。

ひとまず反応を伺って内容を再調整したいなと思います。
反応が全く読めませんので、
ダメ出しして頂ければ大変助かります。
posted by kapper at 16:24 | Comment(0) | Netwalker

2014年01月23日

モバイルUbuntu、NetWalker登場 CUIインターネット速度チェック speedtest-cli編 その218

今日はCUIのインターネット速度チェッカースクリプトの
speedtest-cliを試してみました。
モバイル機器にとってこの手のアプリは
相性が良いので非常に面白いです。
Python汎用なのでどの環境でも使えます。

○speedtest-cliとは


○speedtest-cliインストール
UbuntuGeek参照。
書いてある通りです。

 How to check internet bandwidth from command line on Ubuntu Linux

 $ wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py

 $ chmod a+rx speedtest_cli.py

 $ sudo mv speedtest_cli.py /usr/local/bin/

 $ sudo chown root:root /usr/local/bin/speedtest_cli.py

後は実行。

 $ speedtest_cli.py


○まとめ
簡単に通信速度が測定できるので助かります。
室内外のモバイル通信の計測用に最適です。
一応大抵の環境で動くはずなので
是非使ってみましょう。
posted by kapper at 23:41 | Comment(0) | Netwalker

2013年10月26日

モバイルUbuntu、NetWalker登場 インストール高速化 ローカルdebファイル レポジトリ登録編 その217

今日は今更ですがダウンロードしたローカルdebファイルを
レポジトリに登録して運用してみました。
リカバリする際に毎回ダウンロードするのも面倒ですし
パケットも使いますし。
必要なファイルをUSBやMicroSDに置いておけば大変便利です。

○レポジトリの登録
今回はこちらを参考にしました。感謝です。

 ローカルに置いたdebファイルをapt-get installでインストールする
 ローカルにあるパッケージを APT でインストールしたい

まずNetwalkerにapt-getとかでダウンロードして保存したdebファイルを
MicroSDにコピーします。
apt-getでダウンロードしたキャッシュはこちらにあります。

 /var/cache/apt/archives

まずは仮にdebフォルダを作成してMicroSDにコピーします。

 mkdir /media/disk/deb
 sudo cp /var/cache/apt/archives/*.deb /media/disk/deb

一覧ファイルのPackages.gzを作成します。
debファイルを増減変更した際には随時作成する必要があります。

 cp /media/disk/deb
 sudo apt-ftparchive packages . | gzip -c9 > Packages.gz
 sudo apt-ftparchive sources . | gzip -c9 > Sources.gz

作成したらレポジトリに登録します。

 sudo gedit /etc/apt/sources.list

コピーしたフォルダ名を入力。保存。

 deb file:/media/disk/deb/ ./

使用する際はapt-get updateとupgradeを使います。
自作debファイルも置いておくと良いかもしれませんね。

リカバリ後はいつも通りレポジトリに追加して使ってください。

○まとめ
簡単なので必要ファイルはコピーして残しておきましょう。
オンライン上のサーバでも同様に出来ますので
マイ野良レポジトリを作っても良いかもしれません。
posted by kapper at 09:10 | Comment(0) | Netwalker

2013年10月18日

モバイルUbuntu、NetWalker登場 超名作スーパーマリオ クローン Supertux セルフコンパイル編 その216

少し間が開いてしまいましたのでゲームネタですw
今回はTuxで名高いスーパーマリオクローンのSuperTuxの
安定板をセルフコンパイルしてみました。
Jaunty標準パッケージのSuperTuxはSDLのOpenGL設定の関係で
演算が非常にもっさりして全くゲームになりません。
OpenGLをdisableにしてコンパイルしなおす事で
本来の速度で遊べる様になります。
興味のある方は暇つぶしに遊んでみましょう。

○SuperTuxとSDL
SuperTuxはLinuxのマスコットであるペンギンのTuxを主人公とした
スーパーマリオのクローンゲームで伝統ある名作ゲームです。

実はJaunty標準のSuperTuxをインストールして遊ぶと超もっさりで
全くゲームになりません。
NetwalkerはARM端末でOpenGL非対応です。
CPU演算も整数演算はそこそこですが少数演算は死亡レベルです。
勝手な想像ですが、Lucid以降のSDLの場合エラーが出てゲームは起動しませんが
Jaunty世代のSDLはいい加減でドライバ、ハードが無くても
無理やり少数演算でOpenGL命令を動かそうとします。
当然3Dは表示出来ない、2Dは超もっさりになっているのではと憶測します。
であれば2DゲームはOpenGL使用を外せば普通に動くはずと解釈しました。


○SuperTux安定板 セルフコンパイル
実は結構面倒です。
まず必要ツールのインストール。

 sudo apt-get build-dep supertux
 sudo apt-get install autoconf automake
 sudo apt-get install libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl1.2-dev

本家HPから安定版のソースファイルをダウンロードして展開。
その後、このままだとコンパイルエラーが出ますので一行修正します。
2009年頃のgcc4.2.3を使った際のコンパイルエラーだそうです。

 cd supertux/src
 gedit main.h

で210行目のMenu::を削除。

 void Menu::get_controlfield_key_input(MenuItem *item);
 ⇒
 void get_controlfield_key_input(MenuItem *item);
 
でconfigure。この際にOpenGLをdisableします。そうしないと意味がありません。

 ./autogen.sh
 ./configure --prefix=/usr --disable-opengl

で終わりましたらコンパイル。

 make
 sudo make install

でプレイする際には

 supertux

多分起動するはずです。
遊ぶ際にはキーボード設定を変更しましょう。
何故ならジャンプがスペースキーでダッシュがコントロールキーなので
同時押ししますと日本語入力切替コマンドになる為ですw
スーパーマリオの独特の操作出来ませんw

○まとめ
作り直せばちゃん60FPS以上でちゃんと動きます。
PulseAudioがかなりCPUプロセスを使用しているのが気になりますが。
ARM特有の情報が無いので憶測でトライするしかないのが残念です。
他の2D もっさりSDLゲームも実は動くかもしれませんね。
本家のゲーム性が完成されているので
SuperTuxも非常に面白いです。
暇つぶしには良好なので是非遊んでみて下さい。

PS.勘違いしていましたのがSuperTuxの安定板は設定画面で
OpenGLのON、Offが出来る様です。コンパイルしなくても設定可能です。

 sudo apt-get install supertux-stable

で入れて遊んでみて下さいな。

posted by kapper at 01:07 | Comment(0) | Netwalker

2013年09月18日

モバイルUbuntu、NetWalker登場 超高速独自エンジンブラウザ Netsurf2.9 セルフコンパイル編 その215

今回は高速ブラウザのNetsurfをネタにします。
Jauntyのブラウザは重かったりメモリを食うものばかりで
軽くて低機能で流し読みに適しているのがDilloしか無かったりします。
DilloもHtml基準で表示が崩れてしまうので
ブラウザを多用する人ほど人気の無い物です。
そこでHtml4水準のブラウザのNetsurfを試してみました。
ただJaunty標準のはあまりに不安定なので新しいバージョンの
コンパイルして使ってみました。

○Netsurfとは
Netsurfとは拡張機能の殆どないシンプル、軽量、省メモリのブラウザです。
Dilloと異なる点はHTML4とCSSに対応しており、いつも通りの表示が出来る点です。
Jauntyのバージョンはあまりに古く出来が悪いので
最近のバージョンの2.9を試してみました。
最新の3.0を使っていないのはBisonのバグがあり、
コンパイル出来なかった為です。
まだ一部表示やエンコード文字化けがあり
完全でないので今後に期待です。


○Netsurf2.9のコンパイル
結構面倒ですが

 sudo apt-get build-dep netsurf
 sudo apt-get install libgtk2.0-dev libcurl3-dev libmng-dev
 sudo apt-get install librsvg2-dev liblcms1-dev libjpeg-dev
 sudo apt-get install flex bison
 sudo apt-get install build-essential fakeroot devscripts

下記のPPAからlibnsbmpのソースパッケージを拾ってコンパイルします。

 https://launchpad.net/ubuntu/+source/libnsbmp/0.0.1-1

libnsbmp_0.0.1.orig.tar.gz
libnsbmp_0.0.1-1.diff.gz
libnsbmp_0.0.1-1.dsc

この3つのファイルをダウンロードしてdscファイルを展開します。

 dpkg-source -x libnsbmp_0.0.1-1.dsc
 cd libnsbmp_0.0.1-1

でコンパイル。

 dpkg-buildpackage -us -uc -b -rfakeroot


問題なければバイナリファイルとパッケージが作成されるはずです。
それをインストールします。

 dpkg -i libnsbmp_0.0.1-1_armel.deb

Netsurf本家から2.9のソースファイルをダウンロード。
解答してコンパイル

 make

実行する際には

 cd netsurf-2.9/netsurf-2.9/
 ./test-nsgtk


無事起動できたはずです。
コンパイルエラーが出た場合はパッケージが不足しているので
apt-getで追加してみましょう。

○まとめ
一応動作しますがまだ表示に課題があります。
CPU負担もそれ程ではないので動作も軽くて良いです。
色々やろうとすると出来ない事が多いので
あくまで表示用として使ってみましょう。
Netwalkerならではのポータブルブラウザです。
 
posted by kapper at 22:09 | Comment(0) | Netwalker

2013年09月15日

モバイルUbuntu、NetWalker登場 Ren'Py ビジュアルノベルエンジン フリーゲーム動作編 その214

次はRen'Pyのフリーゲーム動作確認です。
x86依存のライブラリとか面倒な所が沢山あるのが難点ですが
本質的には大抵動くと信じるしかなさそうです。

○Ren'Pyフリーゲーム
Ren'Pyゲームは500以上ありまして登録されています。
その中で主なジャンルとしては

 ・日本風ギャルゲー風味
 ・同人RPG
 ・実写系洋風ADV
 ・インタラクティブフィクション風
  (要はZork系テキストアドベンシャー)
 ・日本人同人ゲーム(主に有料作品)

勢力として最も大きいのが日本風ギャルゲージャンルですが、
意外にもオリジナル作品が殆どです。
日本の同人なら他社の版権を容赦なくパクって(以下略)
やっぱりオリジナリティーを主張する国柄でしょうか。

○Ren'Pyゲームインストール
まず対象となるゲームを拾ってきます。
注意してほしいのは下記の点。

・Ren'Pyのバージョンに注意。
 新しいバージョンで作られたゲームは古いRen'Pyでは動かない事がある
・Linux-x86でビルドされたゲームはDLLやModuleがx86でリンク
 されており動作しない事が多数

という事があるのでマルチプラットフォーム版のパッケージを拾ってきます。
探す方が凄く大変ですがw

 Ren'Py games list

ダウンロードしたら展開して、フォルダごと下記にコピーします。
/usr/share/games/renpy

後は普通通りRen'Pyを立ち上げてメニューが出てきますので
“Select Project”を選択して遊ぶゲームを選びます。
上メニューに選んだゲーム名が出たら “Launch”を押した後メニューを閉じます。

動かない場合はDLLかModuleのエラーなのであきらめましょう。
色々と試してみて下さい。

○まとめ
動くゲームを探すのが大変です。
マルチプラットフォームの概念もx86で構成されてしまうと
全く意味がありませんよね。
AndroidとかRapsodyPiとか出てきているので
こういった環境は無くなっていくと良いですね。
また最新版のRen'Pyをビルドするのも必要になるので
気が向いた時に一度試してみます。
環境構築に結構大変そうなので。
posted by kapper at 23:24 | Comment(0) | Netwalker

2013年09月11日

モバイルUbuntu、NetWalker登場 Ren'Py ビジュアルノベルエンジン Demoテスト編 その213

懲りずにゲーム関連です。
ビジュアルノベルエンジンのRen'PyのDemoテストしてみました。
一般入手できるゲームはLinux-x86パッケージが多く
マルチプラットフォームのARM対応と古いバージョンと壁があり
テストしても中々動作率が悪いのが現状です。
英語が多いですが是非試してみましょう。

○Ren'Pyとは
ビジュアルノベルやRPGを中心とした海外発ゲームエンジンです。
英語圏ではオープンソースで独占的な力のあるツールなのですが、
日本ではNscriptorや吉里吉里が強力なので殆ど無名です。
Pythonベースでマルチプラットフォーム、GPLで移植性に優れております。
ただ進化が速くバージョン依存性が大きいので
最新版の導入出来ないと新しいゲームが環境についていけませんので
プレイできなくなるのが悩みです。
最新版はPythonやOpenGLの依存性などARMにはやや厳しい仕様です。
中々プレイできるゲームが無いのでDemoテストからレビューします。

ただしゲームは殆ど海外製英語版。
遊んでみればわかると思いますが、
正直このジャンルに限ればゲーム性や絵でも日本と海外では
商用は当然の事として同人は勿論、フリーでもレベルの差が果てしなく違います。
文化の土壌の差といいますか30年は追い付けない差といいますか。
英語の勉強替わりで遊んでみよう、気楽な感じで触ってみましょう。

○Ren'Pyのデモゲームインストール
今回はDemo版から試してみます。
Ubuntu、Debianの場合本当に表示DemoとThe question
というゲームが一個レポジトリに登録されております。
こちらのゲームがまず遊べます。

JauntyにもRen'Pyはありますのでそのままapt-getでも動作します。
ただバージョンが古すぎるので
今回はDebianのSqueezeから持ってきました。
リスクは一応ありますがRen'pyだけなので後で削除すれば問題ないです。

Squeezeアップデート方法

1、APT::Cache-Limitエラー対策
こちらは過去のブログの転載です。
Natty、Maverick、Lucid、lennyなどの複数のリポジトリや
PPAや野良パッケージのリポジトリを大量にsources.listに登録しますと
apt:cacheのリミットエラーが出ましてリポジトリが使えない現象が出ます。 
対策はapt.confのファイルを作りキャッシュサイズを設定します。

 sudo gedit /etc/apt/apt.conf

で下記の文章を貼り付けて保存します。

 APT
 {
 Cache-Limit "50331648";
 };

で後は再びリポジトリを更新するとエラーが出なくなるはずです。

 sudo apt-get update

2、Squeeze通常アップデート
Squeeze ARMの管理はこちらを参照。
まず下記にてSqueezeのリポジトリを追加します。

 sudo gedit /etc/apt/sources.list

で下の2行を追加して保存。

 deb http://mirrors.kernel.org/debian squeeze main contrib
 deb-src http://mirrors.kernel.org/debian squeeze main contrib

でリポジトリを更新。アップデート

 sudo apt-get update
 sudo apt-get install renpy renpy-demo renpy-thequestion

インストールされるパッケージは少数です。
インストールしたらリポジトリを元のJauntyに戻しておきましょう。

遊ぶ場合は端末かランチャーからRen'pyを立ち上げますとメニューが出てきますので

“Select Project”を選択して遊ぶゲームを選びます。
上メニューに選んだゲーム名が出たら “Launch”を押した後メニューを閉じます。
そうするとPythonがガリガリ裏で動き始めて、数十秒後に
選択したゲームのメインメニューが出てきます。
時間がかかりますがやっとゲーム開始です。

○まとめ
良心的とは言い切れませんが遊べるゲームが1個レポジトリに
ありますのでまず遊んでみましょう。
メモリを結構食いますので他のアプリは落とした方が良いです。
他のゲームも遊びたいですがLinux-x86で多数ディストリされて
リンクがx86のDLLやPythonとつながっているので途中で落ちます。
ARMではソースの一部改編が必要かと。
Squeezeから入れたのはバージョン依存性の為です。
仕様がARMに優しくないのが残念ですがまず手元から遊んでみましょう。
posted by kapper at 20:29 | Comment(0) | Netwalker

2013年09月08日

モバイルUbuntu、NetWalker登場 東方オマージュ 弾幕シューティング Sacred Curry Shooter編 その212

pygameのテストとして弾幕シューティング 
Sacred Curry Shooterを動作してみました。
ゲーム自体は相当アレな出来なので残念ですが
まあ気が向いたら遊んでみましょう。

○Pygame
pythonのゲームの一つです。
スクリプト言語なので地味な2Dゲームばかりですが
OpenGLの無いNetwalkerなら十分でしょう。
色々と遊んでみましょう。

○Sacred Curry Shooter
やり方は簡単です。
まずpygameをインストール。

 sudo apt-get install python-pygame

本家よりファイル一式をダウンロードして展開。

 http://sourceforge.net/projects/shinkashooter/files/latest/download

.pyファイルの先頭に一行追加します。

 sudo gedit main.py

みたいな感じでテキストエディタで追加。

 #!/usr/bin/env python

追加したら保存します。
ファイルを実行形式に変換します。

  chmod +x main.py

後は実行するだけです。

 ./main.py

多分動作します。

○まとめ
一応動作しますが残念なゲーム性です。
弾幕VS弾幕なのが。
まあpygameには他にも色々なゲームがありますので
試してみましょう。
posted by kapper at 21:13 | Comment(0) | Netwalker

モバイルUbuntu、NetWalker登場 python 汎用アプリ動作設定 .pyファイル編 その211

今回はPythonの汎用的.pyファイルをLinuxで実行するための
簡単な初期設定をネタにします。
pythonはやや重めですが環境に依存しないので
Netwalkerで動かす際にも便利です。

○Python
実行形式にしなくても良いのですが、
通常のアプリと同じ様に使える様になるので便利です。
参考としたサイトはこちら。

 How to execute Python scripts(.py) in Linux


○Python設定
やり方は簡単です。
通常メインの.py(例:main.pyなど)を中心にサブの.pyが連携しますので
それを見つける必要があります。
ファイル名を見てわからない場合はWindows版の実行ファイル名とか
調べるしかなさそうです。
pythonファイル一式のインストールは割愛します。

.pyファイルの先頭に一行追加します。

 sudo gedit (ファイル名).py

みたいな感じでテキストエディタで追加。

 #!/usr/bin/env python

追加したら保存します。
ファイルを実行形式に変換します。

  chmod +x (ファイル名).py

後は実行するだけです。
動作しなかったら別のファイルを探しましょう。

 ./(ファイル名).py

意外とこれだけでpythonアプリがかなり動作します。
色々と試してみましょう。

○まとめ
スクリプトにpythonを指定して実行するだけです。
pythonアプリは多数ありますので便利です。
簡単な事ですけど盲点です。
色々とテストしてみましょう。
posted by kapper at 10:58 | Comment(0) | Netwalker

2013年09月01日

モバイルUbuntu、NetWalker登場 高性能Webオフラインビュワー Webhttrack その210

またまた継続してアプリの発掘作業をしております。
Ubuntuは使えるアプリが非常に多いのですが
日本では殆ど埋もれてしまって日の目を見ないのが残念です。
そういったアプリをNetwalkerで便利に使おうと思います。
今日はWebオフラインビュアーのWebhttrackです。

○Webhttrackとか
まずUbuntuからコピペ。

 ウェブサイトをコンピュータにコピーする httrack のウェブインターフェース版
 WebHTTrack はオフラインブラウザユーティリティで、インターネットから
 World Wide web サイトをローカルディレクトリにダウンロードすることができます。
 手順 を追ったウェブインターフェースを用いて、再帰的に全ディレクトリを構築し、
 html、画像や他のファイルをサーバから取得しコンピュータに保存できます。

言い方を変えますとブラウザ経由のWebサイトのぶっこ抜きです。
リンク先の階層まで指定して落とす事で疑似的なオフラインビュアーを実現しています。
ビュワーとしては結構高性能です。
ただサーバに迷惑をかける設計なので、モバイルで使用する際は
パケット代が大変な事になりますのでトラフィックに十分注意しましょう。

○Webhttrackのインストール
いつも通り普通に。

 sudo apt-get install webhttrack

このままだと起動しませんのでブラウザの指定をします。
エディタで編集。

 sudo gedit /usr/bin/webhttrack

5行目辺りのBROWSEREXE=にブラウザ名を追加。
例えばFirefoxならこんな感じで。

 BROWSEREXE="firefox"

保存したら端末などで実行。

 webhttrack

ここでブラウザと設定画面が表示されます。
ダウンロードしたいフォルダとWebページをアドレスで登録します。
リンクをローカルファイルに変換しますので一部の画像データなど、
特殊リンクになっている物を除くと普通に見れます。
意外と重いのでそんなに速くはないです。
注意点は下記の通り

・データサイズとアクセス頻度の関係上、保存フォルダは極力MicroSDとUSBにする
・ダウンロードする階層を必ず指定する。通常は2〜4程度で十分。
 指定しないとダウンロードが永遠に終わらない、大きいファイルを拾ってくる。 
・モバイル回線を使うなら回線数2、パケット数を制限する。
・キャッシュ保存の設定を入れておく。
・初回の実行は必ず定額回線を使用する。1回の通信量を把握する事。
 動画とかリンクがあるととんでも無い事になります。
 
実行開始しますと場合によっては永遠に終わりませんので
適当な所で中断します。
注意しないとパケット代が恐ろしい事になります。

○まとめ
事実上のHttpサーバです。
設定を間違えなければ素晴らしいアプリです。
ニュース系のサイトを登録する際には注意しましょう。
wifi接続スポットなどを生かして落としましょう。
apacheをうまく使えば外部から接続してローカルサーバにも出来なくもないです。
RSSリーダーや2chブラウザなど他の巡回アプリがある場合は自重した方がよさそう。 
posted by kapper at 08:23 | Comment(0) | Netwalker

2013年08月30日

モバイルUbuntu、NetWalker登場 多機能インスタントメッセンジャー pidgin 最新版コンパイル その209

今日は多機能IMのPidginの最新版をコンパイルしてみました。
ビデオやVOIPは使えませんがチャット位なら出来ます。
この手のアプリは親サーバの設定が変わると直ぐに使えなくなる為、
どうしても最新版更新が必要な泣けてくるアプリです。
Jauntyの泣き所ですよね。

○Pidginとは
LinuxでもNo1に近いIMのアプリ。
対応プロトコルは下記の通り。

.NET Messenger Service - Windows Live Messengerなどで利用されている
Gadu-Gadu
Novell GroupWise
IRC
OpenNap
OSCAR (AIM、ICQ、.Mac)
Lotus Sametime
SIP
SLIC
XMPP - Jabber、Google Talkなどもサポートする
Yahoo!
Zephyr

○Pidgin最新版コンパイル
Jauntyのライブラリで特に特殊な事はありません。助かります。
ちょっと大きいのでコンパイルに時間がかかります。

wget http://sourceforge.net/projects/pidgin/files/Pidgin/2.10.1/pidgin-2.10.1.tar.bz2
sudo apt-get build-dep pidgin
sudo apt-get install autoconf
tar jxfv pidgin-2.10.1.tar.bz2
cd pidgin-2.10.1/
autoconf
./configure --prefix=/usr --disable-vv --disable-idn
make
sudo make install

パッケージを作るならcheckinstallを使います。

 sudo checkinstall make install

端末から

 pidgin

で起動できるはずです。


○まとめ
コンパイルは簡単ですが動画モジュールが無いので
ビデオチャットとVOIPのコンパイルでエラーが出ます。
残念ですが今の段階ではdisableしときました。
メッセンジャーを使われる方は是非最新版を入れておきましょう。
posted by kapper at 20:13 | Comment(0) | Netwalker

2013年08月27日

モバイルUbuntu、NetWalker登場 東方ファイヤーエムブレム風SRPG Story of a Lost Sky その208

久々のNetwalkerですがネタに困りましたので今回もゲームネタです。
python-pygameで書かれております東方2次創作系のSRPG、
Story of a Lost Skyを動作してみました。
BSDライセンスなんで個人的にどうかな?と思いますが
海外の方が作られているらしく英語版です。
Linuxってこの手のゲーム無いですよね。
興味のある方はどうぞ。

○Story of a Lost Skyとは
東方のファイヤーエムブレム風移植です。
python-pygameの2.xを使っていますので様々な環境で動作します。
逆に最新の3.xでは動かないのでNetwalkerでも問題なかったりします。
Windowsでも移植されてますのでとりあえず遊んでみたい方はそちらもどうぞ。


○Story of a Lost Skyインストール
今回はこちらを参考にしました。

 Lost Sky Tactical J-RPG [PyGame]

まずインストール。一部書き換えます。

 sudo apt-get install python-pygame mercurial python-all
 hg clone https://bitbucket.org/featheredmelody/lost-sky-project-public
 cd lost-sky-project-public/Story\ of\ a\ Lost\ Sky/
 sed -i 's/python2/python/g' srpg.py
 chmod +x srpg.py
 ./srpg.py

多分立ち上がるはずです。
画面の解像度が足らないので下が一部切れてます。
FVWMみたいに縦方向バーチャルデスクトップが無いと読めないので不便かも。


○まとめ
解像度の関係上、画面がみにくいのが難点ですが一応動作しました。
ただ日本語で遊んでみたいですよね。
誰か翻訳にトライするかたしませんかw
最近ゲームばかりですがネタ不足でまたゲームに走りそうです。
他のpython-pygameでも面白いのがあったらトライしてみたいです。

posted by kapper at 21:10 | Comment(0) | Netwalker
にほんブログ村 IT技術ブログへ
にほんブログ村

Linux ブログランキングへ