やまものブログ

メモ書きブログです (^_^;A

Ubuntu で年賀状の宛名印刷(その9)

今年も年賀状をほぼ例年通り印刷できました。

手順も去年のブログに参考にしました。
https://wyamamo.hatenablog.com/entry/2020/12/31/163146

この記事ですが、たった今、少し修正しました。一年経ってから改めて読むと難解だったり誤解した箇所があったので。


環境は昨年と同じですが、LibreOffice のマイナーバージョンが上がって 6.4.7.2 40(Build:2) になっています。


環境は同じと銘打ったものの、Ubuntu から印刷できないという問題にあたりました。 原因不明です。 CUPS はプリンタを認識していて印刷ジョブはキューには登録されるのですが、そこから先の処理が進みません。 スキャンはできるのでネットワーク接続(有線LANを利用)には問題ないはずです。
対策する余裕が無かったので、印刷だけ Windows に頼ることにしました。


LibreOffice Writer の印刷でファイルに出力し、それをWindows環境から印刷しました。 ファイルへの出力は Writer の印刷メニューで出力をファイルに選ぶだけです。 さらに、その *.odt ファイルを再度 Writerで開いて PDF にエクスポートしました。


PDFに変換した理由は、Ubuntu で作成した *.odt を WindowsLibreOfficeで開くとフィールドや枠の位置が崩れたからです。 LibreOfficeのバージョンなどの違いかもしれませんが詳しくは調べていません。 PDF であれば問題なく印刷できました。


印刷はウラ面で1枚だけ失敗しました。 原因は複数枚まとめて印刷している途中で、パソコンをシャットダウンしたことです。 ウラ面を真ん中くらいまで印刷したところで、印刷処理がとまってしまいました。 データがプリンタに送信された後はパソコン側は関係ないものと思い込んでいたのが甘かったです。


全般的には作業フローは落ち着いてきた感があります。年に一度でほそぼそと行う作業だと時間がかかりますね。


今年もコロナでなにかとゴタゴタしていました。
来年が皆様にとってより良い一年になることを心よりお祈り申し上げます。

Ubuntu で年賀状の宛名印刷(その8)

今年も Ubuntu で年賀状 71枚を失敗を 1枚も出さずに完了できました。 印刷作業は 12月22日に終えていたのですが、ブログを書く時間をとれずに本日、大晦日に至りました。


まず、今年の作業環境は以下のとおりです。


作業のノウハウについては、特に新しいことはありません。ですので、前回のブログ「Ubuntu で年賀状の宛名印刷(その7) - やまものブログ」と同じです。


とはいえ、今年も少しだけ躓いたポイントがありました。 それは LibreOffice データベースの扱いが手動になったことでした。


以下、昨年までの作業内容を前提にして、今年の作業の大雑把な流れをリストします。

  1. LibreaOffice Base をインストールする

    LibreOffice Calc/Writer をインストールしてある環境でも、デフォルトでは Base は入らないようです。

  2. 印刷住所のスプレッドシート(.ods) を更新する

    a)「はがき住所録.ods」の内容を今年の宛先に更新

    • 昨年のファイルをコピーして使いまわしています

    b) データベース範囲「印刷用住所」を指定する

    • [データ(D)]メニュー → [範囲の指定]
    • 指定する範囲には1行目(項目名)も含めること
  3. データベースファイル(.odb) を作成する

    a) libreOffice Base を開く (terminal から libreoffice & を実行)

    b) 「Baseデータベース」を選択(新規作成)

    c) データベースの選択:「既存のデータベースに接続(X)」を選択

    d) プルダウンメニューから「表計算ドキュメント」を選択

    e) 「次へ(N)」をクリック

    f) 「ブラウズ」で「はがき住所録.ods」を選択して開く

    g) 「次へ(N)」をクリック

    h) 「はがき住所録.odb」を保存する

    • メニューの選択肢はデフォルト (下記) のまま「完了」をクリック
      • はい、登録します(Y)
      • データベースを開いてい編集します(A)

    i) LibreOffice を終了する

  4. テンプレートドキュメント(.odt) にデータベースを登録して印刷する

    a)「カスタム縦書き印刷.odt」を開く

    b) フォントサイズの調整、自宅住所の更新など必要があれば編集

    c) データベースを登録する

    • [ツール(T)]メニュー→[オプション(O)]→[LibreOffice Base]→[データベース]
    • 登録が既にある場合は「編集」ではなく「削除」して「新規作成」を使う
    • この作業は Writer を再起動するたびに必要でした

    d) 普通に印刷するだけ差し込み印刷になります


