Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
2015年:謎の蟹推しでした
体制一新:新ビルドサーバ
新ビルドサーバ
● Core i7マザーボード, Memory 12GB, 電源
(あひるさん寄贈)
● 3TB HDD, 256GB SSD, ケース
(しまだ)
● 家のNetwork回線が貧弱なため、ほたさん
(@lindwurm) 宅に...
その結果
●
ビルド時間が大幅に短縮
– ここん:6時間 → 3時間 (ベンチを基にした推計値)
– Android mod:2〜3時間 → 1時間
●
対応プラットフォームを増やすことが可能に
(3 → 10以上)
ということで
2016年一発目のネタ
今年のザ・旧型コンピュータは...
Allwinnerタブレットの
OSを作ってみる(途中)
SHIMADA Hirofumi,
@shimadah
事の発端:遅いAndroid Tablet
● 帰省中、お蔵入りしていた Android Tablet を発見
– だいぶ前に、妹(スティーブ・ココンの作者↓)が購入し
た教材に付いてきたらしい
– しかし、動作が大変モッサリとしていたので余り...
こういうマシンです
Androidは大変モッサリなので
● なにか適当なLinux環境を作って動かせば、割と使
えるようになるんじゃないか
● Allwinnerはそんなに難しくない、みたいな話を以前
聞いたことがある
●
タブレット版ここんみたいなのができればい...
Allwinner
● 中国のチップメーカー。安価なARMプロセッサを出
している
● BagleBone, ODROID, C.H.I.P., Orange Pi 等、安
価な RasPi もどきのボードコンピュータに大抵搭
載されている
●...
linux-sunxi コミュニティ
● Allwinner マシン向けの Kernel, u-boot 等のメンテ
ナンスと Upstream への反映を行っている
● Allwinner マシンのデータベースを持ち、Hack の仕
方などを...
調査開始
● Android 4.1
●
機種名しかわからず、手がかりがない
そういうときはバラしましょう
ヒントは?
わかったこと
● Allwinner A13
● 基盤にある文字:ET_Q8_V1.2
→この情報を基に、linux-sunxi サイト内を探す
調べてみると
● Q8 というフォームファクタのタブレットである
“ The 7" tablet format is a very popular case style
which is/was used for the cheapest ta...
どうやってディストリを作るか?
● OpenEmbedded + meta-sunxi の組み合わせ
(meta-sunxi も Linux-sunxi コミュニティでメンテナンスさ
れている。)
https://github.com/linu...
復習:Device Treeとは?
● PCと異なり、ハードウェアの自動認識が難しく、設定ファイル
を当てて認識させる必要がある
●
「ハードウェアの情報を記述するためのデータ構造」
– レジスタ、割り込み、メモリ、各種パラメータ、使用するドラ...
ARMの状況:いわゆるISAバス(Cバス)
http://pc.watch.impress.co.jp/docs/article/diy9712/3/3_2/052.jpg
Sunxi の Device Tree事情
● 以前から sunxi の Linux kernel では、 FEX という独自
の Device Tree + α 的な仕組みを持っている
– Linux-sunxi ツリーは、 Linux 3....
conf/machine/q8.conf
#@TYPE: Machine
#@NAME: Q8 Tablet
#@DESCRIPTION:
require conf/machine/include/sun5i.inc
KERNEL_DEVICE...
conf/machine/q8.conf
#@TYPE: Machine
#@NAME: Q8 Tablet
#@DESCRIPTION:
require conf/machine/include/sun5i.inc
KERNEL_DEVICE...
Q8でのLinux Kernel
● Linux-sunxi では既にサポートされている
● (Upstream) Linux では 4.4 から各種対応がマー
ジされた
buildする
$ ./oebb.sh config q8
$ . ./opencocon
$ bitbake linux u-boot
※詳しい方法はまとまり次第どこかに書きます(すん
ません)
Sunxi-tools
● ホスト側マシンに sunxi-tools をインストールする。
● FELモードでタブレットを起動する
(このマシンの場合、USBケーブルを外して、[電源]+ [Volume +]を長押し
することでFELモードで起...
u-bootを転送する
● Ubootだけを転送して起動する
$ sudo ./sunxi-fel uboot u-boot-sunxi-with-spl.bin write
● Kernelも含めて転送する
$ sudo ./sunxi-fe...
u-boot : ペンギン登場
u-boot → Kernel
しかし、ここからが問題
● touchscreen等のチップが微妙に異なり、部分的に
動かない可能性がある
● 既に rtc が動いていないのが気になる
● keyboardが使えるわけではないため、正しく動くこ
とを確認するためには、まだ時間...
上周りはどうする?
● 本当はタブレット版Xfceみたいなポジションのもの
が望ましい
● KDE Plasma もある
http://plasma-mobile.org/technology/
● Enlightment (EFL) もあるけ...
まとめ
●
安物タブレットマニアが海外に多いらしい
● 俺Linuxを動かすまでは割と簡単であった
● Linux kernel への反映はまだ途上だが、緩やかに
続いている
●
ディストリ作ろうぜ!!
Upcoming SlideShare
Loading in …5
×

AllwinnerタブレットのOSを作ってみる (途中版)

2016年1月 LILO東海道オフラインミーティングにて発表
Allwinnerタブレットで俺Linux kernelをbootさせるまで
(序盤数スライドは opencocon (http://opencocon.org) のビルドサーバの話です)

訂正とか:
・まだ未完成バージョンです、ハックが進み次第よさげなスライド書きます
・BagleBoneに入ってるチップはAllwinnerではなくTIです。orz

  • Be the first to comment

AllwinnerタブレットのOSを作ってみる (途中版)

  1. 1. 2015年:謎の蟹推しでした
  2. 2. 体制一新:新ビルドサーバ
  3. 3. 新ビルドサーバ ● Core i7マザーボード, Memory 12GB, 電源 (あひるさん寄贈) ● 3TB HDD, 256GB SSD, ケース (しまだ) ● 家のNetwork回線が貧弱なため、ほたさん (@lindwurm) 宅に設置を委託 ● おーぷんここんと、ほたさん(Android mod系のディ ストリビューションビルドに使用)の共同利用
  4. 4. その結果 ● ビルド時間が大幅に短縮 – ここん:6時間 → 3時間 (ベンチを基にした推計値) – Android mod:2〜3時間 → 1時間 ● 対応プラットフォームを増やすことが可能に (3 → 10以上)
  5. 5. ということで 2016年一発目のネタ
  6. 6. 今年のザ・旧型コンピュータは...
  7. 7. Allwinnerタブレットの OSを作ってみる(途中) SHIMADA Hirofumi, @shimadah
  8. 8. 事の発端:遅いAndroid Tablet ● 帰省中、お蔵入りしていた Android Tablet を発見 – だいぶ前に、妹(スティーブ・ココンの作者↓)が購入し た教材に付いてきたらしい – しかし、動作が大変モッサリとしていたので余り使わな かったらしい ● 正常に動いているため、貰って何かに遊べるか調べ ることにした
  9. 9. こういうマシンです
  10. 10. Androidは大変モッサリなので ● なにか適当なLinux環境を作って動かせば、割と使 えるようになるんじゃないか ● Allwinnerはそんなに難しくない、みたいな話を以前 聞いたことがある ● タブレット版ここんみたいなのができればいいかも ● ということで調べてみた
  11. 11. Allwinner ● 中国のチップメーカー。安価なARMプロセッサを出 している ● BagleBone, ODROID, C.H.I.P., Orange Pi 等、安 価な RasPi もどきのボードコンピュータに大抵搭 載されている ● (最近はあまり見ないが)安価なAndroidタブレット にも搭載されている ● HDMIスティック等にも搭載されていることがある
  12. 12. linux-sunxi コミュニティ ● Allwinner マシン向けの Kernel, u-boot 等のメンテ ナンスと Upstream への反映を行っている ● Allwinner マシンのデータベースを持ち、Hack の仕 方などをまとめている http://linux-sunxi.org/Identification_guide ● 繰り返し GPL 違反をする Allwinner に対し開示要 求をしたり調査したりも行っているようだ http://linux-sunxi.org/GPL_Violations
  13. 13. 調査開始 ● Android 4.1 ● 機種名しかわからず、手がかりがない
  14. 14. そういうときはバラしましょう
  15. 15. ヒントは?
  16. 16. わかったこと ● Allwinner A13 ● 基盤にある文字:ET_Q8_V1.2 →この情報を基に、linux-sunxi サイト内を探す
  17. 17. 調べてみると ● Q8 というフォームファクタのタブレットである “ The 7" tablet format is a very popular case style which is/was used for the cheapest tablets from 2012 through 2014. “ http://linux-sunxi.org/Format_Q8 ● 外観は概ね似たような感じであるが、中身は物により、微 妙にchipが異なり、しかも多くの種類があるらしい – 案の定、 ET_Q8_V1.2 という名前のタブレットが無かったもの の、近そうなタブレットならあった
  18. 18. どうやってディストリを作るか? ● OpenEmbedded + meta-sunxi の組み合わせ (meta-sunxi も Linux-sunxi コミュニティでメンテナンスさ れている。) https://github.com/linux-sunxi/meta-sunxi ● (ここんとしては)慣れている OpenEmbedded でさくっとで きればいいよね ● とりあえずは Kernel が動くところまで
  19. 19. 復習:Device Treeとは? ● PCと異なり、ハードウェアの自動認識が難しく、設定ファイル を当てて認識させる必要がある ● 「ハードウェアの情報を記述するためのデータ構造」 – レジスタ、割り込み、メモリ、各種パラメータ、使用するドライバ等 ● Linux 3.7 よりARMで導入 – PowerPC には以前からあった ● Kernel ツリーの arch/arm/boot/dts/ 以下に、 ソースとなる *.dts ファイルがある – コンパイル後は dtb ファイルができる。これを実際にブートローダ に、Kernelとともに読み込ませる
  20. 20. ARMの状況:いわゆるISAバス(Cバス) http://pc.watch.impress.co.jp/docs/article/diy9712/3/3_2/052.jpg
  21. 21. Sunxi の Device Tree事情 ● 以前から sunxi の Linux kernel では、 FEX という独自 の Device Tree + α 的な仕組みを持っている – Linux-sunxi ツリーは、 Linux 3.4 に FEX を追加搭載している。 ● Device Tree との互換性はない ● 最近の Linux では Device Tree の方が推奨されている ため、 Device Tree へのコンバート作業が進んでいる。 ● meta-sunxi では、FEX と Device Tree の両方に対応し ており、デバイスの対応状況によって Kernel などを切り 替えて build することができる。
  22. 22. conf/machine/q8.conf #@TYPE: Machine #@NAME: Q8 Tablet #@DESCRIPTION: require conf/machine/include/sun5i.inc KERNEL_DEVICETREE = "sun5i-a13-q8-tablet.dtb" UBOOT_MACHINE = "q8_a13_tablet_defconfig" SUNXI_FEX_FILE = "sys_config/a13/pov_tab_p703.fex"
  23. 23. conf/machine/q8.conf #@TYPE: Machine #@NAME: Q8 Tablet #@DESCRIPTION: require conf/machine/include/sun5i.inc KERNEL_DEVICETREE = "sun5i-a13-q8-tablet.dtb" ↑ DeviceTree (Linux) UBOOT_MACHINE = "q8_a13_tablet_defconfig" ↑ u-boot の config (Linux-sunxi, Linux共通) SUNXI_FEX_FILE = "sys_config/a13/pov_tab_p703.fex" ↑ FEXファイル (Linux-sunxi)
  24. 24. Q8でのLinux Kernel ● Linux-sunxi では既にサポートされている ● (Upstream) Linux では 4.4 から各種対応がマー ジされた
  25. 25. buildする $ ./oebb.sh config q8 $ . ./opencocon $ bitbake linux u-boot ※詳しい方法はまとまり次第どこかに書きます(すん ません)
  26. 26. Sunxi-tools ● ホスト側マシンに sunxi-tools をインストールする。 ● FELモードでタブレットを起動する (このマシンの場合、USBケーブルを外して、[電源]+ [Volume +]を長押し することでFELモードで起動する。画面は何も映らない。) ● タブレットとホスト側マシンを、データが通るmicroUSBケーブルでつなぐ ● 接続確認 $ lsusb Bus 001 Device 006: ID 1f3a:efe8 Onda (unverified) V972 tablet in flashing mode ... ● テスト通信 $ sudo ./sunxi-fel version AWUSBFEX soc=00001625(A13) 00000001 ver=0001 44 08 scratchpad=00007e00 00000000 00000000
  27. 27. u-bootを転送する ● Ubootだけを転送して起動する $ sudo ./sunxi-fel uboot u-boot-sunxi-with-spl.bin write ● Kernelも含めて転送する $ sudo ./sunxi-fel -v uboot u-boot-sunxi-with-spl.bin write 0x42000000 uImage write 0x43000000 uImage-sun5i-a13-q8-tablet.dtb write 0x43100000 boot-q8.scr write 0x43300000 rootfs.cpio.lzma.uboot
  28. 28. u-boot : ペンギン登場
  29. 29. u-boot → Kernel
  30. 30. しかし、ここからが問題 ● touchscreen等のチップが微妙に異なり、部分的に 動かない可能性がある ● 既に rtc が動いていないのが気になる ● keyboardが使えるわけではないため、正しく動くこ とを確認するためには、まだ時間がかかりそう ● コードを反映させるにも時間がかかりそう
  31. 31. 上周りはどうする? ● 本当はタブレット版Xfceみたいなポジションのもの が望ましい ● KDE Plasma もある http://plasma-mobile.org/technology/ ● Enlightment (EFL) もあるけど、実際はどうやろか? ● ほかには?
  32. 32. まとめ ● 安物タブレットマニアが海外に多いらしい ● 俺Linuxを動かすまでは割と簡単であった ● Linux kernel への反映はまだ途上だが、緩やかに 続いている ● ディストリ作ろうぜ!!

    Be the first to comment

    Login to see the comments

  • matoken

    Jan. 22, 2016
  • stelth_red

    Jul. 5, 2018
  • DTaksak

    Aug. 23, 2019
  • knoike

    Jan. 12, 2021

2016年1月 LILO東海道オフラインミーティングにて発表 Allwinnerタブレットで俺Linux kernelをbootさせるまで (序盤数スライドは opencocon (http://opencocon.org) のビルドサーバの話です) 訂正とか: ・まだ未完成バージョンです、ハックが進み次第よさげなスライド書きます ・BagleBoneに入ってるチップはAllwinnerではなくTIです。orz

Views

Total views

2,692

On Slideshare

0

From embeds

0

Number of embeds

122

Actions

Downloads

5

Shares

0

Comments

0

Likes

4

×