Slackware ARMでGoogle Driveを使う(成功!)

手順をまとめました.

四苦八苦していた,Slackware ARMへのGoogle Driveのマウントですが,成功しました.

まず,失敗のページのopamを使ったgoogle-drive-ocamlfuseまでのインストールは正しかったです.

にもかかわらず,認証のために引数なしでgoogle-drive-ocamlfuseを立ち上げてもエラーが出てします.

結論的にはこのエラーの原因は,このマシンのホームディレクトリーに,大昔のx86 32bit時代にいじった .gdfuse ディレクトリーが継承されていたことによります.

エラーが出たら,Google Driveを使いたい人のホームディレクトリーで,

rm -rv .gdfuse

として,古い設定ファイルを消します.

そして,以降の手順は,前のページでも参照した,

のほぼその通りです.ただし,もともとSlackware ARMにはFirefoxはないので,Firefoxのかわりに,www-browserという名前の以下の内容のファイルを実行可能にして,PATHの通るところに置きます.

#! /bin/sh
echo $* > /dev/stderr

上記Qiitaの例では,ホームディレクトリーに置いて,そこにパスを通していますが,筆者の場合はもともと$HOME/binにPATHを通しているのでそこに置きました.

.gdfuseのない状態で,google-drive-ocamlfuseを起動すると,長ったらしいURLが表示されますから,それを手元のブラウザにコピペして認証すればOKです.

Slackware ARMでGoogle Driveを使う(失敗)

手順をまとめました.

Raspberry Pi OSにGoogle Driveをインストールする方法は,あちこちに書かれていますね.例えば,

です.以前,Slackware64でうまくいったので,次にSlackwere ARM 14.2でなんとかならないか試みました.基本的なインストール手順は,

  1. ocamlをインストールする
  2. opamをインストールする
  3. google-drive-ocamlfuseをインストールする

ですが,sbopkgでocamlをインストールしようとしても,エラーが出て先に進めません.それを最初に確認したのは,もう3年近い昔なのですが,ほったらかしていました.

最近,Raspberry Pi 4 Model Bを追加購入して,Raspberry Pi OSにGoogle Driveをマウントできるようにしたら,もう一度Slackware ARMでやってみようと思ってネット検索してみました.すると,ocamlをSlackware ARMでbuildするための解決法がありました.

リンク切れも起こりえるので,要点を書きますと,ocaml.SlackBuildの,

--host $ARCH-slackware-linux

を,

--host $ARCH-slackware-linux-gnueabi

に書き換えれば(あるいは-gnueabiを追加すれば)良いのです

ocaml.SlackBuildや,ソース類は,SlackBuild.orgからダウンロードできます.

できた/tmpにあるバイナリーをinstallpkgしたら,次はopamです.

sbopkg -i opam

であっさりいきました.あとでbubblewrapとやらも必要となるので,

sbopkg -i bubblewrap

とします.

いよいよ,opamでの作業ですが,opamはroot権限非推奨とのことなので,Google Driveを使いたい一般ユーザーでログインして,冒頭のQiitaの記事を参考に以下のコマンドを実行します.

opam init
eval $(opam env)
opam update
opam install depext 
opam depext google-drive-ocamlfuse 
opam install google-drive-ocamlfuse

質問にはいずれもデフォルト(リターンのみ)で回答してます.最後の本体のインストールは時間がかかります.

エラーもなく,google-drive-ocamlfuseがインストールできましたが,認証のため,GUI (KDE)のKonsoleからgoogle-drive-ocamlfuseを引数なしで起動したところ,

Fatal error: exception Invalid_argument("index out of bounds")

というエラーが出てしまい,頓挫です.またしばらく棚上げします😓

追記

成功しました → Slackware ARMでGoogle Driveを使う(成功!)

-gnueabihfかも知れませんが,調べる予定はありません😓

Raspberry Piで暮らせるか (2) Browserも厳しい

いきなりつまづきました.WSを日常的に使うにあたって,Web browserが十分に使えれば,9割がたの仕事はRaspberry Piで済ますことができそうです.しかし,かなり厳しいです.

SNSやBLOGに写真を貼り込むのが案外面倒です.写真はiPhoneで撮ります.Macintoshではその写真をどう貼り込んでいたかというと,iPhone側で写真を選んで「コピー」して,Macionshで「ペースト」すれば完了です.これに慣れてしまったのが敗因かもしれません.すべてこれでうまく行くわけではありませんが,MeWeとFacebookはOKです.

