2021/12/31

Synology NASのGitLabでGitLab Pagesを有効化する

概要

SynologyのNASには,GitLabを動作させることができるモデルがあります. 既定ではGitLab Pagesは無効になっていますが,環境変数を設定することで有効にすることができます. 本記事では,この環境変数の設定例を紹介します.

開発環境

製品型番 DS918+
DSM 6.2.4-25556 Update 2
GitLab Version: 13.12.2-0073

前提条件

GitLabは,下記のように http://hogehoge.internal:30000/ でログインできるようにGitLabの環境変数とDNSサーバを設定済みとします.

可変
GITLAB_HOST hogehoge.internal
GITLAB_PORT 30000

設定方法

Gitlab Pages Access Control用の情報を取得する

下記リンクの説明を参照して,GitLabの管理者エリア > アプリケーションで設定を行います.

DNSサーバの設定を変更する

GitLab Pages用にAリソースレコードおよびAAAAリソースレコードを追加します.

名前 情報
名前 *.pages.hogehoge.internal.
情報 Synology NASのIPアドレス

GitLabを停止させる

環境変数を変更するので,GitLabを一時停止します.DSM上でGitLabはDockerコンテナとして動作しています. GitLabのDockerコンテナはDockerのUIからも停止できますが,GitLabは3つのDockerコンテナで構成されているので,私は念のためパッケージセンターのGitLabのメニューから停止するようにしています.

DSMにログインしてパッケージセンターを開き,「インストール済」タブからGitLabをクリックします.GitLabは実行中になっているので,「停止」をクリックしてこれを停止します. 「このパッケージを停止しますか?」と聞かれるので「はい」をクリックします.

パッケージセンター

Dockerコンテナの編集画面を開く

次にDokcerを開きます.「synology_gitlab」で始まる3つのコンテナが停止していることを確認して,「コンテナ」タブで「synology_gitlab」を選択した状態で「編集」をクリックします.

Docker

環境変数を設定する

「編集 - synology_gitlab」ウィンドウが開くので,下表の新規追加します. なお,SynologyのGitLabはsameersbn/docker-gitlabをベースにしているようですので,このリポジトリの説明が参考になりました.

編集 - synology_gitlab
可変
GITLAB_PAGES_ENABLED true
GITLAB_PAGES_DOMAIN pages.hogehoge.internal
GITLAB_PAGES_PORT 30000
GITLAB_PAGES_ACCESS_CONTROL true
GITLAB_PAGES_ACCESS_CONTROL_SERVER http://hogehoge.internal:30000/
GITLAB_PAGES_ACCESS_CLIENT_ID アプリケーションID欄に表示されている文字列
GITLAB_PAGES_ACCESS_CLIENT_SECRET 秘密欄に表示されている文字列
GITLAB_PAGES_ACCESS_REDIRECT_URI http://projects.pages.hogehoge.internal:30000/auth

GitLabを再開させる

再びパッケージセンターを開き,「インストール済」タブからGitLabをクリックします.GitLabは停止になっているので,これを再開します. 再開してからGitLabにが起動してアクセス可能になるまではしばらくかかります.

これでGitLab Pagesが有効になりました.管理者エリアのダッシュボードでGitLab Pagesにチェックボックスが入っていることを確認します.

2021/12/29

ThinkPad USBトラックポイントキーボードの足を3Dプリンタで作成する

概要

学生の頃から愛用しているThinkPad USBトラックポイントキーボードの足が折れてしまいました.経年劣化なので仕方ないです. 既に販売終了になってだいぶ経つ製品で同じものが入手できません. 足が折れただけでその他は問題がないですし,気に入っているため,出来ればまだ使い続けたい.そこで,代わりの足を3Dプリンタで作ってみました.

3Dプリンタで作成したThinkPad USBトラックポイントキーボードの足

3Dモデリング

最初に誰かが既に作った3Dモデルが公開されていないかを検索しましたが,私の所有する55Y9053に適合するものは見当たりませんでした. 他の製品のものはいくつか見つかりました.現行製品のトラックポイントキーボードも同じように足が折れたという話を聞いたことがありますので,考えることは皆さん同じのようです. 仕方がないので自分でモデリングすることにしました.

モデリング環境は下表のとおりです.ソフトウェアは全てフリーウェアです. FreeCADでモデリングしたものをSTLでエクスポートし,Ultimaker CuraでスライスしてGコードを生成しています.

OS Ubuntu 20.04.3 LTS
FreeCAD 0.18.4
Ultimaker Cura 4.11.0