4)-c) データベース登録が Writer を起動するたびに必要な理由・対策は分かりません。 印刷作業を中断して一度 Writer を閉じ、その後、再び開くとデータベースの登録が壊れます。 毎回、登録し直す作業は面倒ですが、年に数回の作業なので許容範囲と諦めました


最後に、LibreOfficeのテンプレートは8年間変わらず下記のものを使わさせてもらっています。本当にお世話になっていて感謝しています。

続・OpenOffice(LibreOffice)で年賀状の宛名印刷: ひろろろぐ(仮) - hiroro's blog -


この記事の投稿時点で、今年も残るところ8時間くらいとなりました。 今年は公私ともにいろいろありました。 来年が皆様にとってより良い一年になることを心よりお祈り申し上げます。

SONY製ICカードリーダライタ RC-S330 を e-Tax で利用する

ICカードリーダライタ RC-S330 は、下記2つのソフトをインストールすると Windows 10で使えることを確認しました。

NFCポートソフトウェア Version 5.6.9.0 https://www.sony.co.jp/Products/felica/consumer/download/old3_felicaportsoftware.html

PC/SC アクティベーター for Type B https://www.sony.co.jp/Products/felica/consumer/download/pcscactivator.html


これだけの内容でブログに記事を残すのは RC-S330 が

という状況だからです。


現行モデル RC-S380 のダウンロードサイトはすぐに見つけられました。

NFCポートソフトウェア(旧FeliCaポートソフトウェア) (Version 5.6.9.0 / 約45MB / 2019年6月17日) https://www.sony.co.jp/Products/felica/consumer/download/felicaportsoftware.html
このサイトを "RC-S330" で検索すると注釈文の中にこっそりと上記2つのサイトへのリンクがあります。 なお、いずれのNFCポートソフトウェアもVersion 5.6.9.0で同じもののようです。


カードリーダ設定で悩みましたが、こちらのサイトに「RC-S330」「RC-S370」「RC-S380」についての記載があったのが救いでした。 https://www.jpki.go.jp/prepare/reader_writer.html

最近はNFC搭載のスマホがカードリーダーになるみたいで、便利になっていくものだと感心しました。


カードリーダ以外の e-Tax 関連の環境設定はこちらが参考になりました。 http://www.e-tax.nta.go.jp/e-taxsoftweb/e-taxsoftweb1.htm

ブラウザを Edge にすると「e-Taxソフト(Web版)」なるものも使えました。Microsoft Store からソフトをインストールしたのは、たぶん、 WSL に続いて2つ目です。

Windowsクリーンインストールに伴い確定申告の環境を準備中です。転職したら年金制度が無くて、全て自前の iDeco になったので(;^_^A

Ubuntue-Tax できる方法があれば知りたい…

Window10 インストールドライブで事故って復旧できずorz

Windows10を別のSSDへ移動しようとして壊してしまいました。 復旧できず Windows10 をクリーンインストールする結末に…

事故った操作は以下のとおりです。
四角はパソコンの筐体のつもりで、装着したSSDの上に記載したSATAの番号はマザーボード上のSATA端子のマークです。

f:id:wyamamo:20200113174438p:plain
最後の[3]は SSD1 のパーティションを全て削除するのが目的でした。 UEFIのブートメニューで SSD2(SATA3)を選択して起動できれば、そこから SSD1を操作できると期待していました。

ところが、UEFIブートメニューには選択肢としてSSD2(SATA3)は現れませんでした。 仕方なく、USBの回復ドライブから再起動して、SSD1のパーティションを削除したのですが、これは軽率(泣)

その後、SSD2で Windows10を起動しようとしたら、起動できない!!! 回復メニューとか試しても復旧できず。

2-c)で作成したイメージも復旧できず、その際のエラーがこちら:
f:id:wyamamo:20200113174502j:plain
このメッセージからすると、イメージではなく、復旧先のSSDが悪いように読み取れたのですが、復旧先をいろいろと変更してもこのエラーは変わらず。この状況から、2-c)で録ったイメージ自体がダメなのではという推察に落ち着いて諦めました。

