logo

blog

My website can't be that messy, right? git clone https://hacktivis.me/git/blog.git

Laptop au matériel et logiciels libre.shtml (7940B)


  1. <!DOCTYPE html>
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <!--#include file="/templates/head.shtml" -->
  5. <title>Open-Source Software and Hardware Laptop — lanodan’s cyber-home</title>
  6. </head>
  7. <body>
  8. <!--#include file="/templates/en/nav.shtml" -->
  9. <main>
  10. <h1>Open-Source Software and Hardware Laptop</h1>
  11. <p>Je regardais le <a href="http://www.kosagi.com/w/index.php?title=Novena_Main_Page">novena</a>(lui aussi libre), mais qui est trop puissant pour moi maintenant(peut-être pour plus tard). Et trop exotique(je veut pouvoir l’utiliser partout). Quelques pixels viennent avec du matos olimex au hackerspace(un LIME/LIME2 je pense). Et quand mon laptop(bulkeps) récup de 2003/2005 est devenu vraiment lent(469 MB de mémoire vive, presque pas de 3D au moins le FullHD fonctionnait o_O). J’ai donc penser à me faire mon propre laptop avec des pièces venant de olimex(gros merci ;3). J’ai commandé quelques pièces et vut un project de laptop sur le blog de olimex.</p>
  12. <p>Si je devait le refaire, je prendrais des plans de boitier de laptop et l’adapterais à la carte, ça me ferais plus de place dedans et donc mieux disposer les pièces.</p>
  13. <h2 id="parts">Pièces</h2>
  14. <ul>
  15. <li>Boitier d’un autre laptop</li>
  16. <li>OLIMEX<ul>
  17. <li>A20-OLinuXino-LIME2-4G</li>
  18. <li>A20-OLinuXino-LIME2-UEXT</li>
  19. <li>SATA-CABLE-SET (le cable de donnée est trop court de quelques cm pour moi, j’en ait pris un dans mon stock)</li>
  20. <li>MOD-RTC</li>
  21. <li>MOD-SDMMC (CA-IDC-10-15CM inclus)</li>
  22. <li>PWR-CABLE(utilisé pour faire un cable d’alim USB)</li>
  23. <li>CABLE-40-40-10CM [×2](A20-OLinuXino-LIME2-UEXT &amp; LCD-OLinuXino-15.6FHD)</li>
  24. <li>CA-IDC-10-15CM (utilisé pour le MOD-RTC)</li>
  25. <li>BA-LIPO-3.7V/6600mAh-W-CA [×2] Une seule dure ~5h avec tout à fond (Compil’) et mon HDD gourmand</li>
  26. <li>USB-SERIAL-F (très utile pour u-boot et avoir un shell)</li>
  27. <li>UEXTx5 (pas encore utilisé)</li>
  28. </ul></li>
  29. <li>ancien connecteur VGA (J’ai désoudé celui de bulkeps, H_SYNC et V_SYNC devront être pris de LCD_CON ou bricolé)</li>
  30. </ul>
  31. <h2 id="building_hard">Construction Matérielle</h2>
  32. <p>J’ai trouvé assez de place en hauteur à la sortie ventilo(la carte chauffe presque pas de toute façon) j’ai donc dégagé la sortie pour les connectiques, couteau pour la « grille », décapeur thermique(un sèche cheveux serait mieux) pour ramolir le plastique du capot/couvercle.</p>
  33. <h2 id="building_soft">Construction Logicielle</h2>
  34. <p><span class="warn">⚠ This doesn’t works ⚠</span> I take a working one from <a href="http://www.armbian.com/olimex-lime-2/">armbian images</a>, anyway, you need:</p>
  35. <ul>
  36. <li>Brain, with linux knowledge (Your machine probably doesn’t have one, use your own)</li>
  37. <li>An A20-OLinuXino (or other board with an allwinner CPU, I use LIME2-4G)</li>
  38. <li>(recommended) Serial/UART adapter</li>
  39. </ul>
  40. <h3>sunxi u-boot &amp; kernel</h3>
  41. <p>I use gentoo so I only have to make u-boot, kernel, put armv7a /armhf stage3. I mainly follow olimex A20-build(found upper).</p>
  42. <pre><code>$ export ARCH=arm
  43. $ export CROSS_COMPILE=arm-linux-gnueabihf-</code></pre>
  44. <h4>u-boot</h4>
  45. <code>$ git clone -b sunxi https://github.com/linux-sunxi/u-boot-sunxi.git ; cd u-boot-sunxi</code>
  46. <p>If you have a LIME2 board : <code>$ make A20-OLinuXino_Lime2_config</code> otherwise type <code>$ make help</code> and hope to find your board in a _config target.</p>
  47. <code>$ make</code> Tip: add <code>-j6</code> if you have 4 cores, <code>-j3</code> if dual. Note: u-boot.bin for flash is u-boot-sunxi-with-spl.bin
  48. <h4>Kernel</h4>
  49. <pre><code>$ export INSTALL_MOD_PATH=out
  50. $ git clone https://github.com/linux-sunxi/linux-sunxi ; cd linux-sunxi
  51. $ wget https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build/spi-sun7i.c -O drivers/spi/spi-sun7i.c
  52. $ wget https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build/SPI.patch
  53. $ patch -p0 &lt; SPI.patch
  54. $ wget https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build/a20_olimex_defconfig -O arch/arm/configs/a20_olimex_defconfig
  55. $ make a20_olimex_defconfig
  56. </code></pre>
  57. <p>If you want to configure it more: <code>$ make menuconfig</code></p>
  58. <pre><code>$ make uImage modules
  59. $ make modules_install</code></pre>
  60. <quote>“The uImage file is located in arch/arm/boot/<br />
  61. The kernel modules are located in out/lib/modules/$kernel_version”</quote> — <cite>Olimex</cite>
  62. <h3>Mainline u-boot &amp; kernel</h3>
  63. <quote>“(this needs to be written)”</quote> — <cite>netstat(8)</cite>
  64. <h3>Gentoo rootfs</h3>
  65. <h4>Partitions</h4>
  66. <p>Insert your storage device and use <code>dmesg</code> or <code>lsblk</code> to have the <code>/dev/sd*</code> or <code>/dev/mmcblk*</code> it will be noted as <code>/dev/sd×</code> and enter as ⮠(you may need to fix your font) for one-liners</p>
  67. <code># fdisk /dev/sd×</code>
  68. <ol>
  69. <li>If you have partitions on it, you can delete them with <code>d</code> and then partition number</li>
  70. <li>Create the /boot (I recommend using 16M or greater): <code>n⮠p⮠1⮠⮠+16M⮠</code></li>
  71. <li>Put the bootable flag(apparently not mandatory): <code>a</code></li>
  72. <li>Create the / (I generaly use everything or about 4~&gt;16G if I got a big device): <code>n⮠p⮠2⮠⮠⮠</code></li>
  73. <li>Verify everything is okay with <code>p</code></li>
  74. <li><code>w</code> to write.</li>
  75. </ol>
  76. <code># mkfs.vfat /dev/sd×1</code> Gentoo package for it <code>dosfstools</code>
  77. <code># mkfs.ext4 /dev/sd×2</code>
  78. <h4>Time to flash !</h4>
  79. <code>dd if=u-boot.bin of=/dev/sd× bs=1024 seek=8</code><p>Note: use sd× not sd×1 or sd×2 as it’s before then (which is probably why there is a 2048 space before them)</p>
  80. <pre><code># mkdir /mnt/sd
  81. # mount /dev/sd×2 /mnt/sd</code></pre>
  82. <p>Put basic rootfs(/mnt/sd/boot is needed) I take gentoo’s stage3 for armv7hf</p>
  83. <pre><code># mount /dev/sdX1 /mnt/sd/boot
  84. # cd /mnt/sd/boot
  85. # cp linux-sunxi/arch/arm/boot/uImage .
  86. # wget https://github.com/OLIMEX/OLINUXINO/raw/master/SOFTWARE/A20/A20-build/scripts_a20_Lime2_34_90_camera_rel_2/script.bin
  87. # cd ~/linux-sunxi
  88. # rm -fr /mnt/sd/lib/modules
  89. # cp -rfv out/lib/modules /mnt/sd/lib/
  90. # cp -rfv out/lib/firmware /mnt/sd/lib/
  91. # sync
  92. # umount /mnt/sd/boot
  93. # umount /mnt/sd</code></pre>
  94. <section id="External_links">
  95. <h2>External links</h2>
  96. <ul>
  97. <li><a href="https://mensuel.framapad.org/p/MakingAnOSHWLaptop">Etherpad</a> (<a href="/p-MakingAnOSHWLaptop">backup</a>)</li>
  98. <li>GnuSocial :<a href="https://loadaverage.org/tag/MakingAnOSHWLaptop">#MakingAnOSHWLaptop</a></li>
  99. <li>Sources<ul>
  100. <li>U-boot<ul>
  101. <li><a href="//git.denx.de/u-boot.git">Mainline</a></li>
  102. <li><a href="https://github.com/linux-sunxi/u-boot-sunxi.git">Sunxi</a></li>
  103. </ul></li>
  104. <li>Kernel<ul>
  105. <li><a href="https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git">Mainline</a></li>
  106. <li><a href="https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/log/?h=linux-4.1.y">4.1 stable</a></li>
  107. <li><a href="https://github.com/linux-sunxi/linux-sunxi.git">Sunxi</a></li>
  108. </ul></li>
  109. </ul></li>
  110. <li>Documentation<ul>
  111. <li><a href="https://linux-sunxi.org/SATA">https://linux-sunxi.org/SATA</a> (to get more performance)</li>
  112. <li>Olimex<ul>
  113. <li><a href="https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build">Build instruction, scripts and more</a></li>
  114. <li><a href="https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-OLinuXino-Micro%20with%20MOD-RTC">C program for MOD-RTC</a></li>
  115. </ul></li>
  116. <li><a href="https://wiki.tizen.org/wiki/Sunxi">Tizen</a></li>
  117. </ul></li>
  118. </ul>
  119. </section>
  120. </main>
  121. <!--#include file="/templates/en/footer.shtml" -->
  122. </body>
  123. </html>