Arch Linux - Masanoriのメモ帳

Arch Linux


Arch Linuxは、シンプルかつミニマルでありながら強力な、Linuxディストリビューションです。

Arch Compared to Other Distributions (日本語)

Linuxカテゴリ
Linuxに関するページについてはCategory/Linuxも御覧ください。
おしらせ
GUI(Gnome)の話題については、XfceおよびGnomeもご覧ください。

全般

  Google ChromeがSQLite関連のエラーを出力しプロファイルが読み込めなくなる問題

以下のようなエラーが標準エラー出力へ出力されるとともに、プロファイルが読み込めなくなった場合は、/home および /var の空き容量を確認する。

 Quota sqlite error 5, errno 0: database is locked
 database is full database or disk is full

  LinuxからChromecast (GoogleCast)が見つからない問題

Linux上のGoogle ChromeからGoogle CastでChromecastへ接続しようとすると、
デバイスが見つからない旨のエラーが表示されるが、iptablesでポートを解放することで接続可能になる。

   -A INPUT -p udp -m udp --dport 32768:61000 -j ACCEPT

参照: How can I use Chromecast - Ask Ubuntu

 NTFSのUSBメモリ/外付けHDDが読み取り専用として認識される問題

NTFSのUSBメモリ/外付けHDDが、読み取り専用として認識される場合は、

$ dmesg | tail
[ xxxx.xxxxxx] NTFS-fs error (device sdb1): load_system_files(): Volume is dirty.  Mounting read-only.  Run chkdsk and mount in Windows.

こんな感じで、該当ボリュームがdirtyになっているかもしれない。

措置としては、Windowsで chkdsk を実行することが最善。
もしLinux上で解決したい場合は、ntfsfix コマンドを実行する。(ntfs-3g パッケージに含まれる)

$ sudo pacman -Syu ntfs-3g
$ sudo ntfsfix /dev/sdb1
$ sudo ntfsfix -d /dev/sdb1

参照: http://askubuntu.com/questions/112150/how-to-correctly-fix-a-dirty-ntfs-partition-without-using-chkdsk

 rootアカウント以外でもパーティションをマウントできるようにするには

例えば、一般ユーザがThunarでパーミッションをマウントしようとすると
"Not authorized to perform operation"のようなエラーが発生する。

rootアカウント(権限)以外でもパーミッションをマウントできるようにするには...

 $ sudo vi /etc/polkit-1/rules.d/10-enable-mount.rules
 polkit.addRule(function(action, subject) {
     if (action.id == "org.freedesktop.udisks2.filesystem-mount-system" && subject.isInGroup("storage")) {
         return polkit.Result.YES;
     }
 });
 
 $ sudo usermod XXX -aG storage

このように特定グループによるマウントを許可するようポリシーを追加して
自分のユーザをグループに追加する。

参照: https://wiki.archlinux.org/index.php/Polkit...

  PDF - 注釈を表示したい

2014年6月現在、"Evince"などでは今のところPDFの注釈を表示できないが、
KDE系のPDFビューワ "Okular" であれば注釈も表示できる。

$ sudo pacman -Syu kdegraphics-okular kde-l10n-ja poppler-data

  LibreOffice - 動画ファイルを埋め込めない

LibreOffice/OpenOfficeのImpressなどのスライドなどで
動画ファイル(mp4, avi, ...)や音声ファイルを埋め込めなかったり
スピーカーアイコンで代替表示されてしまう場合には、
gstreamerの必要なパッケージがインストールされていない。

以下のパッケージをインストールすること:

参考: https://bbs.archlinux.org/viewtopic.php?id=165774

  OpenCV - ./configure時に Pythonの"SyntaxError: invalid syntax"が発生する

OpenCVをビルドする際にはPythonを利用するが、
Arch Linuxにおいては、本来 Python2.xを使うべき所でPython 3.xが使われる場合がある。

解決策としては、ビルド時のconfigureで明示的にPython2.xを指定する:

PYTHON=/usr/bin/python2 ./configure

https://code.google.com/p/ghoti/wiki/Compiling_OpenCV

  OpenCV - ビルド時に conflicting declaration ‘typedef long unsigned int uint64’が発生する

OpenCVをビルドする際に

 "/usr/include/tiff.h:78:23:
 エラー: conflicting declaration ‘typedef long unsigned int uint64

のようなエラーが発生する場合は、次のページを参照:
http://trac.macports.org/ticket/38168

pacman

  エラー: confuse: signature from "xxx yyy <xxx@example.com>" is unknown trust

   エラー: confuse: signature from "xxx yyy <xxx@example.com>" is unknown trust
   :: ファイル /var/cache/pacman/pkg/example-0.0-0-x86_64.pkg.tar.xz は破損しています (無効または破損したパッケージ (PGP 鍵))。

pacman にて上記のようなエラーが発生する場合は
$ sudo pacman-key --refresh-keys コマンドでPGP鍵を更新するとよい.

Docker

Docker を参照。

印刷


  CUPSからGoogle Cloud Print対応プリンタで印刷する方法

https://www.niftiestsoftware.com/cups-cloud-print/
https://aur.archlinux.org/packages/cloudprint-cups-git/

まず、CUPS Cloud Printをインストールし、Google アカウントで認証を行う。

 $ yaourt -S cloudprint-cups-git
 $ sudo /usr/share/cloudprint-cups/listcloudprinters.py

setupcloudprint.py を実行すると、CUPSにGoogle Cloud Printのプリンタが登録される。

 $ sudo /usr/share/cloudprint-cups/setupcloudprint.py 

Android

 Androidエミュレータの高速実行 (HAXMによる Intel Atom x86イメージの実行)

