ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示
ラベル Ubuntu の投稿を表示しています。 すべての投稿を表示

2019年6月17日月曜日

Ubuntu 18.04 DNSでの名前解決エラー

どうも、開発サーバーへのアクセス時に通信エラーを起こすことが多いです。勝手に仮想マシンの設定の問題と決めつけていたのですが、どんどんひどくなっていっていよいよ Ajax のデバッグがほとんどできない状態に… 以前 syslog を見たときに Apache がコア吐いているのを見つけていたので、いよいよデバッグするしか無いかと再度 syslog を開いてみました。

あれ?なんか下記のようなエラーがいっぱい出ている…

systemd-resolved[864]: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001, retrying transaction with reduced feature level UDP.

おかしいなぁとよく見ると、あ!開発用の CentOS じゃなくて開発マシンの Ubuntu の syslog 見てた…う〜ん、とするとエラーを起こしているのは Ubuntu の方か?とぐぐってみると出てきました。

New alert keeps showing up: Server returned error NXDOMAIN, mitigating potential DNS violation DVE-2018-0001

でこれによると、シンボリックリンクの /etc/resolv.conf がおかしなところを指しているのでこれを直せとのこと。

kiya@ubuntu:~/$ ll /etc/resolv.conf
lrwxrwxrwx 1 root root 34  6月 17 14:01 /etc/resolv.conf -> ../run/systemd/resolve/stub-resolv.conf

ん?stub って言葉が気になる…

kiya@ubuntu:~/$ ll /run/systemd//resolve/
合計 8.0K
drwx------ 2 systemd-resolve systemd-resolve  80  6月 17 14:04 netif
-rw-r--r-- 1 systemd-resolve systemd-resolve 733  6月 17 14:04 resolv.conf
-rw-r--r-- 1 systemd-resolve systemd-resolve 715  6月 17 14:04 stub-resolv.conf

ということで

kiya@ubuntu:~/$ cd /etc
kiya@ubuntu:/etc$ sudo unlink /etc/resolv.conf
kiya@ubuntu:/etc$ sudo ln -s ../run/systemd/resolve/resolv.conf resolv.conf

再起動すると、エラーが出なくなりました。

2018年11月1日木曜日

ESP32 にて謎のエラー

ちょっと前に ESP32 を使った Blynk アプリを作りました。
久しぶりに動かすことになったのですが一部仕様追加があったので修正してコンパイルしようとしたら謎のエラーが><;

Traceback (most recent call last):
  File "/home/kiya/.arduino15/packages/esp32/tools/esptool/2.3.1/esptool.py", line 34, in
    import serial
ImportError: No module named serial
「WiFi.h」に対して複数のライブラリが見つかりました
使用済:/home/kiya/.arduino15/packages/esp32/hardware/esp32/1.0.0/libraries/WiFi
未使用:/usr/local/arduino-1.8.7/libraries/WiFi
exit status 1
ボードESP32 Dev Moduleに対するコンパイル時にエラーが発生しました。

え〜。WiFi.h が複数あったっていいじゃん!で、調べてみるとこのメッセージは関係ないようです。

ESP32 ( ESP-WROOM-32 , M5Stack )自分的 トラブルシューティング まとめ

警告をすべてオンにして再コンパイルしても何も変わらず…で、エラーメッセージをしげしげ見るとどうやら esptool.py がエラーを出しているよう。

ということで下記を実行して無事コンパイルできました。

$ sudo apt install python-pip
$ pip install pyserial

Ubuntu 17.10 を 18.04 にアップグレードしたのですがどうも調子が悪いのでクリーンインストールしたのでその際必要なモジュールが不足してしまったようです。

2018年10月11日木曜日

Ubuntu 18.04 に WPS Office をインストール

以前インストールしたときはなんの問題もなくさっくり入ったのですが、アップデートで起動しなくなった Ubuntu をクリーンインストール後、再インストールすると言語設定に英語と中国語しか出てきませんでした。いろいろ調べてうまく行ったので備忘録です。

インストール


下記のページよりダウンロード後インストール
Downloads - WPS Office Community

日本語化


$ git clone git://github.com/wps-community/wps_i18n.git
$ sudo apt install libqt4-dev
$ cd wps_i18n/ja_JP
このままでも使えるのですがタイトルが Kingsoft xxxx 2013 となっているのでこれを WPS に変更します。
$ grep -Erl "Kingsoft.*2013" ./

上記の grep で「Kingsoft xxxx 2013」となっている部分が見つかるので vi などを使って修正する(タイトルが違っていても気にならない方はそのままでOK)

私は下記の3ファイルを修正しました。
  1. ./ts/etresource.ts
  2. ./ts/wppresource.ts
  3. ./ts/wpsresource.ts
$ sudo make install

起動時にフォントが見つからないと警告が出る


単なる警告なので無視しても大丈夫ですが毎回うるさいのでフォントをインストールします。
git clone https://github.com/iamdh4/ttf-wps-fonts.git
cd ttf-wps-fonts
sudo ./install.sh

下記のフォントがインストールされます。
$ ll /usr/share/fonts/wps-fonts/
合計 408K
-rw-r--r-- 1 root root 119K 10月 11 11:16 WEBDINGS.TTF
-rw-r--r-- 1 root root 65K 10月 11 11:16 WINGDNG2.ttf
-rw-r--r-- 1 root root 35K 10月 11 11:16 WINGDNG3.ttf
-rw-r--r-- 1 root root 27K 10月 11 11:16 mtextra.ttf
-rw-r--r-- 1 root root 69K 10月 11 11:16 symbol.ttf
-rw-r--r-- 1 root root 82K 10月 11 11:16 wingding.ttf

