カテゴリー別アーカイブ: 構築

ソーラーとかカウルとか。

ソーラーパネルをテラスに。

そんでもって、チャージコントローラ−とバッテリーへ接続。

ちゃんと充電できてるヨ!

お次は、ヘッドライト交換!(LEDなやつに、H4/PH7/PH8対応品)

↑LED明るいヨ!(帰宅時)

帰ってきてからは、アドレスのカウル交換!

作業前に、ヤツがきた!

レプリカカウル

交換したよ!

Before/After

↑左:交換前(割れてるヨ)、右:新品レプリカ品

Orange Pi Plus2 (その2)

いろいろ設定。

boot時のオプションなど。

/boot/script.binの変更 (fedora24の場合)

  • # dnf install sunxi-tools
    # ln -s /usr/bin/sunxi-fexc /usr/local/bin/bin2fex
  • # cd /boot
    # bin2fex script.bin > HOGEHOGE.fex
    # vi HOGEHOGE.fex
    # fex2bin HOGEHOGE.fex script.bin
  • # reboot

CPU Clockの上限を1.54GHzへ。

  • fexファイル修正 (変更箇所のみ)
    cooler0 = "1536000 4 4294967295 0"
    extremity_freq = 1536000000
    max_freq = 1536000000
    LV1_freq = 1536000000
    LV1_volt = 1500
    
  • fex2binで更新し、reboot

不要なドライバーをblacklist化

  • # vi /etc/modprobe.d/opp-blacklist.conf
    blacklist pcf8591
    blacklist bmp085
    blacklist 8189es
    • pcf8691,bmp085はオンボードなi2cデバイスらしいけどいらないので。
    • 8189esはオンボードwifi、こちらも、技適通ってないし、いらないや。

wiringOPビルド

  • # git clone https://github.com/zhaolei/WiringOP.git -b h3
    # cd WiringOP
    # sh ./build

RTC追加

  • Orange Pi Plus2は、オンボードでrtcチップ載っていますが、バックアップバッテリーとクリスタル(32.768kHz)が載ってなく事実上使い物にならないので、i2cなrtcを追加することに。
  • 今回は、ds3231というチップのrtcに。
  • 適当にスクリプト作成
    # cat /opt/bin/set-clock.sh
    #!/bin/bash
    echo ds3231 0x68 > /sys/class/i2c-adapter/i2c-0/new_device 2>/dev/null
    sleep 1
    /usr/sbin/hwclock -f /dev/rtc1 -s
    # chmod 750 /opt/bin/set-clock.sh
  • サービス登録のファイル作成
    # cat /etc/systemd/system/rtc.service 
    [Unit]
    Description=set clock from rtc
    #Before=dbus.service
    Before=chronyd.service
    
    [Service]
    Type=oneshot
    ExecStart=/opt/bin/set-clock.sh
    RemainAfterExit=yes
    
    [Install]
    WantedBy=multi-user.target
  • サービス登録
    • # systemctl enable rtc.service

Orange Pi Plus2

アリババで発注したOrange Pi Plus2が届いた。

RPi3との比較 (主な違い)

  • CPU
    • RPi3: Quad Core 1.2GHz Broadcom BCM2837 64bit CPU
    • OPP2: H3 Quad-core Cortex-A7 H.265/HEVC 4K  / 1.6GHz
  • RAM
    • RPi3: DDR2 1GB
    • OPP2: DDR3 2GB
  • ストレージ
    • RPi3: オンボードストレージなし、microSD
    • OPP2: オンボード eMMC 16GB、microSD、SATA-I/F
  • Ethernet
    • RPi3: 10/100 Ethernet RJ45
    • OPP2: 10/100/1000M Ethernet RJ45
  • ボードサイズ
    • RPi3: 85mm * 56mm
    • OPP2: 108mm * 67mm
  • 価格
    • RPi3: $38.5~ (アリババ)
    • OPP2: $49~ (アリババ)

そんな感じで、いろいろ実験。

まずは、loborisさん公開のFedora 22を試してみることに。

すんなり動きました。中身をF24に入れかえても動いてます。

