コンピューター」カテゴリーアーカイブ

ラズパイにSquidでキャッシュサーバーを立てる

現在の自宅ではマンションの無料インターネット回線を使っていて、公称100Mbpsである。実測で90Mbps程度は出るようだが、決して早い部類ではない。工事して個別に光回線を引き込めばいいのかもしれないが、初期費用もかかるし月額料金もかかる。その前に現状でできることはやっておきたい。

回線が細いと何が辛いかというと、同じ(巨大な)gitリポジトリーをcloneしたり、でかいバイナリー(GHCとか)を何回も落としてくるのがしんどい。こういうダウンロードするものを何とかして手元にキャッシュできないか。

家にはラズパイやNASが転がっている。これらは常時稼働しているので(最近はNASは止めているが)、これらにキャッシュサーバーを立てるのが良いだろう。

QNAPのNASの一部機種はProxy Serverに対応しているようだが、残念ながらうちにあるやつは非対応だ。それに、どっちみちHTTPSには(オフィシャルには)対応していない。

ということで、ラズパイにプロキシーサーバーを立てることにする。

今使っているラズパイはRaspberry Pi 4の8GBモデル、ストレージはUSB接続のSSD(256GBくらい)だ。OSはUbuntu 22.04を入れている。今回の記事でラズパイらしさは(最後に書く件以外は)ないので、Ubuntuなら同様にできるだろう。

続きを読む

ミニPCを買った

新しいPCが欲しい

私が普段使うコンピューターはMacですが、Macでは動かないあれこれのために一応Windows環境も持っています。ですが、そのWindowsマシンが10年ほど前に組んだIvy Bridge世代の自作機なので、いい加減辛くなってきました。Windows 11に正式対応していないし。

ということで新しいマシンが欲しいのですが、部屋のスペースを消費したくないので大型のマシンは避けたいです。持ち運ぶ必要性も小さいと思われるので、無用なディスプレイやキーボードやバッテリーの付属するノート型も微妙です。なので、最近[いつ?]色々出ているミニPCを物色することにしました。

続きを読む

Raspberry Pi 4を買った

最近、Raspberry Pi 3を自作HaskellライブラリーのAArch64での動作確認用に使っていた。だが何かとスペックが物足りないので、Raspberry Pi 4の最近新たに出たメモリ8GBモデルに環境を移行することにした。

色々あった結果、ラズパイ本体だけではなくストレージやOS(ディストリ)も変わった:

旧環境

  • Raspberry Pi 3 Model B (メモリ1GB)
  • /: microSD 16GB
  • OS: Ubuntu Server 18.04 LTS 64bit

新環境

  • Raspberry Pi 4 Model B (メモリ8GB)
  • /: USB接続SSD 250GB
  • OS: Ubuntu Server 20.04 LTS 64bit
続きを読む

MacBook Pro (Late 2013) のSSD換装

現在メインで使っているMacBook Pro (Late 2013)のSSDを換装した。(実際に作業したのは2月上旬)

このMacBook Proについて

私がメインで使っているマシンは、6年前に買ったMacBook Pro (Late 2013) である。

Apple公式オンラインストアでMacを買う際には、スペックをある程度カスタマイズができる。メモリに関しては標準より多い16GBを選択した(これを買う前に使っていたMacBookはメモリを最大6GBしか積めなくて辛かった)。

一方、ストレージに関してはカスタマイズせずに256GBのモデルにした。

前に使っていたMacBookはHDDを換装して1TBにしていたのでそれと比べると256GBは狭いが、SSDの容量を増やすと値段が跳ね上がる。写真などの大容量のデータは面倒でも外付けHDDに入れれば良いということにして、多少我慢してでもお金を節約することにした。

また、メモリは換装できないが内蔵SSDは交換できる、みたいな情報をどこかで見た(伏線)ので、購入時のカスタマイズではSSDよりもメモリの増設を優先した。

