ubuntu20.04LTSはなかなか良い。Winから乗り換えて半年程度たちますが、もうWinに戻る気がしない。
必要なことは無料のアプリでまかなえ、動画編集やストレージの管理などはubuntuの方が使い勝手がよい。
唯一、印刷が劣るが、スマホと連携すれば解決するので問題ない。
なんと言っても古いハードウエアのサポートが長く続くのがよい。
(WinではPL-2303のドライバーが突然つかえなくなったりしたからな、ubuntuでは今も問題なく使えるし・・・)
どうしてもWinでないと実行できないアプリは、VirtualBoxなどの仮想マシン上で実行すればいいのだ。

という訳で、Winからubuntuへの乗り換えを決意して、約1週間で我が家の物理マシンからWindowsが消えた。
乗り換え時にやったことを、備忘録としてまとめた。

【悲報】 22.04からNFSv2クライアントがサポートされなくなっていた。古いOSでしか動かないコンパイラもあるので困る。
古いデバイスを長くサポートするからubuntuを選択していたが、古いものは切り捨てられる運命なのか・・・

ベース部分の構築

基本操作

●各部の名称
●電源OFF システムメニューから電源を切ることができる。

【システムメニュー】

●端末を開く トップバーとUbuntu Dock以外のエリアを右クリックして表示されるダイアログから端末を呼び出せる。

●ユーザーをrootに変更する sudo su - ⏎と端末で入力するとユーザーをrootに変更できる。

メニューに移動

インストール

●ubuntuのインストール Ubuntuデスクトップ版(Ubuntu Desktop 20.04.3 LTS)を公式サイトからダウンロードした。 ファイルは、iso形式だったので、そのままDVDに焼いてインストールした。
インストールは、【初心者でもわかる】Ubuntuのインストール方法まとめに従って行った。
インストールの種類は、「その他」を選んだ。パーティションは、下記のように設定した。
  • サイズ:50GB タイプ:Ext4 マウント:ルート
  • サイズ:24GB タイプ:Swap マウント:なし
  • サイズ:残り タイプ:Ext4 マウント:/home
インストールが終わるとリスタート後、インストールCDを抜くよう指示される。インストールCDを抜くと、ubuntuが起動した。

ノートPCにインストールする場合、UEFI Modeになっているとubuntuが起動しなかった。CSM Modeに変更したら起動した。 私は、Dynabook Satelite B35にインストールしたのだが、電源ONしてすぐF12を連打してBIOS画面を開き、以下の手順でCSMブートに変更した。
  • 左のペインでSecurityを選んで、「Secure Boot」をDisableに変更
  • 左のペインでAdvancedを選んで、System Configuration > Boot ModeのUEFIをCSMに変更
  • 変更を保存して、再起動
●TimeShiftのインストール 導入直後はドライバなどのインストールが失敗して、元に戻したいことが多いので、スナップショットのバックアップと復元ができるTimeShiftをインストールした。
下記のコマンドでTimeShiftをインストールした。
sudo add-apt-repository ppa:teejee2008/timeshift ⏎
sudo apt install timeshift ⏎
設定内容は以下のようにした。
  • スナップショットのタイプ RSYNC(BTRFSというファイルシステムを利用してしている時、以外はこの設定でOK)
  • スナップショットの場所はバックアップ先のボリュームを指定する(指定したボリュームがマウントされたパスの直下のtimeshiftフォルダに保存される。空のボリュームでなくてもOK)
  • スナップショットレベルで保持するスナップショットの数を指定する
  • ユーザーホームディレクトリを除外するかどうかを指定する(非表示ファイルにユーザーごとのカスタマイズ要素が設定されることが多いので、非表示ファイルのみ含めるを選択した)
  • フィルタでは、/backupには他のバックアップを保存する予定なので念のため除外した

