2013年12月29日日曜日

Sony Xperia AがUbuntu 12.04で認識されない件

最近スマフォに変えた。Ubuntu 13.10にUSBでつないでみるとすぐ認識して
テザリングできるのだが、Ubuntu 12.04につないだ時はそもそも認識しない。
dmsgでみてもおかしいのでなにかいじらないといけないのはたしかなので
その理由を追求する記事。
更に
#adb -d shell
としても
error: insufficient permissions for device
となる。SDKでデバッグできないので非常にこまる。
 

この現象だがネットで調べるといろいろひっかかるので手当たりしだいにやってみた。
1.
Xperiaの設定がおかしいのでは?という話がある
具体的には、
設定ー>Xperiaー>USB接続設定ー>USB接続モード
のことなのだが、MTP,MSCどちらに切り替えてもダメなので今回は違う。

 
2.
次にMTP接続用のリポジトリを入れろっていうのがある
http://jaisejames.wordpress.com/2013/02/06/connectmount-android-mobile-phone-internal-storage-in-linux/
抜粋すると
$sudo add-apt-repository ppa:langdalepl/gvfs-mtp
$sudo apt-get update
$sudo apt-get upgrade(もしくはsudo apt-get dist-upgrade)
これをやってもXperia Aは認識しないのでこれも違う
さらに
$sudo update-pciids
$sudo update-usbids
をやってもだめ 
 
3.
次にudevの設定をいじれってのがある
https://groups.google.com/forum/#!topic/android-discuss/-Fp5VkTmW1k
抜粋すると
$sudo vi  /etc/udev/rules.d/51-android.rules
中身は 
SUBSYSTEM=="usb", SYSFS{idVendor}=="04e8", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
こうなっているので同じく最後に
SUBSYSTEM=="usb", SYSFS{idVendor}=="0fce", MODE="0666"
を追加(※)
このあと再起動すると
Nautilusからはまだ見えないがadb -d shellでは見えるようになる
よってこれが半分正解だった。
 
※0fceはベンダーIDのこと 
$lsusb を実行すると
Bus 002 Device 019: ID 0fce:5198 Sony Ericsson Mobile Communications AB 
のような表示がずらずらUSBデバイス分並ぶ。この
0fce:5198
の前半0fceがVendorID(なお後半の5198はプロダクトID)
 
追記
なぜか最近起動時のログを見ていると51-android.rulesが文法エラーですと言われている
のに気づいた。
http://thjap.org/android/xperia-series/152.html?PageSpeed=noscript
とかみると
# xperia x10
SUBSYSTEM=="usb", ATTR{0fce}=="612e", MODE="0666", GROUP="plugdev"
こう書くのが正しいらしい。 
書きなおすととまった。
 




 
4.
さらにudevの設定をいじれってのがある
http://forum.xda-developers.com/showthread.php?t=1574551
抜粋すると
$ sudo gedit /etc/udev/rules.d/69-libmtp.rules
私の場合ファイルがなく新規だった。
ATTR{idVendor}=="0fce", ATTR{idProduct}=="5198", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1"
を記入 (0fce と5198は3※を参照)
これで再起動するとnautilusでもやっと認識される

というわけでudevの設定をいじるだけでもいいのかもだが一応上このようにした。
 

2013年7月21日日曜日

ubuntu にseamonkeyをいれた。

seamonkeyが使いたくなったのでubuntu 13.04に入れてみた。
入れようとした人はすぐわかるが、これ、リポジトリにない。
だからリポジトリの追加からしないといけない。
いろいろなやり方があるけど今回は端末で行った。
端末が嫌いな人は勘弁してください。

ふつうこのたぐいのリポジトリ追加はPPAから行う。
よくあるppa:〜から入れてくださいとか書いてあるやつ。
でPPAからseamonkeyを探す必要があるわけだけど、それには
Y PPA Managerが使える。
使い方は
http://qiita.com/tukiyo@github/items/eb2ff48d86ed7769a8f1
これとか参照

