MINI2440カーネルリポジトリのstableを試す2009年08月22日 14時25分19秒

panic時の表示状態

MINI2440用のカーネルリポジトリのブランチを確認して、それぞれのソースコードからカーネルビルドして試すことにします。

複数のbranchの取得

今回やりたいことはgitリポジトリにあるはずの複数のbranchを試したいということです。

まず、cloneしてリモートのbranchも含めた情報を参照します。

laptop:~/dev/android/mini2440_kernel/mini2440$ git branch
* master
laptop:~/dev/android/mini2440_kernel/mini2440$ git branch -a
* master
  origin/HEAD
  origin/master
  origin/mini2440-dev
  origin/mini2440-dev-extras
  origin/mini2440-dev-likely
  origin/mini2440-dev-unlikely
  origin/mini2440-extras
  origin/mini2440-stable
  origin/mini2440-stable-v2.6.29
  origin/mini2440-stable-v2.6.30
  origin/mini2440-v2.6.31
  origin/origin/HEAD
以上の結果から、以下のbranchを取得することにします。
  • mini2440-stable
  • mini2440-stable-v2.6.29
  • mini2440-stable-v2.6.30
特に、「mini2440-stable」のバージョンが不明ですね。試してみるしかないでしょう。

複数のbranchをcheckoutした様子が以下です。

laptop:~/dev/android/mini2440_kernel/mini2440$ git checkout -b mini2440-stable origin/mini2440-stable 
Checking out files: 100% (8716/8716), done.
Branch mini2440-stable set up to track remote branch refs/remotes/origin/mini2440-stable.
Switched to a new branch "mini2440-stable"
laptop:~/dev/android/mini2440_kernel/mini2440$ git branch -a 
  master
* mini2440-stable
  origin/HEAD
  origin/master
  origin/mini2440-dev
  origin/mini2440-dev-extras
  origin/mini2440-dev-likely
  origin/mini2440-dev-unlikely
  origin/mini2440-extras
  origin/mini2440-stable
  origin/mini2440-stable-v2.6.29
  origin/mini2440-stable-v2.6.30
  origin/mini2440-v2.6.31
  origin/origin/HEAD
laptop:~/dev/android/mini2440_kernel/mini2440$ git checkout -b mini2440-stable-v2.6.29 origin/mini2440-stable-v2.6.29 
Checking out files: 100% (10259/10259), done.
Branch mini2440-stable-v2.6.29 set up to track remote branch refs/remotes/origin/mini2440-stable-v2.6.29.
Switched to a new branch "mini2440-stable-v2.6.29"
laptop:~/dev/android/mini2440_kernel/mini2440$ git branch -a
  master
  mini2440-stable
* mini2440-stable-v2.6.29
  origin/HEAD
  origin/master
  origin/mini2440-dev
  origin/mini2440-dev-extras
  origin/mini2440-dev-likely
  origin/mini2440-dev-unlikely
  origin/mini2440-extras
  origin/mini2440-stable
  origin/mini2440-stable-v2.6.29
  origin/mini2440-stable-v2.6.30
  origin/mini2440-v2.6.31
  origin/origin/HEAD
laptop:~/dev/android/mini2440_kernel/mini2440$ git checkout -b mini2440-stable-v2.6.30 origin/mini2440-stable-v2.6.30 
Checking out files: 100% (10259/10259), done.
Branch mini2440-stable-v2.6.30 set up to track remote branch refs/remotes/origin/mini2440-stable-v2.6.30.
Switched to a new branch "mini2440-stable-v2.6.30"
laptop:~/dev/android/mini2440_kernel/mini2440$ git branch -a
  master
  mini2440-stable
  mini2440-stable-v2.6.29