2018年10月2日火曜日

電卓キーで Gnome 電卓を起動

Ubuntu 18.04 をクリーンインストールしたら電卓キーで電卓が起動しなくなった><;
なんでか理由はわからないけど不便なので設定変更。

  1.  「設定」アプリ
  2.  「デバイス」左ペイン
  3.  「キーボード」左ペイン
  4.  「+」ボタン(右ペイン一番下)
  5.  「名前」→「Gnome電卓を起動する」
  6.  「コマンド」→「gnome-calculator」
  7.  「ショートカット」→「Calculator」(電卓キーを押す)


2018年10月1日月曜日

mozc 用「カナ英辞書V2」の変換

Ubuntu にて「カタカナ英語変換」を使うにはコンパイルが必要とのことでちょっと面倒、「Google日本語入力強化辞書」というものが公開されておりこの中に入っている「カナ英辞書v2」をユーザー辞書として登録してやるのが一番かんたんなのですが、文字コードが UTF-16 LE だったり、「ゔ」が文字化けしていたりとそのまますんなり使うというわけにも行かないようです。そこでそれらを変換する PHP スクリプトを作成しました。

機能

  1. 文字コードを UTF-16 LE から UTF-8 に変換
  2. 「?」に化けた「 ゔ」を置換
  3. よみが記号や漢字などひらがな以外で始まる単語を除去
  4. よみ、単語、品詞が一致していてコメントだけが違っている単語を1つにまとめる
  5. よみの先頭に@を追加

使い方


カレントディレクトリに「カナ英辞書v2.txt」をおいて実行すると UTF-8 に変換した辞書を標準出力に出力しますのでリダイレクトして好きなファイルに保存してください。

$ php カナ英辞書v2-utf8.php > カナ英辞書v2-utf8.txt

ソース

/**
 * 使い方
 *
 * カレントディレクトリに「カナ英辞書v2.txt」をおいて実行するとUTF-8に変換した辞書を出力
 * $ php カナ英辞書v2-utf8.php > カナ英辞書v2-utf8.txt
 */

// ファイルを読み込む
$file = file_get_contents('カナ英辞書v2.txt');

// UTF-16 LE → UTF-8
$file = mb_convert_encoding($file, 'UTF-8', 'UTF-16LE');

// 文字化けした'ゔ'を修正
$file = str_replace('?', 'ゔ', $file);

// 行で分解
$lines = explode("\n", $file);

// よみ、単語、品詞が一致するものを除外して出力
$last = ['', '', '', ''];
foreach ($lines as $line) {
    $cols = explode("\t", $line);

    // ひらがな以外で始まるよみは無視
    $c = mb_substr($cols[0], 0, 1);
    if (($c < 'あ') || ($c > 'ん')) {
        continue;
    }

    // 前回の出力と一致しているか調べる
    for ($i = 0; $i <= 2; ++ $i) {
        if ($last[$i] != $cols[$i]) {
            break;
        }
    }
    if ($i > 2) {
        // よみ、単語、品詞が一致しているので無視
        continue;
    }
    $last = $cols;

    echo "@{$cols[0]}\t{$cols[1]}\t{$cols[2]}\t{$cols[3]}\n";
}

2018年9月3日月曜日

Ubuntu 18.04 にて FreeCAD で .scad ファイルを読み込む

Thingiverse などにてダウンロードできる3Dモデルって大抵が .stl ファイル。3Dプリンターで印刷するもの特に実用品は自分用のサイズで作られているものが多いのでなかなかしっくりこない。でも、.stl ファイルを編集というのはちと厳しい。なんだかなぁと思いながら日々使えそうなモデルを探していたのですが、検索に Customizable というのがあることに気づきました。

もしやとこれで出てくるモデルのファイル一覧を見ると .scad というファイルが含まれています。グーグル先生に聞くとこれは OpenSCAD というモデリングツール用のデータ(ソース)。

やった、これで編集できると!と思いきや OpenSCAD ってプログラム組んでモデリングするんだ…なんか、36年ほど前、PC-6001を買って BASIC にて画面にグラフィックを表示させて喜んでいた時代を思い出した^^;

方言はきつそうだけどなんとなく使い方はわかるのですが、いまはやっと FreeCAD の使い方がわかってきたところなので2兎を追うものになりたくない。ということで FreeCAD にインポートしようとしてちょっとハマったのでその話。(前置き長すぎるw)

まずは、ハマった記から。

とりあえずグーグル先生に「freecad import openscad」で聞いてみるとすぐに説明ページが見つかりました。
Import OpenSCAD code

このページによると下記のようにすれば良いことになっています。
  1. OpenSCAD をインストール
  2. FreeCAD を開く
  3. OpenCAD ワークベンチに切り替える
    ※これをやらないと設定画面に OpenSCADがでてこない
  4. 編集 → 設定 → OpenSCAD 
  5. OpenSCAD の実行ファイルを設定
  6. ファイル → 開く で .scad ファイルを開く
