第17章 Linuxカーネル仕様

本章では、Linuxカーネルの仕様について説明します。Linuxカーネルのソースアーカイブ linux-2.6.35-a800eva-[version].tar.gz は Armadilloサイト(http://armadillo.atmark-techno.com)または、付属DVD-ROMから取得可能です。

17.1. デフォルトコンフィギュレーション

工場出荷状態の内蔵ストレージにインストールされているLinuxカーネルにはデフォルトコンフィギュレーションが適用されています。Armadillo-800 EVA用のデフォルトコンフィギュレーションが記載されているファイルは、Linux カーネルソースファイルに含まれるarch/arm/configs/armadillo800eva_android_defconfigです。

Armadillo-800 EVAでは、Linux カーネルが格納されているブートデバイスは OS ごとに異なりますが、Linux カーネルは同じものを使用しています。そのため、デフォルトコンフィギュレーションは、工場出荷状態の内蔵ストレージにインストールされている全てのOS で動作するように共通化されています。

表17.1 OSとデフォルトコンフィギュレーション

OSブートデバイスコンフィギュレーション
Debian GNU/Linuxmmcblk0p2armadillo800eva_android_defconfig
Androidmmcblk0p4

17.2. Android 機能

Armadillo-800 EVAでは、Android向け機能を一部のみ追加したカーネルをDebian GNU/Linux と Android 両方で使用しているため、PC 上で動作する Debian GNU/Linux や、スマートフォンやタブレット機器上で動作する Android とは、一部機能の動作が異なる場合があります。

Android機能は、カーネルのコンフィギュレーションで、その有効/無効を選択できます。主要なAndroid機能の一覧と、デフォルトコンフィギュレーションでの状態を表17.2「Android機能の主要コンフィギュレーション」に示します。

表17.2 Android機能の主要コンフィギュレーション

コンフィギュレーションデフォルト機能
ANDROID_BINDER_IPC有効Android用プロセス間通信
ASHMEM有効無名共有メモリ(Anonymous Shared Memory)
ANDROID_PMEM有効Android用プロセスメモリアロケーター
UID_STAT有効/proc/uid_stat/サポート
ANDROID_LOGGER有効Android用ロガー
WAKELOCK有効拡張パワーマネジメント(Wake lock)
WAKELOCK_STAT有効/proc/wakelocksサポート
USER_WAKELOCK有効ユーザー空間でのサスペンド防止
EARLYSUSPEND有効拡張パワーマネジメント(Early suspend)
ANDROID_LOW_MEMORY_KILLER有効Android用OOM(Out Of Memory)ハンドリング
RTC_INTF_ALARM有効Android用アラーム
ANDROID_TIMED_OUTPUT有効Android用タイマー出力
ANDROID_TIMED_GPIO無効Android用GPIOタイマー出力
ANDROID_PARANOID_NETWORK無効Android用ネットワーク保護
ANDROID_RAM_CONSOLE無効Android用コンソールRAMバッファ

17.3. Linux ドライバー 一覧

Armadillo-800 EVAを制御するLinuxドライバーのソースコードのパスや制御可能なデバイスを示します。

ボード固有設定
ソースコード

arch/arm/mach-shmobile/board-armadillo800eva.c

タイマードライバー
ソースコード

arch/arm/mach-shmobile/sh_cmt.c

割り込みコントローラードライバー
ソースコード

arch/arm/mach-shmobile/intc-sh7740.c

PWMドライバー
ソースコード

arch/arm/mach-shmobile/tpu-pwm.c

UARTドライバー
ソースコード

drivers/serial/sh-sci.c

デバイスファイル

/dev/ttySC1 (CON22)

Ethernetドライバー
ソースコード

drivers/net/sh_eth.c

デバイス

eth0 (CON23)

MMCホストドライバー
ソースコード

drivers/mmc/host/sh_mmcif.c

デバイス

/dev/mmcblk0

SDホストドライバー
ソースコード

drivers/mmc/host/sh_mobile_sdhi.c

デバイス

/dev/mmcblk1

/dev/mmcblk2

USBホストドライバー
ソースコード

drivers/usb/host/ehci-rmobile.c

drivers/usb/host/ohci-rmobile.c

USBファンクションドライバー
ソースコード

drivers/usb/gadget/r8a66597-udc.c

フレームバッファドライバー
ソースコード

drivers/video/rmobile_lcdcfb.c

デバイス

/dev/fb0 (CON17)

/dev/fb1 (CON3 or CON14)

キャプチャーインターフェースドライバー
ソースコード

drivers/media/video/sh_mobile_ceu_camera.c

カメラドライバー
ソースコード

drivers/media/video/mt9t112.c

デバイス

/dev/video0

リアルタイムクロックドライバー
ソースコード

drivers/rtc/rtc-s35390a.c

デバイス

/dev/rtc0

タッチスクリーンドライバー
ソースコード

drivers/input/touchscreen/st1232.c

デバイス

/dev/input/event1

ボタンスイッチキードライバー
ソースコード

drivers/input/keyboard/gpio_keys.c

デバイス

/dev/input/event0

LCDバックライトドライバー
ソースコード

drivers/video/backlight/pwm_bl.c

デバイス

/sys/class/backlight/pwm-backlight.0

LEDドライバー
ソースコード

drivers/leds/leds-gpio.c

デバイス

/sys/class/leds/LED3 (LED3)

/sys/class/leds/LED4 (LED4)

/sys/class/leds/LED5 (LED5)

/sys/class/leds/LED6 (LED6)

オーディオドライバー
ソースコード

sound/soc/sh/fsi-wm8978.c

sound/soc/sh/fsi-hdmi.c

sound/soc/sh/fsi.c

sound/soc/codecs/wm8978.c

デバイス

hw:0 (CON10/11/12/13)

hw:1 (CON3)