NXP i.MX 6 ホスト環境構築とBSP提供イメージのSDカードへの書き込み

メモ

購入

  • MCIMX6ULL-EVK

ダウンロード

  • L4.19.35_1.1.0_images_MX6UL7D.zip
  • L4.19.35_1.1.0_LINUX_DOCS.zip

Host環境

試したこと

  • 付属の SD Card でboot(Quick Reference Guide を見ながら) → OK

  • i.MX_Linux_User's_Guide.pdf を参照して、

$ sudo dd if=<image name>.wic of=/dev/sdx bs=1M && sync

で imx-image-multimedia-imx6ul7d.wic を SD Card にコピーしブート → NG、デバッグ用USBに何も出力されず

  • i.MX_Linux_User's_Guide.pdf と i.MX_Yocto_Project_User's_Guide.pdf を参照して、以下を実施。
$ sudo fdisk /dev/sdx
/dev/sdx1 は vfat でフォーマット
/dev/sdx2 は ext4 でフォーマット
*dtb ファイル を /dev/sdx1 に展開(/dev/sdx1 は mount させてファイルコピー)
zImageを配置
imx-image-multimedia-imx6ul7d.tar.bz2 を /dev/sdx2 に展開(/dev/sdx2 は mount させてファイルコピー)
最後に
$ sudo dd if=<U-Boot image> of=/dev/sdx bs=1k seek=<offset> conv=fsync

→ OK、デバッグ用USBに以下が出力され、SD Card から正常に起動が確認できた。

U-Boot 2019.04-4.19.35-1.1.0+g4d377539a1 (Oct 29 2019 - 19:32:57 +0000)

CPU:   Freescale i.MX6ULL rev1.1 900 MHz (running at 396 MHz)
CPU:   Commercial temperature grade (0C to 95C) at 36C

(略)

Starting kernel ...

(略)

NXP i.MX Release Distro 4.19-warrior imx6ul7d ttymxc0

imx6ul7d login:

スクリプト

自分用のメモ

#! /bin/bash

if [ -z $1 ]; then
    echo "usage: sudo $0 /dev/sdx"
    exit 1
fi

echo -en "\e[33;1m${1} will be formatted, are you sure?\e[m (y/n): "
read input
if [ "$input" = 'Y' -o "$input" = 'y' ]; then
    echo "continue"
else
    exit 1
fi

# 
# https://qastack.jp/superuser/332252/how-to-create-and-format-a-partition-using-a-bash-script
# 

# --------------------------------------------------
umount "${1}"*
sync

# to create the partitions programatically (rather than manually)
# we're going to simulate the manual input to fdisk
# The sed script strips off all the comments so that we can 
# document what we're doing in-line with the actual commands
# Note that a blank line (commented as "defualt" will send a empty
# line terminated with a newline to take the fdisk default.
sed -e 's/\s*\([\+0-9a-zA-Z]*\).*/\1/' << EOF | fdisk ${1}
  p  # [lists the current partitions]
  d  # [to delete existing partitions. Repeat this until no unnecessary partitions are reported by the 'p' command to start fresh.]
     # default
  d
     # default
  d
     # default
  n  # [create a new partition]
  p  # [create a primary partition - use for both partitions]
  1  # [the first partition]
  20480  # [starting at offset sector]
  1024000 # [size for the first partition to be used for the boot images]
  Y  # 署名を削除しますか? [Y]es/[N]o:
  p  # [to check the partitions]
  n
  p
  2
  1228800 # [starting at offset sector, which leaves enough space for the kernel, the bootloader and its configuration data]
    # [using the default value will create a partition that extends to the last sector of the media]
  Y  # 署名を削除しますか? [Y]es/[N]o:
  p
  w  # [this writes the partition table to the media and fdisk exits]
  q # and we're done
EOF
sync

# --------------------------------------------------
mkfs.vfat -n boot -S 512 ${1}1
mkfs.ext4 -F -L rootfs ${1}2
sync

# --------------------------------------------------
workdir="/home/xxxx/work"
mkdir -p $workdir/boot && mount -t vfat ${1}1 $workdir/boot || exit
mkdir -p $workdir/image && mount -t ext4 ${1}2 $workdir/image || exit
sync

# --------------------------------------------------
cp -r ./L4.19.35_1.1.0_images_MX6UL7D/zImage-imx6ull14x14evk.bin $workdir/boot/zImage && sync || exit