●グラボのドライバーのインストール このPCにはNvidia GeForce GTX 470を付けているが、Nvidiaのドライバーをインストールした方が性能を引き出せるとのことなので、インストールした。
  • nouveauの無効化
    /etc/modprobe.d/blacklist-nouveau.confの最後に以下の2行を追加した。(ない場合には新規に作成する。)
    blacklist nouveau ⏎
    options nouveau modeset=0 ⏎
    rootで下記のコマンドを実行し、nouveauを無効化する。リスタート後は、低解像度で立ち上がるので、この後の手順を他のPCで確認できるようにしておいた方が良い。
    update-initramfs -u ⏎
    reboot ⏎
  • グラボの確認
    rootで下記のコマンドを実行し、実装しているグラボを確認した。
    lspci | grep VGA ⏎
  • ドライバーのバージョンの確認
    Nvidiaのサイトでドライバーのバージョンを確認した。
    バージョンが390.144であることが確認できた。

  • ドライバーのインストール
    rootで以下のコマンドを実行し、ドライバーをインストールした。
    最後の390という数字は、先ほど確認したバージョンの整数部(メジャーバージョン?)である。
    apt -y install nvidia-driver-390 ⏎
  • ドライバーのインストール
    rootで以下のコマンドを実行し、ドライバーの状態を確認した。
    nvidia-smi ⏎
●グラボのドライバーのインストール その2 別のPC(Nvidia GeForce GTX 670)にドライバをインストールしようとしたところ、上記の手順ではうまくいかなかったので、別の手順でインストールした。
  • 使用しているGPUの確認
    lspci | grep -i nvidia⏎
    下記のように表示された
    01:00.0 VGA compatible controller: NVIDIA Corporation GK104 [GeForce GTX 670] (rev a1)
    01:00.1 Audio device: NVIDIA Corporation GK104 HDMI Audio Controller (rev a1)
  • 現状入っているCUDA,nvidia-driverの確認
    dpkg -l | grep nvidia⏎
    dpkg -l | grep cuda⏎
    どちらも何も表示されなかった。
  • 現状入っているCUDA nvidiaドライバの削除
    ドライバーが入っていた場合、下記のコマンドで削除するらしいが、入っていなかったので何もしなかった
    sudo apt-get --purge remove nvidia-*⏎
    sudo apt-get --purge remove cuda-*⏎
  • 推奨のドライバの確認
    ubuntu-drivers devices⏎
    下記のように表示されたので、nvidia-driver-470をインストールすることにした。
  • nvidia-driver のインストール
    sudo add-apt-repository ppa:graphics-drivers/ppa⏎
    sudo apt update⏎
    sudo apt install nvidia-driver-470⏎
    再起動させた
  • ドライバーの状態確認
    sudo nvidia-smi ⏎
●sambaのインストール
  • sambaのインストール
    sudo apt install samba ⏎
  • samba用ユーザーの追加
    以下のコマンドでubuntuのメインユーザーのmarchRabbitを追加した。このユーザーとパスワードは、Windowsからフォルダを共有するときに使う。
    sudo pdbedit -a marchRabbit ⏎
  • home directoryの共有設定
    /etc/samba/smb.confのShare Definitionsの中の[homes]の記述のコメントを外して下記の用に編集した。
    共有名をhomesからホームに変更した。
    [home]
    path = /home/marchrabbit
    browseable = yes
    writeable = yes
    read only = no
    [global]セクションに以下を追記し、WindowsXPなど古いOSからも共有できるよう古いプロトコルでのアクセスを有効にした。
    workgroup =GCC
    ntml auth = ntlmv1-permitted
    server min protocol = NT1
  • sambaの再起動
    sudo systemctl restart smbd ⏎
