趣味の電子工作などの記録。時にLinuxへ行ったり、ガジェットに浮気したりするので、なかなかまとまらない。
RSS icon
  • LinuxMint17.2でUSBメモリ環境を構築

    投稿日 2015年 8月 29日 コメントはありません

    久々にUSBメモリにLinux環境を構築しました。作業的には慣れたもののはず・・・と思ったのですが、すっかり忘れてました。なので、作業ついでにメモを作り直します。

    1.環境

    PCはCore2Duo E7400(VT-x未対応版。E7400はVT-xは途中から対応しているので、初期のものはVT-xがOFFになっていて仮想化支援機能が動かないんです。)で、メモリは4GB、HDDにはWindows8.1が入ってますが、全然使ってない。
    LinuxMint17.2をインストールするUSBメモリはSanDisk Cruzer Fit 16GB。遅いUSBメモリですが、小さいので邪魔になりません。

    2.インストールイメージの準備

    とりあえず、LinuxMint17.2の32bit版をダウンロード。UNetBootinで別の4GBのUSBメモリにインストールイメージを書き込みました。(ライブCDの代わりとして使うならこのままでもいいんでしょうが・・・)
    他の環境ではUSBイメージライタを使ってUSBメモリに書き込む、あるいはDVD-Rにイメージを焼いて・・・でも構わないでしょう。ただ、SATAを禁止する関係で内蔵DVDROMドライブは使えないので、DVDROMに焼いて起動する場合には外付けのUSB-DVDドライブが必要になります。

    3.インストール環境のブート

    4GBのUSBメモリを接続して、電源ON。BIOSを起動して

    • SATAインタフェースをDisable(内蔵HDDを見えなくする)
    • 起動順序をUSB-HDDを最初にする(しなくてもいいと思うけど、癖で設定)

    とします。CTRL-ALT-DELでリブートさせて、USBメモリからブートさせます。ブート時にUNetBootinのメッセージが出ますが、DefaultのままでLinuxMint17.2のライブイメージを起動します。

    4.インストーラの起動

    ライブ環境起動後にターゲットのSanDisk Cruzer Fit 16GBを接続して、インストーラをダブルクリックして起動。

    5.パーティションの設定とOSインストール

    パーティションの設定はカスタムにしました。メモリ4GBあるのでSWAPパーティションがなくても問題ありません。なので、パーティションテーブルを初期化して、1パーティションをext4で作成、マウントポイントは / にします。インストールを継続しようとすると、「スワップパーティションがないよ」と警告されますが、そのまま継続。あとはインストーラの指示通りにインストール。ブートローダーは /dev/sdb (HDDが認識されていなければ、これがSanDisk Cruzer Fit 16GBのはず)に書き込みます。

    6.再起動とアップデート

    インストールが完了したら、インストーラの指示に沿って再起動する方を選択します。再起動したら、アップデートマネージャを起動して、ひたすらアップデートします。

    7.設定ファイル編集による追加設定

    1)内蔵HDDを見えなくする

    SATAドライバを禁止して内蔵HDDを見えないようにします。SATAで接続されているDVDROMドライブも見えなくなってしまいますが、代わりに内蔵HDDを誤って書き換えてしまったりする可能性が大幅に減少します。作業としては、 /etc/default/grub を開いて、 「GRUB_CMDLINE_LINUX_DEFAULT」の起動時オプションに「libata.force=disable」を追加します。
    修正後は、

    $ sudo grub-mkconfig -o /boot/grub/grub.cfg

    としてgrub.cfgファイルを自動生成させて反映させます。
    この後、BIOSのSATA禁止を解除して再起動して、PCの内蔵HDDが見えないことを確認します。

    2)USBメモリへのアクセス高速化

    HDDアクセス時のアクセス時刻の記録を停止してアクセスを減らすとともに、/tmpをtmpfsにより確保してHDDへのアクセスをなくします。/etc/fstab をのもとからある行にnoatimeオプションを追加し、さらにtmpfsで始まる行を追加します。

    # / was on /dev/sda1 during installation
    UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 noatime,errors=remount-ro 0 1
    # tmpfs
    tmpfs /tmp tmpfs defaults,noatime 0 0

    3)システム時計が狂うのを直す

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

    ここで一旦再起動します。

    8.その他、追加設定

    1. 背景の変更
      明るい背景が苦手なので、適当な暗めの背景に変更しました。
    2. テーマの変更
      青系の色が好きなので、Mint-X-Tealにテーマを変更しました。
    3. FireFoxの設定変更
      ・起動時のホームページを自分の設定に修正
      ・履歴の記憶を「一切記憶させない」に変更
    4. Chromeブラウザのインストール・設定
      Chromeのダウンロードページへ行ってDebian32bit版をダウンロード、Package Installerでインストール。インストール後、「アプリケーション」⇒「インターネット」⇒「Google Chrome」で起動できますが、自分はまずは右クリックして「プロパティ」を表示し、コマンドの部分に「–incognito」のオプションを追加して、常にプライベートモードで起動するようにしています。
    5. 日本語設定
      日本語の設定を忘れていました。「設定」⇒「言語」でLanguage/RegionともにJapanese,Japan UTF-8になっていることを確認して、System localeのところで「システム全体に適用する」を押します。
      上のほうにある「Input Method」を押して、「Add support for IBus」を押してIBusをインストールします。インストール完了後、上の方にある「Input Method」をNoneからIBusに変更します。
      変更したら一旦ログアウトしてログインし直すと、右下にキーボードのアイコンが出てくるので、これを左クリックしてMozcを選択します。テキストエディタなどを開いてみると日本語入力できるはずです。

    こんなところでしょうか。

    あとは、好きなアプリをインストールするなり、何なりすればと思います。


  • いまさらH8-300開発環境を構築してみたけど・・・

    投稿日 2015年 3月 26日 1つのコメント

    いまさらですが、余っているH8/3664ボードを何かに使おうと思って、開発環境を調査してみました。

    1.環境

    VMware上の Lubuntu14.04.2をターゲットにします。
    OSをインストールしたら、build-essentialパッケージをインストールした後、VMware-Toolsをインストールします。

    2.Cコンパイラ

    いまさらアセンブラもないので、Cコンパイラを探します。
    synapticでh8を検索すると、binutils-h8300-hmsとgcc-h8300-hmsが見つかります。これらをインストールします。これらをインストール後、バージョンを確認すると以下のようになっていました。

    ~$ h8300-hitachi-coff-gcc -v
    Reading specs from /usr/lib/gcc/h8300-hitachi-coff/3.4.6/specs
    Configured with: ../configure coff
    Thread model: single
    gcc version 3.4.6
    ~$

    3.書き込みツール

    昔、三岩さんが作られたものと思われるツールが sourceforge にあがっていましたのでコンパイルしてみます。説明では先頭の4行を環境に合わせて修正してからコンパイル、と書いてありましたが、はじめからLinuxのみが#defineされていました。

    ~$ mkdir H8tools
    ~$ cd H8tools/
    ~/H8tools$ wget mes.sourceforge.jp/h8/h8write.c
    --2015-xx-xx xx:xx:xx--  http://mes.sourceforge.jp/h8/h8write.c
    mes.sourceforge.jp (mes.sourceforge.jp) をDNSに問いあわせています... 202.221.179.22
    mes.sourceforge.jp (mes.sourceforge.jp)|202.221.179.22|:80 に接続しています... 接続しました。
    HTTP による接続要求を送信しました、応答を待っています... 200 OK
    長さ: 70666 (69K) [text/x-csrc]
    `h8write.c' に保存中
    
    100%[======================================>] 70,666       128KB/s   時間 0.5s 
    
    2015-xx-xx xx:xx:xx (128 KB/s) - `h8write.c' へ保存完了 [70666/70666]
    
    ~/H8tools$ gcc h8write.c -o h8write
    h8write.c: In function ‘error_print’:
    h8write.c:732:4: warning: format not a string literal and no format arguments [-Wformat-security]
        fprintf(stderr,message[error_code]);
        ^
    h8write.c:733:4: warning: format not a string literal and no format arguments [-Wformat-security]
        if ( s_message != NULL ) fprintf(stderr,s_message);
        ^
    h8write.c:737:4: warning: format not a string literal and no format arguments [-Wformat-security]
        fprintf(stderr,message[error_code]);
        ^
    h8write.c:738:4: warning: format not a string literal and no format arguments [-Wformat-security]
        if ( s_message != NULL ) fprintf(stderr,s_message);
        ^
    h8write.c:742:4: warning: format not a string literal and no format arguments [-Wformat-security]
        fprintf(stderr,message[error_code]);
        ^
    h8write.c:743:4: warning: format not a string literal and no format arguments [-Wformat-security]
        if ( s_message != NULL ) fprintf(stderr,s_message);
        ^
    ~/H8tools$

    Warningがたくさん出ましたが、実行ファイルは生成されました。

    4.コンパイルテスト

    Strawberry LinuxのWebサイトからLED点滅サンプルを持ってきてコンパイルしてみました。

    $ wget strawberry-linux.com/h8/h8led-0.1-20020706.tar.gz
    $ tar xvfz h8led-0.1-20020706.tar.gz
    $ cd h8led
    $ make clean
    $ make

    ・・・が、-lc がないと言って怒られます。探してみると、どこにもH8用のlibc.aがありません。これは libc.a がないことを意味していますので、newlibをインストールすることにしました。

    5.newlibのインストール

    組み込み用のlibcであるnewlibをコンパイルします。
    その前に、まずgitからインストールです。

    ~$ mkdir newlib
    ~$ cd newlib/
    ~/newlib$ sudo apt-get install git
    ~/newlib$

    さらに、newlibのソースを取ってきます。

    ~/newlib$ git clone git://sourceware.org/git/newlib-cygwin.git

    このままコンパイルすると、「makeinfoがない」といって怒られますので、synapticでtexinfoパッケージをインストールして、別のターミナルを新規に開いてから configureスクリプトを走らせて、make、make install します。

    ~/newlib/newlib-cygwin$ ./configure --target h8300-hitachi-coff
    ~/newlib/newlib-cygwin$ make
    ~/newlib/newlib-cygwin$ sudo make install

    libc.a、libg.a、libm.a が /usr/local/h8300-hitachi-coff/lib の下にインストールされました。

    6.改めてコンパイルテスト

    よくみると、さらにはMakefileでライブラリパスが設定されていなかったので、これを修正してみたのですが、今度は互換性のないlibc.aをスキップしました、となってしまいました。

    ~/H8sample/h8led$ make
    h8300-hms-gcc -O -mh -g -mrelax -mint32 -DH8_3664 -T h8-3664.x -L /usr/local/h8300-hitachi-coff/lib -nostdlib 3664crt0.S  led.o -o h8led.exe  -lc -lgcc
    /usr/lib/gcc/h8300-hitachi-coff/3.4.6/../../../../h8300-hitachi-coff/bin/ld: 互換性のないを /usr/local/h8300-hitachi-coff/lib/libc.a スキップしました (-lc を探索している時)
    /usr/lib/gcc/h8300-hitachi-coff/3.4.6/../../../../h8300-hitachi-coff/bin/ld: cannot find -lc
    collect2: ld returned 1 exit status
    make: *** [h8led.exe] エラー 1

    確か、gccのクロスコンパイラをビルドするときにはライブラリ(libcなど)なしで一度コンパイラをビルドしてライブラリをビルド、その後再度コンパイラをビルドし直す手順になっていたかと思うのですが、そのへんがちゃんと行われていないのかもしれません。(ググってもnewlibのバイナリがなく、ソースからビルドするしかなさそうだ、という時点で嫌な予感はしたんですけどね)

    7.まとめ

    ・・・うーむ。ぐぐってみると、同じ問題がはるか昔に出ていたようです。
    https://bugs.launchpad.net/ubuntu/+source/gcc-h8300-hms/+bug/342667
    ここを見る限り、リポジトリにあってSynapticでインストールできても結局メンテナンスされてなくて使い物にならないようで、そのままずーっと放置されているようですね。

    コンパイラごとソースからビルドすれば動く組み合わせもあるかもしれませんが、そこまでして動かす元気はありません。今でも秋月ではH8/300のボードを売ってますが、みなさんどうやって使ってるのでしょう?(メンテナンス目的?教材用?)
    いまでもcygwin + gcc2.95.3ベースの環境をCD-Rで売ってるようですが、いまさらのような気がします。

    H8は比較的電子工作用途に受け入れられた数少ない日本製マイコンですが、この状況ではとても使う気にはなれません。かといって、いまさらR8Cとか78Kとかってのもないでしょうから、素直に諦めるほうが良さそうです。

    さて、余ってしまったボード、どうしよう・・・。


  • Raspberry Piをプリントサーバーに・・・ならなかった(泣)

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

    Athlon5350マシンにつないでいるブラザーHL-2240Dですが、プリンタを使う度にAthlon5350マシンを起動するのは面倒です。

    そこで、OpenVPNを動かしているRaspberry PiのUSBポートで動かせないか試してみました。

    1.とにかくつないでみる

    つないで dmesg を見てみたらとりあえず認識してくれました。

    [2146148.627562] usb 1-1.3: new high-speed USB device number 4 using dwc_otg
    [2146148.728736] usb 1-1.3: New USB device found, idVendor=04f9, idProduct=0040
    [2146148.728772] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
    [2146148.728787] usb 1-1.3: Product: HL-2240D series
    [2146148.728801] usb 1-1.3: Manufacturer: Brother
    [2146148.728817] usb 1-1.3: SerialNumber: M3Jxxxxxx
    [2146148.797077] usblp 1-1.3:1.0: usblp0: USB Bidirectional printer dev 4 if 0 alt 0 proto 2 vid 0x04F9 pid 0x0040
    [2146148.800057] usbcore: registered new interface driver usblp

    2.CUPSをインストールする

    Raspberry Pi にリモートログインしてCUPSをインストールします。

    $ sudo apt-get install cups

    どかどかとたくさん入るかと思ったらエラーが。メッセージに従って、

    $ sudo apt-get update
    $ sudo apt-get upgrade

    ってやってみたら、Raspberry Pi 2関連と思わるアップデートがたくさん入りました。

    それはさておき、アップデート後に気を取り直してCUPSをインストールします。

    $ sudo apt-get install cups

    3.CUPSの設定

    完了したら、ローカル側からRaspberryPiの画面をリモートデスクトップで開いて設定を行います。

    $ rdesktop 192.168.xxx.xxx

    ブラウザ(Netsurf)を開いてアドレスに「localhost:631」と入力します。

    Cups-1

    上の方の「Administration」を開きます。

    cups-2

    右下の

    • Share printer connected to this host
    • Allow printing from the Internet
    • Allow remote administration
    • Allow users to cancel any job

    にチェックをつけて、下の「Change Setting」を押します。
    (どうせルータで自宅外からのパケットは叩き落とされるので「Allow printing from the Internet」も許可しちゃいます)

    cups-3

    その後、リモートログインしたシェルでCUPSを再起動します。

    $ sudo service cups restart

    ・・・が、設定が反映されません・・・。(泣)

    仕方がないので、設定ファイルを直接編集します。

    $ sudo vi /etc/cups/cupsd.conf

    途中の、

    # Only listen for connections from the local machine.
    Listen localhost:631
    Listen /var/run/cups/cups.sock

    の真ん中の「localhost:631」を「631」だけにします。

    さらに、もう少し下の方にある<Location>と<Location /admin>の部分を以下のように修正します。

    # Restrict access to the server...
    <Location />
    Order allow,deny
    Allow @LOCAL
    </Location>
    # Restrict access to the admin pages...
    <Location /admin>
    Order allow,deny
    Allow @LOCAL
    </Location>

    その後、CUPSを再起動します。

    $ sudo service cups restart

    これでローカルマシンから「IPアドレス:631」で管理画面にアクセスできます。

    同様にプリンタの共有とインターネットからの印刷の許可、ジョブキャンセルの許可を設定します。

    cups-4

    うーん、やっぱり設定できません。

    どうも、ユーザーがlpadminグループに入っていないといけないようなので、

    $ sudo adduser pi lpadmin
    Adding user `pi' to group `lpadmin' ...
    Adding user pi to group lpadmin
    Done.
    $

    とします。

    これでブラウザから設定が変更できるようになりました。

    4.プリンタの追加

    Web管理画面から「プリンタの追加」を押します。

    CUPS-10

     

    ローカルプリンタのBrother HL-2240Dを選択して、「続ける」を押します。

    CUPS-11

    適当に場所を記入し、共有にチェックを入れて続けます。

    CUPS-12

    ドライバは存在しないのでとりあえずHL2140のPCL5eドライバを選択しておきます。

    CUPS-13

    デフォルトオプションを適当に設定しておきます。

    CUPS-14

    設定ができました。

    この状態でPC上のUbuntuでプリンタを開くと、RaspberryPi上のプリンタが見えるようになっていました。

    ・・・・がしかし、テスト印刷を1枚試してみたところ明らかに汚いです。

    さらに2枚目以降のテスト印刷はエラーが出るばかりで印刷すらできません・・・。

    ブラザーのLinux用プリンタドライバのインストールも試してみましたが、途中で微妙なエラーがでていることと、テスト印刷してもジョブを抱えたままで出力されませんでした。

    ・・・・結局、諦めて元のAthlon5350マシンに接続を戻しました(泣)


  • Dockerを味見してみた(追伸)の追伸

    投稿日 2015年 1月 30日 コメントはありません

    Dockerを非rootで操作するには/etc/default/docker.io の DOCKER_OPTS の設定を・・・なんて昨日の記事では書いてしまったが、そんな面倒なことをしなくてもできるらしい。

    単純にユーザーが docker グループの権限を持っていればいいだけなのだそうだ。

    つまり、

    $ sudo addgroup ユーザー名 docker

    とした後、ログインしなおせばよい。


  • Dockerを味見してみた(追伸)

    投稿日 2015年 1月 29日 コメントはありません

    Dockerの味見の際に「rootで操作するもののようだ」と記載しましたが、一般ユーザーで触る方法がわかりました。

    ホストがUbuntuの場合には、/etc/default/docker.io の DOCKER_OPTS の設定を

    DOCKER_OPTS="-H tcp://127.0.0.1:4243 -H unix:///var/run/docker.sock --dns 8.8.8.8 --dns 8.8.4.4"

    となるように修正し、

    $ sudo service docker.io restart
    docker.io stop/waiting
    docker.io start/running, process 13197
    $

    として Docker を再起動、

    $ export DOCKER_HOST=tcp://127.0.0.1:4243

    として環境変数を設定、

    $ docker info
    Containers: 0
    Images: 0
    Storage Driver: aufs
     Root Dir: /var/lib/docker/aufs
     Dirs: 0
    Execution Driver: native-0.2
    Kernel Version: 3.13.0-44-generic
    WARNING: No swap limit support
    $

    で一般ユーザーでもアクセスできるようになりました。


  • Ubuntu MATE 32bitをUSBメモリにインストール

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

    Ubuntu MATE 32bitをUSBメモリにインストールしてみました。

    なぜMATEかというと、通常のデスクトップ環境ではやはり重いので、なるべく軽いものにしたかったためです。

    今回も32bit版をインストールしました。ダウンロードはこちらから。

    いつものように、まずVMware上で一度インストーラISOイメージで仮想マシンを作って起動します。その後、一旦シャットダウンして、仮想マシンからHDDを取り除きます。一度起動するのは、仮想マシン作成直後はHDDを取り除けないからです。

    次に、再度、インストーラISOイメージで仮想マシンを起動します。
    起動して試すだけかインストールするかの選択画面がでたところでUSBメモリを取り付けます。今回は、新たにSanDiskのExtreme USB3.0 64GBを使ってみました。USBメモリを取り付けたら仮想マシン側に認識させ、その後でインストーラで「Ubuntuをインストール」をクリックします。

    あとは普通にHDDにインストールするのと変わりませんが、データ領域を多めに取りたかったのでパーティションは手動で分けました。

    インストールが終わったら、仮想マシンを終了し、PCを再起動します。この時にBIOSで内蔵SATAを禁止します。

    再起動したら、過去の記事同様にいろいろ設定します。

    • SATAの禁止(内蔵HDDへのアクセス禁止)
    • /etc/fstabの設定(tmpfsの設定、マウントオプションにnoatimeを追加など)
    • 内蔵時計のUTC設定をローカルタイム設定に変更

    など。

    SATAを禁止したら、再起動後に内蔵HDDが見えない状態になっているのを確認します。あとは内蔵HDDのつもりで作業すれば大丈夫。

    引き続き、いろいろやりますが、こちらが参考になります。

    それにしてもSanDisk Extreme USB3.0 64GBは速いです。

     


  • Linux上でCUPSプリンタを共有する

    投稿日 2015年 1月 8日 コメントはありません

    先日購入したBrother HL-2240Dですが、Windowsから使ったりLinuxから使ったりで結構面倒なことになっています。こんなことなら、LAN内蔵モデルにしておけばよかったと後悔しています。

    といっても買い換えるわけにもいかない(最悪、それもないではないですが・・・)ので、何とかしていきたいと思います。

    まずは、どれかマシンを決めてUSBで接続しておくことにします。ここでは、LinuxMint17 32bitを実行しているAthlon5350マシン(ブログ記事にはしていないのですが、結局BIOSTARのCeleron847マザーは突然再起動病が収拾せず、引退させました。代わりにAthlon5350を導入しました)に接続することにします。

    ドライバのインストールに先立って、IPアドレスを固定します。今回はルータでDHCPの固定割り当てをすることでIPアドレスを固定しました。

    次にプリンタドライバをインストールしますが、プリンタドライバのインストールは以前の記事とまったく同じ方法でテスト印刷まで行きました。

    で、共有をかけてみます。
    「システム管理」→「プリンタ」でプリンタの管理ウインドウが開きます。

    Screenshot-プリンター1

    サーバーメニューで「設定」を開きます。

    デフォルトではすべてチェックが外れていますが、

    • 共有するので「このシステムに接続されている共有プリンタを公開する」にチェック
    • IPPプロトコルを使うので「インターネットからの印刷を許可する」もチェック
    • どうせ家庭内ネットワークであり、グローバルアドレスは持ってないので「リモート管理を許可する」もチェック
    • 「ユーザーにジョブのキャンセルを許可する」もチェック

    します。

    Screenshot-2

    プライベートアドレスを割り振った家庭内ネットワークであり、外部から直接接続される可能性のあるIPv6もルータで殺してある(IPv6ブリッジ、IPv6パススルーを禁止してある)ので、割り切った設定です。自宅内専用なのでファイアウォールも入っていません。

    この状態でhttp://127.0.0.1:631/をブラウザで開くと以下のようになりました。

    Screenshot-3

    この状態から他のPCからは見えるのに印刷できない状態でだいぶ悩みました。サーバの設定も「リモート管理を許可する」をチェックしても反映されません。また、上記画面で「管理」を押すと設定画面になるのですが、やはりリモート管理が許可できません。(ユーザーがlpadminグループに所属していないといけないようなのですが、少なくとも見掛け上はそう見えています)

    この手のパターンは、何かの設定ファイルが読み込まれていない、とかそんな感じです。そこで、一旦PCを再起動したところ・・・・「リモート管理を許可する」ができるようになりました。
    この状態でネットワークでつながった別のUbuntuマシン上で「プリンター」を開いて「追加」を押すと、ネットワークプリンタの中にAthlon5350が出てきます。そして、これを選択するとネットワークプリントができるようになりました。(ただ、このPCは別途ドライバをインストールしたことがあるので、ドライバのインストール要否はわかりません)

    とりあえずLinuxからはそれなりに共有できるようになったようです。


  • 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とかもインストールしますが、特に難しいことはないので・・・。


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