# --------------------------------------------------
cp -r ./L4.19.35_1.1.0_images_MX6UL7D/*.dtb $workdir/boot/
sync

cp ./L4.19.35_1.1.0_images_MX6UL7D/imx-image-full-imx6ul7d.tar.bz2 $workdir/image/
pushd $workdir/image/
tar -jxvf imx-image-full-imx6ul7d.tar.bz2
popd
sync

dd if=./L4.19.35_1.1.0_images_MX6UL7D/u-boot-imx6ull14x14evk_sd.imx of=${1} bs=1k seek=1 conv=fsync
sync

# --------------------------------------------------
umount $workdir/boot
umount $workdir/image
sync

TODO

  • SD Card の作成手順をもう少し詳細を記述する
  • Yocto環境構築

https://blog.web.nifty.com/engineer/1040 https://www.yoctoproject.org/docs/2.3.2/ref-manual/ref-manual.html#ref-features-image http://mickey-happygolucky.hatenablog.com/entry/2018/11/27/102308 https://yoctobbq.lineo.co.jp/?q=node/161 https://pc.watch.impress.co.jp/docs/column/1month-kouza/672565.html

ノートパソコンのSSDの交換(SSD→SSD容量増)

2010年10月ごろに購入したThinkPad x201sのHDDを、2015年5月頃にSSDに交換したが、5年程度経過したのと容量が不足してきたので再度容量upを目的としてSSDを交換。

前回に比べて公開されている情報が増えてきたので手順としては特に変わったことはなく、メモ。
ただし1点問題があったので備忘録としてメモ。

EaseUS Todo Backup Free 9.1

使用したのは EaseUS Todo Backup Free 9.1。(現時点で最新版は12.0だが以前用意しておいたものを再利用。)
WebではWindowsを起動したままでクローン作業をしている例が多いが、一度実施して失敗したので、最終的にはLinuxブータブルディスクを作成して実施し成功。

方法 実施結果 症状、備考
Windowsを起動したまま 失敗 Windowsは起動するが、いくつかのデータファイルが開けなくなっていた。詳細は不明だがファイルの整合性がなくなった感じ。ファイルは存在することになっているが、そのファイルは壊れているか存在していない模様。
Linuxブータブルディスク 成功(ただし備考あり) 起動時に水色の画面で「回復 要求されたデバイスが接続されていないか、デバイスにアクセスできません」となり先へ進まなかった。後述の処置により正常に起動。クローン自体は問題なかったようである

ブートローダの設定を変更

事象と解消手順

ただしクローン後起動しないという事象になった。
起動時に水色の画面で「回復 要求されたデバイスが接続されていないか、デバイスにアクセスできません」となり先へ進まない。

以下を参考に、以下の手順で起動するようになった。特に問題はない模様。

  1. Windows 10 回復ドライブでUSBメモリに回復ドライブを作成
  2. USBメモリからブートして、コマンドプロンプトを起動
  3. bcdeditでブートローダの設定を変更

以下のサイトと同じ症状であったので、diskpart → llist volume で一覧を確認したのち、identifierが{default}で起動したいドライブレターがEであることを確認し、

bcdedit /set {default} device partition=E:
bcdedit /set {default} osdevice partition=E:

として、その後起動できた。

参考

有線LANの無線化(L2レイヤで)

以下の製品を使用すると、ローカルLAN内において、有線LANで接続していた箇所を無線LAN化できる模様。

通常の

  • 無線LANルータ(親機)を使用
  • 無線LAN中継器を使用
  • AP(アクセスポイント、あるいは無線LANルータのブリッジモード)

と異なる点は、L2レイヤで作用するため、ネットワーク構成が変わらない点であると思われる。有線LANの無線LANによるエクステンダと呼べるものだと思われる。

つまり、以下のような構成変更が可能となるようである。

  • 変更前:【何らかの機器】--有線LAN--【PC】
  • 変更後:【何らかの機器】--有線LAN--【VAP11N-300】--無線LAN--【VAP11N-300】--有線LAN--【PC】

電流がごく小さな機器向けのバッテリ

Arduinoをモバイルバッテリで動作させる場合に、通常のモバイルバッテリではオートパワーオフによって機器への電力供給(給電)が停止してしまう件についてのメモ。

課題

課題はいくつかあり、各web記事が対象とする課題が異なるので整理。

  1. 消費電流(電力)が微弱なのでバッテリのオートパワーオフが作用してしまう
  2. deep sleep など、ほとんど電流が流れない(電力を消費しない)モードになった後、復帰後に電流が流れ始めても、バッテリの「開始ボタン」を押下しないと給電が再開しない
  3. バッテリの充電とバッテリから機器への給電が併用できない
  4. あるいは、充電+給電は併用可能だが、併用している状況から充電を停止(充電側のケーブルを抜去)すると給電側が瞬断する

微弱電流でも給電を停止しないバッテリ

オートパワーオフを抑止する

充電と給電の併用

その他

lighttpdのユーザ変更

メモ

lighttpdのユーザ変更

→ /usr/lib/tmpfiles.d/lighttpd.tmpfile.conf の変更が不足

ユーザを指定したファイルの検索