Qbilinux 日記

Linux に関係することだけではなく,最近は一般的なコンピュータやガジェット関係についても記載してます.

Qbilinux 開発について(その53): lxc のパッケージも作成して Plamo コンテナで動作チェック

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる Qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

前回までは docker をいじっていましたが,一段落.

少し docker 用のパッケージビルドスクリプトを調整して,x86_64 環境でパッケージを作り直しました.

公開している qbilinux-current の方も更新してあります.https://qbilinux.org/pub/qbilinux-current/x86_64/contrib/Virtualization/docker.txz/ のあたりね.aarch64 の方は...もうしばらくお待ちください.

...

ついでに lxc のパッケージも作成しようかなと x86_64 環境上で作業.

Plamo 6.x のビルドスクリプトを持ってきて適当に修正.一応,Plamo 7.x もどうなっているかなと思って少し見たら,なんか plamo 用のコンテナ作成テンプレートにパッチが当たっているようだったのでそのあたりのパッチファイルを拝借.

で,作成後に lxc パッケージをインストールして動作確認.

とりあえず plamo のコンテナを作ってみようとしたら lxc-create 途中でこける.むむ....

追っかけていったら Plamo 7.x のパッケージを持ってきた後で installpkg するところでエラーを吐いて異常終了しているらしい.そのためにコンテナのベースとなる rootfs が作成できないっぽい.

色々と試行錯誤してみたら,どうやら LANG が C じゃないと installpkg でエラーになるみたいだな....ってことで, https://github.com/qbilinux/qbilinux/commit/1c6206f24832bcc17628f3cce6d29b847b0fc4a9#diff-93c4ec3da5e90304aa0236cf93289cc3 な感じのパッチを作成.これで root アカウントで問題なく Plamo 7.x のコンテナが立ち上がって動作することが確認できました.

あとは lxc-plamo の中で installpkg する前に PATH を $dlcche/sbin:$PATH に切り替えているけど,$dlcche/sbin/installer 以下も追加した方が良いんじゃないかなぁとも思ったけど,あんまり知識ないので機会があるときに Plamo 方面で聞いてみようかな.

このあたりって Plamo 上で lxc を動かす場合には問題なく動作しているのかな?まぁ,実作業に使われているみたいなので,問題ないんだろうなとは思っていますけど....

そんな感じで lxc も簡単ですけど動作確認できたので x86_64 環境のパッケージを https://qbilinux.org/pub/qbilinux-current/x86_64/contrib/Virtualization/lxc.txz/ 以下に置いておきました.その他のアーキ用パッケージは追って作業します.

それにしても,久しぶりに lxc を使うと色々とはまってしまいました.

すっかり lxc 関連のコマンド類の使い方を忘れてしまってる....

他にも lxc-start のデフォルト挙動がいつの間にか変更になっているのに気づかずはまってしまいました.最初,フォアグランド動作させようとして

% lxc-start -n plamo

ってやっても普通にコマンドプロンプトに戻ってきてしまったので,「なぜ?」って.もう一回実行しようとしたら,すでに実行してますってメッセージが出るし,余計「なぜ?」って.

% lxc-ls -f

でステータスを見て初めてデフォルトでバックグランド動作するように変更になっていることに気がつきましたが,全く知らなかったので少し悩んでしまいました.

あとは,lxc とは関係ない話ですけど,Plamo コンテナをフォアグランド動作しようとして

% lxc-start -n plamo -F

したら login プロンプトになるけど,「何のアカウントでログインすれば良いんだろうなぁ?」と.ちょっと調べてもわからなかったので,とりあえず先送り.Plamo 7.x 系列にはまったく追いつけてないのでインストールして少しいじってみないとダメかなぁとも思っていたり.

これで Plamo の lxc コンテナが動作するようになってので,このコンテナの上で環境を整えれば Plamo 用のパッケージング作業もできるってことかな?少し余裕が出てきたら試してみようかな.

また Qbilinux 用のテンプレートも作っておきたいなとは思いますが...,優先度はそれほど高くないので先送り.

他にも debootstrap とか zypper, yum なんかを debian や SUSE, CentOS 方面から持ってくれば,Qbilinux 上の lxc 上でも debian や SUSE, CentOS なんかのコンテナ作成とかできるのかなぁとか色々と思ってみたり.少し各ディストリビューション用のテンプレートファイルの中を追っかけてみないと,どのコマンドが必要はわからないんだけどね.まぁ,このあたりも興味はあるけど先送りかな.

そんな感じで Qbilinux 用の lxc パッケージも作成できたので今後は同梱する予定.

パッケージ作成は私の中では一段落したので,これからはインストーラー周りをメインに触っていこうと思っています.(毎回同じようなことを言っていますが,今度こそは...)

簡単ですけど,lxc のパッケージを作成して,動作チェック用に Plamo 7.x のコンテナを動作させてみた話でした.

Panasonic Let's note CF-SZ5 のキーボード交換してみた

ここの blog には書く機会を失っていましたが,最近はずっと web 開発用のメイン環境として Panasonic Let's note CF-SZ5 を使用.

f:id:toshi-mtk:20200715003308j:plain

半年くらい前に3万円くらいの中古品を購入したものです.

スペックは CPU が Core i5-5300U 2C/4T 2.4GHz,メモリが 8GB.ストレージは 250GB HDD で Windows 10 Pro がインストールされていましたが,購入後に 2.5inch 256GB SSD にのせ変えて Debian で使っています.