が、Kernelがちと古くて、挙動も怪しい。USBキーボード刺してももconsoleで入力できなかったりと。(w

というわけで、いったん、ArmbianのUbuntu_xenialを入れてみた。
こちらも、すんなり起動。

やっぱり、中身をFC24にしてみた。
問題なし!!
コンソールでのキーボードも問題ないです。

というわけで、こいつでいくことに!。

以下、memo

# uname -a
Linux orange-pi-plus2 3.4.113-sun8i #16 SMP PREEMPT Tue Jun 13 14:15:57 CEST 2017 armv7l armv7l armv7l GNU/Linux                                                                                        
# cat /etc/redhat-release 
Fedora release 24 (Twenty Four)
# lscpu
Architecture:          armv7l                                                                                                                                                                           
Byte Order:            Little Endian                                                                                                                                                                    
CPU(s):                4                                                                                                                                                                                
On-line CPU(s) list:   0-3                                                                                                                                                                              
Thread(s) per core:    1                                                                                                                                                                                
Core(s) per socket:    4                                                                                                                                                                                
Socket(s):             1                                                                                                                                                                                
CPU max MHz:           1296.0000                                                                                                                                                                        
CPU min MHz:           480.0000
# free
              total        used        free      shared  buff/cache   available                                                                                                                         
Mem:        2062620       47928     1061924       13412      952768     1979391                                                                                                                         
Swap:        102396           0      102396 
# cpupower frequency-info
analyzing CPU 0:
  driver: cpufreq-sunxi
  CPUs which run at the same hardware frequency: 0 1 2 3
  CPUs which need to have their frequency coordinated by software: 0 1 2 3
  maximum transition latency: 2.00 ms
  hardware limits: 480 MHz - 1.54 GHz
  available frequency steps:  60.0 MHz, 120 MHz, 240 MHz, 312 MHz, 408 MHz, 480 MHz, 504 MHz, 528 MHz, 576 MHz, 600 MHz, 624 MHz, 648 MHz, 672 MHz, 720 MHz, 768 MHz, 816 MHz, 864 MHz, 912 MHz, 960 MHz, 1.01 GHz, 1.06 GHz, 1.10 GHz, 1.15 GHz, 1.20 GHz, 1.25 GHz, 1.30 GHz, 1.34 GHz, 1.44 GHz, 1.54 GHz
  available cpufreq governors: interactive conservative ondemand powersave userspace performance
  current policy: frequency should be within 480 MHz and 1.54 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency: 1.54 GHz (asserted by call to hardware)
# df -h
Filesystem      Size  Used Avail Use% Mounted on                                                                                                                                                        
udev            877M     0  877M   0% /dev                                                                                                                                                              
tmpfs           202M   14M  189M   7% /run                                                                                                                                                              
/dev/mmcblk0p1   15G  3.0G   12G  21% /                                                                                                                                                                 
tmpfs          1008M     0 1008M   0% /dev/shm                                                                                                                                                          
tmpfs          1008M     0 1008M   0% /sys/fs/cgroup                                                                                                                                                    
tmpfs          1008M     0 1008M   0% /tmp                                                                                                                                                              
tmpfs           202M  4.0K  202M   1% /run/user/0
# fdisk -l /dev/mmcblk0                                                                                                                                                         
Disk /dev/mmcblk0: 14.6 GiB, 15634268160 bytes, 30535680 sectors                                                                                                                                        
Units: sectors of 1 * 512 = 512 bytes                                                                                                                                                                   
Sector size (logical/physical): 512 bytes / 512 bytes                                                                                                                                                   
I/O size (minimum/optimal): 512 bytes / 512 bytes                                                                                                                                                       
Disklabel type: dos                                                                                                                                                                                     
Disk identifier: 0x15592fef                                                                                                                                                                             
                                                                                                                                                                                                        
Device         Boot Start      End  Sectors  Size Id Type                                                                                                                                               
/dev/mmcblk0p1       8192 30535679 30527488 14.6G 83 Linux                                                                                                                                              
# cat /proc/interrupts 
           CPU0       CPU1       CPU2       CPU3                                                                                                                                                        
  3:          1          0          0          0  sunxi_gpio_irq_chip  gk_EINT                                                                                                                          
 29:    1210550     327635     534201     153257       GIC  arch_timer                                                                                                                                  
 30:          0          0          0          0       GIC  arch_timer                                                                                                                                  
 32:        328          0          0          0       GIC  uart0                                                                                                                                       
 38:         18          0          0          0       GIC  twi0                                                                                                                                        
 39:         18          0          0          0       GIC  twi1                                                                                                                                        
 43:          0          0          0          0       GIC  PA                                                                                                                                          
 49:          0          0          0          0       GIC  PG                                                                                                                                          
 50:          0          0          0          0       GIC  sunxi_timer0                                                                                                                                
 63:          0          0          0          0       GIC  Thermal                                                                                                                                     
 72:          1          0          0          0       GIC  sunxi-rtc alarm                                                                                                                             
 77:          1          0          0          0       GIC  PL                                                                                                                                          
 81:          0          0          0          0       GIC  arisc_hwmsgbox_irq                                                                                                                          
 82:          0          0          0          0       GIC  sunxi_dmac                                                                                                                                  
 90:          0          0          0          0       GIC  cedar_dev                                                                                                                                   
 92:          0          0          0          0       GIC  sunxi-mmc                                                                                                                                   
 93:      18310          0          0          0       GIC  sunxi-mmc                                                                                                                                   
 94:     909231          0          0          0       GIC  sunxi-mmc                                                                                                                                   
 97:          0          0          0          0       GIC  spi0                                                                                                                                        
104:          0          0          0          0       GIC  ehci_hcd:usb1                                                                                                                               
105:          0          0          0          0       GIC  ohci_hcd:usb4                                                                                                                               
106:         91          0          0          0       GIC  ehci_hcd:usb2                                                                                                                               
107:          0          0          0          0       GIC  ohci_hcd:usb5                                                                                                                               
110:        118          0          0          0       GIC  ehci_hcd:usb3                                                                                                                               
111:          0          0          0          0       GIC  ohci_hcd:usb6                                                                                                                               
114:     183812          0          0          0       GIC  gmac0                                                                                                                                       
118:    3847283          0          0          0       GIC  dispaly                                                                                                                                     
IPI0:          0          0          0          0  CPU wakeup interrupts                                                                                                                                
IPI1:          0          0          0          0  Timer broadcast interrupts                                                                                                                           
IPI2:     176557     167026      80912     118984  Rescheduling interrupts                                                                                                                              
IPI3:        263        283        177        271  Function call interrupts                                                                                                                             
IPI4:          3          3          2          3  Single function call interrupts                                                                                                                      
IPI5:          0          0          0          0  CPU stop interrupts                                                                                                                                  
IPI6:          0          0          0          0  CPU backtrace                                                                                                                                        
IPI7:          0          0          0          0  completion interrupts                                                                                                                                
Err:          0                                                                                                                                                                                         
# ethtool eth0
Settings for eth0:                                                                                                                                                                                      
        Supported ports: [ TP MII ]                                                                                                                                                                     
        Supported link modes:   10baseT/Half 10baseT/Full                                                                                                                                               
                                100baseT/Half 100baseT/Full                                                                                                                                             
                                1000baseT/Half 1000baseT/Full                                                                                                                                           
        Supported pause frame use: No                                                                                                                                                                   
        Supports auto-negotiation: Yes                                                                                                                                                                  
        Advertised link modes:  10baseT/Half 10baseT/Full                                                                                                                                               
                                100baseT/Half 100baseT/Full                                                                                                                                             
                                1000baseT/Half 1000baseT/Full                                                                                                                                           
        Advertised pause frame use: No                                                                                                                                                                  
        Advertised auto-negotiation: Yes                                                                                                                                                                
        Speed: 1000Mb/s                                                                                                                                                                                 
        Duplex: Full                                                                                                                                                                                    
        Port: MII                                                                                                                                                                                       
        PHYAD: 0                                                                                                                                                                                        
        Transceiver: external                                                                                                                                                                           
        Auto-negotiation: on                                                                                                                                                                            
        Link detected: yes
# ethtool -i eth0                                                                                                                                                               
driver: sunxi_geth                                                                                                                                                                                      
version: SUNXI Gbgit driver V1.1                                                                                                                                                                        
firmware-version:                                                                                                                                                                                       
expansion-rom-version:                                                                                                                                                                                  
bus-info:                                                                                                                                                                                               
supports-statistics: no                                                                                                                                                                                 
supports-test: no                                                                                                                                                                                       
supports-eeprom-access: no                                                                                                                                                                              
supports-register-dump: no                                                                                                                                                                              
supports-priv-flags: no
# gpio readall
 +-----+-----+----------+------+---+-Orange Pi+---+---+------+---------+-----+--+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 |     |     |     3.3v |      |   |  1 || 2  |   |      | 5v       |     |     |
 |  12 |   8 |    SDA.0 | ALT5 | 0 |  3 || 4  |   |      | 5V       |     |     |
 |  11 |   9 |    SCL.0 | ALT5 | 0 |  5 || 6  |   |      | 0v       |     |     |
 |   6 |   7 |   GPIO.7 | ALT3 | 0 |  7 || 8  | 0 | ALT4 | TxD3     | 15  | 13  |
 |     |     |       0v |      |   |  9 || 10 | 0 | ALT4 | RxD3     | 16  | 14  |
 |   1 |   0 |     RxD2 | ALT5 | 0 | 11 || 12 | 0 | ALT3 | GPIO.1   | 1   | 110 |
 |   0 |   2 |     TxD2 | ALT5 | 0 | 13 || 14 |   |      | 0v       |     |     |
 |   3 |   3 |     CTS2 | ALT5 | 0 | 15 || 16 | 0 | ALT3 | GPIO.4   | 4   | 68  |
 |     |     |     3.3v |      |   | 17 || 18 | 0 | ALT3 | GPIO.5   | 5   | 71  |
 |  64 |  12 |     MOSI | ALT4 | 0 | 19 || 20 |   |      | 0v       |     |     |
 |  65 |  13 |     MISO | ALT4 | 0 | 21 || 22 | 0 | ALT5 | RTS2     | 6   | 2   |
 |  66 |  14 |     SCLK | ALT4 | 0 | 23 || 24 | 0 | ALT4 | CE0      | 10  | 67  |
 |     |     |       0v |      |   | 25 || 26 | 0 | ALT3 | GPIO.11  | 11  | 21  |
 |  19 |  30 |    SDA.1 | ALT4 | 0 | 27 || 28 | 0 | ALT4 | SCL.1    | 31  | 18  |
 |   7 |  21 |  GPIO.21 |  OUT | 0 | 29 || 30 |   |      | 0v       |     |     |
 |   8 |  22 |  GPIO.22 |  OUT | 0 | 31 || 32 | 0 | ALT3 | RTS1     | 26  | 200 |
 |   9 |  23 |  GPIO.23 | ALT3 | 0 | 33 || 34 |   |      | 0v       |     |     |
 |  10 |  24 |  GPIO.24 | ALT3 | 0 | 35 || 36 | 0 | ALT3 | CTS1     | 27  | 201 |
 |  20 |  25 |  GPIO.25 | ALT3 | 0 | 37 || 38 | 0 | ALT3 | TxD1     | 28  | 198 |
 |     |     |       0v |      |   | 39 || 40 | 0 | ALT3 | RxD1     | 29  | 199 |
 +-----+-----+----------+------+---+----++----+---+------+----------+-----+-----+
 | BCM | wPi |   Name   | Mode | V | Physical | V | Mode | Name     | wPi | BCM |
 +-----+-----+----------+------+---+-Orange Pi+---+------+----------+-----+-----+
# cat unixbench-5.1.3/result/orange-pi-plus2-2017-08-07-01
   BYTE UNIX Benchmarks (Version 5.1.3)

   System: orange-pi-plus2: GNU/Linux
   OS: GNU/Linux -- 3.4.113-sun8i -- #16 SMP PREEMPT Tue Jun 13 14:15:57 CEST 2017
   Machine: armv7l (armv7l)
   Language: en_US.utf8 (charmap="UTF-8", collate="UTF-8")
   14:47:27 up 29 min,  2 users,  load average: 1.25, 0.93, 0.66; runlevel 2000-01-01

------------------------------------------------------------------------
Benchmark Run: Mon Aug 07 2017 14:47:27 - 15:15:30
4 CPUs in system; running 1 parallel copy of tests

Dhrystone 2 using register variables        6349037.5 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     1006.8 MWIPS (10.0 s, 7 samples)
Execl Throughput                                693.4 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks         98028.9 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           28717.7 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        246639.2 KBps  (30.0 s, 2 samples)
Pipe Throughput                              221516.1 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  32429.3 lps   (10.0 s, 7 samples)
Process Creation                               1906.4 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   1065.3 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    280.4 lpm   (60.1 s, 2 samples)
System Call Overhead                         465673.3 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0    6349037.5    544.0
Double-Precision Whetstone                       55.0       1006.8    183.1
Execl Throughput                                 43.0        693.4    161.3
File Copy 1024 bufsize 2000 maxblocks          3960.0      98028.9    247.5
File Copy 256 bufsize 500 maxblocks            1655.0      28717.7    173.5
File Copy 4096 bufsize 8000 maxblocks          5800.0     246639.2    425.2
Pipe Throughput                               12440.0     221516.1    178.1
Pipe-based Context Switching                   4000.0      32429.3     81.1
Process Creation                                126.0       1906.4    151.3
Shell Scripts (1 concurrent)                     42.4       1065.3    251.2
Shell Scripts (8 concurrent)                      6.0        280.4    467.4
System Call Overhead                          15000.0     465673.3    310.4
                                                                   ========
System Benchmarks Index Score                                         231.2

------------------------------------------------------------------------
Benchmark Run: Mon Aug 07 2017 15:15:30 - 15:43:43
4 CPUs in system; running 4 parallel copies of tests

Dhrystone 2 using register variables       20145461.3 lps   (10.0 s, 7 samples)
Double-Precision Whetstone                     3392.8 MWIPS (10.2 s, 7 samples)
Execl Throughput                               1480.6 lps   (29.9 s, 2 samples)
File Copy 1024 bufsize 2000 maxblocks        150785.3 KBps  (30.0 s, 2 samples)
File Copy 256 bufsize 500 maxblocks           46616.7 KBps  (30.0 s, 2 samples)
File Copy 4096 bufsize 8000 maxblocks        372879.2 KBps  (30.0 s, 2 samples)
Pipe Throughput                              708030.9 lps   (10.0 s, 7 samples)
Pipe-based Context Switching                  98681.5 lps   (10.0 s, 7 samples)
Process Creation                               4170.1 lps   (30.0 s, 2 samples)
Shell Scripts (1 concurrent)                   2120.6 lpm   (60.1 s, 2 samples)
Shell Scripts (8 concurrent)                    291.6 lpm   (60.5 s, 2 samples)
System Call Overhead                        1481920.1 lps   (10.0 s, 7 samples)

System Benchmarks Index Values               BASELINE       RESULT    INDEX
Dhrystone 2 using register variables         116700.0   20145461.3   1726.3
Double-Precision Whetstone                       55.0       3392.8    616.9
Execl Throughput                                 43.0       1480.6    344.3
File Copy 1024 bufsize 2000 maxblocks          3960.0     150785.3    380.8
File Copy 256 bufsize 500 maxblocks            1655.0      46616.7    281.7
File Copy 4096 bufsize 8000 maxblocks          5800.0     372879.2    642.9
Pipe Throughput                               12440.0     708030.9    569.2
Pipe-based Context Switching                   4000.0      98681.5    246.7
Process Creation                                126.0       4170.1    331.0
Shell Scripts (1 concurrent)                     42.4       2120.6    500.1
Shell Scripts (8 concurrent)                      6.0        291.6    486.0
System Call Overhead                          15000.0    1481920.1    987.9
                                                                   ========
System Benchmarks Index Score                                         506.1

そんな感じ。

ボードサイズ比較

上:Orange Pi Plus2、下:Raspberry Pi3

[IoT]mz20mon

車載Raspberry Piシリーズ4台目を投入したので、ちょこっと説明。

  • 1台目: Raspberry Pi2
    エアコンパネル専用 (IGN-ON時のみ稼働)
  • 2台目:Raspberry Pi Zero
    ステアリングモニタ専用 (IGN-ON時のみ稼働)
  • 3台目:Raspberry Pi3
    LEDマトリックスパネル制御専用 (IGN-ON時のみ稼働、たまに、手動で稼働)
  • 4台目:Raspberry Pi2 ※今回はこの話
    多目的管理サーバ (常時稼働)

ざっくり構成

上記は、4台目のRpi2に接続している簡易構成図。

電源関連

  • 本システム専用にDeepCycleBattery 12V/50Ahを用意 → ブログ参照
  • 充電は走行中(IGN-ON)時に、走行充電器にて
  • Rpi2/関連システムには、12V→5Vレギュレータより供給

OS

  • Fedora24 for ARMv7
  • メインストレージは、16GB microSD
  • 追加ストレージに、64GB SSD(USB接続)

ネットワーク

  • インターネット接続
    Pixela社のLTE USBドングル PIX-MT100 に、OCNモバイルOneのSIMをさして通信
  • VPN
    tachibanaに、VPN接続
  • LAN
    オンボードEthernetにて、既存車内LANと接続

機能仕様等

  • dhcpサーバ
  • ntpサーバ
  • DNSリゾルバー(cache)
  • NAT Router機能
  • mysql(MariaDB)
  • 各種ロガー
    • Location
    • 温度・湿度・気圧
    • 電圧・電流
    • SPD、Rev、INJ、加吸圧、水温、その他(todo)

監視

  • tachibanaより、VPN経由で監視
  • 監視agentは、zabbix-agent

    ↑サンプル

センサーとか

  • 電流・電圧センサー1  (INA226iso)
    本システムの消費電力(12Vライン側)を計測
    zabbixモニタリング
    mysqlへロギング
  • 電流・電圧センサー2 (INA226iso-100)
    オルタネータハイサイド電流・電圧計測
    zabbixモニタリング
    mysqlへロギング
    ※まだ、シャント抵抗仮設置しただけ。
  • 温度・湿度・気圧センサー (BME280)
    トランク内の温度・湿度・気圧を計測
    zabbixモニタリング
    mysqlへロギング
  • GPSセンサー (GPS受信キット)
    現在地記録
    mysqlへロギング
    MQTT通知

他の構成は、システム詳細を参照。

続く。

車載PC9号機に向けて

メインの車載PCをリプレースするにあたり、次期車載PC9号機の構築を開始しました。

今回は、大幅に変更。

ほぼ0から構築開始。

主な変更点

  • OS変更 CentOS6.7 → Fedora23
  • OS変更に伴い、Systemd関連の整備
  • kernelのチューニング(リビルド)
  • scriptsの全面見直し
  • M/B,CPU変更 (P8H77-i→H81I-Plus、CPUは仮でCore i3-4130T)

↓現在 (進捗30%)

20160405_091818

↑ 自宅開発環境。

全機能再構築完了後に、現在の8号機のケースへ収納予定。

車載PC8号機メンテ

車載PC8号機に、イグニッション&2ndバッテリー電圧表示、電源温度表示アプリ(自作)を設置。

電源データ自体は、PSU(M4-ATX-hv)からUSB経由で取得。

20160329_231936

Ignition: ①の電圧 (M4-ATX-HVのIGNITIONへ接続)

  • IGNオンの時、A接点リレー経由でメインバッテリー(オルタ)の電圧を表示。

2nd-Battery: ②の電圧 (M4-ATX-HVのV+へ接続)

  • メインバッテリー(オルタ)からは、アイソレーター、電源ノイズフィルターを経ているため、若干ドロップしている。

↓ざっくりこんな感じ(オルタは省略しています。。。)

ps_bat

m4-atx-conn