Virtualboxで、Hello World!! IPLプログラムを自作した。

Manjaro Linux上のVirtualBoxで、FD起動の単純なIPLプログラムを作ってみた。もう十五年くらい前に、CD起動でやろうとして、当時はVMwareやVirtualBoxのような仮想環境が手元になく、古いパソコンで試行錯誤したが、結局、何も動かずに諦めた。先日、VirtualBoxをいろいろ試していて、FDディスクイメージを作成したり、起動できることを知り、インターネットで調べたら、豊富に情報があり、定番のHello WorldをIPLプログラムで表示してみることにした。
アセンブラにIntel記法とAT&T記法があり、プログラムの記述にばらつきがあって混乱したが、Manjaro Linux標準のGNUアセンブラとリンカだけで、見事、VirtualBoxの実行画面に表示させることができた。参考にしたのは、以下の書籍。ロングセラーの定番らしい。

— 書籍 30日でできる! OS自作入門

ただし、この本では、naskとかいう独自アセンブラのIntel記法なので、Manjaro LinuxのGNUツールチェーンとは、かなり違っている。それで、GNUアセンブラのAT&T記法で自分で書き直しながら、インターネットのサンプルプログラムを盛り込んで、FDディスクイメージを作成した。

VirtualBoxの設定をして、恐る恐る起動したら、動作画面に”H”の文字が無限に表示されてしまった。プログラムを見直すと、ジャンプ判定が間違っていて、Intel記法のままだった。それを修正して、再度起動すると、見事に「Hello World!!」の文字が画面先頭に表示された。十五年前の挫折を克服した、という感慨と感動は、涙までは流しはしなかったが、言葉に言い表せない。それで気付いたのだが、私はRAM上のアドレスと、ディスクイメージ内のアドレスを混同していて、それが以前IPLプログラム作成に失敗した大きな理由だと分かった。上記の書籍でも、その区別を意識せずに読んでいると、いきなり「0xa000へ書き込む」とか書かれていて、あれ?メモリ上の0x8000へプログラムをロードするとか書いてなかったか?と意味不明に陥っていた。それは、インターネット上の情報でも同じで、書いた人は分かっているのだろうが、イメージ図をふんだんに使って、もっと明示的にどちらのアドレス指定なのか書いてくれないと、初めての人は混乱するのではないかと思った。

メッセージを表示して無限ループで停止するモニタープログラムを作って、フロッピーディスクイメージからロードさせることに挑戦した。
ディスクからセクターを読む指定には、CHS方式とLBA方式があるが、今回はフロッピーディスクのFAT12という前提で、それとブートセクターは512バイトしかないので複雑なプログラムを組めないこともあり、上記書籍を参考に、CHS方式をアセンブラでプログラミングして読み込こもうとしたが、プログラムを組んでいくうちに、それでは駄目だと思い始めた。
CHS方式はハードウェアとしてのドライブの構造に依存していて、シリンダーの数やヘッドやセクターの数を指定してBIOSで読み込むことになる。フロッピーでしか動かさないのであれば、それらの数を定数で決め打ちしてプログラムを作ることはできるが、それでも、ある程度大きなプログラムをロードしようとすると、ヘッダ番号やシリンダ番号を切り替えなければならない。(例:CHS方式では、先頭から19番目のセクターを読む時には、フロッピーディスクの片面のトラックにはセクターが18しかないので、ヘッダを切り替えて、シリンダー番号0-ヘッダ番号1のセクター1として指定する)ハードディスクドライブやSSDなどへ移植する場合は、またプログラムをそれぞれに合わせて書き換えることになり、それよりは、BIOSでドライブ情報(当該ドライブのシリンダー数、ヘッド数、セクター数)を取得して、アクセスしたいセクターを計算でCHS方式に変換する方が汎用性がある。また、LBA方式は論理的な順列のセクター番号なので、セクター番号0から順番に値を増やしていけるのでロジックの見通しがよい。ただディスクから読み込むときは、必ずCHS方式に変換し指定して、1セクターずつBIOSで読み出す必要がある。そこは複雑でもサブルーチンを作成するしかない。ディスクイメージの概念図では、記憶する領域がずっと一続きで連続しているようなイメージを持ちがちだが、実際はCHS方式のように、磁気ディスクの円盤の裏面へ移動したり、シリンダーを切り替えたりという物理的な形状の断絶があることをしっかり頭に叩き込まないと、なぜこんな複雑なプログラムを書かなければならないのか意味不明になって、理解が追い付かず、挫折するのではないかと思う。

