2016年12月12日月曜日

Realtek RTL8101ドライバのアンインストール

tar ballからインストールしたRTL8101ドライバのアンインストール手順


r8101をアンロード

$ sudo modprobe -r r8101

モジュールファイルの削除

$ cd /lib/modules/$(uname -r)/kernel/drivers/net/ethernet/realtek
$ sudo rm r8101.ko

r8169が無効化されているので元に戻す

$ sudo mv r8169.bak r8169.ko

カーネルモジュールの依存関係情報を更新

$ sudo depmod `uname -r`

initramfsのアップデート

$ sudo update-initramfs -u

r8169の読み込み

$ sudo modprobe r8169

2016年12月8日木曜日

JavaアプリケーションでUnityのグローバルメニューをデフォルトで有効にする

JavaアプリケーションのUIはJava独自のため、Jayatanaを経由してUnityのグローバルメニューを表示しています。Ubuntu15.04以降、デフォルトでは無効になっているので有効にします。

Javaアプリケーション全体に適用する場合
profileに追記
ユーザ限定で適用するなら
$ vim ~/.profile
システム全体に適用するなら
$ sudo vi /etc/profile
export JAVA_TOOL_OPTIONS="$JAVA_TOOL_OPTIONS -javaagent:/usr/share/java/jayatanaag.jar"

指定したアプリケーションのみに有効にする場合
コマンドラインから起動する場合
$ JAVA_TOOL_OPTIONS="$JAVA_TOOL_OPTIONS -javaagent:/usr/share/java/jayatanaag.jar" コマンド
GUIから起動する場合など、起動オプションを設定できない場合アプリケーションごとに設定が必要です。
IntelliJ Idea Community
$ vi ~/.IdeaIC2016*/idea64.vmoptions
-javaagent:/usr/share/java/jayatanaag.jar
Android Studio
$ vi ~/.AndroidStudio*/studio64.vmoptions
-javaagent:/usr/share/java/jayatanaag.jar
NetBeans
$ vi /usr/local/netbeans-*/etc/netbeans.conf
-J-javaagent:/usr/share/java/jayatanaag.jar

2016年12月5日月曜日

virtualenvでPythonバージョンを指定した仮想環境の作成

Ubuntuでは標準でPython2とPython3がインストールされており、Python2がデフォルトになっています。UbuntuのパッケージにはPython2に依存したものが多いため、Python3をデフォルトにするのは危険です。
virtualenvで仮想環境を作ることでPython3環境を簡単に設定することができます。

環境
Ubuntu 16.04 LTS


Pythonの確認

$ python2 --version
Python 2.7.12
$ python3 --version
Python 3.5.2

Pythonが入ってなければインストール

$ sudo apt install python2
$ sudo apt install python3

Pythonデフォルトバージョンの確認

$ python --version
Python 2.7.12

pipのインストール

$ sudo apt install python-pip python3-pip

Python3を使う仮想環境hogeの作成

Python3の場所を確認

$ which python3
/usr/bin/python3

仮想環境の作成

$ virtualenv -p /usr/bin/python3 --no-site-packages hoge

仮想環境に入る

$ source hoge/bin/activate
(hoge)$

Pythonのデフォルトバージョンの確認

(hoge)$ python --version
Python 3.5.2 

仮想環境から出る

(hoge)$ deactivate

仮想環境ごとにpipによるパッケージ管理ができます。

仮想環境作成の段階で -no-site-packages を指定することでpipからグローバルにインストールしたパッケージは含まれなくなります。

仮想環境を削除したい場合はhogeディレクトリを削除します。

2016年11月7日月曜日

Bash on Ubuntu on Windows + XサーバでLXDEを起動

Bash on Ubuntu on Windowsでは公式にGUIはサポートされていませんが、X11はC/SシステムなのでWindows側にXサーバを用意することでGUIを表示することができます。

