Open6

ポメラDM250 Linux化の備忘録

yukari-n-erbyukari-n-erb

2022.09.07 Linux本体を入れてwifi設定もし、aptコマンドで各種ツールがインストールできるところまで確認。

ハマったところメモ

  • バックアップソフトが起動しない。(デフォルトの隠しセーフモードが起動してしまう)
    • SDカードに入れるべきバックアップファイルのフォルダパスを間違ってた
  • ブートローダをインストールしてからSDカードの内容をDebianに入れ替えるより前に起動してしまって中途半端にターミナルモードになってしまった
    • ポメラの電源ボタンをかなり長押しで強制シャットダウン
      • テンパってたので思わずやっちゃったけど、この方法じゃなくても普通にコマンドでシャットダウンが動いたかもしれぬ
  • aptコマンドがさっきは動いたのに何故か動かなくなった
    • 端末再起動挟んでたせいでwifiがオフになってた模様
  • Gitコマンドは入ったがGitHubアカウントの認証設定がややこしくて悩み中
    • 最初はHTTPS用のトークンを設定して保存しようと思ったが、Macのキーチェーンにあたる機能が何なのかコレガワカラナイ
      • どこにどうクレデンシャル保存すればいいのやら
      • 究極平文で保存してればなんとかなるんだろうけどやりたくないー
  • 今はGit Credential Manager Coreなるものを使うのが推奨らしい?
    • Linuxも動作環境に入ってるが認証はブラウザ経由っぽいので、こういう最小環境でどこまで動くか・・・

TODO

yukari-n-erbyukari-n-erb

2022.09.08
世間はイカ3に湧くなか、ポメラの魔改造を続行ちゅう。
HTTPS接続ではなくてSSH接続ならサクッと環境構築できるのではないか?と方針転換して作業再開。

  • またwifiオン忘れてた
  • githubはSSH接続、公開鍵のテキストはSDカードでPC持ち運んでGitHub側の作業すれば行けそう
  • /mnt/sd/配下がポメラでも読み取れるSDカード領域
  • 案の定https接続用のURLとSSH接続用のURL間違えた
  • sudoじゃないとgit clone時に/mnt/sd出来なさそう
error: chmod on <リポジトリSSH URL>/.git/config.lock failed; Operation not permitted
fatal: could not set 'core.filemode' to 'false'
  • SDカード上のファイル特権の問題でgit clone失敗するのはポメラだけの問題でもないらしい
  • ファイルマウントするときにメタデータ付きでマウントするとなんとかなる???
  • rootユーザーにGitHubのSSH権限を設定し、rootユーザーでgit cloneコマンドを叩くことで/mnt/sd上でも動くことは確認。常用しない環境とはいえ、あまり使いたくない方法だなぁ
  • 共有ドライブ上で通常ユーザーでもgit clone叩けるようになる方法を調査
yukari-n-erbyukari-n-erb

SDカード上でgit cloneできない問題にあたり、当該ドライブマウント方法に変更が入ってたのが詰まりポイントだったのでメモ。

  • 以前の資料によると、そもそもSDカード領域の自動マウント機能がなく手動でマウントする必要があったため、結果的に一般ユーザーの所有者権限でマウントすることになり、問題にならなかったのかも?
  • 最近はfstabで自動マウントするようになって楽な反面、所有者がroot権限になってしまったため、git cloneでハマる仕様になってしまった?
  • かつ、fstabのマウント先パスもつい直近変更が入った(以前は/mnt/vfatだったようだが、分かりやすく/mnt/sdになっているっぽい)ため、マウント周りの仕様がどうなっているのか追いかけるのに苦戦した
    https://github.com/ichinomoto/dm200_tools/commit/1b0d53ef7714f10c94cd1c414f9b89c85b4cbba1#diff-f698a8eb7e3777f4a88457742dd379eb390a379fc372f4dde8972d53ffd85f19L59

ので、結果的に自分みたくDM250を機にポメラLinuxにチャレンジしてgitによるドキュメント環境を構築しようとした人がピンポイントでハマる仕様になってたのではないか、という予想。

解決方法は今から正式記事で書く。

yukari-n-erbyukari-n-erb

記事概要メモ

GitHub設定編

  • sudo apt-get install gitでgitコマンドをインストール
  • SSH設定でGitHubの認証設定を確立する
  • ユーザーのホーム配下でプライベートリポジトリのgit cloneができることを確認

SDカード領域でのgit clone設定編

  • sudo umount /mnt/sdでデフォルトのSDカードマウントを取り外す
    • busyとエラーが出てマウントできない場合は端末再起動した直後にやると上手くいく
  • id1コマンドで操作ユーザーのuid,gidを確認
  • まずは手動でid付きで再マウントしてみる
    • 例えばuid,gidが共に1000ならsudo mount -o uid=1000,gid=1000 /dev/mmcblk1p1
  • mkdir /mnt/sd/githubなどリポジトリ用フォルダを作っておく
  • ls -la /mnt/sdで上記のgithubフォルダなどの所有権が操作ユーザーにあることを確認
  • cd /mnt/sd/githubでSDカード上のフォルダに移動してgit cloneがエラーなく動くことを確認
    • /mnt/sd配下のファイルはポメラのSDカード領域でも読み書きできることを確認
      • ただしテキストファイルじゃないと読み書きできないので注意
  • この再マウント操作を毎回やるのは面倒なのでsudo vi /etc/fstabでマウント設定を開く
    • デフォルト/dev/mmcblk1p1 /mnt/sd vfat rw,sync,dirsync,noatime,umask=0000,utf8 0 0に先のid設定を追記
    • 例: /dev/mmcblk1p1 /mnt/sd vfat rw,sync,dirsync,noatime,uid=1000,gid=1000umask=0000,utf8 0 0"
  • 端末を再起動してls -la /mnt/sdを行い、SDカード上のgithubフォルダ含むファイル群がデフォルトで所有権が操作ユーザーのものになっていることを確認する

  • 操作ユーザーを単一ではなく複数作るなど、もう少し凝った運用をしたい人はグループ単位で権限つけるとかするといいのかもしれない
  • あとfstab修正周り、もうちょっとイケてる書き方があるような予感がしなくもない
yukari-n-erbyukari-n-erb

Hugoコマンドのインストールメモ

aptでインストールするとバージョンが古かったので、どうやったら最新版をインストールできるか検証した結果。

失敗パターン

  • Homebrew入れる案 -> 32bit ARMで入れる方法が見つからず断念
    • 64bit ARM環境のマシンならChromebookなどで前例はあった https://remoteroom.jp/diary/2020-10-17/
    • インストールに必要なportable rubyがポメラのARMv7で動くverが見つからず・・・
  • debパッケージをwgetしてapt installインストールする案

成功パターン

  • tar.gzを落としてきて解凍して/usr/local/binに配置する案
    • これで(たぶん)うまく行った
      • 執筆時点で最新かつ32bit Linux環境向けと思われるhugo_0.103.1_linux-arm.tar.gzをwgetで取得・tarコマンドで解凍、出てきたhugoファイルを/usr/local/binにコピーして最新のhugoコマンドが機能するように
      • 下記サイトを見るに、慣習的に独自バイナリを置くときは今回の場合/usr/local/binでOK、なはず・・・いままでパッケージマネージャーのお世話になりっぱなしだったから自信がねぇ・・・