LBAからCHSへの変換ルーチンの作成は時間がかかりそうなので、1セクタ分だけCHS[0,0,2](LBA方式ではLBA[1])から、メッセージ表示するだけのモニタープログラムを読み込んで、モニタープログラムへジャンプするようにした。これも何度目かのトライで、無事「Welcome to Monitor !!」が画面に表示された。
これから暇を見て、少しずつ拡張し、FreeDOS(?)のような、どこかの出来合いのフリーOSを移植しようと思っている。

(2022/11/3 追記) ブートセクターのIPLプログラムを作成する時、高級言語でやっていたように、エラーチェックとエラー処理、どんなエラーが発生したのか、すぐ分かるようにプログラミングしていたが、何と、いつの間にか512バイトをオーバーしてしまい、ブートセクターの中に納まらなくなっていた。プログラムの最後はエラー発生時のメッセージのアスキーコードなので、今まで気づかなかったが、本当にエラーが発生していたらプログラムが暴走していただろう。『30日でできる! OS自作入門』の中のプログラムが決め打ちで、プログラムを簡便化していた理由が分かった。IPLは本当にディスクからRAMへのロードだけしかできないのだ。
IPLプログラム全体を見直し、メッセージは長々とした英文ではなく、簡潔な単語だけに縮小し、先頭のFAT12の情報の後、18バイト領域を空けていたのを2バイトにし、サブルーチンの数を減らすために、BIOSのエラーコードの数値を文字に変換して出力するのを止め、LBAからCHSへの変換ルーチンもbpレジスタやdiレジスタ、siレジスタを作業用に使用するように改造し、push,popする回数を最小限に抑えた。何とかブートセクター内に収めたが、それでも40バイト程度しか空きがなく、もしハードディスクへインストールする場合、パーティション情報をブートセクターへ完全には格納するにはまだ足りない。メッセージの文字列をもっと省略して、「error 1」とかだけにすれば、ぎりぎり何とかなりそうだが、その時にまた考え直そうと思う。

(2022/11/7 追記) IPLプログラムのFDディスクイメージのセクター2以降へ、FAT12のフォーマット時のFAT情報を設定するように改造して、モニタープログラムをファイルとして書き込み、FD内の実際にファイル内容が書き込まれたセクターからRAMへ書き込むようにした。ファイルシステムなしで、ブートとロード専用で直接セクターへの読み書きすることもできるが、三十年以上前のパソコンとMS-DOSはフロッピーだけで動作していて、そんな感じに利用することを取り敢えずの目標とし、また、Manjaro Linuxのファイル操作機能を利用して開発の利便性を向上させることも考えた。
この時、ちょっとドツボに嵌った。Makefile内でターゲットのイメージを作成する時、vfat形式を指定して/mnt/へマウントし、cpコマンドでファイルを書き込んだ後、すぐアンマウントさせるだけの手順なのだが、mount、umount、cpコマンドはスーパーユーザーでのログインが必要だった。ネットで調べると、.bashrcへ環境変数を設定して、「sudo -S」で実行すれば自動でログインしてくれることが分かったが、パスワードを直に書いてしまうことになり、セキュリティ上問題がある。SSH暗号化を使用する方法もあったが、面倒臭いし、個人の遊びのシステムなので、.bashrcへ直に書くことで我慢した。
Makefileを書き直して問題なくイメージファイルが作成できたのだが、モニタープログラムが想定とは違うセクターへ書き込まれていた。FATのデータ領域は、LBA[33]から始まるのだが、初期化直後の状態でFAT管理情報を作成しているのにも関わらず、LBA[34]から書き込まれている。散々調べたが、その理由は分からなかった。データ領域の先頭クラスターは予約領域なのか、ボリューム情報か何かにでも使用しているのかもしれない。とにかく、IPLのロード開始位置を修正して、無事、モニタープログラムのロードと「Welcome Monitor!!」の表示が正常に行えた。
これからは、32bitプロテクトモードへの切り替えと、画面への文字表示をやっていこうと思っている。