それから6年。MacBookも世代交代が進み、このLate 2013モデルも古さを感じるようになった。具体的には

  • USB Type-C/Thunderbolt 3に対応していない
  • グラフィック性能が低い(4Kディスプレイに60Hzで出力できない)
  • macOS CatalinaのSidercarの対象外になった
  • 最新のMacBook ProにはTouch IDがあって羨ましい
  • 動画編集をするには圧倒的にスペックが足りない

などだ。

そしてそれ以上に困るのが、SSDの容量が少ないことだ。ちょっと重たいアプリケーション(具体的にはWebブラウザ)を使っているとDisk Fullが頻発し、その度に再起動したりアプリケーションを終了させてメモリを空ける必要がある。内蔵ストレージが256GBは人権がなかった。

SSDの空きがないと、メモリ使用量が増大した時に「「「詰む」」」

内蔵SSDを空けるための涙ぐましい努力の一部は過去の記事にも書いた:

まあすでに6年も使ったのだからそろそろ買い換えても良さそうだが、今はタイミングが良くない。次のモデルチェンジで「物理escキーを持つMacBook Pro」が誕生するかもしれない。なので今すぐ買い換えたくはない。でもSSDが狭いのは辛い。そうだ、SSDを換装しよう!

SSDの換装の準備

このモデルのSSD換装については昔調べたことがあるが、秋葉館で売られているサムスン製の換装用SSDはやたら高かった(5万円以上した)。しかし、改めて調べてみると割安な(2〜3万円で買える)換装用SSDが出ている。これは換装してみても良いのではないか?

ググったりしてもう少し詳しく調べてみると、この世代のMacBook Proの内蔵SSDは端子の形状が特殊で、市販されているm2 SSDをそのまま取り付けることができない。しかしアダプターを介せば市販のm2 NVMe SSDを取り付けることができるらしい。

秋葉館で「秋葉館オリジナル」として売られているのはm2 NVMe SSDとアダプターのセットのようだ(アダプター自体はAmazonとかでも買える)。

内蔵SSDの形状が特殊ということは取り外したSSDを外付け用ケースに入れて使うことができないということでもある(単なるストレージとして使う必要性は少ないだろうが、万が一の場合に元の内蔵SSDからブートしたり内容を参照したりできると安心だ)。まあサムスン製のSSDなら対応外付けケースが↓で売られているようだが、個体によってSSDのメーカーが違うのでそういう場合は使えない。

TranscendのJetDriveというのだったらケースとセットでSSDが売られているようなので、どうしても取り外したSSDを外付けで使いたい、というのであればそれが最善手だろう。

今回は取り外したSSDを無理に外付けで使う必要はないと思ったので、「秋葉館オリジナル」のセットを買った。

macOSのバージョンにも注意する必要がある。私のMBPに入っているのはmacOS 10.14 Mojaveだが、まっさらなSSDを取り付けた後だと製造時のOSが古すぎて新しいSSDを認識しないんだったか、インターネットから最新のmacOSを取ってきて10.15 Catalinaが入ってしまうんだったか、なんだかそんな話だった。なので、USBメモリ等で10.14のブートメディアを作っておくと良いらしい。

ただ、そもそもSSDの残量が少ないので、OSのアップグレードをしたりApp StoreからMojaveを改めてダウンロードしたりすることができない。そこで、別の方法を取ることにした。

これから設置するSSDの端子はm2 NVMeなのでその辺で売られている外付けケースを利用できる。そして、古いSSDのままMBPをブートした状態で、外付けケースに入れた新しいSSDにデータをコピーする。コピーが終わったらいよいよSSDを交換し、MBPを起動する(実際に起動する前に外付けの状態から起動できるか確認した方がいいかもしれない)。

というわけで、秋葉館のセットとは別にNVMe SSD用のUSB外付けケースを買った。5000円未満で買えた。(m2 SSD用のケースはNVMe専用のやつとSATA専用のやつがあるので注意しよう。安いやつはSATA用だったりする)