それまではわりと ThinkPad X250 を持ち歩いていたのですが,寄る年波には勝てず(?),常に持ち歩く PC はもっと軽量なものに置き換えたほうが良いかなぁと思ったのがきっかけで購入しました.まぁ,丁度そのときに程度のわりに安く売ってた Let's note を見つけたってのもありますが.:-)

ちなみに企業向けモデルなので,光学ドライブは付いていません.ってことで,本体だけだと重量は 832g (実測値) です.

f:id:toshi-mtk:20200715003532j:plain

そんな感じでわりと毎日持ち歩いて使っていた SZ5 ですが,最近,キーボードがおかしい.

チャタリングしたり,うまく入力できなかったりとか.

まぁ,中古で購入したものなので,そうなるのも仕方ないかなぁということでキーボード交換することにしました.

以前,NX2 の修理を shop8888 (ショップエイト) さんにお願いしたことがあったので,またそこにお願いしようかなとも考えましたが,以前頼んだときには結構日数が必要だったんですよね.混雑しているってことで1ヶ月半くらいかかったかな.常用している PC なので数日でも手元にないのは困るってことで,自分で交換することにしました.

参考までに shop8888 さんのホームページはこの辺りですね.

panasonic-pcshop.ocnk.net

で,キーボードの部品ですが,確か,shop8888 さんで部品の販売も行っていたよな,ということで検索したところ SZ5 用のキーボードを販売しているのを発見.ふう,良かった.

panasonic-pcshop.ocnk.net

白と黒が販売されていますが,迷わず黒を選択.かかった費用はキーボード自体の値段は 3700円 ですが,送料とか消費税諸々で合計 4860円 でした.発送方法に宅急便を選択したのですが,結構,お安いですね.

で,黒を選んだ理由ですが,私自身,黒の SX3 と白の NX2/SZ5/RZ4 を使っていますが,圧倒的に黒の SX3 の方が好みだから.キーボード表面の感じとかタッチしたときの感触が何となく黒の方が良いんですよね.購入前には色の違いだけかなと思っていましたが,いろいろと本体を購入してみて使ってみたら,素材とか塗装(?)とかが異なるとタッチ感も異なるんだなと.

shop8888 さんに注文したキーボードは2日ほどで配送されました.

前置きが長くなりましたが,そんな感じで交換作業を開始.

ネットで調べてみるとキーボードは両面テープで止まっているだけなので,無理やりはがしていけば良いってことなのでその通り作業.実際に,注文して届いたキーボード裏にもネジ穴があるわけではなく,両面テープが張り付けてあっただけでしたのでそれで間違いないかなぁと.

まずバッテリーの取り外し.

f:id:toshi-mtk:20200715003319j:plain

で,キーボードを無理やり剥がす作業ですが,剥がしたものを再利用できないかなとちょっと色気が.ってことで,一番破壊しないようにするにはどうしたら良いかなとちょっと考えて「1」キーの左側にキーボードのないスペースがあるのでここからはがしていこうかなと.ほかのところからはがしてみようかなと少し試してみましたが,すぐにキーボードが壊れそうだったので,キーボードのないところから作業すれば破壊する可能性も減るかと.

製品分解時にはいつも愛用している iSesamo を使って剥がす作業.

f:id:toshi-mtk:20200715003329j:plain

f:id:toshi-mtk:20200715003338j:plain

SZ5 は思ったよりも液晶画面が開かないのでちょっと作業がやりにくい.SX3/NX2 だと 180 度以上開くんだけど....

f:id:toshi-mtk:20200715003350j:plain

少しずつ剥がしていく作業.やっぱりキーボードが波打ってくるなぁ.

剥がし終えて引っくり返したところ.結構本体側に傷がついてしまったな.ふう.

f:id:toshi-mtk:20200715003410j:plain

本体側に残った両面テープをきれいにしようとしましたが,全然ダメですね.きれいにならないです....水分はダメなので,ドライヤーとかで暖めてもダメ.無水アルコールもダメ.完全にきれいにするのは途中であきらめてしまいました.

コネクタからフレキを取り外し.上向きにコネクタのクリーム色のプラスチック部品をスライドさせることでフレキが取り外せるようになっています.

f:id:toshi-mtk:20200715003423j:plain

f:id:toshi-mtk:20200715003433j:plain

新しく購入したキーボードがこちらです.

f:id:toshi-mtk:20200715003442j:plain

取り外したキーボードを参考に,新しいキーボードのフレキを折り曲げます.フレキの途中に白い先が入っていますが,そこを目安に折り曲げると良いと思います.

f:id:toshi-mtk:20200715003452j:plain

新しいキーボードのコネクタを差して,元通りコネクタ回りのシールを張り付け.

f:id:toshi-mtk:20200715003511j:plain

仮組みしてからキーボードの動作を確認.両面テープで張り付けたあとに動作しないと新しく購入したものを破壊することになってしまいますのでここで動作確認しておかないと悲劇が....

問題なさそうなので,裏面の両面テープをはがして張り付け.交換前の両面テープが少し残っているのでフワフワした感じにならないかなと思ったのですが杞憂でした.使われているのは結構強力な両面テープなんですね.

f:id:toshi-mtk:20200715003501j:plain

あ,amazon とかでも SZ5 用のキーボードとかは販売されていますが,そちらは裏面の両面テープはないようですね.業者三によって仕入先が違うから微妙に異なるんでしょうか?shop8888 さんから購入したものは最初から裏面の両面テープはついていました.:-)

一応,取り外したキーボードはこんな感じ.

f:id:toshi-mtk:20200715003522j:plain