(2022/12/10 追記) Windows10のVMware Player 17でも、仮想マシンにフロッピーディスクドライブのデバイス機能を追加して、起動時に読み込むとFDイメージを読み込むように設定したら、Virtualboxと同様に起動して、画面表示を行えた。

カテゴリー: Linux, VirtualBox, VMware, 自作OS | コメントする

Manjaro LinuxのVirtualBoxでAlter Linux 32bit LXDEを動かしてみた。

Manjaro Linuxの公式リポジトリに、Oracle VM VirtualBoxがあったので、試しに何か仮想環境でOSを動かしてみようと思った。私は、Windows上ではVMwareを愛用しているが、Linux用VMwareにはインストーラーがなく、VMware Toolsも手動インストールなので、トラブルが起きた時の調査と対処が、面倒臭く思った。

最初はWindowsXPをインストールしようかと思ったが、インストール用CDが見つからなかった。ハードを売った時、一緒に処分してしまったのかもしれない。VMware用の仮想ディスクファイルはあるのだが、、、、しばらく思案して、軽量32bit OSで日本語が最初から使えるというAlter Linux 32bit LXDEをインストールすることにした。Xfce版もあるが、VH-AD3S proの貧弱なハードでは、できるだけ軽いOSを選択しないと、動作が遅くなるはずだ。日本の学生達が作成した、というのも興味を持った。

まずは、VirtualBoxをパッケージマネージャからインストールする。その時に、Linuxカーネルに対応した追加パッケージを選択するよう要求されたので、急遽、設定マネージャでインストールされているLinuxカーネルのバージョンを確認することになった。インストール自体は比較的スムーズに終わった。メニューの「システム」のなかに「Oracle VM VirtualBox」ができるので、そこから起動したら、VirtualBoxの画面が表示された。

Alter Linux LXDE 32bitのISOファイルを公式ホームページからダウンロードして、新規作成で仮想マシンを作成した。その時悩んだのが、Alter LinuxのカーネルはLinux+Zenという改造(?)カーネルなので、種別が純粋なLinuxではないことだ。悩んだ末、「その他」の「その他」で作成して、インストール自体は正常に終了した。インストール用ISOファイルでAlter Linuxを起動したが、画面が変な風に全体が透明になって、メニューやボタンが見えず、操作できなかった。しばらく放置するとデスクトップ画面が表示されて安心したが、インストーラーの画面がまた透明になって、VH-AD3S proの背景画像が透けて見えてしまい、メニューやボタンがほとんど見えないため、仕方なく強制終了した。

半透明でゲストOSの裏の背景が透けて、メニューや設定画面が見えない、見えにくい。不思議な現象に戸惑った。Alter Linuxのウィンドウのルック&フィールの設定を変更しようとしたが、設定画面が透明で背景画像と混在して操作できない。
調べてみると、昔からあるVirtualBoxのバグらしく「env XLIB_SKIP_ARGB_VISUALS=1 VirtualBox」で起動すると、透明にならず、正常に表示されるようになった。Oracleが片手間の惰性でやっているOSSなので、改善される見込みはないだろう。Broadcomに買収されたVMwareが心配になってきた。

Alter Linuxについてだが、インストールが日本語で簡単にできたのは評価できる点だった。パッケージのアップデートを実行したら、最初に大量の更新があって時間がかかるのは、理解できる。しかし、何度やっても途中で「予期しないエラー」となって、アップデートが全くできない。対象パッケージのチェックを外して、少数ずつやってもエラーとなる。アップデートができないという障害はシステムとして致命的だ。仮想環境ではなく実機だと、もしかしたらできるかもしれないが、Windos10上でのVMwareへインストールして試しても、同じくアップデートで「予期しないエラー」となってしまう。アップデートの失敗は、仮想環境でのWindowsや、どのLinuxディストロでも経験したことがない。元々のシステムの品質が悪いのではないだろうか?
残念ながら学生のお遊び感覚と実力不足が露呈した結果としか考えられない。これで、寄付をお願いしているなんて信じられないレベルだ。期待感でパソコン素人を釣るのではなく、学生も数年すれば社会人になるのだから、それで生計を立てたいのならば、まず基本的な実力を示すべきだと思う。Alter Linuxはこれ以上何もできないので、削除した。

