FC2ブログ

[LM32](4).mem生成(Micosystem Builder)

久しぶりにやったら.elfから.hexが作れない。

host: x1 carbon
OS: Windows 10 Pro
Cygwin: 64bit

objcopy.exe -S -O $swname/Debug/$swname.elf $swname.srec

以前はこれをCygwinで実行すると.srecが生成出来たのに。効かない。
.srecが生成されたら、後はDesign Wave Magazine付属のプログラムで.mifと.hexへ変換していた。
以下どちらのobjcopyでも何も生成されず、エラーも出ず。

c/lscc/diamond/3.10_x64/micosystem/gtools/lm32/bin/lm32-elf-objcopy.exe
c/lscc/diamond/3.10_x64/micosystem/gtools/lm32/lm32-elf/bin/objcopy


Micosystem BuilderのSoftware Deploymentを使う
流れとしては、launchmicosystem.exeでEclipseのLattice Mico System(LMS) Builderを起動して、
メニューバー下の、LMS 1.0 D3.10画面で、HWプラットフォーム(ether.msb)を作り、
その隣の、C/C++画面で、ソフトウェアをビルドし.elfを作り、
その次に、SoftwareのDeploymentへ進む。

具体的には、
LMSメニュー > Tools > Software Deployment
 > 左のメニューから「Mico32 Multi On Chip Memory Deployment」をダブルクリック
 > 新規の設定画面に対して以下を入力してから、Startで.memが生成された。

Name : ether_soft
Project: Browseで開くと、C/C++画面で作ってビルドしたプロジェクト名を選択
C/C++ Application: Debug/ether_soft.elf を選択
Save Memory Initialization Files to directory: 保存先DIRを指定
Memory Initialization Files Prefix: これを何か入力しないとエラーが出た。


尚、「Mico32 On Chip Memory Deployment」の方も試してみたが、Startボタンが押せなかった。
おそらく今回の回路では、Inst RAMとData RAMが別々になっているので、Multiの方を使うべきのようだ。

ここまでで.memが出来たが、このままではINTEL FPGAのMemoryで初期値として渡せない。

0000407c
0000407c
0000407c
 :

なので、対応するINTEL HEX形式へ変換する。

過去に作ったRobyプログラムで変換できる。記事の最後の方のソースを使う。

[LM32].mem to Intel-Hex変換Ruby
http://bobgosso.blog13.fc2.com/blog-entry-338.html

あとはCygwinから以下を実行して、.hexへ変換し、さらにそれをシミュレーション場所へコピーして読み込めるようにする。

ruby ../../../../common/ruby/mem2intel_hex_v01.rb ether_soft_Data_IM.mem ether_soft_Data_IM.hex
ruby ../../../../common/ruby/mem2intel_hex_v01.rb ether_soft_Instruction_IM.mem ether_soft_Instruction_IM.hex

\cp ether_soft_Data_IM.hex ../../../../board/de2-115/
\cp ether_soft_Instruction_IM.hex ../../../../board/de2-115/



デバッグ用にobjdumpも作っておく


以下で生成可能。しかし、Cygwin64bitでは動作せず。32bitで実行したら成功した。

lm32-elf-objdump.exe -D ether_soft.elf > ether_soft.elf.objdump
スポンサーサイト

[ネスペ]まとめ

ARP、Gratuitous ARP

ノードA(MAC=A、IP=①) <-------> ノードB(MAC=B、IP=②)









         動作コード 送信元MAC 送信元IP 宛先MAC 宛先IP コメント
通常MAC問合せ                           
ARP Request 1 A 000000000000 通常のARPは宛先MAC=0で問合せ
ARP Reply   2 B A
IPアドレス競合検知                           
ARP Request 1 A 0.0.0.0 000000000000 OSはIP更新の際、「IPを①に設定したよー」と周囲に問合せる
Gratuitous ARP 2 B B 「既にIP①は設定してるよー」と答える
周辺機器のテーブル更新                           
Gratuitous ARP 2 X FFFFFFFFFFFF ノードB機器を交換した時、「私MAC=Xに変わったよー」と通知する




ルーティングプロトコル







