Quantcast
Viewing all 1108 articles
Browse latest View live

SH-04Hで急速充電ができない原因

ジャンクのSH-04Hを約6千円で購入

Image may be NSFW.
Clik here to view.

安さの理由は左上の割れと、液晶の右端中央付近の色変化だけだと思っていました。

Image may be NSFW.
Clik here to view.

で・・・充電をしてみると、どうやっても低速充電表示となり、急速充電になりません。

よくわからないなぁ・・・と思いつつ、パソコンからデータ転送するか、と繋いでみると、パソコン側でデバイス認識してくれません。

microUSB端子を掃除して、ケーブルとケーブルの差し方をいろいろ試してみるとパソコンで認識できる状態に持って行くことに成功。

そして、その状態のまま先ほどは低速充電となった電源に繋いでみると、急速充電となることを確認出来ました。

SH-04Hの急速充電はQuick Chargeという仕組みを使って行われていますが、これはmicroUSB端子の「Vbus」「GND」と「D+」「D-」の4つの端子を使い5Vで0.5Aを超える充電や9Vでの充電を行うようになっています。

それに対して低速充電と表示される通常USB充電は「Vbus」と「GND」を使い5V 0.5A以内で充電を行います。

つまり、SH-04Hで急速充電できず、低速充電となるという状況は、microUSBの「D+」端子と「D-」端子の接触が悪く、きちんと認識されていない状況にある、ということになります。

miroUSB端子は小さく、金属端子部分も奥まった場所にあるため確認が難しいため、対処が難しいために、通常は本体交換という対処になってしまうんでしょうね。

Image may be NSFW.
Clik here to view.

ESX 6.0でストレージアクセス関連の調査を行った際に使ったesxcliコマンドメモ

esxcli storage core device list

現在認識してるストレージについてのいろんな情報

[root@esxi10:~] esxcli storage core device list
eui.9fa59185cb34c2ab6c9ce9003faf076a
   Display Name: Nimble iSCSI Disk (eui.9fa59185cb34c2ab6c9ce9003faf076a)
   Has Settable Display Name: true
   Size: 5242880
   Device Type: Direct-Access
   Multipath Plugin: NMP
   Devfs Path: /vmfs/devices/disks/eui.9fa59185cb34c2ab6c9ce9003faf076a
   Vendor: Nimble
   Model: Server
   Revision: 1.0
   SCSI Level: 5
   Is Pseudo: false
   Status: on
   Is RDM Capable: true
   Is Local: false
   Is Removable: false
   Is SSD: false
   Is VVOL PE: false
   Is Offline: false
   Is Perennially Reserved: false
   Queue Full Sample Size: 0
   Queue Full Threshold: 0
   Thin Provisioning Status: yes
   Attached Filters:
   VAAI Status: supported
   Other UIDs: vml.01000000003966613539313835636233346332616236633963653930303366616630373661536572766572
   Is Shared Clusterwide: true
   Is Local SAS Device: false
   Is SAS: false
   Is USB: false
   Is Boot USB Device: false
   Is Boot Device: false
   Device Max Queue Depth: 128
   No of outstanding IOs with competing worlds: 32
   Drive Type: unknown
   RAID Level: unknown
   Number of Physical Drives: unknown
   Protection Enabled: false
   PI Activated: false
   PI Type: 0
   PI Protection Mask: NO PROTECTION
   Supported Guard Types: NO GUARD SUPPORT
   DIX Enabled: false
   DIX Guard Type: NO GUARD SUPPORT
   Emulated DIX/DIF Enabled: false

[root@esxi10:~]

個別で見る場合は「esxcli storage core device list -d ストレージ指定」

[root@esxi10:~] esxcli storage core device list -d eui.9fa59185cb34c2ab6c9ce9003faf076a
eui.9fa59185cb34c2ab6c9ce9003faf076a
   Display Name: Nimble iSCSI Disk (eui.9fa59185cb34c2ab6c9ce9003faf076a)
   Has Settable Display Name: true
   Size: 5242880
   Device Type: Direct-Access
   Multipath Plugin: NMP
   Devfs Path: /vmfs/devices/disks/eui.9fa59185cb34c2ab6c9ce9003faf076a
   Vendor: Nimble
   Model: Server
   Revision: 1.0
   SCSI Level: 5
   Is Pseudo: false
   Status: on
   Is RDM Capable: true
   Is Local: false
   Is Removable: false
   Is SSD: false
   Is VVOL PE: false
   Is Offline: false
   Is Perennially Reserved: false
   Queue Full Sample Size: 0
   Queue Full Threshold: 0
   Thin Provisioning Status: yes
   Attached Filters:
   VAAI Status: supported
   Other UIDs: vml.01000000003966613539313835636233346332616236633963653930303366616630373661536572766572
   Is Shared Clusterwide: true
   Is Local SAS Device: false
   Is SAS: false
   Is USB: false
   Is Boot USB Device: false
   Is Boot Device: false
   Device Max Queue Depth: 128
   No of outstanding IOs with competing worlds: 32
   Drive Type: unknown
   RAID Level: unknown
   Number of Physical Drives: unknown
   Protection Enabled: false
   PI Activated: false
   PI Type: 0
   PI Protection Mask: NO PROTECTION
   Supported Guard Types: NO GUARD SUPPORT
   DIX Enabled: false
   DIX Guard Type: NO GUARD SUPPORT
   Emulated DIX/DIF Enabled: false
[root@esxi10:~]

ESXiで認識しているファイルシステム一覧

esxcli storage filesystem list

[root@esxi10:~] esxcli storage  filesystem list
Mount Point                                           Volume Name                   UUID                                    Mounted  Type             Size           Free
----------------------------------------------------  ----------------------------  --------------------------------------  -------  ------  -------------  -------------
/vmfs/volumes/5bbc594e-3e173ecc-b3e7-90b11c536183     esxstore-vsphere10            5bbc594e-3e173ecc-b3e7-90b11c536183        true  VMFS-5  5497289703424  2186855579648
/vmfs/volumes/b49358e5-23dc34a5-1c9f-5af965bf7cb0                                   b49358e5-23dc34a5-1c9f-5af965bf7cb0        true  vfat        261853184       79454208
/vmfs/volumes/4aed47ef-d4e7ee55-f394-88684bc4443c                                   4aed47ef-d4e7ee55-f394-88684bc4443c        true  vfat        261853184       79417344
/vmfs/volumes/5d47ebcd-a4552bf1-c3e2-90b11c536183                                   5d47ebcd-a4552bf1-c3e2-90b11c536183        true  vfat        299712512       84172800
[root@esxi10:~]

指定したVMFSの情報を確認

「esxcli storage vmfs host list –volume-label 名前」

[root@esxi10:~] esxcli storage vmfs host list --volume-label esxstore-vsphere10
Heartbeat UUID                       MAC Address        Driver Version  Heartbeat Offset  Locking Mode  Status
-----------------------------------  -----------------  --------------  ----------------  ------------  ------
5d6c6d91-51b61938-424a-90b11c536183  90:b1:1c:53:61:83  5.61                     3178496  ATS-only      Normal
[root@esxi10:~]

ストレージアクセスのQueue関連設定変更

現在の値確認は「esxcli storage core device list -d ストレージ指定」で行う。

「Device Max Queue Depth」を「128」に設定する

[root@esxi10:~]esxcli storage core device set -d eui.9fa59185cb34c2ab6c9ce9003faf076a -m 128
[root@esxi10:~]

「No of outstanding IOs with competing worlds」を「32」に設定する

[root@esxi10:~]esxcli storage core device set -d eui.9fa59185cb34c2ab6c9ce9003faf076a -O 32
[root@esxi10:~]

ストレージパス関連

esxcli storage core path list

[root@esxi10:~] esxcli storage core path list
iqn.1998-01.com.vmware:esxi10-753076d4-00023d000001,iqn.2007-11.com.nimblestorage:esxstore-vsphere10-v371c7edc5d1bd1e3.000000ab.6a07af3f,t,2460-eui.9fa59185cb34c2ab6c9ce9003faf076a
   UID: iqn.1998-01.com.vmware:esxi10-753076d4-00023d000001,iqn.2007-11.com.nimblestorage:esxstore-vsphere10-v371c7edc5d1bd1e3.000000ab.6a07af3f,t,2460-eui.9fa59185cb34c2ab6c9ce9003faf076a
   Runtime Name: vmhba38:C0:T1:L0
   Device: eui.9fa59185cb34c2ab6c9ce9003faf076a
   Device Display Name: Nimble iSCSI Disk (eui.9fa59185cb34c2ab6c9ce9003faf076a)
   Adapter: vmhba38
   Channel: 0
   Target: 1
   LUN: 0
   Plugin: NMP
   State: active
   Transport: iscsi
   Adapter Identifier: iqn.1998-01.com.vmware:esxi10-753076d4
   Target Identifier: 00023d000001,iqn.2007-11.com.nimblestorage:esxstore-vsphere10-v371c7edc5d1bd1e3.000000ab.6a07af3f,t,2460
   Adapter Transport Details: iqn.1998-01.com.vmware:esxi10-753076d4
   Target Transport Details: IQN=iqn.2007-11.com.nimblestorage:esxstore-vsphere10-v371c7edc5d1bd1e3.000000ab.6a07af3f Alias= Session=00023d000001 PortalTag=2460
   Maximum IO Size: 131072
