• 検索結果がありません。

PowerPoint プレゼンテーション

N/A
N/A
Protected

Academic year: 2022

シェア "PowerPoint プレゼンテーション"

Copied!
49
0
0

読み込み中.... (全文を見る)

全文

(1)

マルチプラットフォームとマルチデバイスの実証

Mitsutaka Amano

MIRACLE LINUX CORPORATION

(2)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 2

何やってる人?

執筆活動

日経Linux ライター

情報処理学会 会誌「情報処理」10月号「Google Chrome OSの構成から見るセキュリティ対策」

講演活動

Open Source Conference

LinuxCon Japan 2010

Japan Linux Conference 2010

MeeGo関連各種等

(3)

何やってる人?

コミュニティ活動

Moblin

開発ツールのメンテナ、日本語化作業、各種講演等

MeeGo

Netbook 日本語版イメージ公開

各種H/Wへの移植等

仕事

組込み系Linuxプラットフォームの開発

tweet on @mitsutaka_amano

(4)

概要

(5)

概要

MeeGoの特徴はいろいろあります

アプリケーション標準APIとしてQt

MTF(MeeGo Touch Framework)

x86, ARMプラットフォームサポート

(6)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 6

概要

マルチプラットフォームサポートの意味

x86 ... SSSE3命令セットサポート以上のIA

Atom, Core 2等

ARMv7(SoCs)

Freescale i.MX51

TI OMAP3

Marvell Dove/Armada

Qualcomm Snapdragon

NVIDIA Tegra

などなど

(7)

概要

使われているモノ

Atom, Core 2

ネットブック、ラップトップ、IA組み込みボード

Freescale i.MX51

SHARP Netwalker(Ubuntu)

TI OMAP3

Nokia N900(Maemo5)

Marvell Dove/Armada

Quanta EBOX

Quallcomm Snapdragon

NexusOne, HTC Desire..(Android)

NVIDIA Tegra

LuvPad, Dynabook AZ..(Android)

(8)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 8

概要

世の中にある多くの製品でMeeGoが動作する

様々なターゲットデバイスで利用できる

これがMeeGoの特徴

(9)

テーマ

● どうやって移植するのか?

● 既に別のOSが動いている製品でも移植 可能なのか?

● Android端末等

(10)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 10

Agenda

Android端末の特徴を知る

移植方法

移植例: NexusOne

今後の課題/他のケース

まとめ

(11)

Android端末の特徴を知る

(12)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 12

Android端末の特徴

MTD(Memory Technology Device)を使ってフラッシュメモリに パーティションを構築

$ cat /proc/mtd

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

例: Nexus One

(13)

Android端末の特徴

Android独自の用途別に従ってパーティション分けされている

$ cat /proc/mtd

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

起動時のスプラッシュ画面等

Android復元/アップデート時の起動パー ティション

通常の起動パーティション

実行ファイル(Androidアプリ)、ライブラリ等 の読み込み用途のファイル

ダウンロードファイルのキャッシュ等 ユーザーの設定情報(ブックマーク、メール

、電話帳、接続済みAP情報等)

(14)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 14

Android端末の特徴

recovery, bootそれぞれにカーネルイメージ、カーネルパラ メータ、initrdが組み込まれている

$ cat /proc/mtd

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

起動時のスプラッシュ画面等

Android復元/アップデート時の起動パー ティション

通常の起動パーティション

実行ファイル(Androidアプリ)、ライブラリ等 の読み込み用途のファイル

ダウンロードファイルのキャッシュ等 ユーザーの設定情報(ブックマーク、メール

、電話帳、接続済みAP情報等)

zImage + cmdline + initrd zImage + cmdline + initrd

(15)

Android端末の特徴

initrdをルートファイルシステムとして利用する

/proc, /dev, /systemなど各種必要なディレクトリをマウント

zImage + cmdline + initrd

rootfs / rootfs ro ...

tmpfs /dev tmpfs rw ...

devpts /dev/pts devpts rw ...

proc /proc proc rw ...

sysfs /sys sysfs rw ...

/dev/block/mtdblock3 /system yaffs2 ro ...

/dev/block/mtdblock4 /cache yaffs2 rw ...

/dev/block/mtdblock5 /data yaffs2 rw ...