なお、1-b)のイメージは2-c)で上書きしたので存在せず。 2-c)のイメージを録った時点で、復旧に使えることを確認すればよかったかもしれませんが、それは面倒すぎる。

複数のパーティションやドライブにブートイメージを追加していくと、Bootメニューに現れる項目が勝手に変わっていきます。 このことから、UEFIは人知れず賢い仕事をしているに違いありません。 賢いおかげで苦労せずに済むことはきっと多いはずですが、レアケースでこんな事故もあるのですね(泣)

いちおう、UEFIのバージョンです。

ASUS A88XM-A BIOS Version: 2301

マザボは5年ちょっと前の購入です。
以上、もう2度と[3]のようなことはしません。 全く同一のイメージを2つ同時にUEFIに見せてしまうと、一方はブートできないように壊されるリスクありと推察します。

最後に(強がって)、良かったかもしれないことを2つ挙げます。

Windows 10 C:ドライブのSSD入れ替え

Windows 10 マシンの C:ドライブのSSDを入れ替えました。

Windows 10 SSD換装」などのキーワードで検索するといろいろな情報がヒットして、バックアップ・復元のためのアプリを使ったサイトも紹介されますが、今回はWindows 10にある機能だけで簡単に済ませました

大雑把な手順は以下の通りでした。
各手順の詳細は詳しいサイトがあるので割愛します。

  1. 回復ドライブを作成する(ブート可能なUSBメモリを作成)
  2. システムイメージの作成(バックアップと復元(Windows 7))で外付けHDDなどにC:ドライブを丸ごとバックアップする
  3. PCの電源を切って、入れ替え先のSSDに換装する
  4. 回復ドライブ(USBメモリ)からブートする。この際に 2.の外付けHDDも接続しておく
  5. イメージでシステムを回復(トラブルシューティング→詳細オプション)を実行


あとは30分もしないうちに、バックアップ前の状態のWindows 10が起動しました。


以上の作業の中で遭遇したトラブルは、

このシステムイメージはEFIで使用するコンピュータ作成されましたが、このコンピュータはBIOSを使用しています。

というエラーです。
この回避策は
BIOSまたはUEFIのせいでシステムイメージ復元できない【エラー修復方法】
に解説されているとおり、BIOS(EFI)メニューにて、CSM (Compatibility Support Module)で"UEFI only"を設定したことです。 回復ドライブでの起動が Legacy BIOS扱いされたため、バックアップしたシステムイメージが EFI だったことと食い違ってしまったのだと理解しました。


あとは、回復ドライブの作成に2〜3時間を要したのも想定外でした。
回復ドライブはそれだけでWindows 10の初期状態を復元できるので、データ量も8GBくらいあり、USBも16GB以上が要件になっています。 今回の目的であれば「システム修復ディスク」でも同じことが出来たはずで、それなら数分で CD-Rへの書き込みが完了するはずです。 とはいえ、光学ドライブを使わずに済むのが回復ドライブのメリットかと思います。

Ubuntu で年賀状の宛名印刷 〜 LibreOffice Base によるデータ連携

LibreOffice差し込み印刷を使って年賀状の宛名を印刷してきました。 Calcに住所を列挙し、Writerで作られたハガキの宛名面で差し込み印刷します。 この記事では Writer と Calc のデータベース接続については分かったことをメモとして残します。

今まではウヤムヤなまま使い続けてきました。 今年は年賀状の枚数を絞ったため返信する必要がでてきてしまいました。 そこで返信用の住所データを別名のCalcファイル(.ods)で用意したところ、今更ながら発見できたことをまとめたいと思います。 今年の年末に来年の年賀状を準備する時まで覚えていられるか自信がないので(汗)

まず、昨年の時点で宛名印刷に使ったのが「はがき住所録.ods」と「カスタム縦書き印刷.odt」です。
f:id:wyamamo:20200105164050p:plain
年が明けて、返信用には「返信住所録.ods」を用意して、Writerは「カスタム縦書き印刷.odt」は流用しました。
f:id:wyamamo:20200105164116p:plain

つまり、住所データのCalcファイル(.ods)を「はがき住所録.ods」から「返信住所録.ods」に入れ替える作業が必要になりましたので、その手順を以下にまとめます。
なお、以下で使う LibreOfficeのメニューについては昨年のブログ記事にもまとめています。
Ubuntu で年賀状の宛名印刷(その7) - やまものブログ

Calc: 住所データ「返信住所録.ods」の編集

まず、「返信住所録.ods」を編集しますが、ここで「印刷用住所」というデータベース範囲を指定しました。
f:id:wyamamo:20200105164311p:plain
このデータベース範囲の名称「印刷用住所」は重要です。


Writer: データベースの追加

[挿入(I)]→[フィールド(D)]→[他のフィールド(M)...]→[データベース]で「検索(D)...」をクリックして「返信住所録.ods」を登録します。
f:id:wyamamo:20200105164421p:plain
これによりホームに「返信住所録0.odb」がこっそり作成されます。
f:id:wyamamo:20200105164601p:plain
これが LibreOffice Base が必要な理由だったのですね!


Writer: データベースの「登録名」の変更

[ツール(T)]→[オプション(O)]→[LibreOffice Base]→[データベース]で、データベース名を「返信住所録」から「はがき住所録」へ変更します。 既に古いデータが「はがき住所録」で登録されていたら削除します。 f:id:wyamamo:20200105164643p:plain

以上の設定により、[ファイル(F)]→[印刷(P)]で新しく用意した「返信住所録.ods」で差し込み印刷できます。


「はがき住所録」「印刷用住所」とは?

たとえば、「カスタム縦書き印刷.odt」で「姓」のフィールドにカーソルを重ねると「はがき住所録.印刷用住所.姓」とバルーン表示されます。

f:id:wyamamo:20200105164714p:plain

これで全ての対応がハッキリしたかと思います。以下の通りです。
 ①「データベース名」
 ② Calcで設定した「データベース範囲」
 ③ フィールド名

①「データベース名」はデフォルトでは Calcファイル名から拡張子(.ods)を削除したものになりますが、前出の通り[ツール(T)]→[オプション(O)]で任意に変更できます。

以上、人からもらってとりあえず使っているだけファイル群でしたが、ちょっと読解できてスッキリしました

別件

先ほど、印刷を実行しても反応しないという謎の現象にあたりました。Writerを起動しなおしても解消しません。しかし、Ubuntuを再起動してやり直したら印刷できるようになりました。こんな謎の現象は初めてです。

Accelerated Image Classification サンプルの Rebuild

こちらのサンプルを手順書通りに動かすことができたので、実際の手順をメモとして残します。

Zynq UltraScale+ MPSoC Accelerated Image Classification via Binary Neural Network TechTip
https://xilinx-wiki.atlassian.net/wiki/spaces/A/pages/18841949/Zynq+UltraScale+MPSoC+Accelerated+Image+Classification+via+Binary+Neural+Network+TechTip

このサンプルに着手したのは1年以上前でした。 こちらの記事 Ultra96 ボード - やまものブログ の末尾「おわりに」でその意思表示をしていました。
当時、Ubuntu 18.04 でなんとかしようとしたのが災いでした。 OSやツールのバージョンを厳格に守らなないとどういうことになるかを痛感したのがよい経験になりました。
以降、Ubuntu 16.04.6 LTS を使っています。このサンプルをReBuildするために16.04に戻りました。

サンプルに戻って、現在、サンプルには2つのバージョンあります。 そのうちの古い方で動かすことができました。具体的には下記の2つのファイルを使いました。

ファイル 説明
20180424_zcu102_ultra96_aicdemo.img Image of AIC Demo for ZCU102 and Ultra96
20180424_aicdemo_projectfiles.zip Zip file (Vivado/HLS/Petalinux project)


新しいバージョンはこちらです。実際に試して、こちらは動きませんでした。ブートの途中でとまってしまいます。詳細をいつか解析してみたいですね…

ファイル 説明
20180814_aicdemo_projectfiles_20181.zip Zip file (2018.1 Vivado/HLS/Petalinux project)
20180814_zcu102_ultra96_aicdemo_20181.zip Zip file 2018.1 Image for AIC Demo for ZCU102 and Ultra96