あとはもちろん忘れてはいけないのがドライバーだ。このMacBookの裏蓋を開けるには普通のプラスドライバーやマイナスドライバーではダメで、星型の特殊なドライバーを使う必要がある。また、内蔵SSDのネジは六芒星みたいな形の溝が6つあるタイプ(ヘクスローブ)らしい。というわけで、ドライバーも秋葉館で買った(物自体はAmazonとかでも買えるはず)。

秋葉館で買った、SSD換装セット(m2 NVMe SSD + アダプター)とドライバー2本
その辺のアキヨドで買った、NVMe SSD用のケース(5000円弱)

換装

手順は

  1. 買ったSSDを外付けケースに入れる
  2. データを移行する
  3. 外付けケースからSSDを出し、MacBook Proの内蔵SSDと交換する

という流れになる。

まずはSSDを外付けケースに入れる(手順1)。何も迷うことはない。「やるだけ」だ。(強いて言えば、この段階でSSDに付属した放熱シートを貼っても良かったかもしれない)

新しいSSDを外付けケースの基板に取り付ける

手順2のデータの移行に関しては、ディスクユーティリティでの「復元」がうまくいかなかった(最近のMacでは「復元」はサポートされていないらしい?)ので、Time Machineで行った。SSDの読み書き速度は速くても、Time Machineのバックアップ先はHDDなのでその速度に縛られる。ワクテカしながら正座待機しよう。

手順3のMacBook開腹に関しては、ググったら色々出てくる。筆者は

を参考にした(MacBook開腹以外の、データ移行のやり方などは違う)。

まずは10箇所ぐらいあるネジを回して、裏蓋を開ける。ネジを緩めてもすぐには外れないので、「テレホンカード」あるいはそれに類するものを使うと良い。

MacBookの中は、ファンの周辺に埃が溜まっている可能性があるので、ついでに掃除すると良いだろう。ただし息を吹きかけるのはやめたほうが良いらしい。

SSDを換装する前に、バッテリーのコネクタを外しておこう。筆者はコネクタの部分に紙を挟んで接触しないようにしておいた。

MacBook Proのバッテリーのコネクタと、挿さっている旧SSDと、新SSD(および外付けケースの基板)

あとはまあSSDを交換すれば良い。詳しくは写真を見てくれ。

取り外した旧SSD、新SSD&アダプターと、外付けSSDケースの基板。旧SSDと新SSDの端子の形が違うのがわかる
新SSDにアダプターと放熱シートを取り付けた様子。旧SSDと寸法がほぼ同じになる

新しいSSDをMacに取り付ける際には、かなり奥まで挿し込まないとネジで固定できない。頑張ろう。

SSDの換装完了。あとは裏蓋を閉じるだけ

SSDの換装を終えて裏蓋を閉じれば、Macが起動できるようになっている(データの移行はすでに済んでいるので)。お疲れ様でした。

SSDを換装すると「新しいマシン」扱いになるようで、おなじみの「Macを設定」みたいなやつが出てきた。Dropboxも新しいマシン扱いになるので、無料プランで3台以上で使っている人は注意しよう。

換装を終えて(感想)

換装後はトラブルもなく起動でき、SSDの空き容量も増えていた。あっけない気もするが、トラブルがないことに越したことはない。

SSDの容量の心配をしなくても良いのはすごい。人権を感じる。でかいGitリポジトリをチェックアウトしたり、Unity等のでかい開発ツールをインストールできる。仮想マシン用の仮想HDDも気兼ねなく作れる。~/.stack/ の掃除とか考えなくて良い。

結論:大容量SSDは正義。

Macのストレージを空けた (2)

関連:Macのストレージを空けた

またMacのSSDの空き容量が減ってきたので、なんとかする。

duコマンドでホームディレクトリ以下を検査して、容量を食っているやつをチェックする。