モデリングにあたっては折れた足にノギスを当てて寸法を測りました. しかし,足のゴム部分はすり減っていたため元の正確な寸法はわかりませんし,角部分の複雑な曲線を完全に再現するのは私には難しいため妥協しています.

FreeCADによるモデリング

作成した3DモデルのSTLは,Thingiverseでダウンロード可能です.

3Dプリント

今回初めてABS樹脂を使ってみたのですが反りが大きかったため,最終的にはPLA樹脂を使いました.

3Dプリンタ KINGROON KP3S
フィラメント ANYCUBIC PLA 白

接地しない大きな突起部分にはサポート材を付加しています. プリント設定はUltimaker Curaのプリセットの標準品質からほとんど変えていませんが,内部は充填率を60%としキュービック構造にしています. プリント設定は3Dプリンタやフィラメントにもよると思いますし,私は素人であることに留意してください.

Ultimaker Curaによるスライス

完成写真

実用上問題ないものを作成できました.ただし,寸法や丸みの再現が忠実でないためか,足を立てたときの「カチッ」というラッチ感がやや弱い気がします.

3Dプリンタで作成したThinkPad USBトラックポイントキーボードの足
3Dプリンタで作成したThinkPad USBトラックポイントキーボードの足
2021/12/27

Synology NASのGitLabにGMailのSMTP設定を行う

概要

SynologyのNASには,GitLabを動作させることができるモデルがあります. 初回セットアップやアップデートも簡単にできるようになっているのですが,GitLabのアップデートを行うと環境変数が初期化されてしまいます. おそらく初回セットアップ時点での環境変数に戻ってしまうものと考えられ,初回セットアップ後に環境変数をカスタマイズしている場合は再設定が必要です. これまではその場しのぎで環境変数の設定内容を控えておらず,アップデートする度に設定内容を思い出す必要がありました. 環境変数のうちGitLabからのメール配信に必要なSMTP設定について,備忘録としてここにメモしておきます.

開発環境

製品型番 DS918+
DSM 6.2.4-25556 Update 2
GitLab Version: 13.12.2-0073

設定方法

GitLabを停止させる

環境変数を変更するので,GitLabを一時停止します.DSM上でGitLabはDockerコンテナとして動作しています. GitLabのDockerコンテナはDockerのUIからも停止できますが,GitLabは3つのDockerコンテナで構成されているので,私は念のためパッケージセンターのGitLabのメニューから停止するようにしています.

DSMにログインしてパッケージセンターを開き,「インストール済」タブからGitLabをクリックします.GitLabは実行中になっているので,「停止」をクリックしてこれを停止します. 「このパッケージを停止しますか?」と聞かれるので「はい」をクリックします.

Dockerコンテナの編集画面を開く

次にDokcerを開きます.「synology_gitlab」で始まる3つのコンテナが停止していることを確認して,「コンテナ」タブで「synology_gitlab」を選択した状態で「編集」をクリックします.

環境変数を設定する

「編集 - synology_gitlab」ウィンドウが開くので,下表の新規追加します. なお,SynologyのGitLabはsameersbn/docker-gitlabをベースにしているようですので,このリポジトリの説明が参考になりました.

GMailを使用している場合は二段階認証を設定していると思います.この場合,SMTP_PASSには通常ブラウザからGMailにログインする際に入力するパスワードは使用できませんので,アプリパスワードを発行する必要があります.

可変
SMTP_ENABLED true
SMTP_DOMAIN www.gmail.com
SMTP_HOST smtp.gmail.com
SMTP_PORT 587
SMTP_USER your_account@gmail.com
SMTP_PASS your_app_password
SMTP_STARTTLS true
SMTP_TLS false
SMTP_OPENSSL_VERIFY_MODE none
SMTP_AUTHENTICATION login

GitLabを再開させる

再びパッケージセンターを開き,「インストール済」タブからGitLabをクリックします.GitLabは停止になっているので,これを再開します. 再開してからGitLabにが起動してアクセス可能になるまではしばらくかかります.

メールが配信されるようになっているかどうかは,メールアドレスの追加やユーザの新規作成で確認できます.

2021/12/02

Arduino: 複数のLEDを別々の周期やON/OFF比で点滅させる

概要

Arduinoに複数のLEDを接続したとき,LED毎に異なる周期で点滅させる方法です. また,この方法では点灯時間と消灯時間も個別に設定することが可能です.

実行例で使用しているソースコードでは,3つのLEDを下記のような設定で点滅させています.

