プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

古いノートPCの復活

家に1台、ノートPCが余ってまして、Lubuntu いれて外での簡単なデモとかに使ってました。が、コロナの影響で外出することもなかったためここ2年ぐらい放置状態でした。

さすがに古いし、重いし、もう廃棄処分にしようかなと思っていた矢先、コロナも(少し)落ち着いてきて、また外でデモ的に使う機会が出てきたので、もうちょっと頑張って使うことにしました。

せっかくの機会なので、ついでに SSD に乗せ換えて、ちょっとでも使い勝手を良くしたいと思います。古いものなので参考にならないと思いますが、自分の記録用にセットアップまわりをメモ書きしておきます。

対象機種

Lenovo 3000 v100 という 12.1 インチの B5 ノートになります。

ネットで、仕様を調べたら、下記が見つかりました。

New Lenovo 3000 V100 12.1-in widescreen notebooks with Intel Core Duo processor T2300E -- Sleek

2006 年発売モデルなので、もう15年も前の機種になりますね。よく壊れずに動いているもんだと感心してしまいました。

もっとも、昔(調べたら 2016 年でした)、RTC 用のバッテリーとモバイルバッテリーは使い物にならなくて交換したような覚えがあります(当時の交換のあれこれはブログに書かなかったようですね、しまったなー)。

HDD を SSD に換装

HDD を SSD 化しておきます。

改めて、 HDD のインターフェースを調べたのですが、上記の仕様のページではよくわかりませんでした。

あれこれネットを探していると、価格.com の口コミに、この機種へのレビュー記事へのリンクがあり、そこに SATA とありました。

あとから、気づいたのですが、 BIOS で確認したほうが確実でしたね。

f:id:junichim:20211203223245p:plain

HDD のところに、 STAT1 の表記が見られます。

ということで、 SATA 2.5インチであれば大丈夫そうなので、 SSD は Amazon でぽちっと買いました。購入したSSDはこちらになります。

HDD のとりはずし

マニュアルはこちらです。

バッテーリーを外して、ネジを緩めて、HDDのふたをはずせば、OKと思いきや、なかなかふたが外れません。

f:id:junichim:20211210152247p:plain

少し横から内側に押すようにすると引っかかりが外れて、うまく取れました。

f:id:junichim:20211210152415p:plain

こんな感じで両サイドとネジと反対側にひかっかりがあったためのようです。

無事にふたが取れると、HDDがお目見えします。

マニュアルによると、引っ張るベロのようなものを使って、取り出すとあるのですが、どうも見当たりません。よく見ると、HDDの下側に何か回り込んでいるようなので、細い棒でひっかけて取り出してみます。

f:id:junichim:20211210152553p:plain

全部出すとベロのような持ち手が現れます。

f:id:junichim:20211210153233p:plain

これを横方向に引っ張り、端子からHDDを外して、次に上側に持ち上げると、取り出すことができます。

f:id:junichim:20211210153310p:plain

東芝製、40GB、5400rpm のHDD(MK4032GSX)ですね。

HDDをカバーから取り外して、SSDに付け替えます。ネジが馬鹿みたいに固くて、ちょっと取り外しに苦労しました。

f:id:junichim:20211210153925p:plain

取り外しと逆の手順で、SSDを取り付ければOKです。取付時は、ネジ位置の部分が少し出っ張るので、本体側にある切れ込みに合わせないとうまく入りませんでした(取り外し時に上側に持ち上げたときの状態に合わせて、入れなおせばうまく合うはずです)。

うまく本体に収まったら、端子側に押し込めば完了です。

フタを取り付けて、 BIOS を起動して、正しく認識しているか確認します。

f:id:junichim:20211210154340p:plain

120GB と今回購入した SSD の容量になっているので、大丈夫そうですね。

あとはPCを再起動して、 Lubuntu をインストールします。

ちなみに、BIOSから抜けた直後は、なぜかうまく起動しませんでした。一度電源を切って、再度電源を入れたら問題なかったです。

Lubuntu 18.04 のインストール

いままでの Lubuntu が 14.04 だったので、32bit版で一番新しい 18.04 を入れなおすことにしました。

