Y.s Diary


 

2014年 04月 14日
CuBox-i4Pro に Debian をインストールする (CuBox-i)
+ [microSD カードの準備]

以下の作業は、Ubuntu 13.10 x86_64 で行っています。

microSD カードのデバイス名は当方の環境では /dev/sdd です。

各々の環境により変わりますので、間違えない様に良く確認してください。

最初に、microSD カードの先頭を 0 でクリアしておきます。

% sudo dd if=/dev/zero of=/dev/sdd bs=1M count=4

以下の様なパーティションを作成します。

% sudo fdisk /dev/sdd
...
デバイス ブート      始点        終点     ブロック   Id  システム
/dev/sdd1            8192       49151       20480    c  W95 FAT32 (LBA)
/dev/sdd2           49152    31116287    15533568   83  Linux

microSD カードの先頭にブートローダーを書き込むため、 最初のパーティションの始点を 8192 からにしています。

それぞれのパーティションをフォーマットします。

% sudo mkdosfs -n BOOT /dev/sdd1
% sudo mke2fs -T ext4 -L ROOT /dev/sdd2

/dev/sdd1 は /media/BOOT に、/dev/sdd2 は /media/ROOT にマウントしておきます。

+ [ブートローダー]

クロスコンパイラは、 Software Downloads at Linaro からダウンロードした

gcc-linaro-arm-linux-gnueabihf-4.8-2014.03_linux.tar.xz

を使用しました。

ブートローダーのソースを取得します。

% git clone https://github.com/SolidRun/u-boot-imx6.git

ブートローダーをコンパイルします。

% cd u-boot-imx6
% make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6_cubox-i_config
% make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

ブートローダーをmicroSD カードに書き込みます。

% sudo dd if=SPL of=/dev/sdd bs=1K seek=1
% sudo dd if=u-boot.img of=/dev/sdd bs=1K seek=42
+ [ユーザーランド]

コンパイルするのが面倒でしたので、 I.MX6 Debian Jessie (GPU/VPU) 3.10.17_beta で公開されている

jessie-3.10.17_beta.tar.gz

を使用しました。

% wget -nd -N http://stende.no-ip.info/jas/debian/jessie-3.10.17_beta.tar.gz

ダウンロードした jessie-3.10.17_beta.tar.gz を microSD カードに展開します。

% sudo tar -xf jessie-3.10.17_beta.tar.gz -C /media/ROOT
% sudo mv -i /media/ROOT/boot/* /media/BOOT/
+ [カーネル]

カーネルのソースを取得します。

% git clone https://github.com/SolidRun/linux-linaro-stable-mx6.git

カーネルをコンパイルします。

% cd linux-linaro-stable-mx6
% make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx_v7_cubox-i_hummingboard_defconfig
% make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- zImage imx6q-cubox-i.dtb
% make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules

カーネルを microSD カードにコピーします。

% cp arch/arm/boot/zImage /media/BOOT/
% cp arch/arm/boot/dts/imx6q-cubox-i.dtb /media/BOOT/
% sudo make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- INSTALL_MOD_PATH=/media/ROOT modules_install

ブート用の設定ファイルを作成します。

% vi /media/BOOT/uEnv.txt
bootfile=zImage
boot_fdt=yes
fdt_file=imx6q-cubox-i.dtb
mmcargs=setenv bootargs root=/dev/mmcblk0p2 rootfstype=ext4 rootwait video=mxcfb0:dev=hdmi,1920x1080M@60,if=RGB24,bpp=32 dmfc=3 consoleblank=0
+ [ローカルタイム]

日本時間にします。

% sudo cp /media/ROOT/usr/share/zoneinfo/Asia/Tokyo /media/ROOT/etc/localtime

更に

% sudo vi /media/ROOT/etc/timezone

を実行し

Asia/Tokyo

に書き換えます。

+ [キーボードレイアウト]

キーボードレイアウトが gb になっていますので

% sudo vi /media/ROOT/etc/default/keyboard

を実行し

XKBLAYOUT="us"

等に変更します。

+ [Input driver event debug module]

イベントのデバッグメッセージが大量に出ますので

% sudo vi /media/ROOT/etc/modprobe.d/blacklist.conf

を実行し

blacklist evbug

を書き込みます。

 
2014年 04月 09日
mmcblk0: error -110 transferring data (CuBox-i)
+ [CuBox-i4Pro で UHS は使えない ?]

CuBox-i4Pro を去年に購入 した後、動作確認ぐらいで放置してました。

で、数日前からがんばって OS のインストールとかしてるのです。

がしかし、しばらく動作させていますと

mmcblk0: error -110 transferring data

が延々と出てハングした様になります。

Linux kernel を 3.0.35-g0f2006c-dirty や 3.0.35-gde37251 、更には 3.10.30-g592b2d9 と変更しても同じです。

ところが microSD カードを

SanDisk Extreme Pro microSDHC UHS-I[SDSDQXP-016G-J35]

から

Barun microSDHC 16GB CLASS10[BMC-MS16G BK]

に変えたらエラーが出ません。

Google で検索しますと、 UHS 対応カードだとこのエラーが出る事がある様なのですが、 全ての UHS 対応カードがダメなのか不明です。

<追記>

あー、

TOSHIBA microSDHC UHS-I CARD[SD-C032GR7AR30]

ではエラーは出ませんでした。

UHS 対応カードだとダメなのではなくて、たまたま使用した SanDisk Extreme Pro microSDHC がダメだったのかもしれません。

Windows PC で Check Flash 1.16 を使用し、エラーが無いのは確認したのですが…

</追記>

 

前のページ     次のページ


This page is written in Japanese.