Xサーバのインストール
よく使われるのがXmingですが、更新が2007年で止まっているので避けます。
MobaXtermも人気ですが、無料版は機能が限定されていること、Xサーバの機能だけ欲しいのでこれも避けます。
vcXsrvが頻繁に更新されており、x64バイナリもあるのでこれを使用します。

vcXsrvをインストールし、起動しておきます。
Start→VcXsrv→XLaunch
Fullscreenを選択します。

Multiple windows はアプリケーションごとに単独のウインドウが開きます。Firefoxなど、単体のアプリケーションを表示させたいときはこれを選択します。
One large window はウインドウ内に画面全体を表示しますが、LXDEだと正常に表示されません。
One window without titlebar はWindowsのタスクバーが表示されるFullscreenで、これもLXDEだと正常に表示されません。

Bash on Ubuntu on Windows側

LXDEのインストール
$ sudo apt-get install lxde
Xorg、LXDEがインストールされます。

日本語環境では文字化けするので日本語フォントを入れておきます。
$ sudo apt-get install fonts-noto-cjk fonts-noto-hinted

環境変数でXサーバを指定
$ export DISPLAY=localhost:0.0

環境変数は保存されないのでBash on Windowsの起動ごとに入力する必要があります。面倒なら/etc/bash.bashrcに書き込んでおきます。

LXDEを起動
$ lxsession


あっさり動きました。仮想マシンで動いているわけではないので非常に高速です。


Firefoxなどの単体のアプリケーションのみ起動したい場合は、vcXsrvをMultiple windowsで起動しなおして、
$ firefox &
で単一ウインドウで起動することができます。


2016年9月15日木曜日

Arch LinuxでAmazon Cloud Driveをマウントする

米AmazonのAmazon Cloud Drive Unlimited(以下ACD)が月500円程度で利用できるので登録してみました。


日本でもACDサービスが開始されましたが、この2倍の料金が発生します。



LinuxからACDにアクセスできるacdcliというツールが公開されています。

このacdcliを利用することでAmazon Cloud DriveをFuseを利用してマウントすることができます。


インストール
$ sudo pip3 install --upgrade git+https://github.com/yadayada/acd_cli.git


ログインのためにブラウザが必要です。
w3mではログインできなかったのでLynxをインストールしました。


ロケールが日本になっていると日本のACDにアクセスしてしまうので、ロケールを指定して実行します。
$ sudo env LANG=en_US.UTF-8 acdcli -v init


ログインしてoauth_dataを保存します。
v -> Shift+s -> /root/.cache/acd_cli/oauth_data


ACD状態の取得
ACDの状態を取得します。acdcli以外からACDに変更があった場合、エラーになるので各コマンドを実行する前にはこのコマンドを実行しておくと安心です。
$ sudo acdcli sync

マウント
$ sudo acdcli mount /mnt/acd/

アンマウント
$ acdcli umount /mnt/acd/



マウントすることで簡単に利用できますが、単純にアップロードやファイル操作などを行うこともできます。


aaaディレクトリの作成。
$ sudo acdcli mkdir /aaa/

システムの/mnt/sdb1/ディレクトリをAmazonの/aaa/にアップロード。cronで定期的に実行してあげるとシステムとACDで同期することができます。
$ sudo acdcli upload -o /mnt/sdb1/ /aaa/


2016年8月24日水曜日

Android 7.0 Nougatが公開されたのでNexus 6Pに入れた

Android 7.0 Nougatが公開されました。

現在はベータテストプログラム登録者のみにOTAアップデートが配信されています。

 

zipでファクトリーイメージが公開されているので、それを使ってアップデートします。

 

http://www.androidpolice.com/2016/08/22/flash-all-the-things-full-android-7-0-nougat-nexus-ota-roundup/

こちらからファクトリーイメージへのリンクが張られているのでダウンロードします。

現在はNexus 6P、Nexus 5X、Pixel C、Nexus 9のみ公開されているようです。

 

このファクトリーイメージを、sideloadを使って端末に流し込みます。

 

まず、端末をリカバリモードで起動させます。