[root@esxi10:~]

各ストレージのパス選択アルゴリズム確認

「esxcli storage nmp device list」

[root@esxi10:~] esxcli storage nmp device list
eui.9fa59185cb34c2ab6c9ce9003faf076a
   Device Display Name: Nimble iSCSI Disk (eui.9fa59185cb34c2ab6c9ce9003faf076a)
   Storage Array Type: VMW_SATP_ALUA
   Storage Array Type Device Config: {implicit_support=on;explicit_support=off; explicit_allow=on;alua_followover=on; action_OnRetryErrors=off; {TPG_id=0,TPG_state=AO}}
   Path Selection Policy: VMW_PSP_MRU
   Path Selection Policy Device Config: Current Path=vmhba38:C0:T1:L0
   Path Selection Policy Device Custom Config:
   Working Paths: vmhba38:C0:T1:L0
   Is USB: false
[root@esxi10:~]

使用できるPSP一覧

[root@esxi10:~] esxcli storage nmp psp list
Name           Description
-------------  ---------------------------------
VMW_PSP_MRU    Most Recently Used Path Selection
VMW_PSP_RR     Round Robin Path Selection
VMW_PSP_FIXED  Fixed Path Selection
[root@esxi10:~]

指定できるSATP一覧

[root@esxi10:~] esxcli storage nmp satp list
Name                 Default PSP    Description
-------------------  -------------  -------------------------------------------------------
VMW_SATP_ALUA        VMW_PSP_MRU    Supports non-specific arrays that use the ALUA protocol
VMW_SATP_MSA         VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_DEFAULT_AP  VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_SVC         VMW_PSP_FIXED  Placeholder (plugin not loaded)
VMW_SATP_EQL         VMW_PSP_FIXED  Placeholder (plugin not loaded)
VMW_SATP_INV         VMW_PSP_FIXED  Placeholder (plugin not loaded)
VMW_SATP_EVA         VMW_PSP_FIXED  Placeholder (plugin not loaded)
VMW_SATP_ALUA_CX     VMW_PSP_RR     Placeholder (plugin not loaded)
VMW_SATP_SYMM        VMW_PSP_RR     Placeholder (plugin not loaded)
VMW_SATP_CX          VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_LSI         VMW_PSP_MRU    Placeholder (plugin not loaded)
VMW_SATP_DEFAULT_AA  VMW_PSP_FIXED  Supports non-specific active/active arrays
VMW_SATP_LOCAL       VMW_PSP_FIXED  Supports direct attached devices
[root@esxi10:~]

パス選択アルゴリズムの変更

[root@esxi10:~] esxcli storage nmp device set --psp=VMW_PSP_RR --device=eui.9fa59185cb34c2ab6c9ce9003faf076a
[root@esxi10:~]

変更確認

[root@esxi10:~] esxcli storage nmp device list -d eui.9fa59185cb34c2ab6c9ce9003faf076a
eui.9fa59185cb34c2ab6c9ce9003faf076a
   Device Display Name: Nimble iSCSI Disk (eui.9fa59185cb34c2ab6c9ce9003faf076a)
   Storage Array Type: VMW_SATP_ALUA
   Storage Array Type Device Config: {implicit_support=on;explicit_support=off; explicit_allow=on;alua_followover=on; action_OnRetryErrors=off; {TPG_id=0,TPG_state=AO}}
   Path Selection Policy: VMW_PSP_RR
   Path Selection Policy Device Config: {policy=rr,iops=1000,bytes=10485760,useANO=0; lastPathIndex=1: NumIOsPending=0,numBytesPending=0}
   Path Selection Policy Device Custom Config:
   Working Paths: vmhba38:C3:T1:L0, vmhba38:C0:T1:L0
   Is USB: false
[root@esxi10:~]

HBAドライバパラメータ調整

インストールされているドライババージョン等を確認

[root@esxi10:~] esxcli software vib list|grep qla
ima-qla4xxx                    2.02.18-1vmw.600.0.0.2494585           VMware  VMwareCertified   2019-08-05
scsi-qla4xxx                   5.01.03.2-7vmw.600.0.0.2494585         VMware  VMwareCertified   2019-08-05
[root@esxi10:~]

HBAで指定できるパラメータ確認

「esxcli system module parameters list -m モジュール名」

[root@esxi10:~] esxcli system module parameters list -m qlnativefc
Name                        Type  Value  Description
--------------------------  ----  -----  --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ql2name                     int          Option to have different node and port name for ISP82xxpass value based on the port used on the FCoE switch.
ql2xallocfwdump             int          Option to enable allocation of memory for a firmware dump during HBA initialization.  Memory allocation requirements vary by ISP type.  Default is 1 - allocate memory.
ql2xattemptdumponpanic      int          Attempt fw dump for each function on PSOD Default is 0 - Don't attempt fw dump.
ql2xbypass_log_throttle     int          Option to bypass log throttling.Default is 0 - Throttling enabled. 1 - Log all errors.
ql2xcmdtimeout              int          Timeout value in seconds for scsi command, default is 20
ql2xcmdtimermin             int          Minimum command timeout value. Default is 30 seconds.
ql2xdbwr                    int          Option to specify scheme for request queue posting. 0 -- Regular doorbell. 1 -- (Default) CAMRAM doorbell (faster).
ql2xdevdiscgoldfw           int          Option to enable device discovery with golden firmware Default is 0 - no discovery. 1 - discover device.
ql2xdisablenpiv             int          Option to disable/enable NPIV feature globally.        1 - NPIV disabled. Default is 0 - NPIV enabled.
ql2xdontresethba            int          1: Do not reset on failure, 0: Reset on failure, default is 0
ql2xdontresethba_83xx       int          1: Do not reset on failure, 0: Reset on failure, default is 0
ql2xenablehba_err_chk       int           Enable T10-CRC-DIF Error isolation by HBA:
 Default is 2.
  0 -- Error isolation disabled
  1 -- Error isolation enabled only for DIX Type 0
  2 -- Error isolation enabled for all Types
ql2xenablemd                int          82XX/8044: Option to enable/disable the minidump capture capability.     0 - disable minidump capture          1 - (Default) enable minidump capture
ql2xenablemsi2422           int          Enables MSI interrupt scheme on 2422sDefault is 0 - disable MSI-X/MSI. 1 - enable MSI-X/MSI.
ql2xenablemsi24xx           int          Enables MSIx/MSI interrupt scheme on 24xx cardsDefault is 1 - enable MSI-X/MSI. 0 - disable MSI-X/MSI.
ql2xenablemsix              int          Set to enable MSI or MSI-X interrupt mechanism. 0 = enable traditional pin-based interrupt mechanism. 1 = enable MSI-X interrupt mechanism (Default). 2 = enable MSI interrupt mechanism.
ql2xenablesmartsan          int          Enable HP Smart SAN management feature.Default is 1.
 0 - Disable the Smart SAN feature.  1 - Enable the Smart SAN feature.
ql2xexecution_throttle      int          IOCB exchange count for HBA.Default is 0, set intended value to override Firmware defaults.
ql2xextended_error_logging  int          Option to enable extended error logging, Default is 0 - no logging. 1 - log errors.
ql2xfabricpriorityqos       int           Option to set QoS mode
 Default is 2.
 0 - Fabric Priority QoS is disabled
 1 - Queue-based Fabric Priority QoS enabled.
 2 - IOCB-based Fabric Priority QoS enabled.
ql2xfdmienable              int          Enables FDMI registratons Default is 1 - perfom FDMI. 0 - no FDMI.
ql2xfwloadbin               int          Option to specify location from which to load ISP firmware: 2 -- load firmware via the requestFirmware() (hotplug)      interface. 1 -- load firmware from flash. 0 -- use default semantics.
ql2xiidmaenable             int          Enables iIDMA settings Default is 1 - perform iIDMA. 0 - no iIDMA.
ql2xintrdelaytimer          int          ZIO: Waiting time for Firmware before it generates an interrupt to the host to notify completion of request.
ql2xioctltimeout            int          IOCTL timeout value in seconds for pass-thur commands. Default is 66 seconds.
ql2xioctltimertest          int          IOCTL timer test enable - set to enable ioctlcommand timeout value to trigger before fw cmdtimeout value. Default is disabled
ql2xloadfwbin               int          Option to Load Firmware from the flash/driver source for qla82xx Default is 1, 0 = load firmware bundled with driver source 1 = load from Flash
ql2xloginretrycount         int          Specify an alternate value for the NVRAM login retry count.
ql2xlogintimeout            int          Login timeout value in seconds.
ql2xmaxlun                  int          Defines the maximum LUNs to register with the SCSI midlayer.    Default is 256. Maximum allowed is 65535.
ql2xmaxqdepth               int          Maximum queue depth to report for target devices.
ql2xmaxsgs                  int          Maximum scatter/gather entries per request,Default is the Max the OS Supports.
ql2xmdcapmask               int          82XX/8044: Option to set the driver capture mask for f/w minidump as follows:          0x00 - use f/w recommended capture mask         0x03 - capture mask 0x3         0x0F - capture mask 0x0F      0x1F - (Default) capture mask 0x1F      0x7F - capture mask 0x7F
ql2xmqcpuaffinity           int          Enables CPU affinity settings for the driver Default is 1 to turn on the cpu affinity.Set to 0 for no affinity of request and response IO.
ql2xmqqos                   int          Enables QoS settings Default is 1. Set it to enable            queues in MQ QoS mode.
ql2xoperationmode           int          Option to disable ZIO mode for ISP24XX:   Default is 1, set 0 to disable
ql2xplogiabsentdevice       int          Option to enable PLOGI to devices that are not present after a Fabric scan.  This is needed for several broken switches. Default is 0 - no PLOGI. 1 - perfom PLOGI.
ql2xshiftctondsd            int          Set to control shifting of command type processing based on total number of DSD.
ql2xt10difvendor            int           Vendor unique T10 DIF support.  Default is enabled.
 0 -- Disabled.
 1 -- Enabled.