まず最初に、こちらから 32bit 版の iso イメージをダウンロードしてきます。

次に、Rufus の portable 版を使って、インストールメディアを USB 上に作成します。

続いて、BIOS の起動ドライブを USB を優先に変更します。USB HDD をHDDより上位にすればOKです。

f:id:junichim:20211203223844p:plain

(画面は SSD 換装前のものです)

一番上が USB FDD となっているのは時代ですね。ここで、いったん、電源を切ります。

次に、さきほど作った USB を刺して、起動します。すると、 USB から Lubuntu が起動してインストールが選択できる状態になります。あとは、画面指示に従えばOKです。なお、インストール時は、最小構成を選択しておきました。

これで、復活ですね。

Lubuntu のセットアップ

たまのデモにしか使わないのですが、いくつかセットアップしておきます。

Chromium のインストール

apt でインストールすればOKです。

mor@mor-LENOVO3000-V100:~$ sudo apt install chromium-browser

これでインストールできましたが、デフォルトブラウザは Firefox のままなので、こちらの記事などを参考にして、Chromium に切り替えておきます。

mor@mor-LENOVO3000-V100:/etc/alternatives$ update-alternatives --list x-www-browser
/usr/bin/chromium-browser
/usr/bin/firefox
mor@mor-LENOVO3000-V100:/etc/alternatives$ 
mor@mor-LENOVO3000-V100:/etc/alternatives$ sudo update-alternatives --config x-www-browser
alternative x-www-browser (/usr/bin/x-www-browser を提供) には 2 個の選択肢があります。

  選択肢    パス                     優先度  状態
------------------------------------------------------------
* 0            /usr/bin/firefox            40        自動モード
  1            /usr/bin/chromium-browser   40        手動モード
  2            /usr/bin/firefox            40        手動モード

現在の選択 [*] を保持するには <Enter>、さもなければ選択肢の番号のキーを押してください: 1
update-alternatives: /usr/bin/x-www-browser (x-www-browser) を提供するためにマニュアルモードで /usr/bin/chromium-browser を使います
mor@mor-LENOVO3000-V100:/etc/alternatives$ 

おわりに

一応これで、使えるようになったので、もう少し頑張ってもらうことにしました。さて、あと何回ぐらい活躍するかな?

PC を3画面化

今の PC の CPU である第11世代の Intel Core i9 は3系統のビデオ出力が可能だそうですが、BTO でお願いした Sycom で選べるマザーボードで対応しているものがありませんでした。

なので、今は、オンボード出力の HDMI と DisplayPort を使って、2画面で作業をしています。

これで、問題ないと思っていたのですが、 DisplayPort 側のディスプレイの電源を切ると、そちらの画面で開いていたウィンドウなどがもう一方のディスプレイに寄せられてしまいます。はっきり言って、非常に使いにくいです。

ググってみると、割と有名な問題だったようです。

上記の記事でもいろいろと対応方法が書かれていますが、これだ!というものがありません。

致し方ないので、しばらくは、だましだましで使っていたのですが、やっぱりどうも使いにくいです。

で、そうこうしているうちに、机を新調することになったので、この機にあこがれの3画面化にして、ついでに DisplayPort を使わないようにしてみました。その際のメモをまとめておきます。

机を新調

仕事部屋が狭いうえに、2階にある(しかも階段が狭い)ので、オンラインでの注文はちょっと踏み切れませんでした(もちろん、見積もり時に2階への搬送や組み立てに対応しますと明示しているところもありましたので、一度相談するのもありかもしれません)。

ましてや、自分で机を運んだり組み立てたりは無理だと思ったので、困ったときは身近な知り合いということで、 アクトさんにお願いして、仕事部屋に搬入後、組み立てていただくことにしました。

いやー、仕事早いですね。1時間ぐらいで狭い部屋なのに、見事に机をくみ上げていただきました。ありがとうございました。

机は、幅160cm 奥行 70cm のものを選びました。今どきの机っぽくて、配線がうまく隠せるようになっているのがいいですね。

3画面化

さて、机が大きくなり、ディスプレイを3台置けるようになったので、3画面化を進めます。

