Changes between Version 1 and Version 2 of Dev/KernelHack/COINS/worklog/201109


Ignore:
Timestamp:
Sep 17, 2011 4:27:02 PM (13 years ago)
Author:
mitty
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • Dev/KernelHack/COINS/worklog/201109

    v1 v2  
    119119(gdb) quit 
    120120}}} 
     121 
     122 = 09/15 =  
     123 * 方針 
     124  * ゲスト上でビルドすると遅いので、ホスト上でビルドしたソースツリーをVMwareのHGFSを使ってゲスト上にマウントし、そこからsudo make installする 
     125 
     126 == build kernel on Guest == 
     127 * 比較対象として、同時並行でゲスト上でビルド&インストールも行ってみた 
     128 
     129 * mitty@ubuntu-lucid:~$ sudo aptitude update 
     130 * mitty@ubuntu-lucid:~$ sudo aptitude install build-essential kernel-package libncurses-dev 
     131{{{ 
     132Note: selecting "libncurses5-dev" instead of the 
     133      virtual package "libncurses-dev" 
     134The following NEW packages will be installed: 
     135  binutils{a} build-essential cvs{a} dpkg-dev{a} fakeroot{a} g++{a} 
     136  g++-4.4{a} gcc{a} gcc-4.4{a} gettext{a} intltool-debian{a} kernel-package 
     137  libc-dev-bin{a} libc6-dev{a} libcroco3{a} libfile-copy-recursive-perl{a} 
     138  libgomp1{a} liblzma1{a} libmail-sendmail-perl{a} libncurses5-dev 
     139  libstdc++6-4.4-dev{a} libsys-hostname-long-perl{a} linux-libc-dev{a} 
     140  manpages-dev{a} patch{a} po-debconf{a} update-inetd{a} xz-utils{a} 
     1410 packages upgraded, 28 newly installed, 0 to remove and 0 not upgraded. 
     142Need to get 25.7MB of archives. After unpacking 88.4MB will be used. 
     143}}} 
     144 
     145 * mitty@ubuntu-lucid:~$ wget https://github.com/mirrors/linux/tarball/v2.6.35 -O mirrors-linux-v2.6.35-0-g9fe6206.tar.gz 
     146 * mitty@ubuntu-lucid:~/kernel$ tar xzfv mirrors-linux-v2.6.35-0-g9fe6206.tar.gz 
     147 
     148 * mitty@ubuntu-lucid:~/kernel/mirrors-linux-d786bf1$ make defconfig 
     149 * mitty@ubuntu-lucid:~/kernel/mirrors-linux-d786bf1$ make menuconfig 
     150  * 設定内容については後述 
     151 * mitty@ubuntu-lucid:~/kernel/mirrors-linux-d786bf1$ make 
     152 * mitty@ubuntu-lucid:~/kernel/mirrors-linux-d786bf1$ make modules 
     153 * mitty@ubuntu-lucid:~/kernel/mirrors-linux-d786bf1$ sudo make install 
     154 * mitty@ubuntu-lucid:~/kernel/mirrors-linux-d786bf1$ sudo make modules_install 
     155 * mitty@ubuntu-lucid:~/kernel/mirrors-linux-d786bf1$ sudo mkinitramfs -o /boot/initrd.img-2.6.35 2.6.35 
     156 
     157 * mitty@ubuntu-lucid:~/kernel/mirrors-linux-d786bf1$ sudo update-grub 
     158 
     159 
     160 * mitty@ubuntu-lucid:~$ sudo reboot 
     161 * mitty@ubuntu-lucid:~$ uname -a 
     162{{{ 
     163Linux ubuntu-lucid 2.6.35 #3 SMP Fri Sep 16 15:01:05 JST 2011 i686 GNU/Linux 
     164}}} 
     165  * ビルド成功 
     166  * ただ、ホスト側にはソースツリーが無いので、このままではリモートデバッグ出来ない 
     167 
     168 == build kernel on Host == 
     169 === install packages to Guest === 
     170 * s0711489@ubuntu-lucid:~$ sudo aptitude update 
     171 * s0711489@ubuntu-lucid:~$ sudo aptitude install build-essential kernel-package libncurses-dev 
     172{{{ 
     173Note: selecting "libncurses5-dev" instead of the 
     174      virtual package "libncurses-dev" 
     175The following NEW packages will be installed: 
     176  binutils{a} build-essential cvs{a} dpkg-dev{a} fakeroot{a} g++{a} 
     177  g++-4.4{a} gcc{a} gcc-4.4{a} gettext{a} intltool-debian{a} kernel-package 
     178  libc-dev-bin{a} libc6-dev{a} libcroco3{a} libfile-copy-recursive-perl{a} 
     179  libgomp1{a} liblzma1{a} libmail-sendmail-perl{a} libncurses5-dev 
     180  libstdc++6-4.4-dev{a} libsys-hostname-long-perl{a} linux-libc-dev{a} 
     181  manpages-dev{a} patch{a} po-debconf{a} update-inetd{a} xz-utils{a} 
     1820 packages upgraded, 28 newly installed, 0 to remove and 0 not upgraded. 
     183Need to get 25.7MB of archives. After unpacking 88.4MB will be used. 
     184}}} 
     185 
     186 === install VMware Tools === 
     187 * s0711489@ubuntu-lucid:~$ sudo mount /dev/cdrom /media/ 
     188 * s0711489@ubuntu-lucid:~$ tar xzf /media/VMwareTools-8.4.6-385536.tar.gz 
     189 * s0711489@ubuntu-lucid:~/vmware-tools-distrib$ sudo ./vmware-install.pl --default 
     190 
     191 === download kernel source and build === 
     192 * windell57:linux-v2.6.35 s0711489$ wget https://github.com/mirrors/linux/tarball/v2.6.35 -O mirrors-linux-v2.6.35-0-g9fe6206.tar.gz --no-check-certificate 
     193 * windell57:linux-v2.6.35 s0711489$ tar xzfv mirrors-linux-v2.6.35-0-g9fe6206.tar.gz 
     194 
     195 * windell57:mirrors-linux-d786bf1 s0711489$ make defconfig 
     196 * windell57:mirrors-linux-d786bf1 s0711489$ make menuconfig 
     197{{{ 
     198  │ │                [*] Networking support  --->                                                           │ │ 
     199  │ │                      Networking options  --->                                                         │ │ 
     200  │ │                < >   The IPv6 protocol  --->                                                          │ │ 
     201  │ │                [ ]   Amateur Radio support  --->                                                      │ │ 
     202  │ │                -*-   Wireless  --->                                                                   │ │ 
     203  │ │                < >   cfg80211 - wireless configuration API                                            │ │ 
     204  │ │                < >   RF switch subsystem support  --->                                                │ │ 
     205  │ │                    Device Drivers  --->                                                               │ │ 
     206  │ │                    Generic Driver Options  --->                                                       │ │ 
     207  │ │                [*] Maintain a devtmpfs filesystem to mount at /dev                                    │ │ 
     208  │ │                [*]   Automount devtmpfs at /dev, after the kernel mounted the rootfs                  │ │ 
     209  │ │                    SCSI device support  --->                                                          │ │ 
     210  │ │                [*] SCSI low-level drivers  --->                                                       │ │ 
     211  │ │                <*>   BusLogic SCSI support                                                            │ │ 
     212  │ │                [*] Network device support  --->                                                       │ │ 
     213  │ │                [*]   Ethernet (10 or 100Mbit)  --->                                                   │ │ 
     214  │ │                <*>     AMD PCnet32 PCI support                                                        │ │ 
     215  │ │                    File systems  --->                                                                 │ │ 
     216  │ │                <*> The Extended 4 (ext4) filesystem                                                   │ │ 
     217  │ │                [ ] Network File Systems  --->                                                         │ │ 
     218  │ │                    Kernel hacking  --->                                                               │ │ 
     219  │ │                [*] Compile the kernel with debug info                                                 │ │ 
     220  │ │                [ ] Virtualization  --->                                                               │ │ 
     221}}} 
     222 * windell57:mirrors-linux-d786bf1 s0711489$ make -j2 
     223 * windell57:mirrors-linux-d786bf1 s0711489$ make modules 
     224 
     225 === make install on Guest === 
     226 * s0711489@ubuntu-lucid:~$ cd /mnt/hgfs/linux-v2.6.35/mirrors-linux-d786bf1/ 
     227 * s0711489@ubuntu-lucid:/mnt/hgfs/linux-v2.6.35/mirrors-linux-d786bf1$ sudo make install 
     228{{{ 
     229sh /mnt/hgfs/linux-v2.6.35/mirrors-linux-d786bf1/arch/x86/boot/install.sh 2.6.35 arch/x86/boot/bzImage \ 
     230                System.map "/boot" 
     231}}} 
     232 * s0711489@ubuntu-lucid:/mnt/hgfs/linux-v2.6.35/mirrors-linux-d786bf1$ sudo make modules_install 
     233{{{ 
     234  INSTALL arch/x86/kernel/test_nx.ko 
     235  INSTALL drivers/scsi/scsi_wait_scan.ko 
     236  INSTALL fs/ext4/ext4.ko 
     237  INSTALL fs/jbd2/jbd2.ko 
     238  INSTALL lib/crc16.ko 
     239  INSTALL net/netfilter/xt_mark.ko 
     240  DEPMOD  2.6.35 
     241}}} 
     242 * s0711489@ubuntu-lucid:/mnt/hgfs/linux-v2.6.35/mirrors-linux-d786bf1$ sudo mkinitramfs -o /boot/initrd.img-2.6.35 2.6.35 
     243 * s0711489@ubuntu-lucid:/mnt/hgfs/linux-v2.6.35/mirrors-linux-d786bf1$ sudo update-grub 
     244{{{ 
     245Generating grub.cfg ... 
     246Found linux image: /boot/vmlinuz-2.6.35 
     247Found initrd image: /boot/initrd.img-2.6.35 
     248Found linux image: /boot/vmlinuz-2.6.35.old 
     249Found initrd image: /boot/initrd.img-2.6.35 
     250Found linux image: /boot/vmlinuz-2.6.32-33-generic 
     251Found initrd image: /boot/initrd.img-2.6.32-33-generic 
     252Found memtest86+ image: /boot/memtest86+.bin 
     253done 
     254}}} 
     255 
     256 === reboot === 
     257 * s0711489@ubuntu-lucid:/mnt/hgfs/linux-v2.6.35/mirrors-linux-d786bf1$ uname -a 
     258{{{ 
     259Linux ubuntu-lucid 2.6.32-33-generic #72-Ubuntu SMP Fri Jul 29 21:08:37 UTC 2011 i686 GNU/Linux 
     260}}} 
     261 * s0711489@ubuntu-lucid:/mnt/hgfs/linux-v2.6.35/mirrors-linux-d786bf1$ sudo reboot 
     262 
     263 * 起動しない[[br]][[Image(WS001485.png,33%)]] 
     264  * 注: 後日同じ(と思われる)手順で繰り返したところ、再現せず問題なく起動した 
     265 
     266 === retry with 2.6.32 === 
     267 * windell57:linux-v2.6.32 s0711489$ wget https://github.com/mirrors/linux/tarball/v2.6.32 -O mirrors-linux-v2.6.32-0-g22763c5.tar.gz --no-check-certificate 
     268 
     269 * windell57:mirrors-linux-459b3d5 s0711489$ make defconfig 
     270 * windell57:mirrors-linux-459b3d5 s0711489$ make menuconfig 
     271 
     272 * s0711489@ubuntu-lucid:/mnt/hgfs/linux-v2.6.32/mirrors-linux-459b3d5$ sudo make install 
     273{{{ 
     274sh /mnt/hgfs/linux-v2.6.32/mirrors-linux-459b3d5/arch/x86/boot/install.sh 2.6.32 arch/x86/boot/bzImage \ 
     275                System.map "/boot" 
     276}}} 
     277 * s0711489@ubuntu-lucid:/mnt/hgfs/linux-v2.6.32/mirrors-linux-459b3d5$ sudo make modules_install 
     278{{{ 
     279  INSTALL arch/x86/kernel/test_nx.ko 
     280  INSTALL drivers/scsi/scsi_wait_scan.ko 
     281  DEPMOD  2.6.32 
     282}}} 
     283 * s0711489@ubuntu-lucid:/mnt/hgfs/linux-v2.6.32/mirrors-linux-459b3d5$ sudo mkinitramfs -o /boot/initrd.img-2.6.32 2.6.32 
     284 * s0711489@ubuntu-lucid:/mnt/hgfs/linux-v2.6.32/mirrors-linux-459b3d5$ sudo update-grub 
     285{{{ 
     286Generating grub.cfg ... 
     287Found linux image: /boot/vmlinuz-2.6.35 
     288Found initrd image: /boot/initrd.img-2.6.35 
     289Found linux image: /boot/vmlinuz-2.6.35.old 
     290Found initrd image: /boot/initrd.img-2.6.35 
     291Found linux image: /boot/vmlinuz-2.6.32-33-generic 
     292Found initrd image: /boot/initrd.img-2.6.32-33-generic 
     293Found linux image: /boot/vmlinuz-2.6.32 
     294Found initrd image: /boot/initrd.img-2.6.32 
     295Found memtest86+ image: /boot/memtest86+.bin 
     296done 
     297}}} 
     298 
     299 * s0711489@ubuntu-lucid:~$ uname -a 
     300{{{ 
     301Linux ubuntu-lucid 2.6.32-33-generic #72-Ubuntu SMP Fri Jul 29 21:08:37 UTC 2011 i686 GNU/Linux 
     302}}} 
     303 * s0711489@ubuntu-lucid:/mnt/hgfs/linux-v2.6.32/mirrors-linux-459b3d5$ sudo reboot 
     304 * s0711489@ubuntu-lucid:~$ uname -a 
     305{{{ 
     306Linux ubuntu-lucid 2.6.32 #1 SMP Fri Sep 16 15:49:51 JST 2011 i686 GNU/Linux 
     307}}} 
     308  * 今度は起動成功 
     309 
     310 == 結論 == 
     311 * 2.6.35で何故失敗したかは不明(再現しなかった) 
     312 * makeにかかる時間が長すぎるので、violaを使ってビルドする方法を探る