簡単に箱庭環境を構築できるVirtualBoxは大変便利ですが、host - guest間のファイル共有方法で躓きやすいようです。
手元の環境でようやく解決をみたので、以下その記録。

 

host LinuxMint 17.3、ユーザーsakai
guest Slitaz rolling(32bit)、ユーザーtux

 

手順

 

host側 (ユーザーはsakai)


1. VirtualBox側でファイル共有するディレクトリを設定する。もちろん、フルアクセス。
共有名 program
パス /home/sakai/program

 

guest側 (ユーザーはtux)


1. Slitaz側でguestadditionを導入してvboxsfを使えるようにしておく。
2. sudo addgroup vboxsf
3. sudo addgroup tux vboxsf
4. mount point を作成。ここでは /mnt/program
5. id tux 等でuidを調べる。
6. /etc/fstab を設定
program        /mnt/program    vboxsf  defaults,uid=1000,gid=0  0 0
uidとgidを指定すること。
7. 再起動

 

これで、host側の /home/sakai/program が guest側の /mnt/program にマウントされます。

 

で、ですね。

 

guest側の/mnt にて ls -l で見てみると

 

drwxr-xr-x    1 tux      root         12288 Jun 28 11:23 program

 

当然、program 内で作成したファイル、ディレクトリのユーザー及びグループ名はデフォルトでは同様になります。

 

ls -l |grep slitaz_project
drwxr-xr-x    1 tux      root          4096 Jun 28 11:28 slitaz_project

 

ls -l slitaz_project
total 12
-rw-r--r--    1 tux      root           514 Jun 28 11:26 slitaz_project.geany
-rw-r--r--    1 tux      root           917 Jun 28 11:15 untitled.c

 

(後述しますが、slitaz_project.geanyというのはgeany(統合開発環境)のプロジェクトファイルです。)

 

 

上記ディレクトリ、ファイルはhost側では以下のように見えます。

 

ls -l |grep slitaz_project
drwxr-xr-x  2 sakai sakai   4096  6月 28 11:28 slitaz_project

ls -l slitaz_project

合計 12
-rw-r--r-- 1 sakai sakai  514  6月 28 11:26 slitaz_project.geany
-rw-r--r-- 1 sakai sakai  917  6月 28 11:15 untitled.c

 

このようにユーザーやグループ名の置き換えはVirtualBoxがやってくれます。至れり尽くせりですね。

 

 

これでhost-guest間でプロジェクトを共有できる!と喜んだのですが、思わぬ落とし穴が。

 

それは、geany のプロジェクトファイルに記録される情報が「そのプロジェクトを開いた時のもの」になる、というものです。


どういうことかというと、host側で編集すると下記のように記録されます。(引用は一部)

 

[project]
name=slitaz_project
base_path=/home/sakai/program/slitaz_project/

 

guest側でこのプロジェクトを開くと、記録されているbase_pathが異なる為、このままでは必要なファイルを見つけることができません。

 

しかし、うまい具合に解決できました。「プロジェクトファイルの格納場所をhostとguestで変えておけばよい」のです。

 

具体的には、guest側でgeanyを起動し、メニューの「編集 - 設定」で開いた「設定ダイアログ」の「全般タブ」の「その他タブ」にある(長いっ!)
「プロジェクトファイルをプロジェクトの基本ディレクトリに保存しますか?」をチェックします。
当然、host側ではチェックを外します。

 

 

 

これでプロジェクトの中身のファイルを共有しつつ、プロジェクトファイルを使い分けることができます。開くときに間違えるとややこしいことになりますが、それは使う側の責任でしょう。

 

6月28日追記及び修正

 

自分宛てメモ

 

g_thread_init が呼び出されているが、Slitazのglib(2.43.3)では完全に廃止されたらしく、参照エラーになる。コメントアウトすること。

 

lensfun のバージョンが旧くてライブラリをダウンロードできない。現行バージョンへの差し替えはAPIに変更があるようで難しいと思われる。

 

lensfun 0.3.2 をビルドしてリンクしてみたが特に問題なく動作した。ライブラリのダウンロードについてはrawstudio側に問題があるような。個人的に常用しているレンズがデフォルトで含まれていたので深く追求していない。

 

依存関係

Slitazのリポジトリより

GConf-dev
lcms-dev
exiv2-dev
fftw-dev
lensfun-dev
curl-dev
libgphoto2-dev

libgtkimageview-dev

 

flickcurl(ソースからビルド)

ビルドを通すためだけにインストールする。アカウント情報を忘却したので試していないのだが、FlickerのAPI(に限らず、Webサービスは総じて)は以前変更されているのでおそらく動作しないと思われる。なおRawstudio-2.1では削除された。