だがここから探しても ubuntu 13.04に入れられるseamonkeyはないらしい
ってことがわかる。

そこで次の手だが
http://www.ubuntuupdates.org/ppas
ここをチェックするとubuntuzillaってのがあるのがわかる
http://www.ubuntuupdates.org/ppa/ubuntuzilla
これを使う。

インストールには
端末から
sudo apt-key adv --recv-keys --keyserver keyserver.ubuntu.com C1289A29
のあと
echo -e "\ndeb http://downloads.sourceforge.net/project/ubuntuzilla/mozilla/apt all main" \
| sudo tee -a /etc/apt/sources.list > /dev/null 
でもいいが sources.listをあまり汚したくない人は
echo -e "deb http://downloads.sourceforge.net/project/ubuntuzilla/mozilla/apt all main" \
| sudo tee -a /etc/apt/sources.list.d/ubuntuzilla.list > /dev/null 
のほうがいいかも
でこのあと
sudo apt-get update
sudo apt-get install seamonkey-mozilla-build
これでseamonkey2.19が入った。
現在そこからブログ書き込み中
 
同期すると分かるがブックマークとかfirefoxと共有らしい 

2013年6月16日日曜日

自宅サーバーについて

今はレンタルサーバーとかOSごとレンタルとかサーバーを手に入れる手段はいろいろ
あるわけだけど、今でも私は自宅マシンを公開している。
こんなことをしている人は今の世の中どうなんだろうか?
自作マシン厨とかと同じように絶滅する方向なんだろうか?

そのへんで本題
自宅マシンをネット公開して外部アクセスできるようにする場合
どうしても
①自宅マシンにグローバルIPをつける
②ルーターにアクセスしたとき自宅マシンへ振り分けるようにする
のどちらかが必要だ
この内
①の自マシンにグローバルIPをつける
 ってのはほとんどの場合業者からくれた端末を直接マシンにルータなしてつけるとできるわけだ
  があまり汎用性ないので今回はパス
  この場合回線は
     インターネット─業者端末(ルーター機能なし)─自宅マシン
     これやると自宅でPC1台しか使えなくなるしね
     というか今時ほとんどの家庭はWIFIじゃないのか?
     光とかだと有線なのにパスワードがいるとかわけわからん事にもなるし

②のときの配線は普通こうなる
     インターネット─業者端末(ルーター機能あり)─自宅マシン
     インターネット─業者端末(ルーター機能なし)─(ルーター)─自宅マシン
のどちらか
    このどちらでもいいがPCについているルーターのIPががグローバルIPなら
    ルータの設定をいじってPCをインターネットに公開できる
    
    で、そのルータのIPを知るには
    http://www.cman.jp/network/support/go_access.cgi
    こことかで得られる自マシンのグローバルIPが多くの場合それ
    このIPは自マシンに至る経路のどこかの装置のIPのはず。
    で、その装置でグローバルIPをローカルIPに切り替えている
    ってことだからつまりルータのIPとなる
    違う場合はそのIPはもっと上にあるルータのIPってことで、この場合は
    そのルータの設定をいじるだけではインターネットに公開できない
    確認するには pingするのが一番手っ取り早い。
    線をひっこぬいて(ルータの電源OFFで)pingして通らなければ
    確認終了
    あるいはそのIPをブラウザを入力して設定画面が開くとか
    

次にルータの設定をいじるわけだが
    これほとんどのルータでブラウザに今のルータのIPを入力すれば
    設定画面を開くのでそこでする(たぶんルーターのマニュアルに書いている)
    あるいはipconfig ifcinfigでLAN側のIPを調べて(ゲートウェイとかのやつ)同じく
    入力してひらく


つぎに公開する設定の仕方だがこれは大きくわけて2種類ある
    A.DMZにマシンを指定
    B.ポートマッピング(ポート変換)にマシンのポートを指定

    のどちらか
    Aだと全ポート公開となるが、B.だと特定のポートだけ公開できる
    私の場合自マシンのsshだけ公開したかったのでBを使った。
    具体的なやりかたはルーターの取り説を読むかポートマッピング
    の設定項目をじっと見てると分かる


