リリースkernelのパッチ具合を調べる

chumbyの公開kernel sourceには、1.0, 1.2, 1.4, 1.5, 1.6の5つがある。
それぞれの間で、どのようなパッチが行われているのか調べる。


リリースkernelの各バージョン:

http://files.chumby.com/source/ironforge/
build733/linux-2.6.16-chumby-1.6.0.tar.gz
build565/linux-2.6.16-chumby-1.5.0.tar.gz
build533/linux-2.6.16-chumby-1.4.0.tar.gz
build396/linux-2.6.16-chumby-1.2.tar.gz
build312/linux-2.6.16-chumby-1.0.tar.gz

wgetなどで取得しておく。


展開する。

$ mkdir chumby_kernel
$ mv linux-2.6.16-chumby-1.* chumby_kernel
$ cd chumby_kernel
$ tar zxvf linux-2.6.16-chumby-1.0.tar.gz
$ mv linux-2.6.16/ linux-2.6.16-chumby-1.0.0
$ tar zxvf linux-2.6.16-chumby-1.2.tar.gz
$ mv linux-2.6.16/ linux-2.6.16-chumby-1.2.0
$ tar zxvf linux-2.6.16-chumby-1.4.0.tar.gz
$ tar zxvf linux-2.6.16-chumby-1.5.0.tar.gz
$ tar zxvf linux-2.6.16-chumby-1.6.0.tar.gz


差分を取ってみる。

$ diff -Naur linux-2.6.16-chumby-1.0.0/ linux-2.6.16-chumby-1.2.0 > 10to12.diff
$ diff -Naur linux-2.6.16-chumby-1.2.0/ linux-2.6.16-chumby-1.4.0 > 12to14.diff
$ diff -Naur linux-2.6.16-chumby-1.4.0/ linux-2.6.16-chumby-1.5.0 > 14to15.diff
$ diff -Naur linux-2.6.16-chumby-1.5.0/ linux-2.6.16-chumby-1.6.0 > 15to16.diff
$ ls -l 1*
-rw-r--r-- 1 kinneko kinneko 246846 2008-09-05 00:00 10to12.diff
-rw-r--r-- 1 kinneko kinneko 359115 2008-09-05 00:00 12to14.diff
-rw-r--r-- 1 kinneko kinneko 212654 2008-09-05 00:00 14to15.diff
-rw-r--r-- 1 kinneko kinneko 115962 2008-09-05 00:00 15to16.diff

各バージョン間での差異の量はそれほどない。


splitdiffコマンドを使うためにpatchutilsをインストールする。

# apt-get install patchutils


作った差分パッチデータをファイルごとに分割してみる。

$ mkdir 10-12 12-14 14-15 15-16
$ cp 10to12.diff 10-12/
$ cp 12to14.diff 12-14/
$ cp 14to15.diff 14-15/
$ cp 15to16.diff 15-16/

$ cd 10-12/
$ splitdiff -ad 10to12.diff
Wrote >linux-2.6.16-chumby-1.0.0_drivers_char_Makefile
Wrote >linux-2.6.16-chumby-1.0.0_drivers_char_chumby_emma.c
Wrote >linux-2.6.16-chumby-1.0.0_drivers_char_chumby_emma.h
Wrote >linux-2.6.16-chumby-1.0.0_drivers_char_chumby_udma.c
Wrote >linux-2.6.16-chumby-1.0.0_drivers_char_chumby_udma.h
Wrote >linux-2.6.16-chumby-1.0.0_drivers_mfd_chumb-tsc2100.c
Wrote >linux-2.6.16-chumby-1.0.0_drivers_mfd_chumb-tsc2100.h
Wrote >linux-2.6.16-chumby-1.0.0_drivers_mfd_imx21-tsc2100.c
Wrote >linux-2.6.16-chumby-1.0.0_drivers_mfd_tsc2100-core.c
Wrote >linux-2.6.16-chumby-1.0.0_drivers_mfd_nand_mx21ads.c
Wrote >linux-2.6.16-chumby-1.0.0_include_asm-arm_arch-imx_imx-regs.h

$ cd ../12-14/
$ splitdiff -ad 12to14.diff
Wrote >linux-2.6.16-chumby-1.2.0_.config
Wrote >linux-2.6.16-chumby-1.2.0_arch_arm_kernel_time.c
Wrote >linux-2.6.16-chumby-1.2.0_arch_arm_mach-imx_generic.c
Wrote >linux-2.6.16-chumby-1.2.0_arch_arm_mach-mx21ads.c
Wrote >linux-2.6.16-chumby-1.2.0_drivers_char_Makefile
Wrote >linux-2.6.16-chumby-1.2.0_drivers_char_chumby_emma.c
Wrote >linux-2.6.16-chumby-1.2.0_drivers_char_chumby_emma.h
Wrote >linux-2.6.16-chumby-1.2.0_drivers_char_chumby_sense1.c
Wrote >linux-2.6.16-chumby-1.2.0_drivers_char_chumby_sense1.h
Wrote >linux-2.6.16-chumby-1.2.0_drivers_char_chumby_sense1_v38.c
Wrote >linux-2.6.16-chumby-1.2.0_drivers_char_chumby_timer.c
Wrote >linux-2.6.16-chumby-1.2.0_drivers_char_chumby_timer.h
Wrote >linux-2.6.16-chumby-1.2.0_drivers_char_chumby_udma.c
Wrote >linux-2.6.16-chumby-1.2.0_drivers_char_chumby_udma.h
Wrote >linux-2.6.16-chumby-1.2.0_drivers_mfd_Makefile
Wrote >linux-2.6.16-chumby-1.2.0_drivers_mfd_chumby_tsc2100.c
Wrote >linux-2.6.16-chumby-1.2.0_drivers_mfd_chumby_tsc2100.h
Wrote >linux-2.6.16-chumby-1.2.0_drivers_mfd_chumby_tsc2100_v38.c
Wrote >linux-2.6.16-chumby-1.2.0_drivers_mfd_nand_mx21ads.c
Wrote >linux-2.6.16-chumby-1.2.0_drivers_serial_imx.c
Wrote >linux-2.6.16-chumby-1.2.0_drivers_usb_host_grh-dbug.c
Wrote >linux-2.6.16-chumby-1.2.0_drivers_usb_host_imx21-hcd.c
Wrote >linux-2.6.16-chumby-1.2.0_drivers_usb_host_imx21-hcd.h
Wrote >linux-2.6.16-chumby-1.2.0_drivers_video_imxfb.c
Wrote >linux-2.6.16-chumby-1.2.0_include_asm-arm_irq.h

$ cd ../14-15/
$ splitdiff -ad 14to15.diff
Wrote >linux-2.6.16-chumby-1.4.0_.config
Wrote >linux-2.6.16-chumby-1.4.0_drivers_mfd_chumby_tsc2100.c
Wrote >linux-2.6.16-chumby-1.4.0_drivers_mfd_chumby_tsc2100.h
Wrote >linux-2.6.16-chumby-1.4.0_drivers_mfd_chumby_tsc2100_v38.c

$ cd ../15-16/
$ splitdiff -ad 15to16.diff
Wrote >linux-2.6.16-chumby-1.5.0_.config
Wrote >linux-2.6.16-chumby-1.5.0_.config-all
Wrote >linux-2.6.16-chumby-1.5.0_drivers_char_chumby_sense1.c
Wrote >linux-2.6.16-chumby-1.5.0_drivers_char_chumby_sense1.h
Wrote >linux-2.6.16-chumby-1.5.0_drivers_char_chumby_sense1_v38.c
Wrote >linux-2.6.16-chumby-1.5.0_drivers_mfd_chumby_tsc2100.c
Wrote >linux-2.6.16-chumby-1.5.0_drivers_usb_core_hub.c
Wrote >linux-2.6.16-chumby-1.5.0_drivers_usb_host_imx21-hcd.c
Wrote >linux-2.6.16-chumby-1.5.0_drivers_usb_imput_xpad.c

各バージョン間の違いはそれほどでもなさそうだ。


vanilla kernelとの違いはどうだろう。
http://www.kernel.org/pub/linux/kernel/v2.6/
2.6.16は、62まである... すごすぎ。
とりあえず、最初のと最後のもらおうか。

$ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.tar.gz
$ wget hhttp://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.16.62.tar.gz
$ tar zxvf linux-2.6.16.tar.gz
$ diff -Naur linux-2.6.16 linux-2.6.16.-chumby-1.0.0 > 00to10.diff
$ ls -l 00to01.diff
-rw-r--r-- 1 kinneko kinneko 205826 Sep  5 00:00 00to10.diff
$ mkdir 00-10
$ cp 00to10.diff 00-10/
$ cd 00-10/
$ splitdiff -ad 00to10.diff
Wrote >linux-2.6.16_.config
Wrote >linux-2.6.16_Makefile
Wrote >linux-2.6.16_arch_arm_Kconfig
Wrote >linux-2.6.16_arch_arm_Makefile
Wrote >linux-2.6.16_arch_arm_boot_compressed_Makefile
Wrote >linux-2.6.16_arch_arm_boot_compressed_head-csb535.S
Wrote >linux-2.6.16_arch_arm_boot_compressed_head-csb536.S
Wrote >linux-2.6.16_arch_arm_boot_compressed_head-mx21ads.S
Wrote >linux-2.6.16_arch_arm_boot_compressed_head-tcmx21.S
Wrote >linux-2.6.16_arch_arm_boot_compressed_head.S
Wrote >linux-2.6.16_arch_arm_boot_compressed_misc.c
Wrote >linux-2.6.16_arch_arm_configs_csb535fs_defconfig
Wrote >linux-2.6.16_arch_arm_configs_mx21ads_defconfig
Wrote >linux-2.6.16_arch_arm_configs_tcmx21_defconfig
Wrote >linux-2.6.16_arch_arm_kernel_head.S
Wrote >linux-2.6.16_arch_arm_mach-imx_GPIO.txt
Wrote >linux-2.6.16_arch_arm_mach-imx_Kconfig
Wrote >linux-2.6.16_arch_arm_mach-imx_Makefile
Wrote >linux-2.6.16_arch_arm_mach-imx_Makefile.boot
Wrote >linux-2.6.16_arch_arm_mach-imx_csb535fs.c
Wrote >linux-2.6.16_arch_arm_mach-imx_csb536fs.c
Wrote >linux-2.6.16_arch_arm_mach-imx_generic.c
Wrote >linux-2.6.16_arch_arm_mach-imx_generic.h
Wrote >linux-2.6.16_arch_arm_mach-imx_irq.c
Wrote >linux-2.6.16_arch_arm_mach-imx_mx21ads.c
Wrote >linux-2.6.16_arch_arm_mach-imx_tcmx21.c
Wrote >linux-2.6.16_arch_arm_mach-imx_time.c
Wrote >linux-2.6.16_arch_arm_mm_Kconfig
Wrote >linux-2.6.16_drivers_char_Kconfig
Wrote >linux-2.6.16_drivers_char_Makefile
Wrote >linux-2.6.16_drivers_char_chumby_accel.c
Wrote >linux-2.6.16_drivers_char_chumby_accel.h
Wrote >linux-2.6.16_drivers_char_chumby_sense1.c
Wrote >linux-2.6.16_drivers_char_chumby_sense1.h
Wrote >linux-2.6.16_drivers_char_chumby_timer.c
Wrote >linux-2.6.16_drivers_char_chumby_timer.h
Wrote >linux-2.6.16_drivers_char_imx_spi.c
Wrote >linux-2.6.16_drivers_char_imx_spidrv.c
Wrote >linux-2.6.16_drivers_i2c_busses_Kconfig
Wrote >linux-2.6.16_drivers_i2c_busses_Makefile
Wrote >linux-2.6.16_drivers_i2c_busses_i2c-imx.c
Wrote >linux-2.6.16_drivers_i2c_chips_pcf8574.c
Wrote >linux-2.6.16_drivers_input_touchscreen_Kconfig
Wrote >linux-2.6.16_drivers_input_touchscreen_Makefile
Wrote >linux-2.6.16_drivers_input_touchscreen_ads7846-csb535.c
Wrote >linux-2.6.16_drivers_input_tsdev.c
Wrote >linux-2.6.16_drivers_mfd_Makefile
Wrote >linux-2.6.16_drivers_mfd_chumby-tsc2100.c
Wrote >linux-2.6.16_drivers_mfd_chumby-tsc2100.h
Wrote >linux-2.6.16_drivers_mfd_imx21-tsc2100.c
Wrote >linux-2.6.16_drivers_mfd_tsc2100-core.c
Wrote >linux-2.6.16_drivers_mfd_tsc2100-ts.c
Wrote >linux-2.6.16_drivers_mfd_tsc2100.h
Wrote >linux-2.6.16_drivers_mmc_Kconfig
Wrote >linux-2.6.16_drivers_mmc_Makefile
Wrote >linux-2.6.16_drivers_mmc_imxmmc.c
Wrote >linux-2.6.16_drivers_mmc_imxmmc.h
Wrote >linux-2.6.16_drivers_mmc_mmc.c
Wrote >linux-2.6.16_drivers_mmc_mmc_block.c
Wrote >linux-2.6.16_drivers_mmc_pxamci.c
Wrote >linux-2.6.16_drivers_mtd_chips_cfi_probe.c
Wrote >linux-2.6.16_drivers_mtd_chips_cfi_util.c
Wrote >linux-2.6.16_drivers_mtd_maps_Kconfig
Wrote >linux-2.6.16_drivers_mtd_maps_Makefile
Wrote >linux-2.6.16_drivers_mtd_maps_csbxxx.c
Wrote >linux-2.6.16_drivers_mtd_maps_mx21ads.c
Wrote >linux-2.6.16_drivers_mtd_nand_Kconfig
Wrote >linux-2.6.16_drivers_mtd_nand_Makefile
Wrote >linux-2.6.16_drivers_mtd_nand_mx21ads.c
Wrote >linux-2.6.16_drivers_mtd_nand_nand_base.c
Wrote >linux-2.6.16_drivers_net_Kconfig
Wrote >linux-2.6.16_drivers_net_Makefile
Wrote >linux-2.6.16_drivers_net_cirrus.c
Wrote >linux-2.6.16_drivers_net_cirrus.h
Wrote >linux-2.6.16_drivers_serial_Kconfig
Wrote >linux-2.6.16_drivers_serial_imx.c
Wrote >linux-2.6.16_drivers_usb_Makefile
Wrote >linux-2.6.16_drivers_usb_host_Kconfig
Wrote >linux-2.6.16_drivers_usb_host_Makefile
Wrote >linux-2.6.16_drivers_usb_host_ghr-dbug.c
Wrote >linux-2.6.16_drivers_usb_host_imx21-hcd.c
Wrote >linux-2.6.16_drivers_usb_host_imx21-hcd.h
Wrote >linux-2.6.16_drivers_video_Kconfig
Wrote >linux-2.6.16_drivers_video_cosole_fbcon.c
Wrote >linux-2.6.16_drivers_video_fbmem.c
Wrote >linux-2.6.16_drivers_video_imxfb.c
Wrote >linux-2.6.16_drivers_video_imxfb.h
Wrote >linux-2.6.16_drivers_video_logo_Kconfig
Wrote >linux-2.6.16_drivers_video_logo_Makefile
Wrote >linux-2.6.16_drivers_video_logo_logo.c
Wrote >linux-2.6.16_drivers_video_logo_logo_turbochef_clut224.ppm
Wrote >linux-2.6.16_fs_cramfs_inode.c
Wrote >linux-2.6.16_fs_cramfs_uncompress.c
Wrote >linux-2.6.16_fs_jffs2_scan.c
Wrote >linux-2.6.16_include_asm-arm_arch-imx_csb535.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_csb536.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_debug-macro.S
Wrote >linux-2.6.16_include_asm-arm_arch-imx_dma.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_hardware.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_imx-dma.g
Wrote >linux-2.6.16_include_asm-arm_arch-imx_imx-regs.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_imx21-hcd.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_imxfb.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_irqs.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_memory.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_mmc.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_mx21ads.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_system.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_tcmx21.h
Wrote >linux-2.6.16_include_asm-arm_arch-imx_uncompress.h
Wrote >linux-2.6.16_include_linux_cramfs_fs.h
Wrote >linux-2.6.16_include_linux_i2c-id.h
Wrote >linux-2.6.16_include_linux_imx_spi.h
Wrote >linux-2.6.16_include_linux_mfd_tsc2100.h
Wrote >linux-2.6.16_include_linux_mmc_card.h
Wrote >linux-2.6.16_include_linux_root_dev.h
Wrote >linux-2.6.16_include_sound_wm8731.h
Wrote >linux-2.6.16_init_do_mounts.c
Wrote >linux-2.6.16_init_main.c
Wrote >linux-2.6.16_linux_drivers_mfd_Makefile
Wrote >linux-2.6.16_linux_drivers_mfd_tsc2100-core.c
Wrote >linux-2.6.16_linux_drivers_mfd_tsc2100-ts.c
Wrote >linux-2.6.16_linux_drivers_mfd_tsc2100.h
Wrote >linux-2.6.16_linux_include_linux_mfd_tsc2100.h
Wrote >linux-2.6.16_sound_arm_Kconfig
Wrote >linux-2.6.16_sound_arm_Makefile
Wrote >linux-2.6.16_sound_arm_imx21-wm8731.c


この項、作業中。