注意して外したつもりですけど,やっぱり全体の再利用はできない感じですね.個々のキートップ部品とか使えるかなと思いますので,一応,取っておこうかなと思っています.最初からドライヤーとかを当てながら外したら,もう少しきれいにはずれたかも知れないですね.

そんな感じでトータル1時間くらいの作業でした.はい.

交換後の感想は,とりあえずキーボードの不調はなくなったみたいなので,まぁ,満足.

見た目の印象もかなり変わった感じになって,ちょっといい感じ.

ただ..,やっぱり Let's note の部品交換作業は何度かやっていますが,業者さんにお願いできるのであれば業者さんにお願いした方が良いかなとは思います.良くも悪くも日本製 (?) の PC なので普通の人が分解して気軽に部品交換できるような作りにはなっていないなと思います.

以前にやった SX3 の液晶交換とかは超絶最悪な作業難易度でしたし....

toshi-mtk.hatenablog.com

そんな感じで,Panasonic Let's note CF-SZ5 のキーボードを交換してみた話でした.まる.

ThinkPad X270 の m.2 NVMe SSD 交換作業

先日,調達した ThinkPad X270.

m.2 NVMe な SSD が載せられています.

Windows 10 Pro がインストールされている状態のものを購入したのですが,主要用途は Linux 開発環境用に使おうと思っています.

けど...,諸般の事情で Windows 10 Pro の環境を壊したくなかったので,手持ちの SSD に交換することにしました.

Windows が必要になったときには,新規インストールやり直すでも良いのかなとも思いますが,まぁ,気分的な問題かな.インストールやり直すより,SSD 交換作業のほうが楽ちんだし,時間もかからないし.

...

で,少しだけ調査.

ネットで検索すると ThinkPad X270 の SSD コントローラーは PCIe x 2 SSD にしか対応していないって記述がいろいろと引っ掛かりますね.相性があるからわざわざ実績のある(?) SSD を探して購入していたり,相性を避けるために NVMe ではなくわざわざ SATA の SSD に交換したりいろいろと試行錯誤している方がいろいろと.

ちなみに,手元の本体に購入時についていた SSD は東芝の THNSF5256GPUK ですが,ネット検索すると I/F 規格は「PCIe Rev. 3.1 Gen3x4L, NVMe Rev. 1.1b /M.2 M」ってなってますね.ふーん.

なんかネット情報の信ぴょう性もあんまりよくわからないし,あんまり気にするのもどうかなと思って,とりあえず実際に交換してみることにしました.動作しなければその時に考えれば良いかなということで.

手持ちの余ってた SSD は Intel 760p シリーズの 256GB 品.型番は「SSDPEKKW256G8」かな.仕様書を見ると x4 品ですね.確か,昔,ThinkPad X280 をお借りしてレビューを書いた時にもこの SSD を使いました.はい.

toshi-mtk.hatenablog.com

ってことでさっそく作業.

最初に内蔵バッテリの無効化から.これをやらないと,最悪,分解時にショートして壊れてしまう可能性があります.

BIOS 画面に入ってから無効化.

f:id:toshi-mtk:20200714001338j:plain

f:id:toshi-mtk:20200714001350j:plain

で,裏蓋を取り外し.ねじを外せば,少し爪で止まっていますが簡単に外れます.

f:id:toshi-mtk:20200714001402j:plain

左下のケースに入っているのが SSD なので,この部分だけ取り外し.ねじ1か所で止まっているだけ.ケーブルは簡単に外れないように金属製のロックがかかっているので,ケーブルごと外したい場合には無理に引き抜こうとせずに注意して取り外してください.もともと HDD モデルでは HDD が入るスペースなのでちょっと冗長な作りですね.:-)

f:id:toshi-mtk:20200714001413j:plain

外した SSD ケースを分解.一応,ケースに SSD の熱を逃がすようにジェル状のものがついてますね.

f:id:toshi-mtk:20200714001423j:plain

intel SSD に交換.

f:id:toshi-mtk:20200714001435j:plain

とりあえず簡易的に本体に取り付けて動作確認.ちょっとドキドキ.

BIOS 画面では認識されているようですね.

f:id:toshi-mtk:20200714001447j:plain

debian のインストール USB で立ち上げてみても普通に認識している雰囲気.

f:id:toshi-mtk:20200714001508j:plain

試しに交換した SSD でブートしてみましたが,Linux でいろいろと試行錯誤しながら作業をしていた時にインストールした grub 画面が立ち上がりました.ってことはやっぱり普通に使えているのかな?試行錯誤状態のものなので,実際にはブートして動作確認できないのでそのあたりはご容赦を.

一応,取り外した東芝製の SSD はこんな感じ.

f:id:toshi-mtk:20200714001518j:plain

BIOS 画面で認識しているし,debian インストーラーとかでも認識されているから普通に使えそうな雰囲気ですね.

ネットでの書き込み情報でちょっと神経質になりすぎたかな?

ただし,これだけいろいろと書いている人がいるってことは x2 じゃないと動作しない X270 本体のもあるかもしれないので,あくまで自己責任でお願いします.私自身は何も保証しませんので.

こんな感じでざっと作業終了.本格的使ったりするのはしばらく先になりそうですが,

一応,何かトラブルなどがあれば追加情報を書きたいと思います.

簡単ですけど,ThinkPad X270 で NVMe SSD の交換作業をした話でした.はい.

 

Intel SSD 760p M.2 PCIEx4 256GBモデル SSDPEKKW256G8XT