希望としては、

  • HDMI もしくは DVI-D で3画面にする(もし、すべて HDMI で統一できればなおよし)
  • 3画面表示時、 WUXGA 1920 x 1200 が表示可能

というところです。

どうやって3画面化するかな?を考えて、いろいろと検討してみました。

案1:3画面以上の出力を持つグラボを購入

いろいろ調べてみると HDMI で4画面出力をもつようなグラボがいくつかありました。

「HDMI出力端子数:3個~」のビデオカードの商品の一覧

お値段も1万円台として、非常にリーズナブルです。

ただ、仕様とかを見てみても、3画面以上の出力で 1920x1200 が出るかどうかがつかめませんでした。

最悪、買ってみて試すのもありなのですが、失敗すると使わないグラボが1枚できてしまうので、さすがに躊躇します。

1万円台の次だと4万円台と価格が大きく上がるので、この案はあきらめました。

案2:オンボードグラフィックス+追加グラボ

どうしたものか考えてたとき、ふと、オンボードと追加グラボの両方を使って、3画面出せばいいんじゃないか?と気づきました。

早速、調べてみます。 ASUS の FAQ によるとできそうですね。

オンボードのモニター出力を有効にする方法 | サポート 公式 | ASUS 日本

パフォーマンスが悪くなる、と気になることが書いてありますが、主な用途はコーディングと事務仕事なので、多分大丈夫でしょう。

念のため、同じ設定項目が今のマザーボード(ASUS ROG STRIX Z590-F GAMING WIFI)にあるか見ると、似たような項目、『統合グラフィックスを常に有効』、というのがあります。これでいけそうですね。

グラボ購入

グラボ自体にそんなにこだわりはないので、値段と端子の種類などを中心に検討した結果、玄人志向の GT 1030 のものにしました。

取付

さっそく取り付けてみます。の前に、一度 PC を再起動して、 UEFI を呼び出して、設定項目を変更します。

詳細->システムエージェント設定->統合グラフィック設定 とすすみ、『統合グラフィックを常に有効』が Disable だったのをEnableに変更します。

f:id:junichim:20211210150308j:plain

設定を保存して、電源を切っておきます。

次に、取付です。

今のマザーボードの場合、PCI Express が M.2 と帯域を共有していたりして、どこにつけるか迷いましたが、マニュアルを見るとグラボ1枚指すときは PCIEX_1 につけろ、とあったので、その通りにします。

取り付け後、オンボード(HDMI)とグラボ(HDMI)にそれぞれディスプレイにつないで、電源を入れます。

最初は、1画面分(オンボード側)にしか出力がなかったのですが、しばらくするとドライバーが勝手にインストールされたようで、グラボ側につないだディスプレイにも映像が出るようになりました。玄人志向の製品ページには自分でドライバをいれろみたいなことが書いてありましたが、自動でやってくれました。

Windows 起動後、デバイスマネージャーを見ても、ちゃんと2つのグラフィックボードが認識されていました。

f:id:junichim:20211210150652p:plain

これで、オンボード側とグラボ側の両方から同時に出力することが確認できたので、設定に問題はないと思います。

3画面表示

最後は、グラボ側の2出力にディスプレイを付けて、あこがれの3画面で表示させてみます。

f:id:junichim:20211210150957p:plain

ちゃんと映りました。

いやー、なかなか壮観ですね。

とはいえ、実際の使い勝手については、まだまだ分からないので、そのあたりはいろいろと試していきたいと思います。

hugo にまつわるあれこれ

久しぶりに森ソフトの Web サイトを更新しようとして hugo を触ってて気づいたあれこれをまとめておきます。

テーマのアップデート

使っているテーマ Universal がいろいろと更新されていたので、1.1.1 から最新版の 1.2.5 へアップデートします。

mor@DESKTOP-DE7IL4F:/mnt/d/work/own_app/mywebsite$ cd themes/hugo-universal-theme/
mor@DESKTOP-DE7IL4F:/mnt/d/work/own_app/mywebsite/themes/hugo-universal-theme$ git tag
1.0.0
(中略)
1.2.4
1.2.5
mor@DESKTOP-DE7IL4F:/mnt/d/work/own_app/mywebsite/themes/hugo-universal-theme$ git checkout tag/1.2.5

