[ARM]ようやくESPRESSObinを稼働させた。

以前に上記のような記事を書いていたのですが、とある個人的な問題で今までお蔵入りしていたのですが、一念発起して稼働させることにしました。
何が問題だったか
私はクラウドファンディングで入手したのですが、その際のボードのリビジョンはv5というものでした。その後アップデートがあって現在はv7になっているのですが、v5とv7ではSATA周りに変更がありまして、
v7 v5
v5ではSATAデータと4pin電源なのが、使いにくかったのかv7ではシングルのSATAデータ/電源ポートに変更になっています。
この4ピン電源(メスーメス)ケーブルはあまり見かけないなぁということで手間取っていたというのが経緯になります。
公式ドキュメント
使用OS
UbuntuとDebian stretch/busterのものが用意されていましたが、Ubuntuのイメージはうまく起動させることが出来ませんでした。今回はDebian busterのものを使用しました。
$ cat /etc/os-release PRETTY_NAME="Debian GNU/Linux 10 (buster)" NAME="Debian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster ID=debian HOME_URL="https://www.debian.org/" SUPPORT_URL="https://www.debian.org/support" BUG_REPORT_URL="https://bugs.debian.org/"
$ cat /etc/armbian-image-release # PLEASE DO NOT EDIT THIS FILE BOARD=espressobin BOARD_NAME="Espressobin" BOARDFAMILY=mvebu64 BUILD_REPOSITORY_URL=https://github.com/armbian/build BUILD_REPOSITORY_COMMIT=c865c065-dirty VERSION=5.91 LINUXFAMILY=mvebu64 BRANCH=next ARCH=arm64 IMAGE_TYPE=stable BOARD_TYPE=conf INITRD_ARCH=arm64 KERNEL_IMAGE_TYPE=Image IMAGE_UUID=
色々と手間取ったこと
u-bootのflash
今回も面倒を嫌ってArmbianを使用しています。一応公式からは一からOSイメージをbuildする方法が記載されていますが結構難易度が高いと思います。
またArmbianを使用するときも注意が必要でしてこれもダウンロードページに書いてありますが、搭載メモリ別に合わせてu-bootの更新をするようにという注意があります。u-bootプロンプトに落ちたら、
bubt flash-image-ddr3/ddr4-MEM-RAM_CHIPS-CPU_DDR.bin spi usb
あと起動順とbootを正常にするように以下の環境変数もu-bootプロンプトで実行しておいた方が良いかも。ただ、これはシリアル接続時に一括でベタッとやると失敗しやすいので面倒でも1行ずつ実施した方が良いかと思います。
env default -a setenv fdt_addr 0x6000000 setenv kernel_addr 0x7000000 setenv loadaddr 0x8000000 setenv initrd_size 0x2000000 setenv initrd_addr 0x1100000 setenv scriptaddr 0x6d00000 setenv initrd_image uInitrd setenv image_name Image setenv boot_targets 'usb sata mmc1 mmc0' setenv boot_prefixes '/ /boot/' setenv bootcmd_mmc0 'setenv devnum 0; setenv boot_interface mmc; run scan_dev_for_boot;' setenv bootcmd_mmc1 'setenv devnum 1; setenv boot_interface mmc; run scan_dev_for_boot;' setenv bootcmd_sata 'setenv devnum 0; scsi scan; scsi dev 0; setenv boot_interface scsi; run scan_dev_for_boot;' setenv bootcmd_usb 'setenv devnum 0; usb start;setenv boot_interface usb; run scan_dev_for_boot;' setenv bootcmd 'for target in ${boot_targets}; do run bootcmd_${target}; done' setenv scan_dev_for_boot 'for prefix in ${boot_prefixes}; do echo ${prefix};run boot_a_script; done' setenv boot_a_script 'ext4load ${boot_interface} ${devnum}:1 ${scriptaddr} ${prefix}boot.scr;source ${scriptaddr};' saveenv # Including this line to make sure saveenv is executed.
※私はいっぺんにベタッとやってうまいこと起動しない問題でつまずきました。
また設定等を書き込んだら、u-bootプロンプトでのresetやresetスイッチなどでリセットせず、一旦12Vアダプターを抜いて、再度投入する形にした方が良いかもしれません。
私の場合はu-bootの設定がうまく反映されず起動に失敗することがありました。
シリアル接続について
あと、付属のUSB-microUSBが実はシリアル接続のためのケーブルなので無くさないように使用した方が良いかと思います。
ボーレート: 115200 8N1
ネットワーク設定について
見て分かるようにEthernetが3ポート用意されています。が、Armbian(Debian 10)では以下のように見えます。
$ ip l 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000 link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00 2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1024 link/ether f0:ad:4e:03:64:7f brd ff:ff:ff:ff:ff:ff 3: wan@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br0 state LOWERLAYERDOWN mode DEFAULT group default qlen 1000 link/ether f0:ad:4e:03:64:7f brd ff:ff:ff:ff:ff:ff 4: lan0@eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue master br0 state LOWERLAYERDOWN mode DEFAULT group default qlen 1000 link/ether f0:ad:4e:03:64:7f brd ff:ff:ff:ff:ff:ff 5: lan1@eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP mode DEFAULT group default qlen 1000 link/ether f0:ad:4e:03:64:7f brd ff:ff:ff:ff:ff:ff 6: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 link/ether f0:ad:4e:03:64:7f brd ff:ff:ff:ff:ff:ff
$ sudo brctl show bridge name bridge id STP enabled interfaces br0 8000.f0ad4e03647f no lan0 lan1 wan
ブリッジインターフェース(br0)に対して、eth0が、そしてそのエイリアスとしてwan、lan0、lan1が個別に見えるという形になっています。
そちらをsystemd-networkd
で管理するのがまた面倒くさい。
所感
とりあえず2コアで2GBメモリなので、よほどヘビーなことをさせない限りは使用できると思います(Arm SBCでそんなことを想定する人はいないと思いますが)。
また公式にもあるようにEthernetが3ポートもあるので、思い切ってYoctoなどをインストールしてルータなどとしても使用できるかと思います。スループットによる負荷をかけたときにどうなるかは確認していませんが。
おまけ
今回SATAには以下のディスクをぶら下げています。昔@xmmsさんから購入したものです。
$ sudo hdparm -I /dev/sda /dev/sda: ATA device, with non-removable media Model Number: SAMSUNG MZ-5S71000/003 Serial Number: Firmware Revision: VBC3D03Q Transport: Serial, ATA8-AST, SATA 1.0a, SATA II Extensions, SATA Rev 2.5, SATA Rev 2.6 Standards: Used: unknown (minor revision code 0x0028) Supported: 8 7 6 5 Likely used: 8 Configuration: Logical max current cylinders 16383 16383 heads 16 16 sectors/track 63 63 -- CHS current addressable sectors: 16514064 LBA user addressable sectors: 195371568 LBA48 user addressable sectors: 195371568 Logical Sector-0 offset: 0 bytes device size with M = 1024*1024: 95396 MBytes device size with M = 1000*1000: 100030 MBytes (100 GB) cache/buffer size = unknown Form Factor: 2.5 inch Nominal Media Rotation Rate: Solid State Device Capabilities: LBA, IORDY(can be disabled) Queue depth: 32 Standby timer values: spec'd by Standard, no device specific minimum R/W multiple sector transfer: Max = 8 Current = 8 DMA: mdma0 mdma1 mdma2 udma0 udma1 udma2 udma3 udma4 udma5 *udma6 Cycle time: min=120ns recommended=120ns PIO: pio0 pio1 pio2 pio3 pio4 Cycle time: no flow control=120ns IORDY flow control=120ns Commands/features: Enabled Supported: * SMART feature set Security Mode feature set * Power Management feature set * Write cache * Look-ahead * Host Protected Area feature set * WRITE_BUFFER command * READ_BUFFER command * NOP cmd * DOWNLOAD_MICROCODE SET_MAX security extension * 48-bit Address feature set * Device Configuration Overlay feature set * Mandatory FLUSH_CACHE * IDLE_IMMEDIATE with UNLOAD * Write-Read-Verify feature set * WRITE_UNCORRECTABLE_EXT command * {READ,WRITE}_DMA_EXT_GPL commands * Segmented DOWNLOAD_MICROCODE * Gen1 signaling speed (1.5Gb/s) * Gen2 signaling speed (3.0Gb/s) * Native Command Queueing (NCQ) * Phy event counters Non-Zero buffer offsets in DMA Setup FIS DMA Setup Auto-Activate optimization * Software settings preservation * SMART Command Transport (SCT) feature set * SCT Write Same (AC2) * SCT Error Recovery Control (AC3) * SCT Features Control (AC4) * SCT Data Tables (AC5) Security: Master password revision code = 65534 supported not enabled not locked not frozen not expired: security count supported: enhanced erase 2min for SECURITY ERASE UNIT. 2min for ENHANCED SECURITY ERASE UNIT. Logical Unit WWN Device Identifier: 5002538050019d84 NAA : 5 IEEE OUI : 002538 Unique ID : 050019d84 Checksum: correct
ディスカッション
コメント一覧
まだ、コメントがありません
コメントを投稿するにはログインが必要です。