●h264デコーダのインストール mp4形式の動画を再生するためにデコーダをインストールした。
sudo apt install -y libdvdnav4 libdvdread7 gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly libdvd-pkg ⏎
sudo apt install -y ubuntu-restricted-extras ⏎
●VScodeのインストール
●Pintaのインストール sudo add-apt-repository ppa:pinta-maintainers/pinta-stable ⏎
sudo apt-get update ⏎
sudo apt-get install pinta ⏎
●SimpleScreenRecorderのインストール シンプルな画面録画ツールSimplescreenrecorderをインストールした。フルスクリーンやウインドウを指定してmp4形式で画面動画をキャプチャーできる。
sudo apt install simplescreenrecorder⏎
●Kdenliveのインストール 動画編集ツールKdenliveをインストールした。動画を直感的な操作で加工できる。
buntuソフトウエア(Aマークのアイコン)でKdenliveを探してインストールした。
●Cannonプリンタドライバーのインストール
  • プリンタドライバーをプリンターのサポートページ(PIXUS TS5430 OS選択)でOSにLinuxを選択してdebian用のドライバーをダウンロードした。
  • tar.gz形式で圧縮されていたので解凍した。
  • 解凍してできたフォルダの中のinstall.shを実行した。
    sudo ./install.sh ⏎
  • 「プリンタの電源を入れろ」などの画面の指示に従って設定をするとインストールが完了し、プリンターが登録された。
●Chromeの再インストール
  • 最新のChromeをchromeのダウンロードページからダウンロードダウンロードした。
  • ダウンロードしたdeb形式のファイルを右クリックして「ソフトウエアのインストールで開く」を選択した。
  • 削除ボタンを押して今のバージョンを削除した。
  • ダウンロードフォルダで下記のコマンドを実行してインストールした。
    (ソフトウエアのインストールでインストールしてもよいが、インストール保留中のままになったりするので、コマンドの方が確実)
    sudo apt install ./google-chrome-stable_current_amd64.deb⏎

カスタマイズ

●日本語キーボードに変更
  • コンソールで使うキーボードの変更
    sudo dpkg-reconfigure keyboard-configuration ⏎
    Generic 105-key PC (intl.) → Japanese → Japanese → The default for the keyboard layout → No compose key → No と選択した。
  • X(GUI)で使うキーボードの設定
    gnome-session-properties ⏎
    表示されたダイアログのコマンド欄にsetxkbmap -layout jpと入力し、保存ボタンを押した。
  • 設定を有効にするため、リスタートした
●日本語入力の有効/無効切替 Mozcの設定を使って日本語入力の有効/無効切替機能を割り当てるキーを指定するのだが、インストール直後の状態ではMozcの設定が開かなかったので、下記のコマンドでインストールした。
sudo apt-get install mozc-utils-gui fcitx-config-gtk⤵
システムメニューの設定ボタンを押下して設定ダイアログを表示し、左のメニューで「地域と言語」を選択する。
入力ソースのリストの中の日本語(mozc)の設定ボタンを押す。(日本語(mozc)が表示されない時は下の+ボタンで追加する)
Mozcプロパティのダイアログが表示されるので、一般タブのキー設定の選択の編集ボタンを押す。

【設定ダイアログ】

【Mozcプロパティ】

表示されたMozcキー設定ダイアログで、直接入力モードのIMEを有効化の入力キーを好みのキーに設定する。(私の場合、半角/全角にした) 同様に、入力文字なしモードのIMEを無効化の入力キーを好みのキーに設定する。

【Mozcキー設定ダイアログ】

【Mozcキー設定ダイアログ】

以上で、好みのキーで日本語入力の有効/無効を切り替えることができるようになる。
●自動ログアウト無効
  • アクティビティ画面を開き、プライバシーと入力
  • 画面ロックをクリック
  • 画面ロックの設定を以下に変更した
●固定IP設定
  • ネットワークインターフェイスの確認
    ip addr ⏎
    などで、ネットワークインターフェイスを確認した。(enp1s0だった)
  • 固定IPアドレス設定ファイルの作成
    /etc/netplanの下に固定IPを設定するファイルを、ユーザーをrootに変更して作る。
    最初に90などこのフォルダにあるファイルより大きな数字をもったyamlという拡張子のファイルを作ればよい。今回は、99_config.yamlにした。
    内容は、以下の通り。アドレスを192.168.0.100、ゲートウエイとDNSを192.168.0.253に設定した。
    ここで、段付にタブは使えない、コロンの後にスペースが必要などフォーマットはガチガチなので注意
  • IPアドレス設定の反映
    netplan apply ⏎

