Armadillo-400シリーズ用Linuxカーネル 2.6.35-at アルファ4 リリース

Armadillo-400シリーズ用のLinuxカーネル2.6.35のアルファ4をリリースします。

注意事項

本リリースはアルファ版のため、動作に支障をきたすものが含まれている可能性があります
また、本リリースは技術サポートの対象外となります。

ご理解のうえ、お客様ご自身の責任においてご利用ください。

対象製品

  • Armadillo-440 液晶モデル
  • Armadillo-420 ベーシックモデル

アルファ3からの更新内容

  • USB HighSpeedポートの動作を改善
    • linux-2.6.26-atと同様に、バルク転送では、転送バッファにIRAMを使用するように変更
  • MMC/SDのクロックソースをAHB(133MHz)からUPLL(240MHz)へ変更
    • スループットが向上します
  • armadillo400_defconfigを一部変更
    • USBでIRAMを使用するように変更
    • バイナリサイズが大きいため、一部のコンフィグレーションの選択を解除
    • 変更後のarmadillo400_defconfigは、linux-2.6.26-atとほぼ同様になっています

動作可能インタフェース

  • Serial (UART2/3/5)
  • LAN (FEC)
  • USB Host (HOST2/OTG)
  • MMC/SD (SDHC1/2)
  • Framebuffer (LCDC, BG)
  • I2C (2/3)
  • RTC
  • LED
  • EXT-GPIO (CON9/CON14)
  • SW (SW1, EXT-SW)
  • TOUCH SCREEN (ADC)
  • MTD
  • LCD-BACKLIGHT (pwm1)
  • AUDIO (SSI, Codec)
    • AndroidでAudio機能を使用する場合は、ALSA_AUDIO(ALSA_DEFAULT_SAMPLE_RATE=48000)で使用してください
  • PMIC (MC34704)

未実装・動作未確認インタフェース

  • SPI
  • CAN
  • ONE-WIRE

ダウンロード

ビルド手順

ビルドはATDE3で行ってください。

Armadillo-440 液晶モデル/Armadillo-420 ベーシックモデル用カーネルのビルド


[ATDE ~/]$ wget http://download.atmark-techno.com/armadillo-4x0/source/kernel/pre-release/linux-2.6.35-at-alpha4.tar.gz
[ATDE ~/]$ tar xzf linux-2.6.35-at-alpha4.tar.gz 
[ATDE ~/]$ cd linux-2.6.35-at-alpha4/
[ATDE ~/linux-2.6.35-at-alpha4/]$ make armadillo400_defconfig
[ATDE ~/linux-2.6.35-at-alpha4/]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- && gzip -c arch/arm/boot/Image > linux.bin.gz

上記の手順を実行すると、linux-a400-2.00r4.bin.gzと同じイメージが、linux-2.6.35-at-alpha4/linux.bin.gzに作成されます。

Android対応カーネルのビルド


[ATDE ~/]$ wget http://download.atmark-techno.com/armadillo-4x0/source/kernel/pre-release/linux-2.6.35-at-alpha4.tar.gz
[ATDE ~/]$ wget http://download.atmark-techno.com/misc/android/kernel-2.6.35-at-alpha1-20110117-g7c005c65_android-2.6.35.diff
[ATDE ~/]$ wget http://download.atmark-techno.com/misc/android/kernel-2.6.35-at-alpha4-armadillo400_android_defconfig
[ATDE ~/]$ tar xzf linux-2.6.35-at-alpha4.tar.gz 
[ATDE ~/]$ cd linux-2.6.35-at-alpha4
[ATDE ~/linux-2.6.35-at-alpha4/]$ patch -p1 < ../kernel-2.6.35-at-alpha1-20110117-g7c005c65_android-2.6.35.diff
[ATDE ~/linux-2.6.35-at-alpha4/]$ cp ../kernel-2.6.35-at-alpha4-armadillo400_android_defconfig arch/arm/configs/armadillo400_defconfig
[ATDE ~/linux-2.6.35-at-alpha4/]$ make armadillo400_defconfig
[ATDE ~/linux-2.6.35-at-alpha4/]$ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- && gzip -c arch/arm/boot/Image > linux.bin.gz

上記の手順を実行すると、linux-a400-2.00-android-r4.bin.gzと同じイメージが、linux-2.6.35-at-alpha4/linux.bin.gzに作成されます。

注) Androidで利用した場合、タッチパネルの認識ポイントが位置ずれしてしまう場合があります。
これは、LCD拡張ボードのリビジョンの違いによって発生してしまいます。
linux-2.6.35-at-alpha4では、LCD拡張ボードのリビジョンA用に設定しているため、
リビジョンBをお使いの場合は、以下のようにソースコードを修正してみてください。
(今後、ここで紹介する方法は変更となる可能性があります。ご注意ください。)

--- a/drivers/input/touchscreen/imx_adc_ts.c
+++ b/drivers/input/touchscreen/imx_adc_ts.c
@@ -104,12 +104,12 @@ static int __devinit imx_adc_ts_probe(struct platform_device *pdev)
        input->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
        input->keybit[BIT_WORD(BTN_TOUCH)] |= BIT_MASK(BTN_TOUCH);
        input_set_abs_params(input, ABS_X,
-                            100,
-                            4000,
+                            250,
+                            3800,
                             0, 0);
        input_set_abs_params(input, ABS_Y,
-                            100,
-                            4000,
+                            650,
+                            3600,
                             0, 0);
        input_set_abs_params(input, ABS_PRESSURE,
                             0, 1, 0, 0);