2017/10/11

paplayでHugo2から音が出ない

pulseaudioの設定に悩みました。

$ paplay a.wav
としてもHugo2から音が出ませんでした。

$ paplay -d alsa_output.usb-Chord_Electronics_Ltd_Hugo2_413-001-01-Hugo2.analog-stereo a.wav
とすると音が出ます。

$ pulseaudio --start
$ pacmd list-sinks|less
とすると、Hugo2はindex 0になっていますが、出力先はindex 1になっており、paplayで再生している間PCのイヤフォンジャックから音が出ていました。

$ pacmd set-default-sink 0
で出力先をindex 0にしたところ、
$ paplay a.wav
で音が出るようになりました。

システムデフォルトでHugo2にしたかったので、/etc/pulse/default.paに下記を追加しました。
$ tail -n1 /etc/pulse/default.pa
set-default-sink 0

2017/03/16

Plamo LinuxでTime Capsuleの共有フォルダをautomountする

Plamo LinuxでNASとしても使用しているApple Time Capsuleの共有フォルダを使用時にautomountするため、/etc/auto.miscに設定を記述し、/etc/rc.d/init.d/autofsに実行権限を与えました。

ここではTimeCapsuleにUSB接続し、HD-WL4TU3という共有フォルダ名にしているディスクをマウントしています。

$ sudo vi /etc/auto.misc
$ tail -n1 /etc/auto.misc
HD-WL4TU3       -fstype=cifs,credentials=/etc/tcpassword,sec=ntlm,iocharset=utf8      ://Time Capsuleのアドレス/HD-WL4TU3
$ sudo vi /etc/tcpassword
$ sudo chmod 600 /etc/tcpassword
$ sudo cat /etc/tcpassword 
username=ユーザ名
password=パスワード
$ sudo chmod +x /etc/rc.d/init.d/autofs 
$ sudo /etc/rc.d/init.d/autofs start

「credentials=/etc/tcpassword」を指定することで、共有フォルダにアクセスするためのユーザ名とパスワードを別ファイル(/etc/tcpassword)に分けています。

「sec=ntlm」で認証方式を指定しています。
mountコマンドで確認したところ、この指定が無いとマウント出来ませんでした。

$ sudo -s
# mount -t cifs -o credentials=/etc/tcpassword,iocharset=utf8 //Time Capsuleのアドレス/HD-WL4TU3 /mnt/tmp
mount error(13): Permission denied
Refer to the mount.cifs(8) manual page (e.g. man mount.cifs)
# mount -t cifs -o credentials=/etc/tcpassword,sec=ntlm,iocharset=utf8 //Time Capsuleのアドレス/HD-WL4TU3 /mnt/tmp
# df -h
ファイルシス              サイズ  使用  残り 使用% マウント位置
/dev/root                    57G   31G   27G   54% /
devtmpfs                    1.9G  444K  1.9G    1% /dev
/media                      1.9G     0  1.9G    0% /media
/tmp                        1.9G   12K  1.9G    1% /tmp
/dev/mmcblk0p3               93M   37M   49M   44% /boot
//Time Capsuleのアドレス/HD-WL4TU3   1.9T  935G  929G   51% /mnt/tmp

2017/03/06

aplay実行時のエラー

Plamo LinuxをインストールしているNUCは、/etc/modprobe.d/alsa-base.confに以下の記述をしています。
$ cat /etc/modprobe.d/alsa-base.conf
options snd slots=snd_usb_audio,snd_hda_intel
options snd_usb_audio index=0
options snd_hda_intel index=1

その結果、/proc/asound/modulesは以下のようになっています。
$ cat /proc/asound/cards
 0 [Mojo           ]: USB-Audio - Mojo
                      Chord Electronics Ltd Mojo at usb-0000:00:14.0-2, high speed
 1 [PCH            ]: HDA-Intel - HDA Intel PCH
                      HDA Intel PCH at 0x81414000 irq 119

ところが、aplayでWAVファイルを再生するとMojoではなく内蔵イヤホン端子から音が出てしまうので、~/.asoundrcに以下のような記述をしました。
$ cat .asoundrc 
pcm.!default {
  type hw
  card 0
}

ctl.!default {
  type hw
  card 0
}

この状態でaplayを実行すると以下のエラーになります。
$ aplay a.wav 
再生中 WAVE 'a.wav' : Signed 16 bit Little Endian, レート 44100 Hz, ステレオ
aplay: set_params:1297: サンプルフォーマットが使用不可能
Available formats:
- S32_LE