Intel SSD 760p M.2 PCIEx4 256GBモデル SSDPEKKW256G8XT

  • 発売日: 2018/01/25
  • メディア: Personal Computers
 
Intel SSD 760p M.2 PCIEx4 512GBモデル SSDPEKKW512G8XT

Intel SSD 760p M.2 PCIEx4 512GBモデル SSDPEKKW512G8XT

  • 発売日: 2018/01/25
  • メディア: Personal Computers
 
インテル® SSD 760pシリーズ1TBM.2 80mmPCIe 3.0 x4TLC SSDPEKKW010T8X1

インテル® SSD 760pシリーズ1TBM.2 80mmPCIe 3.0 x4TLC SSDPEKKW010T8X1

  • 発売日: 2018/04/12
  • メディア: Personal Computers
 

Qbilinux 開発について(その52): docker まわりをパッケージングして arm 64bit 環境で動作チェック

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる Qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

前回の blog 記事に引き続いて docker まわりをいじり中.

slackware ベースのパッケージングスクリプトを qbilinux 用に修正してパッケージ化.

とりあえず x86_64 環境では問題なく動作しているみたいだな.ふう.

調子に乗って arm 64bit 環境 (aarch64) でもビルド.

普通にビルドできたね.

動作するかな?ドキドキ.

カーネルバージョンはこんな感じ.

root@rq64:/home/matsuki/tmp# uname -a
Linux rq64 5.4.13-v8 #2 SMP PREEMPT Sun Jan 26 01:27:01 JST 2020 aarch64 GNU/Linux

動かしている環境はラズパイ4 (Raspberry Pi 4 4GB モデル) ね.

とりあえず root で実行.

root@rq64:/home/matsuki/tmp# docker

Usage:  docker [OPTIONS] COMMAND

A self-sufficient runtime for containers

Options:
      --config string      Location of client config files (default "/home/matsuki/.docker")
  -c, --context string     Name of the context to use to connect to the daemon (overrides
                           DOCKER_HOST env var and default context set with "docker context use")
  -D, --debug              Enable debug mode
  -H, --host list          Daemon socket(s) to connect to
  -l, --log-level string   Set the logging level ("debug"|"info"|"warn"|"error"|"fatal") (default
                           "info")
      --tls                Use TLS; implied by --tlsverify
      --tlscacert string   Trust certs signed only by this CA (default "/home/matsuki/.docker/ca.pem")
      --tlscert string     Path to TLS certificate file (default "/home/matsuki/.docker/cert.pem")
      --tlskey string      Path to TLS key file (default "/home/matsuki/.docker/key.pem")
      --tlsverify          Use TLS and verify the remote
  -v, --version            Print version information and quit

Management Commands:
  builder     Manage builds
  config      Manage Docker configs
  container   Manage containers
  context     Manage contexts
  engine      Manage the docker engine
  image       Manage images
  network     Manage networks
  node        Manage Swarm nodes
  plugin      Manage plugins
  secret      Manage Docker secrets
  service     Manage services
  stack       Manage Docker stacks
  swarm       Manage Swarm
  system      Manage Docker
  trust       Manage trust on Docker images
  volume      Manage volumes

Commands:
  attach      Attach local standard input, output, and error streams to a running container
  build       Build an image from a Dockerfile
  commit      Create a new image from a container's changes
  cp          Copy files/folders between a container and the local filesystem
  create      Create a new container
  deploy      Deploy a new stack or update an existing stack
  diff        Inspect changes to files or directories on a container's filesystem
  events      Get real time events from the server
  exec        Run a command in a running container
  export      Export a container's filesystem as a tar archive
  history     Show the history of an image
  images      List images
  import      Import the contents from a tarball to create a filesystem image
  info        Display system-wide information
  inspect     Return low-level information on Docker objects
  kill        Kill one or more running containers
  load        Load an image from a tar archive or STDIN
  login       Log in to a Docker registry
  logout      Log out from a Docker registry
  logs        Fetch the logs of a container
  pause       Pause all processes within one or more containers
  port        List port mappings or a specific mapping for the container
  ps          List containers
  pull        Pull an image or a repository from a registry
  push        Push an image or a repository to a registry
  rename      Rename a container
  restart     Restart one or more containers
  rm          Remove one or more containers
  rmi         Remove one or more images
  run         Run a command in a new container
  save        Save one or more images to a tar archive (streamed to STDOUT by default)
  search      Search the Docker Hub for images
  start       Start one or more stopped containers
  stats       Display a live stream of container(s) resource usage statistics
  stop        Stop one or more running containers
  tag         Create a tag TARGET_IMAGE that refers to SOURCE_IMAGE
  top         Display the running processes of a container
  unpause     Unpause all processes within one or more containers
  update      Update configuration of one or more containers
  version     Show the Docker version information
  wait        Block until one or more containers stop, then print their exit codes

Run 'docker COMMAND --help' for more information on a command.

コマンド実行はできてるね.つぎ,hello-world.

root@rq64:/home/matsuki/tmp# docker run hello-world
docker: Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?.
See 'docker run --help'.

ん? daemon が実行できていないみたいだな.