番号 発光色 周期 [ミリ秒] 点灯時間 [ミリ秒] 消灯時間 [ミリ秒]
LED1 2000 1000 1000
LED2 1000 800 200
LED3 2000 500 1500

デモ

先に実行例をどうぞ.

開発環境

Arduino Arduino UNO R3互換ボード
Arduino IDE Arduino 1.8.13

回路

回路図

デジタルピン10番, 11番および12番にLEDを接続してください.なお,LEDはHIGH出力で消灯,LOW出力で点灯するように配線しているので注意してください. 逆にしたい場合は,ソースコードの14行目と15行目の定義を入れ替えます. Arduinoのピン配置については,公式Webページを参照してください.

回路部品

参考単価をクリックすると,秋月電子通商のページもしくはメーカーページに飛びます. 「互換品」と記載されているリンクについては,互換性があると考えられる部品のページに飛びます. ただし,私が互換性および動作を確認したわけではありませんので,ご注意ください.

番号 部品名 型番 数量 参考単価
R1, R2, R3 炭素皮膜抵抗 各社 1/4W 330Ω 3 1円 (互換品)
LED1 LED 各社 赤色 1 10円 (互換品)
LED2 LED 各社 橙色 1 20円 (互換品)
LED3 LED 各社 緑色 1 10円 (互換品)
その他 リード線など 適量

ソースコード

GitHub Gistにて公開します.

簡単にソースコードを説明します.

  • 17行目からLED点滅クラスを定義しています.このクラスで,各LEDの接続ピン,点灯時間,消灯時間,点灯状態および前回に点灯状態が変化した時刻を管理します
  • 58行目からはLED点滅クラスのコンストラクタです.各メンバ変数を設定し,LEDを消灯状態に初期化します.このときの時刻をmillis()で取得してm_prev_timeに保存します
  • 72行目からはLED点滅クラスの点灯状態を更新するメソッドです.millis()で取得した現在の時刻と前回に点灯状態が変化した時刻m_prev_timeの差分が点灯時間m_on_timeもしくは消灯時間m_off_timeを超過しているとき,点灯状態を更新します.
  • 108行目からのセットアップ関数で行う処理はありません
  • 115行目からのループ関数では,120行目付近で各LEDのインスタンスを作成しています.これらはstatic変数なのでプログラムの終了まで保持されます.126行目付近でupdate()メソッドを実行しており,毎ループでLEDの点灯状態を更新しています

ArduinoによるLED制御に関する記事

ArduinoによるLED制御を取り上げた,他の記事を紹介します.

製品紹介

2021/12/01

Arduino: タクトスイッチが押されたらLEDを5回点滅させる

概要

Arduinoに接続されたタクトスイッチ(ボタンスイッチ)が押下されたとき,LEDを5回点滅させてその後は再びボタンスイッチが押下されるまで消灯状態を維持するプログラムを紹介します. ボタンスイッチの押下判定方法や一定回数同じ処理を繰り返す方法の参考になれば幸いです.

デモ

先に実行例をどうぞ.

開発環境

Arduino Arduino UNO R3互換ボード
Arduino IDE Arduino 1.8.13

回路

回路図

デジタルピン2番にボタンスイッチを接続してください.なお,ボタンスイッチはActive Lowとしています.つまり押しているときはLOW,離しているときはHIGHです. デジタルピン12番にLEDを接続してください.なお,LEDはHIGH出力で消灯,LOW出力で点灯するように配線しているので注意してください. LEDをHIGH出力で点灯,LOW出力で消灯にしたい場合は,ソースコードの14行目と15行目の定義を入れ替えます. Arduinoのピン配置については,公式Webページを参照してください.

回路部品

参考単価をクリックすると,秋月電子通商のページもしくはメーカーページに飛びます. 「互換品」と記載されているリンクについては,互換性があると考えられる部品のページに飛びます. ただし,私が互換性および動作を確認したわけではありませんので,ご注意ください.

番号 部品名 型番 数量 参考単価
R1 炭素皮膜抵抗 各社 1/4W 10kΩ 1 1円 (互換品)
SW1 ボタンスイッチ 各社 1 10円 (互換品)
R2 炭素皮膜抵抗 各社 1/4W 330Ω 1 1円 (互換品)
LED1 LED 各社 緑色 1 10円 (互換品)
その他 リード線など 適量

ソースコード

GitHub Gistにて公開します.

実行例で使用しているソースコードでは,LEDを下記のような設定で点滅させています.

番号 発光色 周期 [ミリ秒] 点灯時間 [ミリ秒] 消灯時間 [ミリ秒] 点滅回数 [回]
LED1 1000 500 500 5