Androidの開発環境において、ホストPCがIntel x86系CPU環境である場合は、
HAXMを利用する事で、開発用エミュレータ(仮想マシン)を高速実行できる。
ホストPCの環境にもよるが、快適に開発できるか、まともにできないかの雲泥の差といっても良い。
(※ホストPCがKVMによるHypervisorに対応する必要あり。)

仮想マシンの起動時間: (非スナップショット, RAM:2GB, Heap:64MB)

さて、ホストPCがLinuxの場合、AndroidのSDKManagerではHAXMを設定できない。
そのため、以下のように設定する必要がある。

$ su
# pacman -Syu qemu libvirt
# groupadd libvirtd
# usermod XXX -a -G kvm
# usermod XXX -a -G libvirtd

/etc/libvirt/libvirtd.confから、unix_sock_dir〜の行をコメントアウトする。

# vim /etc/libvirt/libvirtd.conf
~~~~
unix_sock_dir = "/var/run/libvirt"
~~~~

以下のとおり、コマンドを表示し、同様のメッセージが表示されたらOK。

# virsh -c qemu:///system list
  Id    名前                         状態
----------------------------------------------------

あとは、Android Virtual Device ManagerなどでAndroidの仮想マシンを作成して、
実行すれば良い。(その際、CPU/ABIとして"Intel Atom x86"を選択すること。)

参照:


追記(2014/05/30):
最近のアップデート以降、HAXMが無効になっていたので再度上記の手順を実行した。

 Android 実機開発 on Arch Linux

$ sudo pacman -Syu libmtp
$ mtp-detect
Listing raw device(s)
Device 0 (VID=XXXX and PID=YYYY) is a Google Inc (for Asus) Nexus 7 (MTP).
   Found 1 device(s):
   Google Inc (for Asus): Nexus 7 (MTP) (XXXX:YYYY) @ bus 2, dev 4
Attempting to connect device(s)
Android device detected, assigning default bug flags
$ sudo vi /etc/udev/rules.d/52-android.rules
SUBSYSTEM=="usb", ATTR{idVendor}=="XXXX", ATTR{idProduct}="YYYY", MODE="0666", GROUP="plugdev", OWNER="YOUR_USER_NAME"
$ sudo chmod a+x /etc/udev/rules.d/52-android.rules

参考: http://o-san.blogspot.jp/2012/09/nexus-7ubuntuadb.html

  Unsupported major.minor version 52.0 のようなエラーが発生する

以下のようなエラーが発生する場合...

 Errors occurred during the build.
 Errors running builder 'Android Package Builder' on project 'com.example'.
 com/android/dx/command/dexer/Main : Unsupported major.minor version 52.0

次の措置が考えられる.

1. Project Properties -> Java Compiler から Compiler Compliance Level を 新しくする (1.7 など)

2. Project Properties -> Android から Android Build Target を新しくする

3. Eclipseの場合は,eclipse.ini の -vm オプションでJDKを明示する.

 -vm
 /usr/lib/jvm/java-8-jdk/bin/java

例えば,"Unsupported major.minor version 52.0" ならば,JDK 8以上にすると動くらしい.

  Error:Execution failed for task ':app:processReleaseResources'.

以下のようなエラーが発生する場合は、pacman で lib32-libstdc++5 と lib32-zlib をインストールする。
ただし、/etc/pacman.conf にて、multilib リポジトリの有効化が必要。

 Error:Execution failed for task ':app:processReleaseResources'.
 > A problem occurred starting process 'command '/home/xxxx/Android/Sdk/build-tools/23.0.3/aapt''

  glxinfo: コマンドが見つかりません

以下のようなエラーが発生する場合は、pacman で mesa-demos をインストールする。

 glxinfo: コマンドが見つかりません

参照: https://bbs.archlinux.org/viewtopic.php?id=41427

  libGL error: unable to load driver: xxxx_dri.so


libGL error: unable to load driver: i965_dri.so のようなエラーが表示され
Androidの仮想マシンを起動できないときは、Android SDKに含まれる libstdc++のバージョン違いが原因。

とりあえずの解決方法:

 $ cd ~/Android/Sdk/tools/lib64/libstdc++/
 $ mv libstdc++.so.6 libstdc++.so.6.bak
 $ ln -s /usr/lib64/libstdc++.so.6

参照: https://github.com/ValveSoftware/steam-runtime/issues/53

Arduino

  Arduino - スケッチコンパイル時のエラー

http://forum.arduino.cc/index.php?topic=199620.0

 /usr/share/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.3.2/../../../avr/bin/ld: cannot find -lm

Wine

 Picasa3 on Arch Linux (x64)

Arch Linux(64ビット版)上でWineを用いてPicasa3.9を動作させる手順

 $ sudo pacman -Syu wine winetricks wine-mono wine_gecko lib32-libxml2
 $ env WINEARCH=win32 WINEPREFIX=~/win32 winetricks ie8
 $ wget http://dl.google.com/picasa/picasa39-setup.exe
 $ env WINEARCH=win32 WINEPREFIX=~/win32 wine picasa39-setup.exe

Kinect

 KinectがWebカメラとして認識できない

Linux Kernel 4.xでは以下のパスにKinect用のドライバモジュールが存在する.

   /lib/modules/x.x.x.x-ARCH/kernel/drivers/media/usb/gspca/gspca_kinect.ko.gz

以下のようにlsmodを実行して結果が表示されない場合は,モジュールが読み込まれていない可能性がある.

   $ lsmod | grep gspca_kinect

以下のように動的にモジュールを読み込んで,Webカメラとして認識できるか試す.

   $ sudo modprobe gspca_kinect




スポンサード リンク



メニュー


未整理

Linux

プログラミングx

Android

サービス

製品

執筆中


筆者のサイト


スポンサード リンク