Laptop au matériel et logiciels libre.shtml (7940B)
- <!DOCTYPE html>
- <html xmlns="http://www.w3.org/1999/xhtml">
- <head>
- <!--#include file="/templates/head.shtml" -->
- <title>Open-Source Software and Hardware Laptop — lanodan’s cyber-home</title>
- </head>
- <body>
- <!--#include file="/templates/en/nav.shtml" -->
- <main>
- <h1>Open-Source Software and Hardware Laptop</h1>
- <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>
- <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>
- <h2 id="parts">Pièces</h2>
- <ul>
- <li>Boitier d’un autre laptop</li>
- <li>OLIMEX<ul>
- <li>A20-OLinuXino-LIME2-4G</li>
- <li>A20-OLinuXino-LIME2-UEXT</li>
- <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>
- <li>MOD-RTC</li>
- <li>MOD-SDMMC (CA-IDC-10-15CM inclus)</li>
- <li>PWR-CABLE(utilisé pour faire un cable d’alim USB)</li>
- <li>CABLE-40-40-10CM [×2](A20-OLinuXino-LIME2-UEXT & LCD-OLinuXino-15.6FHD)</li>
- <li>CA-IDC-10-15CM (utilisé pour le MOD-RTC)</li>
- <li>BA-LIPO-3.7V/6600mAh-W-CA [×2] Une seule dure ~5h avec tout à fond (Compil’) et mon HDD gourmand</li>
- <li>USB-SERIAL-F (très utile pour u-boot et avoir un shell)</li>
- <li>UEXTx5 (pas encore utilisé)</li>
- </ul></li>
- <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>
- </ul>
- <h2 id="building_hard">Construction Matérielle</h2>
- <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>
- <h2 id="building_soft">Construction Logicielle</h2>
- <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>
- <ul>
- <li>Brain, with linux knowledge (Your machine probably doesn’t have one, use your own)</li>
- <li>An A20-OLinuXino (or other board with an allwinner CPU, I use LIME2-4G)</li>
- <li>(recommended) Serial/UART adapter</li>
- </ul>
- <h3>sunxi u-boot & kernel</h3>
- <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>
- <pre><code>$ export ARCH=arm
- $ export CROSS_COMPILE=arm-linux-gnueabihf-</code></pre>
- <h4>u-boot</h4>
- <code>$ git clone -b sunxi https://github.com/linux-sunxi/u-boot-sunxi.git ; cd u-boot-sunxi</code>
- <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>
- <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
- <h4>Kernel</h4>
- <pre><code>$ export INSTALL_MOD_PATH=out
- $ git clone https://github.com/linux-sunxi/linux-sunxi ; cd linux-sunxi
- $ wget https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build/spi-sun7i.c -O drivers/spi/spi-sun7i.c
- $ wget https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build/SPI.patch
- $ patch -p0 < SPI.patch
- $ wget https://raw.githubusercontent.com/OLIMEX/OLINUXINO/master/SOFTWARE/A20/A20-build/a20_olimex_defconfig -O arch/arm/configs/a20_olimex_defconfig
- $ make a20_olimex_defconfig
- </code></pre>
- <p>If you want to configure it more: <code>$ make menuconfig</code></p>
- <pre><code>$ make uImage modules
- $ make modules_install</code></pre>
- <quote>“The uImage file is located in arch/arm/boot/<br />
- The kernel modules are located in out/lib/modules/$kernel_version”</quote> — <cite>Olimex</cite>
- <h3>Mainline u-boot & kernel</h3>
- <quote>“(this needs to be written)”</quote> — <cite>netstat(8)</cite>
- <h3>Gentoo rootfs</h3>
- <h4>Partitions</h4>
- <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>
- <code># fdisk /dev/sd×</code>
- <ol>
- <li>If you have partitions on it, you can delete them with <code>d</code> and then partition number</li>
- <li>Create the /boot (I recommend using 16M or greater): <code>n⮠p⮠1⮠⮠+16M⮠</code></li>
- <li>Put the bootable flag(apparently not mandatory): <code>a</code></li>
- <li>Create the / (I generaly use everything or about 4~>16G if I got a big device): <code>n⮠p⮠2⮠⮠⮠</code></li>
- <li>Verify everything is okay with <code>p</code></li>
- <li><code>w</code> to write.</li>
- </ol>
- <code># mkfs.vfat /dev/sd×1</code> Gentoo package for it <code>dosfstools</code>
- <code># mkfs.ext4 /dev/sd×2</code>
- <h4>Time to flash !</h4>
- <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>
- <pre><code># mkdir /mnt/sd
- # mount /dev/sd×2 /mnt/sd</code></pre>
- <p>Put basic rootfs(/mnt/sd/boot is needed) I take gentoo’s stage3 for armv7hf</p>
- <pre><code># mount /dev/sdX1 /mnt/sd/boot
- # cd /mnt/sd/boot
- # cp linux-sunxi/arch/arm/boot/uImage .
- # wget https://github.com/OLIMEX/OLINUXINO/raw/master/SOFTWARE/A20/A20-build/scripts_a20_Lime2_34_90_camera_rel_2/script.bin
- # cd ~/linux-sunxi
- # rm -fr /mnt/sd/lib/modules
- # cp -rfv out/lib/modules /mnt/sd/lib/
- # cp -rfv out/lib/firmware /mnt/sd/lib/
- # sync
- # umount /mnt/sd/boot
- # umount /mnt/sd</code></pre>
- <section id="External_links">
- <h2>External links</h2>
- <ul>
- <li><a href="https://mensuel.framapad.org/p/MakingAnOSHWLaptop">Etherpad</a> (<a href="/p-MakingAnOSHWLaptop">backup</a>)</li>
- <li>GnuSocial :<a href="https://loadaverage.org/tag/MakingAnOSHWLaptop">#MakingAnOSHWLaptop</a></li>
- <li>Sources<ul>
- <li>U-boot<ul>
- <li><a href="//git.denx.de/u-boot.git">Mainline</a></li>
- <li><a href="https://github.com/linux-sunxi/u-boot-sunxi.git">Sunxi</a></li>
- </ul></li>
- <li>Kernel<ul>
- <li><a href="https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git">Mainline</a></li>
- <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>
- <li><a href="https://github.com/linux-sunxi/linux-sunxi.git">Sunxi</a></li>
- </ul></li>
- </ul></li>
- <li>Documentation<ul>
- <li><a href="https://linux-sunxi.org/SATA">https://linux-sunxi.org/SATA</a> (to get more performance)</li>
- <li>Olimex<ul>
- <li><a href="https://github.com/OLIMEX/OLINUXINO/tree/master/SOFTWARE/A20/A20-build">Build instruction, scripts and more</a></li>
- <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>
- </ul></li>
- <li><a href="https://wiki.tizen.org/wiki/Sunxi">Tizen</a></li>
- </ul></li>
- </ul>
- </section>
- </main>
- <!--#include file="/templates/en/footer.shtml" -->
- </body>
- </html>