ODROID H2의 빠른 미리보기

다음은 우분투 바이오닉 (Ubuntu Bionic)을 실행하는 세 개의 H2에만 원격 액세스 할 수 있기 때문에 실제 리뷰가 아닙니다. 서버 중심의 사용 사례에 중점을 둔 하드웨어 개요가 더 많습니다.

개요

이 새로운 ODROID 보드는 크기가 110x110x43mm로 어떠한 폼 팩터도 따르지 않습니다. 인클로저 변형을 포함한 자세한 내용은 Hardkernel의 발표 스레드를 참조하십시오 다음은 몇 가지 간단한 사양입니다.

  • 4MiB 캐시를 갖춘 2.4 / 2.5Ghz 쿼드 코어 셀러론 J4105 (제미니 호수 / 14nm)
  • 하이퍼 스레딩은 없지만 AES-NI 및 가상화 준비 : 확장 페이지 테이블 (EPT)이있는 VT-d 및 VT-x
  • 듀얼 채널 DDR4-PC19200 메모리 컨트롤러 (2400MT / s), ECC 가능 없음
  • 총 32GiB RAM을위한 2 개의 SO-DIMM 슬롯 (테스트 한 결과, 인텔 만 8GB 가능 )
  • PCIe Gen2 x4는 PCIe를 제공하는 하나의 M.2 키 M 슬롯에서만 사용 가능
  • 2 개의 RTL8111G 기반 Gbit 이더넷 포트 (각 PCIe 레인 뒤에 있음)
  • 2 x 기본 SATA 3.0
  • 2 x USB3 유형 A 포트
  • 2 x USB2 유형 A 포트 (쌍둥이 호수에는 더 이상 EHCI 컨트롤러가 없으므로 xHCI 컨트롤러에서도 제공됩니다)
  • SSE4.2 가속기 (SMM, FPU, NX, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, AES)
  • 인텔 UHD 그래픽 (Gen9.5) 600 (GT1) 700Mhz
  • HDMI 2.0 및 DP 1.2 다중 비디오 출력

/proc/cpuinfolsusb -vlspci -vv및 lshw가능한 출력 여기 . 가장 중요한 질문은 '이 물건의 비용은 얼마입니까?'입니다. 아직 Hardkernel이 대답하지 못했습니다. 그러나 2018 년 11 월 말에 H2가 선적되기를 원하기 때문에 곧 알게 될 것입니다.

CPU 및 메모리 성능

이 보드 의 'Goldmont Plus'Celeron J4105 는 하나의 활성 CPU 코어와 2396MHz의 코어로 2490MHz까지 클럭 할 수 있으며, 2016 년 Goldmont Pentiums / Celeron (N420x / J420x) 및 +30 RK3399 디자인이나 ODROID XU4 / HC1 / HC2보다 훨씬 빠릅니다. 곧 성능 벤치 마크 결과 가 sbc-bench 결과 테이블 의 맨 아래에 나타납니다 Hardkernel에 따르면 수동 히트 싱크는 지속적인 고부하에 충분합니다 (다시 발표 스레드 참조 )

성능은 메모리 구성에 따라 달라집니다. 최대 성능을 위해서는 동일한 크기의 두 개의 DDR4-PC19200 (2400MT / s) DIMM이 필요합니다 (Gemini Lake는 더 빠른 DDR4-PC21300 모듈을 처리 할 수 ​​없습니다). 유스 케이스에 따라 하나의 모듈 만 사용하면 성능이 20 % 이상 감소 할 수 있습니다. Hardkernel의 FFmpeg 코드 변환 테스트를 참조하십시오.

또한 그래픽 엔진이 작동 할 때 최대 cpufreq가 2.2 GHz 이상임을 유의해야합니다. 추가 성능 테스트를 위해 CPU 유형과 벤치마킹 등 ASRock J4105가 여기에 적용되므로 중요한 것은 인터넷에 의존 할 수 있습니다.