* mini2440-stable-v2.6.30
  origin/HEAD
  origin/master
  origin/mini2440-dev
  origin/mini2440-dev-extras
  origin/mini2440-dev-likely
  origin/mini2440-dev-unlikely
  origin/mini2440-extras
  origin/mini2440-stable
  origin/mini2440-stable-v2.6.29
  origin/mini2440-stable-v2.6.30
  origin/mini2440-v2.6.31
  origin/origin/HEAD
laptop:~/dev/android/mini2440_kernel/mini2440$ git checkout mini2440-stable
Switched to branch "mini2440-stable"
laptop:~/dev/android/mini2440_kernel/mini2440$ git branch -a
  master
* mini2440-stable
  mini2440-stable-v2.6.29
  mini2440-stable-v2.6.30
  origin/HEAD
  origin/master
  origin/mini2440-dev
  origin/mini2440-dev-extras
  origin/mini2440-dev-likely
  origin/mini2440-dev-unlikely
  origin/mini2440-extras
  origin/mini2440-stable
  origin/mini2440-stable-v2.6.29
  origin/mini2440-stable-v2.6.30
  origin/mini2440-v2.6.31
  origin/origin/HEAD

カーネルビルド

次に「stable」をビルドしてみます。手順ははこれまでと同じです。
laptop:~/dev/android/mini2440_kernel/mini2440$ make ARCH=arm mrproper
laptop:~/dev/android/mini2440_kernel/mini2440$ make ARCH=arm mini2440_defconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/basic/docproc
  HOSTCC  scripts/basic/hash
  HOSTCC  scripts/kconfig/conf.o
scripts/kconfig/conf.c: In function ‘conf_askvalue’:
scripts/kconfig/conf.c:105: 警告: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
scripts/kconfig/conf.c: In function ‘conf_choice’:
scripts/kconfig/conf.c:307: 警告: ignoring return value of ‘fgets’, declared with attribute warn_unused_result
  HOSTCC  scripts/kconfig/kxgettext.o
  SHIPPED scripts/kconfig/zconf.tab.c
  SHIPPED scripts/kconfig/lex.zconf.c
  SHIPPED scripts/kconfig/zconf.hash.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#
上記では「make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- zImage 」は長いので省略。 ビルドが終わった後にuImage.binを以下のように作ります。
laptop:~/dev/android/mini2440_kernel/mini2440/arch/arm/boot$ mkimage -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008000 -d zImage uImage.bin 
Image Name:   
Created:      Sat Aug 22 14:05:42 2009
Image Type:   ARM Linux Kernel Image (uncompressed)
Data Size:    1974780 Bytes = 1928.50 kB = 1.88 MB
Load Address: 0x30008000
Entry Point:  0x30008000

SDカードブート結果

カーネルバージョンは2.6.30.5だったようですが、panicで落ちます。
U-Boot 1.3.2-mini2440 (Jul  8 2009 - 13:25:23)

I2C:   ready
DRAM:  64 MB
Flash:  2 MB
NAND:  64 MiB
Found Environment offset in OOB..
USB:   S3C2410 USB Deviced
In:    serial
Out:   serial
Err:   serial
MAC: 08:08:11:18:12:27
Hit any key to stop autoboot:  0
trying to detect SD Card...
Manufacturer:       0x1d, OEM "AD"
Product name:       "SD   ", revision 1.0
Serial number:      270541555
Manufacturing date: 3/2008
CRC:                0x71, b0 = 1
READ_BL_LEN=15, C_SIZE_MULT=7, C_SIZE=3453
size = 2329935872
reading uImage.bin

1974844 bytes read
## Booting kernel from Legacy Image at 32000000 ...
   Image Name:
   Created:      2009-08-22   5:05:42 UTC
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1974780 Bytes =  1.9 MB
   Load Address: 30008000
   Entry Point:  30008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux............................................................................................................................ done, booting the kernel.