分類 プロトコル ルーティングアルゴリズム メトリック 更新間隔 更新に使用するマルチキャストアドレス
EGP(Exterior Gateway Protocol) BGP(Border Gateway Protocol) パスベクタ型 パス(経路)+方向(ベクタ)
IGP(Interiror Gateway ProtocolRIPv2 ディスタンスベクタ型 ホップ数 定期的 224.0.0.9
OSPF リンクステート型 コスト 変更があった時 224.0.0.5(All OSPFルータ)、224.0.0.6(All DRルータ)
EIGRP ディスタンスベクタ(ハイブリッド)型 帯域幅+遅延 変更があった時 224.0.0.10




OSPF

Helloパケット交換(マルチキャスト(224.0.0.5)で送信)
 > 隣接ルータとネイバー関係確立
 > ネイバーを認識するとネイバーテーブルに格納
 > ネイバー存在を確認するために定期的にHelloパケットを送信
 > 自身のLSA(Link State Advertisement、リンク情報)をネイバールータに送信
 > 受信したLSAはトポロジテーブル(LSDB = Link State Database )に格納
 > 同じエリア内の全てのルータで同じLSDBを保持
 > LSDBに格納されたLSAを組み合わせてネットワーク全体の地図(トポロジマップ)を作成
 > SPFアルゴリズム(ダイクストラ)を実行し階層ツリーのSPFツリーを作成


内部ルータ: 全I/Fが同エリアに接続されてるルータ。
バックボーンルータ: 1つ以上のI/Fがバックボーンエリアに接続しているルータ。
エリア境界ルータ(ABR = Area Border Router): 異なるエリアを接続しているルータ。
AS境界ルータ(ASBR = AS Boundary Router ) : 1つ以上のI/Fが外部ASのルータと接続しているルータ。


代表ルータ(DR =Designated Router): DRとBDRの間だけでLSAを交換する。
バックアップ代表ルータ(BDR =Backup DR): 
DROTHER : DR、BDRに選出されなかったOSPFルータ。

Helloパケット交換
 > 2Way Stateになった
 > 中に含まれるOSPFプライオリティ値を見る
 > 一番大きい値 = DRになる
 > 二番目に大きい値 = BDRになる
 > もしプライオリティ値が同じ場合は、ルータIDの大きい方からDR、BDRになる。

 ※ DRとBDRはセグメントごとに選出。OSPFプライオリティ値はI/F毎に設定。
   例えば、あるOSPFルータがセグメント1ではDR、セグメント2ではDROTHER、という場合もある。

LSAを交換するネイバー: ルータ間の関係 = Adjacency(アジャセンシ―) > ステータス=Full
ただのネイバー: ルータ間の関係 = Neighbor(ネイバー) > ステータス=2Way

[FreeBSD]コマンド2

HDD故障した時の交換方法(zpool replace失敗)

以下で状態確認したらDEGRADされてる。
# zpool status

pool: rz2pool
state: DEGRADED
status: ...
action: ... or replace the device with 'zpool replace'.
scan: ...
config:

NAME STATE READ WRITE CKSUM
rz2pool DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
ada1 ONLINE 0 0 0
ada2 ONLINE 0 0 0
2685.. REMOVED 0 0 0 was /dev/ada3
ada4 ONLINE 0 0 0
errors: No known data errors


オープンなPCケースなので、HDDのアクセスランプなんて無いし、どれが故障したHDDだか分からない。
そのため、以下コマンドで認識可能なHDDのシリアル番号を全て調べてリスト化しておく。

# camcontrol identify ada0

pass0: ATA8-ACS SATA 3.x device
pass0: 600.000MB/s transfers (SATA 3.x, UDMA6, PIO 8192bytes)

protocol ATA/ATAPI-8 SATA 3.x
device model TOSHIBA DT01ACA300
firmware revision MX6OABB0
serial number xxxxxxxxxx --> これがシリアル番号
 :


尚、zpool statusでDEGRADEの原因となりREMOVEされたHDDはada3だったが、それも見てみるとOSで外された?せいか、
以下のように見つからない。

# camcontrol identify ada3

camcontrol: cam_lookup_pass: CAMGETPASSTHRU ioctl failed
cam_lookup_pass: No such file or directory
cam_lookup_pass: either the pass driver isn't in your kernel
cam_lookup_pass: or ada3 doesn't exist


また、全てのHDDリスト見るには以下。
# camcontrol devlist
 ※ 表示されなくなるので左端の<は削除してる。

TOSHIBA DT01ACA300 MX6OABB0> at scbus0 target 0 lun 0 (ada0,pass0)
Optiarc DVD RW AD-7200S 1.06> at scbus1 target 0 lun 0 (cd0,pass1)
TOSHIBA DT01ACA300 MX6OABB0> at scbus2 target 0 lun 0 (ada1,pass2)
TOSHIBA DT01ACA300 MX6OABB0> at scbus3 target 0 lun 0 (ada2,pass3)
TOSHIBA DT01ACA300 MX6OABB0> at scbus5 target 0 lun 0 (ada4,pass5)
AHCI SGPIO Enclosure 1.00 0001> at scbus6 target 0 lun 0 (ses0,pass6)


次にシャットダウンして問題のHDDをPCから外す。
# shutdown -p now

接続されている全HDD 5台を確認すると、確かにada3のHDDだけ、メモしたシリアル番号リストになかった。
つまり、シリアル番号がリストにないHDDが問題が発生したHDDなので、それをPCから外す。

外して新しい同等品に交換したら、再度PCを起動。無事起動した。
今度は以下で表示されているので、無事交換したHDDも認識されている。
# camcontrol identify ada3

正常動作してるHDD見ると、パーティションタイプはGPTになってる。
MBRじゃ2TB以上のパーティション扱えないから、3TB HDDを扱うために過去の自分がGPTにしたんだろう。記憶無し。
# gpart show ada0

=> 34 5860533101 ada0 GPT (2.7T)
34 6 - free - (3.0K)
40 1024 1 freebsd-boot (512K)
1064 5853150200 2 freebsd-ufs (2.7T)
5853151264 7381870 3 freebsd-swap (3.5G)
5860533134 1 - free - (512B)


交換したばかりのada3は確認してもパーティションタイプが設定してない?から、No such geomと言われるみたい。
# gpart show ada3
gpart: No such geom: ada0.

GPTパーティションタイプにする。
# gpart create -s gpt ada3


ところで、今やってるように、故障したHDDが認識されていたada3へ、新HDDを交換してada3で認識されている状態において、
どうやってzpool replaceを実行するのか?
調べたら以下にぴったりの回答があった。
https://docs.oracle.com/cd/E19253-01/819-6260/gazgd/index.html

この情報によると、状況によってコマンドが変わるとの事。

①新旧HDDを交換してしまい、新HDDが旧HDDと同じ場所(ada3)になっている場合
 → zpool replace rz2pool ada3
②PCに旧HDD(ada3)、新HDD(ada5)の両方が接続されている場合
 → zpool replace rz2pool ada3 ada5

今回は①のケースなので、以下実行してみる。
# zpool replace rz2pool ada3

すぐに実行完了した。状態を見てみると・・・
# zpool status rz2pool

pool: rz2pool
state: DEGRADED
status: One or more devices is currently being resilvered. The pool will
continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
scan: resilver in progress since Sat Aug 25 09:29:38 2018
2.39G scanned out of 5.36T at 122M/s, 12h44m to go
590M resilvered, 0.04% done
config:

NAME STATE READ WRITE CKSUM
rz2pool DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
ada1 ONLINE 0 0 0
ada2 ONLINE 0 0 0
replacing-2 REMOVED 0 0 0
2685441344063119102 REMOVED 0 0 0 was /dev/ada3/old
ada3 ONLINE 0 0 0 (resilvering)
ada4 ONLINE 0 0 0

errors: No known data errors


旧HDD(2685441344063119102)に対して、新HDD(ada3)がresilveringという状態になってる。
10分くらい経っても161G resilvered, 12.14% doneくらいで、3TBのresilverには時間かかるね。

他のブログを見ると、新HDDをGPTに設定した後、元の正常HDDのパーティション構成に真似て、
1つ1つパーティションを設定しているのを見たが、あれはスキップしても良いのかな?
今回はGPT設定だけやって、あとはzpool replaceでうまくいってるみたいだし。

っと思ったら、resilverが終わったら、なぜかこんな感じに新旧HDD両方共にREMOVEDになってる。
# zpool status

pool: rz2pool
state: DEGRADED
 :
config:

NAME STATE READ WRITE CKSUM
rz2pool DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
ada1 ONLINE 0 0 0
ada2 ONLINE 0 0 0
replacing-2 DEGRADED 0 0 1
2685441344063119102 REMOVED 0 0 0 was /dev/ada3/old
xxxxxxxxxxxxxxxxxxx REMOVED 0 0 0 was /dev/ada3
ada4 ONLINE 0 0 0

errors: No known data errors


PCの同じスロットで新旧HDDを交換した場合は、replaceコマンドだけで置き換え完了するって書いてあるけど・・・
https://docs.oracle.com/cd/E24845_01/html/819-6260/gayrd.html#gazgd

今更気付いたが、zpool replaceで指定するHDDは、新HDDでなくて、旧HDDの方だった。

このまま新HDDをPCに接続したまま再起動すると、ada4だったHDDがada3として起動し、
しかも故障したHDD(旧HDD)も交換用に追加したHDD(新HDD)もREMOVED扱いのまま。
# zpool status

pool: rz2pool
state: DEGRADED
 :
config:

NAME STATE READ WRITE CKSUM
rz2pool DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
ada1 ONLINE 0 0 0
ada2 ONLINE 0 0 0
replacing-2 DEGRADED 0 0 1
2685441344063119102 REMOVED 0 0 0 was /dev/ada3/old
xxxxxxxxxxxxxxxxxxx REMOVED 0 0 0 was /dev/ada3
ada3 ONLINE 0 0 0

errors: No known data errors


新HDDのSATAデータ線を外してPCを再起動しても、変わらず。

# zpool status
pool: rz2pool
state: DEGRADED
scan: resilvered 143M in 3h2m with 0 errors on Sun Aug 26 11:03:56 2018
config:

NAME STATE READ WRITE CKSUM
rz2pool DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
ada1 ONLINE 0 0 0
ada2 ONLINE 0 0 0
replacing-2 UNAVAIL 0 0 0
2685441344063119102 REMOVED 0 0 0 was /dev/ada3/old
916842558509187076 REMOVED 0 0 0 was /dev/ada3
ada3 ONLINE 0 0 0

errors: No known data errors


起動中に新HDDのSATAデータ線を繋いでも認識されないので、新HDDのSATA電源とデータ線を両方抜いてから、
再度データ線、電源の順に接続すると・・・
rz2poolの他のHDDもREMOVEDされてUNAVAIL状態になった。
シャットダウンしても、途中止まってるようで、telnetログインも拒否される。なぜかpingは通るが、一向に電源切れない。
電源長押しで強制OFF。
その後起動すると、また新HDDが自動的にresilveringされ始めた。
0.1%doneくらいから新HDDの認識がada3から9168xxxxxxに変わって、ONLINEだったのが、REMOVEDに変わった。



旧HDDの接続されていたada3へ新しいHDDを接続して、
zpool replace rz2pool ada3
 ※ 旧HDDのID(長い数字のランダムみたいなもの)を指定するとエラー出たため、ada3と新HDDを指定してる。
   オラクルマニュアルではどちらでもOKと記載あった。
とやっても、結局resilveringの後に、その新HDDがREMOVEDになる原因が分からず。
結局、FreeBSDを再度インストールする事に。
元の構成はOS HDD x1本 + データプール(HDD x 4本でZFS)としてたが、
今度の構成はOSとデータ全部込みでHDD x 5本でZFSを組んでる。



11.2新規インストール

11.2をDVDからインストール。
OS含めたZFSプールは、東芝DT01ACA300 x 5本。512eのHDDなので、ZFSプール作成時のForce 4KはNOにした。
(このHDDは512eなので、ホストから見たら512Bセクターなので。)

portイントール??
# cd /usr/ports/japanese/ne
# make install clean

https://freebsd.sing.ne.jp/11.01/02/08.html

treeインストール
# cd /usr/ports/sysutils/tree
# make
# make install

vimインストール
# cd /usr/ports/editors/vim
# make
# make install
GNOME対応にチェックしたせいか、途中で各ライブラリのコンフィグ画面が起動していちいちOKしないといけないの面倒。
しかもエラーで終わってる。

sshdインストール
# vi /etc/rc.conf
sshd_enable="YES"
# vi /etc/ssh/sshd_config

PasswordAuthentication yes → パスワードのみで認証する設定。
PubkeyAuthentication no →  認証に鍵を使用しない設定。

# /etc/rc.d/sshd restart
# ssh-keygen -t rsa
 ※ パスフレーズは使用しない設定にしたので、EmptyのままEnter

hogeユーザがsuでrootになれるように設定
# vi /etc/group
wheel:*:0:root,hoge  → 末尾に「,hoge」を追加した。


sambaインストール

https://www.kishiro.com/FreeBSD/samba4.html

libiconvを入れておくと、Windows上の日本語フォルダやファイルが正しく表示されるようになる、との事。
確かに以前に作ったFreeBSDのsambaは文字化けしていて困った事ある。これで解決か?
# cd /usr/ports/converters/libiconv
# make config-recursive
# make install clean

続いてsamba48をインストール。
# cd /usr/ports/net/samba48
# make config-recursive
# make install clean

smb4.confを新規作成
#vi /usr/local/etc/smb4.conf

[global]
workgroup = HOGE
server string = Samba Server (FreeBSD)
security = user
hosts allow = 192.168.xxx.
interfaces = 192.168.xxx.yyy/24
map to guest = Bad User
guest ok = yes
guest only = yes
guest account = nobody
load printers = no
log file = /var/log/samba4/log.%m
max log size = 50
dns proxy = no
unix charset = CP932
dos charset = EUCJP-MS
create mask = 600
directory mask = 700
printing = bsd

[share]
comment = Shared Directories
path = /home/share
browseable = yes
writable = yes


# vi /etc/rc.conf

samba_server_enable="YES"


share用フォルダの権限を設定
# chmod 777 /home/share

samba再起動。
# /usr/local/etc/rc.d/samba_server restart


GNU ls 等を使用できるようにするportsインストール。
# cd /usr/ports/sysutils/coreutils
# make
# make install



ん? 既にZFSプールがDEGRADED

以下初期設定やってから気づいたが、zpool statusで状況見てみたら、

# zpool status

pool: zroot
state: DEGRADED
status: One or more devices has been removed by the administrator.
Sufficient replicas exist for the pool to continue functioning in a
degraded state.
action: Online the device using 'zpool online' or replace the device with
'zpool replace'.
scan: none requested
config:

NAME STATE READ WRITE CKSUM
zroot DEGRADED 0 0 0
raidz2-0 DEGRADED 0 0 0
ada0p3 ONLINE 0 0 0
ada1p3 ONLINE 0 0 0
2542862470788629067 REMOVED 0 0 0 was /dev/ada2p3
ada3p3 ONLINE 0 0 0
ada4p3 ONLINE 0 0 0

errors: No known data errors


[Windows]LR-LINK 10G NIC

LR-LINK LREC6860BTがTSUKUMOとかで1万円以下で売ってる。

https://shop.tsukumo.co.jp/goods/6925909302137/104030013000000

やっぱり買ってみた。

z68(Windows、クライアント)
LR-LINK LREC6860BT
 |
XS708Eスイッチ
 |
X520-DA2
h170(FreeBSD、HDD 4台のZFS)

この構成でCentOSのiso(4GBくらい)をコピーしたら、転送速度330MB/sくらいだった。
z68かh170のディスク速度がボトルネックになってる気がする。

[PC]SMBマルチチャネル

z68(Win10) ※ このフォルダを共有してNASとして動作。
インテルI340-T4クアッドポートNIC
 |
スイッチGS116E
 |
x230(Win10)
1 オンボードLAN
2 USB-1GbEアダプタ(LUA4-U3-AGT)
3 USB-1GbEアダプタ(Gigabit USB 3.0 Ethernet Adapterとしか書いてない。型番不明。)


この構成で接続したら、自動的にマルチチャネル出来た模様。
1GbEの理論値を超えて、160MB/sくらい出た。
3ポート分の帯域使い切って、300MB/sくらい出て欲しかったが。原因未確認。

[Ubuntu]コマンド2

DNSサーバ設定

https://www.server-world.info/query?os=Ubuntu_14.04&p=dns

# sudo apt-get -y install bind9 bind9utils
# sudo vi /etc/bind/named.conf
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
#include "/etc/bind/named.conf.default-zones";
include "/etc/bind/named.conf.internal-zones";
include "/etc/bind/named.conf.external-zones";


# sudo vi /etc/bind/named.conf.internal-zones
   
view "internal" {
match-clients {
localhost;
192.168.10.0/24;
};
zone "hoge.link" {
type master;
file "/etc/bind/hoge.link.lan";
allow-update { none; };
};
zone "10.168.192.in-addr.arpa" {
type master;
file "/etc/bind/10.168.192.db";
allow-update { none; };
};
include "/etc/bind/named.conf.default-zones";
};


# sudo vi /etc/bind/named.conf.external-zones


view "external" {
match-clients { any; };
allow-query { any; };
recursion no;
# 外部向け正引き情報を定義
zone "hoge.link" {
type master;
file "/etc/bind/hoge.link.wan";
allow-update { none; };
};
zone "x.y.z.121.in-addr.arpa" {
type master;
file "/etc/bind/x.y.z.121.db";
allow-update { none; };
};
};


# sudo vi /etc/bind/named.conf.options


options {
directory "/var/cache/bind";
allow-query { localhost; 192.168.10/24; };
allow-transfer { localhost; 192.168.10/24; };
allow-recursion { localhost; 192.168.10/24; };

dnssec-validation auto;
auth-nxdomain no;
listen-on-v6 { none; };
};


内部正引き設定ファイル
# sudo vi /etc/bind/hoge.link.lan


$TTL 1D
@ IN SOA dns.hoge.link. root.hoge.link. (
2018050801 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
IN NS dns.hoge.link.
IN A 192.168.10.[IP of DNS server]
IN MX 10 dns.hoge.link.

dns IN A 192.168.10.[IP of DNS server]


外部正引き設定ファイル
# sudo vi /etc/bind/hoge.link.wan


$TTL 1D
@ IN SOA dns.hoge.link. root.hoge.link. (
2018050801 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
IN NS dns.hoge.link.
IN A [global IP]
IN MX 10 dns.hoge.link.

dns IN A [global IP]


内部逆引き設定ファイル
# sudo vi /etc/bind/10.168.192.db


$TTL 1D
@ IN SOA dns.hoge.link. root.hoge.link. (
2018050801 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
IN NS dns.hoge.link.
IN PTR hoge.link.
IN A 255.255.255.0

130 IN PTR dns.hoge.link.


外部逆引き設定ファイル
# sudo vi /etc/bind/x.y.z.121.db


$TTL 1D
@ IN SOA dns.hoge.link. root.hoge.link. (
2018050801 ;Serial
3600 ;Refresh
1800 ;Retry
604800 ;Expire
86400 ;Minimum TTL
)
IN NS dns.hoge.link.
IN PTR hoge.link.
IN A 255.255.255.248

x IN PTR dns.hoge.link.






zabbixサーバインストール

ここへアクセス。
https://www.zabbix.com/jp/download?zabbix=3.4&os_distribution=ubuntu&os_version=bionic&db=MySQL
Install zabbix from packageでサーバをインストールする手順が見れる。
既にzabbix3.4、Ubuntu、18.04(bionic)、MySQLが選択されているはず。
するとその下の手順2番に、ダウンロード先が表示されている。

a. Install Repository with MySQL database
# wget https://repo.zabbix.com/zabbix/3.4/ubuntu/pool/main/z/zabbix-release/zabbix-release_3.4-1+bionic_all.deb
# dpkg -i zabbix-release_3.4-1+bionic_all.deb
# apt update

b. Install Zabbix server, frontend, agent
# apt install zabbix-server-mysql zabbix-frontend-php zabbix-agent

c. Create initial database
documentation
# mysql -uroot -p
password > rootパスワードでログインできる。
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password'; > passwordは任意のパスワードを設定。
mysql> quit;

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix
Enter password: > 先ほど設定したzabbixアカウントのパスワードを入力
だいぶ長い。3分くらい待つと終わった。

d. Configure the database for Zabbix server
# vi /etc/zabbix/zabbix_server.conf
DBPassword=password > passwordは任意のパスワードを設定。

e. Configure PHP for Zabbix frontend
# vi /etc/zabbix/apache.conf
php_value date.timezone Asia/Tokyo > 2か所共にコメント解除して、Asia/Tokyoに修正。

f. Start Zabbix server and agent processes
# systemctl restart zabbix-server zabbix-agent apache2
# systemctl enable zabbix-server zabbix-agent apache2

これでzabbixサーバが起動した。

他PCのブラウザから、http://192.168.xxx.yyy/zabbix へアクセスするとzabbixページが表示された。
 > Configure DB connection = MySQL、localhost、Database port=0、database name=zabbix、User=zabbixとなっているdefault状態で、先程設定したパスワードを入れ、Next Step
 > Zabbix server details = Host=localhost、Port=10051となっているdefault状態で、そのままNext Step。Nameはオプションとの事なので未記入。
 > Pre-installation summary = 以下になった。チェックし、Next Step

Database type MySQL
Database server localhost
Database port default
Database name zabbix
Database user zabbix
Database password *******

Zabbix server localhost
Zabbix server port 10051
Zabbix server name

 > Congratulations! You have successfully installed Zabbix frontend.、と出て、Finishへ

すると、以下のWelcomページになるので、Admin、zabbixでログイン。AdminのAは大文字にすること。
https://www.zabbix.com/documentation/3.4/manual/quickstart/login

[PC]マウスポインタを速くする

Thinkpad USBトラックポイントキーボードのマウスポインタが遅い。
コントロールパネル設定で最速にしても遅い。

レジストリエディタ
 > HKEY_CURRENT_USER
 > Control Panel
 > Mouse
 > MouseSpeed
 > 現在の値1から2へ変更。

[PC]W10Wheel.NET

Thinkpad USBトラックポイントキーボードをWindows10のz68 デスクトップPCへ接続して使っているが、
真ん中ホイールが効かない。

キーボードは確かこれ。今のThinkpadノートPCに比べ、ごつごつとしたキータッチ。
レノボ・ジャパン ThinkPad USB トラックポイントキーボード(日本語) 55Y9024
昔買ったThinkpad T60に似たタッチ感。

Lenovoから探したドライバで試すが、真ん中クリックのスクロールが、Win10標準?の丸いマークが出てくるやつで、
反応も鈍い。

試したドライバは以下。中にはWindows10対応って書いてあったものでもうまくいかず。
gggr03ww.exe
Input_Driver_X8HNX_WN_17.0.11.1_A01.EXE

最終的に、昔同じ悩みの時に使ってたWheelBallを思い出したが、WIndows10では動かなかった。
なので、後継?と言われている以下を使った。
https://github.com/ykon/w10wheel.net/releases
W10Wheel.NET-2.7.zip

W10Wheelを起動して、設定でトリガを「中央」にしておくと、真ん中クリックスクロールが良くなった。

[PC]PH550Gプロジェクタ

https://www.lg.com/jp/projector/lg-PH550G

今までは撮影した動画をソニービデオカメラHDR-PJ760Vのプロジェクタ機能で天井に投影して見てた。
しかし、このビデオカメラは外部入力を投影出来ないのが不満点。
しかも、撮影した動画はNASで管理したくてデータをNASへ移してしまうので、過去の動画は見れなくなってしまう。

なので、これ買ってみた。

バッテリー動作で、Bluetoothで音楽はスピーカーにつないで、映像はPCからMiracastで無線接続。
つまり、電源も映像も音声も全て無線だからケーブルは1本も必要ない。
イイね、これ。

Miracastでの接続方法

なんだか接続方法が分からなくてハマったのでメモ。

Windows 10デスクトップ画面の右下隅をクリック
 > 新しい通知とかのメニューが出てくる。
 > 表示
 > ワイヤレスディスプレイに接続する

ここでPH550Gが検出出来なくて困ったが、原因はPH550Gの入力モードがMiracastになってなかっただけ。
やり方は以下。

 > PH550Gリモコンの右上、入力ボタンで、HDMIからScreen Shareに切り替え。
 > すると、PC上で検出出来るので、それをクリックすれば自動的に接続出来た。

Lenovo X1 carbon : 接続成功
ARROWS M01 : 接続成功
Lenovo X230 : これは検出出来たのに、接続しようとしたら、なぜか失敗する。

[FreeNAS]コマンド

インストール(9.3 stable 201602031011)


OSインストール用HDDは1本 (他のHDDはデータ用に)
rootパスワードを設定
インストール後、再起動 (このすきにDVDを外す)
再起動すると、なんだかよくわからない暗号みたいな画面が長く続く。
一度Ctrl-Cで強制終了したら、表示された?IPへアクセスしてWeb GUIへログイン出来たが、そもそもGUIがバグっていて、先に進めない。
再起動して、今度はさっきの暗号画面を我慢して待つ。
終わると、Web GUIへログイン出来た。正常。

Group、Userを追加。
Storage > HDD 3本でStriping設定。Volumeを作った。
Sharingメニュ > Windows > 設定メニュで先ほど作ったVolumeを指定。
CIFSでアクセス出来るようになった。

[Windows]プロダクトキー確認

OSインストール後は、コントロールパネル > システムでもキーが見れない。
プロダクトIDとプロダクトキーは違うもの。

http://www.atmarkit.co.jp/ait/articles/0907/10/news112.html

ここを参考に確認してみる。

末尾5ケタだけの確認ならコマンドプロンプトでできる

コマンドプロンプト > slmgr -dlv > ウィンドウ開く > プロダクトキーの一部、という箇所に記載


フルキー確認ならWindowsProductKey

http://www.rjlsoftware.com/software/utility/winproductkey/download.shtml

Compressed .ZIP File > winproductkey.zip をダウンロード(現時点v1.07)
  > 解凍 > winproductkey.exe を実行 > ウィンドウが起動し、Windows Product Key、に記載。

[Ubuntu]トラブルシューティング

apt update実行時のE: Sub-process returned an error code

Ubuntu 16.04 LTS
OSインストール直後、以下実行するとエラー。

$ sudo apt update
...
E: Problem executing scripts APT::Update::Post-Invoke-Success 'if /usr/bin/test -w /var/cache/app-info -a -e /usr/bin/appstreamcli; then appstreamcli refresh > /dev/null; fi'
E: Sub-process returned an error code



https://sekisuiseien.com/computer/10530/

こちらを参考にさせて頂き、以下を実行

# cd /tmp
# mkdir asfix
# cd asfix
# wget https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb
# wget https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
# sudo dpkg -i *.deb



再度実行してみると成功した。

# apt update

アップグレードできるパッケージが678個あります。xxxx

[python]コマンド

requests HTTPライブラリ

import requests
target_url = 'http://tech.nikkeibp.co.jp/'
res = requests.get(target_url)



# GET
requests.get('URL')
# POST
requests.post('URL')
# PUT
requests.put('URL')
# DELETE
requests.delete('URL')
# header の取得
requests.head('URL')





Jupyterインストール

Windowsキー > anacon・・ とタイプ > Anaconda Promptを起動
 > pip install msgpack
 > pip install jupyter



seleniumインストール

Windowsキー > anacon・・ とタイプ > Anaconda Promptを起動
 > pip install selenium


[GIT]運用

ローカル環境構築 ~ リモートへのpushまで

・githubへアカウントを作る。

・github上でレポジトリを作る。
 > 名前を決める。
 > publicにする(privateはコストかかるから)
 > initialize by READMEのチェックは外す

・ローカルPCでCygwinを起動。

・あるフォルダ以下で
git init
を実行。

・ローカルレポジトリにファイルをaddする。
git add a.txt

・ローカルレポジトリのファイルをcommitする。
git commit -m "hoge"

・登録したgithubレポジトリを、リモートレポジトリとしてoriginに登録する。
git remote add origin https://github.com/xxxx/yyyy.git
※ 最初にこれで登録したレポジトリから別のレポジトリにしようとしたら、
fatal: remote origin already exists.

・この場合は、
git remote rm origin
でoriginの登録を削除してから、再度
git remote add origin https://github.com/xxxx/yyyy.git
とすると成功する。

・そうしたらローカルのファイルをリモートにpushする。
git push origin master
そもそも、さっきのコマンドで登録せずに、以下で直接指定してもOK。でも面倒だよね。
git push https://github.com/xxxx/yyyy.git master




リモートブランチをローカルにクローン

・レポジトリも初期化してない環境で、リモートのレポジトリをコピーして作業始めるには以下コマンド。
git clone https://github.com/xxxx/yyyy.git
これでレポジトリがコピーされたので、作業していけばいい。



ブランチ方針

master
develop
hotfix

[PC]NAS

IODATA HDL-GT1.6の調子が悪い。
突然HDDを認識しなくなったので、HDD換装してみた。

内蔵HDD: SAMSUNG 400GB
新規HDD: 東芝 DT01ACA050 500GB

手順:
接続を見直したら、何とか正常起動したので、この間に、
4本中1本をぶっこ抜く。
 > それでもRAID5なので動作してる。

新規HDDは過去パーティションなどいじってたので、
別のLinux PCで、fdiskで以下を実施。
 > パーティションを全て削除
 > 新規にPrimaryパーティションを作る。(全容量含む)
 > System ID = 83のまま、wでsyncして終了。

新規HDDをNASへ挿入。
 > これでリビルドが始まる(だいたい10hくらいで完了かな?)

リビルド完了したら、これで1本の換装が完了になるので、同じ作業を残り3本分繰り返す。


現在、4本目のリビルド中だが、3本の状態で1.2TBと表示されてる。
つまり500GBの容量を全て使えておらず、元の400GB分だけリビルドされたみたい。
容量全て使うための手順はまだ調べてない。

[PC]X1マルチモニタ

マルチモニタをやってみる。

■使った機材

ホスト: Lenovo X1 carbon
OS: Windows 10 Pro 64bit
グラフィックアダプタ: VGA-USB3.0/HDMI
USBハブ: USB-HVM4155V


■構成

画面1: X1本体
画面2: X1のHDMI出力 > モニタ
画面3: X1のminiDP出力 > miniDP to HDMI変換アダプタ > モニタ
画面4: X1のUSB > USB-HVM4155V > VGA-USB3.0/HDMI > モニタ

VGA-USB3.0/HDMIがUSBハブ経由で動いたので、x1にあと1つUSBポートあるし、
5画面まではいけそうだ。

■VGA-USB3.0/HDMI Win10ドライバ
http://www.kuroutoshikou.com/product/multimedia/peripherals/vga-usb3_0_hdmi/
このページの「Win8.1ドライバ」からドライバ入手。(vga-usb3.0_win8.1driver.zip)

解凍して実行すると、既に最新バージョンが入ってる、と言われた。
おそらく過去にASUS MB16Bを接続して使ってたので、そのドライバが同じだったみたい。
X1をシャットダウンして、VGA-USB3.0/HDMI接続してからX1起動したら、無事動作。

[GIT]スタートアップ

スタートアップ

ここを参考にさせて頂いた。
https://employment.en-japan.com/engineerhub/entry/2017/01/31/110000#Git%E3%81%A8GitHub%E3%81%AE%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98

Cygwin64にgitをインストール > setup.exeからdevel/gitのみ追加。

# git config --global user.name "ユーザー名"
# git config --global user.email "メールアドレス"
# git config --list


# ssh-keygen -t rsa -b 4096 -C "hoge@gmail.com"
生成場所デフォルト
パスフレーズあり

/home/bob/.ssh/id_rsa
/home/bob/.ssh/id_rsa.pub
が生成された。


なかったので新規作成する。
# vi /home/bob/.ssh/config

Host github
HostName github.com
User git
IdentityFile ~/.ssh/id_rsa




次にgithubアカウントを登録。
https://github.com/
最後に登録emailへVerify依頼が来るので対応。

githubへログイン > 練習用のtestレポジトリを作成。
 > 右上のプロフィールメニュー > Settings
 > 左側のSSH and GPG keys
 > New SSH Key
 > 枠へ、先程生成した公開鍵(id_rsa.pub)をコピペして登録。

Windows上Cygwin64 > ssh github

The authenticity of host 'github.com (192.30.xxx.xxx)' can't be established.
RSA key fingerprint is SHA256:xxxxxxxxxxxxxxxxxx.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,192.30.xxx.xxx' (RSA) to the list of known hosts.
Enter passphrase for key '/home/bob/.ssh/id_rsa':
PTY allocation request failed on channel 0
Hi xxxxxx! You've successfully authenticated, but GitHub does not provide shell access.
Connection to github.com closed.



[Windows]コマンド

Zabbixエージェントインストール

https://qiita.com/k7tak29/items/3b3453db40672e632c11

Precomiled Agentのページからダウンロードできる。
https://www.zabbix.com/jp/download_agents

一番上をダウンロード。
Zabbix 3.4 3.4.6 Windows (All) i386,amd64

解凍する。
zabbix_agents_3.4.6.win\bin\win64
以下のexeの3つを、C:\直下にzabbix_agentフォルダを作り、そこへコピーする。

一方、binフォルダではなく、confフォルダ内のzabbix_agentd.win.confも、C:\zabbix_agent\以下へコピー。
その時、名前はzabbix_agentd.confにする。

Power Shellを開き、C:\zabbix_agentへいく。
PS C:\zabbix_agent> .\zabbix_agentd.exe -i -c zabbix_agentd.conf
zabbix_agentd.exe [423948]: ERROR: cannot connect to Service Manager: [0x00000005]
となった。

原因は、管理者として実行してないかららしい。
Windowsスタートメニューのコマンドプロンプトのその他メニューから、管理者として実行をえらび開く。

# zabbix_agentd.exe -i -c zabbix_agentd.conf

zabbix_agentd.exe [29588]: service [Zabbix Agent] installed successfully
zabbix_agentd.exe [29588]: event source [Zabbix Agent] installed successfully

今度は成功した。



EFIパーティションを削除

コントロールパネルの管理ツール、ディスクの管理からは、EFIパーティションが削除出来ない。
以下方法で削除できた。

Winキー > コマンドと検索 > コマンドプロンプトで右クリック > 管理者として実行
 > diskpartと実行
 > list disk
 > select disk 4 ※ ディスクの管理で見た番号
 > list partition ※ サイズ200MBの削除したいパーティションが1番として表示された。
 > select partition 1
 > delete partition
仮想ディスクサービスエラー:
force protected パラメーターを設定しないと、保護されたパーティションは削除できません
 > delete partition override
DiskPart は洗濯されたパーティションを正常に削除しました。

[PC]KURO-DACHI/CLONE/U3

x230のSSDが死んだ。
以前別のSSDに作っておいたWindows環境で稼働中。
また死ぬかもしれないので、複製SSDを作っておく。

KURO-DACHI/CLONE/U3の使い方

HDD1にマスターSSD、HDD2に複製先のSSDを装着。
電源をON > この時、左から2番目のPowerだけオレンジ色に点灯
 ※ LEDは左から、Link、Power、HDD1、HDD2の4つ。
Cloneボタンを長押し。
3秒ほど押すと、LEDが左から順番に点滅していく。 > これがコピー完了25%未満の状態
25%コピーが終わると、一番左のLinkだけ点灯しっぱなし。他3つは順番に点滅。

詳しい説明が以下にある。(今回参考にさせて頂きました)
https://pcmanabu.com/%e3%83%ad%e3%82%b8%e3%83%86%e3%83%83%e3%82%af-%e3%82%a8%e3%83%a9%e3%83%bc%e3%82%b9%e3%82%ad%e3%83%83%e3%83%97%e6%a9%9f%e8%83%bd%e6%90%ad%e8%bc%89%e3%83%87%e3%83%a5%e3%83%97%e3%83%aa%e3%82%b1%e3%83%bc/#i-5

クローン化が完了すると、4つのLEDが同時に点滅してた。
クローンされたSSDの方でWindows 10を起動してみたら、以下メッセージ。

問題が発生したため、PCを再起動する必要があります。
エラー情報を収集しています。自動的に再起動します。

80%完了

この問題と可能な解決方法の詳細については、https://www.xxxxxx
deを参照してください。

サポート担当者に連絡する場合は、この情報を伝えてください:
停止コード: MEMORY MANAGEMENT



そのまま放置したら自動的に再起動されて、Windows 10が起動した。
ログインもできた。

続けて元のマスターSSDでも起動出来て、ログインも出来た。
これでもし故障してもすぐにリカバリできる。

[Android]メモ

M01ファイル保存場所

スクリーンショット: /mnt/sdcard/Pictures/Screenshot
カメラ: /mnt/sdcard/DCIM/Camera
ダウンロード: /mnt/sdcard/Download
EasyVoiceRecorder: /mnt/sdcard/EasyVoiceRecorder

メモ帳: 


JDN-W09ファイル保存場所

Bluetooth経由: /mnt/ext_sdcard/bluetooth

[PC]SDカード故障(Transcend)

Transcend MicroSDXCカード64GB(Premium 300x)が故障した。
確かこれ。
https://www.amazon.co.jp/%E3%80%90Amazon-co-jp%E9%99%90%E5%AE%9A%E3%80%91Transcend-microSDXC%E3%82%AB%E3%83%BC%E3%83%89-Class10-UHS-I%E5%AF%BE%E5%BF%9C-TS64GUSDU1E/dp/B00CHHTOII

確か永久保証だったな。

[PC]BTイヤホン破損

LBT-HS400のイヤホンフックが割れた。
Amazonで類似品を購入。
尚、オリジナルのフックの装着部の輪っかの幅は7mmだった。

[Windows]ansible

ホスト: x1 Windows 10 64bit

参考にさせて頂きました。
https://qiita.com/t_nakayama0714/items/fe55ee56d6446f67113c


環境構築 ~ Ansible立上げ

Vgrantのインストール。以下からWindows 64bit版をダウンロード。
https://www.vagrantup.com/downloads.html

VirtualBoxをインストール。
https://www.virtualbox.org/wiki/Downloads
VirtualBox 5.2.12 platform packages
Windows hosts
ここからWindows版をダウンロード。

DOSプロンプトを開く。以下DOSプロンプト(もしくはTeraTerm)での操作は#で示す。
# c/user/work/vagrant へ移動
# mkdir vagrant
# cd vagrant
# vagrant init

生成されたvagrantfileを以下の通り編集。

Vagrant.configure(2) do |config|
config.vm.define "controller" do |node|
node.vm.box = "centos7.2"
node.vm.hostname = "controller"
node.vm.network :private_network, ip: "192.168.100.10"
node.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2210
end
config.vm.define "target" do |node|
node.vm.box = "centos7.2"
node.vm.hostname = "target"
node.vm.network :private_network, ip: "192.168.100.20"
node.vm.network :forwarded_port, id: "ssh", guest: 22, host: 2220
end
end



参照先では以下URLだったが存在しない。
# vagrant box add centos6.7 https://github.com/CommanderK5/packer-centos-template/releases/download/0.6.7/vagrant-centos-6.7.box

紹介先のURL
http://www.vagrantbox.es/
から選ぶ。
今回は以下のデータを使う事にする。

CentOS 7.2 x64 (Minimal, Puppet 4.2.3, Guest Additions 4.3.30)



# vagrant box add centos7.2 https://github.com/CommanderK5/packer-centos-template/releases/download/0.7.2/vagrant-centos-7.2.box

# vagrant up

Bringing machine 'controller' up with 'virtualbox' provider...
Bringing machine 'target' up with 'virtualbox' provider...
 :


現状のVMステータス確認。
# vagrant status

Current machine states:

controller running (virtualbox)
target running (virtualbox)




TeraTermを使って以下にログイン。確かにログイン出来た。

IP = localhost
port = 2210
user = root
Pass = vagrant



# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)



# uname -r

3.10.0-327.4.5.el7.x86_64



# yum -y install ansible

# ansible --version

ansible 2.5.2
 :
python version = 2.7.5 (default, Nov 20 2015, 02:00:19) xxxx



# ssh-keygen -t rsa

Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
Enter passphrase (empty for no passphrase): > パスフレーズ無しなので、そのままEnter
Enter same passphrase again: > 同上
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
xx:xx:xx:xx:xx:xx: root@controller
The key's randomart image is:



AnsibleコントローラからターゲットにSSHでログインできるようにするため、公開鍵を送り込む、だそうだ。
# ssh-copy-id root@192.168.100.20

The authenticity of host '192.168.100.20 (192.168.100.20)' can't be established.
ECDSA key fingerprint is xxxxxxxxxxxxxx
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.100.20's password: > vagrantを入力

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'root@192.168.100.20'"
and check to make sure that only the key(s) you wanted were added.



これで送れたのか?

次に疎通確認。
# ansible all -i inventory/hosts -m ping

192.168.100.20 | SUCCESS => {
"changed": false,
"ping": "pong"
}



上記では先のinventoryファイル中にある全て(all)のホストに対してpingモジュールで疎通確認をしてる、だって。
結果は、[ホスト] | [結果] >> [メッセージ] と表示されるそうだ。



playbookを試す

/root/ansible/group_vars/targets.yml を作る。

message: "Hello Ansible ! ! !"

fruits:
apples:
amount: 10
bananas:
amount: 20
oranges:
amount: 30




/root/ansible/test.yml を作る。

- hosts: targets
user: root
tasks:
- name: output message.
debug: msg="{{ message }}"

- name: output fruits
debug: msg="We want {{ item.value.amount }} {{ item.key }} !"
with_dict: "{{ fruits }}"




# ansible-playbook -i inventory/hosts test.yml


PLAY [targets] *********************************************************************************************************************************************************

TASK [Gathering Facts] *************************************************************************************************************************************************
ok: [192.168.100.20]

TASK [output message.] *************************************************************************************************************************************************
ok: [192.168.100.20] => {
"msg": "Hello Ansible ! ! !"
}

TASK [output fruits] ***************************************************************************************************************************************************
ok: [192.168.100.20] => (item=None) => {
"msg": "We want 10 apples !"
}
ok: [192.168.100.20] => (item=None) => {
"msg": "We want 30 oranges !"
}
ok: [192.168.100.20] => (item=None) => {
"msg": "We want 20 bananas !"
}

PLAY RECAP *************************************************************************************************************************************************************
192.168.100.20 : ok=3 changed=0 unreachable=0 failed=0

[Ubuntu]コマンド

バージョン確認

# cat /etc/os-release


rootパスワード設定

VMware上の簡易インストールだと、rootパスワード設定はされてないようで、
以下で設定出来る。

# sudo passwd root
[sudo] password for <user名>  > 現ユーザのパスワードを入力
Enter new UNIX password:     > rootパスワード設定
Retype new UNIX password:    > rootパスワード再入力
passwd: password updated successfully

# su
これでrootになれる。


E: ロック /var/lib/dpkg/lock が取得できませんでした

# apt-get install apt-transport-https ca-certificates
E: ロック /var/lib/dpkg/lock が取得できませんでした - open (11: リソースが一時的に利用できません)
E: 管理用ディレクトリ (/var/lib/dpkg/) をロックできません。これを使う別のプロセスが動いていませんか?

# rm /var/lib/apt/lists/lock
# rm /var/lib/dpkg/lock

# apt-get install apt-transport-https ca-certificates
E: dpkg は中断されました。問題を修正するには 'dpkg --configure -a' を手動で実行する必要があります。

# dpkg --configure -a
 :
python3-louis (2.6.4-2ubuntu0.1) を設定しています ...
dpkg: 復旧不可能な致命的なエラーです。中止します:
更新した `python3-louis' のステータスをインストールできません: そのようなファイルやディレクトリはありません

なんかエラーで終わったけど、再度やってみたら成功したっぽい。
# apt-get install apt-transport-https ca-certificates



dockerインストール

# apt-get install apt-transport-https ca-certificates
 ※ 上記の対処法でインストール

# apt-key adv \
--keyserver hkp://ha.pool.sks-keyservers.net:80 \
--recv-keys 58118E89F3A912897C070ADBF76221572C52609D


16.04用のコマンド。
# echo "deb https://apt.dockerproject.org/repo ubuntu-xenial main" | sudo tee /etc/apt/sources.list.d/docker.list

# apt-get install linux-image-extra-$(uname -r) linux-image-extra-virtual

# apt-get update
 ※ これやらないと、次のdocker-engineインストールで、無いって言われる。

# apt-get install docker-engine

# service docker start

# docker run hello-world

Unable to find image 'hello-world:latest' locally
latest: Pulling from library/hello-world
 :
Hello from Docker!
This message shows that your installation appears to be working correctly.
 :
To try something more ambitious, you can run an Ubuntu container with:
$ docker run -it ubuntu bash
 :



dockerのソケットファイルへのアクセスは、rootかdocker groupである必要があるとのこと。
# usermod -aG docker bob

# systemctl enable docker

アップデートはこうやるらしい。
# apt-get update
# apt-get upgrade docker-engine



E: Problem executing scripts APT::Update::Post-Invoke-Success

Host : Windows 10 64bit
VM host: VMware Player 7.1.2 build-2780323
VM-Machine : Ubuntu 16.04LTS

# apt-get update
これをやると、上記エラーが出る。

調べると、バグらしい。
https://sekisuiseien.com/computer/10530/
https://bugs.launchpad.net/ubuntu/+source/appstream/+bug/1579712/comments/24

以下やってから再度updateしたら、確かにエラー消えた。

cd /tmp && mkdir asfix
cd asfix
wget https://launchpad.net/ubuntu/+archive/primary/+files/appstream_0.9.4-1ubuntu1_amd64.deb
wget https://launchpad.net/ubuntu/+archive/primary/+files/libappstream3_0.9.4-1ubuntu1_amd64.deb
sudo dpkg -i *.deb





OpenStack Ocataインストール

Server-worldさんの通りに進む。
https://www.server-world.info/query?os=Ubuntu_16.04&p=openstack_ocata&f=1



ZoneMinderインストール(Ubuntu 16.04 LTS)断念!!

https://wiki.zoneminder.com/Ubuntu_Server_16.04_64-bit_with_Zoneminder_1.30.4_the_easy_way

# apt update
# apt upgrade
# apt dist-upgrade
# cd /etc/mysql/
# mv my.cnf my.cnf.org
# cp -iprL /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf
# vi my.cnf

[mysqld]
sql_mode = NO_ENGINE_SUBSTITUTION > 追加



# systemctl restart mysql
# mysql_secure_installation

Remove anonymous users? : y
Disallow root login remotely? : y
Remove test database and access to it? : y
Reload priviledge tables now? : y



# add-apt-repository ppa:iconnor/zoneminder
# apt update
# apt install zoneminder

unreadahead (0.100.0-19)のトリガを処理しています
処理中にエラーが発生しました:
zoneminder
E: Sub-process /usr/bin/dpkg returned an error code (1)



https://forums.zoneminder.com/viewtopic.php?t=26494
ここで同じ問題のコメントを発見。
mysqlコンソールでuninstall plugin validate_password;をやれと言ってる。

# mysql -u root -p
 > 先ほどmysql_secure_installation実行時に設定したパスワードでログイン。
mysql> uninstall plugin validate_password;
mysql> exit


再度インストールしてみる。
# apt install zoneminder

dpkg: パッケージzoneminderの処理中にエラーが発生しました (--configure):
 サブプロセス インストール済みのpost-installation スクリプト はエラー終了ステータス255を返しました
処理中にエラーが発生しました:
zoneminder
E: Sub-process /usr/bin/dpkg returned an error code (1)



またエラーだけど、このインストール手順やる前に、既にzoneminderインストールは別にやってたので、
既に入ってる、というメッセージが出てる。単にインストール済みだからエラーなだけかな?
先に進んでみる。

# adduser www-data video
# a2enmod cgi
# a2enconf zoneminder
# a2enmod rewrite
# chown -R www-data:www-data /usr/share/zoneminder/
# systemctl enable zoneminder
# service zoneminder start

ここでFAILとなる。
なんかzoneminderが正常にインストール出来てないように思える。

# apt-get install zoneminder
以下はどこかでコピーしたものだけど、こんな感じのエラーが出る。
Access denied for user 'zmuser'@'localhost' (using password: YES)

そもそもmysqlでzmuserなど設定してないが、以下で宣言されている。
# vi /etc/zm/zm.conf

ZM_DB_NAME=zm
ZM_DB_USER=zmuser
ZM_DB_PASS=zmpass



# mysql -u zmuser -p
これでzmpassを入力してもログイン出来ない。
って事はzmuserにパスワードが正しく設定されてない事が原因か?

# mysql -u root -p
まずはrootでログイン

mysql> set password for zmuser@"localhost"=password('zmpass');
これでパスワード設定出来た。

再度インストールしてみる。
# apt-get install zoneminder

zoneminder (1.30.4-xenial1) を設定しています ...
Use of uninitialized value SConfig{"ZM_DIR_EVENTS"} in pattern match (m//) at /usr/bin/zmupdate.pl line 81.
Use of uninitialized value in concatenation (.) or string at /usr/bin/zmupdate.pl line 81.
Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/ZoneMinder/Logger.pm line 154.
Use of uninitialized value in concatenation (.) or string at /usr/share/perl5/ZoneMinder/Logger.pm line 199.
Please give a valid option
Usage:
zmupdate.pl -c, --check | -f, --freshen | -v, --version= [-u -p]

Options:
 :
dpkg: パッケージ zoneminder の処理中にエラーが発生しました (--configure):
サブプロセス インストール済みの post-installationスクリプト はエラー終了ステータス 255を返しました
処理中にエラーが発生しました:
zoneminder
E: Sub-process /usr/bin/dpkg returned an error code (1)





ZoneMinderインストール(Ubuntu 18.04 LTS)

https://bkjaya.wordpress.com/2018/05/22/how-to-install-zoneminder-v1-31-44-on-ubuntu-18-04-lts/

Ubuntu 18.04 ja desktop amd64をnormalパッケージでクリーンインストール。
nmtuiで固定IPを設定し、リンクアップ成功

# sudo passwd root
rootパスワード設定完了。

# su
rootへ

# add-apt-repository ppa:iconnor/zoneminder-master
# apt-get update
# apt install zoneminder

# cd /etc/mysql/
# mv my.cnf my.cnf.org
# cp -iprL /etc/mysql/mysql.conf.d/mysqld.cnf /etc/mysql/my.cnf
# vi my.cnf

32行目に以下追加
user = mysql
sql_mode = NO_ENGINE_SUBSTITUTION > この行を追加



# systemctl restart mysql
# mysql -uroot -p < /usr/share/zoneminder/db/zm_create.sql
Enter password: > rootパスワード入力
# mysql -uroot -p -e "grant all on zm.* to 'zmuser'@localhost identified by 'zmpass';"
Enter password: > rootパスワード入力

# mysqladmin -uroot -p reload
# chmod 740 /etc/zm/zm.conf
# chown root:www-data /etc/zm/zm.conf
# adduser www-data video
# a2enmod cgi
# a2enconf zoneminder
# a2enmod rewrite
# chown -R www-data:www-data /usr/share/zoneminder/
# systemctl enable zoneminder
# systemctl start zoneminder

# vi /etc/php/7.2/apache2/php.ini

939行目のdate.timezoneを設定する。
; http://php.net/date.timezone
date.timezone = Asia/Tokyo > コメントアウトを外し、Asia/Tokyoを記載



ブログの説明に従い、
Download the latest cambozola and extract to the Downloads directory
となっている「cambozola」のリンク先:
http://www.andywilcock.com/code/cambozola/cambozola-latest.zip
へUbuntuからアクセスして、ダウンロードする。

それを、以下へ移動。
# mv /home/bob/Downloads/cambozola-latest.zip /usr/share/zoneminder/www/
# unzip cambozola-latest.zip
# cp cambozola-0.936/dist/cambozola.jar /usr/share/zoneminder/www/

ブログではこのコマンド無いが、apache2をまだ起動してないと思うため。
# systemctl start apache2

ここでUbuntu上のブラウザからlocalhostへアクセスすると、
Apache2 Ubuntu Default Page
が表示される。
しかし、ブログで説明されてる localhost/zm/は開けない。

もしやブログの記載と違うtimezoneの設定??
# vi /etc/php/7.2/apache2/php.ini
date.timezone = Asia/Colombo > 関係ないと思うがブログの通りに修正。

# systemctl restart zoneminder
これでもlocalhost/zmは開けない。

いろいろ調べた結果、これやった。
# systemctl restart apache2
この後ブラウザでlocalhost/zm/ へアクセスしたら、ZM-Consoleが開けた。
timezoneをAsia/Tokyoに戻しても開けたので、timezoneは関係なく、
ZoneMinderを再起動してからApache2を再起動したかったのが原因かな。

[CentOS]コマンド3

NASをCIFSマウントする

CentOS = 7.4.1708
NAS = TS-HTGL836

NAS > 管理画面へログイン > 共有フォルダ管理 > 共有フォルダの追加
  > 共有フォルダ名=share、後はdefault(アクセス制限機能=使用しない)

CentOSから以下コマンド。確かにマウント出来た。
# mount -t cifs -o user=admin //192.168.xxx.yyy/share /mnt/TS
# df
//192.168.xxx.yyy/share xxxx xxx xxxx /mnt/TS



NASへのバックアップをバッチ化

ホスト = CentOS 7.4.1708
NAS = TeraStation (あらかじめ、アクセス制限OFFにしたshareフォルダを作っておく)

# hogeフォルダ内をtar.gzに固める。ファイル名はdateコマンドから自動的に日付を付与。
tar zcvf /root/backup_`/bin/date +%y%m%d%H%M`.tar.gz hoge/*

# NASのshareフォルダへ、backup_*.tar.gzで、複数ファイルがあってもコピーする。
/usr/bin/smbclient //192.168.xxx.yyy/share password -U admin -c "prompt; mput backup_*.tar.gz"



# hogeフォルダ内のファイルも含めてNASのshareフォルダへコピーする。
/usr/bin/smbclient //192.168.xxx.yyy/share password -U admin -c "prompt; recurse; mput hoge"
 ※ ただし、/home/samba/os とファイルサイズが大きい?フォルダを選んだら、実行は出来たがコピーされない。なぜ?





Openstack PackstackによるOpenStack Queensインストール

Host : Windows 10 64bit
VM host : CentOS 7.xx




VDI構築

https://www.agilegroup.co.jp/technote/kvm-server.html#jump5

# yum grouplist
# yum -y groupinstall "GNOME Desktop"
# yum -y groupinstall "Virtualization Host"
# yum -y install bridge-utils




TensorFlow MNIST for Beginners試す

https://qiita.com/iamdaisuke/items/43cd583547e709e907cc

これに沿ってやってみる。

まずはさっそくAnacondaインストールのページへ行けと言われる。
# systemctl stop firewalld
# systemctl disable firewalld
# setenforce 0
# vi /etc/sysconfig/selinux

//SELINUX=enforcing
SELINUX=disabled



# yum -y install git
# git clone https://github.com/yyuu/pyenv.git ~/.pyenv
# echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc
# echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc
# echo 'eval "$(pyenv init -)"' >> ~/.bashrc
# source ~/.bashrc

anacondaのバージョン確認
# pyenv install -l | grep anaconda
最新版インストール
# yum -y install bzip2
# pyenv install anaconda3-5.2.0
# pyenv rehash
anacondaをpythonのデフォルトに設定
# pyenv global anaconda3-4.0.0
# echo 'export PATH="$PYENV_ROOT/versions/anaconda3-4.0.0/bin/:$PATH"' >> ~/.bashrc
# source ~/.bashrc
# conda update conda

TensorFlow用仮想環境準備
# conda create -n tensorflow python=3.5
# source activate tensorflow
ここでプロンプトに(tensorflow)がついた。

TensorFlowインストール
(tensorflow)# export TF_BINARY_URL=https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.9.0rc0-cp35-cp35m-linux_x86_64.whl
(tensorflow)# easy_install --upgrade six
(tensorflow)# pip install --upgrade $TF_BINARY_URL

お前のpipは10.0.1で、18.0がAvairableだから、このコマンドでupgradeしろって。
(tensorflow)# pip install --upgrade pip

再度やるのかな?
(tensorflow)# pip install --upgrade $TF_BINARY_URL

テストドライブ
(tensorflow)# python
...
>>> import tensorflow as tf
>>> hello = tf.constant('Hello, TensorFlow!')
>>> sess = tf.Session()
>>> print(sess.run(hello))
b'Hello, TensorFlow!'
>>> a = tf.constant(10)
>>> b = tf.constant(32)
>>> print(sess.run(a + b))
42
>>> Ctrl-D > これで終了

(tensorflow)# cd /usr/local/src/
(tensorflow)# mkdir ./tensorflow
(tensorflow)# git clone --recurse-submodules https://github.com/tensorflow/tensorflow ./tensorflow
(tensorflow)# cd ./tensorflow/
(tensorflow)# vi ./tensorflow/examples/tutorials/mnist/fully_connected_feed.py

# from tensorflow.examples.tutorials.mnist import input_data > コメントアウト
# from tensorflow.examples.tutorials.mnist import mnist > コメントアウト
import input_data > 追加
import mnist > 追加



(tensorflow)# source activate tensorflow
(tensorflow)# python ./tensorflow/examples/tutorials/mnist/fully_connected_feed.py

File "./tensorflow/examples/tutorials/mnist/fully_connected_feed.py", line 281, in
tf.app.run(main=main, argv=[sys.argv[0]] + unparsed)
TypeError: run() got an unexpected keyword argument 'argv'



何やらエラーになった。
ぐぐると、以下の別のcloneを使って解決。
https://qiita.com/Hiroki11x/items/2bb0807dcd45177ae060

$ git clone -b r0.11 https://github.com/tensorflow/tensorflow.git
$ cd tensorflow/
$ python tensorflow/examples/tutorials/mnist/fully_connected_feed.py
以下はコピーしただけだが、確かに以下のような出力が出た。

Successfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Extracting data/train-images-idx3-ubyte.gz
Successfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Extracting data/train-labels-idx1-ubyte.gz
Successfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Extracting data/t10k-images-idx3-ubyte.gz
Successfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting data/t10k-labels-idx1-ubyte.gz
Step 0: loss = 2.30 (0.016 sec)
Step 100: loss = 2.17 (0.011 sec)
Step 200: loss = 1.91 (0.011 sec)
Step 300: loss = 1.65 (0.011 sec)
Step 400: loss = 1.36 (0.013 sec)
Step 500: loss = 0.91 (0.012 sec)
Step 600: loss = 0.83 (0.012 sec)
Step 700: loss = 0.74 (0.012 sec)
Step 800: loss = 0.62 (0.013 sec)
Step 900: loss = 0.60 (0.012 sec)
Training Data Eval:
Num examples: 55000 Num correct: 47143 Precision @ 1: 0.8571
Validation Data Eval:
Num examples: 5000 Num correct: 4308 Precision @ 1: 0.8616
Test Data Eval:
Num examples: 10000 Num correct: 8595 Precision @ 1: 0.8595
Step 1000: loss = 0.39 (0.013 sec)
Step 1100: loss = 0.52 (0.100 sec)
Step 1200: loss = 0.44 (0.012 sec)
Step 1300: loss = 0.40 (0.013 sec)
Step 1400: loss = 0.52 (0.012 sec)
Step 1500: loss = 0.34 (0.012 sec)
Step 1600: loss = 0.40 (0.011 sec)
Step 1700: loss = 0.30 (0.012 sec)
Step 1800: loss = 0.37 (0.012 sec)
Step 1900: loss = 0.27 (0.012 sec)
Training Data Eval:
Num examples: 55000 Num correct: 49315 Precision @ 1: 0.8966
Validation Data Eval:
Num examples: 5000 Num correct: 4509 Precision @ 1: 0.9018
Test Data Eval:
Num examples: 10000 Num correct: 8949 Precision @ 1: 0.8949





sg3_utilsインストール

http://www.linuxfromscratch.org/blfs/view/svn/general/sg3_utils.html

# curl -OL http://sg.danny.cz/sg/p/sg3_utils-1.42.tar.xz
# tar Jxvf sg3_utils-1.42.tar.xz
# cd sg3_utils-1.42/
# ./configure --prefix=/usr --disable-static && make
# make install

READ LOG EXTコマンドを打ちたくて、以下実行したら、エラー。
# sg_sat_phy_event
sg_sat_phy_event: symbol lookup error: sg_sat_phy_event: undefined symbol: pr2serr

[Windows]FastCopyバッチ化

FastCopy > ジョブ管理 > ジョブ追加/更新/削除 > これでジョブに名前を付ける。

FastCopy.ini の titleの処に、上記で設定したジョブ名がある。これを後で使う。

バッチファイルを作る。ジョブ名は/jobの後に書く。

taskkill /im FastCopy.exe /F
start "" /b "C:\user\app\FastCopy211_x64\FastCopy.exe" /job="user__x1_to_z68 " /force_close



タスクを作成
 コントロールパネル > 管理ツール > タスクスケジューラ
  > タスクスケジューラライブラリ > 右クリック
  > 基本タスクの作成
  > 名前 = xxx > 次へ
  > トリガー = 毎日、時間設定 > 次へ
  > 操作 = プログラムの開始 > 先ほど作成したバッチファイルを参照 > 次へ
  > 完了

[Quartus]HPS(atlas-soc)

環境

ホストPC: x230 win10 home 64bit
Quartus: 17.1.0 build 590
評価ボード: atlas-soc


atlas-soc用にCyclone Vデバイスデータをダウンロード

QuartusへCyclone Vデバイスをインストール。


Quartusプロジェクト作成


Platform DesignerでHPSシステム作る

Cyclone Vデバイスをインストールしてないと、以下が選べない。
Platform Designer > IP Catalog > Processor and peripheral > Hard Processor System
 > Arria V/Cyclone V Processor System

[Quartus]NiosII(DE0-nano)

環境

評価ボード: DE0-nano
ホストPC: x230 Windows 10 Home 64bit
Quartus Prime: 17.1.0 Build 590 10/25/2017


qsfファイルでピン配置設定

set_global_assignment -name TOP_LEVEL_ENTITY led_top
set_global_assignment -name FAMILY "Cyclone IV E"
set_global_assignment -name DEVICE EP4CE22F17C6
set_global_assignment -name MIN_CORE_JUNCTION_TEMP 0
set_global_assignment -name MAX_CORE_JUNCTION_TEMP 85

#============================================================
# CLOCK
#============================================================
set_location_assignment PIN_R8 -to clk
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to clk

#============================================================
# LED
#============================================================
set_location_assignment PIN_A15 -to led_out[0]
set_location_assignment PIN_A13 -to led_out[1]
set_location_assignment PIN_B13 -to led_out[2]
set_location_assignment PIN_A11 -to led_out[3]
set_location_assignment PIN_D1 -to led_out[4]
set_location_assignment PIN_F3 -to led_out[5]
set_location_assignment PIN_B1 -to led_out[6]
set_location_assignment PIN_L3 -to led_out[7]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to led_out[0]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to led_out[1]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to led_out[2]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to led_out[3]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to led_out[4]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to led_out[5]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to led_out[6]
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to led_out[7]

#============================================================
# KEY
#============================================================
# KEY1
set_location_assignment PIN_E1 -to reset
set_instance_assignment -name IO_STANDARD "3.3-V LVTTL" -to reset




sdcでタイミング制約

create_clock -period 20 [get_ports clk]
derive_pll_clocks





回路トップを作る

LED 4bitは、HWカウンタ出力。(ハードウェア動作確認用)
LED 3bitは、NiosからのPIO出力。(ソフトウェア動作確認用)
LED 1bitは、reset入力をそのままスルー出力。

module led_top (
clk
, reset
, led_out
);

input clk ;
input reset ;
output [7:0] led_out ;

reg [31:0] led_reg ;
wire [31:0] pio_out ;

always @ (posedge clk) begin
if (~reset)
led_reg <= 0 ;
else
led_reg <= led_reg + 1 ;
end

assign led_out[0] = led_reg[24] ;
assign led_out[1] = led_reg[25] ;
assign led_out[2] = led_reg[26] ;
assign led_out[3] = led_reg[27] ;

assign led_out[4] = pio_out[0] ;
assign led_out[5] = pio_out[10] ;
assign led_out[6] = pio_out[18] ;
assign led_out[7] = reset ;

nios nios1 (
.clk_clk (clk )
, .pio_out_export (pio_out )
, .reset_reset_n (reset )
);

endmodule





Quartusプロジェクト作成

簡単なので省略。


Platform DesignerでNiosIIシステムを作る

Platform DesignerでNios /e入りのシステムを作る。

Quartus > Tools > Platform Designer
 > IP Catalogから呼び出すIPは、Nios、On chip memory(1port)(インスタンス名ram)、PIO。

 > clk_0クロックソース > 「Clock Input」、「Reset Input」共に、Export設定。入力端子名をつける。

 > Niosプロパティ > Mainタブ > /e選択
 > Niosプロパティ > Vectorsタブ > Reset vector memory = ram.s1
 > Niosプロパティ > Vectorsタブ > Exception vector memory = ram.s1

 > On chip memoryプロパティ > RAM(Writable)、1port設定(Dualにチェック無)、Total size=32768、
 > On chip memoryプロパティ > Initialize memory contentsにチェック、
 > On chip memoryプロパティ > Use created initialization fileで、後述で生成する、.hexファイルパスを指定。

 > pioプロパティ > Width=32、Direction=output

Platform Designer > System > Assign base addresses
Platform Designer > File > Save
Platform Designer > Generate > Generate HDL > Verilogを指定してGenerateボタン

これでNios含むシステムのVerilogソースが生成された。



Quartusで必要ファイル登録

Quartus > Assignments > Settings > 以下ファイルを登録。

nios/synthesis/nios.qip  > Platform Designで生成したNiosシステムVerilog
led_top.sdc  > 上で作成したsdc
led_top.qsf  > 上で作成したqsf
led_top.v  > 上で作成した回路トップ





Niosプログラムを作る

Platform Designerで自動アサインされたPIOのアドレスを以下defineで設定。
あとは単なるLEDチカチカのプログラム。

#define GPIO *(( volatile unsigned int *)0x00011010)

void wait(int n)
{
int i, j;
for(long i=0; i for(long j=0; j<2000; j++);
}

int main()
{

while(1)
{
GPIO = 0xffffffff ;
wait(500);
GPIO = 0x00000000 ;
wait(500);
}


return 0;
}



Niosプログラムをビルド

Quartus > Tools > NiosII Software build Tools for Eclipse (以降NiosII SBT)

新規プロジェクトを作る。
NiosII SBT > File > New > NiosII Application and BSP from templete
 > SOPC informatoin file nameにPlatform Designerで自動生成されたファイルを指定
 > Project nameをてきとーに決める。(今回hoge)
 > Use default locatoinにチェック
 > Templetes = Blank Project
これでプロジェクトを生成する。(ウィンドウ左に、hoge、hoge_bspができる)

上で作ったプログラムを、hogeフォルダへコピー。

NiosII SBT > 左側のhogeプロジェクト > 右クリック > Build Project

エラーが無ければ、 \Software\hoge\hoge.elfが生成される。

エラー出る場合は、おそらくBSPを更新しろってやつ。
その場合は、
hoge_bsp > 右クリック > NiosII > Generate BSP で更新する。
それでさらにエラー出た場合は、
hoge > 右クリック > Clean Project
hoge_bsp > 右クリック > Clean Project
をやってから再度Generate BSP。
さらに、それでもうまくいかない場合は、hogeプロジェクトを別名で新規に作ればうまく行くと思う。


elfからメモリ初期化ファイル生成

NiosII SBT > 左側のhogeプロジェクトを展開 > hoge.elf > 右クリック > Make Target
 > Build > mem_init_targetを選択 > Build

これで
\software/hoge2/mem_init/nios_iram.hex
が生成される。



hexをメモリ初期値に登録

Platform Designer > On chip memoryプロパティ
 > Use created initialization fileで、さっき生成した.hexファイルパスを指定。


Quartusでコンパイル

ようやく以下回路が揃った。

FPGAトップ
Niosシステム + メモリ初期化ファイル

これでコンパイルして、.sofを作る。



評価ボードへダウンロード

Quartus > Tools > Programmer
 > Hardware SetupでUSB Blasterが選択されている事。
 > Mode = JTAG
 > output_files/led_top.sofが選択されている事。
 > 左側STARTボタン

右上プログレスバーがSuccessfulとなれば、成功。
評価ボード上では、NiosIIでLEDチカチカしたものと、HWカウンタでチカチカした両方が見えているはず。

[PC]HDL-GT HDD換装

参考にさせて頂いた。
https://plaza.rakuten.co.jp/comapple/diary/200905040000/


■HDL-GT 内蔵 > 2TB(500GBx4) RAID(1+0)へ

1.新HDD 1台を旧RAIDシステムに組み込み、構築しておく。

2.構築された新HDDをスロット1へ投入。
  残りの新HDD3台を空いてるスロットへ挿入。
  RAID崩壊モードで起動 > ボリューム操作 > メンテナンス実行。

3.メンテナンス完了後、完全な初期化をする。

4.初期化完了後、RAID5からRAID0へ再構築。
  この時点で構築完了時の容量は約1.75TBになる。

5.再構築完了後、スロット1のHDDを外し、スロット2のHDDをスロット1へ挿入。
  それでRAID崩壊モードで起動。

6.自動で再設定が完了したら残りのHDDを空いてるSLOTへ挿入。
  おそらく挿入場所はどこでも良いみたい。

7.メンテナンス実行 > 完了後にRAID0再構築。
  この時点で構築完了時の容量は約2TBになる。

8.RAID1+0再構築。
  この時点で構築完了時の容量は約1TBになる。

[docker]コマンド

Ubuntuイメージをインストール

# docker pull ubuntu

Using default tag: latest
Warning: failed to get default registry endpoint from daemon (Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?). Using system default: https://index.docker.io/v1/
Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running?



dockerサービスが起動されてない事が原因でした。

# systemctl start docker.service
# systemctl enable docker.service

Created symlink from /etc/systemd/system/multi-user.target.wants/docker.service to /usr/lib/systemd/system/docker.service.




# docker pull ubuntu

Using default tag: latest
latest: Pulling from library/ubuntu
d3938036b19c: Pull complete
a9b30c108bda: Pull complete
67de21feec18: Pull complete
817da545be2b: Pull complete
d967c497ce23: Pull complete
Digest: sha256:9ee3b83bcaa38xxxxxxxxxxxx
Status: Downloaded newer image for ubuntu:latest





コンテナを作成する

# docker run -it ubuntu

root@d182c8xxxx:/#

プロンプトが変わった。これでUbuntuが起動したらしい。

root@d182c8xxxx:/# exit


exitで元のホストに戻る。


次はこのコマンド。
# docker-machine ip default

bash: docker-machine: command not found...





コンテナから一時的に出る

Ctrl + p -> (Ctrl押したまま) q

# docker ps




docker導入(別の記事のコマンドメモ)

rpm --import http://dl.fedoraproject.org/pub/epel/RPM-GPG-KEY-EPEL-7
yum -y install http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install docker-io
yum -y install docker-compose

カレンダー
08 | 2018/09 | 10
- - - - - - 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 - - - - - -
累積訪問者
現在の訪問者
現在の閲覧者数:
最新記事
最新トラックバック
最新コメント
月別アーカイブ
カテゴリ
プロフィール

bobgosso

Author:bobgosso
FPGAのブログへようこそ!

検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QRコード