~/.asoundrcを以下のように記述したところ、aplayで問題無くMojoから音が出ました。
$ cat .asoundrc 
# pcm.!default {
#   type hw
#   card 0
# }
# 
# ctl.!default {
#   type hw
#   card 0
# }
pcm.!default { type plug slave { pcm "hw:0,0" } } ctl.!default { type hw card 0 }

すべてのユーザで設定が反映されるように、/etc/asound.confを以下のように修正しました。
$ cat /etc/asound.conf 
pcm.pulse {
  type pulse
}

ctl.pulse {
  type pulse
}

# pcm.!default {
#   type pulse
# }
# 
# ctl.!default {
#   type pulse
# }
pcm.!default { type plug slave { pcm "hw:0,0" } } ctl.!default { type hw card 0 }

2017/02/27

64bit Plamo LinuxでMultiwriter 5750Cを使用しAirPrintサーバにする

64bit Plamo LinuxでMultiwriter 5750Cを使用しAirPrintサーバにした際のメモです。
記憶を頼りに記述しています。

・Multiwriter 5750C用ドライバをインストール

 下記の場所からプリンタドライバ (RPMパッケージ)をダウンロードします。
http://jpn.nec.com/printer/laser/support/os/linux/download/mw5750c.html

$ wget http://jpn.nec.com/printer/laser/support/os/linux/download/data/xrc-driver/mw5750c/NEC-MultiWriter_5750C-1.0-1.i386.rpm
$ mkdir tmp
$ cd tmp
$ sudo -s
# rpm2tgz ../NEC-MultiWriter_5750C-1.0-1.i386.rpm 
# tar xzvf NEC-MultiWriter_5750C-1.0-1.i386.tgz 
# cd NEC-MultiWriter_5750C-1.0-1.i386
# makepkg nec_multiwriter_5750c-1.0.1-x86_64-P1.txz 
# installpkg nec_multiwriter_5750c-1.0.1-x86_64-P1.txz 
# exit 


・Plamo LinuxのFTPサーバの下記の場所で公開されているprint32-compatをインストール

ftp://plamo.linet.gr.jp/pub/Plamo-test/for-6.x/x86_64/print32-comp
$ sudo installpkg cups_compat32-2.0.0-x86_64-P1.txz
$ sudo installpkg cups_filters_compat32-1.0.61-x86_64-P1.txz
$ sudo installpkg print_compat_lib32-6.1-x86_64-P1.txz

/etc/ld.so.confに/usr/heimdal/libを追加します。
$ sudo vi /etc/ld.so.conf
$ tail -n1 /etc/ld.so.conf
/usr/heimdal/lib
$ sudo ldconfig

このままだとhttp://localhost:631/admin等にアクセスした際にサーバー内部エラーになってしまうので、下記からcupsを再度取得してインストールしました。
ftp://plamo.linet.gr.jp/pub/Plamo-6.x/x86_64/plamo/04_xapps/print.txz/cups-2.0.0-x86_64-P1.txz

$ sudo updatepkg -f cups-2.0.0-x86_64-P1.txz


・32bitパッケージからcompat32パッケージを作成し、インストールする

依存関係を満たすため、下記のパッケージを作成してインストールしました。
bzip2_compat32-1.0.6-x86_64-P4.txz
libjpeg_turbo_compat32-1.5.0-x86_64-P2.txz
libpng_compat32-1.6.28-x86_64-P3.txz    
pcre_compat32-8.39-x86_64-P1.txz
qpdf_compat32-4.0.1-x86_64-P1.txz
tiff_compat32-4.0.6-x86_64-P3.txz
xz_compat32-5.2.2-x86_64-P2.txz

例えばlibpng_compat32-1.6.28-x86_64-P3.txzは下記の手順で作成しました。
$ wget ftp://plamo.linet.gr.jp/pub/Plamo-6.x/x86/plamo/02_x11/libpng-1.6.28-i686-P3.txz
$ mkdir tmp
$ cd tmp
$ sudo -s
# tar xJvf ../libpng-1.6.28-i686-P3.txz
# mkdir usr/bin/32
# cd usr/bin
# mv libpng14-config libpng16-config png-fix-itxt pngfix 32/
# cd ../../

install/doinst.shを編集し、usr/binをusr/bin/32に変更します。
# vi install/doinst.sh