ということでまずは OpenSCAD のインストール
ソフトウェアを開き openscad で検索(この時点でハマっていたわけですがw)opescad-plars と openscad-nightly という2つが出てきます。どちらにしようか迷ったのですがとりあえず上にある openscad-plars をインストール、起動してみると正常に開きました。

次に FreeCAD を開き OpenSCAD の実行ファイルを設定…ん、実行ファイルはどこにあるんだ?だいたいアプリケーション一覧にも出てこないし…

$ whereis openscad-plars.openscad
openscad-plars: /snap/bin/openscad-plars.openscad

ほほう、そこか。ということで /snap/bin/openscad-plars.openscad を設定、.scad ファイルを開こうとするが、ファイル一覧に出てこない。仕方ないのでファイルタイプを All(*) にして選択するが対応していないと怒られる><;

う〜ん。仕方がないのでグーグル先生で見つかったサイトをあちこち見てみるけどどこも同じようなことが書いてある><;OpenSCAD って 2015年で開発止まっているみたいなんでダメなのか?と諦めかけましたがふと格納ディレクトリが気になった!?

/snap ってなんだ?ということで snap を調べると 18.04 から実用的に使えるようになった機能らしい。

$ snap list
Name            Version     Rev   Tracking  Publisher   Notes
core            16-2.35     5328  stable    canonical✓  core
openscad-plars  2016.06.02  1     stable    pwlars      -

ありゃ? openscad くらいしかこの機能で入っているアプリ無いじゃん!これが原因だなとソフトウェアからアンインストール。OpenSCAD の公式サイト に書いてあるとおりにインストールしました。

$ sudo add-apt-repository ppa:openscad/releases
$ sudo apt update
$ sudo apt install openscad
$ whereis openscad
openscad: /usr/bin/openscad /usr/share/openscad /usr/share/man/man1/openscad.1.gz

これでインストール完了、再度同じ手順をするもやはりファイル一覧に .scad というものが出てこない…

しばし考え込んだのですが、もしかして mime タイプが登録されていないとかか?とりあえず OpenSCAD を起動して、FreeCAD を起動し直すとファイル一覧に .scad ファイルが出てきました\(^_^)/サンプルを開くとちゃんと見れた〜

ということで、公式からのインストールと、上記の手順の 1. と 2. の間に OpenSCAD を起動というスッテプが必要なようです。

あと、設定について他のサイトに書かれていたのですが、OpenSCAD import 欄の Use ViewProvider in Tree View と Use Multimatrix Feature はチェックを入れておいたほうがいいらしいです。

2018年8月7日火曜日

ANYCUBIC I3 MEGA で木製フィラメント

今回この木製フィラメントを使ってみようと思い調べたことの備忘録。
※未検証です。

Pxmalion Wood ウッド 3Dプリンター用木造フィラメント素材 マテリアル木材木質材料 1.75mm径 正味量1KG(2.2LB) 精確度+/- 0.03mm だいぶの3Dプリンターと3Dプリントペンが適用 (原木色)
\2,980

木質フィラメントを使用する際はノズル径を 0.5mm 以上にしなければならないらしく、推奨は 0.6mm とのこと。ANYCUBIC I3 MEGA のノズル径は 0.4mm なので詰まりやすいらしい。
# 別の製品のレビューではとにかくつまりまくると書かれているものもあった

ノズルは互換性があるようなのでこんなのを買って付け替えれば良いらしい。

Comgrow (5個セット)3Dプリンター 交換 ノズル MK8押出機 押出ノズル プリントヘッド メイクボット (0.3/0.4/0.5/0.6/0.8)
\850

実際にノズル径を変更した人の記事を見ると印刷品質について書かれていることが多くあまり細かい情報がないんだけど、ある記事に「ノズル径を変えたときはスライサーの設定変更をお忘れなく」という記述があった!

これこれ、ノズルの径が変わればフィラメントの吐出量も変わりそうなのでそのままでは印刷できない気がしていたのです。

さてと、ではどこを変えればいいんだ? Cura を開いてみてもそれらしき設定が見当たらない…ググってみると??? なんか違う…

そういえば、メーカーサイトで配布している Windows 版は 15.04.6。私がインストールした Linux 版は 3.4.1。

もしかして別物かな? ということで「Ultimaker Cura ノズル径」で検索したら有りました。プリンター設定に入っていました。

  1. 画面右上の「プリンター名」の右側をクリック
  2. 「プリンターを管理する」をクリック
  3. 「+追加」ボタンを押す
  4. 「Other」をクリック
  5. 「Anycubic i3 Mega」を選択
  6. プリンター名を「Anycubic i3 Mega 0.6mm」などに変更
  7. 「プリンターについて」ボタンをクリック
  8. 「プリンターの設定」ボタンをクリック
  9. 「Extruder」タブを開く
  10.  ノズルサイズを 0.6 などに変更

ノズルと木製フィラメントが来たら早速試してみようっと。

2018年7月15日日曜日

Ubuntu 18.04 サスペンド後 有線ネットワークが繋がらない

自宅のPCの Ubuntu を 17.10 から 18.04 にバージョンアップしたのですが、なかなか手ごわいw

スタンバイから復帰させるとインターネットに繋がらない><;え〜!と調べてみると有線ネットワークが「非接続」となっている!?ネットワークケーブルを抜いて再度挿してみても状況は変わらず、NetworkManager を再起動してみるも影響なし><;