簡単にソースコードを説明します.

ボタンスイッチについては20ミリ秒周期(INTERVAL_TIME)状態(btn_val)を確認し,2回連続(BTN_COUNT_THRESH)で同じ状態(btn->last_val)だった場合その状態をボタンスイッチの状態(btn->state)としています. これはボタンスイッチのチャタリングによる誤動作を低減するための処理です.

LEDの点滅状態を列挙型で表現しています(LED_BLINK_STATE_E)現在のLEDの点滅状態(led_blinking_state)によって処理を切り替えています初期のLEDの点滅状態はLED_STOP_OFFです. LEDが点滅停止中の場合,つまりled_blinking_stateがLED_STOP_OFFの場合は,led_blinking_startがtrueになるまで状態遷移しません. LEDが点滅中の場合,つまりled_blinking_stateがLED_BLINK_ONもしくはLED_BLINK_OFFの場合は,led_blinking_periodがインクリメントされます.これは何周期同じ点滅状態に留まっているかを示しています.1周期は20ミリ秒周期(INTERVAL_TIME)です. led_blinking_periodが25(LED_BRINK_PERIOD)を超過したとき,つまり20ミリ秒 x 25 = 500ミリ秒を超過したときに状態遷移が発生します. LED_BLINK_ONの場合はLED_BLINK_OFFに遷移します. LED_BLINK_OFFの場合は,LEDの点滅回数(led_blinking_count)がインクリメントされます. led_blinking_countが5(LED_BRINK_COUNT)を超過したとき,LEDの点滅は終了してLED_STOP_OFFに遷移します.それ以外の場合はED_BLINK_ONに遷移します.

セットアップ関数ではボタンスイッチとLEDの初期化を行い,周期実行用の変数に初期値を代入します.

ループ関数では,233行目で現在の時刻を取得しています.現在の時刻と前回に周期実行を行ったときの時刻との差分がinterval_timeを超過した場合は,周期実行を行います.ボタンスイッチの状態を確認し,ボタンスイッチが押下されている場合LEDの点滅を開始します

ArduinoによるLED制御に関する記事

ArduinoによるLED制御を取り上げた,他の記事を紹介します.

製品紹介

2021/10/14

Processing & Arduino: マウスのクリックでLEDの点滅を切り替える

概要

ProcessingとArduinoの組み合わせ例として,マウスのクリックでLEDを点灯したり消灯したりする方法を紹介します.

デモ

先に実行例をどうぞ. 動画内でArduino UNO R3互換ボードの一部を黒いビニルテープで隠していますが,この下にはシリアル通信時に点滅するLEDが搭載されています. プログラムで点滅させているLEDと紛らわしいためです.

開発環境

PC (Processing)側のOSはUbuntuなのですが,Windowsでも動作すると思います.未確認です.

OS Ubuntu 20.04 LTS
Processing Processing 3.5.4 Linux 64-bit
Arduino Arduino UNO R3互換ボード
Arduino IDE Arduino 1.8.13

回路

今回はArduino UNOのBuilt-in LEDを使用しましたので,追加の回路は必要ありません. Arduino UNOの仕様については下記を参照してください.

ソースコード

GitHub Gistにて公開します.

製品紹介

2021/09/30

Arduino: ボタンスイッチでサーボモータの角度を切り替える

概要

Arduinoによるサーボモータの制御例を紹介します. ボタンスイッチを押下すると,サーボモータの角度が0度または180度に交互に切り替わります.

デモ

先に実行例をどうぞ. 動画内ではArduino IDEのシリアルモニタの代わりにTera Termを使用していますが,もちろんシリアルモニタでも大丈夫です.

開発環境

Arduino Arduino UNO R3互換ボード
Arduino IDE Arduino 1.8.13

回路

回路図

デジタルピン2番にボタンスイッチを接続し,デジタルピン11番にサーボモータの制御信号を接続してください. Arduinoのピン配置については,公式Webページを参照してください.

回路部品

参考単価をクリックすると,秋月電子通商のページもしくはメーカーページに飛びます. 「互換品」と記載されているリンクについては,互換性があると考えられる部品のページに飛びます. ただし,私が互換性および動作を確認したわけではありませんので,ご注意ください.

番号 部品名 型番 数量 参考単価
R1 炭素皮膜抵抗 各社 1/4W 10kΩ 1 1円 (互換品)
SW1 ボタンスイッチ 各社 1 10円 (互換品)
M1 サーボモータ SANWA SRM-102Z 1 5500円
その他 リード線など 適量

