udevでデバイスファイルのシンボリックを作成

  • POST
udevでデバイスファイルのシンボリックを作成 はじめに Linux環境において、デバイスファイルのファイル名は機種により異なるが、 RXTXライブラリのようにライブラリ側で、デバイスファイル名が固定されているケースがある。 この場合は、デバイスファイルを参照するシンボリックリンクをライブラリが指定しているデバイスファイル名で作成することで、ミスマッチを回避できる。 Linux環境でデバイスファイルのシンボリックを作成する手順を記載する。 udevとは udevは、Linuxにおいての/dev配下のデバイスファイルの管理を行う仕組みである。 USBフラッシュメモリなどのデバイスの差し込みを行うと、/dev配下にデバイスファイルが作成され、デバイスを取り外しすると、/dev配下のデバイスファイルが作成される。 シンボリックリンクを作成 RaspberryPi環境での実行する。 USBフラッシュメモリを装着すると、デバイスファイル(/dev/sda)が作成される。 以下のコマンドを実行すると、デバイスファイルの情報が表示される。 $ udevadm info -a -n /dev/sda # SUBSYSTEMSの項目を確認する looking at parent device '/devices/platform/soc/3f980000.usb/usb1/1-1/1-1.2': KERNELS=="1-1.2" SUBSYSTEMS=="usb" DRIVERS=="usb" ATTRS{bDeviceClass}=="00" ATTRS{manufacturer}=="UFD 2.0" ATTRS{bmAttributes}=="80" ATTRS{bConfigurationValue}=="1" ATTRS{version}==" 2.00" ATTRS{devnum}=="9" ATTRS{bMaxPower}=="200mA" ATTRS{idProduct}=="3600" ATTRS{avoid_reset_quirk}=="0" ATTRS{urbnum}=="1558" ATTRS{bDeviceSubClass}=="00" ATTRS{maxchild}=="0" ATTRS{bcdDevice}=="0100" ATTRS{bMaxPacketSize0}=="64" ATTRS{idVendor}=="13fe" ATTRS{product}=="Silicon-Power32G" ATTRS{speed}=="480" ATTRS{removable}=="removable" ATTRS{ltm_capable}=="no" ATTRS{serial}=="201108SP001507B80507CD4F175B" ATTRS{bNumConfigurations}=="1" ATTRS{busnum}=="1" ATTRS{authorized}=="1" ATTRS{quirks}=="0x0" ATTRS{configuration}=="" ATTRS{devpath}=="1.

atom-sourcetrailでソース解析

  • POST
atom-sourcetrailでソース解析 はじめに Sourcetrailとは オーストラリアのCoati Software社が開発したOSSのコード可視化ツール。 ソースコードを解析し、コード間の依存関係をグラフィックに表示する。 対応言語は、Java、Python、C等。 https://www.sourcetrail.com/documentation/#Installation Atomとは アメリカのGithub社が開発したOSSのテキストエディタ。 様々なプラグインが開発されており、プラグインのインストールにより、拡張が可能なことが特色。 https://atom.io atom-sourcetrailとは Atomで開いたソースコードをSourcetrailで表示したり、 Sourcetrailで開いたソースコードをAtomで編集したりすることができるAtom用のプラグイン。 https://atom.io/packages/atom-sourcetrail インストール Atomのインストール https://atom.io からインストーラーをDLして起動すると、インストールされる。 atom-sourcetrail 下記のように「Settings」→ 「Install」からatom-sourcetrailを選択し、インストールする。 Sourcetrailのインストール 下記のリポジトリから自分のPC環境に合ったZipファイブをDLして、解凍する。 https://github.com/CoatiSoftware/Sourcetrail/releases Sourcetrailを起動 Zipを解凍したフォルダ配下の「Sourcetrail.exe」を実行すると、Sourcetrailが起動するので下記の手順でプロジェクトを作成する。 atom-sourcetrailによるAtomとSourcetrailの連携 SourcetrailからAtomへの切り替え Sourcetrail上で、右クリックして、「Show in IDE」を選択すると、 Atom上に該当のソースコードが表示される。 AtomからSourcetrailの切り替え Atomで「Package」 → 「Coati」 → 「Start server」を実行する Atomでソースコード上で、右クリックして、[Send location to Coati] を実行 参考サイト http://www.cloudsquare.jp/kumonosu/program/java/post-2253/

ルーティングテーブルをMarkdown形式で表示するスクリプトを作成

  • POST