メニューに移動

開発環境の導入

GNUツール

●gcc・g++
gccとg++のコンパイル環境を下記のコマンドでインストールした
sudo apt install build-essential ⏎
バージョンは以下の通りだった
  • gcc 9.3.0
  • g++ 9.3.0
  • gdb 9.2

●yacc
gccのクロスコンパイル環境を作るときに、gccのビルドに必要なので次のコマンドでyaccをインストールした
sudo apt-get install bison ⏎
バージョンは3.5.1だった

●H8用GCCの構築 以下のパッケージをダウンロードし、H8用にコンパイルした。
binutilsのconfigure実行前に、CFLAGS="$CFLAGS -g -O2 -D_FORTIFY_SOURCE=0"を環境変数に設定した。
(gccビルド時にスタックオーバーフローを起こすのを防ぐため)
gccは、toplev.cのコンパイルが通らなかったため、ネット上の情報を元にパッチを作って当てた。
なんとかメイクはできたが、H8のC++ソースをコンパイルするとうまくオブジェクトが生成されなかった。仕方がないので、仮想PC上に古いLinuxをインストールしてH8のGCCをメイクすることにした
toplev.c用パッチ toplev.h用パッチ
  • binutils-2.16.1.tar.bz2
  • gcc-4.2.0.tar.bz2
  • newlib-1.13.0.tar.gz
●VMware Playerのインストール 以下の手順でVMware Player16をインストールできたが、このPCのCPUがi7ー870と古いせいか仮想マシンを起動することができなかったので削除した。
  • gccの更新
    sudo apt update ⏎
    sudo apt install wget gcc build-essential linux-headers-generic linux-headers-$(uname -r) ⏎
  • VMware Playerのインストール
    cd /tmp ⏎
    wget --user-agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:91.0) Gecko/20100101 Firefox/91.0" https://www.vmware.com/go/getplayer-linux ⏎
    chmod +x getplayer-linux⏎
    sudo ./getplayer-linux⏎
  • VMware Playerの起動
    アプリボタンを押し、ダッシュボードを使ってVMware Player検索して、起動した。
    初回の起動なので、ライセンスの同意などの設定をウィザートに従って行った。
    最後の質問では、Use VMWare Player free for non-commercial useを選択し、無償で利用することを選択した。
●VirtualBox 6.1のインストール 以下の手順でVMware Player16をインストールできた。また、仮想マシンも起動し、無事WindowsXPをインストールできた。WindowsXPのアクティベーションは今(2021/10/2)も可能だったが、電話でしかできず面倒だった。
  • システム上のパッケージの更新
    sudo apt update && sudo apt upgrade ⏎
  • Aptリポジトリーの構成
    wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key add - ⏎
    wget -q https://www.virtualbox.org/download/oracle_vbox.asc -O- | sudo apt-key add - ⏎
    sudo add-apt-repository "deb http://download.virtualbox.org/virtualbox/debian focal contrib" ⏎
  • VirtualBoxのインストール
    sudo apt update ⏎
    sudo apt install virtualbox-6.1 ⏎
  • VirtualBoxの起動
    virtualbox ⏎
  • Guest Addtions CDイメージのインストール
    ゲストOSにWinXPをインストールしてが、uest Addtions CDイメージの挿入を選択しても何も起こらなかった。
    下記のサイトにアクセスして、対応するVirtualBoxのフォルダの中にあるVBoxGuestAdditionsのISOイメージ(VBoxGuestAdditions_6.1.26.ios)をダウンロードした。
    http://download.virtualbox.org/virtualbox/
    ホスト上でISOファイルをマウントした。
    sudo mount VBoxGuestAdditions_6.1.26.iso /home/marchrabbit/tmp -t iso9660 -o loop ⏎ 
    ゲストのWinXPから上記でマウントしたフォルダにアクセスして、VBoxWindosAdditions.exeを起動し、ウイザードにしたがってインストールした。
    ※インストール途中でXPでは承認されていない趣旨のダイアログが開くがすべてインストールを選んでインストールした。
    ゲストOSを再起動するよう指示されたので、再起動するとuest Addtionsが有効になり、ウインドウのリサイズなどができるようになった。
  • ホストのUSBデバイスを使用可能にする
    仮想マシンを起動するホストマシンのユーザーをvboxusersグループに追加した。
    # sudo gpasswd -a marchrabbit vboxusers ⏎ 
    下記のコマンドでユーザーが追加されたことを確認した。
    # less /etc/group | grep vboxusers ⏎ 
    ホストを再起動し、ゲストを起動した。
    VirtualBoxのデバイスメニューのUSBを選択したときに、ホストのUSBデバイスが表示されればOK
    WinXPがゲストの場合、仮想マシンのUSB設定のUSBバージョンはVer2.0に設定しないと認識しないかった。(3.0だと不明はハードウエアとなってしまった)
    LP2303のシリアル変換器用のドライバーをWinXPにインストールすると、LP2303のシリアル変換器がCOM3として認識された。
  • インターネット接続
    インストール直後は、WinXPからインターネットに接続できなかった。
    WinXPの仮想マシンの電源を切った状態で、仮想マシンの設定のネットワークのアダプタ1の割り当てを「ブリッジアダプター」に変更後、WinXPを再起動したところ問題なく接続できるようになった