/dev/block/mmcblk0p1 /mnt/sdcard vfat rw ....

...

フラッシュメモリ上のsystem, cache, dataをyaffs2でマウント

SDカードのマウント

(16)

移植方法

(17)

移植方法:考え方

二つの視点で考える

カーネルのロード方法

どこから起動できるのか?

どの起動方法がベストプラクティスか?

ルートファイルシステムの場所

どこに置けるか?

どれだけの容量が必要なのか?

How?

Where?

(18)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 18

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

カーネルのロード方法:その1

boot領域を上書きする

電源ONでそのまま起動

効果

端末単体で起動できる

最も簡単な起動方法

懸念点

Androidが起動できなくなる

(19)

カーネルのロード方法:その2

zImage

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

PC経由からカーネル転送、ロード

fastbootコマンドでzImageを転送

効果

フラッシュメモリ上には影響がない

Androidの環境は保持される

懸念点

起動するたびにPCが必要になる

(20)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 20

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

カーネルのロード方法:その3

recovery領域を上書きする

電源ON→リカバリモードで起動

効果

端末単体で起動できる

Androidとのデュアルブート化

懸念点

recovery領域からAndroidの復元/アップデートができ なくなる

(21)

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

ルートファイルシステムの場所:その1

system領域

yaffs2のファイルシステムイメージを作成

fastbootで上書き

効果

system領域のみでルートファイルシステムを構築でき る

懸念点

Androidが起動できなくなる

(22)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 22

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

ルートファイルシステムの場所:その2

userdata領域

yaffs2のファイルシステムイメージを作成

fastbootで上書き

効果

userdata領域のみでルートファイルシステムを構築で きる

system領域よりちょっと大きい

懸念点

Android上のユーザーデータが保証できなくなる

(23)

ルートファイルシステムの場所:その3

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

SDカード

PC上でルートファイルシステムを書き込む

ext2, ext3, ext4ファイルシステムで作成

効果

フラッシュメモリ上には影響がない

GB単位で十分なスペースを確保できる

懸念点

SDカードが必要(強いて言えば)

(24)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 24

移植方法:まとめ

system領域 userdata領域 SDカード

bootから起動 Androidとの完全な

置き換え

ディスク領域小

Android起動不可

ディスク領域中 Androidとのデュア

ルブート化 ディスク領域大

recoveryから起動

Android起動不可

ディスク領域小 Android起動不可

ディスク領域中 Androidとのデュア

ルブート化 ディスク領域大

PCから起動 Android起動不可

ディスク領域小 Android起動不可

ディスク領域中 フラッシュメモリを

一切使わない最も 安全な方法

ディスク領域大

(25)

移植例:NexusOne

(26)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 26

移植例: NexusOne

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

MeeGo 1.1, Android 2.2.1デュアルブート

以下の組み合わせで移植

カーネルのロード方法 その3(boot領域からの起動)

ルートファイルシステムの場所 その3(SDカード)

更にrecovery領域をAndroidのboot領域に置き換え

(27)

準備: ハードウェア

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

NexusOne本体

PC(Ubuntu 10.04)

USB-microUSBケーブル

SDカード

mmcblk0p1 ... vfat(Androidのメディア保存用)

mmcblk0p2 ... ext3(MeeGoルートファイルシステム)

(28)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 28

準備: ソフトウェア

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

Androidビルド済みソースツリー

fastboot

Android端末の制御ツール

<Androidのソースツリー>/out/host/linux- x86/bin/fastboot

mic2

MeeGoのイメージ作成ツール

/etc/apt/sources.listに以下を記述

deb http://repo.meego.com/tools/repos/ubuntu/10.04/ /

$ sudo apt-get update; apt-get install mic2

(29)

手順1: MeeGoルートファイルシステムの構築

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

kickstartファイルの入手

http://wiki.meego.com/images/Meego-handset-armv7l- nexusone-1.1.ks

mic2実行

$ sudo LANG=C mic-image-creator -c meego-handset-armv7l-nexusone-

1.1.ks -f loop --run-mode=0 --arch=armv7l

(30)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 30

手順1: MeeGoルートファイルシステムの構築

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

パーティション作成