Nexus 6Pの場合、音量↓を押しながら電源で起動、「Recovery mode」を選択し、電源+音量↑を押し、「apply update from ADB」を選択します。

PCと接続し、ADBドライバのインストール、Android SDKを使えるようにし、

以下のコマンドでzipを流し込みます。
> adb sideload zipファイル

この際、OEMアンロックは不要です。

 

 

2016年7月9日土曜日

ラーメン二郎 新宿小滝橋通店が美味くなってた

ラーメン二郎 新宿小滝橋通店に行ってきました。



前回行ったのが6か月前なのですが、その時はスープがお湯のように薄くて食えたようなものじゃありませんでした。



今回はあまりの空腹でしょうがなく行ってみたのですが、かなり美味くなってました。



チャーシューにもしっかり味が染みており、にんにくもすりおろしニンニクから刻みニンニクになっていました。スープも美味くて満腹じゃなければ完飲してました。



新宿にいるときはどちらかといえばまだましな歌舞伎町店に行ってたのですが、これからは真っ先に新宿小滝橋通店に行きます。

UEFI+GPT環境にArch Linux

UEFI+GPT環境にArch Linuxをインストールします。

 

キーボードレイアウトを日本語キーボードに設定
# loadkeys jp106

 

パーティションの設定

今回はディスク全体にインストールします。64GBのディスク(sdb)にESPを512MB(sdb1)、Swapを2GB(sdb2)、残りをシステムパーティション(sdb3)とします。
# gdisk /dev/sdb

GPTディスクではない場合、GPTディスクにします。
Command (? for help): o

ESPの作成
Command (? for help): n
Permission number: 1
First sector :
Last sector : +512M
Hex code or GUID : EF00

Swapの作成
Command (? for help): n
Permission number: 2
First sector :
Last sector : +1G
Hex code or GUID : 8200

システムパーティションの作成
Command (? for help): n
Permission number: 3
First sector :
Last sector :
Hex code or GUID : 8300

書き込み
Command (? for help): w

フォーマット
# mkfs.vfat -F32 /dev/sdb1
# mkswap /dev/sda2
# mkfs.ext4 /dev/sda3

 

マウント
# mount /dev/sdb3 /mnt# mkdir /mnt/boot# mount /dev/sdb1 /mnt/boot

 

ミラーリストを編集して、日本のサーバーからダウンロードするようにします。
# vi /etc/pacman.d/mirrorlist

日本のサーバを一番上に持ってきます。

viの場合、 / Japan で日本のURLを検索、 yy でコピー、 p で貼り付け。

 

インストール
# pacstrap -i /mnt >> base

 

fstabの生成
# genfstab -U -p /mnt >> /mnt/etc/fstab

 

fstabの編集

ディスクのPARTUUIDの確認
# blkid
/dev/sdb1: UUID="15A5-4D80" TYPE="vfat" PARTLABEL="EFI System" PARTUUID="31db1219-6df2-42ba-8650-8a0b0e586b01"
/dev/sdb2: UUID="2a748a4c-60cd-462c-938b-8a2df5a80f84" TYPE="swap" PARTLABEL="Linux swap" PARTUUID="d9a09ef3-8e5b-4d7c-aef6-37eda0560f8f"
/dev/sdb3: UUID="a19c57ae-b4df-48bb-9679-ca34cf2f5030" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="de8a4bd5-b58e-4fa0-a450-6a294a49aa23"

PARTUUIDはパーティション作成時に生成される固有のIDです。 /dev/sdb1 のように指定することもできますが、ディスクの増設などでディスクの順番が変わってしまうのであまりよくないです。
# vi /mnt/etc/fstab
PARTUUID=de8a4bd5-b58e-4fa0-a450-6a294a49aa23 /    ext4    rw,relatime,data=ordered    0 1
PARTUUID=31db1219-6df2-42ba-8650-8a0b0e586b01    /boot    vfat    rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=iso8859-1,shortname=mixed,errors=remount-ro    0 2
PARTUUID=d9a09ef3-8e5b-4d7c-aef6-37eda0560f8f    swap    swap    defaults    0 0

 