いやはや、こりゃやっぱクリーンインストールしなきゃだめかと、/home /etc /var /opt をバックアップ後にクリーンインストール。

起動後に Chromium をインストールして起動したけど Gnome Shell Extention Web Site が Chrome 拡張機能やらなんやらをインストールしてもちゃんと動作しない><;とりあえず本家 Google Chrome をインストールすると正常動作…(まったく、手間かかるよなぁ)

と、それは置いておいて、諸々再設定後にスタンバイ、復帰させると…ネットワークが繋がらない><;オイオイと思いながら検索してみるとどうやら特定の NIC で発生する不具合らしい…

Ubuntu 18.04 その105 - 一部のRealtek Semiconductor製ネットワークカードで、サスペンドから復帰時にネットワークに接続できなくなる不具合

このページよると、対応方法は2つで、「PCを再起動」するか「ドライバーを読み直す」らしい。どちらの方法でも正常動作\(^_^)/

「PCを再起動」って…スタンバイの意味ないじゃんw ということで「ドライバーを読み直す」で対応することに、とりあえずシェルスクリプト書いて ~/bin に放り込んでおいた。

~/bin/net_restart.sh
sudo modprobe -r r8169
sudo modprobe r8169

2018年7月14日土曜日

Ubuntu 18.04 Apprications-menu が開かない

会社のPCはとっとと 18.04 にアップグレードして問題なく使えるようになったので、自宅の PC もアップグレード。公開されてからそれなりに日も経っているのですんなり行くかと思ったのですが、そう甘くないのがオープンソースw

いきなり来たのがトップバーの左端に出る gnome-shell 拡張機能の Apprications-menu。これがクリックしても開かない><; TweekUI でみるとビックリマークの付いた三角が表示されている。クリックすれば情報が出るかと思えばソフトウェアは開くが単なる灰色画面で何も表示されない><;

こりゃ同じ症状の人もいるだろうとグーグル先生に聞いてみると、いました!w

Ubuntu 18.04 Application menu not showing after clicking

で、このページを見ながらやったら直ったのでそのメモ
# 最近は老化が進んでとにかく忘れてしまうので何でもメモするようにしています^^;

$ sudo gnome-shell --version
GNOME Shell 3.28.2
$ sudo vi /usr/share/gnome-shell/extensions/apps-menu@gnome-shell-extensions.gcampax.github.com/metadata.json 

"shell-version": [ "3.28" ],
    ↓
"shell-version": [ "3.28.2" ],
再起動するも変化なし><;

Tweeks を起動(以前は TweekUI という名前だった気がするけど気のせい?)

「トップバー」の [Activities Overview Hot Corner] を「オン」に変更して再起動

これで直りました\(^_^)/

実際には何度も試行錯誤を繰り返したので、もしかすると上記だけでは手順が足りないかもしれませんがそのへんは割愛しましたm(_ _)m

2018年7月3日火曜日

Digistump の Digispark Kickstarter という ATTINY85 を使った安価で小さなマイコンがあります。これの上位互換品で Digispark Pro というのを試してみたところ、ちょっと悩んだので備忘録。

プレス機のカウンター信号(単なるオン/オフスイッチ)をスマホで受け取るというセンサーを作成することになりどうしようかなと思ったのですが、信号そのものが出ていない機械だとホール効果センサーを付けるとか、将来的にはその他のセンサーもつなぎたいとのことだったので間にマイコンをかますことにしました。

とりあえず、Pro Micro という Arduino Leonardo 互換のちっちゃいやつで試してみまして、簡単にできました。これでもいいのですが Digispark Kickstarter でも十分かなと思い試そうとしたのですが、部品箱を見ると在庫切れ><;

よく見ると似て非なるものが何個か出てきた。なんかピンが多い…で、調べてみると Digispark Pro という Digispark Kickstarter の上位互換品。んじゃ、取り合えずこれで試すかと簡単なプログラム書いて書き込もうとしたらわけのわからないワーニングが大量に出て書き込めない><;

最大14844バイトのフラッシュメモリのうち、スケッチが958バイト(6%)を使っています。
グローバル変数は9バイトのRAMを使用しています。
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)Warning: device with unknown new version of Micronucleus detected.
This tool doesn't know how to upload to this new device. Updates may be available.
Device reports version as: 2.0

いろいろ調べてみたところ、下記のページに解決策が書かれていました。
(私の環境ではライブラリのヘッダが足りなくてコンパイルが通りませんでしたが…)

Warning: device with unknown new version of Micronucleus detected.


1. 書き込みツールのダウンロード


$ cd ~/temp
$ wget https://github.com/micronucleus/micronucleus/archive/master.zip

2. 展開


$ unzip master.zip

3. コマンドラインツールのソースフォルダに移動


$ cd micronucleus-master/commandline/

4. コンパイル


$ make
make: libusb-config: Command not found
Building library: micronucleus_lib...
gcc  -Ilibrary -O -g -D LINUX -c library/micronucleus_lib.c
In file included from library/micronucleus_lib.c:30:0:
library/micronucleus_lib.h:32:10: fatal error: usb.h: そのようなファイルやディレクトリはありません
 #include <usb .h>
          ^~~~~~~
compilation terminated.
Makefile:55: recipe for target 'micronucleus_lib' failed
make: *** [micronucleus_lib] Error 1

# usb.h が見つからないというエラーが出ました><;

5. usb.h の含まれるパッケージを探す