これが使えない,WordPressのBLOGの場合,Firefoxで記事の作成・編集中に,いったん「写真」アプリにて,貼り付けたい写真をデスクトップにドラッグします.

そして,FirefoxのBLOG編集画面に戻り,デスクトップに置いた写真を一つずつはめ込みたいところにドロップしていきます.

MeWeやFacebookでは,できた各種のおかずの乗った大皿から直接弁当箱に菜箸で入れるのに対して,WordPressでは,一旦別の皿に置いてから弁当箱に入れるような感じでしょうか.

それでは,同様のことをRaspberry Piでするにはどうすればいいか.気の遠くなるような手順が必要そうです.それはおおげさにしても,最短で,

  1. Chromiumの新しいタブにGoogle Photosを開く(Google Photosへの自動uploadをiPhoneでONにしています)
  2. 差し込みたい写真を選んで,ダウンロードの機能を実行(drag & dropはできない
  3. 複数の写真だとzip化されるので,ダウンロードフォルダーから適当なところに移して展開
  4. 差し込みたいSNS, BLOGにドロップ

で,たぶん行きそうです.

わが家の庭に実った大きな渋柿

やってみれば,まあ,それほど手間ではありませんでしたが,手軽さは「iPhoneでコピーしてMacのブラウザにペースト」には遠くおよびません.中間的な置き場所にもファイルは残りませんので,あとで整理(廃棄)する必要もないですし.

また,browserの責任ではありませんが,日本語変換のMozcがあんまり良くありません.一番けしからんのは,全角文字を入力している途中で,偶発的に日本語入力が解除されてしまうときがあり,そのとき,入力途中の文字が全部消えてしまうのです.偶発なので,どういう操作がそれを招いているかわかりません.まあ,がっかりします.未変換の文字がある場合は,制御を渡さないくらい堅牢な設計にして欲しいです.

それと,Chromiumも固まりますね.昨夜はBLOGかSNSに入力中に固まり,外のマシンからsshで入って, “halt”をかけて就寝しました😥 GUIは固まりましたが,システムは生きていたのでまだ良かったです.

Work Station.まあ,サーバーでないパソコンですね.
Googleの責任ではあります😥

Raspberry Piで暮らせるか

まあ,無理です😥 それでもできるところまでやってみます.

日常生活において,パソコンで何をしているか考えてみます.

  1. Web browserでの作業(SNS, メール,クラウドの表計算など)
  2. メール専用アプリを使う
  3. 専用アプリでSNSを利用
  4. 音楽を聞く
  5. 写真のアルバムいじり(写真の追加,整理)
  6. ドキュメントスキャナーにつないで,レシートやもろもろの書類を電子化して整理
  7. ターミナルソフトで,サーバーにつなぐ
  8. 仮想マシンのWindowsを動かす
  9. ドキュメントソフトで日記を書く

くらいでしょうか.全体の割合のうち,1が半分以上でしょう.Raspberry Piの性能が十分であれば,1, 2, 7, 9は可能ですから,まあ,半分以上の用は足ります.しかし,その他も,利用の割合は低いとはいえ,生活には欠かせません.

できることだけでもRaspberry Piでしてみようと,Raspberry Pi 4 Model Bを買いました.

今回購入した,Raspberry Pi 4 model B 8GB RAM, ケースと電源,micro HDMI-HDMIケーブル

使いながらセットアップしていますが,やはり,厳しいですね.予期せぬところで,いわゆるプチフリーズします.いったいいつまでフリーズが続くか解らないのでストレスになります.特にデリケートな設定をいじっているような時に固まると,寿命が縮まります.

Web browserは,最初Firefox-ESRを使ってみましたが,プチどころかしばしば完全に固まります.Chromiumのほうがまだマシなので,他のMacintoshやLinuxで使用しているFirefoxと同期できないデメリットがありますが,そこはあきらめて,Chromiumで行くことにします

Thunderbirdもインストールして設定しました.LinuxやMacのThunderbirdのデータディレクトリーを持ってきて,$HOME/.thunderbirdに展開してみましたが,コンパチビリティーが無いようで,あきらめて手で設定しました.思い出しながらでは到底無理で,MacintoshのThunderbirdの設定を見ながら,手入力という俗なというかベタな方法で設定しました.全部IMAP接続で,自宅のサーバー,GMail, iCloudと某所のサーバーの設定を完了できました.

プチフリーズ的なフリーズの主な原因は,SDカードをルートドライブにして,SWAPもその中のファイルでやっていることでしょう.せっかく,Raspberry Pi 4 model Bは,SDカード無しでUSBドライブから起動できるので,次の段階として,SSDをUSBでつないで起動するように仕立ててみます.

8〜9割かも.
4もとにかく「音楽を聞く」だけならRaspberry Piでも可能ですが,膨大なiTunesのライブラリーをプレイリストなどの付加情報ごと移転するのは無理という意味で,可能な範疇に含めません.
ときには,システムを道連れに😥
当然ですが,他にいくつかあるRaspberry Pi間ではChromiumでブックマーク他が同期できます.

Slackware ARMのSDなしブート

Slackware ARM 12.1をRaspberry Pi 4 Model B (以下 “RPi4” )で走らせています.かなり前から,ルートドライブはUSB 3.0で接続したSSD (1TB)にしているので,起動用に使用しているSDカードがパフォーマンスに影響することは全くありませんでした.

でまあ,その他的にも特に影響はないのですが😓,せっかくRaspberry Pi財団が,SDカードなしでブートするブートローダーを正式に出しているので,この際ですから,ブートローダーのupdateをしてみました.

Linuxと共に生きる人生を結構長くやってまして,近年,数百GB〜数TBのHDD/SSDのパーティションは,

  • パーティションマップはGPT
  • 最初のパーティションは,512MB〜4GBで,EFIや/boot,またはSWAP用
  • 2番目のパーティションは2〜4GBで,SWAP用
  • 残りは1つのパーティションのまま,Linux用

といった3パーティションの形で切るのに落ち着いてきてます.だいたいこのように統一しておくと,使い回すのに便利です.

Slackware ARM用のSSDも,GPTで,512MB EFI用(当システムでは不使用),4GB SWAP,残りの1TB弱がLinux用でルート,となっていました.そこで,fdiskで最初のパーティションのtypeをMicrosoft Dataに書き換え,リブート後,最初のパーティションをmsdos型式でフォーマットしてから,/bootにマウントしているSDカードの中身を全部書き込み,/etc/fstabで,/bootに対応する物理ドライブをSDカードからSSDの最初のパーティションに書き換えて,Slackware ARM側の準備は終了です.

ブートローダーの書き換えは,結局,Raspberry Pi財団のサイトから,外部PCによる復旧用SDカードの作成を選んで,空いているSDカードにBootloader修復ツールをインストールして,そこから実施しました.今後もブートローダーのアップデートの度に同様の方法を行うことにします.

以上正しくできていれば,SDカードなしでブートできます.また,Raspberry Pi OSから,rpi-eeprom-config, rpi-eeprom-updateおよび,/lib/firmware/raspberrypi/bootloader/の中身をSlackware ARMの方にコピーしました.今後,これらが役に立つのかどうかは解りません😓

実際は,紆余曲折,試行錯誤がいろいろありましたが,最短経路はたぶん上記の通りだと思います.

Slackware ARMで,rpi-eeprom-updateコマンドをかけて,最新のブートローダーになっていることが確認できました.

RPi OSによるupdateは必要(追記)2020/11/02

そうだろうなと思っていましたが,rpi-eeprom-updateは,EEPROM内のブートローダーと,/lib/firmware/raspberrypi/bootloader/criticalを比較するだけのようです.ですから,Slackware ARMで,rpi-eeprom-updateを今後何回繰り返しても未来永劫up-to-dateが返ってきます.

そのため,bootloaderを最新に保つためには,定期的に,Raspberry Pi OSのSDから起動して,apt update… を実行するしかなさそうです.

当社調べ

当記事を含む,当サイト内の情報は全て「当社調べ」によります.

起動後は/boot.
強いて言えば,現実味のあるブート用のSDカードの寿命の際,新しいSDカードに書くのがちょっとめんどうかも,という程度です.中身については,毎日実施しているバックアップで保存してます.
たぶん,1995年から.
GPTを本格採用したのは2018年からで,それまではMBR.
/dev/sda1