libpng_compat32-1.6.28-x86_64-P3.txzを作成し、インストールします。
# makepkg libpng_compat32-1.6.28-x86_64-P3.txz
# installpkg libpng_compat32-1.6.28-x86_64-P3.txz
# exit


・cupsの設定

/etc/cups/cupsd.confの下記の点を修正します。

(1) Listen localhost:631をListen 631に変更


(2) <Location />、<Location /admin>、<Location /admin/conf>を下記のように変更
(ローカルネットワークが192.168.1.0/24の場合)

<Location />
  Order allow,deny
  Allow localhost
  Allow 192.168.1.0/24
</Location>

<Location /admin>
  Encryption Required
  Order allow,deny
  Allow localhost
  Allow 192.168.1.0/24
</Location>

<Location /admin/conf>
  AuthType Basic
  Require user @SYSTEM
  Order allow,deny
  Allow localhost
  Allow 192.168.1.0/24
</Location>

(3) cupsを再起動する

$ sudo /etc/rc.d/init.d/cups restart


・プリンタを追加する

http://IPアドレス:631/adminにアクセスし、プリンタ(Multiwriter 5750C)を追加します。
その際、「このシステムに接続されているプリンターを共有」と「インターネットからの印刷を許可」をチェックします。


・AirPrintサーバにする

/etc/rc.d/rc.localに下記の記述を追加します。
# Start avahi.
if [ -x /etc/rc.d/rc.avahidaemon ]; then
    echo "start avahi daemon"
    /etc/rc.d/rc.avahidaemon start
fi
$ sudo vi /etc/rc.d/rc.local
$ tail -n5 /etc/rc.d/rc.local
# Start avahi.
if [ -x /etc/rc.d/rc.avahidaemon ]; then
    echo "start avahi daemon"
    /etc/rc.d/rc.avahidaemon start
fi

airprint-generate.pyをダウンロードして実行し、作成されたAirPrint-NEC_MultiWriter_5750C.serviceを/etc/avahi/services/へコピーします。
その後、rc.avahidaemonを起動します。
$ wget https://raw.githubusercontent.com/tjfontaine/airprint-generate/master/airprint-generate.py
$ python airprint-generate.py
$ sudo cp AirPrint-NEC_MultiWriter_5750C.service /etc/avahi/services/
$ sudo /etc/rc.d/rc.avahidaemon start


このままではiOSの印刷プレビューがグレーになってしまいますが、実際に印刷してみるとカラーになります。
AirPrint-NEC_MultiWriter_5750C.serviceに<txt-record>Color=T</txt-record>を追加してrc.avahidaemonをrestartしたところ、iOSの印刷プレビューがカラーになりました。
# cat /etc/avahi/services/AirPrint-NEC_MultiWriter_5750C.service 
<?xml version="1.0" ?><!DOCTYPE service-group  SYSTEM 'avahi-service.dtd'><service-group><name replace-wildcards="yes">AirPrint NEC_MultiWriter_5750C @ %h</name><service><type>_ipp._tcp</type><subtype>_universal._sub._ipp._tcp</subtype><port>631</port><txt-record>txtvers=1</txt-record><txt-record>qtotal=1</txt-record><txt-record>Transparent=T</txt-record><txt-record>URF=none</txt-record><txt-record>rp=printers/NEC_MultiWriter_5750C</txt-record><txt-record>note=NEC MultiWriter 5750C</txt-record><txt-record>product=(GPL Ghostscript)</txt-record><txt-record>printer-state=3</txt-record><txt-record>printer-type=0x8010dc</txt-record><txt-record>Color=T</txt-record><txt-record>pdl=application/octet-stream,application/pdf,application/postscript,application/vnd.cups-raster,image/gif,image/jpeg,image/png,image/tiff,image/urf,text/html,text/plain,application/vnd.adobe-reader-postscript,application/vnd.cups-command</txt-record></service></service-group>

2016/12/26

Linux 4.10.0-rc1でGPD WINのXがintelドライバで起動し画面も回転できた

Linuxカーネル 4.10.0-rc1でGPD WINのLinuxでXがintelドライバで起動し画面も回転できました。

dmesgでエラーが出ていますが、特に問題なく動いているように思います。

[ 1185.682005] [drm:intel_pipe_update_end [i915]] *ERROR* Atomic update failure on pipe B (start=9392 end=9393) time 8 us, min 1272, max 1279, scanline start 1280, end 1281

dmesg
Xorg.0.log