스토리지 성능

나는 3 개의 다른 SSD로만 테스트 할 수있었습니다 iozone -e -I -a -s 100M -r 4k -r 16k -r 512k -r 1024k -r 16384k -i 0 -i 1 -i 2 ; sleep 300 ; iozone -e -I -a -s 2000M -r 16384k -i 0 -i 1 -i 2이유 때문에 중간에 300 초 동안 잠을 잤습니다 )

SATA Samsung 860 EVO 250GB / RVT01B6Q                         random    random
              kB  reclen    write  rewrite    read    reread    read     write
          102400       4    72437    91850    94764    94543    44477    89849         
          102400      16   203068   237862   247603   249028   110745   236857         
          102400     512   451554   449136   471435   479800   438253   458596         
          102400    1024   434889   447961   441752   444064   457868   486368         
          102400   16384   459942   499154   534438   544153   533377   512175
         2048000   16384   510176   513427   543089   543100   539357   515008
          
SATA TOSHIBA THNSNJ128GCSU / JURA0101                         random    random
              kB  reclen    write  rewrite    read    reread    read     write
          102400       4    67806    84301    90314    89729    23800    83227         
          102400      16   183474   208377   231232   231709    77464   185007         
          102400     512   429386   461900   501213   493337   443476   449965         
          102400    1024   411651   425846   461589   509602   481078   420490         
          102400   16384   454119   470594   519969   530120   529409   473989                                
         2048000   16384   487956   488575   533611   529319   517535   488143

NVMe WDS500G2X0C-00L350 / 101110WD                            random    random
              kB  reclen    write  rewrite    read    reread    read     write
          102400       4   118800   166451   113793   114171    48654   161392                                                          
          102400      16   369882   475456   361790   360653   145655   463275                                                          
          102400     512  1181289  1222746  1404259  1418600  1253365  1275058                                                          
          102400    1024  1229515  1262795  1416458  1427279  1424415  1193388                                                          
          102400   16384  1032897  1406616  1667046  1687417  1688260  1333405                                                          
         2048000   16384  1339204  1355091  1691162  1692434  1691324  1351675

예상대로 네이티브 SATA 포트는 540MB / s (저렴한 단일 PCIe 레인 부착 SATA 컨트롤러는 일반적으로 400MB / s를 초과하지 않음)를 초과 할 수 있으며 NVMe SSD는 거의 1.7GB / s가 가능합니다. PCIe 레인은 Gen2 (Gen3는 두 배 빠름)와 Gen3 x2 인터페이스로 점점 더 많은 NVMe SSD가 나타납니다. 그런 다음 SSD는 H2와의 Gen2 x2 연결 만 협상하고 병목 현상이 심하게됩니다. 따라서 x4 인터페이스가있는 SSD 만 구입하십시오!

필자는 USB3 스토리지 성능을 테스트 할 수 없었지만 Intel 자체의 USB3 구현으로 결과를 예측할 수 있습니다. UAS (USB Attached SCSI) 및 최대 2 개의 SuperSpeed ​​포트에서 최대 400MB / s. 따라서 Seagate USB3 디스크가 장착 된 Linux를 실행할 때이 보드가 문제가 될 수 있습니다. 4.15 이상의 이전 커널을 사용하는 경우 UAS를 블랙리스트에 추가해야합니다. 4.15부터는 이 수정 이 적용되어 Seagate 디스크가 정상적으로 작동하는 동안 SMART 기능에 대해 쿼리 할 수 ​​없습니다 (다시 UAS 블랙리스트는 외부 Seagate USB 디스크의 솔루션입니다)

PCIe 구성 및 사용 사례

인텔 CPU에는 6 개의 Gen2 PCIe 레인이 있습니다. Hardkernel은 NVMe SSD (M.2 SATA SSD 없음!) 또는 PCIe 어댑터 / 익스텐더에 적합한 하단의 M.2 키 M 소켓에 4 개를 노출합니다. 두 개의 나머지 PCIe 레인은 RTL8111G 네트워크 칩에 사용됩니다.