$ sudo apt-get install apt-file
$ sudo apt-file update
$ apt-file search /usr/include/usb.h
libusb-dev: /usr/include/usb.h

6. libusb-dev をインストール


$ sudo apt install libusb-dev

7. 再度コンパイル


$ make
Building library: micronucleus_lib...
gcc  -Ilibrary -O -g -D LINUX -c library/micronucleus_lib.c
Building library: littleWire_util...
gcc  -Ilibrary -O -g -D LINUX -c library/littleWire_util.c
Building command line tool: micronucleus...
gcc  -Ilibrary -O -g -D LINUX -o micronucleus micronucleus.c micronucleus_lib.o littleWire_util.o -L/usr/lib/x86_64-linux-gnu -lusb
rm -f *.o

8. 出来上がったファイルの確認


$ ll micronucleus
-rwxr-xr-x 1 kiya kiya 55K  7月  3 11:05 micronucleus

9 .複写先の確認(すでに存在したらリネームするため)


$ ll ~/.arduino15/packages/digistump/tools/micronucleus/2.0a4
-rwxrwxrwx 1 kiya kiya 19K  2月 13  2016 launcher
-rwxr-xr-x 1 kiya kiya 55K  7月  3 11:10 micronucleus

10. すでに存在するのでバックアップ


$ mv ~/.arduino15/packages/digistump/tools/micronucleus/2.0a4/micronucleus micronucleus.2.0a4

11. 複写


$ cp micronucleus ~/.arduino15/packages/digistump/tools/micronucleus/2.0a4

これで書き込めるようになりました。

2018年2月14日水曜日

xubuntu 17.10 にリモートデスクトップをインストールして Windows 10 からつながるようにする

xubuntu 17.10 に xrdp にてリモートデスクトップ接続できるようにしました。
いくつかのページを見てやってみたのですが、xrdp のインストールのみと書かれているものや、vnc4server + xrdp と書かれているものが多かったのですが、これだと Windows からは接続できないようでした。
  • vino を入れて暗号化しないようにしないと Windows からの接続でエラーになってしまうようです。
  • linux からの接続のみならば xrdp だけで問題ないようです。

vino のインストール

xubuntu には標準では vino はインストールされていないようなのでまずはインストールから。
$ sudo apt install vino

設定画面を開く

$ vino-preferences
チェックを入れる
  • [x] 他のユーザーが自分のデスクトップを表示できる
  • [x] 他のユーザーがデスクトップを操作できる

自動起動設定

  1. [設定] → [セッションと起動] → [自動起動アプリケーション]
  2. [テスクトップの共有] のチェックを入れる

暗号化を停止

$ gsettings set org.gnome.Vino require-encryption false

参考URL

Windows10とUbuntu16.04をリモートデスクトップ接続で行き来する

xrdp のインストール

$ sudo apt install xrdp

設定ファイルを作成

※接続を許可するユーザーにて実行
# ~/.Xclients ファイルを作成
cat > ~/.Xclients <<EOF
#!/bin/bash
exec xfce4-session
EOF
chmod +x ~/.Xclients
# xfce4 を RDP 接続のデフォルトのウィンドウマネージャーにします。
echo xfce4-session > ~/.xsession
# 新規作成するユーザーにも適用
sudo cp ~/.Xclients /etc/skel
sudo cp ~/.xsession /etc/skel

console 以外を有効にする

$ sudo vi /etc/X11/Xwrapper.config
#@@mod allowed_users=console
allowed_users=anybody
これをやらないと接続しようとしても真っ黒画面

再起動

$ sudo service xrdp restart

ログの位置

$ tail /var/log/xrdp-sesman.log
[ERROR] X server for display 10 startup timeout

接続してみる

ちなみに初回接続時はなぜか真っ黒画面ですが、一旦切断して再度つなぐとちゃんと表示されました。(これ何回インストールし直しても同じ現象が発生しました)

Windows 10 からの接続

  1. リモートデスクトップを起動
  2. IP を指定
  3. [接続ボタンを押す]
  4. [Login to xxxx] ダイアログが表示される
  5. Session: Xorg
  6. username: ユーザー名を指定
    自動で入っているかもしれません・その場合はドメイン名(\の前)を \ も含めて削除
  7. password を入力
  8. [OK] ボタンを押す

2018年1月23日火曜日

AndroidStudio を Ununtu 17.10 にインストール

インストール

1. 公式ダウンロードページ から .zip ファイルをダウンロード

2. 適当なフォルダーを作って展開

~/ の下のほうが良い気もしたけど、公式の例に従いました…

sudo mkdir /usr/local/android-studio/ cd /usr/local/android-studio/ unzip ~/Downloads/android-studio-ide-171.4443003-linux.zip

3. ライブラリの追加

注: 64 ビット版の Ubuntu をご利用の場合は、以下のコマンドで 32 ビット用のライブラリをいくつかインストールする必要があります。

sudo apt-get install lib32z1 lib32ncurses5 lib32bz2-1.0 lib32stdc++6 64 ビット版の Fedora をご利用の場合は、以下のコマンドを実行します。

sudo yum install zlib.i686 ncurses-libs.i686 bzip2-libs.i686

公式のインストールマニュアルには64bitの場合上記を実行しろと書かれているがエラーになる。