root@rq64:/home/matsuki/tmp# ls -al /etc/rc.d/rc.docker 
-rw-r--r-- 1 root root 1,746  7月 12日  14:22 /etc/rc.d/rc.docker
root@rq64:/home/matsuki/tmp# sh /etc/rc.d/rc.docker start
Starting dockerd ...
root@rq64:/home/matsuki/tmp# ps auxww | grep docker
matsuki    624  0.1  0.0 215432  2292 tty1     S+   08:58   0:00 less /var/log/docker.log
root       898 17.0  1.7 1137176 68408 pts/0   Sl   09:05   0:00 /usr/bin/dockerd -p /var/run/dockerd.pid
root       908 16.5  0.9 1101060 36640 ?       Ssl  09:05   0:00 containerd --config /var/run/docker/containerd/containerd.toml --log-level info
root       938  0.0  0.0 215184  1912 pts/0    S+   09:05   0:00 grep docker

daemon が動作していることを確認して,再びコマンド実行.

root@rq64:/home/matsuki/tmp# docker run hello-world
Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
256ab8fe8778: Pull complete 
Digest: sha256:d58e752213a51785838f9eed2b7a498ffa1cb3aa7f946dda11af39286c3db9a9
Status: Downloaded newer image for hello-world:latest

Hello from Docker!
This message shows that your installation appears to be working correctly.

To generate this message, Docker took the following steps:
 1. The Docker client contacted the Docker daemon.
 2. The Docker daemon pulled the "hello-world" image from the Docker Hub.
    (arm64v8)
 3. The Docker daemon created a new container from that image which runs the
    executable that produces the output you are currently reading.
 4. The Docker daemon streamed that output to the Docker client, which sent it
    to your terminal.

To try something more ambitious, you can run an Ubuntu container with:
 $ docker run -it ubuntu bash

Share images, automate workflows, and more with a free Docker ID:
 https://hub.docker.com/

For more examples and ideas, visit:
 https://docs.docker.com/get-started/

問題なく動作したね.続いて ubuntu は?

root@rq64:/home/matsuki/tmp# docker run -it ubuntu bash
Unable to find image 'ubuntu:latest' locally
latest: Pulling from library/ubuntu
f3801533dc70: Pull complete 
cb81013b04c0: Pull complete 
b1f21a013471: Pull complete 
7c8e2b8980f0: Pull complete 
Digest: sha256:55cd38b70425947db71112eb5dddfa3aa3e3ce307754a3df2269069d2278ce47
Status: Downloaded newer image for ubuntu:latest
root@fc5ec3d8c73c:/# 

コマンドプロンプトになったな.

root@210ff3e204f6:/# dpkg --version
Debian 'dpkg' package management program version 1.19.7 (arm64).
This is free software; see the GNU General Public License version 2 or
later for copying conditions. There is NO warranty.

コマンドも動作してるみたい.

root@fc5ec3d8c73c:/# uname -a
Linux fc5ec3d8c73c 5.4.13-v8 #2 SMP PREEMPT Sun Jan 26 01:27:01 JST 2020 aarch64 aarch64 aarch64 GNU/Linux

当然 kernel はコンテナなので元々動作している OS と同じですね.

な感じで,とりあえず aarch64 環境でも動作.ふう.

もう少しビルドスクリプトとかは調整しないと駄目なところはありますが,今後は docker のパッケージも同梱する形にしたいと思います.

現在公開している qbilinux-current では https://qbilinux.org/pub/qbilinux-current/x86_64/contrib/Virtualization/docker.txz/ 以下に docker パッケージをおいてあります.aarch64 の方は数日中に置くようにしたいと思います.はい.

とりあえずそんなところ.

ThinkPad X270 を調達...と少し悩んだ BIOS 画面の入り方

先日,私自身が作成している Linux ディストリビューション Qbilinux のインストーラー・ブート周りの作業用に専用の安価な中古 UEFI な PC なんかを調達したいなぁと書きました.

toshi-mtk.hatenablog.com

で,割と程度のいい思ったより安価な ThinkPad X270 を見つけたので購入してみました.

中古の 12インチ ThinkPad の価格ですけど,X280 って高いですね.やっぱり CPU が Core i シリーズの8世代目になってコア数が増えたのと,それまでの X270 までと違ってフルモデルチェンジしてかなり軽量になったのが人気になって高いんでしょうかね.後継モデルが X390 になって 13インチにサイズアップしてしまっったうえに重くなったので余計 X270 が人気になっているのかな?

その影響なのか X270 以前のモデルは割と安価になっている気がします.やっぱり重たいからかな?

ということで,割とお買い得感が増している X270 ですが,良さそうな Core i5 モデルを見つけたので購入してみた次第です.

スペックは

  • Core i5 6300U vPro 2.4G 2C/4T
  • 8G メモリ
  • 256G m.2 NVMe SSD
  • フル HD 液晶
  • WWAN 付
  • 指紋認証付
  • Windows 10 Pro

なスペックで 31,000円 くらいでした.

f:id:toshi-mtk:20200708191600j:plain

液晶に少しムラがあるのと,キーボードには少しテカリがあったり,外装はいろいろとシールをはがした跡があるけど,まぁそれくらいは気にならない感じ.ThinkPad ってシールをべたべた貼るとはがした後もどうしても跡が残っちゃうんですよね.私自身も割とシールを貼るタイプです.

WWAN 付ってのがちょっとレアで良いですね.

X280 以降と違ってメモリも自分で増設できるからそのあたりは少しメリットかな.

まぁ,CPU が vPro だし明らかに企業リースアップ品ですね.

あとは普段使っている ThinkPad X250 も手元にあるんだけど,それと部品が共用できるメリットもあるかな.

少し使ってた感じは X250 とあんまり変わらないかなぁ.まぁ,筐体とかがほとんど全く同じだからね.スペックも同じような Core i5 だし,画面も同じフル HD だし.