新しいシステムにchroot
# arch-chroot /mnt

 

ユーザー、パスワードの設定

rootパスワードの設定
# passwd

一般ユーザの作成
# adduser ユーザ名
# passwd ユーザ名

 

ブートローダの設定
# bootctl install
# vim /boot/loader/entries/arch.conf
title Arch Linux
linux /vmlinuz-linux
initrd /initramfs-linux.img
options root=PARTUUID=31db1219-6df2-42ba-8650-8a0b0e586b01 rw quiet

 

chrootを抜けて新システムで起動します。
# exit
# reboot

 

キーボードレイアウトの設定
# localectl set-keymap jp106
# localectl set-x11-keymap jp
# localectl set-locale ja_JP.UTF-8

 

ロケールの生成
# vi /etc/locale.gen
en_US.UTF-8 UTF-8
ja_JP.UTF-8 UTF-8

# locale-gen

 

ロケールの設定
# localectl set-locale ja_JP.UTF-8

 

タイムゾーンの設定
# timedatectl set-timezone Asia/Tokyo

 

ホスト名の設定
# hostnamectl set-hostname ホスト名

 

 

2016年7月3日日曜日

Windowsのアプリケーションをパッケージマネージャで管理する

Windows 10から標準でPackageManagementというパッケージマネージャが含まれるようになりました。

以前から、Chocolateyというサードパーティのパッケージマネージャがあり、そのレポジトリがPackageManagementから利用できます。

2016年6月14日火曜日

VLCでBlu-rayを再生

先日VLCでのBlu-rayの再生について書きましたが、古いバージョンのAACSにしか対応していませんでした。

VLC media playerでBlu-rayディスクを再生する - ぽぬぽぬ

 

BDのリッピングソフトであるMakeMKVに付属しているlibmmbdがlibaacsと互換性があり、新しいバージョンのAACSにも対応しています。(2016/06/13現在AACS v60に対応)

2016年6月8日水曜日

VLC media playerでBlu-rayディスクを再生する

一般的なBlu-rayディスクはAACSで暗号化されているのでそのままではVLC media playerで再生することができません。

VLC media playerをAACS対応させて、Blu-rayディスクを再生するためのファイルがこちらに公開されています。

VLC Blu-Ray

 

keys databaseとAACS dynamic libraryの2つのファイルを入れる必要があります。

 

KEYDB.cfgを以下のディレクトリに入れます。

Windowsなら C:\ProgramData\aacs\

Mac OS Xなら ~/Library/Preferences/aacs/

Linuxなら ~/.config/aacs/

 

AACS dynamic libraryをOSに合ったものをダウンロードし、

Windowsで32bitのVLCなら C:\Program Files (x86)\VideoLAN\VLC\

Windowsで64bitのVLCなら C:\Program Files\VideoLAN\VLC\

OSXなら~/lib/

Linuxならディストリビューションごとにパッケージマネージャで導入します。

 

Arch LinuxではCommunityレポジトリに libaacs があるので
$ sudo pacman -S libaacs

でインストールします。

 

最新のAACSには対応していないと思いますが、手持ちのBDは再生することができました。

2016年6月3日金曜日

SoftbankのNexus 6Pにした

ずっと2年契約が終わったらMVNOにしようと思いながらSoftbankを使ってきたのですが、SoftbankにNexus 6Pがあったので機種変更してしまいました。

Softbank版のNexus 6PはSIMロックがかかっていますが解除可能で、OSもキャリア変更の加えられていないAOSPなAndroidが入っているので素晴らしいです。

Softbank版Nexus 6PのSIMは特殊なようで、契約時のNexus 6PのIMEIでのみ利用可能な制限がかかっており、Y!MobileのAPNで利用するようになっています。