Slitazのリポジトリより、raptor-devをインストール。オプションなのだが取りあえず入れた。

 

lensfun のバージョンを無理やり上げてみる

lensfun のサイトから0.3.2のソースを貰ってきてインストール。以前のバージョンと違って、soライブラリのリンカをちゃんとしてくれた。

Slitazでは以下をインストール

xorg-makedepend, doxygen

 

rawstudio-2.0/plugins/lensfun/lensfun.c
g_thread_create が使われているので、g_thread_new に変更する。最初の引数(threadの名前)は取り敢えずNULLを渡した。
/usr/local/include/lensfun/lensfun.h
LF_MODIFY_CCI (0x00000004)が廃止されているので、lensfun.hに書き足しておく。

※追記 その後、このシンボルはプログラム中で実質使われていないことが分かったので、ヘッダファイルをそのままとし、Cソースのほうを改変した。

 

 

 

 

lensfunにアップデータが付属している。

lensfun-update-data

但し、python3が必要。故に試していない。

 

xfce4向けの修正
gnome-open を呼び出している箇所があるので、exo-openに変えてみる。
application.c
rs-actions.c

 

 

6月28日追記

 

テザー撮影

過去の実績も踏まえてrs-tethered-shooting.cをいろいろ弄ってみたが、NikonD40との組み合わせでは思うように動作しない。

特にリモート撮影(PCからレリーズする)では、1枚撮影した後のデータ吸い出しに問題があって2枚目以降はエラーになって切断される。同様の理由でインターバル撮影も動作しない。

以前、PuppyLinuxあたりで動かしていた時はセグっていたので、UIにエラーメッセージをきちんと表示してrawstudioの動作そのものは継続する分マシといえる。

なお、モニター撮影(接続したままでカメラ側でレリーズし、データをPCに転送する)は特に問題なく動く。

 

リモート撮影はgphoto2で代用できたので実用上は問題無い。rawstudioのプラグインに問題があるということだ。

 

自分宛てメモ
LinuxMint のリポジトリ(というより、Ubuntuのそれ)にあがっているバージョンは些か古くて動作しないアプリケーションもあるので、最新版にアップデートすること。


方法はwinehqに書かれている。https://wiki.winehq.org/Ubuntu

Mint17->trusty, 18->xenialを間違えないこと。


この記事を書いている時点で、stableは2.0.1である。ちなみにSlitazのリポジトリにあるのは2.5だった。

 

青空文庫リーダー(以下、本プログラム)を作り始めてからかなりの時間が経過しました。自分が使うアプリケーションであれば好き勝手に作れる、というのが長続きした理由の一つです。加えて、青空文庫を読む、という実用性(というか必要性)もあります。

 

日本語の縦書表示にはPangoを用いています。開発を始めた頃は、CJKの取り扱いが雑でgravityの効き具合が日本語の慣用に沿っていないとかいろいろありました。
その中の一つに、均等割付(justify)が日本語相手だと動かない、というのがありました。使い方が悪かったのか、どうやってもダメで本プログラムには未だ実装されていない機能の一つです。これができないと、例えば禁則処理の結果1行に収まる文字数が既定値より小さくなることがあり、均等割付を行わないと行末が揃わず見苦しくなってしまいます。(追記 このような場合、本プログラムでは行中にある句読点直後のスペースを調整して行末を揃えます)

 

開発環境が当初のPuppyLinux571JP(Ubuntu Precisey由来)からLinuxMint17系(Ubuntu Trusty派生)に代わり、ライブラリもアップデートされているので、久しぶりにpangoの挙動確認をしてみました。なお、表示にはpango-viewを使っています。

 

結果は上図(※)の通り。一見、日本語の均等割付が動作しているように見えます。


しかし、よく見るといろいろ不自然な点が。2行目の"許可しない局"で、"可"と"し"、"い"と"局"の字間が狭すぎるように思います。
ソースコードを読んだわけでないので確定的なことは言えませんが、想像するに"漢字"と"かな文字"を厳密に別グループとして扱っているのでこうなっているのでは、と。(※しかし、ballpen、は我ながら酷いですね。そんな筆記具ねえよ、とか言われそう)

 

試しに全部漢字で埋めてみると、次の通り、きちんと均等割付になりました。

 

動作が(仕様なのかもしれないが)適当すぎて使いどころが思いつかないですね。

どのみち、本プログラムではフリガナの処理がありますし、括弧類の送り量の調整も行わないとならないのでそのまま使うわけにはいきません。

 