ただ,世代が進んだせいもあって,モニター端子が RGB + DP だったのが HDMI になっていたり,USB も type C がついたり,SSD も SATA から NVMe になって,周辺環境等は今どきのものになっているのでそのあたりは使いやすくなったかなと思います.

X250 と X270 の本体左右端子の比較はこんな感じ.上が X250,下が X270.

f:id:toshi-mtk:20200708191310j:plain

左側はディスプレイ端子と USB-C が違いますね.

f:id:toshi-mtk:20200708191318j:plain

右側は少しヘッドホン端子の位置が変わったくらいかな.X250 はマウス用 USB トングルを刺したまま写真を撮ったので見にくくてごめんなさい.

...で,購入直後,BIOS 設定を行おうとして BIOS 画面に入ろうとしたけど,なぜか入れず.

ThinkPad って電源投入後に ENTER を押していたら入れたはずなのに...と思ったら Windows の設定で OFF にできるのか.気が付くまでに相当時間を費やしてしまいました.
Windows 10 を立ち上げて「設定」>「システム」>「電源とスリープ」>「電源の追加設定」>「電源ボタンの動作を選択する」から「現在利用可能ではない設定を変更します」をクリック.「シャットダウン設定」の「高速スタートアップを有効にする(推奨)」が変更できるようになるので,このチェックを外してから「変更の保存」.

f:id:toshi-mtk:20200708191300j:plain
この状態にしてから,再起動したところ,Lenovo ロゴ画面に「To interrupt normal startup, press Enter」と表示されて Enter キーを押すことで BIOS 画面に入ることができるようになりました.

ふう.

とりあえず,最初についていた m.2 SSD は取り外して,手持ちの SSD に付け替えてから Qbilinux のブート周りの作業に使おうかなという感じです.最初についておいたものを取っておけば,いつでも簡単に Windows 10 に戻せるからね.

そんな感じで,簡単ですけど作業用の ThinkPad X270 を調達した話でした.

ラズパイ用の4段ラックケースを購入してみた

手持ちのラズパイがどんどん増加.

最初のうちは1台購入するたびにケースを購入していたけど,だんだん面倒になって開発用とかは裸でそのまま使っていたり.

さすがに普通の用途に使っているものはきちんとしたケースに収めて使ってるけどね.
けど,開発用とはいえ裸だとショートするとまずいかなぁということで,ケースを物色.

昔,4台くらいを重ねて取り付けられるケースがあったなぁということでその形のものを探したけど,あんまり種類がないね.

自分でアクリル板とかアルミ板を加工して作ろうかなとも思ったけど,時間に余裕があるときにはいいんだけど最近はあんまり余裕もないのでとりあえず市販品を選択することにしました.

で,amazon のギフト券がいくらかのこっていたので,amazon で物色.いくつかある中で,GeeekPi Raspberry Pi 4モデルB用Piラックケース(クリア) ってやつを購入してみました. 

冷却ファンとかヒートシンクがついている割には値段が安いかなと思ってこれを選択.

翌日には配送されましたが,箱はこんな感じ.中国製.

f:id:toshi-mtk:20200707145919j:plain

f:id:toshi-mtk:20200707145929j:plain

中身.

f:id:toshi-mtk:20200707145939j:plain

f:id:toshi-mtk:20200707145950j:plain

アクリル板.

f:id:toshi-mtk:20200707150103j:plain

3種類あるみたい.白っぽく見えてるのは保護シートが張られてるから.

保護シートはこんな感じではがれます.

f:id:toshi-mtk:20200707150132j:plain

組み立てマニュアル.

f:id:toshi-mtk:20200707150124j:plain

f:id:toshi-mtk:20200707150113j:plain

日本語表記はないね.

で,適当に組み立て.

Rock64, ラズパイ2/3/4 をアクリル板に取り付け.

f:id:toshi-mtk:20200707150142j:plain

f:id:toshi-mtk:20200707150153j:plain

Rock64 もねじの位置が一緒なので使えます.

くみたて.

f:id:toshi-mtk:20200707150030j:plain

冷却ファンはとりあえずいらないかな.騒音の基だし.ヒートシンクは一応ラズパイ4にだけ貼り付け.穴の位置なんかの精度とかは全く問題なし.

下から見たとこ.

f:id:toshi-mtk:20200707150041j:plain

ファン用の穴の位置があってませんね.次に分解するときに修正するかな.

端子側.

f:id:toshi-mtk:20200707150053j:plain

一番上からラズパイ4/3/2,ROCK64 だけど,ラズパイ4だけ LAN 端子の位置が....

な感じでしばらく使用.

さすがに安定して使えています.

とりあえず,ファンをつけてなくても問題なさそうかな.

思ったよりも満足度は高いかも.

1台購入してみて,様子が分かったので,これをもとに自作してもいいかなとも思ったり.

同じようなねじとかを大量購入すれば安く作れるかな?

けど,やっぱりプラ板を加工したりする手間を考えたら,購入したほうが安いかもしれないなぁ.

な感じで,簡単ですけど,アクリルケースの紹介でした.

Qbilinux 開発について(その51): docker まわりを一通り構築してみたりパッケージを最新に更新したり色々と

ぼちぼちと Plamo Linux 6.x のソース一式からブランチして,Qbilinux という linux ディストリビューションを作成.

いつまで続くのか.

いじってる Qbilinux のホームページは https://qbilinux.org/ に,ビルドスクリプトは https://github.com/qbilinux/qbilinux,バイナリは https://qbilinux.org/pub/ 以下にあります.