元々、SoftbankのSIMはそのSIMごとにIDパスワードが変わるクソ仕様なのですが、そのIDとパスワードさえ分かればどの端末でも通信が可能でした。

AOSPなAndroidなのでそのような仕組みを組み込めずIMEI制限をかけたのだと思います。

Y!MobileからNexus 5が発売された際IMEI制限がかかっていましたが、後から解除されました。

Softbank版Nexus 6Pもそうなればいいのですが…

2016年6月2日木曜日

PlasmaのBreezeテーマがGTK+3に追いついていない

私は普段からLinuxのデスクトップ環境はPlasma 5を使っています。

Breezeテーマは統一感があり、デザインで言えばOSXよりも綺麗だと思ってます。

BreezeテーマはQT4、QT5、GTK+2、GTK+3用のテーマが公開されているので大体のGUIアプリケーションには対応しています。

 

GTK+3は今でも頻繁に更新があり、その都度テーマの形式が変わるのでまだ安定しているとは言えません。

GTK+3.20からテーマ形式が大幅に変わったようで、多くのGTK+3テーマが使えなくなりました。

Breezeも未だにGTK+3.20に対応できていません。

FirefoxがGTK+3で開発されていますので非常に困ります。

 

QTへの移行が進みつつありますが、未だにGTKアプリケーションが多いので安定性を求めるならGnomeが良いですね。

2016年5月27日金曜日

Yahoo!JAPANのOTPをGoogle Authenticatorで利用する

Yahoo!JAPANのログインにワンタイムパスワードを利用する際、YahooのOTPアプリのインストールを推奨されます。

わざわざ無駄なアプリは入れたくないので調べてみたところ、YahooのOTPもTOTPに準拠しているようなので、Google Authenticatorが使えます。

2016年4月19日火曜日

Windows 10でbashが使えるようになった

Windows 10でbashが使えるようになりました。

bashを使うにはInsider Previewのfastを受け取れるように設定し、開発者モードに設定、Windowsの機能の有効化または無効化からWindows Subsystem for Linux (Beta)を有効にすることで利用可能になります。

このbashはUbuntuのCanonicalがWindows向けに開発したらしいです。



コマンドプロンプトかPowerShellからbashを起動することでLinuxコマンドが利用可能になります。

最初に起動するとインストールが始まります。




インストールが完了するとスタートにBash on Ubuntu on Windowsが追加されます。





普通に起動するとrootで起動します。

WindowsのユーザとBashでのユーザは別のようで、useraddでbashのユーザを追加できました。



ls /binしてみたところ、基本的なコマンドは揃っているようです。



Ubuntuのバイナリがそのまま使えるようですがよくわかりません。



/mnt/以下にWindows側のドライブレターがマウントされており、bashからアクセス可能です。



システム情報を見てみました。



完全にLinuxとしてbashが動いているようです。



apt-getも使えるので、ubuntuのレポジトリからバイナリをインストール可能です。

2016年3月22日火曜日

systemd-bootを使ってみる

systemd 220-2から、systemdにsystemd-bootというブートローダーが組み込まれていたようなので使ってみます。

2016年3月7日月曜日

fontconfigの設定

Linuxでのフォント設定はfontconfigによって行われています。

fontconfigは、自動でその文字を表示できるようにフォントを選んでくれるのですが、フォントが複数ある場合自分の思うようにフォントが表示されないことがあります。

今回は、Noto Fontsをシステム標準のフォントに設定します。

2016年2月23日火曜日

Arch Linuxで顔文字を正しく表示させる

最近、Unicodeを多用した顔文字が多く利用されています。

多分、利用者の多いiOSで表示できるように作られていて、iOSやOSXでは多くのUnicodeの表示に対応したフォントが入っています。

Windowsの標準フォントも完全ではありませんが、ほぼ表示することができます。

Linuxでの日本語環境で多く利用されているフォントはVLゴシックやIPAゴシックなどですが、これらはほとんど表示することができません。



今回はこちらのサイトの顔文字を正常に表示させられるようにしたいと思います。

