{"id":34,"date":"2016-01-15T17:43:32","date_gmt":"2016-01-15T16:43:32","guid":{"rendered":"http:\/\/blog.brunocsmartin.fr\/?p=34"},"modified":"2016-01-15T17:56:12","modified_gmt":"2016-01-15T16:56:12","slug":"compile-linux-kernel-with-a-simple-init-c","status":"publish","type":"post","link":"https:\/\/blog.brunocsmartin.fr\/index.php\/2016\/01\/15\/compile-linux-kernel-with-a-simple-init-c\/","title":{"rendered":"Compile linux kernel with a simple init.c"},"content":{"rendered":"<pre class=\"brush: plain; title: ; notranslate\" title=\"\">\r\n#!\/bin\/bash\r\n\r\nif &#x5B; ! -f linux-3.2.tar.bz2 ]; then\r\n\u00a0\u00a0 \u00a0wget http:\/\/www.kernel.org\/pub\/linux\/kernel\/v3.0\/linux-3.2.tar.bz2\r\nfi\r\n\r\nif &#x5B; ! -d linux-3.2 ]; then\r\n\u00a0\u00a0 \u00a0tar xjf linux-3.2.tar.bz2\r\nfi\r\n\r\ncd linux-3.2\r\nmake defconfig\r\nmake all\r\ncd ..\r\n\r\nif &#x5B; ! -f init.c ]; then\r\n\u00a0\u00a0 \u00a0cat &gt; init.c &lt;&lt; EOF\r\n\u00a0\u00a0 \u00a0#include &lt;stdio.h&gt;\r\n\u00a0\u00a0 \u00a0 \r\n\u00a0\u00a0 \u00a0void main() {\r\n\u00a0\u00a0 \u00a0\u00a0 printf(&quot;Hello World!\\n&quot;);\r\n\u00a0\u00a0 \u00a0\u00a0 while(1);\r\n\u00a0\u00a0 \u00a0}\r\nEOF\r\nfi\r\n\r\ngcc -static init.c -o init\r\necho init|cpio -o --format=newc &gt; initramfs\r\nqemu-system-x86_64 -kernel linux-3.2\/arch\/x86\/boot\/bzImage -initrd initramfs -serial stdio -append &quot;console=tty1&quot;\r\n\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>#!\/bin\/bash if &#x5B; ! -f linux-3.2.tar.bz2 ]; then \u00a0\u00a0 \u00a0wget http:\/\/www.kernel.org\/pub\/linux\/kernel\/v3.0\/linux-3.2.tar.bz2 fi if &#x5B; ! -d linux-3.2 ]; then \u00a0\u00a0 \u00a0tar xjf linux-3.2.tar.bz2 fi cd linux-3.2 make defconfig make all cd .. if &#x5B; ! -f init.c ]; then \u00a0\u00a0 \u00a0cat &gt; init.c &lt;&lt; EOF \u00a0\u00a0 \u00a0#include &lt;stdio.h&gt; \u00a0\u00a0 \u00a0 \u00a0\u00a0 \u00a0void main() { \u00a0\u00a0 &hellip; <a href=\"https:\/\/blog.brunocsmartin.fr\/index.php\/2016\/01\/15\/compile-linux-kernel-with-a-simple-init-c\/\" class=\"more-link\">Continuer la lecture de <span class=\"screen-reader-text\">Compile linux kernel with a simple init.c<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-34","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"_links":{"self":[{"href":"https:\/\/blog.brunocsmartin.fr\/index.php\/wp-json\/wp\/v2\/posts\/34"}],"collection":[{"href":"https:\/\/blog.brunocsmartin.fr\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.brunocsmartin.fr\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.brunocsmartin.fr\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.brunocsmartin.fr\/index.php\/wp-json\/wp\/v2\/comments?post=34"}],"version-history":[{"count":2,"href":"https:\/\/blog.brunocsmartin.fr\/index.php\/wp-json\/wp\/v2\/posts\/34\/revisions"}],"predecessor-version":[{"id":36,"href":"https:\/\/blog.brunocsmartin.fr\/index.php\/wp-json\/wp\/v2\/posts\/34\/revisions\/36"}],"wp:attachment":[{"href":"https:\/\/blog.brunocsmartin.fr\/index.php\/wp-json\/wp\/v2\/media?parent=34"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.brunocsmartin.fr\/index.php\/wp-json\/wp\/v2\/categories?post=34"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.brunocsmartin.fr\/index.php\/wp-json\/wp\/v2\/tags?post=34"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}