カテゴリー: Linux, VirtualBox, パソコン | コメントする

Manjaro Linuxの個人的設定 その4。Sambaの設定 — 半分だけ成功、後は保留。

前の記事からの続き。Manjaro Linuxの個人的な設定の覚え書きです。

LAN内のパソコンでファイル共有するために、まずは、Manjaro LinuxからWindows10上の共有フォルダ(Everyoneにフルコントロールの設定をWindows上で行う)へアクセスできるように設定しておく。本来はファイルサーバーとなるWindows10は固定IPにするのが望ましいのだが、DHCPの動的IPのままでホスト名を使用して設定をしてみることにした。
ちなみに、Manjaro Linuxを固定IPにする場合は、メニューの「設定」内の「高度なネットワーク設定」を起動して、「Ethernet」の中の利用する接続名を選択して、編集を行う。「IPv4設定」タブ内の「メソッド」を手動にして、「アドレス」に固定IP(例 : 192.168.0.7)、サブネットマスク値(例 : 24)、ゲートウェイ(例 : 192.168.0.1—-通常はルーターのアドレス)を追加する。「DNSサーバー」にも、DNSサーバーのアドレス(例 : 192.168.0.1—-通常はルーターのアドレス)を入力して保存する。ルーターのDHCP固定割り当て機能を使う方法もあるが、今回のようにWindows10とのデュアルブートをする場合、Windows10で起動した場合も、固定IPとなって影響を受けてしまう。