ルーティングテーブルをMarkdown形式で表示するスクリプトを作成 ipコマンドのrouteオプション表示されるルーティングテーブルをMarkdown形式で表示するスクリプトを作成したので、下記に記載する。 ファイル内容 シェルスクリプトとawkの2ファイルで構成される。 make_markdown_route.sh #!/bin/bash # # ipコマンドで表示したルーティングテーブル情報をMarkdown形式に変換して表示するスクリプト #--------------------------------------------------------------------------------------- current_directory_path="$( dirname "$(readlink -f $0)" )" ip route show table all | awk -f "${current_directory_path}/make_markdown_route.awk" make_markdown_route.awk #!/usr/bin/awk # # ipコマンドで表示したルーティングテーブル情報をMarkdown形式に変換して表示するスクリプト # # Note: # * Destination : 宛先アドレス # * Scope : 送信先 # - scope link: 直接unicast/broadcastにて通信する経路。自身が属するネットワーク等が該当。 # - scope host: 自分自身への経路 # - scope global: (他ネットワークへの)ゲートウェイを経由したunicast通信による経路。 # * Protocol : # - proto kernel:カーネルが自動生成した経路。 #----------------------------------------------------------------------- #----------------------------------------------------------------------- # 事前処理 #----------------------------------------------------------------------- BEGIN { # ヘッダー部分の出力 printf("| %-17s | ", "Destination"); printf("%-15s | ", "Gateway"); printf("%-15s | ", "Source"); printf("%-8s | ", "Protocol"); printf("%-8s | ", "Scope"); printf("%-6s | ", "Metric"); printf("%-4s | ", "Dev"); printf("%-9s | ", "Table"); printf("\n"); printf("| %-17s | ", "---"); printf("%-15s | ", "---"); printf("%-15s | ", "---"); printf("%-8s | ", "---"); printf("%-8s | ", "---"); printf("%-6s | ", "---"); printf("%-4s | ", "---"); printf("%-9s | ", "---"); printf("\n"); } #----------------------------------------------------------------------- # 配下を初期化する関数 #----------------------------------------------------------------------- function initialize_array(array){ array["route"] = ""; array["dest"] = ""; array["mask"] = ""; array["via"] = ""; array["dev"] = ""; array["proto"] = ""; array["scope"] = ""; array["src"] = ""; array["metric"] = ""; return 0; } #----------------------------------------------------------------------- # 配列の内容を出力 #----------------------------------------------------------------------- function print_array(array){ printf("| %-17s | ", array["dest"]); printf("%-15s | ", array["via"]); printf("%-15s | ", array["src"]); printf("%-8s | ", array["proto"]); printf("%-8s | ", array["scope"]); printf("%-6s | ", array["metric"]); printf("%-4s | ", array["dev"]); printf("%-9s | ", array["table"]); printf("\n"); return 0; } #----------------------------------------------------------------------- # メイン処理 #----------------------------------------------------------------------- { initialize_array(array) begin_number=2 # テーブル情報が含まれる場合 = 項目数が偶数の場合 # Exsample: # broadcast 127.

静的サイトジェネレータ「HUGO」でのWEBサイト作成入門

  • POST
はじめに 静的サイトとは 静的サイトとは、クライアントがWEBサーバにアクセスした際に、 HTMLとCSS・JavaScriptからなる予め用意されたコンテンツを表示するWEBサイト。 対して、動的サイトは、クライアントからアクセスがある度に、 WEBサーバでコンテンツを生成して、動的に生成されたコンテンツを表示するWEBサイト。 WordPressではPHPプログラムを使用して、WEBページを動的に生成するため、WordPressを使用して作成したサイトは動的サイトに該当する。 静的サイトジェネレーターとは 静的サイトジェネレーターは、Markdownや、AsciiDocなどの所定の形式のファイルから、HTML/CSS/JSを生成することができるソフトウェア。 ※ AsciiDocを使用する場合は、htmlへ変換するためのAsciidoctorかAsciiDocのパスを通しておく必要がある。 代表的なものとして、以下のソフトウェアがある。 HUGO Jekyll GatsbyJS Hexo React Static Googleトレンドで比較したところ、HUGOの検索頻度が高いため、本記事では、 HUGOについて記載する。 HUGOとは GO言語で実装されたOSSの静的サイトジェネレーター。 公式サイト HUGOでWEBサイト作成手順 HUGOをインストール 以下のWEBサイトから、それぞれのプラットフォームに合わせたファイルをDLする。 https://github.com/gohugoio/hugo/releases 以下は、Windowsの場合の手順。 Windows用のファイルをDL DLしたファイルをC:\hugoに解凍する C:\hugoにパスを通すため、環境変数を設定する WEBサイトの雛形を作成 コマンドプロンプトを起動して、以下のコマンドを実行。 # 任意のWEBサイトを作成するフォルダに移動 $ cd c:\work # WEBサイトの雛形を作成 # ※ site_nameに作成するWEBサイトの名称を指定する # ※ 実行するとsite_nameというフォルダが表示される $ hugo new site site_name # 作成されたフォルダに移動 $ cd site_name # WEBサイトを作成 $ hugo 作成されたフォルダの確認 先の手順で作成されたフォルダの配下に、下記のフォルダ、ファイルが作成される