mmcblk0p1 ... vfat(Androidのメディア保存用)

mmcblk0p2 ... ext3(MeeGoルートファイルシステム)

microSDへコピー

tar xvf meego-handset-armv7l-nexusone-1.1-<タイムスタンプ>-rootfs.tar.gz

-C <microSDのマウントポイント>

(31)

手順2: カーネルの作成

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

boot.img

zImage + cmdline + initrd

MSM(Qualcomm Mobile Station Modem)向けAndroidカーネル を使用する

git://android.git.kernel.org/kernel/msm.git

android-msm-2.6.32ブランチを使用する

NexusOne Android 2.2と同等のカーネル

$ git clone git://android.git.kernel.org/kernel/msm.git -b android-msm-2.6.32

android-msm-2.6.32

(32)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 32

手順2: カーネルの作成

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

boot.img

zImage + cmdline + initrd

kernel configuration

テンプレートとしてmahimahi_defconfigを使用

$ cp arch/arm/configs/mahimahi_defconfig .config

initrdを使わないので以下を無効にする

# CONFIG_BLK_DEV_INITRD is not set

X.Orgを使うので、Virtual Terminal(仮想端末)を有効にす る

CONFIG_VT=y

CONFIG_CONSOLE_TRANSLATIONS=y

CONFIG_VT_CONSOLE=y

CONFIG_VT_HW_CONSOLE_BINDING=y

(33)

手順2: カーネルの作成

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

boot.img

zImage + cmdline + initrd

コンパイル

Androidのprebuiltにあるクロスコンパイラを使用

git://android.git.kernel.org/platform/prebuilt.git

パスを通す

$ export PATH=$PATH:<Androidのソースツリー>/prebuilt/linux-

x86/toolchain/arm-eabi-4.4.0/bin

make

$ make oldconfig ARCH=arm CROSS_COMPILE=arm-eabi-

$ make zImage modules ARCH=arm CROSS_COMPILE=arm-eabi-

(34)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 34

手順3: MeeGo用boot.imgの作成

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

boot.img

zImage + cmdline + initrd

boot.imgとは

boot領域、recovery領域で使えるイメージファイル

kernel(zImage) + cmdline + initrdの結合

mkbootimgコマンドで作成する

git://android.git.kernel.org/platform/system/core.git

(35)

手順3: MeeGo用boot.imgの作成

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

boot.img

zImage + cmdline + initrd

boot.imgの材料を揃える

kernel(zImage)

手順2で作ったzImage

cmdline

init=/sbin/init rootwait root=/dev/mmcblk0p2 rootfstype=ext3 rw noinitrd

root= ... ルートファイルシステムの場所

noinitrd ... initrdを使わない

initrd

空のinitrdを作成する

$ echo -n | sudo cpio -o -H newc | sudo gzip > boot.img-ramdisk-

meego.cpio.gz

(36)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 36

手順3: MeeGo用boot.imgの作成

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

boot.img

zImage + cmdline + initrd

boot.imgを作成する

$ mkbootimg --cmdline 'init=/sbin/init rootwait root=/dev/mmcblk0p2

rootfstype=ext3 rw noinitrd' --kernel zImage --ramdisk boot.img-ramdisk- meego.cpio.gz --base 0x20000000 -o boot.img-meego

--cmdline ... 前述のcmdlineを記述

--kernel ... 前述のzImageファイルを追加

--ramdisk ... 前述で作成した空のinitrdファイル

--base ... NexusOneのベースアドレス

-o ... 出力先ファイル名

(37)

手順4: 起動準備

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

NexusOneをfastbootが使えるようにする

電源+ボリュームダウンで起動

FASTBOOTを選択

PCとNexusOneを接続(udevの設定が必要)

SUBSYSTEM=="usb", ATTRS{idVendor}=="0bb4",

SYMLINK+="android_fastboot", MODE="0666"

(38)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 38

手順5: Flashへ上書き

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

fastbootでboot領域をMeeGo用boot.imgに上書き

$ fastboot flash boot boot.img-meego

fastbootでrecovery領域をAndroid用boot.imgに上書き

$ fastboot flash recovery boot.img

イメージバックアップから入手

boot.img recovery.img

(39)

手順6: 起動