NVMe SSD를 연결할 때 다음 두 가지 사항이 중요합니다.

  • SoC는 Gen2 속도 만 지원할 수 있기 때문에 x4 인터페이스로 SSD를 구매해야합니다 (Gen2 포트에서 실제로 병목 현상이 발생하므로 Gen3 x2 변형 없음)
  • 빠른 NVMe SSD는 상당히 뜨거워 질 수 있으므로 그렇지 않으면 SSD가 과열되어 성능이 저하 될 수 있습니다 (30MB / s 순차 성능만큼 느린 SSD로 테스트 한 결과)

NVMe SSD를 사용하지 않으면 어떻게 될까요? 그런 다음 4 개의 PCIe 레인을 사용할 수있는 많은 기회가 있습니다. 사용자는 예를 들어 M.2 듀얼 Gbit 이더넷 카드 를 삽입 할 수 있습니다 불행하게도 더 짧은 M.2 변형을위한 장착 구멍  없어서이 저렴한 이중 GbE 카드 도 옵션이 아니며 4 포트 SATA 카드 도 아닙니다. (Hardkernel이 향후 PCB 개정판에서이를 수정하기를 바랍니다.)

하지만 PCIe x4이므로 M.2를 일반 x4 PCIe 슬롯으로 바꾸는 간단한 어댑터는 물론 옵션입니다.

여기에서 볼 수있는 4 핀 헤더는 표준 PCIe 카드의 기본 전원 요구 사항이므로 5V 및 12V로 공급되기를 원합니다. 다행스럽게도 H2에는 정확히 두 개의 전압 (SATA 전원 포트)을 제공하는 두 개의 4 핀 헤더가 있습니다. 따라서 실제로 H2는 DIY 전원 케이블과 인클로저 / 고정 장치가있는 한 일반 PCIe 카드를 추가하는 데있어 매우 좋은 선택입니다.

소프트웨어 지원 상황

전통적인 ODROID 사용자는 ARM 플랫폼에서 각 보드마다 현재 OS 이미지가 필요하다는 것을 알고 있습니다. 보드 제조업체가 장치 별 부트 로더 및 하드웨어 설명을 저장할 수있는 PCB에 SPI NOR 플래시를 추가하기 시작하면 곧 바뀔 것입니다. x86 플랫폼에서 알 수 있듯이 장치 독립적 인 표준 ARM OS 이미지 ( EBBR 참조 )

Intel CPU를 사용하면 다음과 같이 작동합니다. 다소 괜찮은 Ubuntu x86 설치 프로그램을 사용하면 모든 것이 작동합니다. Windows와 동일하지만 물론 하드웨어에 드라이버가 필요하며 이는 문제가 될 수 있습니다. 운영 체제 이미지는 쌍둥이 자리 호수를 다루기에 충분한 최신 이미지 여야하므로 기존 운영 체제를 실행하는 데 문제가있을 것으로 예상됩니다. 예를 들어 제미니 호수에서는 xHCI 컨트롤러가 USB 2.0 포트를 제공하고 xHCI / USB3 드라이버를 지원하지 않으면 USB 부팅 스틱이 부팅되지 않을 수 있기 때문에 Windows 7이 문제가 될 수 있습니다 ( 가능한 해결 방법 )

선택한 RealTek NIC는 드라이버 지원 (부족)으로 인해 문제가 될 수 있습니다 따라서 H2를 작고 에너지 효율적인 ESXi 화이트 박스로 만들려면 드라이버 패키지를 직접 추가해야합니다 (ESXi가 Gemini Lake CPU에서 완벽하게 실행되는지 여부는 알 수 없음).

가상화에 대해 말하기 ... CPU가 적절한 기능 (VT-x, VT-d 및 VT-x / EPT)을 가지고 있으므로 다른 OS 위에 하나의 OS 만 실행할 수 있습니다. VirtualBox를 통해 Ubuntu에서 실행되는 Windows 10을 시연하는 Hardkernel을 참조하십시오.