ql2xt10enable               int           Enable T10-CRC-DIF  Default is 1 - DIF Support Enabled. 0 - Disable it
ql2xt10guard                int           Adapter guard type supported  Default is CRC checksumming and IP checksumming.
ql2xt10protmask             int           Adapter protection mask  Default is 0x55 - T10 PI Type 1/3, DIX Type 1/3 protection.
ql2xusedefmaxrdreq          int          Default is 0 - adjust PCIe Maximum Read Request Size. 1 - use system default.
ql2xuseshadowregisters      int           For ISP27XX/ISP28XX : Option to use shadow register for request/response queues :
 Default is 0.
  0 -- Don't use shadow registers for the request/response queue manipulation
  1 -- Use shadow registers for the request/response queue manipulation
ql2xvmidexpiration          int           Expiration time for VMID in minutes. 0 is no expiration. Default is 240 minutes (4 hours) with no I/O leads to de-registration.
ql2xvmidsupport             int           Enable VMID support in driver.  Default is disabled.
 0 -- Disabled.
 1 -- Enabled.
ql2xvmidtgtind              int           Ignore target settings for QoS VMID.  Default is disabled.
 0 -- Disabled.
 1 -- Enabled.
qlport_down_retry           int          Maximum number of command retries to a port that returns a PORT-DOWN status.
[root@esxi10:~]

「esxcfg-module –show-info モジュール名」

[root@esxi10:~] esxcfg-module --show-info qlnativefc
esxcfg-module module information
 input file: /usr/lib/vmware/vmkmod/qlnativefc
 License: BSD
Cannot access module instance.
[root@esxi10:~]

値の設定

[root@esxi10:~] esxcfg-module --get-options qlnativefc
qlnativefc enabled = 1 options = ''
[root@esxi10:~]

Image may be NSFW.
Clik here to view.

TP-linkのPLCアダプタTL-PA4010KITを買った

ハムフェアいったらTP-linkのPLCアダプタ TL-PA4010KITが未開封1000円で売られていた。

Image may be NSFW.
Clik here to view.
画像

海外だと2000Mbpsとか1300Mbps対応のシリーズが販売されているけど、日本だと30MHz未満までしか使えないので、600Mbps対応までしか販売されていない。

1000円で試せるならお買い得、ということで購入した。

Image may be NSFW.
Clik here to view.
画像

思ったより小さいんだなぁ、と思いつつ、とりあえず、推奨されない接続方法であるところのタップ接続を試した。

Image may be NSFW.
Clik here to view.
画像

ルータ直下にOrange Pi PC2を置いて、そこでiperf3のサーバを起動し、Windowsパソコン上からiperf3クライアントを実行して速度を測定してみた。

・・・ちなみに昔だったらnetperfを使うところなんですが、いまはwindows用のnetperfバイナリが手に入らないので、Download iPerf for Windowsにてダウンロードします。

Image may be NSFW.
Clik here to view.
画像

Image may be NSFW.
Clik here to view.
画像

さすがにタップはダメか、と壁コンセント直結に変更して再測定。

Image may be NSFW.
Clik here to view.
画像
Image may be NSFW.
Clik here to view.
画像

もう1つ、ルータ側のPLCアダプタのコンセントも変えてみた。

Image may be NSFW.
Clik here to view.
画像
Image may be NSFW.
Clik here to view.
画像

ちなみに、同じパソコンを使って、 WXR-1750DHP 802.11a/20MHz 288.9Mbps接続 のWiFi環境で計測してみたらこんな感じでした。

Image may be NSFW.
Clik here to view.
画像

まとめると下記の様な感じですね。

 送信受信
WiFi81.8Mb/s81.8Mb/s
PLC タップ21.1Mb/s21.0Mb/s
PLC 壁コンセント35.2Mb/s35.2Mb/s
PLC ルータ側改善40.4Mb/s40.4Mb/s

残念ならが、いまどきのWiFi環境を置き換えるには遅い感じですね。

ちなみに、こいつ、firmwareを書き換えるとHomePlug AV2という上位規格にも対応するという話が・・・

Image may be NSFW.
Clik here to view.

時々話題に上がるOSのメモ(AliOS,Harmony,webOS,Tizen,KaiOS) 2019/09/06

AliOS系統

AliOS

元々はalibabaがAndroid(AOSP)をベースにカスタマイズしたOS。「Yun OS」「Aliyun OS」といった呼び方をされていた時期もある。

公式ページ: AliOS

基本的にはGapps(Google Play Storeなど)が入っておらず、代わりにalibaba系でやってるサービスやストアが導入されている中国向けのAndroidといった感じのものになっている。

AliOS Things

AliOSのIoT向けとして作成されているOS。AliOSといってもAndroidベースではない。

公式ページ: AliOS Things
github: https://github.com/alibaba/AliOS-Things

IoT向けということで、ESP32とか、RISC-Vを使ったC-Sky SoCとかもサポートしている。

Huawei系統

LiteOS

Narrow Band IoT(NB-IoT)など向けにHuaweiが開発していたOS。これが、HarmonyOSに発展した。

github: https://github.com/LiteOS/LiteOS

動作対象ボード一覧: LiteOS支持的开发板种类

HarmonyOS

「鴻蒙 OS( HongMeng OS)」とも呼ばれることがある。LiteOSはIoT向けのみだったが、その適用範囲を大幅に広げ、スマートフォンも対象に含むようだ。

github: https://github.com/huawei-iot/HarmonyOS

ARKというAndroidでいうART(Android Run Time)みたいなものを作成しているようで、「方舟编译器(Open Ark compiler)」というページで関連資料が公開されている。

OpenARK Compilerについては「https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/home」「https://code.opensource.huaweicloud.com/HarmonyOS/OpenArkCompiler/readme」でソースも公開されている。(ページの遷移具合で微妙に他のページへのリンクが消えたりするのが謎)

昔からのやつら

Tizen

Samsungが開発している自社向けOS。2019/5/30にTizen 5.5がリリースされていたりしている。

Android代替のTizen Mobileということで始まっているので、スマホやタブレットでTizen OS搭載のものがリリースされたりしているが、あまり売れていないようだ。
TV向けのTizen TVやWearデバイス向けTizen Wearなどは出ているようだ。

公式ページ: Tizen
ソースコード: Tizen Source

Tizen RT」というCortex-M/R SoC向けのバリエーションもあるようだが、こちらは2017/5のTizen RT 1.0以降更新がないようだ。

webOS

現在はLGが主体となって開発しているpalm webOS。
LG社のTV向けOSとして現在も開発は続けられている。(最新のwebOS TV SDK v4.0.4のリリースが2019/3)

公式ページ: webOS TV Developer
オープンソースサイト: webOS Open Source Edition

ラズパイ3が公式デバイスとして掲載されている。

kaiOS

Firefox OSのB2G部分をベースに開発が続けられているモバイル向けOS。
インドのJio社やNOKIAのフィーチャーフォンで使われており、昨日も新しいデバイスが発表されたりしている。

公式ページ: KaiOS tech
開発者向け: KaiOS Developer
github: https://github.com/kaiostech

Firefox version 59をベースに開発を進めているようだが、更新どうしてるんだろう?

Image may be NSFW.
Clik here to view.

Windows Hyper-V仮想マシン上のWindowsライセンス

Hyper-V環境上にWindows Server仮想マシンを導入するとき、「仮想マシンの自動ライセンス認証」という手法により、物理Windows Serverに適用されているプロダクトキーを使用したライセンス認証を行わせることができる。

Windows Server 2012R2ベースのドキュメント「Automatic Virtual Machine Activation

とりあえず現状認識しているライセンスの確認は「slmgr /dlv」を実行することで確認出来る。

Image may be NSFW.
Clik here to view.

ライセンスの適用は「slmgr /ipk ライセンスキー」で適用できる。

MCTの憂鬱「仮想マシン自動ライセンス認証に関して」を見ると、ホストWindows ServerのアプリケーションログにイベントID 12310 として「仮想マシンの自動ライセンス認証要求」のログが出るらしい。

手元に評価版環境しかなかったので実機検証はできず

Image may be NSFW.
Clik here to view.

Hyper-V第2世代仮想マシンにWindows Server 2012R2をインストールしたらKB3000850適用に失敗する

Windows Server 2016を立てて、Hyper-V上にWindows Server 2012R2仮想マシンを作ろうとしたら、うまくいかない事例が発生。

オンラインのWindows Update実施ではなく、某社が用意した一括適用バッチファイルを実行して適用したところ、必ず適用に失敗し、元に戻す処理が発生するした。

Image may be NSFW.
Clik here to view.
Image may be NSFW.
Clik here to view.

提供されたバッチファイルを分割しまくり、原因を調査していったところ、KB3000850の適用に失敗していることを発見。