~/Library/Application Support/MobileSync/Backup/

20GBくらい。

こういうバックアップの類はなるべく消したくないタチなので、できれば外付けドライブとかに移したい。ググったらシンボリックリンクを貼れば良いというのが出てきたが、リンク先のドライブが接続されてない場合の挙動が心配である。

というわけで今回はパス。

~/Library/Developer/Xcode/

7.1GBくらい。

中でも、 iOS DeviceSupport というサブディレクトリが6.3GBほど食っているようである。

ググって調べたところ、新しいiOSデバイス、または新しいiOSの入ったデバイスを接続すると iOS DeviceSupport の中身が増殖するらしい。

$ rm -r 7.1.* 8.0.* 8.1.*

のようにして、最新のバージョン(8.4)以外を削除。

古いHaskell Platform

7.10.2を入れたので7.8.3には消えてもらう。手順は前の記事に書いた。

Macのストレージを空けた

今使っているMacはMacBook Proの256GBフラッシュストレージモデルで、いくらでもファイルを保存できるという感じではない。購入から1年近く経った今、90%以上の領域を使ってしまっている。そこで、使用頻度の低いファイルを外付けHDDに追い出したり、使わなくなった古いバージョンのソフトウエアを積極的に削除していくということが必要になる。

Haskell Platform

~/Library/Haskell 以下にいろいろ入っている。
$ du -h -d 2 Library/Haskell で調べた感じ、古いGHC 7.6.3が1.3GBほど占めているようだった。なので古いGHCを消す。
手順はMac OS X – HaskellWikiをみた限りでは uninstall-hs コマンドを使えばいいらしい。

$ du -h -d 2 Library/Haskell
144K	Library/Haskell/bin
 26M	Library/Haskell/doc
1.3G	Library/Haskell/ghc-7.6.3/lib
1.3G	Library/Haskell/ghc-7.6.3
3.2G	Library/Haskell/ghc-7.8.3/lib
3.2G	Library/Haskell/ghc-7.8.3
188K	Library/Haskell/logs
203M	Library/Haskell/repo-cache/hackage.haskell.org
156M	Library/Haskell/repo-cache/hdiff.luite.com
359M	Library/Haskell/repo-cache
4.9G	Library/Haskell
$ uninstall-hs -v
-- Versions found on this system

7.6.3
    /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64
    /Library/Haskell/ghc-7.6.3
    /Users/*/.ghc/x86_64-darwin-7.6.3
    /Users/*/Library/Haskell/ghc-7.6.3

7.8.3
    /Library/Frameworks/GHC.framework/Versions/7.8.3-x86_64
    /Library/Haskell/ghc-7.8.3
    /Library/Haskell/ghc-7.8.3-x86_64
    /Users/*/.ghc/x86_64-darwin-7.8.3
    /Users/*/Library/Haskell/ghc-7.8.3

-- To remove a version and all earlier: uninstall-hs thru VERSION
-- To remove only a single version:     uninstall-hs only VERSION