Linux version 2.6.30.5 (sakamoto@sakamoto-laptop) (gcc version 4.3.2 (Sourcery G++ Lite 2008q3-72) ) #1 Sat Aug 22 13:59:53 JST 2009
CPU: ARM920T [41129200] revision 0 (ARMv4T), cr=c0007177
CPU: VIVT data cache, VIVT instruction cache
Machine: MINI2440
Memory policy: ECC disabled, Data cache writeback
CPU S3C2440A (id 0x32440001)
S3C24XX Clocks, (c) 2004 Simtec Electronics
S3C244X: core 405.000 MHz, memory 101.250 MHz, peripheral 50.625 MHz
CLOCK: Slow mode (1.500 MHz), fast, MPLL on, UPLL on
Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 16256
Kernel command line: console=ttySAC0,115200 root=/dev/mmcblk0p2 init=/init rootfstype=ext3 rw mini2440=0tb rootdelay=3 nohz=off noinitrd
NR_IRQS:85
irq: clearing pending status 02000000
irq: clearing subpending status 00000002
PID hash table entries: 256 (order: 8, 1024 bytes)
Console: colour dummy device 80x30
console [ttySAC0] enabled
Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)
Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)
Memory: 64MB = 64MB total
Memory: 60756KB available (3456K code, 409K data, 128K init, 0K highmem)
SLUB: Genslabs=11, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
Calibrating delay loop... 201.93 BogoMIPS (lpj=504832)
Mount-cache hash table entries: 512
CPU: Testing write buffer coherency: ok
net_namespace: 704 bytes
NET: Registered protocol family 16
MINI2440: Option string mini2440=0tb
MINI2440: LCD [0:240x320] 1:800x480 2:1024x768
S3C2440: Initialising architecture
S3C2440: IRQ Support
S3C24XX DMA Driver, (c) 2003-2004,2006 Simtec Electronics
DMA channel 0 at c4808000, irq 33
DMA channel 1 at c4808040, irq 34
DMA channel 2 at c4808080, irq 35
DMA channel 3 at c48080c0, irq 36
S3C244X: Clock Support, DVS off
bio: create slab  at 0
usbcore: registered new interface driver usbfs
usbcore: registered new interface driver hub
usbcore: registered new device driver usb
s3c2440-i2c s3c2440-i2c: slave address 0x10
s3c2440-i2c s3c2440-i2c: bus frequency set to 98 KHz
s3c2440-i2c s3c2440-i2c: i2c-0: S3C I2C adapter
NET: Registered protocol family 2
IP route cache hash table entries: 1024 (order: 0, 4096 bytes)
TCP established hash table entries: 2048 (order: 2, 16384 bytes)
TCP bind hash table entries: 2048 (order: 1, 8192 bytes)
TCP: Hash tables configured (established 2048 bind 2048)
TCP reno registered
NET: Registered protocol family 1
JFFS2 version 2.2. (NAND) c 2001-2006 Red Hat, Inc.
ROMFS MTD (C) 2007 Red Hat, Inc.
msgmni has been set to 118
alg: No test for stdrng (krng)
io scheduler noop registered
io scheduler anticipatory registered (default)
io scheduler deadline registered
io scheduler cfq registered
Console: switching to colour frame buffer device 60x53
fb0: s3c2410fb frame buffer device
s3c2440-uart.0: ttySAC0 at MMIO 0x50000000 (irq = 70) is a S3C2440
s3c2440-uart.1: ttySAC1 at MMIO 0x50004000 (irq = 73) is a S3C2440
s3c2440-uart.2: ttySAC2 at MMIO 0x50008000 (irq = 76) is a S3C2440
brd: module loaded
at24 0-0050: 1024 byte 24c08 EEPROM (writable)
dm9000 Ethernet Driver, V1.31
eth0 (dm9000): not using net_device_ops yet
eth0: dm9000e at c486e300,c4872304 IRQ 51 MAC: 08:08:11:18:12:27 (chip)
S3C24XX NAND Driver, (c) 2004 Simtec Electronics
s3c2440-nand s3c2440-nand: Tacls=1, 9ns Twrph0=3 29ns, Twrph1=2 19ns
NAND device: Manufacturer ID: 0xec, Chip ID: 0x76 (Samsung NAND 64MiB 3,3V 8-bit)
Creating 4 MTD partitions on "NAND 64MiB 3,3V 8-bit":
0x000000000000-0x000000040000 : "u-boot"
ftl_cs: FTL header not found.
0x000000040000-0x000000060000 : "u-boot-env"
0x000000060000-0x000000560000 : "kernel"
0x000000560000-0x000004000000 : "root"
ftl_cs: FTL header not found.
ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
s3c2410-ohci s3c2410-ohci: S3C24XX OHCI
s3c2410-ohci s3c2410-ohci: new USB bus registered, assigned bus number 1
s3c2410-ohci s3c2410-ohci: irq 42, io mem 0x49000000
usb usb1: configuration #1 chosen from 1 choice
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usbcore: registered new interface driver libusual
s3c2440-usbgadget s3c2440-usbgadget: S3C2440: increasing FIFO to 128 bytes
mice: PS/2 mouse device common for all mice
input: gpio-keys as /devices/platform/gpio-keys/input/input0
s3c2440-ts s3c2440-ts: Starting
  Created group ts filter len 12 depth 2 close 10 thresh 6
  Created Median ts filter len 20 depth 2 dec 24
  Created Mean ts filter len 4 depth 2 thresh 65535
  Created Linear ts filter depth 2
s3c2440-ts s3c2440-ts: 4 filter(s) initialized
s3c2440-ts s3c2440-ts: successfully loaded
input: s3c2410 TouchScreen as /devices/virtual/input/input1
S3C24XX RTC, (c) 2004,2006 Simtec Electronics
s3c2410-rtc s3c2410-rtc: rtc disabled, re-enabling
s3c2410-rtc s3c2410-rtc: rtc core: registered s3c as rtc0
i2c /dev entries driver
S3C2410 Watchdog Timer, (c) 2004 Simtec Electronics
s3c2410-wdt s3c2410-wdt: watchdog inactive, reset disabled, irq enabled
cpuidle: using governor ladder
sdhci: Secure Digital Host Controller Interface driver
sdhci: Copyright(c) Pierre Ossman
mapped channel 0 to 0
s3c2440-sdi s3c2440-sdi: powered down.
s3c2440-sdi s3c2440-sdi: initialisation done.
s3c2440-sdi s3c2440-sdi: running at 0kHz (requested: 0kHz).
Registered led device: led1
Registered led device: led2
Registered led device: led3
Registered led device: led4
Registered led device: backlight
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2440-sdi: running at 198kHz (requested: 197kHz).
s3c2440-sdi s3c2440-sdi: running at 16875kHz (requested: 25000kHz).
s3c2440-sdi s3c2440-sdi: running at 16875kHz (requested: 25000kHz).
mmc0: new SD card at address b368
mmcblk0: mmc0:b368 SD    1.86 GiB
 mmcblk0: p1 p2 p3
usbcore: registered new interface driver hiddev
usbcore: registered new interface driver usbhid
usbhid: v2.6:USB HID core driver
Advanced Linux Sound Architecture Driver Version 1.0.20.
No device for DAI UDA134X
No device for DAI s3c24xx-i2s
S3C24XX_UDA134X SoC Audio driver
UDA134X SoC Audio Codec
asoc: UDA134X <-> s3c24xx-i2s mapping ok
ALSA device list:
  #0: S3C24XX_UDA134X (UDA134X)
TCP cubic registered
NET: Registered protocol family 17
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
s3c2410-rtc s3c2410-rtc: setting system clock to 2009-08-22 14:09:44 UTC (1250950184)
Waiting 3sec before mounting root device...
kjournald starting.  Commit interval 5 seconds
EXT3-fs warning: maximal mount count reached, running e2fsck is recommended
EXT3 FS on mmcblk0p2, internal journal
EXT3-fs: mounted filesystem with writeback data mode.
VFS: Mounted root (ext3 filesystem) on device 179:2.
Freeing init memory: 128K
Failed to execute /init.  Attempting defaults...
Unable to handle kernel paging request at virtual address 087ffff4
pgd = c0004000
[087ffff4] *pgd=00000000
Internal error: Oops: 5 [#1]
Modules linked in:
CPU: 0    Not tainted  (2.6.30.5 #1)
PC is at s3c2410_gpio_setpin+0x1c/0x3c
LR is at s3c24xx_led_set+0x24/0x48
pc : []    lr : []    psr: 60000093
sp : c03a7f08  ip : 087ffff0  fp : 00000000
r10: 00000009  r9 : 41129200  r8 : c03ee920
r7 : 00000001  r6 : 00000000  r5 : 00000000  r4 : 60000013
r3 : 60000093  r2 : 00010000  r1 : 00000000  r0 : 1afffff4
Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: c000717f  Table: 339f8000  DAC: 00000017
Process swapper (pid: 0, stack limit = 0xc03a6268)
Stack: (0xc03a7f08 to 0xc03a8000)
7f00:                   c0024890 c0208148 c39debdc c399ce6c 00000000 c0207c08
7f20: c39f3e5c 00000014 00000100 c01fbf54 00000000 c003e730 c03a6000 c003eb98
7f40: 00000025 c03a6000 00000000 00000025 00000000 00200000 c03aa468 30021320
7f60: 300212ec c0028050 ffffffff f4000000 00200000 c00289a4 c03ad2b0 00000032
7f80: f4100000 60000013 c00297c0 c03a6000 c0022ee8 c03aa468 30021320 41129200
7fa0: 300212ec 00000000 c39f0000 c03a7fc0 c0029818 c0029824 60000013 ffffffff
7fc0: c00297c0 c0029d24 c03f3324 c03cd920 c0022ee8 c00088b4 c0008424 00000000
7fe0: 00000000 c0022eec 00000000 c0007175 c03cd9e8 30008034 00000000 00000000
[] (s3c2410_gpio_setpin+0x1c/0x3c) from [] (s3c24xx_led_set+0x24/0x48)
[] (s3c24xx_led_set+0x24/0x48) from [] (led_trigger_event+0x44/0x54)
[] (led_trigger_event+0x44/0x54) from [] (mmc_request_done+0x7c/0xa8)
[] (mmc_request_done+0x7c/0xa8) from [] (tasklet_action+0x78/0xd8)
[] (tasklet_action+0x78/0xd8) from [] (__do_softirq+0x60/0xe8)
[] (__do_softirq+0x60/0xe8) from [] (_text+0x50/0x64)
[] (_text+0x50/0x64) from [] (__irq_svc+0x24/0xa0)
Exception stack(0xc03a7f78 to 0xc03a7fc0)
7f60:                                                       c03ad2b0 00000032
7f80: f4100000 60000013 c00297c0 c03a6000 c0022ee8 c03aa468 30021320 41129200
7fa0: 300212ec 00000000 c39f0000 c03a7fc0 c0029818 c0029824 60000013 ffffffff
[] (__irq_svc+0x24/0xa0) from [] (default_idle+0x58/0x6c)
[] (default_idle+0x58/0x6c) from [] (cpu_idle+0x3c/0x58)
[] (cpu_idle+0x3c/0x58) from [] (start_kernel+0x238/0x288)
[] (start_kernel+0x238/0x288) from [<30008034>] (0x30008034)
Code: e121f003 e3c0c01f e1a0c0ac e28cc4fb (e59c3004)
Kernel panic - not syncing: Fatal exception in interrupt
[] (unwind_backtrace+0x0/0xdc) from [] (panic+0x40/0x118)
[] (panic+0x40/0x118) from [] (die+0x13c/0x168)
[] (die+0x13c/0x168) from [] (__do_kernel_fault+0x64/0x74)
[] (__do_kernel_fault+0x64/0x74) from [] (do_page_fault+0x1fc/0x218)
[] (do_page_fault+0x1fc/0x218) from [] (do_DataAbort+0x30/0x90)
[] (do_DataAbort+0x30/0x90) from [] (__dabt_svc+0x40/0x60)
Exception stack(0xc03a7ec0 to 0xc03a7f08)
7ec0: 1afffff4 00000000 00010000 60000093 60000013 00000000 00000000 00000001
7ee0: c03ee920 41129200 00000009 00000000 087ffff0 c03a7f08 c0208148 c0031860
7f00: 60000093 ffffffff
[] (__dabt_svc+0x40/0x60) from [] (s3c24xx_led_set+0x24/0x48)
[] (s3c24xx_led_set+0x24/0x48) from [] (0xc399ce6c)

viviブート結果

ついでに標準のviviでのブート結果は以下。
NOR FlashからのブートもNAND Flashからのブートのどちらもカーネル起動でハングアップしてます。なぜ「stable」なのだろうか?
##### FriendlyARM BIOS for 2440 #####
[x] bon part 0 320k 2368k
[v] Download vivi
[k] Download linux kernel
[y] Download root_yaffs image
[c] Download root_cramfs image
[a] Absolute User Application
[n] Download Nboot
[e] Download Eboot
[i] Download WinCE NK.nb0
[w] Download WinCE NK.bin
[d] Download & Run
[z] Download zImage into RAM
[g] Boot linux from RAM
[f] Format the nand flash
[p] Partition for Linux
[b] Boot the system
[s] Set the boot parameters
[t] Print the TOC struct of wince
[u] Backup NAND Flash to HOST through USB(upload)
[r] Restore NAND Flash from HOST through USB
[q] Goto shell of vivi
Enter your selection: b
Copy linux kernel from 0x00050000 to 0x30008000, size = 0x00200000 ... done
zImage magic = 0x016f2818
Setup linux parameters at 0x30000100
linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0"
MACH_TYPE = 782
NOW, Booting Linux......
Uncompressing Linux............................................................................................................................ done, booting the kernel.

VIVI version 0.1.4 (root@russell-work-pc) (gcc version 2.95.3 20010315 (release)) #0.1.4 Tue Jun 16 15:20:37 CST 2009
MMU table base address = 0x33DFC000
Succeed memory mapping.
DIVN_UPLL0
MPLLVal [M:7fh,P:2h,S:1h]
CLKDIVN:5h


+---------------------------------------------+
| S3C2440A USB Downloader ver R0.03 2004 Jan  |
+---------------------------------------------+
USB: IN_ENDPOINT:1 OUT_ENDPOINT:3
FORMAT: +++
NOTE: Power off/on or press the reset button for 1 sec
      in order to get a valid USB device address.

NAND device: Manufacture ID: 0xec, Chip ID: 0x76 (Samsung K9D1208V0M)
Could not found stored vivi parameters. Use default vivi parameters.
Press Return to start the LINUX/Wince now, any other key for vivi
Copy linux kernel from 0x00050000 to 0x30008000, size = 0x00200000 ... done
zImage magic = 0x016f2818
Setup linux parameters at 0x30000100
linux command line is: "noinitrd root=/dev/mtdblock2 init=/linuxrc console=ttySAC0"
MACH_TYPE = 782
NOW, Booting Linux......
Uncompressing Linux............................................................................................................................ done, booting the kernel.

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

※投稿には管理者が設定した質問に答える必要があります。

名前:
メールアドレス:
URL:
次の質問に答えてください:
このブログでは「組込み」と「組み込み」のどちらを使っている?

コメント:

トラックバック

このエントリのトラックバックURL: http://kumikomi.asablo.jp/blog/2009/08/22/4531264/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。