問題のKB「Windows RT 8.1、Windows 8.1 および Windows Server 2012 R2 用の 2014 年 11 月付け更新プログラムのロールアップ

既知の事例に第2世代仮想マシンで適用が失敗することが記載されている。

ベースの Windows Server 2012 R2 の HYPER-V ホストを実行して使用して UEFI ファームウェアをサポートする第 2 世代の仮想マシンのゲストを実行しているし、セキュリティで保護されたブート オプションを有効にしたがあります。さらに、ゲスト バーチャル マシンは、Windows Server 2012 R2 を実行しています。

対処方法としてKB2975061「月の 2014 年まで Windows 8.1 および Windows Server 2012 R2 の更新プログラムのサービスを提供」を事前に適用する、とある。

確認してみると、某社提供のパッチ集にKB2975061が含まれていない。

このため、別途KB2975061をダウンロード・適用した後、一度再起動し、そのあとKB3000850を適用したところ、正常に適用が成功した。

このことから、某社提供のパッチ適用スクリプトが問題だったということですね。

あとでWSUS Offline Updateと比較してみよう

Image may be NSFW.
Clik here to view.

Oracle CloudでOracle Linux 7.xを作ると「Permission denied (publickey,gssapi-keyex,gssapi-with-mic).」でsshログインできない

Oracle Cloud Free Tierというものが登場したので、Oracle Cloudを使ってみたところ、Oralce Linux 7.7インスタンスにsshログインできない。
「Permission denied (publickey,gssapi-keyex,gssapi-with-mic).」 と言われる。

Image may be NSFW.
Clik here to view.
画像

いろいろ調べたが原因が分からない。

試しにとUbuntu 18.10でやってみるとそちらではsshログインに成功、そして、Oracle Linux 6.10でやってみるとそちらもログイン成功。

Image may be NSFW.
Clik here to view.

・・・ん?ホスト名が「インスタンス-20190920-1006」?

実はここまでインスタンス作成時に指定するインスタンス名を標準状態の「インスタンス-日付-時刻」というもので作成していました。

Image may be NSFW.
Clik here to view.

そこがそのままホスト名になっているということは、もしや、日本語処理でバグって失敗しているのでは?ということで、Oracle Linux 7.7インスタンスのインスタンス名を「testvm」として新規作成してみた。

Image may be NSFW.
Clik here to view.

ログイン成功!

どうやらOracle Linux 7.xについてはインスタンス名に日本語が含まれていると正常に作成されないようです。

とりあえずこの件はサポートメールを送っておきましたがどうなることやら。

(2019/10/01現在、メールには何の応答もありません)

なお、Free tierについては、うまく作れていません。→ Tokyoは空きがなく作成できない。「Oracle Cloud Always Free Tierはホームリージョンでのみ作成できるが、現在North AmericaとEMEAリージョンでしか作成できない」→ よって、ホームリージョンを Tokyoで作ってしまったアカウントでFree Tierを試すのは絶望的

Image may be NSFW.
Clik here to view.

Oracle Cloud Always Free Tierはホームリージョンでのみ作成できるが、現在North AmericaとEMEAリージョンでしか作成できない

Oracle Cloud Free Tier(“Always Free”,”Free Tier”といろいろ表記があって謎)を使って見ようと、ホームリージョンを日本で設定してみたところ、「Out of host capaticy」という表示で作成できない。

Image may be NSFW.
Clik here to view.
画像

データリージョン一覧ページに「Free Oracle Cloud Promotion is only available in North America and EMEA data regions.」と書かれていたので、North AmericaかEMEAリージョンで作成すればいいのかな?と考えていた。(なお、「Free Oracle Cloud Promotion」と「Always Free」が同じモノを指しているかは不明です)

Image may be NSFW.
Clik here to view.
画像

しかし、ホームリージョン以外では、Always Free(常に無料の対象)となる「VM.Standard.E2.1.Micro」が表示されない。

Image may be NSFW.
Clik here to view.
画像

Image may be NSFW.
Clik here to view.
画像
Image may be NSFW.
Clik here to view.
画像

どういうことかと調べ回ったところ「Freedom to Build – Announcing Oracle Cloud Free Tier with New Always Free Services and Always Free Oracle Autonomous Database」に記載を発見。

Image may be NSFW.
Clik here to view.
画像

「Alwasys Freeはホームリージョンでのみ提供」「アカウント作成時に指定したホームリージョンは変更できない」

twitterを検索すると、東京リージョンでも時々作成に成功することはあるようなので、空きが無くて作れないだけではあるようだ。

はたして東京リージョンで気軽にAlways Freeを使える日は来るのだろうか???

Image may be NSFW.
Clik here to view.

Oracle CloudのAlways Freeインスタンスを作る際に誤って有料インスタンスを作ってしまいがちな件

他のよくある質問とその答え
・Always Freeインスタンスが作れない件→「Tokyoで作れないのは仕様
・ホームリージョンの変更できるの→「アカウント作成後の変更は不可能
・作ったOracle Linuxインスタンスにsshログインできない件→「インスタンス名に日本語入れてるから」)

Oracle CloudでAlways Freeインスタンスを作成する際、誤って有料のインスタンスを作ってしまうことがある。

例えば、下記の画面だとAlways Freeインスタンスではない。

Image may be NSFW.
Clik here to view.

どこを見ればそれがわかるのか?

Image may be NSFW.
Clik here to view.

上記の「シェイプとタイプ」のところに「常に無料の対象(Always Free対象)」という記載があるかどうかです。

「Always Free対象」である場合は、下記の様に「VM.Standard.E2.1.Micro(仮想マシン)」であることと、その横に「Alwasy Free対象」があります。

Image may be NSFW.
Clik here to view.

Always Free対象の表示が無いので変更するかと「シェイプ、ネットワークおよびストレージオプションの表示」を選択してみましょう。

次の罠が登場です。

Image may be NSFW.
Clik here to view.

「インスタンスタイプ」のところの「仮想マシン」は「Always Free対象」と書かれていますが、「インスタンスのシェイプ」には「Always Free対象」の表記がありません。

正しく「Always Free対象」が選択されている場合は、下記の様にインスタンスのシェイプでもAlways Free対象と表記されています。

Image may be NSFW.
Clik here to view.

Always Free対象となっていない場合は、「シェイプの変更」から変更しましょう。

Image may be NSFW.
Clik here to view.

・・・ないですか?

それは、いまいるリージョンがホームリージョンではないからですね。

Image may be NSFW.
Clik here to view.

右上にあるリージョン切り替えから「ホームリージョン」とかかれたものを選択しましょう。すると下記の様に「Always Free対象」が現れるはずです。

Image may be NSFW.
Clik here to view.

・・・え?

「Japan East(Tokyo)」リージョンだと「Out of host capacity」で作成できないから他のリージョンに変更したい?

残念ながらホームリージョンでしかAlways Free対象とならず、またホームリージョンの変更は不可能とのことです。 (ネタ元 Freedom to Build – Announcing Oracle Cloud Free Tier with New Always Free Services and Always Free Oracle Autonomous Database)

Image may be NSFW.
Clik here to view.
画像

諦めてアカウントを作り直すか、運良く東京に空きができたタイミングで作成できることを期待してインスタンス作成を繰り返してみてください。

Image may be NSFW.
Clik here to view.

Oracle Cloudでは使用状況レポートを有効にしないとVM内にアクセスエラーログがたまりまくるので注意

東京リージョンでOracle Cloud Always Freeインスタンスを作れないので、US West(Phoenix)リージョンでアカウントを作り直してOracle Linux 7インスタンスを作ってみたところ /var/log/oracle-cloud-agent/agent.log にスクリプトの実行エラーが毎秒出ている。

Image may be NSFW.
Clik here to view.
画像

作り直し前の方ではagent.logは正常なのに何故?と思ったら、Oracle Cloudコンソールの「アカウント管理」の「使用状況レポート」が未設定なためだった。

Image may be NSFW.
Clik here to view.
画像

上記にある様に「アイデンティティ」の「ポリシー」にて「ポリシーの作成」をクリックし、上記ページに書かれている「ステートメント1」「ステートメント2」を下記画面の「ポリシーステートメント」に貼り付ければOK。(名前と説明は適当につける)

なお、ステートメント2にある「<group>」は「Administrators」に置き換える必要がある。(「アイデンティティ」の「グループ」に登録済みのグループ名に置き換える)

Image may be NSFW.
Clik here to view.

この設定を行ったあと、agent.logへエラーを吐き出していたインスタンス上で「 systemctrl restart oracle-cloud-agent.service 」を実行することでエラーは収まりました。

Image may be NSFW.
Clik here to view.
画像

Image may be NSFW.
Clik here to view.

Oracle Cloud上にWindows Server 2016インスタンスを作ったら記号が入らずパスワード入力ができなかった件

Oracle Cloudの登録特典でもらえる30日有効の33000円分のクレジットがまだまだ余ってるので、Windows Server 2016インスタンスを作ってみた。

Image may be NSFW.
Clik here to view.
画像

初期パスワードはシステム側で自動生成される・・・と

Image may be NSFW.
Clik here to view.
画像

ありますね。

初回ログインはコンソール画面から行う必要があるので、上記の画面をスクロールして「リソース」の「コンソール接続」から「コンソール接続の作成」を選択

Image may be NSFW.
Clik here to view.