$ uninstall-hs only 7.6.3
-- Would remove just version 7.6.3
/Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64
/Library/Haskell/ghc-7.6.3
/Users/*/.ghc/x86_64-darwin-7.6.3
/Users/*/Library/Haskell/ghc-7.6.3
/Users/*/Library/Haskell/bin/cpphs@ -> ../ghc-7.6.3/lib/cpphs-1.18.4/bin/cpphs
/usr/bin/ghc-7.6.3@ -> /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/bin/ghc-7.6.3
/usr/bin/ghc-pkg-7.6.3@ -> /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/bin/ghc-pkg-7.6.3
/usr/bin/ghci-7.6.3@ -> /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/bin/ghci-7.6.3
/usr/bin/haddock-ghc-7.6.3@ -> /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/bin/haddock-ghc-7.6.3
/usr/bin/runghc-7.6.3@ -> /Library/Frameworks/GHC.framework/Versions/7.6.3-x86_64/usr/bin/runghc-7.6.3
-- To actually remove these files, sudo run the command again with --remove
-- To generate a script to remove these files, run the command again with --script

$ sudo uninstall-hs only --remove 7.6.3
Password:
-- Removing just version 7.6.3

そもそも今インストールされているGHC 7.8.3も最新版じゃないという気がするが。

TeX Live (MacTeX)

古いTeX Live 2013が入っていたので消す。確かMacTeXで入れたような気がするので、このへんを読んでおく。普通に /usr/local/texlive/2013 を消せばいいみたい。

$ du -d 1 -h /usr/local/texlive
4.4G	/usr/local/texlive/2013
4.5G	/usr/local/texlive/2014
4.0K	/usr/local/texlive/texmf-local
8.9G	/usr/local/texlive
$ sudo rm -rf /usr/local/texlive/2013

その他

Homebrewで入っている古いソフトウエアを消したりMacPortsで入っている古いソフトウエアを消したり、Dropboxで同期しているでかくて使用頻度の低いファイルを同期しないようにしたりいろいろ

タブレット端末からのリモートデスクトップでWindowsのタッチ操作を試す

最近のWindowsはタッチ操作に対応している。が、タッチに対応したディスプレイなんて持っておらず、わざわざ買うほど必要性も感じない。そういう場合に、iOS/Android端末と、リモートデスクトップ接続を受け付けることができるWindowsを持っていると、Windowsのタッチ操作を試せる。

今回のWindows 8.1を買う前の下調べで、(無印とProの違いの一つである)Windowsのリモートデスクトップ機能についてググっていたところ、「iOS/AndroidタブレットからリモートデスクトップでWindowsにつなぐと、タッチ操作ができる」という情報を見かけた(このへん)。そういうことなら、リモートデスクトップができるPro版を買うしかない。と思って、無印よりも数千円高いPro版のWindows 8.1を買ったのだった。

以下、iPadからリモートデスクトップでWindows機を操作するまでの手順。

Windowsの設定でリモートデスクトップを有効にする

コントロールパネルで
システムとセキュリティ > システム > リモートアクセスの許可
とクリック。
remotedesktop-step1

リモートデスクトップのオプションで、「このコンピューターへのリモート接続を許可する」をクリック。
remotedesktop-step2

なんかメッセージが出るので「OK」を押す。
remotedesktop-step3

これで、リモートデスクトップが有効になった。
remotedesktop-step4

iOS端末/Android端末にMicrosoft純正のリモートデスクトップクライアントを入れる

インストールが終わったら、起動して適当に設定してやる。

遊ぶ

リモートデスクトップでつなぐと、画面サイズはクライアント側で指定したものになる。iPadからつなげばiPadの画面サイズになる。画面の向きは、横向きで固定のようだ。

「コンピューターの基本的な情報の表示」を見ると、「ペンとタッチ」の項目は「10タッチポイントでのタッチ(制限あり)のサポート」となっている。「制限あり」とあるがどこが制限されているのかはよく分からない。
IMG_0065

みんな大好きな「ペイント」では、ブラシツールを使って複数点同時に描くことができるようだ。IMG_0066

自作PCにWindows 8.1を導入した (2)

前回: 自作PCにWindows 8.1を導入した

Arch LinuxとWindowsのデュアルブート

自分がArch Linuxを入れる時に使ったブートマネージャーはrEFIndだった。そのコンピューターに追加でWindowsを入れると、Windows Boot Managerがハードディスクのどこかにインストールされてそれが使われるようになる。が、それだと起動時にOSを選択できないので、ブートマネージャーの選択をrEFIndに戻す。ブートマネージャーを選ぶには、ファームウエア(UEFI?)の側でブートデバイスを選ぶ要領でやればよい。自分が使っているGIGABYTEのマザーボードだと、電源投入直後にF12を押すとブートデバイスを選択する画面が出るので、そこでrEFIndを選択した。

rEFIndの画面には、起動できるOS(今は2種類。OSのインストールDVDを入れるとそれも選択肢に現れる)の一覧が表示されるので、それで選べばよい。

ハードウエアクロック

Arch Linuxをインストールした時、ハードウエアクロックはUTCで設定したが、Windowsではデフォルトで地方時(local time)を使う(?)ので、日本だと9時間ずれた時間がWindows上に表示される。

この問題については、Arch Wikiの記事に書いてある(日本語記事)。記事に従ってレジストリをいじればよい。Windowsによる時刻同期は、よくわからないが切った方がいいらしい。

ソフトウエアのインストール

コマンドラインで使えるWindows向けのパッケージマネージャーであるところのChocolateyを入れてみた。そうすると、管理者権限のあるコマンドプロンプトとかPowerShell上で

choco install virtualbox
choco install GoogleChrome
choco install gimp

という具合でソフトウエアを導入できる。便利。

デュアルブートじゃなくて仮想化で同時に使いたい

先に書いたように、起動時にWindowsかArch Linuxかを選択すれば、どちらか一方のOSを起動できる(デュアルブート)。が、時代は仮想化だ(?)。Windowsを立ち上げつつLinuxも使う、あるいはその逆をやりたい。それも、新しく仮想マシンにLinuxをインストールするのではなく、既に物理ハードディスクにインストールしてあるLinuxを使いたい。

普通、仮想化ソフトウエアでOSを動かすときは、ゲストOS用のハードディスクの実体はホストOSのファイルシステム上に作られる数十GBのファイルになっているが、その代わりに物理ハードディスクを直接ゲストOSに割り当てたい。

VirtualBoxの場合はこの辺の手順でそれができるらしい。が、なぜかうまくいかなかった。どういうエラーが出たかは覚えていない。

そういえば今回インストールしたのは8.1 Pro (x64)なので、Hyper-Vというやつが使えるはずだ。試してみようということで、
コントロールパネル > プログラム > プログラムと機能 > Windows の機能の有効化または無効化
でHyper-Vにチェックを入れ、再起動。この辺の記事を参考に設定しようとしたが、物理ディスクをオフラインにする手順のところで詰まった。具体的には、
コンピューターの管理 > 記憶域 > ディスクの管理
で、Arch Linuxが入っているディスク0をオフラインにしようとしたら、「現在のシステムディスクまたは BIOS ディスク 0 上のディスク属性は変更できません。 」というエラーが出た。EFIが入っているディスクだからダメなのか。よくわからん。

続きはまた今度。

自作PCにWindows 8.1を導入した

1年半前にパソコンを自作したのだが、今まではLinux (Arch Linux)だけを入れて使ってきた。だが、何となくWindows環境の必要性を感じたので、Windows 8.1 Pro (DSP版)を買ってきてインストールすることにした。無印じゃなくてProにしたのは、リモートデスクトップを使いたいというのが主な理由だ。

そのパソコンに入っているHDDは手持ちの物の再利用(前はMacBookに入っていたが、容量が狭くなり換装したので余った)で、潤沢に容量があるというわけではなかったので、HDDも新しいのを買った。

インストールだが、特に何の問題もなかった。DVDから起動して、(新しく導入した)HDDを選択して、おわり。Microsoftアカウントの名前はローマ字にしていたので、ホームディレクトリの名前はローマ字になった。

とりあえず導入したソフトウエアは

  • Firefox
  • Dropbox
  • iCloud for Windows
    • ついでにBonjourが入るので他の端末から ホスト名.local で参照できるようになる

で、明日以降もっとほかのソフトウエアとかも入れて環境を整えたい。

…と思ったが、Arch Linuxを起動できるか確認していない。Arch Linuxの時はrEFIndを使っていたが、WindowsのUEFI事情はよく分からない。明日以降なんとかしたい。Arch Wikiのこのへんが参考になるだろうか。