ともの技術メモ

趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • UbuntuにUbuntuからリモートデスクトップ接続する

    投稿日 2014年 12月 15日 コメントはありません

    Ubuntu14.04(32bit)からUbuntu14.04(64bit)にリモートデスクトップ接続してみました。

    1.サーバ側(接続される側)の設定

    ググって調べると、サーバ側はgnomeでは接続できないようです。そこで、LXDEデスクトップ環境を含めた必要なソフトウェアをインストールします。

    Ubuntuソフトウェアセンターで以下のものをインストールします。

    • LXDE(the Lightweight X11 Desktop Environment)
    • xrdp(Remote Desktop Protocol(RDP) server)

    インストールが終わったら、コンソールで以下のように入力して、.xsessionファイルを作成します。

    $ echo lxsession -s LXDE -e LXDE > ~/.xsession
    $ cat .xsession
    lxsession -s LXDE -e LXDE
    $ sudo service xrdp restart
     * Stopping RDP Session manager [ OK ] 
     * Starting Remote Desktop Protocol server [ OK ] 
    $

    デフォルトでは日本語キーボードに対応したキーマップファイルがないので、キーマップファイルを生成する。

    $ cd /etc/xrdp
    $ ls
    km-0407.ini km-040c.ini km-0419.ini rsakeys.ini startwm.sh
    km-0409.ini km-0410.ini km-041d.ini sesman.ini xrdp.ini
    $ sudo xrdp-genkeymap km-0411.ini
    $ ls
    km-0407.ini km-040c.ini km-0411.ini km-041d.ini sesman.ini xrdp.ini
    km-0409.ini km-0410.ini km-0419.ini rsakeys.ini startwm.sh
    $

    2.クライアント側(接続する側=キーボード・ディスプレイを操作する側)の設定

    Dashで「Remina」を検索し、リモートデスクトップクライアントであるReminaを起動する。

    「新規リモートデスクトップ作成」を押して、新しいプロファイルを作成する。

    • 名前は適当に(接続先のホスト名など)つける
    • プロトコルは「RDP」を選択
    • 基本設定のサーバーは接続先のアドレスだが、avahiが入っていてローカルネットワークなのであれば「ホスト名.local」でOK。たとえば、「hogehoge.local」など。
    • ユーザー名は接続先でのユーザー名を入れる(入れなくてもいけるのかも?)
    • 色数は24bppを選択
    • 高度な設定は特にいじらず。

    「設定画面を開く」アイコンを押して、設定を行う。

    • 「RDP」のタブでキーボードレイアウトに「00000411 – Japanese」を選択する。
      自動のままで「クライアントのキーボードマッピングを使用する」をチェックしてみたが、自動にはならなかった。

    これでプロファイルをダブルクリックすると、接続するのでパスワードを入れてしばらく待つとLXDEでログインできました。

    ・・・・が、いくつか問題が出ました。

    1. 日本語入力ができない。ドキュメント作成する上では致命的かも。
    2. 接続先でもローカルログインすると、DISPLAYの区別がされないみたい。ローカルログインして起動したブラウザがリモート側にウインドウを開いたりしてしまう。

    うーむ、イマイチですね。昔のtwmの頃のほうがリモート接続での扱いは楽だったような気がします。(もっとも、当時に比べるとずっと便利な機能が山ほどありますけどね)


  • Ubuntuを使いやすく設定してみた

    投稿日 2014年 12月 14日 コメントはありません

    Ubuntu10.04から12.04になるときにUnityがデフォルトになった際にLinuxMintを試して以来、ずっとLinuxMintを使ってきたのですが、いろんなツールをインストールしたり、人に説明したりする分には、やはりUbuntuに軍配が上がります。それでUSB-HDDにインストールして試してみたりしていたのですが、それなりに自分なりのノウハウも溜まってきました。そこで、しばらくはUbuntuに戻ってみようかと思います。

    Unityが鬱陶しかったUbuntuですが、ある程度コツを押さえればちゃんと使えます。
    (ちなみに自分は日本語Remix版を使ってます)

    1.検索の際にオンラインを検索しないようにする

    最近のUbuntuが重く感じる最大の理由はDashでの検索時にオンライン検索を行っている待ち時間のようです。そこで、検索時にオンライン検索をしないように設定変更します。
    左側に並んだLauncherのアイコンのの中から歯車とスパナの絵が描かれたアイコンをクリックし、システム設定を開きます。その中の「セキュリティとプライバシー」をクリックし、「検索」の「オンライン結果の検索結果を含める」を「オフ」にします。これでDashのアイコンで何かを入力した時にオンライン検索をしなくなるようなので、軽快になります。

    ※ついでに、プライバシー関係の設定も行ってしまうといいと思います。

    2.システム時計が狂うのを直す

    /etc/default/rcS の中の「UTC=yes」を「UTC=no」に修正

    3.synapticのインストール

    Ubuntuにはsynapticパッケージマネージャがデフォルトではインストールされていませんので、インストールします。
    Dashで「ソフトウェア」と入力し、「ソフトウェアセンター」を探して起動します。
    検索ウインドウにて「synaptic」と入力して、「synapticパッケージマネージャ」を選択してインストールします。

    4.Ubuntu restricted extrasのインストール

    Ubuntuソフトウェアセンターから「Ubuntu restricted extras」を検索してインストール。途中でライセンスに同意するウインドウがソフトウェアセンターの下に表示されるので、時々チェックしながら先に進めます。

    5.いろいろインストール

    DashからSynapticを起動し、いろいろインストールします。
    ・GIMP
    ・clamtk
    ・jhead

    6.Launcherのアイコンを小さくする

    左側に並んだLanucherのアイコンが妙にでかくて素人っぽいのが気に入りません。これは、「システム設定(歯車とスパナの絵が描かれたアイコン)」で「外観」をクリックすると、下の方に「Launcherアイコンのサイズ」という設定がありますので、そこでサイズを変更することができます。自分は32に設定しています。

    ちなみにウインドウメニューがウインドウのタイトルバーに表示されずに気持ち悪いですが、こちらは同じく「外観」の中の「挙動」のタブの中に「ウインドウのメニューを表示」という設定項目があります。

    こんなところでしょうか。あとはChromeとかもインストールしますが、特に難しいことはないので・・・。


  • ESP8266はIoT界のPICマイコンになれるか?

    投稿日 2014年 12月 10日 コメントはありません

    最近、無線LANコントローラチップESP8266が盛り上がってきているように感じます。ESP8266の概要については以前こちらでざっと記事に書いたのでそっちを参照してもらうとして、とにかく面白そうです。

    1. なんと言っても安い。モジュール1個で$5程度。前回の記事の時は500円位だったのが、今では600円になってしまいましたが、それでも安い。
    2. お手軽にUART経由でATコマンドで制御することができる。つまり、Arduinoやその他のマイコンと簡単につながる。
    3. さらにSDKが用意されていて、内蔵CPUのプログラムの開発ができる。GPIOにつないだデバイスを無線LAN経由で外付けチップ無しで制御できる。

    といったところでしょうか。しかも、今日は3のSDKを使ったオリジナルプログラムの作り方についてHackadayで記事になっているのを見つけてしまいました。開発環境はLinuxで必要なソフトウェアはgitにあるようです。しかも、そのセットアップの方法とサンプルプログラムのビルドまでの手順をXtensa用gccツールチェーンのセットアップ方法も含めてビデオで細かく解説してくれています。

    もうここまでくると、もう無線LAN/IoTの世界のPICマイコンになりそうな勢いなんではないかと思ってしまいます。

    技適の問題さえなければすぐにでもポチりたいところなのですがねぇ・・・。


  • Chromium OSを試してみる

    投稿日 2014年 11月 16日 コメントはありません

    余っているUSBメモリ(っていっぱいあるんですけど)があったのと、Chromium OSがUSBメモリから起動できる、という話を見かけたので試してみることにしました。

    こちらのatmarkITの記事を参考にしてやってみます。

    1.p7zipのインストール

    atmarkITの記事によると、デイリービルドされたChromiumOSのイメージがこちらのサイトで公開されているということなのですが、なぜかイメージは7z形式なのです。

    Windows環境であれば7-zipをインストールすればいいのですが、Linux環境なので7zを展開する方法を用意しなければなりません。(まあ、Windowsマシン立ち上げてもいいのだけど、ここはやはりLinuxで、ということで)

    そこで、SourceForge.jpからp7zipをソースコードパッケージをダウンロードしてきてビルド・インストールします。

    余談ですが、SourceForgeの偽ダウンロードリンク(広告)、何とかならないんですかね。
    おそらくリンク先はマルウェアだらけのような気がするんですが。なかには何の説明もなく「ダウンロード」ボタンを模したものもあって、よーく見ないと本物の正しいダウンロードリンクがわからないんですよね。はっきりいって酷すぎです。

    余談はさておき、展開してインストールします。

    $ tar xvfj p7zip_9.20.1_src_all.tar.bz2
    $ cd p7zip_9.20.1
    $ cp makefile.linux_any_cpu_gcc_4.X makefile.linux
    $ make -j 2 all_test 
    $ sudo ./install.sh

    これでインストール完了です。

    2.ChromiumOSのバイナリイメージダウンロード

    こちらの Chromium OS Builds の daily ビルドの中から32bit版のCx86OS-2014mmddhhmmss.img.7zをダウンロードしてきます。

    3.イメージの展開

    ダウンロードしたイメージを展開します。

    $ 7za x Cx86OS-20141115110454.img.7z
    7-Zip (A) [64] 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
    p7zip Version 9.20 (locale=ja_JP.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)
    Processing archive: Cx86OS-20141115110454.img.7z
    Extracting Cx86OS-20141115110454.img
    Everything is Ok
    Size: 2589949952
    Compressed: 313970318
    $

    4.USBメモリへの書き込み

    USBメモリを挿入し、適当な方法(ディスクユーティリティなど)でUSBメモリのデバイスファイル名を調べます。USBメモリをアンマウントした状態で、

    $ sudo dd if=Cx86OS-20141115110454.img of=/dev/sdx bs=16M

    としてUSBメモリにイメージを書き込みます。

    書き込みが完了したところでsyncして、USBメモリを差し直してみました。ディスクユーティリティでみてみると、

    Screenshot

    となっていて、大量にパーティションができていました。
    (ちなみに、いくつかのパーティションが勝手にマウントされてしまうので、抜くにはたくさんアンマウントしなければなりません)

    5.起動してみる

    IdeaPad S10-2に挿入して起動してみます。挿入してUSBブートさせてしばらく(15~20秒くらいか?)待つと、Welcome画面がでてきました。

    言語およびキーボードで日本語を選んだ所まではよかったのですが、残念ながら内蔵の無線LANは認識していないようです。しかたがないのでイーサネット接続します。(2回目の起動の際に、手元にあったBUFFALO WLI-UC-GNMを挿しておいたら認識して暗号化キーをいれてやると使うことができました)

    とりあえず、起動して使うことはできましたが、AtomN270では荷が重いのか、それともUSBメモリがそもそも遅いからなのかわかりませんが、結構もっさりです。LinuxMint17上でChromeで動かした時よりも遅いのはUSBメモリのせいでしょうね。

    ChromiumOSでは本来ローカルディスクは見える必要はないのではないかと思っているのですが、残念ながらローカルディスクが見えてしまうようです。見えなければいつでもどこでも心配なく使えるかと思ったのですが・・・。


  • Linuxが走る小さなボードAriettaG25

    投稿日 2014年 11月 3日 コメントはありません

    HACK A DAYの記事で見かけたのですが、ARM9 400MHzとDDR2-SDRAM 128/256MBが載った小さな小さなボードです。
    公式ページをみると、53mm×25mmとのこと。Raspberry Piの4分の1か3分の1くらい。

    WiFiモジュールのための端子があって、WiFiモジュールを重ねて載せられるようです。ソフトウェアはEmDebian Wheezy 7.6が走るようですので、性能はともかくとして、Debian環境でできることは概ね容易に移植可能なのでしょう。

    この手のボード(というか汎用SoC)だと兼用端子で悩むことになりますが、設定ファイルを生成するためのWebページが用意されています。これは便利そうです。

    価格は128MB版が20ユーロ、256MB版が30ユーロ、WiFiモジュールが7ユーロ。値段も手頃なのですが、Made In Italyなので送料が気になるところです。


  • USB-HDDにUbuntu14.04LTSをインストール

    投稿日 2014年 11月 2日 コメントはありません

    故あって、ある調査のための環境としてUbuntu14.04LTS 日本語RemixをUSBハードディスクにインストールしています。さすがに一般向けにどこにでも書かれているようなことはここでは省略して、特殊なこと、自分にとっての備忘録になることをメモしておきます。

    PCはマザーボードはH61M-ITX、CPUはCeleronG530、メモリは8GB搭載です。DVDで起動する前にBIOSの設定でSATAをDisableにしておきます。この状態でUSB-DVDROMからインストールDVDを起動します。DVDを起動したら、USB-HDD(今回はUSB2.0のHDDケースに1TBのHDDを搭載したもの)を接続し、普通通りインストールします。

    インストール後、再起動したところからです。特に何もしなくてもBIOSでUSB-HDDから起動する設定になっていれば起動するはず。

    1. ソフトウェアの更新
      まずはソフトウェアの更新をします。Dashの一番下にアイコンが現れるので、更新してやります。
    2. セキュリティとプライバシーの変更
      Dashのアイコンの歯車とスパナの絵が描かれたアイコンをクリックし、システム設定を開きます。その中の「セキュリティとプライバシー」をクリックし、今回は人に貸すためのHDDなので、「ファイルとアプリケーション」の「利用状況を記録」をOFFにして、利用履歴データをクリアします。
      次に、「検索」の「オンライン結果の検索結果を含める」を「オフ」にします。これでDashのアイコンで何かを入力した時にオンライン検索をしなくなるようなので、軽快になります。
      その他の項目は適当に設定します。
    3. 「言語サポート」をクリックすると「インストールが完全ではない」旨の表示が出るので、インストールを行います。
    4. 端末を開く
      Dashの検索画面で「端末」と入力し、端末(Terminal)を開いてコマンドライン作業ができるようにします。
    5. 内蔵HDDを見えないようにする
      起動時のカーネルパラメータでlibataを禁止して内蔵HDDを見えないようにします。
      /etc/default/grub を開いて、 「GRUB_CMDLINE_LINUX_DEFAULT」の起動時オプションに「libata.force=disable」を追加します。ついでに同じ箇所のオプションの「quiet」を取って起動時のメッセージを表示させるようにします。
      修正後は、
      $ sudo grub-mkconfig -o /boot/grub/grub.cfg
      としてgrub.cfgファイルを自動生成させて反映させます。
      この後、BIOSのSATA禁止を解除して再起動して、PCの内蔵HDDが見えないことを確認します。
    6. USBハードディスクへのアクセス高速化
      HDDアクセス時のアクセス時刻の記録を停止してアクセスを減らすとともに、/tmpをtmpfsにより確保してHDDへのアクセスをなくします。/etc/fstab を以下のように修正します(赤字部分)。
      # / was on /dev/sda1 during installation
      UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 noatime,errors=remount-ro 0 1
      # swap was on /dev/sda5 during installation
      UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx none swap sw 0 0
      # tmpfs
      tmpfs /tmp tmpfs defaults,noatime 0 0
    7. システム時計が狂うのを直す
      /etc/default/rcS の中の「UTC=yes」を「UTC=no」に修正
    8. synapticのインストール
      Ubuntuにはsynapticパッケージマネージャがデフォルトではインストールされていませんので、インストールします。
      Dashで「ソフトウェア」と入力し、「ソフトウェアセンター」を探して起動します。
      検索ウインドウにて「synaptic」と入力して、「synapticパッケージマネージャ」を選択してインストールします。
    9. Ubuntu restricted extrasのインストール
      Ubuntuソフトウェアセンターから「Ubuntu restricted extras」を検索してインストール。途中でライセンスに同意するウインドウがソフトウェアセンターの下に表示されるので、時々チェックしながら先に進めます。
    10. いろいろインストール
      DashからSynapticを起動し、いろいろインストールします。
      ・GIMP
      ・clamtk
      ・jhead
    11. 有線LANの禁止(無線LANのみで使用)
      miiモジュールのロードを阻止して有線LANを禁止します。
      /etc/modprobe.d/blacklist.conf に以下の行を書き加えます。
      # disable wired ethernet
      install mii /bin/false
      この記述を追加した後、
      # sudo update-initramfs -u
      として反映させます。

    以上で完了です。
    実際にはここからさらに必要なものを順次インストール・環境構築することになります。


  • NM70I-847はやっぱりダメな子みたい

    投稿日 2014年 10月 26日 コメントはありません

    ケースを変えてみたNM70I-847ですが、数日は安定しているかのように見えたものの、やはりリブートを繰り返すようになってきました。LinuxMintでもLubuntuでも一緒。i915_enable_rc6の設定が変わったわけでもなく、理由がよくわからないのですが、頻度がどんどん上がってきました。

    なんだか何をしてもダメ、みたいな感じになってきたので、さすがに我慢できなくなってきました・・・。


  • Linuxで有線LANを禁止する

    投稿日 2014年 10月 22日 コメントはありません

    USBメモリにインストールすることでPC本体環境に影響を与えることなくLinuxを使うことができますが、そのままではPC本体のHDDにが見えているので、誤操作や悪意のあるプログラムが動作したりするとHDDに影響する可能性が残っています。そこで、この記事で紹介したようにHDDを見えないようにすることで、そのリスクをさらに抑えることができます。

    しかしながら、ここまでではネットワークは既存の環境のものをそのまま使うので、万が一のことがあるとローカルネットワーク上に影響を与えてしまいます。今回はその対策を考えてみました。

    物理的に線があるLANでは接続先を変える=線をつなぎ直す、ということなので面倒です。しかし、無線LANならばESSIDを変えてやれば、ハードウェアをまったく変えることなく接続するネットワークを変えることが可能です。しかも、幸いな事にたいていのコンシューマ向け無線ルータではPC等を接続するネットワークとゲーム機等を接続するためのネットワークをESSIDで分ける機能をもっていることが多いです。これをうまく使えれば、USBメモリ起動のLinux使用時には既存の環境(HDD、LAN)への影響をさらに抑えられます。そこで、有線LANを禁止し、接続は無線LANのみで行うようにしてやります。

    具体的な方法ですが、有線LANのインタフェースの物理層を制御しているmiiモジュールのロードを阻止してやります。/etc/modprobe.d/blacklist.conf に以下の行を書き加えます。

    # disable wired ethernet
    install mii /bin/false

    単純に「blacklist mii」としたのでは論理層のドライバがmiiモジュールに依存していて、論理層ドライバをロードするときにmiiモジュールをロードしてしまいますので、結局miiモジュールが読み込まれてしまいます。かといって、論理層ドライバを blacklist 指定していくのは個々のデバイス(LANコントローラ)を指定していくことになりとても面倒です。ここでは、ArchLinuxのKernel_moduleのドキュメントを参考にして、mii モジュールのロードを常時失敗するように設定しました。この記述を追加した後、「# sudo update-initramfs -u」として反映させます。

    これで再起動してやると有線ネットワークが表示されなくなったはずです。無線LANアダプタは必要ですが、安心してネットサーフィンができる環境になったはず・・・です。


  • Weightless-Nという無線規格(?)ができるっぽい

    投稿日 2014年 10月 21日 コメントはありません

    Hackadayの記事で見かけたのですが、いわゆるIoT機器向けに

    • 電池で10年動作する
    • チップセットのコストは2ドル以下
    • 通信距離は都市部で5km以上、農村部で20-30km

    というのを特徴としたWeightless-Nという無線規格ができるっぽいです。周波数帯は欧州では868MHz帯、米国では900MHz帯のISMバンド(915MHz帯)という免許のいらない周波数帯を使うようで、日本でもソフトバンクがプラチナバンドと称しているようにより長距離や回りこみを考慮した通信に適した周波数帯です。ですので、2.4GHz帯を使うZigbeeモジュール(例えばTOCOS Wireless Module)などと比較して応用範囲が広くなるのではないかと思います。ちなみに、この868MHzとか915MHzとかいった周波数帯は日本では携帯電話(とRFID)に割り当てられています。RFIDとは共用可能かもしれませんが、携帯電話とはちょっと難しそうです。

    推進しているのはARM、Cable & Wireless、CSR、neul といった会社のようです。ARMはいわずもがな、Cable & Wireless は通信事業者、CSRは無線チップ(安価な Bluetooth USBドングルはほとんど100%CSRチップじゃないでしょうか?)ベンダーです。最後のneulというのが知らなかったのですが、センサネットワークとかM2Mネットワークの機器を提供している会社みたいです。で、これら4社に共通するのはすべて英国の会社であることです。

    来春にはSDKが利用可能になる、ということみたいですが、どうでしょうか。


  • StarQ Q5001を買ってみた

    投稿日 2014年 10月 20日 コメントはありません

    プライベートの電話番号と仕事の電話番号をわけた結果、やっぱりスケジュール管理にはスマホが便利だよね、でも古いXperiaAcroではAndroid2.3だしメモリ足りないし・・・ということで購入したIODESUでしたが、GPSが全く使えない、どうもFOMAプラスでは使えないっぽい?、(技適上も問題・・・)、ということで、海外出張の時にでも使うか、ということでスーツケースの肥やしになっています。

    で、XperiaAcroを使いつづけているのですが、やっぱりAndroid2.3では

    • スケジュール管理で他のGoogleアカウントのデータを表示できない
    • Google Keepが使えない
      (Google Keep便利です。買いたいものとかメモって便利に使ってます。)

    ということで、安くてちょうどいいのはないかなー?ということで調べてました。

    そうしたところ、LTEは未対応なものの、StarQ Q5001という端末が価格も安く性能もそこそこ良さそうだ、ということがわかってきました。

    • 何といっても安い。ビックカメラで税込みで16,000円でお釣りがくる。
    • 5インチでそこそこ画面が大きい(実際に買ってみたら5インチはデカすぎ・・・)
    • Quad Core 1.3GHz動作、RAM1GB、ROM16GBなのでもたつくこともないだろう(実際、今のところ問題ない)
    • IODESUと違って、それなりにWebで情報が見つかる。
    • StarQ Q5002というLTE対応機もあるけど、こちらは3万円くらいする。
      3万円も出すなら、あと少し出してNexus5を買いたくなる。

    ということで、ビックカメラの通販で買ってみました。ヨドバシSIMとWiFiの組み合わせで2日ほど使ってみての感触ですが、

    • デカい。XperiaAよりもデカい。ちょっとデカすぎ。(代わりに文字が大きく見やすい)
    • 画面は少し青っぽい(ネットでもみかけましたが)
    • ストラップホールがない。仕事で使うときはネックストラップ必須(なんど助かったことか・・・)なので、これは結構致命的。
    • 操作は十分快適。(通信以外で)待たされることはほとんどない。
    • WiFiとFOMA(3G)の組み合わせでどうも問題がある感じ?

    というところです。

    最後のWiFiとFOMA(3G)の組み合わせですが、WiFiをONにした状態で画面を見ていると、アンテナピクトが圏外と2~4本を行ったり来たりします。窓際に持っていっても変わらないのですが、WiFiをOFFにするとアンテナピクトは常時4本+H表示(多分、HSDPAのこと)で安定します。
    この状況から予想できるのは、基板上の無線部分同士が干渉して自家中毒のような症状になっているのではないかということです。ただ、テザリングをONにして別のAndroid機からアクセスしてもアンテナピクトには変動がないことから、単純にWiFiがONだとダメ、ということでもなさそうです。今のところ実害として困るのは、圏外になっている時間が長くなるので電池の減りが早くなります。(通話可能なSIMを挿していると、通話や着信にも影響するのかも?)

    使い込んでみないとわかりませんが、最後の問題さえなければ間違いなくコストパフォーマンスが非常に良い事だけは確かです。