●nfsサーバのインストール nfsでフォルダを共有する準備として、まず、固定IPアドレスに設定した。
  • nfs-kernel-serverパッケージのインストール
    サーバになるだけだったらnfs-commonは不要だが、いつかはマウントすると思うので入れておく
    sudo apt update ⏎
    sudo apt install nfs-kernel-server ⏎
    sudo apt install nfs-common ⏎
  • エクスポートするフォルダの作成
    sudo mkdir /home/marchrabbit/H8 ⏎
    sudo chown nobody:nogroup /home/marchrabbit/H8 ⏎
    sudo chmod 777 /home/marchrabbit/H8 ⏎
  • フォルダのエクスポート
    /etc/exportsに以下の行を追加した。(192.168.0.101は、クライアントのIPアドレス)
    /home/marchrabbit/H8 192.168.0.101(rw,sync,no_subtree_check)
    その後、下記のコマンドで設定を有効にした
    sudo systemctl restart nfs-kernel-server ⏎
●VineLinux3.2でフォルダの共有 以前、VineLinux上でH8のGCCが動いたので、VirtualBoxにVineLinuxをインストールした。(VertualBoxの仮想マシンのタイプはLinux、バージョンはLinux2.4(32bit)を選択した)
VineLinuxは、正常に動作したがGuest Addtionsがインストールできなかった。画面のサイズも848×480しか選べなかったが、コンパイル専用マシンなのでよしとした。
WinXPと同様にネットワークのアダプタ1の割り当てを「ブリッジアダプター」に変更した。
  • フォルダをマウントする
    ユーザーをルートに変更して以下を行った。
    mkdir H8 ⏎
    mount -t nfs 192.168.0.100:/home/marchrabbit/H8 /home/rabbit/H8 ⏎
  • 起動時に自動的にマウントする
    vineLinuxの/etc/fstabに下記の行を追加した ⏎
    192.168.0.100:/home/marchrabbit/H8 /home/rabbit/H8 nfs rw,intr
●GUI ファイル比較ツール Meld sudo apt-get update ⏎
sudo apt-get install meld⏎
●KiCAD sudo add-apt-repository --yes ppa:kicad/kicad-6.0-releases⏎
sudo apt update⏎
sudo apt install --install-recommends kicad⏎
●Jre インストール sudo apt update⏎
sudo apt install default-jre⏎
●Freerouting freerouting-1.6.2-linux-x64.zipを適当なフォルダに解凍⏎
下記で実行する。
cd freerouting-1.6.2-linux-x64/bin⏎
./freerouting⏎
メニューに移動
inserted by FC2 system