main chld/web / blog / ndless.html
 1<a href=https://ndless.me><h2>ndless</h2></a>
 2<p>is a exploit for the nspire series of ti calculators.<p>
 3  <img src=../assets/uxn39.png alt="uxn39, a port of uxn38 to ndless" width=320 height=240>
 4  <br>
 5<p><a href=https://ndless.me>Ndless</a> is a exploit for the ti nspire, which uses vulnerabilities in things like lua scripts or documents in the nspire OS to enable execution of arbitrary code. such code can be C, C++, and arm assembly. to create ndless programs for the ti nspire, you would need to <a href=https://www.hackspire.org/C_and_assembly_development_introduction/>build the ndless sdk.</a></p>
 6
 7<a href=https://github.com/tangrs/nspire-linux-loader2><h3>linuxloader2</h3>
 8  <p>
 9    linuxloader2</a>, or ll2 is a Ndless program that acts like a linux bootloader, allowing users to boot the linux kernel, with a rootfs <D>(could be initramfs or from a usb drive)</D> too.
10<br>
11you can try ll2 by grabbing the files from <a href=https://tiplanet.org/nspire-linux-builds/>the nspire linux builds</a>... but those are pretty old files. i reccomend compiling your own kernel for full hardware support, and getting a otg cable to use with a usb drive holding a rootfs for a good distro.
12</p>
13<h4>a basic guide<sub>for vv</sub></h4>
14<p>you will <del>need</del> want an <b>otg cable</b>, an <b>usb flash drive</b> <D>4gb at least</D>, and <b>ndless</b>.</p>
15<ol>
16  <li><a href=https://tiplanet.org/nspire-linux-builds/linuxloader2.tns>download linuxloader2</a> onto your calculator</li>
17  <li>
18    grab a kernel and DTB from <a href=https://tiplanet.org/nspire-linux-builds/>nspire linux builds</a>
19</li>
20<li>
21  transfer the files to your calculator. to organize, we'll put them in a folder - <code>linux/</code>
22</li>
23<li>
24  get the usb flash drive and make one MBR ext4 partition, e.g.<br>
25  <pre><code>mkfs.ext4 -O ^64bit,^metadata_csum,^metadata_csum_seed,^encrypt,^project,^verity /dev/sda1  </code></pre>
26</li>
27<li>
28  mount the ext4 partition, and extract <a href=https://tiplanet.org/nspire-linux-builds/xconfig-latest.tar.xz>xconfig</a> <D>or an arm rootfs of your choice</D> to the usb drive
29</li>
30<li>unmount and eject the usb drive</li>
31<li>make a <code>cfg.ll2.tns</code> on your calculator:
32  <br>
33  <pre><code>
34      kernel linux/zImage.tns
35      dtb linux/dtb.tns
36      cmdline root=/dev/sda1 rootdelay=20 debug
37      boot
38  </code></pre>
39  <D>ensure linuxloader2 is associated with <code>ext.ll2</code> in <code>ndless.cfg.dns</code></D>
40</li>
41<li>profit</li>
42</ol>
43<p>if you are broke and dont have a otg cable, use the <a href=https://tiplanet.org/nspire-linux-builds/initrd.tns>initrd</a> and change your <code>cfg.ll2.tns</code>:</p>
44<pre>
45  <code>
46    initrd linux/initrd.tns
47    cmdline root=/dev/ram
48  </code>
49</pre>
50
51  <a href=http://lpg.ticalc.org/prj_tilp/><h3>tilp</h3></a>
52<p>
53  <a href=http://lpg.ticalc.org/prj_tilp/>tilp</a> is a linking program for all ti calculators. i use it for my ti nspire on debian linux, works fine, mostly
54<h4>quirks</h4>
55tilp will fail to <code>Dirlist</code> if a folder - any folder on your calculator starts with a period. the reason for this i really dont know.
56</p>
57
58<h3><a href=https://srcdump.net/chld/uxn39>uxn39</h3>
59<p>uxn39</a> is a port of <a href=https://github.com/zzo38/uxn38>uxn38</a> to ndless. its based on uxn38 because it uses sdl1, which is the version of sdl ndless-sdk ships, making the port really easy to make. it was previously made by ai to test a concept, <D>sorry!</D> but it has now been rewritten by me and the source code is availible for everyone to see on srcdump - see <a href=https://srcdump.net/chld/uxn39>uxn39 here</a></p>
60<!-- THISISABLOG -->