サンプルを実行するボードはこちらに紹介されている Ultra96 です。 www.avnet.com
私の手持ちは Ultra96(V1)で、販売中のUltra96(V2)よりも古い仕様です。このサンプルの2つのバージョンもそれぞれ V1, V2 対応なのかもしれません(憶測)。

いずれのバージョンでもサンプルは2つのファイルからなります。

  1. "〜aicdemo〜" … SDカード(16GB以上)に焼くイメージ
  2. "〜projectfiles〜" ... Vivado/PetaLinux のプロジェクト


とりあえず、1.だけあれば Ultra96 でサンプルを動かすことが出来ます。
このイメージを書き込んだSDカードは2つのパーティションから成ります。

SD-Card will have two partitions: one small one formatted with fat32 containing a BOOT.Bin and image.ub file, and one large one formatted with ext3 containing a root file system.


fat32 に収まる BOOT.Bin と image.ub を自分の環境で作りなおす作業が
6. Rebuilding the Design from sources
の 6.1〜6.6 に記載されています。 以下は、このReBuildを実行したコマンドのメモになります。

ReBuild作業には、下記2つの記事にまとめた Vivado と PetaLinux 2017.3 を使える環境が前提です。

wyamamo.hatenablog.com

wyamamo.hatenablog.com


ビルド済みイメージによるSDカードの準備

20180424_zcu102_ultra96_aicdemo.img ファイルをSDカードに書き込みます。 下記の例で、私の環境では <SDカードのデバイス> は /dev/sde でした。これを間違えるとドライブ丸ごと壊してしまうので、パスの確認は慎重に。

$ sudo dd bs=4M if=20180424_zcu102_ultra96_aicdemo.img of=<SDカードのデバイス> conv=fsync

このSDカードには vfat (fat32)と ext3 の2つのパーティションがありますが、ext3 はそのまま流用します。 以降の作業では、 BOOT.bin と image を作り、それらを fat32パーティションに入れます。

環境の準備(詳細は上述の記事を参照)

<作業ディレクトリ>はすでにmkdirされていて、PetaLinux 2017.3 がインストール済みとします

$ sudo dpkg-reconfigure dash
  "dash"のデフォルトシステムシェル設定に「いいえ」を選択する
$ export PATH=/home/vatarushka/bin:/usr/local/sbin:/usr/bin:/usr/local/bin:/usr/sbin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
$ source <Vivado 2017.3インストールパス>/settings64-2017.3.sh
$ source <作業ディレクトリ>/petalinux-v2017.3/settings.sh

PATHの書き換えている理由はPetaLinux 2017.3 のインストール - やまものブログにあります。

サンプルの準備

$ cd <作業ディレクトリ>
$ unzip /home1/Xilinx/download_aic/20180424_aicdemo_projectfiles.zip 


FPGAデザインのReBuild (6.3 Rebuild FPGA Design)

$ cd <作業ディレクトリ>/aic
$ export XILAIC_ROOT=$PWD
$ cd scripts
$ ./make-hw.sh a ultra96

The ouput can be found in aic/output/hls_syn and aic/output/vivado.

とりあえず、以下のファイルを確認しました。.sdk/は次の手順で参照します。

-rw-rw-r-- 1 myaccount myaccount 5568787  1月  2 22:53 ../output/vivado/ultra96/ultra96.sdk/ultra96_wrapper.bit


PetaLinuxプロジェクトのReBuild (6.4 Rebuild Petalinux project)

$ cd <作業ディレクトリ>/aic/src_sw/ultra96-petalinux/
$ petalinux-config --get-hw-description ../../output/vivado/ultra96/ultra96.sdk/
$ make build
$ make package-boot

The output files BOOT.BIN and image.ub can be found in src_sw/-petalinux/images/linux.

images/linux/に以下のファイルができたのを確認しました。

-rw-r--r-- 1 myaccount myaccount  12500024  1月  3 09:16 image.ub
-rw-rw-r-- 1 myaccount myaccount   6324960  1月  3 09:18 BOOT.BIN


この2つのファイルを前出のSDカードの vfat パーティション(名称:BOOT)にコピーします。

$ cp images/linux/{BOOT.BIN,image.ub} /media/myaccount/BOOT


これを使って Ultra96(V1) で AIC サンプルを動作させることができました。