約 2,618,822 件
https://w.atwiki.jp/osx86/pages/15.html
■カーネルをビルドする (2010/01/06) はじめに OSXはOSカーネルにBSDベースのカーネルを採用しており、10.5 LeopardからThe Open GroupよりSingle UNIX Specificationの認証を受けた正式なUNIX OS である。2009年末時点でThe Open Groupの認定を受け、UNIX商標を使えるOSは、Apple社のMac OS X 10.5 Leopard, 10.6 Snow Leopard、Sun Microsystems/富士通社のSolaris 10、HP社のHP-UX 11iv3、IBM社のAIX 5L、6の4製品のみである。Apple以外のOSは商用サーバ向けUNIX OSとして特殊なもの(シェア3割強でAIXがトップ)であり、実質的にUNIXのシェアトップはMac OS Xである。 カーネルはオープンソースとして公開(各ベンダが知的所有権を有しソースを公開できないデバイスドライバなどはkext(カーネル拡張 kernel extension)としてバイナリのみのモジュールで提供されソースは非公開)されており、誰もが自由に閲覧し、使用することができる。 Leopard 10.5についてはリファレンスライブラリのBuilding and Debugging Kernelsなどや、カーネルソースに付属するREADMEを参照することでビルドできるが、Snow Loepardからビルド方法が変更になった。その為、本項では一例として、2010年1月時点で最新の10.6.2のビルド方法を示す。 ■1. 統合開発環境Xcode IDEを導入 1.1 Macデベロッパプログラムに加入 Appleは、OSXでの統合開発環境(Xcode 3)を無償で提供しており、ADC(Apple Developer Connection)のOnline Membershipに登録することで誰でもダウンロードすることができる。 ADC Online Membership (無料) なお、有料会員のADC Select Membership(US $499)もしくはADC Premier Membership(US $3499)に登録すると、Max OS Xの最新ビルドをダウンロードすることもできる。 1.2 Xcode for Mac-only Developmentからダウンロードし、インストール Xcode 3.2.1 (for 10.6) (2010/1/1現在) Xcode 3.2.2 (above 10.6.2) and iPhone SDK 3.2 (2010/04/03 公開、2010/04/22 ビルド時にハングアップする不具合を修正) *Leopard(10.5)ではXcode 3.2.Xではなく、Xcode 3.1.Xをダウンロードする。 Xcode 3.1.3 (for 10.5) (2010/1/1現在) ■2.ビルドツールのソースをダウンロード 2.1 ビルドに必要となるツールのソースをダウンロード $ mkdir -p ~/Desktop/Dev$ cd ~/Desktop/Dev$ curl -s -O http //www.opensource.apple.com/tarballs/cxxfilt/cxxfilt-9.tar.gz$ curl -s -O http //www.opensource.apple.com/tarballs/dtrace/dtrace-78.tar.gz$ curl -s -O http //www.opensource.apple.com/tarballs/kext_tools/kext_tools-177.1.tar.gz$ curl -s -O http //www.opensource.apple.com/tarballs/bootstrap_cmds/bootstrap_cmds-72.tar.gz *curlコマンドはwgetに相当するコマンドラインのファイルダウンロードツール ■3. ツールを解凍 $ tar zxf cxxfilt-9.tar.gz$ tar zxf dtrace-78.tar.gz$ tar zxf kext_tools-177.1.tar.gz$ tar zxf bootstrap_cmds-72.tar.gz ■4.カーネルビルド用のツールをビルド 4.1 cxxfiltをビルドし、/usr/localにコピー $ cd cxxfilt-9$ mkdir -p obj sym dst$ make install RC_ARCHS="i386 x86_64" RC_CFLAGS="-arch i386 -arch x86_64 -pipe" RC_OS=macos RC_RELEASE=SnowLeopard SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst$ sudo ditto $PWD/dst/usr/local /usr/localPassword $ cd .. 4.2 dtraceをビルドし、/usr/localにコピー $ cd dtrace-78$ mkdir -p obj sym dst$ xcodebuild install -target ctfconvert -target ctfdump -target ctfmerge ARCHS="i386 x86_64" SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst$ sudo ditto $PWD/dst/usr/local /usr/localPassword $ cd .. 4.3 kext_toolsをビルドし、/usr/localにコピー $ cd kext_tools-177.1$ mkdir -p obj sym dst$ xcodebuild install -target kextsymboltool -target setsegname ARCHS="i386 x86_64" SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst$ sudo ditto $PWD/dst/usr/local /usr/localPassword $ cd .. 4.4 bootstraps_cmdsをビルドし、/usr/localにコピー $ cd bootstrap_cmds-72$ mkdir -p obj sym dst$ make install RC_ARCHS="i386" RC_CFLAGS="-arch i386 -pipe" RC_OS=macos RC_RELEASE=SnowLeopard SRCROOT=$PWD OBJROOT=$PWD/obj SYMROOT=$PWD/sym DSTROOT=$PWD/dst$ sudo ditto $PWD/dst/usr/local /usr/localPassword $ cd .. ■5. カーネルをビルドする 5.1 Darwin xnu(カーネルソース)をダウンロード $ curl -s -O http //www.opensource.apple.com/tarballs/xnu/xnu-1486.2.11.tar.gz 5.1 Darwin xnu(カーネルソース)を解凍 $ tar zxf xnu-1483.2.11.tar.gz 5.2 Darwin xnu(カーネルソース)をビルド $ cd xnu-1486.2.11$ make ARCH_CONFIGS="I386 X86_64" KERNEL_CONFIGS="RELEASE"$ file BUILD/obj/RELEASE_*/mach_kernelBUILD/obj/RELEASE_I386/mach_kernel Mach-O executable i386BUILD/obj/RELEASE_X86_64/mach_kernel Mach-O 64-bit executable x86_64 1. カーネルのビルド作業はCPUパワーに依存し、終了まで数分から数十分かかる。 2. ビルドしたカーネルは、32bit用はRELEASE_I386、64bit用はRELEASE_X86_64に作成される。 3. 日本語環境のターミナルでビルドすると、ビルド日付が漢字で挿入される為、アルファベットしか表示できない起動時のコンソールでは文字化けする。実用上問題ないが、気になる場合は、ビルド時のLANG環境変数をen_USに変更しておくと良い。 ・参考情報:Darwinbuild(SSEN S BLOG) 5.3 ユニバーサルバイナリに統合 $ lipo -create BUILD/obj/RELEASE_I386/mach_kernel BUILD/obj/RELEASE_X86_64/mach_kernel -output BUILD/obj/mach_kernel$ file BUILD/obj/mach_kernel BUILD/obj/mach_kernel Mach-O universal binary with 2 architecturesBUILD/obj/mach_kernel (for architecture i386) Mach-O executable i386BUILD/obj/mach_kernel (for architecture x86_64) Mach-O 64-bit executable x86_64 ・ルートディレクトリ(/)にコピーし、既存のカーネルファイル(mach_kernel)と置き換えることで有効になる。 ■応用編 1. ビルドしたカーネルの中身をデバッグする ビルドしたカーネルの中身をデバッグするため、binutils(Xcodeに含まれる)を使用しバイナリの中身を確認する。 1.1 hexdump 〜 バイナリをヘキサダンプする bash-3.2# hexdump -n 512 -C /mach_kernel00000000 ca fe ba be 00 00 00 03 01 00 00 07 00 00 00 03 |................|00000010 00 00 10 00 00 55 14 63 00 00 00 0c 00 00 00 07 |.....U.c........|00000020 00 00 00 03 00 55 30 00 00 71 88 85 00 00 00 0c |.....U0..q......|00000030 00 00 00 12 00 00 00 00 00 c6 c0 00 00 56 3b 90 |.............V;.|00000040 00 00 00 0c 00 00 00 00 00 00 00 00 00 00 00 00 |................|00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|*00000200 1.2 strings 〜 バイナリの中の文字列を表示する bash-3.2# strings /mach_kernel | head -n 10default_pagervstruct zonedefault memory manager"%s[KERNEL] %s"@/SourceCache/xnu/xnu-1486.2.11/osfmk/default_pager/default_pager.c 436"can't start backing store monitor thread"@/SourceCache/xnu/xnu-1486.2.11/osfmk/default_pager/default_pager.c 319alloc pager thread"%s[KERNEL] %s"@/SourceCache/xnu/xnu-1486.2.11/osfmk/default_pager/default_pager.c 176alloc thread buffer"%s[KERNEL] %s"@/SourceCache/xnu/xnu-1486.2.11/osfmk/default_pager/default_pager.c 180wire thread buffer 1.3 nm 〜 シンボルを表示する bash-3.2# nm -l /mach_kernel | head -n 100083eb70 D .constructors_used0083eb78 D .destructors_usedff7f8000 A _APTDfeff7fc0 A _APTDpdeff000000 A _APTmap004470a2 T _AllocateNode0021b372 T _Assert0039efb5 T _BF_decrypt0039eb6c T _BF_encrypt0039f3fe T _BF_set_key 1.3 file 〜 ファイルタイプを表示する bash-3.2# file /mach_kernel/mach_kernel Mach-O universal binary with 3 architectures/mach_kernel (for architecture x86_64) Mach-O 64-bit executable x86_64/mach_kernel (for architecture i386) Mach-O executable i386/mach_kernel (for architecture ppc) Mach-O executable ppc 1.4 otool 〜 ニーモニックを表示する bash-3.2# otool -t -v -V /mach_kernel | head -n 10/mach_kernel (__TEXT,__text) section_local_log2 00201000 pushl %ebp00201001 movl %esp,%ebp00201003 movl 0x08(%ebp),%edx00201006 xorl %eax,%eax00201008 testl %edx,%edx0020100a jne 0x002010110020100c jmp 0x00201016 2. Core i5/i7(Clarkdale/Arrandale)、AMD CPU対応のカーネルを作成する 2.1 10.6.2 カーネル(xnu-1486.2.11)にCore i5/i7/AMD CPU対応パッチをあてる ・カーネルソース(xnu-1486.2.11)にAMD CPUパッチ(32bit)を適用 $ cd ~/Desktop/Dev$ patch -p0 albizu_10.2.diff patching file xnu-1486.2.11/Makefilepatching file xnu-1486.2.11/bsd/kern/kern_mib.cpatching file xnu-1486.2.11/bsd/kern/mach_process.cpatching file xnu-1486.2.11/bsd/kern/uipc_socket.cpatching file xnu-1486.2.11/bsd/sys/msgbuf.hpatching file xnu-1486.2.11/config/version.cpatching file xnu-1486.2.11/iokit/IOKit/IOCatalogue.hpatching file xnu-1486.2.11/iokit/IOKit/IOCatalogue.h.origpatching file xnu-1486.2.11/iokit/Kernel/IOCatalogue.cpppatching file xnu-1486.2.11/iokit/Kernel/IOPlatformExpert.cpppatching file xnu-1486.2.11/iokit/Kernel/IOStartIOKit.cpppatching file xnu-1486.2.11/iokit/bsddev/IOKitBSDInit.cpppatching file xnu-1486.2.11/libkern/c++/OSKext.cpppatching file xnu-1486.2.11/libkern/c++/OSKext.cpp.origpatching file xnu-1486.2.11/osfmk/conf/files.i386patching file xnu-1486.2.11/osfmk/i386/.cpuid.c.swppatching file xnu-1486.2.11/osfmk/i386/AT386/model_dep.cpatching file xnu-1486.2.11/osfmk/i386/acpi_wakeup.spatching file xnu-1486.2.11/osfmk/i386/commpage/bcopy_sse3_64.spatching file xnu-1486.2.11/osfmk/i386/commpage/commpage.cpatching file xnu-1486.2.11/osfmk/i386/commpage/commpage.c.origpatching file xnu-1486.2.11/osfmk/i386/commpage/commpage_asm.spatching file xnu-1486.2.11/osfmk/i386/commpage/commpage_mach_absolute_time.spatching file xnu-1486.2.11/osfmk/i386/commpage/sse3emu.cpatching file xnu-1486.2.11/osfmk/i386/commpage/sse3emu.hpatching file xnu-1486.2.11/osfmk/i386/cpu_capabilities.hpatching file xnu-1486.2.11/osfmk/i386/cpu_capabilities.h.origpatching file xnu-1486.2.11/osfmk/i386/cpu_topology.cpatching file xnu-1486.2.11/osfmk/i386/cpuid.cpatching file xnu-1486.2.11/osfmk/i386/cpuid.hpatching file xnu-1486.2.11/osfmk/i386/cpuid.h.origpatching file xnu-1486.2.11/osfmk/i386/cpuid_legacy.hpatching file xnu-1486.2.11/osfmk/i386/i386_init.cpatching file xnu-1486.2.11/osfmk/i386/idt.spatching file xnu-1486.2.11/osfmk/i386/idt64.spatching file xnu-1486.2.11/osfmk/i386/lapic.cpatching file xnu-1486.2.11/osfmk/i386/pmCPU.cpatching file xnu-1486.2.11/osfmk/i386/pmCPU.c.origpatching file xnu-1486.2.11/osfmk/i386/rtclock.cpatching file xnu-1486.2.11/osfmk/i386/rtclock.c.origpatching file xnu-1486.2.11/osfmk/i386/rtclock.hpatching file xnu-1486.2.11/osfmk/i386/rtclock.h.origpatching file xnu-1486.2.11/osfmk/i386/start.spatching file xnu-1486.2.11/osfmk/i386/trap.hpatching file xnu-1486.2.11/osfmk/i386/tsc.cpatching file xnu-1486.2.11/osfmk/i386/tsc.hpatching file xnu-1486.2.11/osfmk/kern/Makefilepatching file xnu-1486.2.11/osfmk/kern/debug.cpatching file xnu-1486.2.11/osfmk/kern/voodoo_assert.hpatching file xnu-1486.2.11/pexpert/i386/pe_kprintf.c ・参考情報 LINUX忘却録 diff / patch legacy_kernelを64bitに対応させるパッチを適用(追記 2010/04/23) ・32/64bit legacy_kernel patch AnV_Qoopz_snow_leopard_xnu_rel2 It involved changing some assembly code with __LP64__ compiler check for passing 32/64 bit code (little 64bit code port). ・AnV_Qoopz_snow_leopard_xnu_rel2を適用 $ patch -p0 AnV_Qoopz_snow_leopard_xnu_rel2.diff patching file xnu-1486.2.11/Makefilepatching file xnu-1486.2.11/bsd/kern/kern_mib.cpatching file xnu-1486.2.11/bsd/kern/mach_process.cpatching file xnu-1486.2.11/bsd/kern/uipc_socket.cpatching file xnu-1486.2.11/bsd/sys/msgbuf.hpatching file xnu-1486.2.11/config/version.cpatching file xnu-1486.2.11/iokit/IOKit/IOCatalogue.hpatching file xnu-1486.2.11/iokit/Kernel/IOCatalogue.cpppatching file xnu-1486.2.11/iokit/Kernel/IOPlatformExpert.cpppatching file xnu-1486.2.11/iokit/Kernel/IOStartIOKit.cpppatching file xnu-1486.2.11/iokit/bsddev/IOKitBSDInit.cpppatching file xnu-1486.2.11/libkern/c++/OSKext.cpppatching file xnu-1486.2.11/osfmk/conf/Makefile.i386patching file xnu-1486.2.11/osfmk/conf/Makefile.ppcpatching file xnu-1486.2.11/osfmk/conf/Makefile.x86_64patching file xnu-1486.2.11/osfmk/conf/files.i386patching file xnu-1486.2.11/osfmk/conf/files.x86_64patching file xnu-1486.2.11/osfmk/i386/AT386/model_dep.cpatching file xnu-1486.2.11/osfmk/i386/acpi_wakeup.spatching file xnu-1486.2.11/osfmk/i386/commpage/bcopy_sse3_64.spatching file xnu-1486.2.11/osfmk/i386/commpage/commpage.cpatching file xnu-1486.2.11/osfmk/i386/commpage/commpage_asm.spatching file xnu-1486.2.11/osfmk/i386/commpage/commpage_mach_absolute_time.spatching file xnu-1486.2.11/osfmk/i386/commpage/sse3emu.cpatching file xnu-1486.2.11/osfmk/i386/commpage/sse3emu.hpatching file xnu-1486.2.11/osfmk/i386/cpu_capabilities.hpatching file xnu-1486.2.11/osfmk/i386/cpu_topology.cpatching file xnu-1486.2.11/osfmk/i386/cpuid.cpatching file xnu-1486.2.11/osfmk/i386/cpuid.hpatching file xnu-1486.2.11/osfmk/i386/cpuid_legacy.hpatching file xnu-1486.2.11/osfmk/i386/i386_init.cpatching file xnu-1486.2.11/osfmk/i386/idt.spatching file xnu-1486.2.11/osfmk/i386/idt64.spatching file xnu-1486.2.11/osfmk/i386/lapic.cpatching file xnu-1486.2.11/osfmk/i386/pmCPU.cpatching file xnu-1486.2.11/osfmk/i386/rtclock.cpatching file xnu-1486.2.11/osfmk/i386/rtclock.hpatching file xnu-1486.2.11/osfmk/i386/start.spatching file xnu-1486.2.11/osfmk/i386/trap.hpatching file xnu-1486.2.11/osfmk/i386/tsc.cpatching file xnu-1486.2.11/osfmk/i386/tsc.hpatching file xnu-1486.2.11/osfmk/kern/Makefilepatching file xnu-1486.2.11/osfmk/kern/debug.cpatching file xnu-1486.2.11/osfmk/kern/voodoo_assert.hpatching file xnu-1486.2.11/pexpert/i386/pe_kprintf.c 2.2 修正カーネルをビルドする $ make ARCH_CONFIGS="I386" KERNEL_CONFIGS="RELEASE"$ md5 BUILD/obj/RELEASE_I386/mach_kernelMD5 (BUILD/obj/RELEASE_I386/mach_kernel) = e64772caa6cff8e44b887fe340f48823 2.3 10.6.3 カーネル(xnu-1504.3.12)にCore i5/i7(Clarkdale/Arrandale)/AMD CPU 対応のlegacy_kernelパッチをあてる ・カーネルソース(xnu-1504.3.12) ・10.6.3 legacy kernel for INTEL/AMDパッチ Standard fixes are included, plus a few extra stuff ・Built-in kernel blacklister automatically blacklists bad kexts from loading. Therefore you don't need to use a disabler to disable it manually・bigger dmesg Which translates to a larger log file so that you can troubleshoot easily・uuid patching/fix Eliminates the need of UUID kext or specifying manually・fsb detection・cpu cache detection・reboot fix- Eliminates the need of OpenHaltRestart and fixes shutdown/reboot issue・sse3emu -SSE3 emulator for SSE2 processors . Bear in mind that most of the applications in Snow Leopard run fine with this emulator. Some things added ・some support for the new 6 core i7・For people wanting to use XCode apps, I decided to add all the CHUD kexts to the kext blacklist. This means no more kp hell when installing and dealing with the development tools. If anyone thinks this is something that shouldn't be added, let me know.Features in this specific package ・If you have SleepEnabler installed, your SleepEnabler kext will get updated. If you don't use it, don't worry about it - it won't get installed.・All of the CPUIDs in the new versions of programs from the 10.6.3 update will get patched. this means you don't need to deal with the hell regarding iTunes, etc. (The actual patcher program also gets installed (/usr/local/bin/patcher, you can run from anyware via Terminal) as well as the CPUID text file (/Library/CPUIDs/*) Though this is only important to people who love control and want to be able to run it themselves -P - this is all automated in the installer regardless. Unfortunately we still havent gotten on the fly patching working, so this is a reasonable fix for it for now.)I do make cpuid files for updates and keep them online http //nawcom.com/osx86/cpuids/ for AMD people to use regarding updates as well as a nice frontend to Maxxuss' patcher app, drag and drop a cpuid.txt file onto the app to launch it - just like Taruga's HDA Patcher. ・10.6.3 legacy kernel for INTEL/AMDパッチを適用 $ patch -p0 legacy_kernel-1504.3.12.diff patching file xnu-1504.3.12/Makefilepatching file xnu-1504.3.12/bsd/kern/kern_mib.cpatching file xnu-1504.3.12/bsd/kern/mach_process.cpatching file xnu-1504.3.12/bsd/kern/uipc_socket.cpatching file xnu-1504.3.12/bsd/sys/msgbuf.hpatching file xnu-1504.3.12/config/version.cpatching file xnu-1504.3.12/iokit/IOKit/IOCatalogue.hpatching file xnu-1504.3.12/iokit/Kernel/IOCatalogue.cpppatching file xnu-1504.3.12/iokit/Kernel/IOPlatformExpert.cpppatching file xnu-1504.3.12/iokit/Kernel/IOStartIOKit.cpppatching file xnu-1504.3.12/iokit/bsddev/IOKitBSDInit.cpppatching file xnu-1504.3.12/libkern/c++/OSKext.cpppatching file xnu-1504.3.12/osfmk/conf/files.i386patching file xnu-1504.3.12/osfmk/i386/AT386/model_dep.cpatching file xnu-1504.3.12/osfmk/i386/acpi_wakeup.spatching file xnu-1504.3.12/osfmk/i386/commpage/bcopy_sse3_64.spatching file xnu-1504.3.12/osfmk/i386/commpage/commpage.cpatching file xnu-1504.3.12/osfmk/i386/commpage/commpage_asm.spatching file xnu-1504.3.12/osfmk/i386/commpage/commpage_mach_absolute_time.spatching file xnu-1504.3.12/osfmk/i386/commpage/sse3emu.cpatching file xnu-1504.3.12/osfmk/i386/commpage/sse3emu.hpatching file xnu-1504.3.12/osfmk/i386/cpu_capabilities.hpatching file xnu-1504.3.12/osfmk/i386/cpu_topology.cpatching file xnu-1504.3.12/osfmk/i386/cpuid.cpatching file xnu-1504.3.12/osfmk/i386/cpuid.hpatching file xnu-1504.3.12/osfmk/i386/cpuid_legacy.hpatching file xnu-1504.3.12/osfmk/i386/i386_init.cpatching file xnu-1504.3.12/osfmk/i386/idt.spatching file xnu-1504.3.12/osfmk/i386/idt64.spatching file xnu-1504.3.12/osfmk/i386/lapic.cpatching file xnu-1504.3.12/osfmk/i386/pmCPU.cpatching file xnu-1504.3.12/osfmk/i386/rtclock.cpatching file xnu-1504.3.12/osfmk/i386/rtclock.hpatching file xnu-1504.3.12/osfmk/i386/start.spatching file xnu-1504.3.12/osfmk/i386/trap.hpatching file xnu-1504.3.12/osfmk/i386/tsc.cpatching file xnu-1504.3.12/osfmk/i386/tsc.hpatching file xnu-1504.3.12/osfmk/kern/Makefilepatching file xnu-1504.3.12/osfmk/kern/debug.cpatching file xnu-1504.3.12/osfmk/kern/voodoo_assert.hpatching file xnu-1504.3.12/pexpert/i386/pe_kprintf.c$ make ARCH_CONFIGS="I386" KERNEL_CONFIGS="RELEASE"$ md5 BUILD/obj/RELEASE_I386/mach_kernelMD5 (BUILD/obj/RELEASE_I386/mach_kernel) = b8a03e979040e1a5cb0bb28c0735f675 ・参考ソース 3. ユニバーサルバイナリプログラムを作成する 3.1 Hello Worldをコンパイルする $ cat hello.c #include stdio.h int main(void) { printf("Hello World!!\n"); return 0;}$ cc -o hello hello.c$ file hellohello (for architecture i386) Mach-O executable i386 3.2 ユニバーサルバイナリでコンパイルする $ cc -o hello -arch i386 -arch x86_64 hello.c $ file hellohello Mach-O universal binary with 2 architectureshello (for architecture i386) Mach-O executable i386hello (for architecture x86_64) Mach-O 64-bit executable x86_64 戻る
https://w.atwiki.jp/seisenkouryaku/pages/546.html
[部分編集] 近接 エリートカーネル レア 俺がこの国を根っこから変えてみせる! 長引いてる戦乱のおかげで、武勲を立てる機会には恵まれた。徐々にだが俺の階級は上がっていき、軍の中でも俺の名は知られるようになってきた。戦いを止めるための戦いは、もうすぐ始まる。 【戦魔制圧作戦】限定召喚 性別 必要統率力 価値(マーニ) 特殊能力 特殊能力MAX 男性 10 2780 サクシード・オース(敵のATを5%下げる) ★★★★★ 初期能力 MAX時能力 LvUP時の増加量 HP AT DF 総パラ Lv. HP AT DF 総パラ HP AT DF 1380 1320 1080 3780 50 5500 4400 3600 13500 +82 +61 +50 名前 コメント
https://w.atwiki.jp/anthony/pages/43.html
未解決の問題にあげていますが、なぜか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 これもだめ カーネル変えても変わらない
https://w.atwiki.jp/aster-infra/pages/197.html
/procディレクトリ以下のファイルを使って、カーネル情報を取得したり カーネルの動作を変更することができます。 カーネルパラメータを変更した瞬間にカーネルの動作は変更されます。 /proc/sys/kernelディレクトリ このディレクトリ配下のパラメータを使うと、パフォーマンス・チューニング以外の様々な設定も可能になる。 /proc/sys/fsディレクトリ ファイルシステム関連のチューニングパラメータが集められている。 /proc/sys/vmディレクトリ 仮想記憶(バーチャルメモリ)関連のチューニングパラメータが集められている。 /proc/sys/netディレクトリ ネットワーク関連のチューニングパラメータが格納されている。 /proc/sys/net/core配下には、ネットワーキング一般(ソケット関連) /proc/sys/net/ipv4配下には、ipv4関連のチューニングパラメータがある。 例えばkmodを利用していると、カーネルからモジュールが要求されたとき自動的に modprobeコマンドを使い必要なモジュールをロードします。 この時に参照されるmodprobeコマンドのパスは、/proc/sys/kernel/modprobeに格納されます。 下記のように変更した値は、システムの再起動するとデフォルト値に戻ってしまいます。 # echo "/sbin/modprobe" /proc/sys/kernel/modprobe sysctlコマンドを使っても、/proc/sysディレクトリ内のカーネルパラメータの設定や表示ができます。 しかし再起動すると設定が元に戻ってしまいます。 sysctl [オプション] [パラメータ] sysctl -w パラメータ=値 オプション a …現在利用できる全てのパラメータを表示 p …指定したファイルから設定を読み込む(デフォルトでは/etc/sysctl.conf) w …パラメータを更新する # sysctl net.ipv4.ip_forward net.ipv4.ip_forward=0 /proc/net/ipv4/ip_forwardを表示します。 上記のようにカーネルパラメータの指定は、/proc以下のエントリから 「/proc/sys」部分を取り除き、「/」を「.」に置き換えます。 (しかし「/」のままでも実行できます) # sysctl -w net.ipv4.ip_forward=1 IPフォーワーディングを有効にする このようにカーネルパラメータを変更しても再起動するとデフォルトに戻ってしまうため、 設定を常時有効にするためには、/etc/sysctl.confファイルに追加します。
https://w.atwiki.jp/ygo001/pages/87.html
アポクリフォート・カーネル/Apoqliphort Skybase 効果モンスター 星9/地属性/機械族/攻2900/守2500 このカードは特殊召喚できず、自分フィールドの 「クリフォート」モンスター3体をリリースした場合のみ通常召喚できる。 (1):通常召喚したこのカードは魔法・[[罠カード]]の効果を受けず、 このカードのレベルよりも元々のレベルまたはランクが低いモンスターが発動した効果も受けない。 (2):1ターンに1度、相手フィールドのモンスター1体を対象として発動できる。 そのモンスターのコントロールをエンドフェイズまで得る。 「クリフォートのボスにしてはパンチが弱く、ほぼキラーの下位互換」などと思われているカーネル閣下、 本当にその見解は正しいのだろうか?攻撃などシェルにでも任せればいい、文字通り二人分働いてくれる。高貴なモンスターにはもっと重要な仕事があるのだ・・・・・。 唐突だがゲームの意義とは何だろう? 思うにゲームとは楽しんでこそ価値があるもので、中でも卓上のゲームは頭脳を使うことが至上の楽しみだ。 はっきり言おう。このクリフォートというデッキ、ほとんど頭を使わないのだ。 サーチとドロー加速を駆使してツールを引いたが最後、プレイヤーは涎を垂らしながらP召喚とアドバンス召喚を繰り返す廃人と化す。 P効果によって特殊召喚が大きく制限されているため、「どのSモンスターを出そうかな、それともXモンスターにした方がいいかな・・・・」といった思案も無い。 そこでカーネル閣下の登場である。閣下の鮮やかな政治手腕で昨今の難解な効果モンスターを相手から拝借し、その効果を試行錯誤して楽しむことができる。 この効果を使えば日々劣化していくクリフォート使いの脳細胞も、見違えるほど再生することだろう。 単調なクリフォートに頭脳戦の快感を与えるTCGの伝道師、それがアポクリフォート・カーネルの仕事である。 (ちなみに攻撃力を変化させるクリフォートもいるので閣下は3000ラインのモンスターをたやすく殴り倒せる。戦闘面に何の不満があろうか?) 9スレ目 870:名無しプレイヤー@手札いっぱい。投稿日:2015/01/20(火) 11 22 04.28 ID HK9BvQo80 唐突なクリフォート使いディスにワロタカーネルはキラーよりレアリティが高いのもネタ要素の一つだろうな 感想 名前 コメント
https://w.atwiki.jp/sevenlives/pages/50.html
カーネル【kernel】 読み:かーねる 英語:kernel 意味: カーネルとはOSの中核部分、ファイルの基本プロセスの管理や入出力などの処理を行う部分のこと。 車で言えばエンジンのような根幹部分として喩えられます。 2012年02月18日; OS プリエンプション モノリシック・カーネル? マイクロ・カーネル?
https://w.atwiki.jp/uhyozatsu/pages/74.html
カーネル・サンダース 【説明】 ①ケンタッキーフライドチキンの創業者 ②安仁屋投手コーチの別名。由来は、広島での試合で厳しい内角攻めにあったT・ウッズ(中日)が憤慨して 「カーネルサンダー、カモーン!!」と叫んだという話(達川光男氏談)から。 類義語:サンタ
https://w.atwiki.jp/tanosiiorika/pages/513.html
アクア・カーネル UC 水 3 クリーチャー:リキット・ピープル 1000 ■自分のクリーチャーが攻撃する時,それがこのターンで始めての攻撃ならば,そのクリーチャーはブロックされない。 「テラ・ジェネレーション」の有する巨大兵器は,彼の指揮あってこそ輝くのだ。 作者:かみど 狙った1体をアンブロッカルに,昔懐かしいターボラッシュとかと組み合わせるのも良し。 収録:機界編(マシーナ・ワールド) 名前 コメント
https://w.atwiki.jp/code_matome/pages/25.html
ftraceを有効にするため、下記のカーネルコンフィグを有効にします。 Kernel hacking --- [*] Tracers --- [*] Kernel Function Tracer [*] Trace syscalls 【ftrace有効か確認】→【カーネルコンフィグ】→【カーネルコンパイル、インストール】→【確認】 【ftrace有効か確認】 ・debugfsをマウント。 # mount -t debugfs nodev /sys/kernel/debug ・ftraceが有効か確認。※functionが入っていないとftrace無効。 # cat /sys/kernel/debug/tracing/available_tracers blk kmemtrace wakeup_rt wakeup sysprof sched_switch initcall nop 【カーネルコンフィグ】 ・ソースダウンロード # wget ftp //ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.gz ・展開 # tar zxvf linux-2.6.38.tar.gz ・移動 # cd linux-2.6.38 ・現在のkernelバージョン確認 # uname -a Linux localhost.localdomain 2.6.32-358.el6.i686 #1 SMP Thu Feb 21 21 50 49 UTC 2013 i686 i686 i386 GNU/Linux ・現在のkernelコンフィグを確認。 # cat /usr/src/kernels/2.6.32-358.el6.i686/.config | egrep "TRACE|hacking" ・ftraceを有効にするには↓がsetされる必要がる? ---省略--- # Kernel hacking # CONFIG_FUNCTION_TRACER is not set ---省略--- ・kernelソース初期化 # make mrproper ・古いコンフィグでmake(とりあえず全部デフォルトのままにした) # cp -p /usr/src/kernels/2.6.32-358.el6.i686/.config .config # make oldconfig ・新しいコンフィグの設定(1) # make menuconfig ※ncurses-develが必要なので、無かったらインストールする。 *** Install ncurses (ncurses-devel) and try again. *** make[1] *** [scripts/kconfig/dochecklxdialog] Error 1 make *** [menuconfig] Error 2 # yum install ncurses-devel ・新しいコンフィグの設定(2) カーソルキーとスペースキーを駆使して下記を有効にする。 Kernel hacking --- [*] Tracers --- [*] Kernel Function Tracer [*] Trace syscalls ・新しいkernelコンフィグを確認。 # cat .config | egrep "TRACE|hacking" ・ftrace関係がyになった ---省略--- # Kernel hacking CONFIG_FTRACE=y CONFIG_FUNCTION_TRACER=y CONFIG_FUNCTION_GRAPH_TRACER=y ---省略--- 【カーネルコンパイル、インストール】 ・カーネルイメージを作成。 # make bzImage ・コンパイル&インストール。 # make modules # make modules_install # make install ・/boot/grub/grub.confの変更 2.6.38がgrub.confに追加されているので、デフォルトになるように書き換える。 # vi/boot/grub/grub.conf ---- default=0 #default=1←コメントアウト ---- ・リブートする # reboot 【確認】 ・現在のkernelバージョン確認 # uname -a Linux localhost.localdomain 2.6.38 #3 SMP Sat Feb 15 01 21 35 PST 2014 i686 i686 i386 GNU/Linux ・ftraceが有効か確認。※functionが入っていないとftrace無効。 # mount -t debugfs nodev /sys/kernel/debug # cat /sys/kernel/debug/tracing/available_tracers blk function_graph wakeup_rt wakeup function sched_switch nop ------------------------------- 参考HP http //d.hatena.ne.jp/eco31/20110111/1294673589
https://w.atwiki.jp/nanocoding/pages/59.html
実習Linuxカーネル―理論と実習 カーネルを効率的に理解するための実習書 デーモン君のソース探検―BSDのソースコードを探る冒険者たちのための手引き書 showrss プラグインエラー RSSが見つからないか、接続エラーです。 showrss プラグインエラー RSSが見つからないか、接続エラーです。 showrss プラグインエラー RSSが見つからないか、接続エラーです。 #ref_list