11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Edison@Debian(ubilinux)のカーネルビルド on Ubuntu 14.04

Last updated at Posted at 2014-12-06

偉大なる先達に敬意を表しつつ、この投稿の手順を確認していきたいと思う。
https://communities.intel.com/message/261307
※投稿ではリアルタイムカーネルパッチを当てているが今回はカーネルコンフィグを弄るのみとしたい。

目標

ubilinuxで提供されているカーネルは非常にスリム、それはもうほとんどサポートというサポートがごっそりナイ。ので自分でフルフルファットな各種サポート満載のカーネルイメージをビルドして各種デバイス(主にUSB周り)をEdisonに接続したい。

大まかに

  • ビルドする
  • カーネルを所定の場所に置く
  • 再起動
    の手順である。
    ちなみにDebianの64bitカーネル3.2.0は起動しなかったことを書いておく。

用意するもの

  • Edison@Debian(ubilinux)でもビルド自体は可能(/home配下で行う)なので其れより速いマシン、今回はAMD A10 7850Kなマシンを使用。
  • メモリも1GB以上の空きががあれば良い模様。
  • 1GBぐらいの空き容量。SSDであれば尚良し。
  • DebianかUbuntuなどのOS環境、今回はUbuntu14.04@AMD64。
  • SSHできるubilinuxが導入されているEdison

では実施

所要時間は2時間は覚悟すること。Edisonで行う場合は4時間ぐらいかかる。

ビルドに必要なパッケージをインストール

次のパッケージを入れる
くれぐれも一度にすまそうとしてはいけない。この3回のインストールを順番に行わないと失敗する。

console
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install devscripts debhelper dh-kpatches findutils
sudo apt-get install kernel-package libncurses-dev fakeroot zlib1g-dev
sudo apt-get install bc

ビルド会場を用意してカーネルファイルをGET

ビルド会場を設営
mkdir -p ~/root/src
そして移動
cd ~/root/src
カーネルソースGET
wget -O - https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.17.tar.bz2 | tar -jxf -
あとで使うため、フレッシュなママのものをコピーしておく。
cp -R linux-3.10.17 linux-3.10.17-orig

Intelさんが用意したEdisonパッチを当てる

パッチを取得
wget -O - http://downloadmirror.intel.com/24389/eng/edison-src-rel1-maint-rel1-ww42-14.tgz#_ga=1.225557722.1979370645.1410536481 | tar -zxf -
実際のビルドディレクトリへ移動
cd ./linux-3.10.17
パッチを適用する。
patch -p1 < ../edison-src/device-software/meta-edison/recipes-kernel/linux/files/upstream_to_edison.patch
コンフィグファイルをコピー
cp ../edison-src/device-software/meta-edison/recipes-kernel/linux/files/defconfig .config
cp drivers/tty/serial/mfd_trace.h include/trace/

kernelコンフィグ

このメニューで64bitサポートが最初に来ているから64bit版カーネルが欲しかったらそこチェックしたらいいんじゃないのか?Intelの手順書にもスクリーンショットがあるし。と思ったら大間違いで、上記のパッチ適用のログを見ればわかるがx86配下のファイルだらけでありどこにも64の文字はない。そうこれは罠であり無視するしかないのだ。
現時点でEdisonに64bit版カーネルを入れる方法を私はまだ知らない。

コンフィグを開く
make menuconfig
ここでUSB関連のいろいろなサポートを追加する、WebCamとかDisplayLinkとかとか

そしてビルド

いらないかもしれないけどとりあえずデバッグを吐かないようにする。
scripts/config --disable DEBUG_INFO
クリーン
make clean
ビルド!
make deb-pkg

終わったら~/root/srcに以下のファイルができているはず

linux-headers-3.10.17-poky-edison_3.10.17-poky-edison-1_i386.deb
linux-image-3.10.17-poky-edison_3.10.17-poky-edison-1_i386.deb
linux-libc-dev_3.10.17-poky-edison-1_i386.deb

Edison本体にコピー

scpで転送,アドレスは適当に、パーティーションが異なる/home直下に置く。
cd ~/root/src
scp *.deb root@192.168.x.x:/home

配置

元の投稿ではいろいろバックアップをやっているが、最悪焼き直せばいいのでここは気にせずバックアップなど取らずに置き換えることにする。

Edisonにsshでログインしてカーネルを置換、再起動する。

元のやつはどっかに置いておく
mv /boot/vmlinuz /root

/bootパーティションをアンマウント、フォーマットで最大限に拡大する。

console
mkdir /tmp/boot
cp -R /boot/* /tmp/boot
umount /boot
mkfs.vfat /dev/mmcblk0p7
mount /boot
cp -R /tmp/boot/* /boot

再マウント後の容量確認
df -h

console
Filesystem       Size  Used Avail Use% Mounted on
rootfs           1.4G  1.1G  245M  82% /
/dev/root        1.4G  1.1G  245M  82% /
devtmpfs         481M     0  481M   0% /dev
tmpfs             97M  308K   96M   1% /run
tmpfs            5.0M     0  5.0M   0% /run/lock
tmpfs            193M     0  193M   0% /run/shm
tmpfs            481M  180K  481M   1% /tmp
/dev/mmcblk0p10  1.6G   15M  1.5G   1% /home
/dev/mmcblk0p7    32M     0   32M   0% /boot

ここでインストール

console
cd /home
dpkg -i *.deb
mv /boot/vmlinuz-3.10.17-poky-edison /boot/vmlinuz
reboot

以上で起動する。きっと、きっと大丈夫、きっとだよ!

確認

以下のコマンドでコンパイルしたマシンの情報が見れたら置き換わっている。
dmesg | grep "Linux version"

※のんきにコンフィグしてビルドしたらWifiが使えなくなってしまった・・

失敗して起動しなくなってしまったら・・・

駄目な場合はこちらを参照してください。
http://qiita.com/ryunosinfx@github/items/6d014dc9cfd615ac076e
多分/boot配下は上書きしてくれるので起動するはずです。

11
12
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
12

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?