dev: size erasesize name mtd0: 000e0000 00020000 "misc"

mtd1: 00500000 00020000 "recovery"

mtd2: 00280000 00020000 "boot"

mtd3: 09100000 00020000 "system"

mtd4: 05f00000 00020000 "cache"

mtd5: 0c440000 00020000 "userdata"

MeeGoの起動方法

電源ボタンで起動

boot領域(MeeGo) -> microSDのMeeGo

Androidの起動方法

電源+ボリュームダウンで起動

RECOVERYを選択

recovery領域(Android) -> 通常起動

(40)

今後の課題/別のケース

(41)

今後の課題

ハードウェアレンダリングを有効にする

libEGL, libGLESv2の互換性の問題で難しい、、

周辺装置の対応

ボタン、トラックボール、センサ、カメラ等

電話機能の対応

ATコマンドの調査が必要

ofono(Open Source Telephony)の拡張

(42)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 42

注意事項

バックアップを忘れずに!(nandroid etc)

YOUR OWN RISK!

カスタマイズしたイメージの書き換え

BootloaderのUnlockが必要

メーカーの保証対象外になる

Lock状態に戻せない機種がある

イメージの書き換え方法

fastbootで上書きできるとは限らない

recovery領域のinitrdからイメージの書き込みを行う

必要に応じてroot化も必要

(43)

よくある質問

製品ではなく開発ボードの場合は?

フラッシュメモリの構成をユーザーが変更可能

製品よりも自由度が高い(移植が簡単)

Androidカーネルのコンフィグレーションが有効化されても MeeGoは動く?

動く。むしろ活用できる

CONFIG_USB_ANDROID_ADB=y

Android Debug Bridge(USB経由でファイル転送、シェ ル操作)が使える

MeeGo UXを動かす上で最低限必要なのは?

ハードウェアアクセラレーションのサポート

(44)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 44

別のケース

TOSHIBA AC100(Dynabook AZ)

NVIDIA Tegra2

L4T(Linux For Tegra)を使ってイメージ書き換え

以下の組み合わせで移植

カーネルのロード方法 その3(recovery領域からの起動)

ルートファイルシステムの場所 その3(SDカード)

Ubuntuの動作実績あり

http://tosh-ac100.wetpaint.com/page/Ubuntu

音声出力、HDMI出力が難

(45)

まとめ

(46)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 46

まとめ

Android端末でもMeeGo(==Linux)は動かせる

動かし方は機器によって様々

クローズドドライバ、ライブラリと整合すること

が優先

(47)

各種URL

MeeGo公式サイト

http://meego.com

MeeGo技術ドキュメント

http://wiki.meego.com

Android端末系移植ドキュメント

http://wiki.meego.com/ARM/MSMQSD

今回の移植手順

http://blog.mitsutaka.org/2010/11/meego-11-for- nexusone-status-and-how-to.html

http://blog.mitsutaka.org/2010/11/meego-11-for- nexusone-status-part2-and.html

(48)

2010/12/09 Copyright(c)2000-2010 MIRACLE LINUX CORPORATION. All Rights Reserved. 48

Q&A

(49)

Thank you!

参照

関連したドキュメント

●Gartner Magic QuadrantにてクラウドHCM Suiteにおけるリーダーの評価.. Copyright © 2022 Nomura System Corporation Co, Ltd. All Rights Reserved.. Copyright © 2022 Nomura

支援要請入力詳細 13ページ 患者受入入力詳細 14ページ 支援可能スタッフ3.

and Kristjan Vassil (2010) Internet voting in Estonia : a comparative analysis of four elections since 2005 : report for the Council of Europe”Report for the Council of Europe.

2021年1月15日にHa Tay Pharmaceutical Joint Stock Company(

がん化学療法に十分な知識・経験を持つ医師のもとで、本剤の投与が適切と判断さ

日医かかりつけ医機能研修制度 令和 年度応用研修会 「メタボリックシンドロームからフレイルまで」 飯島勝矢 Tamakoshi A ら. Obesity

(Immuno Checkpoint Inhibitor Proper use Support team

剣道部 柔道部 硬式野球部 卓球部 水泳部 ラグビー部 ソフトテニス部 テニス部 ハンドボール部 サッカー部 バドミントン部