<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>e60 on Silicone&#39;s web</title>
		<link>https://silicone.homelinux.org/tags/e60/</link>
		<description>Recent content in e60 on Silicone&#39;s web</description>
		<generator>Hugo</generator>
		<language>fr</language>
		
		
		
		
			<lastBuildDate>Sun, 27 Nov 2011 23:02:37 +0100</lastBuildDate>
		
			<atom:link href="https://silicone.homelinux.org/tags/e60/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>Développement noyau sur e60</title>
				<link>https://silicone.homelinux.org/2011/04/03/developpement-noyau-sur-e60/</link>
				<pubDate>Sun, 03 Apr 2011 20:52:14 +0100</pubDate>
				<guid>https://silicone.homelinux.org/2011/04/03/developpement-noyau-sur-e60/</guid>
				<description>&lt;p&gt;Comme j’ai accès à la &lt;a href=&#34;http://silicone.homelinux.org/2011/03/22/console-serie-sur-liseuse-samsung-e60/&#34;&gt;console série sur liseuse Samsung e60&lt;/a&gt; compilons un nouveau noyau linux.&lt;/p&gt;&#xA;&lt;p&gt;Le processeur de la liseuse e60 est un ARM, pour compiler le noyau pour ce processeur il nous faut une chaine de compilation croisée.&lt;br&gt;&#xA;La première option est d’utiliser celle fournie par samsung avec le reste des sources. A priori ça fonctionne mais utiliser des binaires de sources inconnue ne m’enchantait guerre.&lt;br&gt;&#xA;La seconde solution serait de recompiler la chaine nous même, c’est souvent la seule solutions pour des systèmes exotiques nécessitant quelques patchs.&lt;br&gt;&#xA;Ici, a bien regardé les fichiers de Samsung, les binutils viennent d’une version entre 2.17 et 2.18 (leur version est nommée 2.17.50 mais ne correspond pas tout à fait à se snapshot non plus…) mais il ne semble pas y avoir de patch ‘maison’. Quand a gcc j’ai pas pris le temps de vérifier.&lt;br&gt;&#xA;J’ai opté pour la &lt;a href=&#34;http://www.emdebian.org/crosstools.html&#34; hreflang=&#34;en&#34;&gt;chaine de compilation croisée du projet emdebian&lt;/a&gt; dans sa version lenny (Tout comme le propose &lt;a href=&#34;http://www.editions-diamond.com/opensilicium/index.php/edito-open-silicium-n%C2%B01&#34;&gt;le magazine Open Silicium n°1&lt;/a&gt; dans son article sur FriendlyARM).&lt;/p&gt;&#xA;&lt;h3 id=&#34;installation-de-la-chaine-de-compilation-croisée-sur-debian&#34;&gt;Installation de la chaine de compilation croisée sur debian&lt;/h3&gt;&#xA;&lt;p&gt;Tout d’abord les clef des l’archive:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#xA;sudo apt-get install emdebian-archive-keyring&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Ensuite nous ajoutons un fichier &lt;code&gt;/etc/apt/sources.list.d/emdebian.list&lt;/code&gt; avec le contenu suivant:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#xA;deb http://ftp.uk.debian.org/emdebian/toolchains lenny main&#xA;deb-src http://ftp.uk.debian.org/emdebian/toolchains lenny main&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Puis une mise à jours des liste des paquets afin d’installer les paquets nécessaires:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#xA;sudo apt-get update&#xA;sudo apt-get install libc6-armel-cross libc6-dev-armel-cross libstdc++6-armel-cross binutils-arm-linux-gnueabi gcc-4.3-arm-linux-gnueabi g++-4.3-arm-linux-gnueabi&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Voila, nous disposons maintenant d’une chaine de compilation croisée installée avec des paquets, donc facile à mettre à jour ou à désinstaller.&lt;/p&gt;&#xA;&lt;h3 id=&#34;les-sources-du-noyau&#34;&gt;Les sources du noyau&lt;/h3&gt;&#xA;&lt;p&gt;Samsung fournit une version modifiée du 2.6.29.4, en récupérant &lt;a href=&#34;http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Fstable%2Flinux-2.6.29.y.git%3Ba%3Dsummary&#34;&gt;la branche git 2.6.29.y du noyau&lt;/a&gt;, j’ai rapidement vu que leur changement s’appliquait à la version 2.6.29.6 (dernière de cette branche).&lt;/p&gt;&#xA;&lt;p&gt;Afin de mieux trier les changements michel.s avait déjà séparé les changements de Samsung en plusieurs patchs (&lt;a href=&#34;http://code.google.com/p/e60-open/source/browse/#svn%2Fpatches%2Fkernel&#34;&gt;les patchs sur le projet e60-open&lt;/a&gt;). Après quelques essai j’ai concocté un fichier &lt;code&gt;series&lt;/code&gt; qui permet d’appliquer ces patchs avec &lt;code&gt;quilt&lt;/code&gt; ou mieux encore de des importer dans une branche git avec &lt;code&gt;git quiltimport&lt;/code&gt;. L’ordre que j’ai choisit permet en particulier de se débarrasser facilement des quelques patchs (les derniers).&lt;/p&gt;&#xA;&lt;p&gt;On notera dans ces patchs la présence de quelques fichiers binaires:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;fs/rfs/*.o&lt;/code&gt; une couche de journalisation propriétaire sur la fat. Si vous voulez mon avis, elle n’est pas nécessaire, après tout nous disposons de systèmes de fichiers journalisé libre, et linux est capable de monter autre chose que de la FAT par USB…&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;drivers/usb/gadget/file_storage.o&lt;/code&gt; le fichier &lt;code&gt;.c&lt;/code&gt; correspondant a de plus été retiré, la licence BSD/GPL de l’original autorise une distribution binaire (toutefois, je n’ai pas vérifié si Alan Stern est cité dans la doc) mais j’aurais bien apprécié que Samsung fournisse le source.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;u-boot&#34;&gt;U-Boot&lt;/h3&gt;&#xA;&lt;p&gt;Avant de compiler le noyau, il nous faut l’utilitaire &lt;code&gt;mkimage&lt;/code&gt; fourni par U-Boot. Ici, pas de chichis, nous compilons la version de U-Boot fournie par Samsung, et nous copions &lt;code&gt;tools/mkimage&lt;/code&gt; dans notre path (c’est la seule méthode d’installation que j’ai pu trouver).&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#xA;make smdkc100_config &#xA;make CROSS_COMPILE=arm-linux-gnueabi-&#xA;&#xA;cp tools/mkimage ~/bin/&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id=&#34;compilation-de-linux&#34;&gt;Compilation de linux&lt;/h3&gt;&#xA;&lt;p&gt;Pour la configuration un des patch fourni un &lt;code&gt;.config&lt;/code&gt; qui est une copie de &lt;code&gt;config_rfs&lt;/code&gt; donc même sans appliquer ce patch, nous pouvons récupérer la config de samsung.&lt;/p&gt;&#xA;&lt;p&gt;Ensuite, on compile enfin !&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#xA;make CROSS_COMPILE=arm-linux-gnueabi- CFLAGS=&amp;#34;-march=armv4t -mtune=cortex-a8&amp;#34; CXXFLAGS=&amp;#34;-march=armv4t -mtune=cortex-a8&amp;#34; ARCH=arm uImage&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Nous pouvons charger notre noyau en suivant &lt;a href=&#34;http://code.google.com/p/e60-open/wiki/HowToTestAKernel&#34; hreflang=&#34;en&#34;&gt;la procédure de test de noyau du projet e60-open&lt;/a&gt; la commande pour changer le noyau sera alors&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#xA;sudo dnw arch/arm/boot/uImage&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Voila, ça marche ! Enfin presque, le noyau ne trouve pas ses modules. Ceux présents dans nos sources ne sont pas un vrai problème (mais le sujet d’un prochain article) en revanche les modules &lt;code&gt;/lib/modules/max14540.ko&lt;/code&gt; et &lt;code&gt;lib/modules/dhd.ko&lt;/code&gt; ne sont pas présent dans les sources alors qu’ils présentent une licence GPL au noyau.&lt;/p&gt;&#xA;&lt;h3 id=&#34;les-sources-manquants&#34;&gt;Les sources manquants&lt;/h3&gt;&#xA;&lt;p&gt;Le site &lt;a href=&#34;http://opensource.samsung.com/&#34; hreflang=&#34;en&#34;&gt;Samsung Open Source Release Center&lt;/a&gt; possède une interface pour les contacter, mais elle ne semble pas bien fonctionner (j’ai même booter mon netbook sous windows pour essayer avec IE8 sans succes!). En fouillant le &lt;a href=&#34;http://forum.hardware.fr/hfr/gsmgpspda/tablet/unique-samsung-ebook-sujet_22344_66.htm#para621535&#34;&gt;forum e60&lt;/a&gt; j’ai retrouvé leur adresse email et leur ai écrit, pas de réponse jusqu’à présent (pas même automatique…). Patience …&lt;/p&gt;&#xA;&lt;h3 id=&#34;conclusion&#34;&gt;Conclusion&lt;/h3&gt;&#xA;&lt;p&gt;Nous pouvons compiler le noyau de la liseuse e60 sans utiliser la chaine de compilation fournie par Samsung.&lt;br&gt;&#xA;Il reste du travail pour le changement des modules car ceux présent sur la liseuses sont compilé pour la version 2.6.29.4 du noyau et notre noyau refuse de les charger. (J’ai déjà fait quelques tests mais ça sera le sujet d’un prochain article.)&lt;br&gt;&#xA;Et surtout sans les sources manquants nous allons avoir du mal a exploiter au mieux notre liseuse e60.&lt;/p&gt;&#xA;&lt;p&gt;Mise à jours: Je viens de recevoir une réponse de Samsung, ils ont mis a jours leur archive. Il faut encore que je test ça.&lt;/p&gt;</description>
			</item>
			<item>
				<title>Console série sur liseuse Samsung E60</title>
				<link>https://silicone.homelinux.org/2011/03/22/console-serie-sur-liseuse-samsung-e60/</link>
				<pubDate>Tue, 22 Mar 2011 16:36:25 +0100</pubDate>
				<guid>https://silicone.homelinux.org/2011/03/22/console-serie-sur-liseuse-samsung-e60/</guid>
				<description>&lt;p&gt;Les bons plans Samsung de janvier avait déjà fait le tour du web, et je n’en reparlerais pas (sauf pour dire que j’en ai profiter pour acquérir une liseuse Samsung E60).&lt;/p&gt;&#xA;&lt;p&gt;Une communauté s’est formée autour d’un forum (&lt;a href=&#34;http://forum.hardware.fr/hfr/gsmgpspda/tablet/unique-samsung-ebook-sujet_22344_1.htm&#34;&gt;e60 sur hardware.fr&lt;/a&gt;) et d’un espace google code (&lt;a href=&#34;http://code.google.com/p/e60-open/&#34;&gt;e60-open&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;On y trouve pas mal d’infos et en particulier la &lt;a href=&#34;http://code.google.com/p/e60-open/wiki/SerialConsole&#34; hreflang=&#34;en&#34;&gt;console série&lt;/a&gt;. De mon coté je dispose d’un adaptateur USB vers série en LVTTL 3.3V (à base de FTDI FT2232C) donc j’ai opté pour la connexion sur R232 et R233. Or RDX (R232) est déjà connecté au circuit MAX232 qui converti les niveau LVTTL vers les niveaux série, et apparemment ce petit gars était plus fort que mon FTDI… J’ai donc retiré R232 et connecté mon FTDI à la palace. Restait à savoir quel pad de R232 allait vers le CPU… Coup de pot, le premier que j’ai essayé était le bon: le coté le plus proche de la batterie.&lt;/p&gt;&#xA;&lt;p&gt;Une petite photo de mes belles soudures :&lt;br&gt;&#xA;&lt;a href=&#34;https://silicone.homelinux.org/2011/03/22/console-serie-sur-liseuse-samsung-e60/e60-rs232-lvttl3.3.jpg&#34;&gt;&lt;img src=&#34;https://silicone.homelinux.org/2011/03/22/console-serie-sur-liseuse-samsung-e60/e60-rs232-lvttl3.3-detail.jpg&#34;&#xA;         srcset=&#34;https://silicone.homelinux.org/2011/03/22/console-serie-sur-liseuse-samsung-e60/e60-rs232-lvttl3.3-detail.jpg 400w, https://silicone.homelinux.org/2011/03/22/console-serie-sur-liseuse-samsung-e60/e60-rs232-lvttl3.3-detail-300x255.jpg 300w&#34;&#xA;         sizes=&#34;auto, (max-width: 400px) 100vw, 400px&#34;&#xA;         alt=&#34;mes belles soudures&#34; title=&#34;e60-rs232-lvttl3.3-detail&#34; width=&#34;400&#34; height=&#34;340&#34;&#xA;         class=&#34;alignnone size-full&#34;&#xA;         decoding=&#34;async&#34; fetchpriority=&#34;high&#34;&#xA;         loading=&#34;lazy&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Et voila, j’ai ensuite suivi la procédure pour &lt;a href=&#34;http://code.google.com/p/e60-open/wiki/HowToTestAKernel&#34; hreflang=&#34;en&#34;&gt;tester un kernel&lt;/a&gt; en chargeant le kernel fourni sur le SVN du projet. Et ça à marché (à ceci prêt que j’ai dû déchargé le module &lt;code&gt;secbulk&lt;/code&gt;, donc soit j’ai pas compris, soit il ne sert pas).&lt;/p&gt;&#xA;&lt;p&gt;Prochain épisode, compilation et test d’un noyau Linux.&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