Manjaro Linux側では、パッケージマネージャでsambaがデフォルトでインストールされていることを確認し、次にmanjaro-settings-sambaをパッケージマネージャからインストールする。manjaro-settings-sambaは、smb.confとかの標準的な設定を作成してくれるらしい。それで、sambaの設定ファイルがあるはずのフォルダを確認すると、/etc/samba/smb.confが作成され、中身も実用的な設定がされているように見えた。後は、パッケージマネージャで、cifs-utilsがインストールされていることを確認する。ファイルマネージャのThunarで、「ネットワークを参照」をクリックすると、数分後に、「/ on が見つかりませんでした」というエラーメッセージがクリックした回数だけ(^_^;;;表示された。ネット情報を参考にして、ファイルマネージャThunar用のツール、thunar-shares-pluginをパッケージマネージャからインストールしたが、何も変わらなかった。

すべてのパソコンを固定IPにしようと考え始め、ダメ元で、アドレスバーで直接、smb://xxxxxx[<—コンピューター名]/yyyyyy[<—共有フォルダ名]のように入力したら、あっけなくアクセスに成功して、ログイン名とパスワードを要求された。当該Windows10のユーザー名とパスワードでログインしたら、フォルダが開かれ、「ネットワーク」の場所の項目に追加された。
IPアドレスではなく、コンピューター名でアクセスできたので、名前解決の処理ではコンピューター名を取得出来ているということだ。なんとなくなのだが、「ネットワークの参照」に関しては、Thunarにバグがあるようで、本来は「ネットワークを参照」をクリックしたらWindowsの「ネットワーク」と同じく、自動で同一ワークグループ内のコンピューターを探索して表示するのだろう。gvfs-backendsを追加する必要があるという情報もあったが、パッケージマネージャに存在せず、Arch wikiには、gvfs-smb(Manjaro Linuxはデフォルトでインストールされていた)にバックエンドの機能があるように書いてあったので、どこにも明言されていないが、gvfs-smbにgvfs-backendsの機能が統合されているように思えた。gvfs-backendsを追加するというのは、Ubuntu系のディストリビューションか、古いバージョンでの対処方法のようだ。Windows10の共有フォルダへのアクセスはできたので、いろいろ腑に落ちない点はあるが、これ以上の追求はしないことにする。

今度は、Manjaro LinuxでSambaサーバーを常時稼働させて、Manjaro Linux内の共有フォルダをWindows10からアクセスできるようにする。今度はファイルサーバーとなるManjaro Linuxに共有フォルダを用意する必要があるが、manjaro-settings-sambaをインストールした時に、/var/lib/samba/usershareが自動で作成され、smb.confもそこを共有する設定になっていた。設定を変更する場合は、管理者権限(sudo)で、/etc/smb.confを編集する必要がある。

ここで不思議な現象が発生した。VH-AD3L(Windows10)のネットワークではManjaro Linuxのコンピューター名とアイコンが表示されないのに、Lightning AH5のWindows10のネットワークでは表示されている。ただし、中身へのアクセスはエラーとなる。winsサーバーでの名前解決はできているのに、sambaの設定が悪いだけのようにも見える。しかし、VH-AD3LとLightning AH5は両方ともWindows10 Homeだし、ウィルス対策ソフトも同じで、設定に違いが見当たらない。しかし、名前解決ができているのだし、あと一歩、Manjaro Linux側のSambaのアクセス権限とか、Sambaの共有ユーザーの登録とかの問題の気がする。いろいろ試行錯誤したが、sambaユーザーを登録するコマンドのpdbeditを実行すると、データベースへアクセスできないというエラーが出るなど、理解できない現象が相次いだ。
Windows10のコントロールパネルの資格情報マネージャーでManjaro Linuxのホスト名とログインユーザー名、パスワードを作成してみたが、やはり、ネットワークパスが見つかりませんというエラーとなる。Manjaro-settings-sambaの標準のsmb.confにおかしな設定があるようには見えない。

ネット情報にあった、「sudo gpasswd sambashare -a your_username」でsambashareというグループに自分のユーザー名を登録してみたが、全く改善しない。

名前解決でwinsサーバーを参照できればコンピューター名でアクセスできるはずなのだが、どうしてもできない。gvfs-backendsはパッケージマネージャに存在しない。どのリポジトリにもない。不思議。ネットの情報も錯綜していて、よく分からない。
試しに、VMwareのLinux Mint20.3で試してみたら、gvf-backendsのパッケージがあり、winbindというパッケージもあり、インストールしただけで、Windows10側からアクセスできた。ただ、smb.confの共有フォルダの設定をしたが、ユーザー名とパスワードを問い合わせる画面が出てきたが、Sambaユーザーの設定をしてないためか、アクセスを拒否された。設定を見直せば、正常動作するかもしれないが、Manjaro Linuxには適用できないので、Manjaro LinuxのSambaの問題であると判断して、今回はManjaro LinuxへのWindows10からのアクセスは断念した。

こういう標準設定方法がなく、ディストリビューションやバージョンによって、状況が変わってしまうのがLinuxの大きな欠点。LANはWindowsやMacOSなども含めて共存するのだから、その設定方法くらいはLinuxディストリビューション全体で横断的に標準化して欲しいものだ。実用に不都合はないので、いつか頭を冷やして、時間がある時、また取り組みたいと思う。

(2024/6/18 追記) Manjaro LinuxのXfceエディションは、sambaパッケージとThunarファイルマネージャの調整に問題があるのか、パッケージをアップデートしたら一時的に、ThunarファイルマネージャーからWindowsやネットワークHDDなどへ問題なくアクセスできるようになっていた。しかし、先月末あたりの大規模なパッケージの入れ替えがあった時、Thunarファイルマネージャなどもアップデートされて、また共有フォルダへのアクセスができなくなってしまった。Linux MintのXfce+Thunarではアクセスできる。また、Manjaro LinuxのPlasmaエディションのdolphinファイルマネージャでは、問題なく共有できている。おそらく、Manjaro LinuxとXfceとThunarの組み合わせで、どこかで不整合か調整不足があって、一部のパッケージだけアップデートすると、顕在化する不具合があるのだろう。Manjaro Linux Xfceが一番のお気に入りなのだが、不安定では安心して使えない。別のエディションか、Linux Mintへ乗り換えようかと考えている。

(2024/6/28 再追記)Manjaro Linux Xfceの最新版をダウンロードして再インストールしてみたら、Thunarのアドレスバー入力で、”smb://xxxx/”と入力したら、共有フォルダへアクセスできた。Thunarのネットワーク共有からはできなかった。どういった変更があったのかいろいろ見てみたら、カーネルの推奨バージョンが、Linux6.1からLinux6.9へ変わっていた。今までLinuxカーネルのバージョン変更の通知を気にもしていなかった。もしかしたら、Linuxカーネルのバージョンが、この不具合に関係しているのかもしれない。と、思っていたら、manjaro-settings-sambaと、thunar-shares-pluginをインストールしたら、また、共有フォルダへアクセスできなくなった。この二つをアンインストールしたら、共有フォルダへアクセスできた。矛盾するようだが、ファイル共有に必要なパッケージのはずだが、逆に、samba設定のパッケージとThunarの共有用のプラグインが阻害しているように見えた。不思議だ。

カテゴリー: DIY/日曜大工, Linux, パソコン | コメントする

ドスパラ VH-AD3S proの裏蓋のカバーを留めるネジ

今回、Manjaro Linuxをインストールするために、VH-AD3S proを裏返しにして、SSD取り付け部の蓋を取るために、ネジを外して、SSDを取り付けたのだが、裏蓋のカバーを留める10個、SSDの蓋を留めるネジを含めると12個のうち、4個が脱落して、無くなっているのに気が付いた。ドスパラのレビューで、他の人もネジが脱落していたという書き込みがあったので、製造元の中国での作業がいい加減だったのだろう。

ネジの種類には、ミリネジとインチネジがあって、ピッチが異なるので、間違えるとネジの渦巻きの溝を削って、ネジ穴が使用できなくなってしまう。自作パソコンの初期の頃に痛い思いをした。ネットの写真と見比べて、ミリネジではないか、と確信はないが、当たりを付けた。ミリネジにはサイズや長さに規格があって、ノギスを持ってないので、物差しの目測でのおおよそのサイズは、上の皿の直径が4mmで厚みは1mm以下、軸の太さは1mmか1.2mmくらいの極細で、軸の長さは3mm、SSDの蓋を留める方は長さが4mmで種類が違っていた。SSDの蓋のネジは二つともあるので、裏蓋を留めるネジを買うことにした。サイズからすると、M1x3かM1.2×3の超低頭の小ネジになり、Amazonで検索したが、当てはまる商品がない。どうも一般のネジではなく、極小の特殊なネジのようだった。ホームセンターを何軒か見て回ったが、M2(軸の太さが2mm)以上のサイズしか商品が置かれていない。

Amazonにもないし、ホームセンターにもないので諦めかけたが、ダメ元で、試しにホームセンターの一番小さいネジを買ってみることにした。M2x4mmの超低頭小ねじ6本入りを166円で購入し、自宅でVH-AD3S proを裏返して、ネジが抜けたネジ溝へ恐る恐るドライバーで回してみたら、抵抗はあったがスムーズにネジ留めすることができた。逆回転で外してみたが、ネジ溝を削っている様子はない。上の皿は少し小さい(3.5mmくらい)が、仮留めのような感じに緩くネジ留めして、取り合えず、裏蓋が落ちないようになればよいのだ。ネジが脱落したら、また同じものを買って、一時しのぎをすればよい。

–YAHATA ピタッと浮きなし小ねじ M2 x 4mm ピッチ0.4 ドライバー0種 超低頭小ねじ(NI) 6本。 今回購入した商品は、Amazonにはないが、同じものと思われるネジはあった。

カテゴリー: DIY/日曜大工, PCパーツ, パソコン | コメントする

Manjaro Linuxの個人的設定 その3。WineでWindowsのソフトウェアを動かしてみる。

Manjaro Linuxで、wineでのWindows用フリーソフトとシェアウェアの動作状況を確認してみた。

パッケージマネージャから、wine7.16-2をインストールする。ターミナルを起動して、コマンドで、「winecfg」を実行すると、ログインユーザーのホームディレクトリの中に.wineという隠しフォルダが作成される。コマンドラインでは、「wine xxxxx.exe」のようにwindows実行ファイルを指定する。オプションが必要な場合は、オプションも指定する。.wineという隠しフォルダーの中のdrive_cの中にProgram Filesなどのシステム関連のディレクトリが作成されているので、Pathを通すか、長くなるが/home/[–username–]/.wine/drive_c/Program Files (x86)/xxxxx.exeという風に指定しないと、実行すべき実行ファイルが見つからず、エラーとなる。あるいは、ファイルマネージャで、プログラムのファルダを表示させ、実行ファイルを右クリックして、「Wine Windowsプログラムローダーで開く」を選択すれば、起動する。

Windows用の日本語フォントが入っておらず、文字化けするはずなので、winetricksをインストールした。OSの再起動が必要。コマンドラインで、「winetricks allfonts」を実行すると、数十分以上インストールを続けて心配になったが、無事終了。ついでに、wine-gecko(Internet Explorer機能のエミュレーション?)とwine-mono(.NET Frameworkのエミュレーション?)もインストールした。

Wineで、秀丸メール/秀丸エディタ32bit版、Vertical Editor、楽天FXのMarketSpeedFX、Microsoft Office Personal 2007リテール32bit版などを試してみた。通信ソフトも試す。いちいちターミナルから起動するのは面倒なので、デスクトップにランチャーアイコンを作成する。

まずはインストーラーが必要なく簡単そうな、フリーソフトのVertical Editorを、Wineで試してみた。drive_cの直下に圧縮ファイルを展開すると、VerticalEditorというフォルダができる。その中のVerticalEditor.exeを右クリックで「Wine Windowsプログラムローダーで開く」を選択すると、プリンタ関連のエラーが出たが、起動することはできた。しかし、表示がおかしいし、環境設定や検索機能の画面が出てこない。日本語関係の部分がうまく処理されてないのだろうが、使い物にならない。フォントやプリンターの設定を時間を掛けて調べて試せば何とかなるかもしれないが、面倒くさいので諦めた。それでも、デスクトップ上にランチャーを作成してみた。ランチャーの設定は、「コマンド」に「wine /home/xxxxxx(<—ログインユーザー名)/.wine/drive_c/VerticalEditor/VerticalEditor.exe」を設定、「ディレクトリの編集」に、VerticalEditorの設定ファイルが存在する「/home/xxxxxx(<—ログインユーザー名)/.wine/drive_c/VerticalEditor」を設定する。アイコンをダブルクリックすると、「信用されていないアプリケーションランチャー」という確認画面が表示されるが、「実行を許可」すると、起動できた。この確認画面は、ダウンロードとインストール完了待ちの間に、別のマシンのVMwareのLinuxで作成したものをUSBメモリ経由でコピーしたため、所有者が不明なために発生したと思われる。改めてManjaro Linux上で作り直したら、確認画面は出なかった。

(2023/5/28追記) 最新版のManjaro LinuxとwineとwinetricksをVH-AD3S proへインストールしたら、Vertical Editorがメニューも含めて正常に実行できた。ただし、原稿用紙モードの縦書きが微妙に端が切れていたりする。プリンター関連の機能はプリンタードライバーの機能を利用しているためか、使えないようだった。文書の保存はでき、見た目を気にしなければ文書作成には使える。バージョンが上がるたびに改善されていて嬉しい。

次に通信ソフト。これも同じくdrive_cの中にフォルダを作成してファイルを展開するだけでよかった。起動の仕方は、VertcalEditor同じ。後は、通信設定とルーターの設定が必要なだけ。それと、固定IPにする。こちらは問題なく起動、実行できた。

今度はインストーラーでの作業となる。秀丸メールをホームページから32bit版の最新版をダウンロードして、右クリックで「Wine Windowsプログラムローダーで開く」を実行する。exeファイルでなくmsiインストーラーの場合は、「wine msiexec /i xxxxxx.msi」でコマンドラインで実行する。普通にインストーラーが起動し、表示に従うだけでインストール終了。秀丸メールの見慣れたアイコンまで作成してくれた。起動して、メールアカウントとメールサーバーの設定を行った。送受信とも正常に行えた。ただ「最新バージョンの確認」は、外部プログラムのためか、エラーにはならないが、実行されなかった。DLLや外部プログラム、マクロの実行は試していないが、メールの送受信だけなら問題なく利用できている。

続いて、秀丸エディタも基本的に同じ。ダウンロードして実行。全く問題なくインストールされた。テキストファイルの作成、保存も正常。これも「最新バージョンの確認」は、実行されなかった。ここで、はっと気が付いた。文字コードの問題だ。秀丸エディタは初期設定のままだとShift-JISのCR+LF改行コードなので、WindowsからLinuxへ移行する時の障害となる問題である。Linux上で使うのだから文字コードはUTF-8で、改行コードはLFにした方が良い。Mousepadはそれでも読み込んでくれるが、Linuxの設定ファイルの編集をして保存したら、おかしくなってしまうだろう。秀丸エディタのメニューの「その他」の「動作環境」を起動し、「上級者向け設定」にチェックを入れる。「ファイル」項目の「エンコード1」を選択する。「変更(D)….」ボタンを押して、「エンコードの種類」でUTF-8を選択、「BOMの有無」を「なし」に変更する。BOMとはByte Oder Markの略で、Unicodeの種類を判定する3byteの情報らしい。これでいいはずだが、再度開くと、UTF-8のはずなのに文字化けする。こうなると、ほとんど利用価値がない。後日になって思いついたが、「その他」の「ファイルタイプ別の設定」で、「フォント」をUTF-8にも対応しているはずのIPAゴシックフォントに変更したら、文字化けしなくなった。単純な話で、秀丸の初期デフォルトのフォントが、Shift-JIS用のためだっただけだ。
秀丸パブリッシャーは正常にインストールできたが、しかし、印刷画面を開こうとすると、プレビューにWindows用プリンタドライバの機能を利用しているらしく、プリンタ設定をするようメッセージが出るので、利用不可なのだろう。また、マクロは試していない。

楽天FXのMarket Speed FXをダウンロード。これもexeファイルなので、「Wine Windowsプログラムローダーで開く」で実行する。インストールは問題なく終了し、アイコンまで作成してくれたが、起動したら、重大エラーというメッセージが出て動作しなかった。エラーメッセージの「詳細を表示」を見ると、レジスタ関連と、内部的に起動しているらしいexeファイルの起動に失敗しているように見えた。やはり、派生exeプロセスを使わない単一exeでないと、正常に動作しないのだろう。

今回の本命、Microsoft Office Personal 2007リテールのインストールだ。これはWindows10になって、動作はするものの、変なエラーメッセージが出るようになって、使わなくなったものだ。外付けのUSB DVDドライブを接続して、CDを挿入すると問題なく認識した。自動実行はできないので、setup.exeのインストーラーを「Wine Windowsプログラムローダーで開く」で実行した。起動はしたが、すべて文字化け、何もできない。ネット検索でインストール手順を画像付きで解説しているホームページを見つけ出し、それを見ながら、見当をつけながらインストールした。正常に終了した。メニューの「wine」項目にExcelやWordが表示される。Wordを起動すると、「Microsof Officeライセンス認証ウィザード」が表示され、インターネット経由の認証を行おうとしても、通信エラーとなって失敗する。結局、利用できないということだ。入力などは正常に行えた。サポートが終了して認証サーバーもなくなったのか、インストールプログラムが古いか、なのだろう。電話で認証する方法もあるが、電話番号が書いてない。ネットに親切な人が電話番号を書いてくれていたが、そこまでする気にはならなかった。

インストーラーでwineへインストールしたソフトウェアについては、コマンドラインで「wine uninstaller」でツールが起動して、削除できる。メニューにアイコンが残ってしまうかもしれないが、右クリックで削除すればよい。

PlayOnLinuxというwineをGUIで簡単に扱うパッケージがあり、それをインストールして、GUI画面で実行することができるので、PlayOnLinuxで、Wineで動作しなかったソフトを試してみることもできるが、通信ソフトが問題なく動作したので、やめておくことにした。確認したかったのは、Manjaro Linux でどこまで何ができるのかだ。Microsoft OfficeはLibreOfficeで代替できるし、Manjaro Linuxにはエディタもメールソフトもある。動作に不安のあるものを、わざわざ使う必要もない。

カテゴリー: DIY/日曜大工, Linux, パソコン | コメントする

Manjaro Linuxの個人的設定 その2。公衆Wi-Fi、プリンターの設定、ソフトのインストール等。