kiya@kiya-ubuntu:~$ sudo apt-get install lib32z1 lib32ncurses5 lib32bz2.1.0 lib32stdc++6 -- 中略 -- E: パッケージ lib32bz2.1.0 が見つかりません E: 'lib32bz2.1.0' に一致するパッケージは見つかりませんでした E: 正規表現 'lib32bz2.1.0' ではパッケージは見つかりませんでした

4. lib32bz2.1.0 はなくても行けそうなので除外してインストールする。

kiya@kiya-ubuntu:~$ sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6

5. PATH の設定

vi ~/.profile
# Android SDK export ANDROID_HOME=${HOME}/Android/Sdk if [ -d "${ANDROID_HOME}/platform-tools" ] ; then PATH="${ANDROID_HOME}/platform-tools:$PATH" fi

エミュレーターを起動しようとするとエラーになる

9:24 Emulator: libGL error: unable to load driver: i965_dri.so 9:24 Emulator: libGL error: driver pointer missing 9:24 Emulator: libGL error: failed to load driver: i965 9:24 Emulator: libGL error: unable to load driver: swrast_dri.so 9:24 Emulator: libGL error: failed to load driver: swrast 9:24 Emulator: X Error of failed request: BadValue (integer parameter out of range for operation) 9:24 Emulator: Major opcode of failed request: 152 (GLX) 9:24 Emulator: Minor opcode of failed request: 24 (X_GLXCreateNewContext) 9:24 Emulator: Value in failed request: 0x0 9:24 Emulator: Serial number of failed request: 56 9:24 Emulator: Current serial number in output stream: 57 9:24 Emulator: Process finished with exit code 1

デバッグ表示付きでエミュレーターを実行してみる

※ -avd 仮想端末名 (スペースを含む場合は _ に置き換える)