sshの公開鍵を指定して・・・

Image may be NSFW.
Clik here to view.

コンソール接続が「アクティブ」となったら、右側のメニューから「VNCを使用して接続」を選択

Image may be NSFW.
Clik here to view.

「プラットフォーム:WINDOWS」を選択して、文字列を「コピー」

Image may be NSFW.
Clik here to view.

Windows上でPowerShellを開いて、コピーしたものを貼り付けて実行

Image may be NSFW.
Clik here to view.

で・・・VNC Viewerを起動して「localhost:5900」に接続を実行すると下記の様にログイン画面が出てくる。

Image may be NSFW.
Clik here to view.
画像

で・・・ココで問題が発生。

パスワードを入力しようとしても 「:→;」「@→2」「^→6」「`→~」「=→+」 という感じで期待通りの入力が行えない。

Windows 10の日本語キーボード環境で「;キー」と「:キー」のどちらを押しても「;」が入力される事態。UltraVNCにあるSend Custom Keyを使用して「85」「86」を送っても、同じく「;」が入力されてしまう。

UltraVNCには「Japanese keyboard」という設定項目があるのでそれを設定しても状況は変わらず。

Image may be NSFW.
Clik here to view.
画像

UltraVNC
RealVNC
TigerVNC
この3つを試したところ、TigerVNCでは、Windows上のキーボード認識がUSキーボードになってるけど、実際につながっているのは日本語キーボード、という場合に相当する動きをしてくれた。

この動きであれば、日本語キーボードを英語配列だと思い込んで操作することによってなんとか記号を入力することができる(一部入力できないものもあるが、UltraVNC/RealVNCよりはずっとマシ)

TigerVNC Viewerでログインに成功し、デバイスマネージャー(Device Manager)から「Standard PS/2 Keyboard」を「Japanese PS/2 Keyboard (106/109 key)」に変更することで、日本語キーボードであっても期待通りに入力出来る環境を用意することができた。

(下記の画像はWindows Server 2012R2のだけど、Windows Server 2016もほぼ同じ)

Image may be NSFW.
Clik here to view.

「Standard PS/2 Keyboard」の「Properies」を開き、「Driver」タブを選択する。

Image may be NSFW.
Clik here to view.

「Update Driver」を選択し、下記では「Browse my computer from driver software」を選択

Image may be NSFW.
Clik here to view.

下記は「Let me pick from a list of device drivers on my computer」を選択

Image may be NSFW.
Clik here to view.

「Show compatible hardware」に入っているチェックを外す

Image may be NSFW.
Clik here to view.

チェックを外すと下記の様に選択肢がたくさん現れる。

Image may be NSFW.
Clik here to view.

下記の様に「(standard keyboards)」内の「Japanese PS/2 Keyboard (106/109 Key)」を選択し、「Next」

Image may be NSFW.
Clik here to view.

警告は「Yes」

Image may be NSFW.
Clik here to view.

変更完了

Image may be NSFW.
Clik here to view.

再起動して、変更を反映させます。

Image may be NSFW.
Clik here to view.

また、コントロールパネルの「Language」にて

Image may be NSFW.
Clik here to view.
Image may be NSFW.
Clik here to view.

「Add an input method」を選択し、リストから「QWERY Japanese」を選択し、「Add」

Image may be NSFW.
Clik here to view.

「Save」します。

Image may be NSFW.
Clik here to view.

Save実行とともに時計の横に「ENG US」が表示されますので、それをクリックすると「ENG JA」が選択できます。

Image may be NSFW.
Clik here to view.
Image may be NSFW.
Clik here to view.
Image may be NSFW.
Clik here to view.

これにより日本語キーボードをつかって正常に入力することが可能となります。

なお、この設定を行ってもUltraVNC,UltraVNC(Japanese Keyboard設定あり),RealVNCでは相変わらずな動作をして記号や日本語変換が行えませんでした。

Image may be NSFW.
Clik here to view.

EC-CUBE 4.0をOracle Linux 7上に構築する手順(仮

EC-CUBE 4.0のテスト環境が必要になったので、Oracle Cloud上のOracle Linux 7インスタンスを立てて、その上に作成した。

が・・・公式ドキュメントはSELinux関連の設定とか触れてないし、かなり面倒だった。

環境初期準備

タイムゾーンを日本に設定

# timedatectl set-timezone Japan

fail2ban設定

sshアタックがあった場合にとっととIPバンするためにfail2banをインストール

# yum install -y fail2ban fail2ban-hostsdeny fail2ban-systemd
# systemctl enable fail2ban.service
# cat <<EOF > /etc/fail2ban/jail.local
[DEFAULT]
# 24時間以内に3回不審なアクセスがあったら24時間BAN
#bantime  = 86400
#findtime  = 86400
bantime  = 259200
findtime  = 259200
maxretry = 5

#CentOS7なのでsystemd
#backend = systemd # jail.d/00-systemd.conf で設定されてた

# 除外IP
ignoreip = 127.0.0.1 127.0.0.0/8 10.0.0.0/8 172.16.0.0/12 192.168.0.0/16 <除外したいIPを追加>
[sshd]
enabled = true
banaction = firewallcmd-ipset
EOF
# systemctl start fail2ban.service
#

webサーバとphp設定

phpはOracleが用意しているphp 7.2を使用するため、「oracle-php-release-el7」をインストール。現状の標準設定だとphp 7.2が標準選択されている。なお、php 7.1かphp 7.0を使うこともできるが、いまさら利点は無いので使用しない方がよい。

# yum install oracle-php-release-el7
# 

phpパッケージとhttpdをインストールして、firewall開け設定実施

# yum install -y httpd mod_ssl php php-json php-mbstring php-pdo php-xml php-zip php-mysqlnd php-intl 
# systemctl enable httpd
# systemctl start httpd
# firewall-cmd --permanent --zone=public --add-service=http
# firewall-cmd --permanent --zone=public --add-service=https
# firewall-cmd --reload

APCU(php-pecl-apcu)のインストールを推奨されたが、パッケージのコンフリクトが発生していたのでインストールしなかった。

SQLサーバ設定

今回はmariadbをSQLサーバとして使用した。

# yum install -y mariadb-server
# systemctl enable mariadb
# systemctl start mariadb
#

また、ECCUBE用のデータベースを作成した。

# mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 2
Server version: 5.5.64-MariaDB MariaDB Server

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database eccube character set utf8;
Query OK, 1 row affected (0.00 sec)

MariaDB [(none)]> grant all on eccube.* to cubesql@localhost identified by 'dbsqlp@ss';
Query OK, 0 rows affected (0.08 sec)

MariaDB [(none)]> exit
Bye
#

ECCUBEファイル展開

/var/www/html/eccube にEC-CUBE 4.0.3を展開した。

展開した中に.htaccessファイルが含まれていますが、標準設定では読み込まないのでApacheに設定追加を行います。 (もっとセキュリティを強化してもいいとは思いますが、面倒だったので・・・)

# cat <<EOF> /etc/httpd/conf.d/eccube.conf
<Directory "/var/www/html/eccube">
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
EOF
# systemctl restart httpd
#

で・・・SELinuxがらみがどうなるかですが、おもいっきり引っかかりまくりました。

とりあえず該当するコンテンツに対して「httpd_sys_rw_content_t」を割り当てることで対処しました。

最初は個別に対処していこうとしたのですが、インストールプロセスを進めていくと、/var/www/html/eccube全体に対して権限を要求されたため、最終的には下記となりました。

# chcon -t httpd_sys_rw_content_t -R /var/www/html/eccube
#

とりあえず、これでEC-CUBE 4.0の初期セットアップ完了までできるようになりました。

エラーコレクション

SELinux設定をしていく中で出てきたエラー群です。

まず、 http://IPアドレス/eccube/ にアクセスすると以下が現れました。

(2/2) ContextErrorException
Warning: file_put_contents(/var/www/html/eccube/var/cache/install/EccubeInstallDebugProjectContainerDeprecations.log): failed to open stream: No such file or directory

(1/2) RuntimeException
Unable to create the cache directory (/var/www/html/eccube/var/cache/install)

このときに表示された /var/www/html/eccube/var に対して「chcon -t httpd_sys_rw_content_t -R /var/www/html/eccube/var」を実行しました。

次にでたエラーは下記です。

Filesystem->copy('/var/www/html/eccube/html/template/default/assets/img/common/favicon.ico', '/var/www/html/eccube/html/user_data/assets/img/common/favicon.ico')

/var/www/html/eccube/html/user_data以下に書き込む権限がないというもの。
eccubeディレクトリ内を探すと他にも「user_data」というディレクトリがあったため、「chcon -t httpd_sys_rw_content_t -R /var/www/html/eccube/html/user_data」と「chcon -t httpd_sys_rw_content_t -R /var/www/html/eccube/app/template/user_data」を実行した。

最後に「権限チェック」で引っかかった。

以下のファイルまたはディレクトリに書き込み権限を付与してください。
>>☓:/var/www/html/eccube
>>☓:/var/www/html/eccube/app/Plugin
>>☓:/var/www/html/eccube/app/PluginData
>>☓:/var/www/html/eccube/app/proxy
>>☓:/var/www/html/eccube/app/template
>>☓:/var/www/html/eccube/html
>>☓:/var/www/html/eccube/vendor
<略>
>>☓:/var/www/html/eccube/vendor/ocramius/proxy-manager/README.md
>>☓:/var/www/html/eccube/vendor/ocramius/proxy-manager/composer.json
>>☓:/var/www/html/eccube/composer.json
>>☓:/var/www/html/eccube/composer.lock

ようはここまでで「httpd_sys_rw_content_t」を設定しなかった全ファイル。

「chcon -t httpd_sys_rw_content_t -R /var/www/html/eccube」を実行して再チェック・・・

>>○:アクセス権限は正常です

これでセットアップを進めることができました。

Image may be NSFW.
Clik here to view.

10ドルの45W USB PDアダプタMAD GIGA PD Adapterを買ってみた

aliexpressで約10ドルという怪しげなUSB PDアダプタが売っているのを発見。

20V対応で45Wまで行けるらしいので買ってみた・・・

発注から2週間ちょいで到着。

Image may be NSFW.
Clik here to view.
Image may be NSFW.
Clik here to view.

・・・「公式ページ」があるのか

しかし、2019/10/04時点ではこのUSB PDアダプタは掲載されていなかった。

箱の中身は、USB PDアダプタ本体と説明書のみ

Image may be NSFW.
Clik here to view.

サイズ感の比較として、RAVPower 36Wと並べて見る。

Image may be NSFW.
Clik here to view.

裏面

Image may be NSFW.
Clik here to view.

USB端子側

Image may be NSFW.
Clik here to view.

AC側

Image may be NSFW.
Clik here to view.

そして、スペック表記。これは上がMAD GIGA

Image may be NSFW.
Clik here to view.

MODEL: PD45W+BC5V2.1A
INPUT: AC100-240V 50/60Hz 0.8A Max
OUTPUT USB-C: 5V3A / 9V3A / 15V3A / 20V2.2A
OUTPUT USB-A: 5V2.1A
MADE IN CHINA shanzhen hexinyu technology co,Ltd

で・・・こいつ、ACプラグの折りたたみ機構がちゃんと考えられていないようで、プラグを引き起こすために指を入れるスペースが確保されておらず、爪を差し込んで引き起こす的な感じになっています。

Image may be NSFW.
Clik here to view.

それ以外はぱっと見問題なさそうです。

次に電源を入れてみます。

手元にあるTC66Cで検査・・・

Image may be NSFW.
Clik here to view.

5V3A / 9V3A / 12V3A / 15V3A / 20V3A

・・・え?ほんとに販売ページに書いてあった「Type-C: 5V/3A, 9V/3A, 12V/3A, 15V/3A, 20V/3A 」ってマジなん?

いや、筐体に書いてあるスペックには載ってないけど12V3A隠し仕様で存在してる、ってのはよくあるけど、20V3Aって60W使えるって??いや、間違いかもしれないからPower-Zでも調べて見よう

Image may be NSFW.
Clik here to view.

5V3A / 9V3A / 12V3A / 15V3A / 20V3A

・・・どうやら間違い無いようですね(ちなみに本編とは関係ないですがRAVPower 36Wは5V3A/9V3A/15V3A/20V2.25Aと45W使えると出ました・・・)

自宅には20Vを使うUSB PD機器がないので、先日買ったUSB PD 20Vを丸形ノートパソコン電源に変換するアダプタを使ってテスト

Image may be NSFW.
Clik here to view.

うちにあるDynabookだと最大で20V2Aぐらいまでの使用に留まり、45W以上いくのかは確認出来ませんでした。

まぁ、約40W使用でそこそこ熱い感じだったので超えると危険そうですけどね

Image may be NSFW.
Clik here to view.

ESXiで使用できるUPS連動シャットダウンソフトの情報

ESXi 6.7からvMAというVMware提供の仮想アプライアンスが使えなくなった。
LinuxベースなのだがvCenter/ESXiをCLIから操作するためのツールが導入済みなので、UPS連動シャットダウンする際によく使われていた。

ESXi6.7以降は動かなくなってしまったので、代替を探す必要がある。

Schneider Electric (APC) PowerChute Network Shutdown

APC PowerChute Network Shutdownに関する情報は「PowerChute Network Shutdownプロダクトセンター | よくあるお問い合わせ」と「PowerChuteシリーズ 対応OS表」を起点に捜索する。

PowerChute Network Shutdown v4.3 for Virtualization 対応OS表」はシャットダウン用仮想アプライアンスイメージが提供されているのでそれを使う。
PowerChute Network Shutdown v4.2 for Virtualization 対応OS表」はシャットダウン用仮想アプライアンスか、vMAにPowerShuteインストールか、を選択できる。

PowerChute Network Shutdown v4.0以降のバージョンでVMware環境を保護する場合のPowerChuteインストール先について

PowerChute Network Shutdown v4.1 v4.2 電源障害時のシャットダウンプロセス(VMWare仮想環境) – 構成例2
PowerChute Network Shutdown v4.1 v4.2 電源障害時のシャットダウンプロセス(VMWare仮想環境) – 構成例3

VMware HA利用時やvSAN利用時は、VMware側がユーザ操作なしに停止することを全く考慮していないため、ESXiサーバのみの環境ではうまくシャットダウンを行うことができない。

別に物理のWindowsサーバを用意し、そこからシャットダウン命令を送る必要がある。また、復電後の起動についてはもっと考えられていないため、その処理も自前でどうにかする必要がある。

PowerChute Network Shutdown for Virtualization v4.x VMware HA環境でのサポート構成」(VMware HA環境では仮想マシン停止をサポートしていない)

20180222_VxRailccトラブルシューティングセミナーvSAN環境におけるUPS構成とシャットダウンシュナイダー出口様

HPE Power Protector

HPEブランドで販売されているUPSは、HPE Power Protector(HPEPP)を使用してシャットダウンを行う。

ソフトのダウンロードは「HPE swdepot Power Protector UPS Management Software」から行える。

ESXi 6.7以降の対応について「アドバイザリ: HPE Power Protector – VMware vSphere Management Assistantのサポートが終了したため、VMware ESXi 6.7 (またはそれ以降) を実行しているHPEサーバーでHPE Power Protectorが正しく機能しない」「Advisory: HPE Power Protector – HPE Power Protector Does Not Function Correctly On HPE Servers Running VMware ESXi 6.7 (Or Later) Due to The Discontinued Support For VMware vSphere Management Assistant」に記載している。

vMA使えないから、無料で使えるdebian使って仮想マシン作って、それにHPEPPを入れろ、ということになる。

EATON Intelligent Power Protector (IPP)とIntelligent Power Manager(IPM)

日本代理店ダイトロンの製品ページ「Intellignent Power Protector」「Intelligent Power Manager

メーカページ「Eaton Intelligent Power Manager

連動シャットダウンについてはWindows仮想マシンにIPMを入れる方向性のようだ

IPM SilverかIPM Goldを使うとVMware HAとvSANを含んだシャットダウンにも対応。

VMware HAはWindows仮想マシンにIPMを入れることで対応可能。復電も対応→「シャットダウン for vCSA on vSphere HA by IPM 1.62

vSANはvSANを使っていないESXi上にvCSAとWindows仮想マシン+IPMを置くことで対応可能。復電も対応→「シャットダウン for VMware vSAN 6.6.1 by IPM 1.60

Image may be NSFW.
Clik here to view.

FortiClientのSSL-VPNが80%ぐらいで-12のエラーとなり接続出来ない

FortiClientのSSL-VPNを設定し、接続しようとしたら80%ぐらいのところで「 Unable to logon to the server. Your user name or password may not be configured properly for this connection. (-12) 」というエラーとなり接続できない。

Image may be NSFW.
Clik here to view.

ぐぐってでてきたFortinetフォーラムの「Error Forticlient stop 80%」は2017/02/10の書き込みながら、2019/01/23のコメントとしてWindows10の場合の事例について記載があった。

で、この記載を実施したところなおった。

「Internet Explorer」を開き、「インターネットオプション」の「詳細設定」を開く

Image may be NSFW.
Clik here to view.

上記の「Internet Explorerの設定をリセット」にある「リセット」を実行する。

実行後は一度再起動する。

再起動後、 「Internet Explorer」を開き、「インターネットオプション」の 「セキュリティ」を開く。

Image may be NSFW.
Clik here to view.

上記の「信頼済みサイト」を選択し、「サイト」をクリックする。

開いたウィンドウではSSL接続先のホスト名もしくはIPアドレスを登録する。(不要かも?)

ここで一度、FortiClientを起動してSSL-VPNが接続できるかを確認する。

まだ接続できないようであれば、「コントロールパネル」を開く

Image may be NSFW.
Clik here to view.

「プログラムのアンインストール」を選択

Image may be NSFW.
Clik here to view.

「FortiClient」を選択し「修復」を行う。

修復完了後は、再起動を行う。

おそらく、これでSSL-VPNが接続できるようになると思われる。

Image may be NSFW.
Clik here to view.

CentOS7でルータのログを受け取るrsyslog設定

ここ1ヶ月、長らく使っていたWiFiルータの一部プロセスが良く死んでいた。

具体的には固定IP割り当てしているやつらは問題ないのだが、DHCPによるIP割り当てがうまく行かず、またルーター管理画面にアクセスしようとしても途中で接続が切断される、という状態になっていた。

復帰方法は電源off/onしかないのだが、まぁ、最近のWiFiに対応するやつにするかと4千円程度のものに交換した。

ルータ交換後の様子を継続的に見るためにCentOS7サーバにログを飛ばしておくか、と設定してみた。

その1 firewallの穴開け

標準ではsyslogポート(514)は開いていないので、開ける。

まず、firewalldが持っている規定のサービス名を確認

[root@blog ~]# firewall-cmd --get-services
RH-Satellite-6 amanda-client amanda-k5-client amqp amqps apcupsd audit bacula bacula-client bgp bitcoin bitcoin-rpc bitcoin-testnet bitcoin-testnet-rpc ceph ceph-mon cfengine condor-collector ctdb dhcp dhcpv6 dhcpv6-client distcc dns docker-registry docker-swarm dropbox-lansync elasticsearch etcd-client etcd-server finger freeipa-ldap freeipa-ldaps freeipa-replication freeipa-trust ftp ganglia-client ganglia-master git gre high-availability http https imap imaps ipp ipp-client ipsec irc ircs iscsi-target isns jenkins kadmin kerberos kibana klogin kpasswd kprop kshell ldap ldaps libvirt libvirt-tls lightning-network llmnr managesieve matrix mdns minidlna mongodb mosh mountd mqtt mqtt-tls ms-wbt mssql munin-node murmur mysql nfs nfs3 nmea-0183 nrpe ntp nut openvpn ovirt-imageio ovirt-storageconsole ovirt-vmconsole plex pmcd pmproxy pmwebapi pmwebapis pop3 pop3s postgresql privoxy proxy-dhcp ptp pulseaudio puppetmaster quassel radius redis rpc-bind rsh rsyncd rtsp salt-master samba samba-client samba-dc sane sip sips slp smtp smtp-submission smtps snmp snmptrap spideroak-lansync squid ssh steam-streaming svdrp svn syncthing syncthing-gui synergy syslog syslog-tls telnet tftp tftp-client tinc tor-socks transmission-client upnp-client vdsm vnc-server wbem-http wbem-https wsman wsmans xdmcp xmpp-bosh xmpp-client xmpp-local xmpp-server zabbix-agent zabbix-server
[root@blog ~]#

「syslog」が使えそう。あと、今回は不要だけど「syslog-tls」も入れておくか、ということで以下を実行

[root@niselog ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp14s0
  sources:
  services: dhcpv6-client http https ssh
  ports: 
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

[root@niselog ~]# firewall-cmd --permanent --zone=public --add-service=syslog
success
[root@niselog ~]# firewall-cmd --permanent --zone=public --add-service=syslog-tls
success
[root@niselog ~]# firewall-cmd --reload
success
[root@niselog ~]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: enp14s0
  sources:
  services: dhcpv6-client http https ssh syslog syslog-tls
  ports: 
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

[root@niselog ~]#

また、「22.5. ロギングサーバーでの RSYSLOG の設定」によればSELinuxによりポート制限をしている事もあるので「semanage port -l」でsyslogに許可されているポートを確認しろ、とのこと。

[root@niselog ~]# semanage port -l | grep syslog
syslog_tls_port_t              tcp      6514, 10514
syslog_tls_port_t              udp      6514, 10514
syslogd_port_t                 tcp      601, 20514
syslogd_port_t                 udp      514, 601, 20514
[root@niselog ~]#

その2 rsyslogにポート514での受信許可

標準の/etc/rsyslog.conf ではポート514の使用について下記の様にコメントアウトされています。

# Provides UDP syslog reception
#$ModLoad imudp
#$UDPServerRun 514

# Provides TCP syslog reception
#$ModLoad imtcp
#$InputTCPServerRun 514

これのコメントを外します。

# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514

# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

設定後、rsyslogの再起動で/var/log/messagesにログがたまる。

<pre class="wp-block-syntaxhighlighter-code">[root@niselog rsyslog.d]# systemctl restart rsyslog
[root@niselog rsyslog.d]# systemctl status -l rsyslog
● rsyslog.service - System Logging Service
   Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled)
   Active: active (running) since 金 2019-11-01 11:04:53 JST; 1s ago
     Docs: man:rsyslogd(8)
           <blockquote class="wp-embedded-content" data-secret="pQOPhRmYhk"><a href="https://www.rsyslog.com/doc/">RSyslog Documentation</a></blockquote><iframe title="&#8220;RSyslog Documentation&#8221; &#8212; rsyslog" class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" src="https://www.rsyslog.com/doc/embed/#?secret=pQOPhRmYhk" data-secret="pQOPhRmYhk" width="525" height="296" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
 Main PID: 2872 (rsyslogd)
   CGroup: /system.slice/rsyslog.service
           mq2872 /usr/sbin/rsyslogd -n

11月 01 11:04:53 niselog systemd[1]: Starting System Logging Service...
11月 01 11:04:53 niselog rsyslogd[2872]:  [origin software="rsyslogd" swVersion="8.24.0-41.el7_7.2" x-pid="2872" x-info="http://www.rsyslog.com"] start
11月 01 11:04:53 niselog systemd[1]: Started System Logging Service.
[root@niselog rsyslog.d]#</pre>

その3 ログを分ける

標準だと/var/log/messagesにまとめられてしまうため、ログを分離する。

/etc/rsyslog.d/remote.conf というファイルを新規作成し、下記を書いた。(「gateway」はルータについているホスト名)

if $fromhost == 'gateway' then {
  -/var/log/remote/gateway.log
  stop
}

これを設定したあと、「systemctl restart rsyslog」で/var/log/remote/gateway.log にログが保存されるようになった。

なお、最初、上記の「-/var/log/remote/gateway.log」ところは「-/var/log/remote/%fromhost%.log」として%fromhost%がホスト名に置き換わることを期待したのですが、実際に作られたログファイル名は「 /var/log/remote/%fromhost%.log 」とそのままでした・・・

Image may be NSFW.
Clik here to view.

PinePhone BraveHeart Limited Edition購入申し込み

Allwinner A64搭載のオープンハードウェア「PinePhone BraveHeart Limited Edition」の申し込みが始まったので手続きしてみた。

「BraveHeart Limited Edition」 とは「勇者の心」、意訳すると「人柱エディション」ですね。

どう人柱なのかというと、まず、発送時のハードウェアにはOSが入っていない。

先行してOS開発者向けにPinePhone Developer kitというのが2019年初頭から出回っていて、いろんなOSが開発中。

どんなOSがあるかと「Project Don’t be evil」のページを確認してみると・・・

OS名称ベース
Postmarket OSAlpine Linux
UBPortsUbuntu Touch
KDE Plasma MobileUbuntu Touch+Lineage OS/KDE
Sailfish OSMeeGo OSだけどAndroid寄りの商用
Maemo LesteMeeGo OS 
NixOSLinuxベースの関数型ディストリビューション
LunaOSpalmOSの末裔webOS
Nemo MobileSailfish OSの全てをOSS実装に?

Allwinner SoCなだけあってLinux kernelベースのものがずらりと並んでいます。

現状は基本的にUbuntuなどが稼働しているマシンにUSB接続してfirmwareを書き込むという感じになっている。

人柱エディションを卒業するまではこの初期導入の高さは抜けられないでしょう。

次に、メモリスペックが2GBというところが難点といえば難点ですが、そもそも↑であがっているOSが動くハードウェアでメモリ2GBって普通なので、まぁ・・・

PinePhoneの通信関連のスペックは下記の様になっている。

  • Worldwide, Global LTE bands
  • LTE-FDD: B1/ B2/ B3/ B4/ B5/ B7/ B8/ B12/ B13/ B18/ B19/ B20/ B25/ B26/ B28
  • LTE-TDD: B38/ B39/ B40/ B41
  • WCDMA: B1/ B2/ B4/ B5/ B6/ B8/ B19
  • GSM: 850/900/1800/1900MHz
  • WLAN: Wi-Fi 802.11 b/g/n, single-band, hotspot
  • Bluetooth: 4.0, A2DP
  • GPS: Yes, with A-GPS, GLONASS

使用されるモジュールは「Quectel Wireless EG25-G」で、メーカ製品ページには「JATE/TELEC」と技適などが取得されているような記述が・・・まぁ、アンテナ込みでの認証になるところチップのみ提供っぽいから無理なような気が・・・

ともかく到着が楽しみです

Image may be NSFW.
Clik here to view.

楽天モバイルの無料サポータープログラムをWindowsタブレットDELL Venue 10 Pro 5055で使って見た

楽天モバイルの無料サポータープログラムのSIMをmicroSIMスロットがついているDELL Venue 10 Pro 5055にさしてみた。

SIMをさしてみると「Rakuten」と認識はしているものの通信が出来る状態にならない。

自宅だとバンド3の入りが悪いので安定してバンド3で受信できる環境で試してみると、アンテナピクトが増減しているので受信できているものの通信はできない。

DELL Venue 10 Proで使用されている通信カードは Dell wireless 5810e で、現状のfirmwareは FIH7160_V1.2_WW_01.1528.31 だった。

新しいバージョンってあるのか?と探してみたところ「Dell Wireless 5810e LTE Mobile Broadband Driver」に「汎用ファームウェアv1616.01」という記載が・・・

そういえば、Windows10をインストールした際にWindows標準ドライバで認識したのでこれをインストールしてなかったな、ということでインストール。

インストール後に再起動し、初回ログインをすると、firmwareアップデートが実行されました。

その結果、firmwareは「FIH7160_V1.2_WW_01.1616.01」になり、アンテナ認識は「Rakuten(LTE)」表記に変化。

Image may be NSFW.
Clik here to view.

APN設定は、以下でOKでした。

APN名:rakuten.jp
ユーザ名/パスワード:空欄
サインイン情報:なし
IPの種類:既定

なお、動作状況からみると Dell wireless 5810e はバンド18には非対応である模様

FIH7160で検索すると「インテル® XMMImage may be NSFW.
Clik here to view.
™
7160 スリムモデム
」が出てくる。どうやらこれを利用しているようだが、対応バンドとしては「15-band LTE, 8-band HSPA, 4-band EDGE, MSC33」としか記載されていないので実際にどこで使えるのかが分からない。

Image may be NSFW.
Clik here to view.

技適未取得機器を用いた実験等の特例制度で使えるものは何か確認してみた

技適未取得機器を用いた実験等の特例制度」の「技適未取得機器を用いた実験等の特例制度 関係法令」を見ると下記の記載がある。

法第四条の二第二項の規定により法第三章に定める技術基準に相当する技術基準として総務大臣が指定する技術基準は、次のいずれかに該当するものとする。
一 法第三章に定める技術基準
二 国際電気通信連合無線通信部門の勧告M.1450-5に定める技術基準及び米国電気電子学会が定める規格のうち、次のいずれかのもの
1 IEEE802.11b
2 IEEE802.11a
3 IEEE802.11g
4 IEEE802.11n
5 IEEE802.11ac
6 IEEE802.11ad
7 IEEE802.11ax(Draft 1.0からDraft 4.0まで)
三 Bluetooth SIGが定める規格のうち、Bluetooth Core Specification Version 2.1からVersion 5.1までのいずれかのもの
四 米国電気電子学会が定める規格のうち、IEEE802.15.4
五 一般社団法人電波産業会が定める規格のうち、ARIB STD-T107又はARIB STD-T108
六 LoRa Allianceが定める規格のうち、LoRaWAN AS923
七 Sigfox S.A.が定める規格のうち、Sigfox RC3
八 国際電気通信連合電気通信標準化部門の勧告G.9959に定める技術基準
九 米国電気電子学会が定める規格のうち、IEEE802.15.4g
十 XGPフォーラムが定める規格のうち、A-GN6.00
十一 欧州電気通信標準化機構が定める規格のうち、ETSI TS 103 357 Lfour family
十二 欧州電気通信標準化機構が定める規格のうち、ETSI EN 302 264又はETSI EN 303 360

これらの示す機器が具体的に何であるのかを確認した。

一 法第三章に定める技術基準

該当の記述は「電波法 第三章の二 特定無線設備の技術基準適合証明

「技術基準適合証明」と「特定無線設備の工事設計についての認証」の双方を指している
一般的には両者をあわせて「技適など」と表現される。

二 国際電気通信連合無線通信部門の勧告M.1450-5に定める技術基準及び米国電気電子学会が定める規格のうち、次のいずれかのもの

1 IEEE802.11b
2 IEEE802.11a
3 IEEE802.11g
4 IEEE802.11n
5 IEEE802.11ac
6 IEEE802.11ad
7 IEEE802.11ax(Draft 1.0からDraft 4.0まで)
まぁ、2.5GHzと5Ghzを使用するWiFiのことである。

三 Bluetooth SIGが定める規格のうち、Bluetooth Core Specification Version 2.1からVersion 5.1までのいずれかのもの

そのままBluetoothデバイスである。

四 米国電気電子学会が定める規格のうち、IEEE802.15.4

LR-WPAN(Low Rate Wireless Personal Area Network)である ZigBee,Wi-SUN,EchoNet Liteなどのスマートグリッド機器などが該当すると思うが、後述の802.15.4gとの違いがいまいち認識出来ていない。

920MHz帯を使用する機器を想定しているものと思われる。

五 一般社団法人電波産業会が定める規格のうち、ARIB STD-T107又はARIB STD-T108

ARIB STD-T107は「特定小電力無線局920MHz帯移動体識別用無線設備」でスマートタグ

ARIB STD-T108は「920MHz帯テレメータ用、テレコントロール用およびデータ伝送用無線設備」で、Z-Waveなど。また、後述するG.9959相当

六 LoRa Allianceが定める規格のうち、LoRaWAN AS923

「LoRaWAN V1.0.2 forAS923MHz ISM Band(AS923)」というのは

ヨーロッパ向け認証プログラムをベースとし、日本を含むアジア 10 カ国向けに周波数帯(923MHz)などを変更した認証プログラム。対象国は、日本、ブルネイ、カンボジア、インドネシア、ラオス、ニュージーランド、シンガポール、台湾、タイ、ベトナムの 10 の国や地域

https://www.toyo.co.jp/files/user/corporate/doc/release/170905_TOYO_LoRaWANAS923_65135.pdf

LoRaWAN® Regional Parameters」によるとChannel Planは10種類あるようだ。

Image may be NSFW.
Clik here to view.

七 Sigfox S.A.が定める規格のうち、Sigfox RC3

Sigfoxの「Geographical zones」の「RC3」は日本向け設定という意味で、923.200MHzを使用する。

なお、RC1~RC7まであるが全部使用する周波数が異なるので地域違いは使うことができない。

Image may be NSFW.
Clik here to view.

八 国際電気通信連合電気通信標準化部門の勧告G.9959に定める技術基準

G.9959 : Short range narrow-band digital radiocommunication transceivers – PHY, MAC, SAR and LLC layer specifications」でARIB STB-T108 相当(Z-waveなど)

九 米国電気電子学会が定める規格のうち、IEEE802.15.4g

すでに登場しているIEEE802.15.4の詳細規格で、スマートメーター用の規格・・・という認識でいいのだろうか?

十 XGPフォーラムが定める規格のうち、A-GN6.00

sXGP (shared XGP) Specifications Version 1」で1.9GHzを使用する新自営システム

周波数帯域を1.9GHz帯としたTD-LTE方式の小電力携帯電話システムで、構内PHSの代わりに使用されることになるが、スマホが流用できるので期待されているもの。

十一 欧州電気通信標準化機構が定める規格のうち、ETSI TS 103 357 Lfour family

Short Range Devices;Low Throughput Networks (LTN);Protocols for radio interface A

一見、EU圏発祥の規格っぽいが、「SONY ELTRES」で920MHz帯を使用する。

十二 欧州電気通信標準化機構が定める規格のうち、ETSI EN 302 264又はETSI EN 303 360

ETSI EN 302 264は「Short Range Devices;Transport and Traffic Telematics (TTT); Short Range Radar equipment operating in the 77 GHz to 81 GHz band; Harmonised Standard covering the essential requirements of article 3.2 of Directive 2014/53/EU

77GHz~81GHz帯を使用する機器。79GHz帯高分解能レーダシステムで、ARIB STD-T111「79GHz帯高分解能レーダー」

ETSI EN 303 360「Short Range Devices; Transport and Traffic Telematics (TTT); Radar equipment operating in the 76 GHz to 77 GHz range; Harmonised Standard covering the essential requirements of article 3.2 of Directive 2014/53/EU; Obstacle Detection Radars for Use on Manned Rotorcraft

76GHz~77GHz帯を使用する機器。76GHz帯ミリ波レーダシステムで ARIB STD-T48「特定省電力無線局ミリ波レーダー用無線設備」

どちらも車載レーダーとして使用されるため、自動運転用のシステム関連と想定される。(下記は「電波防護に関する国外の基準・規制動向調査」からの引用」

Image may be NSFW.
Clik here to view.
Image may be NSFW.
Clik here to view.
Image may be NSFW.
Clik here to view.

NetAppのperfstatデータ収集ツールで取得したファイルを分解する

現用のNetAppの状況確認をするために「perfstatデータ収集ツール」というのが配布されている。

rsh/sshで対象のNetAppにログインして、いろんなコマンドを実行して、1つのテキストファイルとして出力をする。

この「1つのテキストファイル」というのがくせ者で、200MBぐらいのファイルができたりする。

これだとエディタで取り扱いづらいので細かく分割することにした。

中をみてみると「=-=-=-=-=-= CONFIG IPアドレス PRESTATS =-=-=-=-=-= aggr status -v」という感じで「 =-=-=-=-=-= 」区切りでファイルが出力されている。

それを元にファイルを分割したのが下記スクリプト。

$inputfile="x:\tmp\source\perfstat7_20191122_1400.txt"
$outdir="x:\tmp\output"

$filename=""

Get-Content $inputfile -Encoding UTF8 | ForEach-Object {
    $line=$_
    if( $line.Contains("=-=-=-=-=-=") ){
        $filename=$line
        $filename=$filename.Replace("=-=-=-=-=-= ","")
        $filename=$filename.Replace("/","-")
        $filename=$filename.Replace(":","")
        $filename=$outdir+"\"+$filename+".txt"
        New-Item $filename
    }
    if($filename -ne ""){
        $line | Add-Content $filename
    }
}

今回は1回しか実行しないので速度を気にする必要がないので簡単さを優先している。

もし、出力速度を気にするのであれば1行毎にAdd-Contentするのは非常に効率が悪いので工夫が必要となる。

参考例:「PowerShellで巨大なファイルをGet-Contentし、Export-Csvするのを省メモリで行う

Image may be NSFW.
Clik here to view.
Viewing all 1108 articles
Browse latest View live