ソースコード

GitHub Gistにて公開します.

製品紹介

サーボモータは安価に入手できるものもありますので,用途に応じて選択してください.

2021/09/28

Arduinoに接続したLEDをWindows PCのC#アプリからシリアル通信で制御する

概要

Windows PC上のGUIアプリのボタン操作により,Arduinoに接続されたLEDの点灯を制御する例を紹介します. GUIアプリはVisual Studioを使用してC#で,ArduinoのプログラムはArduino IDEを使用して作成しました.

デモ

先に実行例をどうぞ.

開発環境

OS Windows 10 Pro 20H2
Visual Studio Microsoft Visual Studio Community 2017
Arduino Arduino UNO R3互換ボード
Arduino IDE Arduino 1.8.13

回路

回路図

デジタルピン3本にそれぞれにLEDを接続するだけです. LEDはアノード側を電流制限抵抗を挟んで+5Vに,カソード側をデジタルピンに接続してください. したがって,LEDはHIGHを出力すると消灯,LOWを出力すると点灯します. これを逆にしたい場合は,Arduino側のソースコードを変更する必要があります. Arduinoのピン配置については,公式Webページを参照してください.

回路部品

参考単価をクリックすると,秋月電子通商のページに飛びます. 「互換品」と記載されているリンクについては,互換性があると考えられる部品のページに飛びます. ただし,私が互換性および動作を確認したわけではありませんので,ご注意ください.

番号 部品名 型番 数量 参考単価
R0, R1, R2 炭素皮膜抵抗 各社 1/4W 330Ω 3 1円 (互換品)
LED0 LED 各社 緑色 1 10円 (互換品)
LED1, LED2 LED 各社 赤色 2 5円 (互換品)
その他 リード線など 適量

ソースコード

GitHubにて公開します.ページ右上付近の「Code」ボタンからダウンロードしてください.Arduinoのスケッチはarduinoフォルダ配下に,Visual Studioプロジェクトはwindowsフォルダ配下にあります.

製品紹介

2021/05/10

PetaLinux 2020.2のDockerイメージを作成する

概要

私はPetaLinuxをDocker上で使用しています.ググると同じように環境構築されている方も多いようですね. GitHubで必要なファイル一式を公開していますので,ここにDockerイメージの作成方法をメモしておきます. 私はチュートリアルに毛が生えた程度しかPetaLinuxを触りませんので,もし不具合がありましたらissueでお知らせいただけると助かります. 私は,Dockerホスト環境としてUbuntu 16.04とUbuntu 20.04を使用しています.

準備

SSDまたはHDDの空き容量を15GB程度は準備しておいてください.作成するDockerイメージは10GB程度のサイズになります. 予め,XilinxのWebサイトからPetaLinuxのインストーラをダウンロードしておきます. ここではダウンロードディレクトリを/data1/Software/Xilinxとし,PetaLinux 2020.2をインストールすることにします.

ダウンロードしたファイルは下記のパスとします.

  • /data1/Software/Xilinx/petalinux-v2020.2-final-installer.run

GitHubからファイル一式を取得します. ここではgit clone先のディレクトリ名をpetalinux-baseとしていますが,未指定で既定のままでも問題ありません.

git cloneしたディレクトリに移動します.

docker build

PetaLinuxをインストールするベースとなるDockerイメージ,keitetsu/petalinux:ubuntu16.04-baseをビルドします.

PetaLinuxのインストール

ビルドしたDockerイメージを起動し,手動でPetaLinuxをインストールします. テキストエディタでrun_base.shを開き,--volumeオプションの/data1/Software/Xilinxの部分をpetalinux-v2020.2-final-installer.runを格納したディレクトリに書き換えます. このディレクトリは,Dockerコンテナ上では/dataとしてマウントされます.

PetaLinuxはrootではなく一般ユーザでインストールする必要があります. このため,Dockerホスト上のユーザのUIDとGIDを使ってDockerコンテナ起動時にユーザが作成されます. 任意のUIDとGIDを使用したい場合は,run_base.shで指定してください. これらの処理は,entrypoint.shに記載しています.

run_base.shを実行します.

通常通りPetaLinuxのインストールを進めてください.ただし,インストールディレクトリは/opt/Xilinx/PetaLinuxとしてください. このディレクトリはDockerイメージ上に予め用意されています.

インストーラを実行すると,ライセンスに同意するかどうかの入力が求められます. ライセンス文書が表示されたら'q'キーで閉じ,'y'を入力して同意します.3項目に同意が必要です.