インストーラーを更新してリリースしないとなぁと思って作業中.いろんなソフトウエアの最新を追っ掛けておるとなぜかその環境上では virtualbox とかがうまく動作しなかったりなので,実機を使って色々とチェック.でも,常用している PC で作業しているのでブート周りを弄るのは色々と面倒だし時間がかかるんだよな.SSD を吹っ飛ばすとやっかいなので慎重に作業しないとダメだし.ということで,ちょっと作業専用の安価な中古 UEFI な PC なんかを調達した方が良いのかなぁと考え中.手元に転がっている PC は UEFI なマシンがほとんど無いので....

あとは色々とセキュリティフィックスが出ているパッケージを更新中.

インストーラーを弄っているうちに時間がたってしまって,少し古くなっていたパッケージもついでに更新.

llvm とか Qt とか KDE まわりとか.

firefox も新しい esr が出たので乗り換え.そのために依存している rustc なんかも更新.

ふう.

で,少し前に弄っていた docker まわりもついでに色々と手を入れてみてます.

toshi-mtk.hatenablog.com

docker-compose ってゼロから build するのって結構手間なんだなぁ.ということで,手っ取り早くバイナリをとってきて動作確認.

ふむ,ダウンロードしたバイナリでも問題なく動作している感じだな.

普段,web 開発用に使っている docker 環境をこの環境を使って立ち上げてみましたが,ざっと見た感じ普通に動作している感じ.コンテナは mariadb + apache + php + phpmyadmin って感じのものね.

うむ.なかなか良い感じかな.

これで,自分で使っている開発環境自体を全部自前でビルドする形で構築できたかなぁって感じ.

ちょっと充実感.

けど,一部,市販ソフトを使っていたりするんだけど,それらはまともに動作しないのでちょっと考え物だけどね.試した範囲では gitkraken は動作しませんでした.特定ディストリビューション向けに作られているとちょっと手が出せない感じかな.中には普通に動作するものもあるんだけどね.gitkraken の場合にはオープニング画面は出るんだけど,そこから先にはいくら待っても進みませんね.はい.

www.gitkraken.com

前回に話をしたように,とりあえず構築した docker 環境は Slackware をベースに作ったのですが,Qbilinux 上に載せ変える形で作り直してパッケージングしようかなと思っています.docker-compose コマンドは面倒になったらとりあえずバイナリをダウンロードしてパッケージングするだけにするかも知れないけど.:-P

平行して作業用の中古 UEFI PC を調達してから,インストーラー/ブート周りも作業しないとな.

一部壊れているパッケージなども混ざっていますが,現在作業している状態のものは逐次,気が向いたときに https://qbilinux.org/pub/qbilinux-current/ の方にあげるようにしていますので,興味のある方はどうぞ.https://qbilinux.org/pub/isos-current/ にあるちょっと(かなり?)前に作成した iso ファイルのインストーラーを使えばインストールなんかはできるかなとは思います.が,普通の人にはちょっと敷居が高い作業かな?

一人で作業してると,別件で色々と忙しくなったりすると,なかなか作業が進みませんね....

同じような話ばかりしている気がしますが,最近はそんな感じす.はい.

QNAP NAS 用 Twonky Server って

先日,QNAP TS-453Be を購入して初期設定を行った際に気が付いた話でも.

今どきの QNAP は Twonky Server が復活しているんですね.Twonky Server とは DLNA 対応のメディアサーバーのソフトウエアのことです.はい.

twonky.com

昔は無料のものが配布されていましたが,ライセンス契約が切れたようで一時期は配布されなくなっていました.

QNAP 用のバイナリ自体は公開されていたので,自分で導入して,ライセンス購入すれば利用することは可能でした.その方法などに関しては過去の blog に記載しています.

toshi-mtk.hatenablog.com

で,現在,QNAP NAS に同梱されている Twonky Server ですが,QNAP ストアでライセンス購入する形のものが同梱されるようになったみたいです.昔、配布が復活したみたいって blog も書きましたが,その時からこの形だったのかな?もしそうなら,昔の blog が間違ってますね.失礼しました.

toshi-mtk.hatenablog.com

立ち上げようとするとライセンス購入が促されるような画面が立ち上がります.
 

https://software.qnap.com/twonky-server-8-5.html でライセンス販売を行っていますが,価格は $22.99 のようですね.どうやら規約等を見る限りでは QNAP 用 Twonky Server 専用ライセンスのようで,ほかのデバイスにはこのライセンスは利用できないようです.

ただ,ここから購入すれば QNAP のライセンスマネージャーからライセンスの取り込み等ができるようなので,ライセンス管理は楽そうですけどね.

私は実際にはこのページからライセンス購入を行っていないので詳細は分からないですけど....

で,私の場合は過去 blog 記載したように,すでに別途ライセンス購入して持っていますので,それを使おうとしましたがプリインストールされている Twonky Server にはライセンスの入力欄がありませんね.どうやらプリインストール専用にカスタマイズされている雰囲気.

私が所有しているライセンスは Twonky から直接購入したものなので,QNAP 専用というわけではなく PC/Mac/Linux などどのマシンにも使えます.Mac 用に使っていたライセンスを最近は使っていないので,Mac との紐づけを解除して QNAP NAS に使うことにしました.

ということで,別途 http://download.twonky.com/8.5.1/ から Qnap x86-64 package をダウンロード.

QNAP の「App Center」を立ち上げて右上にある■が4つ並んでるみたいなアイコンをクリック.

「参照」を選んで,ダウンロードしたファイルを選択して手作業でパッケージをインストール.

