これは何? †
- 2008年以来 macOS を使っている
- 自分は環境マニアではないので*1、お金は出すから、買ってきてすぐに使えるパソコンがほしい
- 2000年代の Apple は、まさにそれを体現していた
- 今までの Mac OS を引き継ぐおしゃれなデスクトップ
- 普通に Unix として使える
- でもシステムの設定とか、基本的にユーザはやらなくていい
- Perl, Python, Java などの言語系が最初からインストールされている
- 今 Macbook Pro 15 (Late 2013) を快適に使っているんだけど、バッテリー系がそろそろヘタれてきたので、買い替えを検討中。あと10月に消費税も上がるし
- でも、欲しい Macbook Pro が無い。
- 携帯性重視の Macbook 12 でペタンコなキーボードなのはわかるけど、Macbook Pro は薄くしなくていいからちゃんと打鍵できるキーボードにしてほしい
- Radion ぢゃ 機械学習 (Tensorflow) 動かねぇじゃん。Nvidia の GPU 載せろや
- 価格性能比で、Lenovo や DELL に劣る
- 自分で メモリ・SSD を交換できるようにして、一回だけ近代化改修で延命できるようにしてほしい
- あと、バッテリーも一回くらいは交換したい
- ということで、脱 macOS ができるかどうかを検討してみる
- 価格という点だと、Apple は現行機を下取りしてくる (5〜7万) それ勘定に入れる必要あり・・・、下取り代金は Apple 製品を買うときのクーポンの形でくれるんで、Macbook ではなく iPhone を買い換えるときに使えるっちゃ使えるけど
想定する移行環境 †
- Win 10 Pro の Hyper-V で Ubuntu ベースのデスクトップLinux を考えてみたけど、2回ログインするのめんどいので却下
- Win 10 と デスクトップLinux のデュアルブートで完全に切り分けちゃおうかな
- Lenovo の ThinkPad? X1 Extreme が良さげ
CPU | 8Gen Corei5/i7 |
Mem | 2 Slot (自分で差し替え可能) |
SSD | 2 Slot (自分で差し替え可能) |
GPU | GTX 1050 Ti |
Display | 4K LCD |
SSD1 は、プレインストールの Win10 にしておき、SSD2 に Linux をインストールして完全に切り分け。普段は Linux を使う
- July 2019 に、2nd Gen が発売されるらしい
CPU | 9Gen Corei5/i7/i9 |
Mem | 2 Slot (自分で差し替え可能) |
SSD | 2 Slot (自分で差し替え可能) |
GPU | GTX 1650 |
Display | 4K OLED |
想定する OS (ディストリビューション) †
- さすがに Pop!_OS は使いこなせそうもないので、Mint (Ubuntuベース) を使ってみる
初期設定 †
パッケージ取得元を速いミラーサイトに変更する †
最新版にアップデート †
# sudo apt update && apt upgrade -y
フォルダ名を英語にする †
# LANG=C xdg-user-dirs-gtk-update
macOS で出来てるあれを Linux でできるか検証 †
[OK] 日本語入力 †
- [設定]-[システム設定]-[入力方法] で Mozc (Google日本語入力のOSS版) をインストールする
- Ctrl+Space で日本語入力ができる
[OK] Chrome †
- Firefox で https://www.google.com/chrome/ を開き、インストーラ( deb )をダウンロードしてインストール
- インストール後、スタートメニューの Chrome アイコンを右クリックすると、デスクトップやツールバーへ Chrome のアイコンを置くことができる
- 使っている plugin も使える
Currently | 時刻と天気を表示 |
Keepa | Amazonの価格の推移を表示 |
Douga Getter | Youtubeのダウンロード |
Quick Language Switcher | ブラウザの言語切替(開発用) |
[OK] Office (Pages, Numbers, Keynote) †
[OK] Omni Graffile †
[OK] Win10 と Linux Mint とのデータのやり取り †
[OK] Mail †
- Linux Mint には、最初から Firefox Thunderbird が入っている。まぁ、これでいいんじゃないですか? メインは、スマホ と GMail なんで、メーラーはとりあえずメールが見られればいい
[OK] ウィルスチェック †
- Sophos 無償、リアルタイム保護、GUIなし
- cf. テスト用ウイルス (無害)
- しばらく top を眺めていても、ほぼ CPU 負荷は無し
[OK] 1Password †
- Chrome拡張の 1PasswordX Beta でなんとかなりそう
- すでに設定されているパスワードの呼び出しができた
- 新たなサイトに乱数のパスワードを設定するのも大丈夫そう
- Chrome拡張
1Password | インストールされている macOS/windows 用の 1Password を呼び出す Chrome 拡張 |
1PasswordX | Chrome plugin だけで 1Password を実現する |
1PasswordX Beta | 新機能を取り込んだβ版。2019-06-03 現在、新しいサイトの登録はβ版でしかできない |
- 事実上 Web と iPhone アプリのパスワード管理なんで、これで問題ないかなとおもう
[NOT BAD] 辞書 †
[OK] Printer/Scanner (Brother DCP-J552N) †
- avahi が有効な環境では DEVICE URI に 17 自動 が登場する
- avahi が有効な環境では、Linux Mint が勝手にプリンタを Lookup するが、このプリンタでは印刷できない。勝手に登録されるプリンタを消しても勝手に再登録されるので、無効なプリンタとして設定して、自分で登録したものをデフォルトプリンタにする必要がある。
[OK] iTerm (接続先ランチャー) †
- Mint Terminal で、接続プロファイルを選んで実行することができる
- 接続プロファイルはこんな感じ。最初に ssh コマンドを実行して、接続先ごとに色使いを変えられたら、それでもう十分
[NOT BAD] iStat Menus †
- macOS には、かっこいいツールバー常駐アプリがある. $9.99
- Linux Mint (Gnome) の場合は、ツールバー常駐アプリを Applet というらしい
- まぁ iStat Menus ほどかっこよくはないけど、機能面では十分かな
[OK] 動画再生 †
- シンプルなメディアプレーヤーがある。mp4 FullHD の動画を再生できた
- いざとなれば VLC で何でも再生できるわな
[OK] VSCode †
今宵はここまで †
[?] Source Tree (Git GUI) †
[?] Filezilla (SCP/SFTP) †
- Mint標準の Nemo (ファイルエクスプローラ) が SCP/SFTP を喋れる?
--実機が必要-- †
[?] Touch-pad †
- Macbook Pro でできていること
- タッチパッドどこでも押し込みでクリック
- 二本指縦スワイプ : 上下スクロール
- 二本指横スワイプ : 戻る・進む
- 三本指横スワイプ : 隣のワークスペース(仮想デスクトップ)に移動
- これ Thinkpad X1 Extreme でもできんのかなぁ?
[?] Vagrant †
- Virtualbox for Linux 要るの? KVM でもいいの?
- なんか Virtualbox の VM 形式で KVM を選べる (選ぶといい) らしい
ハードウェア関連 †
Wifi Driver for tp-link Archer T3U AC1300 †
$ git clone https://github.com/jeremyb31/rtl8822bu.git
$ cd rtl8822bu
$ make
$ sudo make install
install -p -m 644 8822bu.ko /lib/modules/4.15.0-54-generic/kernel/drivers/net/wireless/
/sbin/depmod -a 4.15.0-54-generic
$ cd ..
$ sudo dkms add ./rtl8822bu
Creating symlink /var/lib/dkms/8822bu/1.1/source -> /usr/src/8822bu-1.1
DKMS: add completed.
$ sudo dkms install 8822bu/1.1
Nvidia driver †
- なんにも難しいこと考えなくて良さげ
- OSSのNouveauドライバをblacklistに入れてとか
- xorg.conf にトリッキーな記述を書いてとか
- [システム管理]-[ドライバマネージャ] で、Nouveau から Nvidia のプロプラエタリドライバ for Ubuntu18 に差し替える
- なんか CUDA 込みみたい。
- デスクトップでも構成によっては標準で dGPU として振る舞うみたい
- ディスプレイを繋いでいるのはマザーボード側。NvidiaのPCIカードには繋いでいない
- こういうときは、ディスプレイ出力は CPU 内臓の GPU で行い。絵を作るのは Nvidia の GPU と言うように振る舞うみたい
- ノートでも多分こうなるでしょう
- ツールバーの Nvidia アプレットで、Nvidia の GPU を Off にできる
- すげー楽ちん
- ちなみに、Nvidiaから最新のドライバを落としてきてインストールするとうまく動かない...Cinamon(Window Manager)がハングアップしてまともに動かない
Docker †
- Linux Minit 19 は、Ubuntu 18 ベース
- docker や nvidia-docker は、環境変数や lsb_release コマンドで OS のバージョンを取る手順になっているけど、Linux Minit は独自のバージョンを返すので、公式サイトのインストール手順でやってもうまく行かない。
- Ubuntu 18 のバージョンを即値で指定してやる必要がある
docker-ce †
$ sudo apt -y update
$ sudo apt -y install curl apt-transport-https ca-certificates curl software-properties-common
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo add-apt-repository "deb https://download.docker.com/linux/ubuntu bionic stable"
- 公式サイトでは https://docs.docker.com/install/linux/docker-ce/ubuntu/
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable test edge"
だと lsb_relase が tina (Linux Mint 19 の 愛称 を返すので)
Malformed input, repository not added.
- OSバージョンを Ubuntu 18 の愛称である bionic に変えても同じ。OSバージョンを bionic にして [arch=amd64] を削除したらうまく行った
nvidia-docker †
$ curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add -
$ curl -s -L https://nvidia.github.io/nvidia-docker/ubuntu18.04/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list
$ sudo apt install -y nvidia-docker2
$ sudo pkill -SIGHUP dockerd
docker-compose †
$ sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ docker-compose -version
docker-compose version 1.24.1, build 4667896b
動作確認 †
$ sudo docker run --runtime=nvidia --rm nvidia/cuda nvidia-smi
Sat Sep 21 16:25:30 2019
+-----------------------------------------------------------------------------+
| NVIDIA-SMI 430.26 Driver Version: 430.26 CUDA Version: 10.2 |
|-------------------------------+----------------------+----------------------+
| GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
|===============================+======================+======================|
| 0 GeForce RTX 2070 Off | 00000000:01:00.0 Off | N/A |
| 19% 43C P8 18W / 175W | 156MiB / 7982MiB | 3% Default |
+-------------------------------+----------------------+----------------------+
+-----------------------------------------------------------------------------+
| Processes: GPU Memory |
| GPU PID Type Process name Usage |
|=============================================================================|
+-----------------------------------------------------------------------------+
$ sudo docker run --runtime=nvidia --rm nvidia/cuda nvcc --version
nvcc: NVIDIA (R) Cuda compiler driver
Copyright (c) 2005-2019 NVIDIA Corporation
Built on Sun_Jul_28_19:07:16_PDT_2019
Cuda compilation tools, release 10.1, V10.1.243
よか
docker-ce のアップデート抑止 †
sudo なしの docker 実行 †
$ sudo groupadd docker
$ sudo gpasswd -a $USER docker
$ sudo systemctl restart docker
- sudo なしで docker を実行できるユーザ → docker グループに登録すればいい
- 要ログオフ・ログイン
- VSCode と Docker を連携させるときに必要な設定のようだ
サーバー機能 †
OS起動時にWifi接続 †
- 特に設定しないと、デスクトップにログイン時に Wifi 接続。外からアクセスするためにはOS起動時にWifiに接続する必要あり
- デバイス情報を調べる
$ iw dev
phy#0
Interface wlx503eaadaff7a
ifindex 3
wdev 0x1
addr **:**:**:**:**:**
ssid ap********
type managed
txpower 12.00 dBm
- /etc/netplan/1-network-manager-all.yaml に設定する
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
wifis:
wlx503eaadaff7a:
addresses: []
dhcp4: true
optional: true
access-points:
ap********:
password: **********
- 設定
$ sudo netplan apply
SSH †
$ sudo apt install openssh-server openssh-client
$ sudo systemctl enable sshd
$ sudo systemctl start sshd
- ログインユーザの鍵セットを作る
$ ssh-keygen -t rsa
$ cd .ssh/
$ ls
id_rsa id_rsa.pub
$ cat id_rsa.pub >> authorized_keys
- 秘密鍵を USB メモリでアクセス元に持っていく
$ cp /Volumes/USB-MEM/id_rsa ~/.ssh/id_rsa.ai-chan
- アクセス元の ~/.ssh/config に登録する
Host github.com
AddKeysToAgent yes
UseKeychain yes
HostName github.com
IdentityFile ~/.ssh/id_rsa.github
User git
Host sakura
HostName ***.***.***.***
User ********
IdentityFile ~/.ssh/id_rsa.sakura
ServerAliveInterval 200
Host ai-chan.local
User ********
IdentityFile ~/.ssh/id_rsa.ai-chan
ServerAliveInterval 200
- アクセスしてみる
$ ssh ai-chan.local
x11vnc †
※ これは遅すぎて使い物にならない。sshd が落ちたときの緊急避難用かな
- install
$ sudo apt -y install x11vnc
- setting
$ sudo mkdir /etc/x11vnc
$ sudo x11vnc --storepasswd /etc/x11vnc/vncpwd
- systemd (/lib/systemd/system/x11vnc.service)
[Unit]
Description=Start x11vnc at startup.
After=multi-user.target
[Service]
Type=simple
ExecStart=/usr/bin/x11vnc -auth guess -forever -noxdamage -repeat -rfbauth /etc/x11vnc/vncpwd -rfbport 5900 -shared
[Install]
WantedBy=multi-user.target
- restart
$ sudo systemctl daemon-reload
$ sudo systemctl enable x11vnc.service
$ sudo systemctl start x11vnc.service
$ sudo systemctl status x11vnc.service
Linuxデスクトップでは要らないもの一覧 †
要らないもの | 必要な頻度 | 代替手段 |
DVD再生 | ほぼなし | デュアルブートのWin10で行う |
Bluray再生 | ほぼなし | デュアルブートのWin10で行う |
iTunesで楽曲登録(英会話教材) | 低頻度 | デュアルブートのWin10で行う |
音楽再生 | 高頻度 | iPhoneで再生 |
Linux Desktop