インストールが完了してプロンプトが返ってきたら,Dockerホスト側で,今までDockerコンテナを操作していたものとは別の端末を開きます. docker psコマンドで,keitetsu/petalinux:ubuntu16.04-baseのコンテナIDを確認します.

DockerコンテナをDockerイメージとして保存します.${CONTAINER_ID}には,先ほど確認したコンテナIDを入れてください.

これでDockerイメージを作成できました. PetaLinuxをインストールするために起動したDockerコンテナはexitで終了してください.

使用方法

作成したDockerイメージを起動するためのシェルスクリプトは,run_base.shを改変して作成します.ここではrun.shとして保存します. /workspaceには,Dockerホスト上のPetaLinuxプロジェクトを格納するディレクトリを指定してください.

run.shを起動すると,下記のようにDockerコンテナが起動してPetaLinuxでの開発準備が整います.

Vitis, VivadoのDockerイメージ

VitisとVivadoの開発環境も同様にDocker上に作成することができます.私のファイル一式は上記です. こちらはまだ手順を書くことができていないのですが,PetaLinuxと同様に,下記の要領で作成します.また手順を書きたいと思います.

  1. ベースのDockerイメージをbuild/build.shでビルド
  2. run_base/run_base.shでDockerコンテナを起動
  3. install/installを参考にVitisをバッチモードでインストール
  4. install_xrt_bdf/build.shでXRTとサードパーティのbdfをインストール
  5. docker commit
  6. run/run.shでDockerコンテナを起動
2021/04/27

How to dump device tree from NAND flash to get dts (Zynq-7000)

In this article, I will dump the original device tree of the Zynq EBAZ4205 Board.

Since the Zynq EBAZ4205 Board is not a development board, the design information is not provided by the manufacturer. You need to get the necessary information yourself.

From the device tree source text (dts) file converted from the dumped device tree blob (dtb) file, you can get reference information when developing a custom Linux image using Vivado and PetaLinux.

Prepare

Insert the microSD card into the Zynq EBAZ4205 Board. This microSD card is used to transfer the dumped dtb file to the PC.

If you can use Ethernet, you can transfer the file by other methods.

Dump

Boot original Linux from the NAND flash on the Zynq EBAZ4205 Board.

Make sure the microSD card is mounted.

Execute the following command to dump the device tree from the NAND flash and save it as dtb file on the microSD card.

Convert

Copy the dtb file from the microSD card to your PC.

Convert dtb file to dts file. Use the device tree compiler (dtc) command for this conversion.

For Ubuntu, you can install it with the following command.

Execute the dtc command.

Now you have a dts file.

Tips

One of the information that can be obtained from the dts file is the NAND flash timing parameters and existing partition information.

For example, in the dts file, it was described as follows.

For the timing parameters nand-cycle-t0 to nand-cycle-t6, refer to the Xilinx Wiki.

If you are developing a custom Linux image using Vivado and PetaLinux, set these parameters in Vivado. At this time, you should also check the NAND flash data sheet.

Note: The parameters in the screenshot are examples and have not been tested.

Partition information can be set in PetaLinux.

This information is reflected in the device tree automatically generated by PetaLinux. The device tree is generated in the following directory when you run the petalinux-build command.

  • /components/plnx_workspace/device-tree/device-tree

My Vivado design and PetaLinux project are available on GitHub.

If there are any mistakes in the description, please let me know.

2021/04/23

Solves the warning when loading the U-Boot environment (Zynq-7000, PetaLinux 2020.2)

I have built a boot image for the Zynq EBAZ4205 Board with Xilinx PetaLinux 2020.2. Linux was able to boot normally, but the following warning was displayed when U-Boot was booted.

The Zynq EBAZ4205 Board does not have SPI Flash. In order to solve this warning, it was necessary to change the U-Boot configurations.

Open the U-Boot configuration with the following command.

Enable "Environment is not stored".

Environment-> Environment is not stored

Disable "Environment is in SPI flash".

Environment-> Environment is in SPI flash

Exit from the U-Boot configuration and rebuild the U-Boot.

The following 2 lines are added to the U-Boot settings.

An example of the PetaLinux project can be found below.

2021/04/21

忍者ホームページではGoogle Adsenseの新規利用開始は不可能な場合がある

要約
メモ

しばらくホームページやこのブログを放置していたので,その間にGoogle Adsenseの資格要件も変わったみたいですね. この記事の内容をひとまとめに把握するのに役立ったのは,下記のGoogle Adsenseコミュニティのスレッドです.他は上記の要約のリンク先を参照してください.

