{"id":22,"date":"2017-10-17T11:59:53","date_gmt":"2017-10-17T16:59:53","guid":{"rendered":"http:\/\/blogs.gentoo.org\/chrisadr\/?p=22"},"modified":"2019-11-01T03:35:28","modified_gmt":"2019-11-01T08:35:28","slug":"gentoo-sources-como-armar-tu-kernel-sin-morir-en-el-intento","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/chrisadr\/2017\/10\/17\/gentoo-sources-como-armar-tu-kernel-sin-morir-en-el-intento\/","title":{"rendered":"Gentoo-sources: C\u00f3mo armar tu kernel sin morir en el intento"},"content":{"rendered":"<p>Bueno, este es uno\u00a0m\u00e1s de esos puntos que no puedo pasar por alto antes de comenzar la gu\u00eda de instalaci\u00f3n de Gentoo :) s\u00e9 que ya muchos estar\u00e1n esperando con ansias este post, y perd\u00f3n por hacerlos esperar, pero tambi\u00e9n considero que no explicar esto atenta contra mi status de usuario Gentoo :P Sin m\u00e1s que mencionar, comencemos.<\/p>\n<h3>\u00bfQu\u00e9 es el kernel?<\/h3>\n<p>El kernel es propiamente la parte Linux de toda distribuci\u00f3n, es el programa que nos permite comunicar cada pieza de hardware de nuestro equipo con los programas que corremos en \u00e9l. Su creador, Linus Torvalds, decidi\u00f3 liberarlo bajo la licencia GPL y gracias a \u00e9l, y al proyecto GNU, podemos disfrutar hoy en d\u00eda de tantas distribuciones y variedades para elegir. Est\u00e1 escrito en C en su mayor\u00eda, con un poco de Assembly por aqu\u00ed y por all\u00e1, y hoy por hoy es el proyecto m\u00e1s grande de software libre, con miles de desarrolladores trabajando en \u00e9l, tanto por hobby como profesionalmente, y mantiene una l\u00ednea constante de crecimiento acelerado desde hace ya varios a\u00f1os. Aqu\u00ed les dejo la <a href=\"https:\/\/www.kernel.org\/\">p\u00e1gina oficial del kernel <\/a>para que puedan dar un vistazo en profundidad.<\/p>\n<h3>\u00bfC\u00f3mo se encuentra en Gentoo?<\/h3>\n<p>Bueno, como es de esperarse en Gentoo, existen muchas opciones de kernel, les dejo aqu\u00ed una peque\u00f1a lista para que vean mejor a lo que me refiero:<\/p>\n<ul>\n<li><strong>gentoo-sources<\/strong>: Kernel 4.12 con parches especiales para Gentoo Linux.<\/li>\n<li><strong>git-sources<\/strong>: Kernel directamente descargado desde el repositorio Git de Linus.<\/li>\n<li><strong>vanilla-sources<\/strong>: Kernel completo sin ning\u00fan tipo de parche.<\/li>\n<li><strong>xbox-sources<\/strong>: Kernel completo para Xbox Linux.<\/li>\n<li><strong>zen-sources<\/strong>: El kernel vivo de Zen<\/li>\n<li>&#8230;<\/li>\n<\/ul>\n<p>Para una lista completa les dejo el <a href=\"https:\/\/packages.gentoo.org\/categories\/sys-kernel\">link del wiki<\/a> donde pueden encontrar todos los kernel que mantiene Gentoo en sus repositorios.(todo lo que termina con <em>-sources<\/em>)<\/p>\n<h3>Tengo el c\u00f3digo, \u00bfahora qu\u00e9?<\/h3>\n<p>Bueno, a diferencia de todos los dem\u00e1s paquetes de Linux, el kernel <strong>NO<\/strong> se actualiza, se instala. Esto nos permite tener m\u00faltiples kernel en nuestro sistema al mismo tiempo, claro que siempre se podr\u00e1 correr solamente uno a la vez. Para poder compilarlo es necesario usar las herramientas que ya hemos discutido en un post anterior. Pero como en Gentoo la comunidad hace el 80% de tu trabajo, vamos a hacer la forma m\u00e1s sencilla ;)<\/p>\n<h3>genkernel-next:<\/h3>\n<p>Perm\u00edtanme presentarles una herramienta que es simplemente estupenda :) se llama genkernel-next, la pueden encontrar en los repositorios de Gentoo.<\/p>\n<figure id=\"attachment_77140\" aria-describedby=\"caption-attachment-77140\" style=\"width: 657px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_014.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77140\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_014.bmp\" alt=\"\" width=\"657\" height=\"976\" \/><\/a><figcaption id=\"caption-attachment-77140\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<p>La lista de opciones es a\u00fan m\u00e1s grande, pero aqu\u00ed se pueden ver algunas de mis opciones favoritas. Uno de los pasos m\u00e1s importantes al momento de instalar Gentoo es la\u00a0<em>configuraci\u00f3n<\/em> de tu kernel, esto te permitir\u00e1 sacar el m\u00e1ximo potencial a tu computadora y al mismo tiempo evitar todo aquel peso extra que tienen muchos kernel pre-compilados.<\/p>\n<h3>CLI y GUI:<\/h3>\n<p>Como es de esperarse, la configuraci\u00f3n del kernel tambi\u00e9n tiene varias formas de realizarse :) elecciones por todos lados, simplemente impresionante. Aqu\u00ed les dejo algunas de las fotos de c\u00f3mo se ven las opciones:<\/p>\n<h4>genkernel &#8211;xconfig all<\/h4>\n<figure id=\"attachment_77141\" aria-describedby=\"caption-attachment-77141\" style=\"width: 1442px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" class=\"size-full wp-image-77141\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_015.bmp\" alt=\"\" width=\"1442\" height=\"789\" \/><figcaption id=\"caption-attachment-77141\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<h4>genkernel &#8211;qconfig all<\/h4>\n<figure id=\"attachment_77142\" aria-describedby=\"caption-attachment-77142\" style=\"width: 642px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_016.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77142\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_016.bmp\" alt=\"\" width=\"642\" height=\"520\" \/><\/a><figcaption id=\"caption-attachment-77142\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<h4>genkernel &#8211;nconfig all<\/h4>\n<figure id=\"attachment_77143\" aria-describedby=\"caption-attachment-77143\" style=\"width: 736px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_017.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77143\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_017.bmp\" alt=\"\" width=\"736\" height=\"500\" \/><\/a><figcaption id=\"caption-attachment-77143\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<h4>genkernel &#8211;menuconfig all (mi favorito)<\/h4>\n<figure id=\"attachment_77144\" aria-describedby=\"caption-attachment-77144\" style=\"width: 736px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_018.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77144\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_018.bmp\" alt=\"\" width=\"736\" height=\"500\" \/><\/a><figcaption id=\"caption-attachment-77144\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<h3>Estupendo, pero \u00bfc\u00f3mo encuentro las cosas?<\/h3>\n<p>Una sabia pregunta que todos seguro se est\u00e1n haciendo ahora mismo. Si no deseas tener que buscar l\u00ednea por l\u00ednea, recuerda que &#8220;<strong>\/&#8221;<\/strong>\u00a0y &#8220;<strong>?&#8221; <\/strong>son tus amigos en esta misi\u00f3n. Pero como es mejor ver que leer, les muestro a lo que me refiero con esto.<\/p>\n<p>Supongamos que necesitamos revisar nuestro procesador, el kernel soporta tanto intel como amd, y el nuestro es intel. Si presionames \/ (slash), nos llevar\u00e1 al siguiente men\u00fa:<\/p>\n<figure id=\"attachment_77145\" aria-describedby=\"caption-attachment-77145\" style=\"width: 737px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_020.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77145\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_020.bmp\" alt=\"\" width=\"737\" height=\"501\" \/><\/a><figcaption id=\"caption-attachment-77145\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<p>Genial, ahora veamos la magia en acci\u00f3n :)<\/p>\n<figure id=\"attachment_77146\" aria-describedby=\"caption-attachment-77146\" style=\"width: 736px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_021.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77146\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_021.bmp\" alt=\"\" width=\"736\" height=\"969\" \/><\/a><figcaption id=\"caption-attachment-77146\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<p>\u00a1Estupendo! Ahora tenemos una lista desplegable con toda la informaci\u00f3n que podemos necesitar, el nombre t\u00e9cnico del m\u00f3dulo, la ruta, el tipo de valor, etc. Y ahora la pregunta&#8230; \u00bfc\u00f3mo llego a la ubicaci\u00f3n? \u00a1Tambi\u00e9n muy sencillo! si nos fijamos en la parte izquierda, tenemos n\u00fameros dentro de par\u00e9ntesis. Presiona uno de ellos y ver\u00e1s la magia ocurrir nuevamente.<\/p>\n<figure id=\"attachment_77147\" aria-describedby=\"caption-attachment-77147\" style=\"width: 735px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_022.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77147\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_022.bmp\" alt=\"\" width=\"735\" height=\"571\" \/><\/a><figcaption id=\"caption-attachment-77147\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<p>\u00a1Tan r\u00e1pido como esto! Ya estamos en la ubicaci\u00f3n que necesitamos. Pero&#8230; espera, yo te dije que <strong>?\u00a0<\/strong>es tu amigo, \u00bflo recuerdas? Pues veamos qu\u00e9 sucede si apretamos ? justo ahora.<\/p>\n<figure id=\"attachment_77148\" aria-describedby=\"caption-attachment-77148\" style=\"width: 737px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_023.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77148\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_023.bmp\" alt=\"\" width=\"737\" height=\"607\" \/><\/a><figcaption id=\"caption-attachment-77148\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<p>Una peque\u00f1a descripci\u00f3n del m\u00f3dulo, sus opciones y dependencias :) todo al alcance de tu mano. Una vez terminada tu b\u00fasqueda, puedes dar a exit. Podr\u00e1s notar que la barra superior ha retrocedido a la l\u00ednea Search (intel), si vuelves a dar exit, te regresar\u00e1 al men\u00fa principal donde podr\u00e1s comenzar una nueva b\u00fasqueda.<\/p>\n<h3>\u00bfQu\u00e9 mover y qu\u00e9 no?<\/h3>\n<p>En este punto ya debes sentirte totalmente poderoso, porque has conseguido algo que pocos humanos hacen en su vida, compilar un kernel. \u00a1Felicitaciones! Pero ahora surge la pregunta&#8230; \u00bfqu\u00e9 debo modificar? Eso mi amigo, es algo que solo t\u00fa puedes descubrir, pero por supuesto que yo te puedo dar un par de recomendaciones que a m\u00ed me ayudan mucho:<\/p>\n<h4>El default funciona<\/h4>\n<p>Como en todo programa, Linux est\u00e1 configurado para funcionar con las configuraciones por defecto. Esto te garantiza que incluso si no deseas configurar nada, al momento de compilar vas a tener un kernel funcional.<\/p>\n<h4>Si no lo conoces, no lo muevas<\/h4>\n<p>Esto es algo que tal vez los m\u00e1s aventureros pasar\u00e1n por alto. Es genial poder navegar de manera r\u00e1pida por las opciones, pero si te interesa conocer realmente c\u00f3mo piensa tu m\u00e1quina, una lectura de cada opci\u00f3n es una forma estupenda de hacerte a la idea. Siempre recordando lo que cambias y buscando o comparando con un navegador es bastante recomendable tambi\u00e9n.<\/p>\n<h4>El mayor peso est\u00e1 en los drivers<\/h4>\n<p>Muchos drivers vienen cargados por defecto, esto hace al kernel pesado. Por ejemplo, solo para tarjetas de red, existen como 10 drivers oficiales en el kernel, y muchas distribuciones compilan los 10, o m\u00e1s, pero en realidad tu en tu computadora solo usar\u00e1s uno (ojo que para wifi hay otra secci\u00f3n aparte). Si deseas disminuir el peso de tu kernel de forma considerable, tu primer opci\u00f3n est\u00e1 ah\u00ed. Para esto, tus mejores amigos ser\u00e1n\u00a0<em>lspci, lsusb,\u00a0<\/em>y\u00a0<em>Google<\/em>. Con esto podr\u00e1s tener una idea bastante clara de lo que tiene tu sistema y solo dejar los drivers necesarios para hacerlo funcionar. Por ejemplo les dejo mi output de lspci:<\/p>\n<figure id=\"attachment_77149\" aria-describedby=\"caption-attachment-77149\" style=\"width: 958px\" class=\"wp-caption aligncenter\"><a href=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_024.bmp\"><img loading=\"lazy\" class=\"size-full wp-image-77149\" src=\"https:\/\/blog.desdelinux.net\/wp-content\/uploads\/2017\/10\/Selection_024.bmp\" alt=\"\" width=\"958\" height=\"378\" \/><\/a><figcaption id=\"caption-attachment-77149\" class=\"wp-caption-text\">Dise\u00f1o propio. Christopher D\u00edaz Riveros<\/figcaption><\/figure>\n<p>Con esto puedo tener bastante claro informaci\u00f3n cr\u00edtica, como mi controlador de red, el de wifi, mi disco duro SATA, y muchas cosas m\u00e1s que me ayudan a disminuir el peso de mi kernel.<\/p>\n<h4>Revisa bien que est\u00e9s compilando lo que es necesario con *<\/h4>\n<p>Gracias nuevamente a nuestro compa\u00f1ero\u00a0<strong>njord<\/strong>, un punto importante que olvid\u00e9 mencionar por la emoci\u00f3n :)<\/p>\n<blockquote class=\"td_quote_box td_box_center\"><p>Adem\u00e1s hay que mencionar que hay caracter\u00edsticas del kernel que conviene incluir dentro del mismo(*), y otras manejarlas como m\u00f3dulos (M). Recuerdo mi primer kernel compilado, queriendo dejar como m\u00f3dulo el soporte para reiserfs de mi root, cu\u00e1ndo en la vida iba a funcionar?!?! xD\u2026<\/p><\/blockquote>\n<p>Ciertamente, si tu kernel necesita de algo para funcionar, no puede ser un\u00a0<em>m\u00f3dulo<\/em>. Por defecto, los m\u00f3dulos cargan despu\u00e9s de que el kernel ha hecho todo el proceso de inicio. Si tu kernel necesita algo para iniciar, mejor que est\u00e9 compilado dentro &lt;Y&gt; en lugar de como m\u00f3dulo &lt;M&gt;&#8230; Lo que nos lleva al primer punto otra vez <strong>&#8220;?&#8221;<\/strong>\u00a0 es nuestro amigo ;)<\/p>\n<h3>En resumen:<\/h3>\n<p>Bueno, ahora que se han sumergido un poco en el mundo del kernel, creo que ya he cumplido con otro hito necesario para poder generar una gu\u00eda de instalaci\u00f3n de Gentoo de ~20 pasos :) pero si encuentro algo m\u00e1s por ah\u00ed, intentar\u00e9 explicar antes que solo dejar suelto en el aire.<\/p>\n<p>Saludos,<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Bueno, este es uno\u00a0m\u00e1s de esos puntos que no puedo pasar por alto antes de comenzar la gu\u00eda de instalaci\u00f3n de Gentoo :) s\u00e9 que ya muchos estar\u00e1n esperando con ansias este post, y perd\u00f3n por hacerlos esperar, pero tambi\u00e9n considero que no explicar esto atenta contra mi status de usuario Gentoo :P Sin m\u00e1s &hellip; <a href=\"https:\/\/blogs.gentoo.org\/chrisadr\/2017\/10\/17\/gentoo-sources-como-armar-tu-kernel-sin-morir-en-el-intento\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">Gentoo-sources: C\u00f3mo armar tu kernel sin morir en el intento<\/span><\/a><\/p>\n","protected":false},"author":169,"featured_media":38,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[3],"jetpack_featured_media_url":"https:\/\/blogs.gentoo.org\/chrisadr\/files\/2017\/10\/tuxgentoo.png","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/posts\/22"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/users\/169"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/comments?post=22"}],"version-history":[{"count":2,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/posts\/22\/revisions"}],"predecessor-version":[{"id":24,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/posts\/22\/revisions\/24"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/media\/38"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/media?parent=22"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/categories?post=22"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/chrisadr\/wp-json\/wp\/v2\/tags?post=22"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}