http://QNAP の IP アドレス:9000/webconfig/index.htm

にアクセスしたところ,普通にライセンス認証ページが表示されたのでライセンス購入したアカウントでログイン.

という形で無事認証されました.

あとは shared folder の設定などを適当に行えば設定終了.

ふう.

ざっと1か月ほど使っていますが,問題なく動作していますね.よかったよかった.

という感じで,QNAP 用の Twonky Server のお話でした.はい.

 

QNAP NAS を調達して Western Digital GOLD 10TB HDD (WD101KRYZ) を載せ替え

先日(といってもかなり前ですが..),Western Digital GOLD 10TB HDD を購入して QNAP TR-004 で使い始めたって話を書きました.

toshi-mtk.hatenablog.com

その後日談みたいな感じです.

この WD Gold 10TB + TR-004 の環境ですが,使用頻度はそれほど高くなかったのですがたまに使用すると HDD へのアクセススピードがものすごく遅い.

読み出しは大丈夫なんだけど,書き込みを行うと極端に遅くなる.

試しに NAS から USB 接続した TR-004 へのアクセス速度を見てみました.

NAS から TR-004 への 100GB のファイルコピーに約11時間.

実用的じゃない速度だね.

逆に TR-004 から NAS への 100GB のファイルコピーは約12分.

まぁ,普通の速度かな?

HDD の SMART とか見ても異常はないみたいだから,相性の問題かなぁと.

先日の記事にも書きましたが,実際,QNAP TR-004 の互換性リストにこの HDD (WD101KRYZ) は掲載されていません.ということで,正常動作しなくても文句は言えない?って扱いになってる感じ.

書き込み速度が遅いだけで,読み書き自体も正常に行えていたので,だましだまし使っていましたが,それもなんだかもったいないかなぁということで,新しく NAS 本体を購入して載せ替えることにしました.

で,購入したのは QNAP TS-453Be.

www.qnap.com

intel Cereron J3455 を積んだ 4ベイの NAS で.メモリはとりあえず 4G のものにしてみました.メモリは足りなければ自分で簡単に増設できますからね.はい.

選定時には WD101KRYZ が正式にサポートされいるかは当然チェックしました.問題なく,この TS-453Be ではサポートされています.

そんな感じで,HDD の載せ替え作業.

内容はフォーマットしなおす前提なので,いったん最新状況のバックアップを取ってから TR-004 から HDD をとりはずして TS-453Be に取り付け.

RAID5 でフォーマットしなおして簡単に動作していることを確認.

その後,ドキドキしながら大きなファイルをコピーしてみましたが,全く問題なし.

読み書きともに高速に動作しました.

ふう.

バックアップを行ったファイルを NAS の方に戻して通常運用.うーん,快適.

やっぱりサポートされている HDD を選ばないと,この手の商品はダメですね.はい.

余った TR-004 の方はそのうちサポートされている HDD を載せて,再び外付けで利用しようかなと思っています.NAS 本体のバックアップなどにはやっぱりこの手のユニットは便利ですからね.

ということで,簡単ですけど,HDD を QNAP の USB ユニットから NAS に移設した話でした.

気が向いたら,後日,QNAP TS-453Be の話も書いていきたいと思っています.

 

新しい Windows 版 Edge ブラウザの開発環境が便利,ついでにプラグインの話

そろそろ新しい Windows 版 Edge ブラウザの自動配布が始まったみたいですね.

今回から Google Chromium ベースになって Chrome と同じ Blink エンジンを使う形になった感じですね.

ということで,これまで Windows 上での web 開発に Google Chrome を使っていましたが,最近は割と Edge を利用しています.

デバッグ画面などが Chrome と全く同じ.ということで,慣れ親しんだ Chrome と同じ形で使えるので便利ですね.

あとは何となく Chrome よりも Edge の方が動作が軽い感じがするんですよね.

で,開発用に使っていて気になるのがプラグインの対応.

標準状態ですと,当然,マイクロソフトストアから検索する形になります.でも,これだと足りないんですよね.

vue.js の devtools などは出てきません.

また,google chrome の vue.js devtools のページを表示してもインストールのボタンは出てきません.

で,インストールする方法ですけど,chrome のプラグインのページにアクセスすると上部に「他のストアからの拡張機能を許可する」って表示が自動的に出てくる場合にはここをクリックすると,マイクロソフトストア以外で配布されているプラグインなどがインストールできるようになります.

出てこない場合 or 別の設定方法としては Edge の「メニュー」>「拡張機能」で表示されるページの左下にある「他のストアからの拡張機能を許可する」を「オン」にすれば大丈夫です.

この設定を行うと chrome のアドオンのページ等にアクセスした場合でも「Chrome に追加」ボタンが表示されるようになりますので,インストールできるようになります.

ということで vue.js devtools などもインストールすることができて,普通に動作.よかったよかった.

いまのところは Edge を使っててデメリットはあんまり感じていないです.

検索エンジンは標準で Bing とかになっていますが,この辺りも「メニュー」>「設定」>「プライバシーとサービス」>「アドレスバー」から「アドレスバーで使用する検索エンジン」を適当に変更することができますし.

まぁ,一通りの設定項目を見て,気に入らない箇所は変更することをお勧めします.

それにしても,最近のマイクロソフトは OSS な業界にずいぶん歩み寄ってきましたね.WSL2 といい,今回の Edge の件といいい.個人的にはすごく良いことだなと思っています.

そんな感じで割と便利に Edge を使っています.はい.