CINXE.COM

Linux - freemyipod.org

<!DOCTYPE html> <html class="client-nojs" lang="en" dir="ltr"> <head> <meta charset="UTF-8"/> <title>Linux - freemyipod.org</title> <script>document.documentElement.className = document.documentElement.className.replace( /(^|\s)client-nojs(\s|$)/, "$1client-js$2" );</script> <script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Linux","wgTitle":"Linux","wgCurRevisionId":22018,"wgRevisionId":22018,"wgArticleId":6436,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":[],"wgBreakFrames":false,"wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy","wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgMonthNamesShort":["","Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],"wgRelevantPageName":"Linux","wgRelevantArticleId":6436,"wgRequestId":"4cd0f5ee0b969a99625f48a6","wgIsProbablyEditable":false,"wgRelevantPageIsProbablyEditable":false,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgWikiEditorEnabledModules":[]});mw.loader.state({"site.styles":"ready","noscript":"ready","user.styles":"ready","user":"ready","site":"ready","user.options":"ready","user.tokens":"loading","mediawiki.legacy.shared":"ready","mediawiki.legacy.commonPrint":"ready","mediawiki.sectionAnchor":"ready","mediawiki.skinning.interface":"ready","skins.vector.styles":"ready"});mw.loader.implement("user.tokens@0m9wzhr",function($,jQuery,require,module){/*@nomin*/mw.user.tokens.set({"editToken":"+\\","patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); });mw.loader.load(["mediawiki.page.startup","mediawiki.user","mediawiki.hidpi","mediawiki.page.ready","mediawiki.toc","mediawiki.searchSuggest","skins.vector.js"]);});</script> <link rel="stylesheet" href="/load.php?debug=false&amp;lang=en&amp;modules=mediawiki.legacy.commonPrint%2Cshared%7Cmediawiki.sectionAnchor%7Cmediawiki.skinning.interface%7Cskins.vector.styles&amp;only=styles&amp;skin=vector"/> <script async="" src="/load.php?debug=false&amp;lang=en&amp;modules=startup&amp;only=scripts&amp;skin=vector"></script> <meta name="ResourceLoaderDynamicStyles" content=""/> <link rel="stylesheet" href="/load.php?debug=false&amp;lang=en&amp;modules=site.styles&amp;only=styles&amp;skin=vector"/> <meta name="generator" content="MediaWiki 1.31.0"/> <link rel="shortcut icon" href="/favicon.ico"/> <link rel="search" type="application/opensearchdescription+xml" href="/opensearch_desc.php" title="freemyipod.org (en)"/> <link rel="EditURI" type="application/rsd+xml" href="https://freemyipod.org/api.php?action=rsd"/> <link rel="alternate" type="application/atom+xml" title="freemyipod.org Atom feed" href="/index.php?title=Special:RecentChanges&amp;feed=atom"/> <!--[if lt IE 9]><script src="/load.php?debug=false&amp;lang=en&amp;modules=html5shiv&amp;only=scripts&amp;skin=vector&amp;sync=1"></script><![endif]--> </head> <body class="mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Linux rootpage-Linux skin-vector action-view"> <div id="mw-page-base" class="noprint"></div> <div id="mw-head-base" class="noprint"></div> <div id="content" class="mw-body" role="main"> <a id="top"></a> <div class="mw-indicators mw-body-content"> </div> <h1 id="firstHeading" class="firstHeading" lang="en">Linux</h1> <div id="bodyContent" class="mw-body-content"> <div id="siteSub" class="noprint">From freemyipod.org</div> <div id="contentSub"></div> <div id="jump-to-nav" class="mw-jump"> Jump to: <a href="#mw-head">navigation</a>, <a href="#p-search">search</a> </div> <div id="mw-content-text" lang="en" dir="ltr" class="mw-content-ltr"><div class="mw-parser-output"><div id="toc" class="toc"><div class="toctitle" lang="en" dir="ltr"><h2>Contents</h2></div> <ul> <li class="toclevel-1 tocsection-1"><a href="#Current:_Freemyipod_Linux"><span class="tocnumber">1</span> <span class="toctext">Current: Freemyipod Linux</span></a> <ul> <li class="toclevel-2 tocsection-2"><a href="#User_Guide"><span class="tocnumber">1.1</span> <span class="toctext">User Guide</span></a></li> <li class="toclevel-2 tocsection-3"><a href="#Developer_Guide"><span class="tocnumber">1.2</span> <span class="toctext">Developer Guide</span></a> <ul> <li class="toclevel-3 tocsection-4"><a href="#Build_everything"><span class="tocnumber">1.2.1</span> <span class="toctext">Build everything</span></a></li> <li class="toclevel-3 tocsection-5"><a href="#Running"><span class="tocnumber">1.2.2</span> <span class="toctext">Running</span></a></li> </ul> </li> </ul> </li> <li class="toclevel-1 tocsection-6"><a href="#Legacy:_iPodLinux"><span class="tocnumber">2</span> <span class="toctext">Legacy: iPodLinux</span></a></li> </ul> </div> <h2><span class="mw-headline" id="Current:_Freemyipod_Linux">Current: Freemyipod Linux</span></h2> <p>We are working on supporting Samsung/S5L-based devices which have an MMU. Currently our main focus is the <a href="/wiki/Nano_5G" title="Nano 5G">Nano 5G</a>, and an experimental source tree is available on <a rel="nofollow" class="external text" href="https://github.com/freemyipod/linux">github.com/freemyipod/linux</a>. </p> <h3><span class="mw-headline" id="User_Guide">User Guide</span></h3> <p>Not yet available, as the Linux port isn't yet practical to use. We have no storage drivers, no screen driver, no sound driver... </p> <h3><span class="mw-headline" id="Developer_Guide">Developer Guide</span></h3> <p>If you're somewhat familiar with embedded Linux, you can get started on the Nano 5G by building <a href="/wiki/WInd3x" title="WInd3x">wInd3x</a>, <a href="/wiki/U-Boot" title="U-Boot">U-Boot</a> and the Kernel as described below. However, <b>you will have to provide your own userland</b> (eg. buildroot, archlinux arm, ... anything armv6 compatible) and either run it from an initramfs or over NFS. <b>A serial cable is not necessary, but very useful to troubleshoot boot issues.</b> </p> <h4><span class="mw-headline" id="Build_everything">Build everything</span></h4> <p><i>These are not copy-paste instructions. You are expected to understand what's happening.'</i> </p><p>You will need an arm-none-eabi- toolchain into your $PATH, eg. gcc-arm-embedded from your package manager. </p><p>First, wInd3x: this will be used to run u-boot. </p> <pre> $ git clone <a rel="nofollow" class="external free" href="https://github.com/freemyipod/wInd3x">https://github.com/freemyipod/wInd3x</a> $ cd wInd3x $ go build ./ </pre> <p>Second, U-Boot: </p> <pre> $ git clone <a rel="nofollow" class="external free" href="https://github.com/freemyipod/u-boot">https://github.com/freemyipod/u-boot</a> $ cd u-boot $ git checkout n5g-wip $ make nano5g_defconfig $ make CROSS_COMPILE=arm-none-eabi- u-boot.bin -j 32 </pre> <p>Third, Linux: </p> <pre> $ git clone <a rel="nofollow" class="external free" href="https://github.com/freemyipod/linux">https://github.com/freemyipod/linux</a> $ cd linux $ git checkout n5g-wip $ make ARCH=arm nano5g_defconfig $ make ARCH=arm CROSS_COMPILE=arm-none-eabi- -j 32 zImage </pre> <p>By this point, have a initramfs ready. If you wanna boot directly from nfs, edit CMDLINE in the kernel .config accordingly. </p><p>Finally, bundle together an u-boot image containing the kernel, your initramfs, and the device-tree (built by u-boot): </p> <pre> $ mkimage -A arm -C none -O linux -T multi -a 0x08000000 -e 0x08000000 -d arch/arm/boot/zImage:initramfs.gz:../u-boot/arch/arm/dts/s5l8730.dtb mImage </pre> <p><i>mImage</i> is your combined image. </p> <h4><span class="mw-headline" id="Running">Running</span></h4> <p>Connect your Nano 5G in DFU mode. </p><p>Run u-boot using wInd3x: </p> <pre> $ ./wInd3x cfw run ../u-boot/u-boot.bin </pre> <p>This should start u-boot. Running this for the first time will take a while, as some bootloader stages need to be downloaded, decrypted and modified. A new USB device (05ac:2137) appear on your host. Use dfu-util to upload mImage: </p> <pre> dfu-util -d 05ac:2137 -D linux/mImage -R </pre> <p>Then, in the serial console you'll see Linux booting: </p> <pre> ## Booting kernel from Legacy Image at 08000000 ... ... Starting kernel ... [ 0.000000] Booting Linux on physical CPU 0x0 [ 0.000000] Linux version 6.2.0-rc4-00476-g4c4af4d7e53c (q3k@mimeomia) (arm-none-eabi-gcc (GNU Arm Embedded Toolchain 10.3-2021.10) 10.3.1 20210824 (release), GNU ld (GNU Arm Embedded Toolchain 10.3-2021.10) 2.36.1.20210621) #70 Fri Jan 20 18:02:56 CET 2023 ... </pre> <p>The LCD display should start up and show a boot log. If not, try adding <code>console=tty0</code> to your CMDLINE? You might also use <code>fbcon=rotate:1</code> to rotate the framebuffer 90 degrees. </p><p>If everything goes well, the kernel should boot up and attempt to mount a rootfs. It's up to you to get this part working, at least until we streamline the process. The USB CDC EEM ethernet gadget should also appear on your host (probably as usb0, or some long systemd predictable name). The other end will be visible as 'usb0' on the device. </p><p>Now go on and have a go at reverse-engineering some peripherals!&#160;:) </p> <h2><span class="mw-headline" id="Legacy:_iPodLinux">Legacy: iPodLinux</span></h2> <p>The <a rel="nofollow" class="external text" href="http://www.ipodlinux.org/">iPodLinux</a> project supports all the PortalPlayer based iPods: iPod 1G-4G, Photo/Color, Video/5G/5.5G, Mini, iPod Nano 1G. It is currently semi-abandoned, and uses a very old ucLinux kernel build. </p> <!-- NewPP limit report Cached time: 20250404204629 Cache expiry: 86400 Dynamic content: false CPU time usage: 0.014 seconds Real time usage: 0.038 seconds Preprocessor visited node count: 23/1000000 Preprocessor generated node count: 28/1000000 Post鈥恊xpand include size: 0/2097152 bytes Template argument size: 0/2097152 bytes Highest expansion depth: 2/40 Expensive parser function count: 0/100 Unstrip recursion depth: 0/20 Unstrip post鈥恊xpand size: 0/5000000 bytes --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 0.000 1 -total --> </div> <!-- Saved in parser cache with key wiki:pcache:idhash:6436-0!canonical and timestamp 20250404204629 and revision id 22018 --> </div> <div class="printfooter"> Retrieved from "<a dir="ltr" href="https://freemyipod.org/index.php?title=Linux&amp;oldid=22018">https://freemyipod.org/index.php?title=Linux&amp;oldid=22018</a>" </div> <div id="catlinks" class="catlinks catlinks-allhidden" data-mw="interface"></div> <div class="visualClear"></div> </div> </div> <div id="mw-navigation"> <h2>Navigation menu</h2> <div id="mw-head"> <div id="p-personal" role="navigation" class="" aria-labelledby="p-personal-label"> <h3 id="p-personal-label">Personal tools</h3> <ul> <li id="pt-login"><a href="/index.php?title=Special:UserLogin&amp;returnto=Linux" title="You are encouraged to log in; however, it is not mandatory [o]" accesskey="o">Log in</a></li> </ul> </div> <div id="left-navigation"> <div id="p-namespaces" role="navigation" class="vectorTabs" aria-labelledby="p-namespaces-label"> <h3 id="p-namespaces-label">Namespaces</h3> <ul> <li id="ca-nstab-main" class="selected"><span><a href="/wiki/Linux" title="View the content page [c]" accesskey="c">Page</a></span></li><li id="ca-talk" class="new"><span><a href="/index.php?title=Talk:Linux&amp;action=edit&amp;redlink=1" rel="discussion" title="Discussion about the content page (page does not exist) [t]" accesskey="t">Discussion</a></span></li> </ul> </div> <div id="p-variants" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-variants-label"> <input type="checkbox" class="vectorMenuCheckbox" aria-labelledby="p-variants-label" /> <h3 id="p-variants-label"> <span>Variants</span> </h3> <div class="menu"> <ul> </ul> </div> </div> </div> <div id="right-navigation"> <div id="p-views" role="navigation" class="vectorTabs" aria-labelledby="p-views-label"> <h3 id="p-views-label">Views</h3> <ul> <li id="ca-view" class="collapsible selected"><span><a href="/wiki/Linux">Read</a></span></li><li id="ca-viewsource" class="collapsible"><span><a href="/index.php?title=Linux&amp;action=edit" title="This page is protected.&#10;You can view its source [e]" accesskey="e">View source</a></span></li><li id="ca-history" class="collapsible"><span><a href="/index.php?title=Linux&amp;action=history" title="Past revisions of this page [h]" accesskey="h">View history</a></span></li> </ul> </div> <div id="p-cactions" role="navigation" class="vectorMenu emptyPortlet" aria-labelledby="p-cactions-label"> <input type="checkbox" class="vectorMenuCheckbox" aria-labelledby="p-cactions-label" /> <h3 id="p-cactions-label"><span>More</span></h3> <div class="menu"> <ul> </ul> </div> </div> <div id="p-search" role="search"> <h3> <label for="searchInput">Search</label> </h3> <form action="/index.php" id="searchform"> <div id="simpleSearch"> <input type="search" name="search" placeholder="Search freemyipod.org" title="Search freemyipod.org [f]" accesskey="f" id="searchInput"/><input type="hidden" value="Special:Search" name="title"/><input type="submit" name="fulltext" value="Search" title="Search the pages for this text" id="mw-searchButton" class="searchButton mw-fallbackSearchButton"/><input type="submit" name="go" value="Go" title="Go to a page with this exact name if it exists" id="searchButton" class="searchButton"/> </div> </form> </div> </div> </div> <div id="mw-panel"> <div id="p-logo" role="banner"><a class="mw-wiki-logo" href="/wiki/Main_Page" title="Visit the main page"></a></div> <div class="portal" role="navigation" id="p-navigation" aria-labelledby="p-navigation-label"> <h3 id="p-navigation-label">Navigation</h3> <div class="body"> <ul> <li id="n-mainpage-description"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z">Main page</a></li><li id="n-recentchanges"><a href="/wiki/Special:RecentChanges" title="A list of recent changes in the wiki [r]" accesskey="r">Recent changes</a></li><li id="n-randompage"><a href="/wiki/Special:Random" title="Load a random page [x]" accesskey="x">Random page</a></li> </ul> </div> </div> <div class="portal" role="navigation" id="p-Info" aria-labelledby="p-Info-label"> <h3 id="p-Info-label">Info</h3> <div class="body"> <ul> <li id="n-Status"><a href="/wiki/Status">Status</a></li><li id="n-Contact"><a href="/wiki/Contact">Contact</a></li><li id="n-Contributing"><a href="/wiki/Contributing">Contributing</a></li><li id="n-Todo-list"><a href="/wiki/Todo_list">Todo list</a></li><li id="n-Project-summary"><a href="/wiki/Project_summary">Project summary</a></li> </ul> </div> </div> <div class="portal" role="navigation" id="p-Reverse_engineering_Results" aria-labelledby="p-Reverse_engineering_Results-label"> <h3 id="p-Reverse_engineering_Results-label">Reverse engineering Results</h3> <div class="body"> <ul> <li id="n-Firmware"><a href="/wiki/Firmware">Firmware</a></li><li id="n-Firmware-decryption"><a href="/wiki/Firmware_decryption">Firmware decryption</a></li><li id="n-GUID-Table"><a href="/wiki/GUID_table">GUID Table</a></li> </ul> </div> </div> <div class="portal" role="navigation" id="p-Exploiting" aria-labelledby="p-Exploiting-label"> <h3 id="p-Exploiting-label">Exploiting</h3> <div class="body"> <ul> <li id="n-wIndex"><a href="/wiki/WInd3x">wIndex</a></li><li id="n-Pwnage-2.0"><a href="/wiki/Pwnage_2.0">Pwnage 2.0</a></li><li id="n-Notes-vulnerability"><a href="/wiki/Notes_vulnerability">Notes vulnerability</a></li> </ul> </div> </div> <div class="portal" role="navigation" id="p-Other_Guides" aria-labelledby="p-Other_Guides-label"> <h3 id="p-Other_Guides-label">Other Guides</h3> <div class="body"> <ul> <li id="n-Modes"><a href="/wiki/Modes">Modes</a></li> </ul> </div> </div> <div class="portal" role="navigation" id="p-tb" aria-labelledby="p-tb-label"> <h3 id="p-tb-label">Tools</h3> <div class="body"> <ul> <li id="t-whatlinkshere"><a href="/wiki/Special:WhatLinksHere/Linux" title="A list of all wiki pages that link here [j]" accesskey="j">What links here</a></li><li id="t-recentchangeslinked"><a href="/wiki/Special:RecentChangesLinked/Linux" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k">Related changes</a></li><li id="t-specialpages"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q">Special pages</a></li><li id="t-print"><a href="/index.php?title=Linux&amp;printable=yes" rel="alternate" title="Printable version of this page [p]" accesskey="p">Printable version</a></li><li id="t-permalink"><a href="/index.php?title=Linux&amp;oldid=22018" title="Permanent link to this revision of the page">Permanent link</a></li><li id="t-info"><a href="/index.php?title=Linux&amp;action=info" title="More information about this page">Page information</a></li> </ul> </div> </div> </div> </div> <div id="footer" role="contentinfo"> <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 19 February 2023, at 15:31.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="/wiki/freemyipod.org:Privacy_policy" title="freemyipod.org:Privacy policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/freemyipod.org:About" title="freemyipod.org:About">About freemyipod.org</a></li> <li id="footer-places-disclaimer"><a href="/wiki/freemyipod.org:General_disclaimer" title="freemyipod.org:General disclaimer">Disclaimers</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-poweredbyico"> <a href="//www.mediawiki.org/"><img src="/resources/assets/poweredby_mediawiki_88x31.png" alt="Powered by MediaWiki" srcset="/resources/assets/poweredby_mediawiki_132x47.png 1.5x, /resources/assets/poweredby_mediawiki_176x62.png 2x" width="88" height="31"/></a> </li> </ul> <div style="clear: both;"></div> </div> <script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgPageParseReport":{"limitreport":{"cputime":"0.014","walltime":"0.038","ppvisitednodes":{"value":23,"limit":1000000},"ppgeneratednodes":{"value":28,"limit":1000000},"postexpandincludesize":{"value":0,"limit":2097152},"templateargumentsize":{"value":0,"limit":2097152},"expansiondepth":{"value":2,"limit":40},"expensivefunctioncount":{"value":0,"limit":100},"unstrip-depth":{"value":0,"limit":20},"unstrip-size":{"value":0,"limit":5000000},"timingprofile":["100.00% 0.000 1 -total"]},"cachereport":{"timestamp":"20250404204629","ttl":86400,"transientcontent":false}}});});</script><script>(window.RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgBackendResponseTime":40});});</script> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10