네트워킹

RealTek NICs는 꽤 나쁜 평판을 가지고 있으며, 많은 사람들이 '천천히 그리고 불안정하다'를 그들과 연관시킵니다. Hardkernel이 안정성과 고성능을 입증하는 것에 반대 할 수 있는지 알아봐야합니다 (일부 테스트를 제안했지만이 모든 것들은 다소 시간이 많이 걸렸으므로 이후에 H2 소유자가 작업을 할 때까지 기다려야 할 것입니다)

어쨌든 : 괜찮은 드라이버 지원 (Linux와 Windows에서 최소한 주어진 IMO)을 갖춘 기본적인 것들을 위해서는 NIC가 정상적으로 작동해야합니다. RTL8111G 중 적어도 하나가 2.5GbE 네트워킹을 제공하는 NBase-T 가능 RTL8125로 교체 될 예정인 다른 보드 개정판을 여전히 희망합니다. 또는 아마도 두 개의 RTL8125가있는 'H2 +'(오늘 표시된 PCIe 어댑터를 사용하면 저렴한 Tehuti TN9710P 또는 Aquantia AQC107S 기반의 10GbE / Nbase-T 카드를 추가 할 수 있지만 내장 NBase-T는 실제로 훌륭하고 H2 GbE는 이미 많은 유스 케이스에서는 상당히 느리고 두 개의 GbE NIC는 엄청나게 많은 사람들이 이것을 믿더라도 2Gbits / sec 연결을 보완 하지  하기 때문에 다소 독창적입니다.

다른 관점에서 Intel 대신 RealTek NIC가 기능으로 간주 될 수 있습니다. 편집증 환자들은 Intel NIC가없는 관리 엔진 (ME) 의 존재로 인해 Intel 장비를 사용하지 않을 것이지만 ME 기능 중 일부는 작동하지 않습니다. 원하는 기능 중 하나 인 Wake on LAN은 기능이 활성화되면 (예 : sudo ethtool -s enp3s0 wol gLinux에서) 디스플레이 커넥터 옆에있는 RTL8111G로 작동 합니다.

NIC ( ip a및 ethtool출력)에 대한 자세한 정보는 다음 과 같습니다.

2: enp2s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether c4:82:4e:55:74:12 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.40/24 brd 192.168.0.255 scope global dynamic enp2s0
       valid_lft 43sec preferred_lft 43sec
    inet6 fe80::c682:4eff:fe55:7412/64 scope link 
       valid_lft forever preferred_lft forever
3: enp3s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
    link/ether c4:82:4e:55:74:13 brd ff:ff:ff:ff:ff:ff
    inet 192.168.0.41/24 brd 192.168.0.255 scope global dynamic enp3s0
       valid_lft 10sec preferred_lft 10sec
    inet6 fe80::c682:4eff:fe55:7413/64 scope link 
       valid_lft forever preferred_lft forever

root@odroid-h2:~# ethtool -i enp2s0
driver: r8169
version: 2.3LK-NAPI
firmware-version: rtl8168g-2_0.0.1 02/06/13
expansion-rom-version: 
bus-info: 0000:02:00.0
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

root@odroid-h2:~# ethtool -S enp2s0
NIC statistics:
     tx_packets: 6671
     rx_packets: 145775
     tx_errors: 0
     rx_errors: 0
     rx_missed: 0
     align_errors: 0
     tx_single_collisions: 0
     tx_multi_collisions: 0
     unicast: 9004
     broadcast: 135785
     multicast: 986
     tx_aborted: 0
     tx_underrun: 0

root@odroid-h2:~# ethtool enp2s0
Settings for enp2s0:
	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
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full 
	                        100baseT/Half 100baseT/Full 
	                        1000baseT/Full 
	Advertised pause frame use: Symmetric Receive-only
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Link partner advertised link modes:  10baseT/Half 10baseT/Full 
	                                     100baseT/Half 100baseT/Full 
	                                     1000baseT/Full 
	Link partner advertised pause frame use: Symmetric
	Link partner advertised auto-negotiation: Yes
	Link partner advertised FEC modes: Not reported
	Speed: 1000Mb/s
	Duplex: Full
	Port: MII
	PHYAD: 0
	Transceiver: internal
	Auto-negotiation: on
	Supports Wake-on: pumbg
	Wake-on: g
	Current message level: 0x00000033 (51)
			       drv probe ifdown ifup
	Link detected: yes

root@odroid-h2:~# ethtool -d enp2s0
RealTek RTL8168g/8111g registers:
--------------------------------------------------------
0x00: MAC Address                      c4:82:4e:55:74:12
0x08: Multicast Address Filter     0x42000040 0x00400082
0x10: Dump Tally Counter Command   0x6a638000 0x00000002
0x20: Tx Normal Priority Ring Addr 0x6f0c4000 0x00000002
0x28: Tx High Priority Ring Addr   0x00000000 0x00000000
0x30: Flash memory read/write                 0x00000000
0x34: Early Rx Byte Count                              0
0x36: Early Rx Status                               0x00
0x37: Command                                       0x0c
      Rx on, Tx on
0x3C: Interrupt Mask                              0x803f
      SERR LinkChg RxNoBuf TxErr TxOK RxErr RxOK 
0x3E: Interrupt Status                            0x0000
      
0x40: Tx Configuration                        0x4f000f80
0x44: Rx Configuration                        0x0002cf0e
0x48: Timer count                             0x00000000
0x4C: Missed packet counter                     0x000000
0x50: EEPROM Command                                0x10
0x51: Config 0                                      0x00
0x52: Config 1                                      0xcf
0x53: Config 2                                      0x3c
0x54: Config 3                                      0x60
0x55: Config 4                                      0x11
0x56: Config 5                                      0x02
0x58: Timer interrupt                         0x00000000
0x5C: Multiple Interrupt Select                   0x0000
0x60: PHY access                              0x00000000
0x64: TBI control and status                  0x17ffff01
0x68: TBI Autonegotiation advertisement (ANAR)    0xf70c
0x6A: TBI Link partner ability (LPAR)             0x0000
0x6C: PHY status                                    0xf3
0x84: PM wakeup frame 0            0x00000000 0x00000000
0x8C: PM wakeup frame 1            0x00000000 0x00000000
0x94: PM wakeup frame 2 (low)      0x00000000 0x00000000
0x9C: PM wakeup frame 2 (high)     0x00000000 0x00000000
0xA4: PM wakeup frame 3 (low)      0x00000000 0x00000000
0xAC: PM wakeup frame 3 (high)     0x00000000 0x00000001
0xB4: PM wakeup frame 4 (low)      0xffffffff 0xd205c5e1
0xBC: PM wakeup frame 4 (high)     0x00000000 0x00000000
0xC4: Wakeup frame 0 CRC                          0x0000
0xC6: Wakeup frame 1 CRC                          0x0000
0xC8: Wakeup frame 2 CRC                          0x0000
0xCA: Wakeup frame 3 CRC                          0x0000
0xCC: Wakeup frame 4 CRC                          0x0000
0xDA: RX packet maximum size                      0x4000
0xE0: C+ Command                                  0x20e1
      VLAN de-tagging
      RX checksumming
0xE2: Interrupt Mitigation                        0x5151
      TxTimer:       5
      TxPackets:     1
      RxTimer:       5
      RxPackets:     1
0xE4: Rx Ring Addr                 0x6f0c5000 0x00000002
0xEC: Early Tx threshold                            0x27
0xF0: Func Event                              0x0000003f
0xF4: Func Event Mask                         0x00000000
0xF8: Func Preset State                       0x00000003
0xFC: Func Force Event                        0x00000000