英文ワードラップのほうは有用に思えますが、描画域(例えばcairo canvas)にどこまで出力したか、を管理しないと正しくページ送りできませんから、結局呼び出し側の負担は然程変わらないと思います。
Pango Layoutを実行した段階で描画サイズ(縦横のピクセル長)が判るので、それの配置場所を勘案してページ溢れしているかどうか判断する、ということになりそうです。問題は、溢れないようにするにはどの辺で区切れば良いか、それをどうやって調べるか、です。

 

自分宛てメモ

 

xrandr --output VGA1 --gamma 1.53:1.25:1.350 --brightness 0.6

 

どうやっても合わない。そもそも扱いうる色空間が違っているような。

自分宛てメモ

 

Slitaz側にftpサーバーを立ててアクセスする。

 

サーバーにインストールするもの
pure-ftpd
sftp-server

/etc/rcS.conf のRUN_DAEMONSに pure-ftpdを追加。

 

準備
予めクライアントからsshを使って公開鍵認証でログインできるように設定しておく。

 

クライアント側(LinuxMint,Slitaz共通)
gFTPをリポジトリからインストール。

設定ダイアログのネットワークタブで「デフォルトのプロトコル」をSSH2に設定。
同じくSSHタブの「SSHユーザー名/パスワードを要求する」のチェックを外す。

後は、ホスト名にサーバーアドレス、ポート番号は22、ユーザー名を設定し、パスワード欄は空白のままEnterキーを押下すれば接続する。(SSH2になっていることを確認)

 

クライアントにSlitazを使う場合の追加設定
SSHがdropbearでは機能不足のようで接続できなかったので、別途opensshをインストールする。リポジトリにも用意されているが、一部dropbearのパッケージ内容と重複するので自前でビルドして任意のディレクトリ(例えば /opt/opensshとか)にインストールしたほうが良い。
gFTPの追加設定

設定ダイアログのSSHタブの「SSHプログラム名」にインストールしたopenssh(例えば /opt/openssh/bin/ssh 等)を設定する。

 

画像整理アプリケーションであるgThumbについて。

 

些か古くなってしまったけれど、過去にはUbuntuで採用されていたこともあった(ような気がする)。

また、LinuxMintの最近のバージョン(18)では、フォークしたバージョンであるPix(Xappsの一つ)を同梱している。

 

LinuxMint 17.3 のリポジトリに上がっているのは、3:3.3.1(3.2.7-0ubuntu1とも)。

それなりに使えるのだけれど、メインで使っているThinkPad R500ではCPUが旧いためか動作のキレが今ひとつ。

で、ものは試しと(確かGTK2を使っている最期のバージョンだったと思う)2.14.4にダウングレードしてみることにした。このバージョンはSlitazを入れたノートPCでも動かしていて、raw関係以外(後述)には特に目立ったバグも無いことを確認している。

 

 

コンフィギュレーションはこんな感じ。取り敢えず画像を確認できればいいのでgstreamerとかschemasとかを切る。

export CFLAGS="-march=native -mtune=native -O4";export CXXFLAGS=$CFLAGS

 

./configure --prefix=/usr/local --sysconfdir=/etc --localstatedir=/var  --disable-gstreamer --disable-gnome-3 --disable-schemas-install --disable-gnome-keyring --disable-libbrasero

 

 

 

出力は以下の通り。exiv2等、依存関係にあるライブラリについてはLinuxMintのリポジトリからdev共々事前にインストールしてある。

なお、libopenrawを使おうとするとコケるので代替としてdcrawにしてある。これは事前に別途ビルドしてインストールしなくてはならない。もっとも、raw処理はDarktableを使っているのでgthumbのプラグインは切ってしまっている。

 

Configuration:

    Source code location : .
    Compiler             : gcc
    Prefix               : /usr/local
    CFLAGS             : -march=native -mtune=native -O4 -fPIC -DPIC -Wl,--as-needed  -Wall -Wcast-align -Wtype-limits -Wclobbered -Wempty-body -Wignored-qualifiers
    Debug                : no
    Run in place         : no
    Build tests          : no
    Use libunique        : no
    Exiv2 support        : yes
    JPEG tools           : yes
    TIFF tools           : yes
    Clutter support      : no
    GStreamer support    : no
    Use libopenraw       : no (uses dcraw)
    Web services support : yes
    Use GNOME Keyring    : no
    Burn disc support    : no
    Web albums           : yes
    SM client support    : xsmp
    Map support          : no
    GNOME 3 support      : no

 

 

動かしてみたところ、期待通りの軽さであった。手元にはcore i5を積んだノートPCもあるので何時までも旧いハードにこだわる必要は無いのだけれど、動くものは最期まで丁寧に使いたいなあ、と。

 

 

 

自分宛メモ

 

狙い
ウィンドウマネージャ(WM)やデスクトップ環境(DE)をすっとばして直接アプリケーションを起動することで、OSの存在を感じさせない、専用システムっぽいUXを実現する。

 