(๑˃̵ᴗ˂̵)و 女子力が高そうな顔文字《超厳選編》【コピペ・スマホ用】 - NAVER まとめ

2016年2月11日木曜日

PS4 コントローラー1個で画面分割プレイ

トロフィーやアイテムを取ったり、稼ぎなどでコントローラーが複数必要だけどコントローラーがないということがある思います。

とりあえず2Pのコントローラーがあると認識させる方法を見つけました。

2016年1月30日土曜日

Arch LinuxでPPPoEマルチセッション

Arch LinuxでPPPoEマルチセッションをしてみる。

PPPoEの接続にはpppdを、起動にはSystemdを使用します。

Arch Linuxではnetctlの使用が推奨されていますが、netctlではpppoeの複数接続ができないので直接pppdを使用します。

2016年1月20日水曜日

Arch Linux systemd起動に時間がかかる

Arch Linux起動時にsystemdからの起動に時間がかかるようになりました。

journalctlを見てみると、pppoeの接続でエラーが出ているようでした。

接続に失敗すると再試行し、成功したら起動しているようです。

 

検索してみると、海外のフォーラムに同じような現象が報告されており、RTL8111/8168/8411 カードでr8169がロードされていることが問題のようでした。

 

試しに何のカードを使っているのか調べたところ、ちょうどRTL8111/8168/8411 カードで、r8169がロードされていました。
$ lspci -v
03:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02)
Subsystem: Dell Vostro 220
Flags: bus master, fast devsel, latency 0, IRQ 31
I/O ports at c800 [size=256]
Memory at fe9ff000 (64-bit, non-prefetchable) [size=4K]
Memory at fdff0000 (64-bit, prefetchable) [size=64K]
Expansion ROM at fe9c0000 [disabled] [size=128K]
Capabilities: <access denied>
Kernel driver in use: r8169
Kernel modules: r8169, r8168

 

解決法としては、r8169をblacklistにして読み込まないようにし、r8168のカーネルモジュールを読みこませるといいようです。

私の環境では、NICを複数搭載しており、確認のために他のNICを調べてみると、RTL8169を使用していることがわかりました。

r8169をblacklistにしてしまうとRTL8169のほうが使用できなくなるので困った。。。

2016年1月7日木曜日

Arch Linuxでchinachu

Arch Linux上でPT3+chinachuで録画鯖を作ります。

録画鯖を構築するとしたら、MythTV、epgrec、chinachuのいずれかになると思いますが、

MythTVはGUI必須なので外部からの設定が面倒、番組表関連・BSCSがうまくいかない、

epgrecはかなりごちゃごちゃしているのと、phpに任せるのは不安、

ということで、chinachuで構築することにしました。

 

Arch LinuxではAURにPT3ドライバとchinachuがあるので簡単にインストールすることができました。

 

Arch Linux標準のカーネルではPT3のDVBドライバが有効になっています。

DVBドライバからfuse_b25でデコードしてrecdvbを使いたいところですが、recdvbではBSCSが受信できないらしいので普通のドライバを入れます。

chinachuは録画ソフトを呼び出すだけなので、VLCなどのDVB対応ソフトなら使えるかもしれないです。



 

今回はPT3ドライバにpt3_drv-dkms、デコードにarib25、録画にrecpt1を使うことにします。

2016年1月4日月曜日

Gnome 3でタッチパッドのナチュラルスクロール有効化

Gnome 3では標準でタッチパッドのナチュラルスクロールがオフになっています。

ナチュラルスクロールを有効にすることでOS Xなどのような直感的なスクロールにすることができます。

 

一般的なOSでは 設定 > マウスとタッチパッド から設定できるようですが、私の環境ではタッチパッドの項目が出ませんでした。

Arch Linux Wikiによると、Synapticsから設定する方法が書かれていますが、Gnome 3では再起動時にGnome 3の設定で上書きしてしまいます。

そのため、Gnome 3の設定を変更するためにdconfエディタを使用します。