2021/04/10

GV-VCP3/PCIをWindows 10 64bitで使う

要約
  • I-O DATA GV-VCP3/PCI ビデオキャプチャボードは,Windows XPまで対応
  • 後継製品としてGV-VCP3R/PCIがあり,GV-VCP3/PCIのRoHS指令対応版と考えられる.Windows 7 32bitまで対応.64bit非対応
  • 同じチップを使用しているWinFast PVR2000の64bitドライバを使用すると,GV-VCP3/PCIをWindows 10 64bit 20H2で使用可能
  • ドライバはinfファイルを書き換えた上でWindows 10のテストモードでインストールする必要があり,一定の知識が必要
  • 録画はGV-VCP3R/PCI サポートソフトを使用可能なほか,OBSも使用できる.OBSがおすすめ
I-O DATA GV-VCP3/PCI ビデオキャプチャボード

GV-VCP3/PCIは,2006年4月発売のPCIカードタイプのビデオキャプチャボードです. 後継としてGV-VCP3R/PCIがあり,GV-VCP3/PCIとの違いはRoHS指令対応の有無のみとみられますが未確認です. つまり,GV-VCP3/PCIとGV-VCP3R/PCIのハードウェアはほとんど同じということで,GV-VCP3/PCIでもGV-VCP3R/PCIのサポートソフトが使えたのではないでしょうか.既にWindows 7 32bit以前のデスクトップPCが手元にないため確認できませんが…. 入力端子はコンポジット入力のRCAピンジャックが2系統とS-Video入力の4pin mini-DINが1系統です.

コンポジット出力のアナログカメラの映像をPCに取り込みたかったのですが,ちょうどこのボードが転がっていたので最新のWindows OS環境で使用可能か試してみた記録です. 結論としてはWindows 10 64bit 20H2で録画に成功して使えています.しかし,非公式な方法かつ海外サイトからのファイル入手が必要ですので,参考情報として眺めてください.最早こんなことしたい人,私以外にいないかもしれませんが….

ドライバの入手,編集,インストールの概要
ヒントは価格.comの書き込み

価格.comにはWindows 7 64bitで動作したとの報告があり,その方法が具体的に記載されていました.ご丁寧なことに,使用した代替ドライバのバージョンとMD5までありました. 私が行ったことは,この代替ドライバをインターネット上で探してきて,同じように編集して使っただけです.

代替ドライバの入手

代替ドライバも公式での配布は終了しており,インターネット・アーカイブからも入手できませんでした.このため,非公式なWebサイトからダウンロードする必要がありました. Google検索で「CX23880.5.0.18.6420_Vista_WHQL」で検索すると見つかります.ダウンロードできたら,zipファイルを展開して,その中にあるcxavsvid.sysのMD5が一致するか確認してください.

PVR2000.infの編集

代替ドライバに含まれるPVR2000.infは当然ながらGV-VCP3/PCIではありませんので,記述をGV-VCP3/PCIに合わせて書き換える必要があります. 必要な情報は,GV-VCP3R/PCI サポートソフトに含まれるWindows 7 32bitドライバのiocx88vd_7.infに記載されています. 私はWinMergeでPVR2000.infとiocx88vd_7.infを比較しながら書き換えました.

ドライバのインストール

あとは,書き換えたPVR2000.infを使用してドライバをインストールするだけですが,1つ注意点があります. このドライバは署名なしドライバのため,Windows 10をテストモードにしてインストールする必要があります. この方法については既に多数のWebページで紹介されていますので,「Windows10 ドライバ インストール テストモード」などで調べていただければと思います.

映像のキャプチャ

I-O DATA公式のGV-VCP3R/PCI サポートソフトに含まれるキャプチャソフトは,Windows 10 64bit 20H2でも使用できました. しかし,実用的にはOBSを使用するのが良いのではないでしょうか.OBSはライブ配信などに現在広く使用されているフリーウェアで,もちろんWindows 10 64bitをサポートしています.

あれ,映像がキャプチャできないぞ.というときは,設定を確認してみてください.私の場合,デフォルトではS-Video入力となっていたためコンポジット入力に切り替える必要がありました.

以上,参考になれば幸いです.

2021/03/07

サクラエディタでMarkdownをシンタックスハイライトさせる

Monokai for Sakura Editor

サクラエディタでMarkdownをシンタックスハイライトさせるためのタイプ別設定ファイルを作成しました.GitHubにて公開しています. サクラエディタをMonokai風の配色するための色設定ファイルとタイプ別設定ファイルを公開しているリポジトリに追加しました.

