ユーザ用ツール

サイト用ツール


mae_devel:build_kernel:start

差分

この文書の現在のバージョンと選択したバージョンの差分を表示します。

この比較画面にリンクする

次のリビジョン
前のリビジョン
mae_devel:build_kernel:start [2013/09/02 09:59]
admin 作成
mae_devel:build_kernel:start [2013/09/03 13:52] (現在)
admin
ライン 1: ライン 1:
 +====== カーネルの再構築 ======
 +
 +MA-E210のカーネルをビルドする方法について説明します。
 +
 +まず、ビルドする作業ディレクトリを作成します。
 +
 +<​code>​
 +user1@ma-devel ~ $ mkdir src
 +user1@ma-devel ~ $ cd src/
 +user1@ma-devel ~/src $ 
 +</​code>​
 +
 +次に、gitリポジトリからカーネルのソースを取得します。
 +
 +<​code>​
 +user1@ma-devel ~/src $ git clone http://​133.242.204.151/​gitlab/​ma-e2xx/​linux-2-6-28-x_mae2xx.git
 +Cloning into '​linux-2-6-28-x_mae2xx'​...
 +remote: Counting objects: 28035, done.
 +remote: Compressing objects: 100% (11528/​11528),​ done.
 +remote: Total 28035 (delta 16222), reused 28035 (delta 16222)
 +Receiving objects: 100% (28035/​28035),​ 77.89 MiB | 5.51 MiB/s, done.
 +Resolving deltas: 100% (16222/​16222),​ done.
 +Checking connectivity... done
 +Checking out files: 100% (26108/​26108),​ done.
 +user1@ma-devel ~/src $ ls -l
 +合計 4
 +drwxr-xr-x 23 user1 users 4096  9月  3 13:32 linux-2-6-28-x_mae2xx
 +</​code>​
 +
 +デフォルトのconfigをいくつか用意してありますので、とりあえずは基本の(MA-E210用) "​config_Magnolia2_default"​ を使用してみます。
 +
 +<​code>​
 +user1@ma-devel ~/src $ cd linux-2-6-28-x_mae2xx/​
 +user1@ma-devel ~/​src/​linux-2-6-28-x_mae2xx $ cp config_Magnolia2_default .config
 +user1@ma-devel ~/​src/​linux-2-6-28-x_mae2xx $ 
 +</​code>​
 +
 +PC Linuxの場合と同様に、make menuconfig でconfigをカスタマイズすることもできます。
 +
 +<​code>​
 +user1@ma-devel ~/​src/​linux-2-6-28-x_mae2xx $ make menuconfig
 +</​code>​
 +
 +{{:​mae_devel:​build_kernel:​make_menuconfig.png?​600|make menuconfig}}
 +
 +カスタマイズが終了したら、ビルドを行います。
 +
 +<​code>​
 +user1@ma-devel ~/​src/​linux-2-6-28-x_mae2xx $ make all
 +  HOSTLD ​ scripts/​kconfig/​conf
 +scripts/​kconfig/​conf -s arch/​arm/​Kconfig
 +  CHK     ​include/​linux/​version.h
 +  UPD     ​include/​linux/​version.h
 +  SYMLINK include/asm -> include/​asm-arm
 +  Generating include/​asm-arm/​mach-types.h
 +  CHK     ​include/​linux/​utsrelease.h
 +  UPD     ​include/​linux/​utsrelease.h
 +  HOSTCC ​ scripts/​kallsyms
 +  〜〜〜 略 〜〜〜
 +  LD [M]  net/​netfilter/​xt_quota.ko
 +  LD [M]  net/​netfilter/​xt_realm.ko
 +  LD [M]  net/​netfilter/​xt_rateest.ko
 +  LD [M]  net/​netfilter/​xt_sctp.ko
 +  LD [M]  net/​netfilter/​xt_recent.ko
 +  LD [M]  net/​netfilter/​xt_socket.ko
 +  LD [M]  net/​netfilter/​xt_statistic.ko
 +  LD [M]  net/​netfilter/​xt_string.ko
 +  LD [M]  net/​netfilter/​xt_tcpmss.ko
 +  LD [M]  net/​netfilter/​xt_u32.ko
 +  LD [M]  net/​sctp/​sctp.ko
 +  LD [M]  net/​netfilter/​xt_time.ko
 +user1@ma-devel ~/​src/​linux-2-6-28-x_mae2xx $ make uImage
 +  CHK     ​include/​linux/​version.h
 +make[1]: `include/​asm-arm/​mach-types.h'​ は更新済みです
 +  CHK     ​include/​linux/​utsrelease.h
 +  SYMLINK include/asm -> include/​asm-arm
 +  CALL    scripts/​checksyscalls.sh
 +<​stdin>:​1097:​2:​ 警告: #warning syscall fadvise64 not implemented
 +<​stdin>:​1265:​2:​ 警告: #warning syscall migrate_pages not implemented
 +<​stdin>:​1321:​2:​ 警告: #warning syscall pselect6 not implemented
 +<​stdin>:​1325:​2:​ 警告: #warning syscall ppoll not implemented
 +<​stdin>:​1365:​2:​ 警告: #warning syscall epoll_pwait not implemented
 +  CHK     ​include/​linux/​compile.h
 +dnsdomainname:​ Unknown host
 +  Kernel: arch/​arm/​boot/​Image is ready
 +  Kernel: arch/​arm/​boot/​zImage is ready
 +  UIMAGE ​ arch/​arm/​boot/​uImage
 +Image Name:   ​Linux-2.6.28.10-Magnolia2
 +Created: ​     Tue Sep  3 13:46:11 2013
 +Image Type:   ARM Linux Kernel Image (uncompressed)
 +Data Size:    3143344 Bytes = 3069.67 kB = 3.00 MB
 +Load Address: 80008000
 +Entry Point: ​ 80008000
 +  Image arch/​arm/​boot/​uImage is ready
 +</​code>​
 +
 +ホスト用にカーネルをビルドする場合は、"​make modules_install"​ でカーネルモジュールのインストールを行いますが、
 +クロスコンパイルしているためその方法は使用できないため、ターゲットディレクトリを指定してモジュールをインストールします。
 +
 +<​code>​
 +user1@ma-devel ~/​src/​linux-2-6-28-x_mae2xx $ INSTALL_MOD_PATH=/​tmp make modules_install
 +Warning: you may need to install module-init-tools
 +See http://​www.codemonkey.org.uk/​docs/​post-halloween-2.6.txt
 +  INSTALL crypto/​tcrypt.ko
 +  INSTALL drivers/​hid/​hid-a4tech.ko
 +  INSTALL drivers/​hid/​hid-apple.ko
 +  INSTALL drivers/​hid/​hid-belkin.ko
 +  〜〜〜 略 〜〜〜
 +  INSTALL net/​netfilter/​xt_time.ko
 +  INSTALL net/​netfilter/​xt_u32.ko
 +  INSTALL net/​sctp/​sctp.ko
 +  DEPMOD ​ 2.6.28.10-Magnolia2
 +depmod: WARNING: could not open /​tmp/​lib/​modules/​2.6.28.10-Magnolia2/​modules.builtin:​ No such file or directory
 +user1@ma-devel ~/​src/​linux-2-6-28-x_mae2xx $ 
 +</​code>​
 +
 +/​tmp/​lib/​modules 以下にインストールされました。
 +
 +さきほどビルドしたカーネル本体(arch/​arm/​boot/​uImage)と、カーネルモジュールをセットで
 +ターゲットのMA-E210に使用することになります。
 +
 +<​code>​
 +user1@ma-devel ~/​src/​linux-2-6-28-x_mae2xx $ cd /​tmp/​lib/​modules/​
 +user1@ma-devel /​tmp/​lib/​modules $ tar cjvf 2.6.28.10-Magnolia2.tar.bz2 2.6.28.10-Magnolia2/​
 +2.6.28.10-Magnolia2/​
 +2.6.28.10-Magnolia2/​modules.alias.bin
 +2.6.28.10-Magnolia2/​modules.dep
 +2.6.28.10-Magnolia2/​modules.softdep
 +2.6.28.10-Magnolia2/​kernel/​
 +  〜〜〜 略 〜〜〜
 +2.6.28.10-Magnolia2/​modules.symbols
 +2.6.28.10-Magnolia2/​modules.dep.bin
 +2.6.28.10-Magnolia2/​modules.devname
 +2.6.28.10-Magnolia2/​modules.symbols.bin
 +user1@ma-devel /​tmp/​lib/​modules $ 
 +</​code>​
  
mae_devel/build_kernel/start.1378083567.txt.bz2 · 最終更新: 2013/09/02 09:59 by admin