kiya@kiya-ubuntu:~/Android/Sdk/tools$ LIBGL_DEBUG=verbose ./emulator -avd 'Nexus5X' libGL: Can't open configuration file /home/kiya/.drirc: そのようなファイルやディレクトリはありません. libGL: pci id for fd 17: 8086:5912, driver i965 libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/i965_dri.so libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/i965_dri.so libGL: dlopen /usr/lib/x86_64-linux-gnu/dri/i965_dri.so failed (../emulator/lib64/libstdc++/libstdc++.so.6: version `CXXABI_1.3.9' not found (required by /usr/lib/x86_64-linux-gnu/dri/i965_dri.so)) libGL: OpenDriver: trying ${ORIGIN}/dri/tls/i965_dri.so libGL: OpenDriver: trying ${ORIGIN}/dri/i965_dri.so libGL: dlopen ${ORIGIN}/dri/i965_dri.so failed (${ORIGIN}/dri/i965_dri.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません) libGL: OpenDriver: trying /usr/lib/dri/tls/i965_dri.so libGL: OpenDriver: trying /usr/lib/dri/i965_dri.so libGL: dlopen /usr/lib/dri/i965_dri.so failed (/usr/lib/dri/i965_dri.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません) libGL error: unable to load driver: i965_dri.so libGL error: driver pointer missing libGL error: failed to load driver: i965 libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/tls/swrast_dri.so libGL: OpenDriver: trying /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so libGL: dlopen /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so failed (../emulator/lib64/libstdc++/libstdc++.so.6: version `CXXABI_1.3.8' not found (required by /usr/lib/x86_64-linux-gnu/dri/swrast_dri.so)) libGL: OpenDriver: trying ${ORIGIN}/dri/tls/swrast_dri.so libGL: OpenDriver: trying ${ORIGIN}/dri/swrast_dri.so libGL: dlopen ${ORIGIN}/dri/swrast_dri.so failed (${ORIGIN}/dri/swrast_dri.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません) libGL: OpenDriver: trying /usr/lib/dri/tls/swrast_dri.so libGL: OpenDriver: trying /usr/lib/dri/swrast_dri.so libGL: dlopen /usr/lib/dri/swrast_dri.so failed (/usr/lib/dri/swrast_dri.so: 共有オブジェクトファイルを開けません: そのようなファイルやディレクトリはありません) libGL error: unable to load driver: swrast_dri.so libGL error: failed to load driver: swrast X Error of failed request: BadValue (integer parameter out of range for operation) Major opcode of failed request: 152 (GLX) Minor opcode of failed request: 24 (X_GLXCreateNewContext) Value in failed request: 0x0 Serial number of failed request: 56 Current serial number in output stream: 57

どうやら、../emulator/lib64/libstdc++/libstdc++.so.6 のバージョンが違うと言っているらしい。

インストール時に入れたライブラリへのリンクを貼る

# 念の為保存 cp /home/kiya/Android/Sdk/emulator/lib64/libstdc++ /home/kiya/Android/Sdk/emulator/lib64/libstdc++.bak # 公式の指示でインストールしたライブラリへのリンクを貼る ln -sf /usr/lib32/libstdc++.so.6* /home/kiya/Android/Sdk/emulator/lib64/libstdc++/

2017年12月7日木曜日

Visual studio code ENOSPC エラー


Visual studio code で拡張機能を作っているとたまに下記のようなエラーが出ることがあります。

fs.js:1385
    throw error;
    ^

Error: watch /home/kiya/Documents/vsc/nekoaisle.encode ENOSPC
    at _errnoException (util.js:1019:11)
    at FSWatcher.start (fs.js:1383:19)
    at Object.fs.watch (fs.js:1409:11)
    at watchPresentDirectory (/home/kiya/Documents/vsc/libs/node_modules/typescript/lib/tsc.js:2635:42)
    at fsWatchDirectory (/home/kiya/Documents/vsc/libs/node_modules/typescript/lib/tsc.js:2620:21)
    at Object.watchDirectory (/home/kiya/Documents/vsc/libs/node_modules/typescript/lib/tsc.js:2768:28)
    at addDirectoryWatcher (/home/kiya/Documents/vsc/libs/node_modules/typescript/lib/tsc.js:56930:21)
    at Object.watchDirectory (/home/kiya/Documents/vsc/libs/node_modules/typescript/lib/tsc.js:59955:20)
    at createDirectoryWatcher (/home/kiya/Documents/vsc/libs/node_modules/typescript/lib/tsc.js:59381:35)
    at watchFailedLookupLocationOfResolution (/home/kiya/Documents/vsc/libs/node_modules/typescript/lib/tsc.js:59348:81)

ビルド タスクのウォッチが終了しました。

このエラーたち悪いことの出たり出なかったりして悩んでいたのですがやっと解決方法がわかったのでメモ書きします。

もと情報はこちら https://vscode-doc-jp.github.io/docs/setup/linux.html#ENOSPC-エラー

1. 現在の設定の確認

$ sudo cat /proc/sys/fs/inotify/max_user_watches
65536

2. 設定ファイルの編集

$ sudo vi /etc/sysctl.conf

ファイルの末尾に下記を追加

fs.inotify.max_user_watches=524288

3. 設定を反映

$ sudo sudo sysctl -p

以上です。

2017年10月17日火曜日

Fcitx スキン名 Ubuntu Gnome 17.04

Ubuntu Gnome 17.04 にて Fcitx のスキンを変えたいなと設定画面を開いてみると、セレクトボックスではなくテキストボックス…

なんて名前のスキンがあるんだ?

まぁ、たいていは /user/share だろうとのぞくとあったあった /usr/share/fcitx/skin/ に classc, dark, default の3つが。

早速 dark に変更。いい感じだ。

最近物忘れがひどくてあれ?確か以前にやったよな?なんてことばかりなので備忘録。

2017年9月27日水曜日

Ubuntu Gnome: Window snap (edge-tiling) を無効にする

Ubuntu Gnome の Snapping Window という機能がとにかくうざい。Window を画面上端に合わせようとすると最大化してしまう><;小さな親切大きなお世話!

これを止めようと調べてみたもののどうもよくわからなかったのですがようやく止め方がわかったので備忘録として残します。

無効にしたいとき

kiya@kiya-ubuntu:~$ gsettings set org.gnome.shell.overrides edge-tiling false

有効にしたいとき

kiya@kiya-ubuntu:~$ gsettings set org.gnome.shell.overrides edge-tiling true

この方法が書かれていたサイト:GNOME のエアロスナップみたいな機能(Edge Tiling)を無効にする方法

2017年8月28日月曜日

Thunar で選択したファイル名をクリップボードへコピー

Windows 用には Clipcopy というフリーソフトを昔に作って使ってたんだけど、Ubuntu 用はないかなと物色していたところファイラー(Thunar)のアクションを設定すれば使えるらしいということで早速試してみたところうまく行ったので備忘録。


まずは普通にコマンド欄に下記を入れてみました。

コマンド(C): echo %F | xset -bi

これだけでできるのですが、ちょっと残念なことに複数ファイルを選択したときに半角スペース区切りとなってしまい、ファイル名のスペースと区切り文字のスペースの区別がつきません。そこでひと工夫

コマンド(C): echo '%F' | xset -bi

これで各ファイル名がシングルクォートでくくられるようです。おそらく、Thunarがシングルクォート区切りを吐いていて、それをさらにシングルクォートでくくっているのでそのまま出ているのではないかと思います。

これはこれで使えるのですが、複数ファイル名が欲しいときってバッチを作ったりする際だったりするのでできれば改行区切りがいいなぁと…

そこで簡単なシェルスクリプトを作成

~/bin/prm_split.sh

if [ $# -eq 1 ]; then
    echo -n "$1"
else
    for f in "$@"; do
        echo $f
    done
fi

引数の数を見ているのは、1個のファイル名を貼り付けるケースというのはコマンドラインが多く、コマンドラインでは改行が入っては不都合だからです。スペース区切りと改行区切りの2つのアクションを作るのであれば for 〜 done だけで十分です。

コマンド(C): prm_split.sh %F | xset -bi

これで期待通りの動作\(^_^)/

で、端末にファイル名を貼り付けようとしたら…張り付かない><;

ちょっといじって

コマンド(C): prm_split.sh %F | xset -pi

これだとうまく行く…
仕方がないので2回実行

コマンド(C): prm_split.sh %F | xset -bi;prm_split.sh %F | xset -pi

はいこれで期待通りの動作。

2017年7月20日木曜日

Ubuntu上のVirtualBox仮想マシン(Windows10)のHDDを圧縮


検索するとホストOSがWindowsでゲストOSがUbuntuのケースはいっぱい出てくるのですが逆のケースがほとんど無いので備忘録として記します。

1. SDelete の入手

マイクロソフトが配布している sdelete というツールを使って未使用領域をクリアします。
https://technet.microsoft.com/ja-jp/sysinternals/sdelete.aspx

2. ゲストOS上で未使用領域をクリアします。

C:\SDelete>sdelete -z C:

SDelete v2.0 - Secure file delete
Copyright (C) 1999-2016 Mark Russinovich
Sysinternals - www.sysinternals.com

SDelete is set for 1 pass.
Zeroing free space on C:\: 0%
これ結構時間かかりました。気をつけなければいけないは、画面に100%と表示が出てから本当に処理が終わるまでの時間がものすごく長いことです。また、sdelete64.exe は sdelete.exe の28倍かかったと言っている人もいました。私の場合1TBのHDDを処理するのに金曜の朝から初めて8時間では終わらず土日放置、月曜に見たら終わっていたと言った感じでした。

3. C:\SDELTEMP1 を削除します。

なんか 1. をやる前のHDDの使用量が48GB程度だったのに終わったあとは340GB!なんだ?と思って調べてみるとC:ドライブのルートに巨大なファイルができていました。
なんだかわからないけどとりあえずサクッと削除^^;
※このファイルが残らないこともありました。

4. ゲストOSをシャットダウン


5. ホストOSにて vboxmanager を使って圧縮します。

# UUIDを調べる
kiya@kiya-ubuntu:~$ vboxmanage list hdds
UUID:           ab123456-c7d8-90e1-e2f3-a4567890b12c
Parent UUID:    base
State:          locked write
Type:           normal (base)
Location:       /home/kiya/VirtualBox VMs/vhd/kiya-win10-c.vdi
Storage format: VDI
Capacity:       953869 MBytes
Encryption:     disabled

# 圧縮
kiya@kiya-ubuntu:~$ vboxmanage modifyhd ab123456-c7d8-90e1-e2f3-a4567890b12c --compact
0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%

ハマりどころは vboxmanager。私のマシンにはなぜか VBoxManager というものも入っていていくらこれを叩いてもUUIDが取れず???としばらく悩んでしまいました。

2017年7月7日金曜日

Ubuntu で Digispark Kickstarter

OS を Windows 10 から Ubuntu 17.04 に変えまして、Arduino IDE を使い始めたのですが Digispark Kickstarter に書き込みをしようとしたところエラーが発生しました。このあたりについてに日本語の情報が少ないようなのでメモ書き程度ですが記事にします。

■ スケッチ書き込み時に libusb-0.1-4 が見つからないと言われる

マイコンボードに書き込む」ボタンを押し「> Please plug in the device ... 」と表示されたところでUSBを差すと「error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory」とエラーが発生します。

最大6012バイトのフラッシュメモリのうち、スケッチが812バイト(13%)を使っています。
グローバル変数は13バイトのRAMを使用しています。
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
/home/kiya/.arduino15/packages/digistump/tools/micronucleus/2.0a4/micronucleus: error while loading shared libraries: libusb-0.1.so.4: cannot open shared object file: No such file or directory
どうやらライブラリーが足りないようです。

解決策は下記のページに書かれていました。
https://askubuntu.com/questions/311401/libusb-0-1-so-4-shared-lib-error-in-ubuntu-64-bit-system

[kiya@kiya ~]$ sudo apt-get install libusb-0.1-4

■ スケッチ書き込み時に micronucleus で例外が発生したと言われる

これでうまくゆくかと思ったら今度は「micronucleus: library/micronucleus_lib.c:66: micronucleus_connect: Assertion `res >= 4' failed.」というエラーが発生します…

最大6012バイトのフラッシュメモリのうち、スケッチが812バイト(13%)を使っています。
グローバル変数は13バイトのRAMを使用しています。
Running Digispark Uploader...
Plug in device now... (will timeout in 60 seconds)
> Please plug in the device ...
micronucleus: library/micronucleus_lib.c:66: micronucleus_connect: Assertion `res >= 4' failed.
> Press CTRL+C to terminate the program.
Aborted (core dumped)
え〜、ツールの中で例外が発生したの?そんなこと言われたってどうしたいいのかわからないです…

対策は下記のページに書かれていました。どうやらデバイスへのアクセス権が不足しているらしいです。
https://digistump.com/wiki/digispark/tutorials/linuxtroubleshooting

1. 下記の内容の「/etc/udev/rules.d/49-micronucleus.rules」というファイルを作ります。

[kiya@kiya ~]$ sudo vi /etc/udev/rules.d/49-micronucleus.rules
# UDEV Rules for Micronucleus boards including the Digispark.
# This file must be placed at:
#
# /etc/udev/rules.d/49-micronucleus.rules    (preferred location)
#   or
# /lib/udev/rules.d/49-micronucleus.rules    (req'd on some broken systems)
#
# After this file is copied, physically unplug and reconnect the board.
#
SUBSYSTEMS=="usb", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666"
KERNEL=="ttyACM*", ATTRS{idVendor}=="16d0", ATTRS{idProduct}=="0753", MODE:="0666", ENV{ID_MM_DEVICE_IGNORE}="1"
#
# If you share your linux system with other users, or just don't like the
# idea of write permission for everybody, you can replace MODE:="0666" with
# OWNER:="yourusername" to create the device owned by you, or with
# GROUP:="somegroupname" and mange access using standard unix groups.
2. ルールをリロードします。
[kiya@kiya ~]$ sudo udevadm control --reload-rules

以上でスケッチを書き込めるようになりました。