手順
1)
/etc/slim.conf 内の sessions に、任意のアプリケーションを書き加える。
例)sessions            startxfce4, openbox,e17,jwm,xfce4,lxde,mate,/opt/palemoon/palemoon

 

2)
リブート後、自動ログインでなければslimによるログイン待ちになる。この際、F1を押下すると上記の内容が一つずつ表示される。
通常はここでセッションを選択してDEやらWMの支配下に入るのだけれど、アプリケーションを起動することもできる。上記の例ではWebブラウザであるpalemoonを選択可能。

 

 

しかし。
palemoonは問題なく起動するが、以下の操作ができない。
・ウィンドウサイズの変更
WMが動いていないので。但し、ステータスバーを表示していればウィンドウ右下隅にハンドルがあるので、それを掴んで変更可能。
・各種ダイアログが表示されない
やはりWMが動いていないので、ダイアログウィンドウは表示されない。このため、ブラウザの設定変更はabout:configを使うこととなる。
・他のプロセスを起動できない。このため、例えばネットワークに障害が発生したので何かやりたい、とか、ダウンロードしたファイルを他のアプリケーションで開きたい、等といった操作がほとんど不可能。

 

ブラウザを閉じるにはctrl-Qを押下する。これで再びDM(この場合はslim)に戻ってくる。

 

 

自分宛てメモ。

 

Slitazのhttpサーバーは例によってbusybox由来のものである。これでも特に支障は無いのだけれど、リポジトリにlighttpdがあるので試してみる。

 

インストール

 

sudo tazpkg get-install lighttpd
sudo tazpkg get-install lighttpd-modules

尚、パッケージにはssl対応版も用意されているが今回は使わない。

 

 

設定

 

/etc/rcS.conf で定義されている
RUN_DAEMONS に、httpdを削ってlighttpd を追加。

 

/etc/lighttpd/lighttpd.conf
dir-listing.encoding が iso8859-1 になっていてブラウザで文字化けするので、utf-8 に変更。

 

 

公開ディレクトリ

 

http://サーバー/~hoge で ユーザー hoge のホームディレクトリ内にある Public が公開される。Public にて ln -s /etc etc とかやってリンカを作ると、そのままブラウザから辿れてしまう。

 

 

webdavについて


ネットで情報を漁ったところsslを導入すれば使えるようになるらしい。尤も、ダウンロードするだけだったらこのままでも使えるし、アップロードするにはクライアント側にも準備が必要になる。室内LANでは既にftpやnfsやら使っているので恐らく出番なし。

 

 

その他

  • 起動時に vhosts.conf(仮想ホスト用の設定ファイル) が見当たらない、というメッセージを吐くが、lighttpd.confでインクルードしようとして見つからないため。目障りなら削るか、vhosts.confを作るかする。
  • /etc/lighttpd.confが無い、と言われたのでリンカを出した(謎。
  • ps aux | grep httpd で /usr/sbin/httpd がロードされているのが判る。/etc/init.d/httpd stop とやると、httpd is not active.と返ってくるので問題ないと思うけれど。

 

参考URL
http://doc.slitaz.org/en:handbook:webserver

 

自分宛メモ。

 

音出し系アプリケーション(audacious, clementine等)を実行する際、pulseaudioが動いていないとエラーになる。

 


audacious :
alsaに自動切り替え。その後、「設定」でpulseを選択しようとしても弾かれる。

 

clementine :
再生しようとすると接続エラーを出す。プレイリストに列挙されている曲全てについて、リストが尽きるまで延々と繰り返す。下請けにしているgstが馬鹿なだけかも知れない。

 

 

対策

 

  • Slitaz側で何らかのデスクトップ環境(lxdeやxfce4)を使っている場合

何らかの自動実行機能を使ってpulseaudioを起動しておく。

 

  • デスクトップを使わない場合(ネットワーク越しのヘッドレス運用など)

アプリケーション起動直前にpulseaudioを起動するようにコマンドラインを組む。


問題
「指定したサーバーがautospawnを弾く」とか何とか表示されて起動に失敗する。

 

応急処置
手順1 ~/.config/pulse 以下のファイル全てを削除。
手順2 pulseaudio --start に替えて pulseaudio --daemonize=TRUE で起動。

 

備考
pulseaudioがdaemoizeしているとエラーを返すが無視して良い。気になるなら pulseaudio --check; echo $? 等でdaemonizeしているか調べる。

 


Search

Calendar

S M T W T F S
  12345
6789101112
13141516171819
20212223242526
2728293031  
<< August 2017 >>

Archive

Mobile

qrcode

Selected Entry

Link

Profile

Search

Other

Powered

無料ブログ作成サービス JUGEM