これでとりあえずOKなんだが、これだと外部からアクセスするときいちいち
    IPを指定しないといけない(つまりIPを前もって覚えておかないといけない)
    というわずらわしさがある。 
    このためDNSに登録してIPをURLに変換しておく。
    それを行うのがダイナミックDNSといわれるもの
    いくつもあるが
    http://ieserver.net/
    今はこれをつかっている
    これのいいのはIPを登録するスクリプトがあること(http://ieserver.net/tools.html
    このスクリプトを起動するたび動くようにすれば起動するたびIPが自動で登録
    されるので安心。

    なわけでIPは変わっても同じURLでアクセスできるのでちょっとやりやすい

    こんな感じです。

    
                  

2013年5月2日木曜日

ubuntuでshellからgmailを出せるようにした

まずさわりとしてubuntu 13.04について
4月の終わり(4月28日)に決心して12.10から早速アップグレードしてみた。
結果は成功! 現在そのマシンで書いている。安定していていい感じです。
気づいたことは
1.google chrome stableがインストールできない。(unstableはインストールできる)
2,indicator-weatherがない。
ぐらい。
あとgtk-sunlightが動かないことに13.04にして初めて気づいた。
(12.10の時は入れっぱなしで気づかなかった)
さらにgetdebがまだ13.04対応してない。
以上

で本題
たまにはLINUXらしいネタを真面目に書いてみる
それにはlinuxでメールを出せるようにするのがいいだろう。
が、自前マシンにDNSに登録とかをしたくないのでメールのサーバーはgmailにした。
つまり
”自宅のUbuntuから端末でgmailアドレスのメールを出せるようにした。”
ということだ。
やりかたは http://www.icoro.com/200908243988.html
を参考にした。
$ sudo apt-get install sasl2-bin postfix
postfixのインストールでいろいろ聞かれるがデフォルトで通してください。
$ sudo vi /etc/postfix/sasl_passwd
 [smtp.gmail.com]:587 (ユーザー名)@gmail.com:パスワード
$ sudo chown root:root /etc/postfix/sasl_passwd
$ sudo chmod 600 /etc/postfix/sasl_passwd
$ sudo postmap /etc/postfix/sasl_passwd

$ sudo cp /etc/postfix/main.cf /etc/postfix/main.cf.bak
$ sudo vi /etc/postfix/main.cf
(以下の設定を追加)
relayhost = [smtp.gmail.com]:587
#sasl setting
smtp_sasl_auth_enable = yes
smtp_sasl_password_maps = hash:/etc/postfix/sasl_passwd
smtp_sasl_security_options = noanonymous
smtp_sasl_tls_security_options = noanonymous
smtp_sasl_mechanism_filter = plain
#tls setting
smtp_use_tls = yes
//ここまで
$sudo vi /etc/default/saslauthd 
で START=yes に変更
$ sudo /etc/init.d/postfix restart

これでメールが使えるはずですので

$ mail aaa@bbb
とかでメールできます

2013年3月24日日曜日

乱数をつかってみる



唐突だが私のマシンの起動時のログをdmesgでみるとこんなログが出てる
intel_rng: Firmware space is locked read-only. If you can't or
intel_rng: don't want to disable this in firmware setup, and if
intel_rng: you are certain that your system has a functional
intel_rng: RNG, try using the 'no_fwh_detect' option.
このintel_rngというのは乱数を作る装置らしい。

そこでこれについて調べると
起動時のカーネルのパラメータに
 intel_rng.no_fwh_detect=1
を入れるといいらしい。ってことがすぐ分かった
http://forum.tinycorelinux.net/index.php?topic=12575.0

実際に入れて再起動するとと上記メッセージが
Intel 82802 RNG detected
に変わるのがわかる。
またlsmodでモジュールを見ると
intel_rng
がロードされているのがわかり
デバイス/dev/hwrng ができているのが分かる。

そこで/dev/hwrngの使い道だが
rng-tools
をインストールしてカーネルの疑似乱数とリンクさせて使うらしい

さっそくインストール
sudo apt-get install rng-tools
がインストールするだけでは動かなかった(rngdの起動に失敗する)
Starting Hardware RNG entropy gatherer daemon: fail.
となる。

そこで設定を見直す
sudo vi /etc/default/rng-tools
で設定を見ると
# Configuration for the rng-tools initscript
# $Id: rng-tools.default,v 1.1.2.5 2008-06-10 19:51:37 hmh Exp $

# This is a POSIX shell fragment

# Set to the input source for random data, leave undefined
# for the initscript to attempt auto-detection.  Set to /dev/null
# for the viapadlock and tpm drivers.
#HRNGDEVICE=/dev/hwrng
#HRNGDEVICE=/dev/null

# Additional options to send to rngd. See the rngd(8) manpage for
# more information.  Do not specify -r/--rng-device here, use
# HRNGDEVICE for that instead.
#RNGDOPTIONS="--hrng=intelfwh --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=viakernel --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=viapadlock --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=tpm --fill-watermark=90% --feed-interval=1"
となっているのが分かる。

最初の選択肢
#HRNGDEVICE=/dev/hwrng
#HRNGDEVICE=/dev/null
は/dev/hwrng に決まっているからいいとして二個目の選択肢
#RNGDOPTIONS="--hrng=intelfwh --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=viakernel --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=viapadlock --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=tpm --fill-watermark=90% --feed-interval=1"
はtpmを使うことにする
なぜか?このマシンはTPMがあるのを知っているからだ。

このマシンのdmesgを見ると
tpm_tis 00:0b: 1.2 TPM (device-id 0x1002, rev-id 2)
というログがある。これがTPMのモジュールだ
(TPMについてはWikipediaとか見てください)
この使い道だが
tpm-tools
をインストールするといいらしい。

さっそくインストール
sudo apt-get install tpm-tools
詳しい設定のしかたはこことか参照
http://www.grounation.org/index.php?post/2008/07/04/8-how-to-use-a-tpm-with-linux
手順としては
BIOSの設定
そのあと
sudo tpm_createek
sudo tpm_takeownership
でうまくいった。
うまくできたかどうかは
sudo tpm_getpubek
で鍵を表示するかどうかですぐに分かる

であらためてintel-rngの話にもどると
設定ファイルを
# Configuration for the rng-tools initscript
# $Id: rng-tools.default,v 1.1.2.5 2008-06-10 19:51:37 hmh Exp $

# This is a POSIX shell fragment

# Set to the input source for random data, leave undefined
# for the initscript to attempt auto-detection.  Set to /dev/null
# for the viapadlock and tpm drivers.
HRNGDEVICE=/dev/hwrng
#HRNGDEVICE=/dev/null

# Additional options to send to rngd. See the rngd(8) manpage for
# more information.  Do not specify -r/--rng-device here, use
# HRNGDEVICE for that instead.
#RNGDOPTIONS="--hrng=intelfwh --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=viakernel --fill-watermark=90% --feed-interval=1"
#RNGDOPTIONS="--hrng=viapadlock --fill-watermark=90% --feed-interval=1"
RNGDOPTIONS="--hrng=tpm --fill-watermark=90% --feed-interval=1"
と書き換えて
デーモン起動
sudo /etc/init.d/rng-tools start
こんどはあっさり成功します
Starting Hardware RNG entropy gatherer daemon: rngd.
でrngdが起動します。

これでマシンが疑似乱数から真の乱数(TRNG)に変わったのでとりあえずエントロピーをチェック
cat /proc/sys/kernel/random/entropy_avail
3190
妥当な数値では?
http://backslash.ddo.jp/wordpress/archives/620
http://field-notes.hatenablog.jp/entry/20101218/1292644497

2013年3月19日火曜日

OpenSUSE 12.2 を12.3 にアップグレード

OpenSUSE 12.2 を12.3 にアップグレードした。
なんかMySQLとかやめてすげーよくなったといううわさが流れているからだ。

以下はそのやり方
情報元はこれ
http://opensuse-man-ja.berlios.de/opensuse-html/cha.update.html
YaSTを使う方法とzypperを使う方法と2種類あるようだが、
今回はzypperを使うやり方でやった。CUIの方が失敗しないと思うからだ
結局一晩かかった。

  まず
    zypper dup
  で現状を最新にした

①リポジトリの更新
  まず以下のコマンドで現状の確認
    zypper lr -u
  次に2個リポジトリ追加
    server=http://download.opensuse.org
    new_ver=12.3
    zypper ar $server/distribution/$new_ver/repo/oss/ openSUSE-$new_ver-Oss
    zypper ar $server/update/$new_ver/ openSUSE-$new_ver-Update
  旧リポジトリ削除
    old_ver=12.2
    zypper rr openSUSE-$old_ver-Oss
    zypper rr openSUSE-$old_ver-Update
  以下
    zypper lr -uで状況を見ながら同様にして全て更新
  最後に
    zypper lr -d で確認

②サーバーアクセスしてリポジトリ内容更新
    zypper ref
  うまくいくのを確認。うまくいかないのはURLをチェック、ダメなのは削除

③zipper自身の更新
    zypper up zypper
  私の場合このとき選択肢がでた
     1、ダウングレードして更新を選ぶ とできた

④アップグレード
    zypper dup
  このときライセンス確認が出る yesを選んだ

⑤再起動
    shutdown -r now


2013年3月5日火曜日

Ubuntu用LibreOffice4.0が来てた

LibreOfiice4.0がUbuntuのPPAに来てたので入れてみた。
情報元はこれ
http://www.webupd8.org/2013/03/install-libreoffice-40-in-ubuntu-1204.html

入れ方は書いてあるとおり
sudo add-apt-repository ppa:libreoffice/ppa
sudo apt-get update
sudo apt-get dist-upgrade
でうまく行きました 

あと日本語拡張も入れときました
http://sourceforge.jp/projects/openoffice-docj/
から 
DefaultSettingsForJapanese.oxt 
を入手してクリックするだけ
いい感じで動いてます。 

2013年3月3日日曜日

ubuntuでnvidiaを使うとflashが落ちたり色がおかしくなる件について

ubuntu 12.04以降でnvidiaのプロプライエタリなドライバーを使って動画(youtube)を再生すると色が青に変わるという謎バグがずっとこのマシンにあった。

このバグ
sudo mkdir /etc/adobe
echo -e "EnableLinuxHWVideoDecode=1\nOverrideGPUValidation=true" | sudo tee /etc/adobe/mms.cfg > /dev/null
 
で解決するのだがそのかわり今度は動画再生で落ちやすくなっていた。
 
そこで前回の改修を見直しmms.cfgから 
EnableLinuxHWVideoDecode=1を削除、ドライバーを
https://launchpad.net/~ubuntu-x-swat/+archive/x-updates
に変えてみたところ落ちにくくなったので とりあえずこれで行きます 
 

2013年2月28日木曜日

Arch LinuxをVirtualBoxにインストールしてみた。

Arch Linux(64 bit)をVirtualBoxの仮想HDDにインストールしてみた。
手間取るかとおもったが一発でうまくいった。
我ながらLinuxになれてきたとかんがえたらいいのか?
以下はその手順。

インストールガイドでやってもいいのだと思うが
ビギナーズガイドでうまくいきました
VirtualBox guest additionのドライバもうまく入ったよ。
情報元は以下の4か所
https://wiki.archlinux.org/index.php/Beginners%27_Guide
https://wiki.archlinux.org/index.php/VirtualBox#Install_the_Guest_Additions
https://wiki.archlinux.org/index.php/GNOME
https://wiki.archlinux.org/index.php/GDM

手順をざっくり書きます
①ブートCDを用意します
http://ftp.jaist.ac.jp/pub/Linux/ArchLinux/iso/2013.02.01/archlinux-2013.02.01-dual.iso
たとえばこれです
https://www.archlinux.org/download/
ここにあります

②仮想マシンを用意
   私は常に80G用意しているので今回もそれ
   メモリは5Gにした
   CPUは2コア
   UTCはON

③仮想マシンを①のCDから起動
  
④まずshellが起動するので
# loadkeys jp106
で日本語キーボードにする

⑤ネットがつながるのをpingで確認

⑥仮想ディスクのパーティションを切る
  1G SWAP (/dev/sda1)
  残り EXT4 (/dev/sda2)とした。
              /dev/sda2 はブートフラグ付き

⑦HDDをマウント
# mount /dev/sda2 /mnt
# mkdir /mnt/home 


⑧pacmanのミラーリスト(/etc/pacman.d/mirrorlist)を編集
日本を先頭に持ってくる
# pacman -Syy
が動作するのを確認

# pacstrap -i /mnt base base-devel
# pacman-key --init && pacman-key --populate archlinux 
# genfstab -U -p /mnt >> /mnt/etc/fstab
# nano /mnt/etc/fstab
       で問題ないのを確認
# arch-chroot /mnt
# nano /etc/locale.gen
  ここで
  en_US.UTF-8 UTF-8
  ja_JP.UTF-8 UTF-8 
       だけ先頭の#をとる
# locale-gen
# echo LANG=ja_JP.UTF-8 > /etc/locale.conf 
# export LANG=ja_JP.UTF-8
# loadkeys jp106
# setfont Lat2-Terminus16 
# nano /etc/vconsole.conf
  で以下の記述 
  KEYMAP=jp106
  FONT=Lat2-Terminus16 
# pacman -S ttf-sazanami 
# ln -s /usr/share/zoneinfo/Japan /etc/localtime 
# hwclock --systohc --utc
# echo myhostname > /etc/hostname 
# systemctl enable dhcpd.service
# systemctl start dhcpcd
# pacman -S ifplugd
# mkinitcpio -p linux
# passwd
# useradd -m -g users -G wheel -s /bin/bash ログイン名
# passwd ログイン名
# pacman -S grub-bios
# grub-install --target=i386-pc --recheck /dev/sda
# cp /usr/share/locale/en@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo
# grub-mkconfig -o /boot/grub/grub.cfg
# exit
# umount /mnt
# reboot
Rebootと書いてあるが実際はCDを取り外して(③のisoをvirtualboxから外して)再起動
うまくいけばログインコンソールが出るはず。 
ログインできるのを確認
 rootでログインかsuでrootになった後で
# pacman -S xorg-server xorg-xinit xorg-server-utils
# pacman -S mesa
# pacman -S virtualbox-guest-utils
# modprobe -a vboxguest vboxsf vboxvideo
# nano /etc/modules-load.d/virtualbox.conf で
  vboxguest
  vboxsf
  vboxvideo  
     を記述 
ここで再起動してlsmodで今書いた 
vboxguest vboxsf vboxvideo
がモジュールにあるのを確認
 
# pacman -S xorg-twm xorg-xclock xterm
ここでrootから普段使用するアカウントに変える。
$ rm ~/.xinitrc
$ startx
 見事Xが立ちあがって xterm xclock がでればOK 

ここからはxtermの作業 
# pacman -S gnome
# pacman -S gnome-extra
# pacman -S gdm
# systemctl enable gdm.service 
ここで再起動すればgdmが自動起動して
GUIでログインできるはず
そしてgnomeが立ち上がるはずです.
 

パーティション分けとネット接続で手間取るかも知れないがあとは簡単です
今回思ったのはUEFI対策がこまごまと書いてあって超ウザいこと
Windows8ではやるべきでないな。