設定方法
Markdown
  1. 設定ファイルを準備する
  2. サクラエディタはご使用のOSをサポートしている最新版にアップグレードしておくことをおすすめします. 下記リンクからGitHubに移動し,右側の「Code」-「Download ZIP」からZIPファイルをダウンロードしてください. ダウンロード後,任意のフォルダでZIPファイルを解凍してください.

  3. タイプ別設定一覧を表示する
  4. サクラエディタを起動し,「設定」-「タイプ別設定一覧」を開きます.

  5. 設定ファイルをインポートする
  6. タイプ別設定一覧ウィンドウで「インポート」をクリックします. ファイルを開くためのウィンドウが表示されるので,ZIPファイルを解凍してできたフォルダから,「markdown_monokai\markdown_monokai.ini」を開きます.

    サクラエディタのバージョンによっては下記のようなメッセージが表示されます.「OK」をクリックします.

    「インポート確認」ウィンドウが表示されるので,「読込先:」を「新規追加」にして「OK」をクリックします.

  7. 完了
  8. 「ファイルをインポートしました。」と表示されれば完了です. 下図のように追加されます. 拡張子がmdもしくはmd.txtのファイルを開くと,シンタックスハイライトされるはずです.

    拡張子が「*.md.txt」の場合もシンタックスハイライトにするためには,「Markdown ( md,*.md.txt )」を選択した状態で「↑」をクリックして「テキスト ( txt,log,1st,err,ps )」の上に設定します.

2021/02/06

CISCO互換ケーブルのピンアサイン

Cisco互換ケーブル (コンソールケーブル)

不要なLANケーブルを流用して,Cisco互換ケーブルを自作した.ピンアサインの参考にしたページをメモしておく. Cisco互換ケーブルと言っているのは,Cisco機器の設定などの際にCisco機器とPCを接続するために使用するケーブルのこと.コンソールケーブルとも呼ぶ. Cisco機器側が一般的なLANケーブルと同じRJ45,PC側がD-sub 9ピンコネクタである.PC側がUSB (USBシリアル変換IC内蔵)になっているものもある. Cisco以外のメーカーのネットワーク機器などにも広く採用されている.

既成品例とピンアサインの参考資料

下記の富士通のWebページに,既成品例とピンアサインが掲載されている.

既成品例の1つがパナソニックLSネットワークスのPN72001で,製品ページに商品図面が掲載されている.ピンアサインはこの図面がわかりやすく,一番参考になった.

2021/02/04

久しぶりにディスク消去ツールのDBANを使用しました

要約
  • Darik's Boot and Nuke (DBAN)は,フリーのディスク消去ツール
  • フロッピーディスクを作成するための実行ファイルが提供されているのは,1.0.7まで.最新は2.3.0
  • 上記の1.0.7の実行ファイルはWindows 10ではエラーが発生する.今回は,仮想マシン上のWindows XPで実行
Darik's Boot and Nuke (DBAN)

Darik's Boot and Nuke (DBAN)は,フリーのディスク消去ツールです.自己起動可能なツールで,CD-Rやフロッピーディスクに書き込んで使用します. 古いネットブックのHDDのデータ消去が必要になったので,DBANのことを久しぶりに思い出しました. 手元にCD-RやUSBメモリがありませんでしたがフロッピーディスクがあったので,今回はフロッピーディスクに書き込んで使いました.

フロッピーディスクの作成には,dban-1.0.7_i386.exeを使う

2.0.0以降は,フロッピーディスクの作成に使う実行ファイルが配布されていないことに気づきました. 1.0.7までは配布されており,ファイル名はdban-1.0.7_i386.exeです. USB FDDを接続し,dban-1.0.7_i386.exeを実行するとウィンドウが開きます.Installボタンを押下すると開始されるのですが,処理が進まずエラーになりました. すぐに諦めたので対処方法があるかもしれませんが,少なくとも私のWindows 10 64bit 2004環境では動作しないようでした. なお,「管理者として実行」と互換モード (Windows XP SP2)も試しましたが,エラーになりました.

すぐに諦めたのは都合よくVMware Workstation PlayerにWindows XP SP3の仮想マシンがあったからです. この仮想マシンに同じUSB FDDを接続してdban-1.0.7_i386.exeを実行したところ,正常にフロッピーディスクを作成できました. まぁ,フロッピーディスクの作成をサポートする必要がない世の中になって10年以上経っていますからね.

以上,参考になれば幸いです.