いくつかのファイルをカスタマイズしているので、以前の記事と同様に、カスタマイズした内容を新バージョンのファイルに適用しておきます。

一度 hugo server を実行して問題なくサイトが表示されることを確認します。よさそうですね。

クラス属性の追加を可能にする

テーマのアップデートに続き、コンテンツもいくつか内容を更新しました。この際に、 CSS をカスタマイズしようとしたら、マークダウンで書いた内容に対してクラスなどの属性が追加できないことに気づきました。

取り急ぎは直接タグを指定して CSS 定義する形でも問題ないんだけど、先々困りそうでちょっと嫌な感じです。

で、調べてみたら、hugo v0.81 以降だと、クラス属性の追加ができるとのことです。

Hugo Markdown でブロック要素にクラス属性を付与する | text.Baldanders.info

公式の説明はこちら。

ということで、早速これを試してみました。

試してみる

まずは既存の hugo を v0.77.0 から v0.89.4 にアップデートします。

mor@DESKTOP-DE7IL4F:~/tmp$ wget https://github.com/gohugoio/hugo/releases/download/v0.89.4/hugo_0.89.4_Linux-64bit.deb
mor@DESKTOP-DE7IL4F:~/tmp$ sudo apt purge hugo
mor@DESKTOP-DE7IL4F:~/tmp$ sudo apt install ./hugo_0.89.4_Linux-64bit.deb
mor@DESKTOP-DE7IL4F:~/tmp$ hugo version
hugo v0.89.4-AB01BA6E linux/amd64 BuildDate=2021-11-17T08:24:09Z VendorInfo=gohugoio
mor@DESKTOP-DE7IL4F:~/tmp$

で、試してみます。content/sample.md を作って、テーブルの最後にクラス名を追加してみます。

---
title: "クラス属性のテスト"
date: 2021-11-26T16:45:34+09:00
---

サンプルページです。

|col a|col b|
|-----|-----|
|aaaaa|bbb01|
{.mytable}

うまくいくかな

で、 hugo server で表示して、ブラウザで表示すると

f:id:junichim:20211126165041p:plain

こんな感じに、テーブル要素にクラス属性が追加されていました。

これで、CSSもクラスを指定して書けるので、ちょっと安心ですね。

ページバンドル

こんな感じで更新作業を行っていたら、 content 以下のページ単位でリソースを持つことができる機能があることに気づきました(ページバンドル と呼ぶようです)。 似たような名前のページリソースというのものあるのですが、こちらはページバンドルの対象フォルダ内にあるリソース(画像や動画やPDFなどなど)のことを指すようです。

公式ドキュメントを読んでみてもいいのですが、下記のサイトがわかりやすかったです。

画像ファイルを Markdown ファイルと同じディレクトリに置く (Page Bundle) | まくまくHugo/Goノート

ポイントは

  • index.md があるフォルダが Leaf Bundle
  • _index.md があるフォルダが Branch Bundle

となり、それぞれのフォルダに画像リソースなどを置くことができる。というものです。 Leaf と Branch はいろいろと違うので、詳細は上記のサイトや公式ドキュメントを見ていただいたたほうがいいのですが、おおざっぱな理解として、

  • Leaf Bundle は一記事のために画像リソース等をまとめて管理して扱うためのもの
  • Branch Bundle は複数記事のために画像リソース等をまとめて管理して扱うためのもの

という感じでしょうか(公式のページバンドルのページの頭あたりにある表が比較にはいいかもしれません)。

こちらも試してみます。こんな感じにsampleフォルダを作って

f:id:junichim:20211126170734p:plain

index.mdを以下のようにします(Leaf Bundle になります)。

---
title: "ページバンドルのテスト"
date: 2021-11-26T16:45:34+09:00
---

サンプルページです。

![ロゴ](images/morisoft-logo.png)

うまくいくかな

ブラウザで localhost:1313/sample を表示すると

f:id:junichim:20211126170542p:plain

問題なく画像が表示できていますね。