{"id":1052,"date":"2015-09-14T17:51:34","date_gmt":"2015-09-14T17:51:34","guid":{"rendered":"http:\/\/10sa.com\/sql_stories\/?p=1052"},"modified":"2016-09-21T14:28:10","modified_gmt":"2016-09-21T14:28:10","slug":"bcache-centos-7-1-wkernel-3-10","status":"publish","type":"post","link":"http:\/\/10sa.com\/sql_stories\/?p=1052","title":{"rendered":"Bcache, CentOS 7.1 (w\/kernel >= 3.10)"},"content":{"rendered":"<p>Bcache is not enabled by default in CentOS 7.1. However, you do not need to recompile whole kernel.<br \/>\nIt is sufficient to compile module and add it to existing kernel.<\/p>\n<pre lang=\"bash\"> \r\nyum groupinstall \"Development Tools\" -y\r\nyum install kernel-headers -y\r\n<\/pre>\n<p>Unfortunately, kernel headers do not include all you need.<br \/>\nYou have to download adequate kernel sources from the CentOS site: <a href=\"http:\/\/vault.centos.org\/7.1.1503\/os\/Source\/SPackages\/kernel-3.10.0-229.el7.src.rpm\">http:\/\/vault.centos.org\/N.N.YYMM\/os\/Source\/SPackages\/kernel-3.10.0-229.el7.src.rpm<\/a><\/p>\n<p>In my case it was kernel-3.10.0-229.el7:<\/p>\n<pre>\r\nmkdir ~\/kernel\r\ncd ~\/kernel\r\nwget \"http:\/\/vault.centos.org\/7.1.1503\/os\/Source\/SPackages\/kernel-3.10.0-229.el7.src.rpm\"\r\nrpm2cpio - < kernel-3.10.0-229.el7.src.rpm\r\n# OR\r\nrpm2cpio .\/kernel-3.10.0-327.el7.src.rpm  | cpio -idmv\r\n<\/pre>\n<p>Then, copy bcache directory from archive linux-3.10.0-229.el7.tar.xz into \/usr\/src\/kernels\/`uname -r`\/drivers\/md\/.<br \/>\nYou also need to copy files from block directory (from linux-3.10.0-229.el7.tar.xz):<br \/>\ncp linux-3.10.0-229\/block\/*.c \/usr\/src\/kernels\/3.10.0-229.11.1.el7.x86_64\/block\/<br \/>\n(I did it with Midnight Commander).<br \/>\nNow, you have to add the following lines to file \"Makefile\"<\/p>\n<pre lang=\"bash\">\r\nvi \/usr\/src\/kernels\/`uname -r`\/drivers\/md\/bcache\/Makefile\r\n# set object type (\"m\" as module\")\r\nobj-m   += bcache.o\r\n# add these instructions\r\nall:\r\n        make -C \/lib\/modules\/$(shell uname -r)\/build M=$(PWD) modules\r\nclean:  \r\n        make -C \/lib\/modules\/$(shell uname -r)\/build M=$(PWD) clean\r\n<\/pre>\n<pre lang=\"bash\">\r\ncd \/usr\/src\/kernels\/`uname -r`\/drivers\/md\/bcache\/\r\nmake\r\nmkdir -p \/usr\/src\/kernels\/`uname -r`\/drivers\/md\/bcache\/\r\ncp .\/bcache.ko \/usr\/src\/kernels\/`uname -r`\/drivers\/md\/bcache\/\r\n# or\r\ncp \/kernel\/linux-3.10.0-327.el7\/drivers\/md\/bcache\/bcache.ko \/lib\/modules\/3.10.0-327.36.1.el7.x86_64\/kernel\/drivers\/md\/\r\ndepmod -A\r\n[root@db7 home]# modinfo bcache\r\nfilename:       \/lib\/modules\/3.10.0-229.11.1.el7.x86_64\/kernel\/drivers\/md\/bcache\/bcache.ko\r\nauthor:         Kent Overstreet <kent.overstreet@gmail.com>\r\nlicense:        GPL\r\nlicense:        GPL\r\nauthor:         Kent Overstreet <koverstreet@google.com>\r\nrhelversion:    7.1\r\nsrcversion:     744AC1548F61C54B1445EF6\r\ndepends:        \r\nvermagic:       3.10.0-229.11.1.el7.x86_64 SMP mod_unload modversions \r\n\r\n# Voila.\r\n<\/pre>\n<p>In case you are not able to compile only module you can compile the whole kernel (using .config of the existing kernel) and copy only bcache.ko file.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bcache is not enabled by default in CentOS 7.1. However, you do not need to recompile whole kernel. It is sufficient to compile module and add it to existing kernel. yum groupinstall &#8220;Development Tools&#8221; -y yum install kernel-headers -y Unfortunately, kernel headers do not include all you need. You have to download adequate kernel sources [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[19,18],"tags":[],"_links":{"self":[{"href":"http:\/\/10sa.com\/sql_stories\/index.php?rest_route=\/wp\/v2\/posts\/1052"}],"collection":[{"href":"http:\/\/10sa.com\/sql_stories\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/10sa.com\/sql_stories\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/10sa.com\/sql_stories\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/10sa.com\/sql_stories\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1052"}],"version-history":[{"count":11,"href":"http:\/\/10sa.com\/sql_stories\/index.php?rest_route=\/wp\/v2\/posts\/1052\/revisions"}],"predecessor-version":[{"id":1212,"href":"http:\/\/10sa.com\/sql_stories\/index.php?rest_route=\/wp\/v2\/posts\/1052\/revisions\/1212"}],"wp:attachment":[{"href":"http:\/\/10sa.com\/sql_stories\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/10sa.com\/sql_stories\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1052"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/10sa.com\/sql_stories\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}