「カーネル入れ替え」の編集履歴(バックアップ)一覧はこちら

カーネル入れ替え」(2015/03/27 (金) 13:57:17) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

[[未解決の問題]]にあげていますが、なぜかJFFS2で/dev/mtdblock2がmountできない問題があり、カーネルで大量のエラーが吐かれていることからカーネルの問題と仮定。 CONFIGの指定漏れがあるのかとも思いましたが、とりあえずwheezyで組み込まれていると思われる3.2.65のカーネルでそのままorion5x_defconfigを使って作成してみることにした。 **セルフコンパイル まずはセルフコンパイルで試す > # wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.65.tar.gz > # tar xvf linux-3.2.65.tar.gz > # cd linux-3.2.65 > # vi Makefile > VERSION = 3 > PATCHLEVEL = 2 > SUBLEVEL = 65 > EXTRAVERSION = -orion5x EXTRAVERSIONに-orion5xを追記。これは後ほど実行するupdate-initramfsのために必要。 このままだとmachine IDが0x0000020eになり玄箱PROと識別されないのでパッチを当てる > # vi arch/arm/boot/Makefile > $(obj)/zImage: $(obj)/compressed/vmlinux FORCE > $(call if_changed,objcopy) > + devio > foo 'wl 0xe3a01c05,4' 'wl 0xe38110e5,4' > + cat foo $(obj)/zImage > zImage.new > + mv zImage.new $(obj)/zImage > + rm foo > @echo ' Kernel: $@ is ready' コンパイル。作成するのはuImageではなくzImageとしておく。 > # export ARCH=arm > # make orion5x_defconfig > # make menuconfig 変更箇所 > General setup ---> > Kernel compression mode (LZMA) ---> > [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support > () Initramfs source file(s) > [*] Support initial ramdisks compressed using gzip > [ ] Support initial ramdisks compressed using bzip2 > [ ] Support initial ramdisks compressed using LZMA > [ ] Support initial ramdisks compressed using XZ > [ ] Support initial ramdisks compressed using LZO > Device Drivers ---> > Generic Driver Options ---> > [*] Maintain a devtmpfs filesystem to mount at /dev > [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs > <*> Memory Technology Device (MTD) support ---> > Self-contained MTD device drivers ---> > <M> Test driver using RAM > (4096) MTDRAM device size in KiB > (128) MTDRAM erase block size in KiB > <M> MTD using block device > File systems > <*> The Extended 4 (ext4) filesystem > [*] Ext4 extended attributes > [*] Network File Systems ---> > <M> CIFS support (advanced network filesystem, SMBFS successor) > -*- Native language support ---> > (iso8859-1) Default NLS Option > <M> Japanese charsets (Shift-JIS, EUC-JP) > <*> NLS ISO 8859-1 (Latin 1; Western European Languages) > <M> NLS UTF-8 コンパイル > # nohup make zImage modules modules_install & > # jobs > # disown %1 セルフコンパイルで時間が掛かるので終わるまで気長に待つ。 完了。 > # cp arch/arm/boot/zImage /boot/vmlinuz-3.2.65-orion5x > # mv /boot/uImage.buffalo /boot/uImage.buffalo.old > # cp arch/arm/boot/uImage /boot/uImage.buffalo > # update-initramfs -c -k 3.2.65-orion5x -t > update-initramfs: Generating /boot/initrd.img-3.2.65-orion5x > flash-kernel: installing version 3.2.65-orion5x > Generating kernel u-boot image... done. > Installing new uImage.buffalo. > Generating initramfs u-boot image... done. > Installing new initrd.buffalo. > # reboot 起動完了 起動はできたが、 > # mount -t jffs2 /dev/mtdblock1 /mnt/mtd 同じ。 ダメ。マウントできない。大量のエラーが出る症状も同じ。 なにがいけないのか分からない。 **クロスコンパイル 何度も作り直すと玄箱PROでは時間がかかるのでクロスコンパイル環境を準備する。 VMware Player 7.1.0にdebian-7.8.0-i386-netinst.isoをセットしてDebian 7.xを導入。 Intel PC上のVMware Player環境でarmel向けのクロスコンパイル環境を作成する。 ■bintuilsをコンパイルしてインストールする > # cd ~ > # apt-get install dpkg-dev > # mkdir binutils > # cd binutils > # apt-get source binutils > # apt-get build-dep binutils > # cd binutils* > # TARGET=armel dpkg-buildpackage -b -uc -us > # cd .. > # dpkg -i *.deb ■gccをコンパイルしてインストールする > # cd ~ > # mkdir gcc > # cd gcc > # apt-get install xapt > # apt-get source gcc-4.7 > # apt-get build-dep gcc-4.7 > # xapt -a armel -m libc6-dev > # apt-get install binutils-multiarch > # cd gcc-* > # GCC_TARGET=armel dpkg-buildpackage -b -uc -us > # cd .. > # dpkg -i *.deb ■クロスコンパイル・チェック > # cd ~ > # vi main.c > > #include <stdio.h> > int main(int argc, char** argv) > { > printf( "Hello World\n" ); > return 0; > } > > # arm-linux-gnueabi-gcc-4.7 -static -o main main.c > # apt-get install qemu qemu-system > # qemu-arm ./main > Hello World ■リンク作成 > # ln -s /usr/bin/arm-linux-gnueabi-cpp-4.7 /usr/local/bin/arm-linux-gnueabi-cpp > # ln -s /usr/bin/arm-linux-gnueabi-gcc-ar-4.7 /usr/local/bin/arm-linux-gnueabi-gcc-ar > # ln -s /usr/bin/arm-linux-gnueabi-gccgo-4.7 /usr/local/bin/arm-linux-gnueabi-gccgo > # ln -s /usr/bin/arm-linux-gnueabi-g++-4.7 /usr/local/bin/arm-linux-gnueabi-g++ > # ln -s /usr/bin/arm-linux-gnueabi-gcc-nm-4.7 /usr/local/bin/arm-linux-gnueabi-gcc-nm > # ln -s /usr/bin/arm-linux-gnueabi-gcov-4.7 /usr/local/bin/arm-linux-gnueabi-gcov > # ln -s /usr/bin/arm-linux-gnueabi-gcc-4.7 /usr/local/bin/arm-linux-gnueabi-gcc > # ln -s /usr/bin/arm-linux-gnueabi-gcc-ranlib-4.7 /usr/local/bin/arm-linux-gnueabi-gcc-ranlib > # ln -s /usr/bin/arm-linux-gnueabi-gfortran-4.7 /usr/local/bin/arm-linux-gnueabi-gfortran ■環境設定、準備 > # cd /opt > # export ARCH=arm > # export CROSS_COMPILE=arm-linux-gnueabi- > # export INSTALL_MOD_PATH=/opt/kurobox_pro > # export INSTALL_PATH=$INSTALL_MOD_PATH/boot > # mkdir -p /opt/kurobox_pro/boot > # wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.65.tar.gz > # tar xvf linux-3.2.65.tar.gz > # cd linux-3.2.65 > # vi Makefile > VERSION = 3 > PATCHLEVEL = 2 > SUBLEVEL = 65 > EXTRAVERSION = -orion5x EXTRAVERSIONに-orion5xを追記 > # vi arch/arm/boot/Makefile > $(obj)/zImage: $(obj)/compressed/vmlinux FORCE > $(call if_changed,objcopy) > devio > foo 'wl 0xe3a01c05,4' 'wl 0xe38110e5,4' > cat foo $(obj)/zImage > zImage.new > mv zImage.new $(obj)/zImage > rm foo > @echo ' Kernel: $@ is ready' > # apt-get install devio > # apt-get install libncurses5-dev ■コンパイル > # make mrproper > # make orion5x_defconfig > # cp .config /opt/kurobox_pro/boot/config-3.2.65-orion5x-default > # make menuconfig > # make zImage modules modules_install > # cp arch/arm/boot/zImage /opt/kurobox_pro/boot/vmlinuz-3.2.65-orion5x > # cp .config /opt/kurobox_pro/boot/config-3.2.65-orion5x > # cd /opt/kurobox_pro > # tar cjvf kurobox-kernel.tar.bz2 * ※configの内容は上のセルフコンパイルと同様 ■展開(玄箱PRO側) > # tar -C / -xjvf kurobox-kernel.tar.bz2 > # cd /boot > # mv uImage.buffalo uImage.buffalo.old > # mv initrd.buffalo initrd.buffalo.old > # update-initramfs -c -k 3.2.65-orion5x > update-initramfs: Generating /boot/initrd.img-3.2.65-orion5x > flash-kernel: installing version 3.2.65-orion5x > Generating kernel u-boot image... done. > Installing new uImage.buffalo. > Generating initramfs u-boot image... done. > Installing new initrd.buffalo. > # shutdown -r now ■起動 > Orion1 CPU = Low > > === KURO U-Boot. === > ** LOADER ** > ** KUROBOX BOARD: KURO_BOX LE (CFG_ENV_ADDR=fffff000) > > > U-Boot 1.1.1 (Apr 10 2007 - 18:10:08) Marvell version: 1.12.1 - TINY > > DRAM CS[0] base 0x00000000 size 128MB > DRAM Total size 128MB > [256kB@fffc0000] Flash: 256 kB > Addresses 20M - 0M are saved for the U-Boot usage. > Mem malloc Initialization (20M - 16M): Done > NAND: 256 MB > > Soc: 88F5182 A2 > CPU: ARM926 (Rev 0) running @ 500Mhz > Orion 1 streaming disabled > SysClock = 250Mhz , TClock = 166Mhz > > > USB 0: host mode > USB 1: host mode > PCI 0: PCI Express Root Complex Interface > PCI 1: Conventional PCI, speed = 33000000 > Net: egiga0 [PRIME] > Using 88E1118 phy > Found boot image > hit any key to switch tftp boot. > Hit any key to stop autoboot: 2 1 0 > <<system_bootend>> > Hit any key to stop autoboot: 3 2 1 0 > > Reset IDE: > Marvell Serial ATA Adapter > Integrated Sata device found > Device 0: OK > Model: Hitachi HTS542525K9SA00 Firm: BBFOC31P Ser#: 080422BB6F00WDDDBT6G > Type: Hard Disk > Supports 48-bit addressing > Capacity: 238475.1 MB = 232.8 GB (488397168 x 512) > > Using device ide0, partition 1 > > Loading from block device ide device 0, partition 1: Name: hda1 > Type: U-Boot File:/uImage.buffalo > > 1684112 bytes read > Using device ide0, partition 1 > > Loading from block device ide device 0, partition 1: Name: hda1 > Type: U-Boot File:/initrd.buffalo > > 1828423 bytes read > <<stop_sound>> > ## Booting image at 00100000 ... > Image Name: kernel 3.2.65-orion5x > Created: 2015-03-27 1:03:13 UTC > Image Type: ARM Linux Kernel Image (uncompressed) > Data Size: 1684048 Bytes = 1.6 MB > Load Address: 00008000 > Entry Point: 00008000 > Verifying Checksum ... OK > OK > ## Loading Ramdisk Image at 02000000 ... > Image Name: ramdisk 3.2.65-orion5x > Created: 2015-03-27 1:03:13 UTC > Image Type: ARM Linux RAMDisk Image (gzip compressed) > Data Size: 1828359 Bytes = 1.7 MB > Load Address: 00000000 > Entry Point: 00000000 > Verifying Checksum ... OK > > Starting kernel ... > > arg:console=ttyS0,115200 > Uncompressing Linux... done, booting the kernel. > Linux version 3.2.65-orion5x (root@debian) (gcc version 4.7.2 (Debian 4.7.2-5) ) #4 PREEMPT Fri Mar 27 09:53:47 JST 2015 > CPU: Feroceon [41069260] revision 0 (ARMv5TEJ), cr=a0053177 > CPU: VIVT data cache, VIVT instruction cache > Machine: Buffalo/Revogear Kurobox Pro > Clearing invalid memory bank 0KB@0xffffffff > Clearing invalid memory bank 0KB@0xffffffff > Clearing invalid memory bank 0KB@0xffffffff > Ignoring unrecognised tag 0x00000000 > Ignoring unrecognised tag 0x00000000 > Ignoring unrecognised tag 0x00000000 > Ignoring unrecognised tag 0x41000403 > Memory policy: ECC disabled, Data cache writeback > Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 > Kernel command line: console=ttyS0,115200 > PID hash table entries: 512 (order: -1, 2048 bytes) > Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) > Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) > Memory: 128MB = 128MB total > Memory: 123548k/123548k available, 7524k reserved, 0K highmem > Virtual kernel memory layout: > vector : 0xffff0000 - 0xffff1000 ( 4 kB) > fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) > vmalloc : 0xc8800000 - 0xfd800000 ( 848 MB) > lowmem : 0xc0000000 - 0xc8000000 ( 128 MB) > modules : 0xbf000000 - 0xc0000000 ( 16 MB) > .text : 0xc0008000 - 0xc0415368 (4149 kB) > .init : 0xc0416000 - 0xc0439000 ( 140 kB) > .data : 0xc043a000 - 0xc045b200 ( 133 kB) > .bss : 0xc045b224 - 0xc0477164 ( 112 kB) > SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 > NR_IRQS:64 > sched_clock: 32 bits at 166MHz, resolution 5ns, wraps every 25769ms > Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104) > pid_max: default: 32768 minimum: 301 > Mount-cache hash table entries: 512 > CPU: Testing write buffer coherency: ok > devtmpfs: initialized > NET: Registered protocol family 16 > Orion ID: MV88F5182-A2. TCLK=166666667. > Applying Orion-1/Orion-NAS PCIe config read transaction workaround > PCI: bus0: Fast back to back transfers disabled > bio: create slab <bio-0> at 0 > SCSI subsystem initialized > usbcore: registered new interface driver usbfs > usbcore: registered new interface driver hub > usbcore: registered new device driver usb > Switching to clocksource orion_clocksource > NET: Registered protocol family 2 > IP route cache hash table entries: 1024 (order: 0, 4096 bytes) > TCP established hash table entries: 4096 (order: 3, 32768 bytes) > TCP bind hash table entries: 4096 (order: 2, 16384 bytes) > TCP: Hash tables configured (established 4096 bind 4096) > TCP reno registered > UDP hash table entries: 256 (order: 0, 4096 bytes) > UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) > NET: Registered protocol family 1 > RPC: Registered named UNIX socket transport module. > RPC: Registered udp transport module. > RPC: Registered tcp transport module. > RPC: Registered tcp NFSv4.1 backchannel transport module. > Trying to unpack rootfs image as initramfs... > Freeing initrd memory: 1784K > NetWinder Floating Point Emulator V0.97 (double precision) > JFFS2 version 2.2. (NAND) c 2001-2006 Red Hat, Inc. > msgmni has been set to 244 > io scheduler noop registered > io scheduler deadline registered > io scheduler cfq registered (default) > mv_xor_shared mv_xor_shared.0: Marvell shared XOR driver > mv_xor mv_xor.0: Marvell XOR: ( xor cpy ) > mv_xor mv_xor.1: Marvell XOR: ( xor fill cpy ) > Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled > serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 3) is a 16550A > console [ttyS0] enabled > serial8250.1: ttyS1 at MMIO 0xf1012100 (irq = 4) is a 16550A > brd: module loaded > loop: module loaded > sata_mv sata_mv.0: slots 32 ports 2 > scsi0 : sata_mv > scsi1 : sata_mv > ata1: SATA max UDMA/133 irq 29 > ata2: SATA max UDMA/133 irq 29 > physmap platform flash device: 00040000 at f4000000 > Found: SST 39LF020 > physmap-flash.0: Found 1 x8 devices at 0x0 in 8-bit bank > number of JEDEC chips: 1 > Generic platform RAM MTD, (c) 2004 Simtec Electronics > NAND device: Manufacturer ID: 0x20, Chip ID: 0xda (ST Micro NAND 256MiB 3,3V 8-bit) > Scanning device for bad blocks > Bad eraseblock 854 at 0x000006ac0000 > Creating 3 MTD partitions on "orion_nand": > 0x000000000000-0x000000400000 : "uImage" > 0x000000400000-0x000004400000 : "rootfs" > 0x000004400000-0x000010000000 : "extra" > mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4 > mv643xx_eth smi: probed > mv643xx_eth_port mv643xx_eth_port.0: eth0: port 0 with MAC address 00:16:01:a4:c9:b9 > ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver > orion-ehci orion-ehci.0: Marvell Orion EHCI > orion-ehci orion-ehci.0: new USB bus registered, assigned bus number 1 > orion-ehci orion-ehci.0: irq 17, io mem 0xf1050000 > orion-ehci orion-ehci.0: USB 2.0 started, EHCI 1.00 > hub 1-0:1.0: USB hub found > hub 1-0:1.0: 1 port detected > orion-ehci orion-ehci.1: Marvell Orion EHCI > orion-ehci orion-ehci.1: new USB bus registered, assigned bus number 2 > orion-ehci orion-ehci.1: irq 12, io mem 0xf10a0000 > orion-ehci orion-ehci.1: USB 2.0 started, EHCI 1.00 > hub 2-0:1.0: USB hub found > hub 2-0:1.0: 1 port detected > usbcore: registered new interface driver usblp > Initializing USB Mass Storage driver... > usbcore: registered new interface driver usb-storage > USB Mass Storage support registered. > usbcore: registered new interface driver ums-datafab > usbcore: registered new interface driver ums-freecom > usbcore: registered new interface driver ums-jumpshot > usbcore: registered new interface driver ums-sddr09 > usbcore: registered new interface driver ums-sddr55 > i2c /dev entries driver > rtc-rs5c372 0-0032: rs5c372a found, 24hr, driver version 0.6 > rtc-rs5c372 0-0032: rtc core: registered rtc-rs5c372 as rtc0 > usbcore: registered new interface driver usbhid > usbhid: USB HID core driver > oprofile: hardware counters not available > oprofile: using timer interrupt. > TCP cubic registered > NET: Registered protocol family 17 > VFP support v0.3: not present > rtc-rs5c372 0-0032: setting system clock to 2015-03-27 01:03:50 UTC (1427418230) > ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) > ata1.00: ATA-8: Hitachi HTS542525K9SA00, BBFOC31P, max UDMA/133 > ata1.00: 488397168 sectors, multi 0: LBA48 NCQ (depth 31/32) > ata1.00: configured for UDMA/133 > scsi 0:0:0:0: Direct-Access ATA Hitachi HTS54252 BBFO PQ: 0 ANSI: 5 > sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB) > sd 0:0:0:0: [sda] Write Protect is off > sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA > ata2: SATA link down (SStatus 0 SControl 300) > sda: sda1 sda2 sda3 < sda5 > sda4 > sd 0:0:0:0: [sda] Attached SCSI disk > Freeing init memory: 140K > Loading, please wait... > udevd[457]: starting version 175 > Begin: Loading essential drivers ... modprobe: module platform:sata_mv not found in modules.dep > done. > Begin: Running /scripts/init-premount ... done. > Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done. > Begin: Running /scripts/local-premount ... done. > EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null) > Begin: Running /scripts/local-bottom ... done. > done. > Begin: Running /scripts/init-bottom ... done. > INIT: version 2.88 booting > [info] Using makefile-style concurrent boot in runlevel S. > [....] Starting the hotplug events dispatcher: udevdudevd[658]: starting version 175 > [ ok . > [....] Synthesizing the initial hotplug events...[ ok done. > [....] Waiting for /dev to be fully populated...[ ok done. > [....] Activating swap...Adding 365564k swap on /dev/sda5. Priority:-1 extents:1 across:365564k > [ ok done. > EXT4-fs (sda2): re-mounted. Opts: (null) > [....] Checking root file system...fsck from util-linux 2.20.1 > /dev/sda2: clean, 33480/1310720 files, 355119/5242880 blocks > [ ok done. > EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro > [....] Cleaning up temporary files... /tmp[ ok . > [....] Activating lvm and md swap...[ ok done. > [....] Checking file systems...fsck from util-linux 2.20.1 > /dev/sda4: clean, 142666/13918208 files, 34355865/55652608 blocks > /dev/sda1: clean, 29/124496 files, 38315/248832 blocks > [ ok done. > [....] Mounting local filesystems...EXT4-fs (sda4): mounted filesystem with ordered data mode. Opts: (null) > [ ok done. > [....] Activating swapfile swap...[ ok done. > [....] Cleaning up temporary files...[ ok . > [....] Setting kernel variables ...[ ok done. > [....] Configuring network interfaces...[ ok done. > [....] Starting rpcbind daemon...rpcbind: cannot create socket for udp6 > rpcbind: cannot create socket for tcp6 > [ ok . > [....] Starting NFS common utilities: statd idmapd[ ok . > [....] Cleaning up temporary files...mv643xx_eth_port mv643xx_eth_port.0: eth0: link up, 100 Mb/s, full duplex, flow control disabled > [ ok . > [....] Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix[ ok . > INIT: Entering runlevel: 2 > [info] Using makefile-style concurrent boot in runlevel 2. > [....] Starting rpcbind daemon...[....] Already running.[ ok . > [....] Starting NFS common utilities: statd idmapd[ ok . > [....] Starting enhanced syslogd: rsyslogd[ ok . > [....] Starting deferred execution scheduler: atd[ ok . > [....] Starting periodic command scheduler: cron[ ok . > [....] Starting system message bus: dbus[ ok . > [....] Starting MTA: exim4[ ok . > ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken > [....] Starting Daemon for Linkstation/Kuro micro controller: micro-evtd[ ok . > [....] Starting Samba daemons: nmbd smbd[ ok . > [....] Starting OpenBSD Secure Shell server: sshd[ ok . > > Debian GNU/Linux 7 KUROBOX-PRO ttyS0 > > KUROBOX-PRO login: root > Password: > Last login: Fri Mar 27 11:05:45 JST 2015 on ttyS0 > Linux KUROBOX-PRO 3.2.65-orion5x #4 PREEMPT Fri Mar 27 09:53:47 JST 2015 armv5tel > > The programs included with the Debian GNU/Linux system are free software; > the exact distribution terms for each program are described in the > individual files in /usr/share/doc/*/copyright. > > Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent > permitted by applicable law. > KUROBOX-PRO:~# mount /dev/mtdblock2 /mnt/mtd だめ > KUROBOX-PRO:~# mount -t jffs2 /dev/mtdblock2 /mnt/mtd これもだめ カーネル変えても変わらない
[[未解決の問題]]にあげていますが、なぜかJFFS2で/dev/mtdblock2がmountできない問題があり、カーネルで大量のエラーが吐かれていることからカーネルの問題と仮定。 CONFIGの指定漏れがあるのかとも思いましたが、とりあえずwheezyで組み込まれていると思われる3.2.65のカーネルでそのままorion5x_defconfigを使って作成してみることにした。 **セルフコンパイル まずはセルフコンパイルで試す > # wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.65.tar.gz > # tar xvf linux-3.2.65.tar.gz > # cd linux-3.2.65 > # vi Makefile > VERSION = 3 > PATCHLEVEL = 2 > SUBLEVEL = 65 > EXTRAVERSION = -orion5x EXTRAVERSIONに-orion5xを追記。これは後ほど実行するupdate-initramfsのために必要。 このままだとmachine IDが0x0000020eになり玄箱PROと識別されないのでパッチを当てる > # vi arch/arm/boot/Makefile > $(obj)/zImage: $(obj)/compressed/vmlinux FORCE > $(call if_changed,objcopy) > + devio > foo 'wl 0xe3a01c05,4' 'wl 0xe38110e5,4' > + cat foo $(obj)/zImage > zImage.new > + mv zImage.new $(obj)/zImage > + rm foo > @echo ' Kernel: $@ is ready' コンパイル。作成するのはuImageではなくzImageとしておく。 > # export ARCH=arm > # make orion5x_defconfig > # make menuconfig 変更箇所 ・カーネルは圧縮率の高いLZMAに変更 ・gzip圧縮のinitrdを使うので追加 ・起動時にdevtmpfsがあった方がよさそうなメッセージがあったので追加 ・mtdblockのマウントができないので代替ツールとしてmtdram、mtdblockを追加([[未解決の問題]]) ・sda2がext4なのでMから*に変更 ・他のサーバーの共有フォルダをマウントしたいのでCIFSを追加 ・言語はiso8859-1を基本に日本語とUTF-8を使えるように設定 > General setup ---> > Kernel compression mode (LZMA) ---> > [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support > () Initramfs source file(s) > [*] Support initial ramdisks compressed using gzip > [ ] Support initial ramdisks compressed using bzip2 > [ ] Support initial ramdisks compressed using LZMA > [ ] Support initial ramdisks compressed using XZ > [ ] Support initial ramdisks compressed using LZO > Device Drivers ---> > Generic Driver Options ---> > [*] Maintain a devtmpfs filesystem to mount at /dev > [*] Automount devtmpfs at /dev, after the kernel mounted the rootfs > <*> Memory Technology Device (MTD) support ---> > Self-contained MTD device drivers ---> > <M> Test driver using RAM > (4096) MTDRAM device size in KiB > (128) MTDRAM erase block size in KiB > <M> MTD using block device > File systems > <*> The Extended 4 (ext4) filesystem > [*] Ext4 extended attributes > [*] Network File Systems ---> > <M> CIFS support (advanced network filesystem, SMBFS successor) > -*- Native language support ---> > (iso8859-1) Default NLS Option > <M> Japanese charsets (Shift-JIS, EUC-JP) > <*> NLS ISO 8859-1 (Latin 1; Western European Languages) > <M> NLS UTF-8 コンパイル > # nohup make zImage modules modules_install & > # jobs > # disown %1 セルフコンパイルで時間が掛かるので終わるまで気長に待つ。 完了。 > # cp arch/arm/boot/zImage /boot/vmlinuz-3.2.65-orion5x > # mv /boot/uImage.buffalo /boot/uImage.buffalo.old > # cp arch/arm/boot/uImage /boot/uImage.buffalo > # update-initramfs -c -k 3.2.65-orion5x -t > update-initramfs: Generating /boot/initrd.img-3.2.65-orion5x > flash-kernel: installing version 3.2.65-orion5x > Generating kernel u-boot image... done. > Installing new uImage.buffalo. > Generating initramfs u-boot image... done. > Installing new initrd.buffalo. > # reboot 起動完了 起動はできたが、 > # mount -t jffs2 /dev/mtdblock1 /mnt/mtd 同じ。 ダメ。マウントできない。大量のエラーが出る症状も同じ。 なにがいけないのか分からない。 **クロスコンパイル 何度も作り直すと玄箱PROでは時間がかかるのでクロスコンパイル環境を準備する。 VMware Player 7.1.0にdebian-7.8.0-i386-netinst.isoをセットしてDebian 7.xを導入。 Intel PC上のVMware Player環境でarmel向けのクロスコンパイル環境を作成する。 ■bintuilsをコンパイルしてインストールする > # cd ~ > # apt-get install dpkg-dev > # mkdir binutils > # cd binutils > # apt-get source binutils > # apt-get build-dep binutils > # cd binutils* > # TARGET=armel dpkg-buildpackage -b -uc -us > # cd .. > # dpkg -i *.deb ■gccをコンパイルしてインストールする > # cd ~ > # mkdir gcc > # cd gcc > # apt-get install xapt > # apt-get source gcc-4.7 > # apt-get build-dep gcc-4.7 > # xapt -a armel -m libc6-dev > # apt-get install binutils-multiarch > # cd gcc-* > # GCC_TARGET=armel dpkg-buildpackage -b -uc -us > # cd .. > # dpkg -i *.deb ■クロスコンパイル・チェック > # cd ~ > # vi main.c > > #include <stdio.h> > int main(int argc, char** argv) > { > printf( "Hello World\n" ); > return 0; > } > > # arm-linux-gnueabi-gcc-4.7 -static -o main main.c > # apt-get install qemu qemu-system > # qemu-arm ./main > Hello World ■リンク作成 > # ln -s /usr/bin/arm-linux-gnueabi-cpp-4.7 /usr/local/bin/arm-linux-gnueabi-cpp > # ln -s /usr/bin/arm-linux-gnueabi-gcc-ar-4.7 /usr/local/bin/arm-linux-gnueabi-gcc-ar > # ln -s /usr/bin/arm-linux-gnueabi-gccgo-4.7 /usr/local/bin/arm-linux-gnueabi-gccgo > # ln -s /usr/bin/arm-linux-gnueabi-g++-4.7 /usr/local/bin/arm-linux-gnueabi-g++ > # ln -s /usr/bin/arm-linux-gnueabi-gcc-nm-4.7 /usr/local/bin/arm-linux-gnueabi-gcc-nm > # ln -s /usr/bin/arm-linux-gnueabi-gcov-4.7 /usr/local/bin/arm-linux-gnueabi-gcov > # ln -s /usr/bin/arm-linux-gnueabi-gcc-4.7 /usr/local/bin/arm-linux-gnueabi-gcc > # ln -s /usr/bin/arm-linux-gnueabi-gcc-ranlib-4.7 /usr/local/bin/arm-linux-gnueabi-gcc-ranlib > # ln -s /usr/bin/arm-linux-gnueabi-gfortran-4.7 /usr/local/bin/arm-linux-gnueabi-gfortran ■環境設定、準備 > # cd /opt > # export ARCH=arm > # export CROSS_COMPILE=arm-linux-gnueabi- > # export INSTALL_MOD_PATH=/opt/kurobox_pro > # export INSTALL_PATH=$INSTALL_MOD_PATH/boot > # mkdir -p /opt/kurobox_pro/boot > # wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.65.tar.gz > # tar xvf linux-3.2.65.tar.gz > # cd linux-3.2.65 > # vi Makefile > VERSION = 3 > PATCHLEVEL = 2 > SUBLEVEL = 65 > EXTRAVERSION = -orion5x EXTRAVERSIONに-orion5xを追記 > # vi arch/arm/boot/Makefile > $(obj)/zImage: $(obj)/compressed/vmlinux FORCE > $(call if_changed,objcopy) > devio > foo 'wl 0xe3a01c05,4' 'wl 0xe38110e5,4' > cat foo $(obj)/zImage > zImage.new > mv zImage.new $(obj)/zImage > rm foo > @echo ' Kernel: $@ is ready' > # apt-get install devio > # apt-get install libncurses5-dev ■コンパイル > # make mrproper > # make orion5x_defconfig > # cp .config /opt/kurobox_pro/boot/config-3.2.65-orion5x-default > # make menuconfig > # make zImage modules modules_install > # cp arch/arm/boot/zImage /opt/kurobox_pro/boot/vmlinuz-3.2.65-orion5x > # cp .config /opt/kurobox_pro/boot/config-3.2.65-orion5x > # cd /opt/kurobox_pro > # tar cjvf kurobox-kernel.tar.bz2 * ※configの内容は上のセルフコンパイルと同様 ■展開(玄箱PRO側) > # tar -C / -xjvf kurobox-kernel.tar.bz2 > # cd /boot > # mv uImage.buffalo uImage.buffalo.old > # mv initrd.buffalo initrd.buffalo.old > # update-initramfs -c -k 3.2.65-orion5x > update-initramfs: Generating /boot/initrd.img-3.2.65-orion5x > flash-kernel: installing version 3.2.65-orion5x > Generating kernel u-boot image... done. > Installing new uImage.buffalo. > Generating initramfs u-boot image... done. > Installing new initrd.buffalo. > # shutdown -r now ■起動 > Orion1 CPU = Low > > === KURO U-Boot. === > ** LOADER ** > ** KUROBOX BOARD: KURO_BOX LE (CFG_ENV_ADDR=fffff000) > > > U-Boot 1.1.1 (Apr 10 2007 - 18:10:08) Marvell version: 1.12.1 - TINY > > DRAM CS[0] base 0x00000000 size 128MB > DRAM Total size 128MB > [256kB@fffc0000] Flash: 256 kB > Addresses 20M - 0M are saved for the U-Boot usage. > Mem malloc Initialization (20M - 16M): Done > NAND: 256 MB > > Soc: 88F5182 A2 > CPU: ARM926 (Rev 0) running @ 500Mhz > Orion 1 streaming disabled > SysClock = 250Mhz , TClock = 166Mhz > > > USB 0: host mode > USB 1: host mode > PCI 0: PCI Express Root Complex Interface > PCI 1: Conventional PCI, speed = 33000000 > Net: egiga0 [PRIME] > Using 88E1118 phy > Found boot image > hit any key to switch tftp boot. > Hit any key to stop autoboot: 2 1 0 > <<system_bootend>> > Hit any key to stop autoboot: 3 2 1 0 > > Reset IDE: > Marvell Serial ATA Adapter > Integrated Sata device found > Device 0: OK > Model: Hitachi HTS542525K9SA00 Firm: BBFOC31P Ser#: 080422BB6F00WDDDBT6G > Type: Hard Disk > Supports 48-bit addressing > Capacity: 238475.1 MB = 232.8 GB (488397168 x 512) > > Using device ide0, partition 1 > > Loading from block device ide device 0, partition 1: Name: hda1 > Type: U-Boot File:/uImage.buffalo > > 1684112 bytes read > Using device ide0, partition 1 > > Loading from block device ide device 0, partition 1: Name: hda1 > Type: U-Boot File:/initrd.buffalo > > 1828423 bytes read > <<stop_sound>> > ## Booting image at 00100000 ... > Image Name: kernel 3.2.65-orion5x > Created: 2015-03-27 1:03:13 UTC > Image Type: ARM Linux Kernel Image (uncompressed) > Data Size: 1684048 Bytes = 1.6 MB > Load Address: 00008000 > Entry Point: 00008000 > Verifying Checksum ... OK > OK > ## Loading Ramdisk Image at 02000000 ... > Image Name: ramdisk 3.2.65-orion5x > Created: 2015-03-27 1:03:13 UTC > Image Type: ARM Linux RAMDisk Image (gzip compressed) > Data Size: 1828359 Bytes = 1.7 MB > Load Address: 00000000 > Entry Point: 00000000 > Verifying Checksum ... OK > > Starting kernel ... > > arg:console=ttyS0,115200 > Uncompressing Linux... done, booting the kernel. > Linux version 3.2.65-orion5x (root@debian) (gcc version 4.7.2 (Debian 4.7.2-5) ) #4 PREEMPT Fri Mar 27 09:53:47 JST 2015 > CPU: Feroceon [41069260] revision 0 (ARMv5TEJ), cr=a0053177 > CPU: VIVT data cache, VIVT instruction cache > Machine: Buffalo/Revogear Kurobox Pro > Clearing invalid memory bank 0KB@0xffffffff > Clearing invalid memory bank 0KB@0xffffffff > Clearing invalid memory bank 0KB@0xffffffff > Ignoring unrecognised tag 0x00000000 > Ignoring unrecognised tag 0x00000000 > Ignoring unrecognised tag 0x00000000 > Ignoring unrecognised tag 0x41000403 > Memory policy: ECC disabled, Data cache writeback > Built 1 zonelists in Zone order, mobility grouping on. Total pages: 32512 > Kernel command line: console=ttyS0,115200 > PID hash table entries: 512 (order: -1, 2048 bytes) > Dentry cache hash table entries: 16384 (order: 4, 65536 bytes) > Inode-cache hash table entries: 8192 (order: 3, 32768 bytes) > Memory: 128MB = 128MB total > Memory: 123548k/123548k available, 7524k reserved, 0K highmem > Virtual kernel memory layout: > vector : 0xffff0000 - 0xffff1000 ( 4 kB) > fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB) > vmalloc : 0xc8800000 - 0xfd800000 ( 848 MB) > lowmem : 0xc0000000 - 0xc8000000 ( 128 MB) > modules : 0xbf000000 - 0xc0000000 ( 16 MB) > .text : 0xc0008000 - 0xc0415368 (4149 kB) > .init : 0xc0416000 - 0xc0439000 ( 140 kB) > .data : 0xc043a000 - 0xc045b200 ( 133 kB) > .bss : 0xc045b224 - 0xc0477164 ( 112 kB) > SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1 > NR_IRQS:64 > sched_clock: 32 bits at 166MHz, resolution 5ns, wraps every 25769ms > Calibrating delay loop... 265.42 BogoMIPS (lpj=1327104) > pid_max: default: 32768 minimum: 301 > Mount-cache hash table entries: 512 > CPU: Testing write buffer coherency: ok > devtmpfs: initialized > NET: Registered protocol family 16 > Orion ID: MV88F5182-A2. TCLK=166666667. > Applying Orion-1/Orion-NAS PCIe config read transaction workaround > PCI: bus0: Fast back to back transfers disabled > bio: create slab <bio-0> at 0 > SCSI subsystem initialized > usbcore: registered new interface driver usbfs > usbcore: registered new interface driver hub > usbcore: registered new device driver usb > Switching to clocksource orion_clocksource > NET: Registered protocol family 2 > IP route cache hash table entries: 1024 (order: 0, 4096 bytes) > TCP established hash table entries: 4096 (order: 3, 32768 bytes) > TCP bind hash table entries: 4096 (order: 2, 16384 bytes) > TCP: Hash tables configured (established 4096 bind 4096) > TCP reno registered > UDP hash table entries: 256 (order: 0, 4096 bytes) > UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) > NET: Registered protocol family 1 > RPC: Registered named UNIX socket transport module. > RPC: Registered udp transport module. > RPC: Registered tcp transport module. > RPC: Registered tcp NFSv4.1 backchannel transport module. > Trying to unpack rootfs image as initramfs... > Freeing initrd memory: 1784K > NetWinder Floating Point Emulator V0.97 (double precision) > JFFS2 version 2.2. (NAND) c 2001-2006 Red Hat, Inc. > msgmni has been set to 244 > io scheduler noop registered > io scheduler deadline registered > io scheduler cfq registered (default) > mv_xor_shared mv_xor_shared.0: Marvell shared XOR driver > mv_xor mv_xor.0: Marvell XOR: ( xor cpy ) > mv_xor mv_xor.1: Marvell XOR: ( xor fill cpy ) > Serial: 8250/16550 driver, 2 ports, IRQ sharing disabled > serial8250.0: ttyS0 at MMIO 0xf1012000 (irq = 3) is a 16550A > console [ttyS0] enabled > serial8250.1: ttyS1 at MMIO 0xf1012100 (irq = 4) is a 16550A > brd: module loaded > loop: module loaded > sata_mv sata_mv.0: slots 32 ports 2 > scsi0 : sata_mv > scsi1 : sata_mv > ata1: SATA max UDMA/133 irq 29 > ata2: SATA max UDMA/133 irq 29 > physmap platform flash device: 00040000 at f4000000 > Found: SST 39LF020 > physmap-flash.0: Found 1 x8 devices at 0x0 in 8-bit bank > number of JEDEC chips: 1 > Generic platform RAM MTD, (c) 2004 Simtec Electronics > NAND device: Manufacturer ID: 0x20, Chip ID: 0xda (ST Micro NAND 256MiB 3,3V 8-bit) > Scanning device for bad blocks > Bad eraseblock 854 at 0x000006ac0000 > Creating 3 MTD partitions on "orion_nand": > 0x000000000000-0x000000400000 : "uImage" > 0x000000400000-0x000004400000 : "rootfs" > 0x000004400000-0x000010000000 : "extra" > mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4 > mv643xx_eth smi: probed > mv643xx_eth_port mv643xx_eth_port.0: eth0: port 0 with MAC address 00:16:01:a4:c9:b9 > ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver > orion-ehci orion-ehci.0: Marvell Orion EHCI > orion-ehci orion-ehci.0: new USB bus registered, assigned bus number 1 > orion-ehci orion-ehci.0: irq 17, io mem 0xf1050000 > orion-ehci orion-ehci.0: USB 2.0 started, EHCI 1.00 > hub 1-0:1.0: USB hub found > hub 1-0:1.0: 1 port detected > orion-ehci orion-ehci.1: Marvell Orion EHCI > orion-ehci orion-ehci.1: new USB bus registered, assigned bus number 2 > orion-ehci orion-ehci.1: irq 12, io mem 0xf10a0000 > orion-ehci orion-ehci.1: USB 2.0 started, EHCI 1.00 > hub 2-0:1.0: USB hub found > hub 2-0:1.0: 1 port detected > usbcore: registered new interface driver usblp > Initializing USB Mass Storage driver... > usbcore: registered new interface driver usb-storage > USB Mass Storage support registered. > usbcore: registered new interface driver ums-datafab > usbcore: registered new interface driver ums-freecom > usbcore: registered new interface driver ums-jumpshot > usbcore: registered new interface driver ums-sddr09 > usbcore: registered new interface driver ums-sddr55 > i2c /dev entries driver > rtc-rs5c372 0-0032: rs5c372a found, 24hr, driver version 0.6 > rtc-rs5c372 0-0032: rtc core: registered rtc-rs5c372 as rtc0 > usbcore: registered new interface driver usbhid > usbhid: USB HID core driver > oprofile: hardware counters not available > oprofile: using timer interrupt. > TCP cubic registered > NET: Registered protocol family 17 > VFP support v0.3: not present > rtc-rs5c372 0-0032: setting system clock to 2015-03-27 01:03:50 UTC (1427418230) > ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) > ata1.00: ATA-8: Hitachi HTS542525K9SA00, BBFOC31P, max UDMA/133 > ata1.00: 488397168 sectors, multi 0: LBA48 NCQ (depth 31/32) > ata1.00: configured for UDMA/133 > scsi 0:0:0:0: Direct-Access ATA Hitachi HTS54252 BBFO PQ: 0 ANSI: 5 > sd 0:0:0:0: [sda] 488397168 512-byte logical blocks: (250 GB/232 GiB) > sd 0:0:0:0: [sda] Write Protect is off > sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA > ata2: SATA link down (SStatus 0 SControl 300) > sda: sda1 sda2 sda3 < sda5 > sda4 > sd 0:0:0:0: [sda] Attached SCSI disk > Freeing init memory: 140K > Loading, please wait... > udevd[457]: starting version 175 > Begin: Loading essential drivers ... modprobe: module platform:sata_mv not found in modules.dep > done. > Begin: Running /scripts/init-premount ... done. > Begin: Mounting root file system ... Begin: Running /scripts/local-top ... done. > Begin: Running /scripts/local-premount ... done. > EXT4-fs (sda2): mounted filesystem with ordered data mode. Opts: (null) > Begin: Running /scripts/local-bottom ... done. > done. > Begin: Running /scripts/init-bottom ... done. > INIT: version 2.88 booting > [info] Using makefile-style concurrent boot in runlevel S. > [....] Starting the hotplug events dispatcher: udevdudevd[658]: starting version 175 > [ ok . > [....] Synthesizing the initial hotplug events...[ ok done. > [....] Waiting for /dev to be fully populated...[ ok done. > [....] Activating swap...Adding 365564k swap on /dev/sda5. Priority:-1 extents:1 across:365564k > [ ok done. > EXT4-fs (sda2): re-mounted. Opts: (null) > [....] Checking root file system...fsck from util-linux 2.20.1 > /dev/sda2: clean, 33480/1310720 files, 355119/5242880 blocks > [ ok done. > EXT4-fs (sda2): re-mounted. Opts: errors=remount-ro > [....] Cleaning up temporary files... /tmp[ ok . > [....] Activating lvm and md swap...[ ok done. > [....] Checking file systems...fsck from util-linux 2.20.1 > /dev/sda4: clean, 142666/13918208 files, 34355865/55652608 blocks > /dev/sda1: clean, 29/124496 files, 38315/248832 blocks > [ ok done. > [....] Mounting local filesystems...EXT4-fs (sda4): mounted filesystem with ordered data mode. Opts: (null) > [ ok done. > [....] Activating swapfile swap...[ ok done. > [....] Cleaning up temporary files...[ ok . > [....] Setting kernel variables ...[ ok done. > [....] Configuring network interfaces...[ ok done. > [....] Starting rpcbind daemon...rpcbind: cannot create socket for udp6 > rpcbind: cannot create socket for tcp6 > [ ok . > [....] Starting NFS common utilities: statd idmapd[ ok . > [....] Cleaning up temporary files...mv643xx_eth_port mv643xx_eth_port.0: eth0: link up, 100 Mb/s, full duplex, flow control disabled > [ ok . > [....] Setting up X socket directories... /tmp/.X11-unix /tmp/.ICE-unix[ ok . > INIT: Entering runlevel: 2 > [info] Using makefile-style concurrent boot in runlevel 2. > [....] Starting rpcbind daemon...[....] Already running.[ ok . > [....] Starting NFS common utilities: statd idmapd[ ok . > [....] Starting enhanced syslogd: rsyslogd[ ok . > [....] Starting deferred execution scheduler: atd[ ok . > [....] Starting periodic command scheduler: cron[ ok . > [....] Starting system message bus: dbus[ ok . > [....] Starting MTA: exim4[ ok . > ALERT: exim paniclog /var/log/exim4/paniclog has non-zero size, mail system possibly broken > [....] Starting Daemon for Linkstation/Kuro micro controller: micro-evtd[ ok . > [....] Starting Samba daemons: nmbd smbd[ ok . > [....] Starting OpenBSD Secure Shell server: sshd[ ok . > > Debian GNU/Linux 7 KUROBOX-PRO ttyS0 > > KUROBOX-PRO login: root > Password: > Last login: Fri Mar 27 11:05:45 JST 2015 on ttyS0 > Linux KUROBOX-PRO 3.2.65-orion5x #4 PREEMPT Fri Mar 27 09:53:47 JST 2015 armv5tel > > The programs included with the Debian GNU/Linux system are free software; > the exact distribution terms for each program are described in the > individual files in /usr/share/doc/*/copyright. > > Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent > permitted by applicable law. > KUROBOX-PRO:~# mount /dev/mtdblock2 /mnt/mtd だめ > KUROBOX-PRO:~# mount -t jffs2 /dev/mtdblock2 /mnt/mtd これもだめ カーネル変えても変わらない

表示オプション

横に並べて表示:
変化行の前後のみ表示: