So any chances that this will be available for the non-cas ever?I believe that's not a problem :)
what o.o
do you mean you are making linux for the TI-nspire?
Wow awesome o_O
Coming from such a talented developer as you are, you will surely get some more people interested and I truly hope this is going to be a great step towards ... a new world ?
(also, you should modify the topic title to make it more attractive :P)
EDIT : cross-posted/newsed on tiplanet (http://tiplanet.org/forum/viewtopic.php?f=43&t=10488&p=130345#p130345)
btw tangrs : you're using XCode for nspire dev too ? :o
So any chances that this will be available for the non-cas ever?I believe that's not a problem :)
(However, CX is probably a pre-requisite)
Extremely interesting :)
Of course you should upload the source code (of the kernel, device tree definitions, U-Boot, etc.) somewhere in public, tangrs ;)
Note that a Linux port for the Clickpad series would be even much more interesting than a port for the CX series, because on the Clickpad series, it is certainly possible to install Linux permanently (because it is definitely possible to change the contents of the boot1), and thereby be completely free of whatever lockdown TI will try - and fail, as usual - to put forth (instead of embracing developers and making its calculator more useful as a result) :)
And indeed, CAS vs. non-CAS (especially on the CX, which does not have interchangeable keyboards) is, for all practical purposes, only a difference of several bits in the ASIC ("CAS bit" and two leading hex digits of the product ID), as shown by RunOS (never released, in 2010) and OSLauncher (independently reimplemented, and released, in 2011).
I wonder, however, if we'll need OSLauncher to run this?Not OSLauncher as we know it, but Linux does need a launcher, indeed :)
(knowing it's practically impossible to crack the 2048 bits RSA keys to sign third-party OSes)2048 bits o.0
Maybe with ndless USB support we can have a hook up a hard/flashdrive and use that as filesystem?With a working Linux port, we won't need Ndless' USB support: Linux will be running on bare metal ;)
wow, linux on a calculator?We're not there yet, but agreed :)
This is awesome! :P
...knowing it's practically impossible to crack the 2048 bits RSA keys to sign third-party OSesWell, with 'all due respect for you sir', i wouldn't rely on that. Impossible is nothing remember?
...Maybe with ndless USB support we can have a hook up a hard/flashdrive and use that as filesystem?Well, he can always try to use a ram disk to install the initial file system: http://lwn.net/Articles/210046/ and more http://www.ibm.com/developerworks/linux/library/l-initrd/index.html
Well maybe TI will share the key with us... sooner or later... but I'm not too sure of that :\That's a pretty good idea, i'd say. Maybe in the end TI will give up on their OS and just install an open-source os, like Google (well rebranded mind you), and still make a lot of money. Who knows what the future has in store for us? ;)
commit a1c7b431150faccea6866e6ff66ddebbc29b1d3c
Author: Daniel Tang <[email protected]>
Date: Thu Oct 4 00:59:18 2012 +1000
working framebuffer
When you have set everything up correctly, we're eager to see a picture ;)CONFIG_RD_GZIP=y
CONFIG_RD_BZIP2=y
CONFIG_RD_LZMA=y
CONFIG_RD_XZ=y
CONFIG_RD_LZO=y
CONFIG_ZLIB_INFLATE=y
CONFIG_LZO_DECOMPRESS=y
CONFIG_XZ_DEC=y
CONFIG_XZ_DEC_X86=y
CONFIG_XZ_DEC_POWERPC=y
CONFIG_XZ_DEC_IA64=y
CONFIG_XZ_DEC_ARM=y
CONFIG_XZ_DEC_ARMTHUMB=y
CONFIG_XZ_DEC_SPARC=y
CONFIG_XZ_DEC_BCJ=y
# CONFIG_XZ_DEC_TEST is not set
CONFIG_DECOMPRESS_GZIP=y
CONFIG_DECOMPRESS_BZIP2=y
CONFIG_DECOMPRESS_LZMA=y
CONFIG_DECOMPRESS_XZ=y
CONFIG_DECOMPRESS_LZO=y
But we won't be able to make it an os w/o the RSA keys so yeah :\On the Clickpad (both prototypes and production models), we could, see http://ourl.ca/17131;msg=264341 ;)
Also, the OS can be "hot-launched" - basically, it can replace the currently running Nspire OS. :)QuoteBut we won't be able to make it an os w/o the RSA keys so yeah :\On the Clickpad (both prototypes and production models), we could, see http://ourl.ca/17131;msg=264341 ;)
When you have set everything up correctly, we're eager to see a picture ;)
how did you manage to boot this w/o RSA code?
Also, the OS can be "hot-launched" - basically, it can replace the currently running Nspire OS. :)
How to boot:
1. Make folder called 'linux' (no quotes).
2. Copy 'initrd.tns', 'zImage.tns' and 'linuxloader.tns' to folder.
3. Run 'linuxloader.tns'
How to build from scratch (if you love pain)
Userspace image
1. Download buildroot (http://buildroot.uclibc.org/)
2. make menuconfig
3. Target architecture is 'arm little endian'
4. Variant can be 'arm generic' or 'arm926t'
5. In target filesystems, select ext2 image
6. make
7. Get cup of coffee
8. Copy and rename output/images/rootfs.ext to initrd.tns
Kernel
1. Add toolchain bin to PATH: buildroot-dir/output/toolchain/usr/bin (or something like that)
2. make ARCH=arm nspire_defconfig
3a. make
or for moar speed:
3b. make -jn (Where n is number of CPU cores you have + 1)
4. Coffee
5. Copy and rename arch/arm/boot/zImage to zImage.tns
Bootloader
1. Get source from tangrs github
2. Get Ndless SDK
3. make
Excellent work, as usual ;)
Indeed, some documentation about the building process (even if just to redirect to appropriate online documentation) would be good.
Some IT pros know how to build native and cross-compiled buildroot and Linux kernel, but in our community, many users are not IT pros ;)
Fun idea: adding some file in /proc, or char device in /dev, that exposes the calculator's product ID to read() (mmap() access is not mandatory as a first step) :)
$ diff -ub .config .config.old
--- .config 2012-10-05 10:25:55.703430432 +0200
+++ .config.old 2012-10-05 09:49:53.599394584 +0200
@@ -483,7 +483,7 @@
#
# memtester requires a toolchain with LARGEFILE support
#
-BR2_PACKAGE_MINICOM=y
+# BR2_PACKAGE_MINICOM is not set
# BR2_PACKAGE_MTD is not set
# BR2_PACKAGE_NANOCOM is not set
@@ -530,8 +530,7 @@
# unionfs requires a toolchain with LARGEFILE support
#
# BR2_PACKAGE_USB_MODESWITCH is not set
-BR2_PACKAGE_USBUTILS=y
-# BR2_PACKAGE_USBUTILS_ZLIB is not set
+# BR2_PACKAGE_USBUTILS is not set
# BR2_PACKAGE_WIPE is not set
#
@@ -677,8 +676,7 @@
# BR2_PACKAGE_LIBIQRF is not set
# BR2_PACKAGE_LIBNFC is not set
# BR2_PACKAGE_LIBNFC_LLCP is not set
-BR2_PACKAGE_LIBUSB=y
-# BR2_PACKAGE_LIBUSB_COMPAT is not set
+# BR2_PACKAGE_LIBUSB is not set
#
# libv4l requires a toolchain with LARGEFILE support
@@ -796,7 +794,7 @@
#
# BR2_PACKAGE_ENCHANT is not set
# BR2_PACKAGE_ICU is not set
-BR2_PACKAGE_LIBICONV=y
+# BR2_PACKAGE_LIBICONV is not set
BR2_PACKAGE_NCURSES=y
# BR2_PACKAGE_NCURSES_TARGET_PANEL is not set
# BR2_PACKAGE_NCURSES_TARGET_FORM is not set
@@ -810,8 +808,8 @@
#
# JSON/XML
#
-BR2_PACKAGE_CJSON=y
-BR2_PACKAGE_EXPAT=y
+# BR2_PACKAGE_CJSON is not set
+# BR2_PACKAGE_EXPAT is not set
# BR2_PACKAGE_EZXML is not set
# BR2_PACKAGE_JSON_C is not set
# BR2_PACKAGE_LIBROXML is not set
@@ -1037,7 +1035,7 @@
# Text editors and viewers
#
# BR2_PACKAGE_ED is not set
-BR2_PACKAGE_LESS=y
+# BR2_PACKAGE_LESS is not set
BR2_PACKAGE_NANO=y
BR2_PACKAGE_NANO_TINY=y
# BR2_PACKAGE_UEMACS is not set
Attached is a .config for buildroot 2012.08, which yields bzip2'ed rootfs, binutils 2.22, GCC 4.7.1 with C++ support, and several extra goodies such as, but not limited to, lua / luac / luajit, less, nano for simple text edition, SDL (with framebuffer support, sdl_gfx, sdl_image with BMP, JPEG and PNG support), expat, libusb, minicom.
Needless to say, the size of the rootfs raised a bit, to 7.2 MB uncompressed and 2.6 MB bzip2'ed; it can be reduced to ~5 MB uncompressed by disabling several bits:
Just a quick reminder that there's a 4MB soft limit for RAM disks. Make sure the final image is less than that until I rework the bootloader to lift it.ACK :)
tangrs, should one of us send you a Clickpad (prototype or production model) to speed up your process ?
QuoteJust a quick reminder that there's a 4MB soft limit for RAM disks. Make sure the final image is less than that until I rework the bootloader to lift it.ACK :)
It's easy to reach 8 MB without even attempting to add an X server + its libraries.
Edit: Random thoughts: snes9x SDL on Linux on CX?We have the same kind of thoughts ;)
+1 on relocating the bootloader to SRAM.
I've made a boring vid that can be found at&feature=youtu.be .
Also Tangrs, sometimes boot halts just after keypad initialization. It appears to occur at random, although I've a feeling it might have to do with me (accidentally) pressing a key sometimes after it started to boot. Not sure if that's even possible though ..
I've found that the nspire emulator can't emulate some of the instructions Linux uses (especially to do with caches) so I actually need real devices to test on.;)
Goplat has been pretty silent for the past few months...
And there remains a major unresolved problem with Nspire emulation, which is preventing forward progress: your closed-source fork of nspire_emu, based on an outdated version of nspire_emu ;)
Extremely interesting :)Oh wow I didn't know we could replace Boot1 on the first OS or at least didn't remember. I guess that's a nice workaround to having to crack the RSA keys, but too bad the clickpad is discontinued...
Of course you should upload the source code (of the kernel, device tree definitions, U-Boot, etc.) somewhere in public, tangrs ;)
Note that a Linux port for the Clickpad series would be even much more interesting than a port for the CX series, because on the Clickpad series, it is certainly possible to install Linux permanently (because it is definitely possible to change the contents of the boot1), and thereby be completely free of whatever lockdown TI will try - and fail, as usual - to put forth (instead of embracing developers and making its calculator more useful as a result) :)
And indeed, CAS vs. non-CAS (especially on the CX, which does not have interchangeable keyboards) is, for all practical purposes, only a difference of several bits in the ASIC ("CAS bit" and two leading hex digits of the product ID), as shown by RunOS (never released, in 2010) and OSLauncher (independently reimplemented, and released, in 2011).
Oh wow I didn't know we could replace Boot1 on the first OS or at least didn't remember.It's a recent development, though it predates tangrs' Linux port :)
I assume that you've watched the videos and read the documentation ? ;)I guess I'm not most users lol. I can't survive without a terminal on linux :P
When Linux has booted, init has run and you've got a shell, you type commands like you can do on other Linux platforms :)
(nowadays, most users don't use the terminal on desktop or mobile Linux)
I assume that you've watched the videos and read the documentation ? ;)Can you make it connect to the internet and do sudo apt-get install gnome? :P
When Linux has booted, init has run and you've got a shell, you type commands like you can do on other Linux platforms :)
(nowadays, most users don't use the terminal on desktop or mobile Linux)
Can you make it connect to the internetWhen USB host support works, Mass Storage Devices and USB network adapters should follow quickly :)
and do sudo apt-get install gnome? :PNot only it wouldn't fit into the poor little calculator's memory, but it's way too heavyweight for the underpowered CPU of the Nspire, and additionally, Gnome is not designed for a 320x240 screen :D
I assume that you've watched the videos and read the documentation ? ;)
When Linux has booted, init has run and you've got a shell, you type commands like you can do on other Linux platforms :)
(nowadays, most users don't use the terminal on desktop or mobile Linux)
kernel linux/zImage.tns
initrd linux/initrd.tns
cmdline debug root=/dev/ram console=tty0 console=ttyAMA0,115200n8
boot
QuoteCan you make it connect to the internetWhen USB host support works, Mass Storage Devices and USB network adapters should follow quickly :)Quoteand do sudo apt-get install gnome? :PNot only it wouldn't fit into the poor little calculator's memory, but it's way too heavyweight for the underpowered CPU of the Nspire, and additionally, Gnome is not designed for a 320x240 screen :D
Sorry, does this allow you to run linux programs?
Oh, that much space for X.Org ? I expected somewhat less.Of course you could save space by not including the full X installation, as in, only the framebuffer or nspire driver. Even tho, not even sure the nspire one it exists, so someone would have to port it, unless the framebuffer driver works fine.
Oh, that much space for X.Org ? I expected somewhat less.Of course you could save space by not including the full X installation, as in, only the framebuffer or nspire driver. Even tho, not even sure the nspire one it exists, so someone would have to port it, unless the framebuffer driver works fine.
Anyway there's the framebuffer with SDL, and you can play good games with them.
Wait, so I could download a linux program and run it on my nspire right now?Sorry, does this allow you to run linux programs?
Yep.
Yup. Well, it depends what's its dependencies (graphical programs are unlikely to work), but basically, yes.Wait, so I could download a linux program and run it on my nspire right now?Sorry, does this allow you to run linux programs?
Yep.
Yup. Well, it depends what's its dependencies (graphical programs are unlikely to work), but basically, yes.Wait, so I could download a linux program and run it on my nspire right now?Sorry, does this allow you to run linux programs?
Yep.
hm dang, I was hoping for snes9x
However, the queue heads (dQH) must be placed in on-chip RAM. A design limita- tion on burst size does not allow the queue heads to be placed in DRAM.
mkdir /mnt/initrd
mount -o loop initrd.tns /mnt/initrd
Then you would throw additional ARM-compiled binaries in /mnt/initrd/usr/bin. That or you can always generate a new image with buildroot (http://buildroot.uclibc.org/) with the stuff you want on it, just take care the resulting image size will not exceed the Nspire memory.
I'm somewhat a Linux noob, so...It confused me too first time. You can find the readme here: https://github.com/tangrs/nspire-linux-loader2
How do you start Linux on the new bootloader?
ARM seems to be a second-class citizen in TCC, and last I checked, TCC wasn't actively maintained anymore.
FWIW, the buildroot config I posted contains Lua compiler, interpreter and LuaJIT (but not some extra libraries) :)
MicroPerl shouldn't consume much space either.
[ignorant message]does this have any uses at this time?[/ignorant]
As in, what can you do with this?
Though, eventually, I would love it to have a OSS CAS software replacement. But that's a while away :P
Hopefully, I can get Python to compile and run, though I think it might be too big. Can't hurt to try it :)
Currently, it fails on compiling the unicodeobject.h file, don't know why, something about variable declaration errors.
Python 2.7 on an Nspire, now THAT would be cool.
I am new to this, can someone make a video on how to get a linux file to run on the calculator?
When (if?) you eventually get it to cross compile and you've secured the binaries, you need to add it to an existing ramdisk image. You can often do this by mounting the file as a filesystem and copy the binary(ies) into /usr/bin or wherever.
When (if?) you eventually get it to cross compile and you've secured the binaries, you need to add it to an existing ramdisk image. You can often do this by mounting the file as a filesystem and copy the binary(ies) into /usr/bin or wherever.
How would you mount the file as a filesystem (on a mac)?
Hopefully, I can get Python to compile and run, though I think it might be too big. Can't hurt to try it :)
Currently, it fails on compiling the unicodeobject.h file, don't know why, something about variable declaration errors.
Python 2.7 on an Nspire, now THAT would be cool.
I got it to work a while ago but it increased the ramdisk size to ~20MB and the loading time wasn't really worth it XD
Hopefully, I can get Python to compile and run, though I think it might be too big. Can't hurt to try it :)
Currently, it fails on compiling the unicodeobject.h file, don't know why, something about variable declaration errors.
Python 2.7 on an Nspire, now THAT would be cool.
I got it to work a while ago but it increased the ramdisk size to ~20MB and the loading time wasn't really worth it XD
How'd you do that? I just tried messing with the broken header file, but to no avail. I mostly want to do it simply because I can, like everything else I do to my calculator ;). Do you have to use the python source code from their site, not from buildroot?
What did you change in the code to achieve this ?
Does that mean that we will be able to boot on Linux from a USB stick ? O.O
If so, then it is awesome :D
If not, then it is still awesome :D :P
Does that mean that we will be able to boot on Linux from a USB stick ? O.O
If so, then it is awesome :D
If not, then it is still awesome :D :P
Yes! That's why things will get interesting now :D
We could also connect USB wireless dongles if you get where I'm coming from ;)
Here's a USB keyboard working :DYou should warn sensible people before posting awesome news like that :w00t:
By the way, we could call this linucx.dat awesome name :o +1
One concern I have about that is that it would be running an emulator in an emulator, right? Wouldn't the SNES emu run way too slow due to the Nspire CPU being all used for SDL emulation to begin with?QuoteJust a quick reminder that there's a 4MB soft limit for RAM disks. Make sure the final image is less than that until I rework the bootloader to lift it.ACK :)
It's easy to reach 8 MB without even attempting to add an X server + its libraries.
Hmmmm. If you get the source for the bootloader you could try changing MAX_RAMDISK_SIZE to something higher. But I can't guarantee it'll work without hitches since it might overwrite the bootloader code.
The solution is to relocate the bootloader itself into SRAM or somewhere out of the way before loading. That way, the max ramdisk size is limited by the amount of physical memory. I'll get the done soon
Edit: Random thoughts: snes9x SDL on Linux on CX?
Actually I think he wanted to have Touchpad/Clickpad compatibility, but the hardware is apparently different and less documented on Hackspire, making it harder to develop for those older models.The hardware of the Clickpad & Touchpad has better documentation on Hackspire than the CX hardware (though the delta is blurring, as part of this work) :)
Also mplayer lags o.oWell, the Nspire is no Raspberry Pi (basically > 5x more powerful for 1/6 to 1/4 the price, with some hardware video acceleration) or better :)
SDL isn't emulated, that's just the graphical frontend. I guess you would have to set some frameskip to snes9x to make it work at 60 FPS.Well, that's why TI advertises is as a calculator (actually rather a math&science handheld thing - meh, stupid vocabulary :P) and not a developer board :D (also @debrouxl)
Also mplayer lags o.o
Ah ok I thought about the opposite due to this post http://ourl.ca/17131/318760QuoteActually I think he wanted to have Touchpad/Clickpad compatibility, but the hardware is apparently different and less documented on Hackspire, making it harder to develop for those older models.The hardware of the Clickpad & Touchpad has better documentation on Hackspire than the CX hardware (though the delta is blurring, as part of this work) :)
Linux + some userspace does fit in 32 MB of RAM (16 or even 8 would work), but needless to say, it can do less than in 64 MB of RAM (CX).
tangrs doesn't have a real Clickpad or Touchpad, though.QuoteAlso mplayer lags o.oWell, the Nspire is no Raspberry Pi (basically > 5x more powerful for 1/6 to 1/4 the price, with some hardware video acceleration) or better :)
Well, that's why TI advertises is as a calculator
This is awesome, and the usb recognition works so well.
I’ve tested my keyboard, mouse, ipod, camera, TI 83, and two flash drives.
It tells the correct manufacturer and product for each, though the only one I could get to do anything was the keyboard.
SDL isn't emulated, that's just the graphical frontend. I guess you would have to set some frameskip to snes9x to make it work at 60 FPS.Well, that's why TI advertises is as a calculator (actually rather a math&science handheld thing - meh, stupid vocabulary :P) and not a developer board :D (also @debrouxl)
Also mplayer lags o.o
But yeah, with some overclocking, it's good enough ?
That's very impressive.
Out of curiosity, are there any plans to backport this to the first Nspires? :D
Great work Tangrs! I assume it will be possible to have a Debian rootfs with an X-server?
Will try when I get some time.
So were all the USB support changes on the kernel side? Could I just use an existing FS image and boot it correctly on a USB stick?
EDIT: Also, what kind of cable do I need to buy?
EDIT Again: What sort of other stuff is on the image? GCC? Lua?
Isn't this kernel running on top of TI's OS already? That could explain some of the issues performance-wise.
Depending on what you want to connect, there are many you can buy. If you're only connecting one device, a mini-usb A to USB female adapter should work. Something like this one should work.I got one with at best buy for $15 that has four usb ports and one mini usb port
Though, I highly recommend just buying a powered USB hub that has a mini-usb B upstream port so you can just use the OTG cable that came with your calculator. I happened to have a spare one lying around so that's what I used.
Nope, once booted, it has replaced TI's OS completely in memory.Wait, so is there no possibility for a keyboard during normal OS? Because a keyboard would make oclua so much cooler.
QuoteDepending on what you want to connect, there are many you can buy. If you're only connecting one device, a mini-usb A to USB female adapter should work. Something like this one should work.I got one with at best buy for $15 that has four usb ports and one mini usb port
Though, I highly recommend just buying a powered USB hub that has a mini-usb B upstream port so you can just use the OTG cable that came with your calculator. I happened to have a spare one lying around so that's what I used.
So I can connect my cx and still hav room for four more devicesQuoteNope, once booted, it has replaced TI's OS completely in memory.Wait, so is there no possibility for a keyboard during normal OS? Because a keyboard would make oclua so much cooler.
Edit: Random thoughts: snes9x SDL on Linux on CX?But to make snes9x work, is there a need for linux ? If it is coded with SDL, can't it be ported with nSDL without linux ?
Great work Tangrs! I assume it will be possible to have a Debian rootfs with an X-server?
Will try when I get some time.
Already working on it :)
I see, so what does the cmdline do?
Also found out how to get the | key so ls | less can be used :D shift + flag does the trick (flag is in the lower right corner, below the ?! button) Scrolling can be done with b and f and exiting with q (sorry if someone else already found this, I thought it could be useful)
Have you considered trying to use one of the Nspire emulators to get it running on the non-CX's?
Just wondering, how to you get video to work?
I didn’t do anything about the rootfs because I didn’t know where I needed to change that. (also I don’t really know what it means by “your usb device”)
Many different things happen when I try many different things. If I boot with linuxloader2, wait for it to get to the login request, and then put my flash drive in the dongle, it just spews out that the cache failed
If I put the flash drive in immediately after running bootloader in linuxloader2, it seems to register it, I think, but when I run mplayer, it outputs –sh mplayer: not found.
Then it outputs some error about the flashdrive, with /64
Whenever I do it the normal way by just running the bootloader_usb.ll2.tns file, depending when I put the flash drive in, it displayes different things, but it always, ALWAYS, results in it kind of freezing with the last text being (ret_from_fork+0x14/0x24)
Anyone know what I’m doing wrong?
No, I’m using everything in the snapshot download, and the most recent initrd, and I was able to get the keyboard working, but I never did
1. Prepare your rootfs. Get a USB drive that you don't mind completely erasing. In my config, I didn't have a partition table. I just ran dd if=rootfs.ext2 of=/dev/X (replace X with your USB device).
And my dongle has 4 usb ports, with my calc connected to the mini usb port, using the cord meant for calc to calc transfers, if that makes any difference.
And I don't think I imaged the rootfs onto the USB drive.
Could you make a tutorial?
So, in summary, to get this snapshot up and running:
1. Prepare your rootfs. Get a USB drive that you don't mind completely erasing. In my config, I didn't have a partition table. I just ran dd if=rootfs.ext2 of=/dev/X (replace X with your USB device).
2. Copy bootloader and bootloader script (ensure that the config inside is correct) to a place on your calc.
3. Connect your OTG cable's A end into your calculator.
4. Run the boot script.
5. Wait until the console reads "Waiting 10 seconds...". As soon as this happens, plug in your USB drive. A lot of text should scroll by - if not, you probably didn't do step 3 correctly.
6. Wait a little and you should eventually be dumped to a shell. If you get a kernel panic, it probably means you didn't do it fast enough or your USB isn't supported by the kernel.
To get mplayer working:
1. Plug in a USB drive with the movie/video you want to play and mount it as usual. This snapshot has support for MSDOS FAT and VFAT filesystems.
2. Run mplayer -vo fbdev2 -nosound -framedrop [filename]
Link to snapshot (http://tangrs.id.au/linux_snapshots/31-10-2012/snapshot.zip)
This snapshot also has a non-working X server. If you can get xcalc or xterm to run, please email me!
Have fun!
xacto, hold Esc+Menu+Minus while booting. AFAIK, this happens when the bootloader doesn't boot anything and then resets.Thank you so much it worked! I was starting to get worried for a moment.
Hi,
I downloaded the lates snapshot and it worked perfectly for me, but my USB Keyboard (2,4 GHz Dongle) won't get accepted as a keyboard.
How can I compile your kernel to add the missing driver?
If I clone you linux-git-tree, configure it with the obvious settings for nspire it can't find any USB-Devices ("doesn't acceppt address").
Could it be I forgot to disable High Speed? But I couldn't find anything.
With my custom rootfs I can get X running .. a bit. The screen slowly goes brighter until it's completely white but the console still stays active in the background.
If I type "reboot\n" it works.
I haven't tested swap but gcc works fine without it.
Edit: If I use your config (through /proc/config.gz) it still can't find any usb-devices.
Edit2: It seems I'm hitting a buildroot issue with X: http://lists.busybox.net/pipermail/buildroot/2012-September/058504.html
Thanks for your Linux port :D
The screen slowing turning white is a problem with the framebuffer driver. It should only happen when the LCD screen goes to standby or turns off.Every second line goes white and then it's like turning off an old Gameboy Color.
Regarding the USB keyboard, are you connecting directly from the calculator or via a powered hub? Wireless dongles draw a lot of power and the USB controller might not be able to keep up (AFAIK, the calculator can only provide something like 8mA of current compared to the 500mA mandated by the USB specs).I use an external powered 7-port hub. With my custom kernel on my laptop it doesn't work, too, but with a standard kernel it does.
The screen slowing turning white is a problem with the framebuffer driver. It should only happen when the LCD screen goes to standby or turns off.This also happens to me on ubuntu :p
@tangrsI don't think so. Are those programs written in C or in C++? since C++ currently can't be run.
Have you tried to build Octave or Maxima to run on Nspire Linux ?
porting the nspire emu to the nspire
No, nceptionporting the nspire emu to the nspire
Inception, much?? :crazy:
nothing happens....Does really nothing happen?
Basically the same way as OSLauncher: while overwriting the OS, you have to make sure not to rely on any OS code, so your loader has to deliver all the functions it needs
(in the case of OSLauncher, e.g. zlib for decompressing the OS, or GCC's builtin memory functions).
After removing all traces of the previous OS (things like clearing cache), you can pass control to the new OS.
How does this get loaded?From what he says here he does rely on stock os functions. So if he does use the stock functions, how does he handle loading the linux kernel into ram and not overwriting these functions?
In-place loading. Basically, loading the kernel into memory using the stock OS functions, then let Linux take over.
The loader relocates it to the right place before launching the OS.Ah ok, so I'm assuming it handles protecting it's relocating code so that it isn't written over during the relocation process. I haven't actually looked at the code myself yet. I probably should take a peek at what I can before asking questions :P
Can this run like KDE, Gnome, Xfce, dwm, Fluxbox, [insert favourite window manager]?
Yes but it'll probably suck. Try not to forget that this is a 120MHz device with 64MB of RAM.
Why doesn't this run on the emulator?
I'm not sure. I think some co-processor instructions that Linux requires but not the stock OS weren't implemented in the emulator.
But seriously, don't email me about this (unless it is a very specific/technical question) because I don't have time to help you step by step.
The loader relocates it to the right place before launching the OS.
rhomicubo, can you please tell me what kind of hub you are using? thank youhttp://www.rocketfishproducts.com/products/computer-accessories/RFNBSKHB.html
There's no relocator in tangrs's loader, I suppose the Linux kernel relocates itself (http://amitshah.bizhat.com/arm/arm_linux_boot-1.html).
X and directfb are working!
Now we're one step closer to minecraft :D
Note: I can't login on SSH because of an german umlaut in my password and I haven't changed the keyboard-layout yet.
Note2: I don't know where that segfault came from, maybe too much ctrl-c? ;-)[/youtube]
You should try compiling gnuplot.Although you can get a better performance with the built-in from TI, here you go:
Any ideas why Vogtinator's video got so many dislikes? O.OI think they come from people who don't follow the Linux portage to the Nspire. Some might think it is fake, others might think that there is a typo in Linucx.
btw vogt your error is just that: in the bootscript you dont load the initrd, so you just have to modify the bootscrip with a text editor and add the initrd? It works fine, I don't need an initrd! My kernel doesn't support it!
How much time does it take to render a frame? Is it just too slow for real-time rotation?45 sec - 1 Minute without overclocking :-(
At first I thought the video was fake or misleading or that teachers hating to see calcs being used for stuff other than math ran into just that video, but then watched it and it was legit.Yeah, maybe I should have shown my complete setup..
Some might think it is fake, others might think that there is a typo in Linucx.That would be :banghead:.. I know some who wouldn't understand it..
From what I can tell, I am going to need a powered USB hub, keyboard, USB drive, and mouse.Yes, that's enough.
On the Ti-Nspire I think I will need about 10 Mb of space. What needs to go on the flash drive, and what need to go on the Nspire?The flash drive contains the root file system, the nspire only the kernel (2 MB), bootloader and scripts (too small to mention).
Vogtinator, do you have an actual partition on the USB drive? And if so, what type?Yes, /dev/sda1 for / (you need to customize bootscript_usb.lls) and /dev/sda2 for swap (/etc/fstab).
can you please tell me how to install the links on the ti nspire or if its already posted can you tell me where and how1. Copy linuxloader2.tns and bootscript_usb.lls onto your calc
thanks..
This may be a stupid question, but could binary distributions such as Fedora ARM be used with it?Nope, all supported devices have a Cortex A9, the nspire an armv5. openSUSE and debian work fine.
waiting 10 sec before mounting root device..Don't use a initrd! It's not needed and you can't save anything!
Ramdisk: ext2 filesystem found at block 0
Ramdisk: Loading 2061Kib (1disk) into ram disk.. done
Update: Just bought a Clickpad. Work on porting to it will begin soon!
Update: Just bought a Clickpad. Work on porting to it will begin soon!Yay, finally my friend can use linucx too :-)
Have you used scripts/checkpatch.pl on that patch, and fixed the warnings/errors if any ?Whoops, no, I forgot ::)
I am not sure what is the above, but did you just post your computer password in public?? O.O
I am not sure what is the above, but did you just post your computer password in public??Did I miss something? I want it tooooo >:D
and mounted it on the usbThat's not what you should do.. If it still doesn't work, post it in your own thread :D
Nah, I just don't have much clue what you guys are doing, being a Windows user, and I saw the word "password" in his post, so I was a bit worried (since people accidentally leaking password for one of their stuff did happen before here).Do you think his username is "username"? :P
Btw shouldn't this project have its own sub-forum in major projects?Yeah, but first we need some more developers and more Ideas, what we could do with a working kernel, so we could create a roadmap
you should try linux is so different and have so many different things is so like for programmers xd
you should try linux is so different and have so many different things is so like for programmers xdIf you have the time, you could compile the kernel on your calculator.
I saw people use such username before for various unrelated stuff (even people having passwords identical to their nicknames)I'd do that too, but "asdf" is most times occupied.
...Also you might want to continue the help discussion in another topic that was created for it here: http://ourl.ca/17509/324046;topicseen#newPlease do this :) We're happy to help you there.
Else this clutters the main topic a lot. Thanks.
just one last last question xdThat you ask in your own thread, please. I'll answer you there.
Ok, and no chance of Ubuntu screwing with my Windows install or something? (like I heard with other people such as AaroneusTheGreat a few years ago)Not at all, that's like installing it in a VM. But it's running on real hardware.
Back on topic, this was slashdotted O.O (at first I was worried the high guest count on Omni were the spambots that have been attacking us lately)Nice :D
Update: Just bought a Clickpad. Work on porting to it will begin soon!I created an account just to get updates on Linux for the Nspire, Really excited about it...
The touchpad vs clickpad isn't really an issue. (identical hardware, which is why you can just 'upgrade' by buying a touch keypad) He'd just use the clickpad port (due to the slightly different specs from the CX) with the CX's layout.
Clickpads don't have removable keypads?The touchpad vs clickpad isn't really an issue. (identical hardware, which is why you can just 'upgrade' by buying a touch keypad) He'd just use the clickpad port (due to the slightly different specs from the CX) with the CX's layout.
AFAIK, Clickpads don't have removable keypads.
Ah well, it doesn't mattter, I just got myself a second hand Touchpad which completes the collection (I now have all three).
In addition, mini-updates on progress will be posted on my twitter (https://twitter.com/tangrs).
That's a touchpad with interchangeable clickpad. But I dunno.No, its a clickpad. Touchpads are dark blue... lol
I loled at the meme tho.
will this come with some sort of GUI when it's released officially?First, we need to answer another question:
Well, browsing the Internet to be able to visit Omnimaga anywhere of course :DQuotewill this come with some sort of GUI when it's released officially?First, we need to answer another question:
What do we want to do with linux?
Just do something, gcc, movies or minecraft?
By the way (and yes I know I'm too lazy to check) does the terminal have a help command which lists all commands?Yes, and you can use "<tab><tab>" too.
Well, browsing the Internet to be able to visit Omnimaga anywhere of courseIt's already possible if you have an UMTS-Stick and 5V battery for the hub, so, we're finished, bye ;D
Well you have a point there vogtinator.At the moment we're only trying to reach the limits of the possibilities..
This doesn't really sound kind. :-\ Especially since I think he means a graphical web browser.QuoteWell, browsing the Internet to be able to visit Omnimaga anywhere of courseIt's already possible if you have an UMTS-Stick and 5V battery for the hub, so, we're finished, bye ;D
This doesn't really sound kind. Especially since I think he means a graphical web browser.No problem, midori is integrated in buildroot and ONLY needs QT and webkit..
Yeah, that was not a very kind way of telling me something I already knew. Moreover, as aeTIos said, I was talking about a graphical web browser because there is no interest to browse Omni without being able to see the projects' screenshots.QuoteThis doesn't really sound kind. :-\ Especially since I think he means a graphical web browser.QuoteWell, browsing the Internet to be able to visit Omnimaga anywhere of courseIt's already possible if you have an UMTS-Stick and 5V battery for the hub, so, we're finished, bye ;D
Yeah, that was not a very kind way of telling me something I already knew. Moreover, as aeTIos said, I was talking about a graphical web browser because there is no interest to browse Omni without being able to see the projects' screenshots.But links has support for graphics! X11 or directfb, both works (see my video)
I meant your target for this project is already reached.. Sorry if you misunderstoodQuoteWell, browsing the Internet to be able to visit Omnimaga anywhere of courseIt's already possible if you have an UMTS-Stick and 5V battery for the hub, so, we're finished, bye ;D
But links has support for graphics! X11 or directfb, both works (see my video)
Did you try multiple ROMs? Some ROMs might not work in it.Super Mario World (it's not even illegal, I own it ;) ) works on my desktop..
I think I read somewhere that you need about 10-30 times the console's processor speed in order to emulate it properly, add to that the extra chips that certain SNES games use (I think Starfox Super FX chip was 20-30 MHz)No prob at all, at least for games without superFX 240 MHz should be enough..
I wonder what will be the speed of Snes9x... I think I read somewhere that you need about 10-30 times the console's processor speed in order to emulate it properly, add to that the extra chips that certain SNES games use (I think Starfox Super FX chip was 20-30 MHz)But links has support for graphics! X11 or directfb, both works (see my video)
Maybe he just wants to watch Youtube videos on his calculator. :P
He can forget about that right nowNot if someone compiles webkit, qt and midori, midori supports Youtube HTML5.
My point exactly ;)QuoteHe can forget about that right nowNot if someone compiles webkit, qt and midori, midori supports Youtube HTML5.
But I think it'll be even slower than a slide show..
Lol, that would be great but I don't hope that much :PBut links has support for graphics! X11 or directfb, both works (see my video)Maybe he just wants to watch Youtube videos on his calculator. :P
Wow nice. I heard some students talking about this! They aren't even into calculators!Really? What did you say?
Wow nice. I heard some students talking about this! They aren't even into calculators!
I actually posted it on Reddit last week, but then it was posted 4-5 times again. This link only leads to the Ndless blog, though.Always happens on Reddit. Reposts galore :/
CAS Clickpad calculators do not have removable keyboards, but CAS-capable Clickpad calculators sold as non-CAS do :)
Yeah I saw your blog was posted there too. As for your school Keoni29 I am glad to read that a bunch of people are into Linux there. In my schools, I never heard anyone using something else than Windows or Mac.I study at the university of technology, so that helps :P
external power support would be really helpful, so i'm betting people will be interested if you can get it working =)Yeah. I opened a mini USB b plug and shortened the ground (5. pin) with with sense (4. pin) by putting some solder on the back of the contacts. then I used a file to remove a bit of the solder which was too much and would have blocked the metal case of the plug.
So, I really like linux on ti-nspire, but I want to improve the kernel a little bit, with new commands, inbuild apps and something. But I don't know how ??? . O can not get the zimage file extracted :banghead: . So i thought its identic with the files uploaded to Github , but these files have a size of 125mb.
It would be nice if someone could gelp me or if someone could upload the extracted zimage file.
Greetings and waiting for response Stennwellara.
How to compile your kernel (not using buildroot):
1. Build yourself a cross compiler for arm (little endian), you can use buildroot and the nspire-scripts.
9. Make cup of coffeeI cannot see the rule "cup", nor "of", nor "coffee" in the Makefile. Were you talking about the rule "some" and "tea" ?
Here, the "build yourself" means for me to open emacs, and start coding. Is that what you wanted to say?You could do that if you have the patience and time, but http://hackspire.unsads.com/wiki/index.php/C_and_assembly_development_introduction_on_Linux should be faster if you're not trying to compile it on a 4004 ;D
Where you talking about the rule "some" and "tea"?That'd be possible to, but the configuration is much more complicated..
Ah ! For sure I already have that.QuoteHere, the "build yourself" means for me to open emacs, and start coding. Is that what you wanted to say?You could do that if you have the patience and time, but http://hackspire.unsads.com/wiki/index.php/C_and_assembly_development_introduction_on_Linux should be faster if you're not trying to compile it on a 4004 ;D
Your prefix will be arm-none-eabi-, you just have to copy the binarys created into /usr/bin, /opt/cross or whatever directory is in your $PATH.
Ah ! For sure I already have that.QuoteHere, the "build yourself" means for me to open emacs, and start coding. Is that what you wanted to say?You could do that if you have the patience and time, but http://hackspire.unsads.com/wiki/index.php/C_and_assembly_development_introduction_on_Linux should be faster if you're not trying to compile it on a 4004 ;D
Your prefix will be arm-none-eabi-, you just have to copy the binarys created into /usr/bin, /opt/cross or whatever directory is in your $PATH.
But now imagine I have succesfuly compiled the kernel, how to compile stuff that is not included in that kernel ? (for example, how to you manage to add the extra-programs that are available by default when you run your kernel ?).
Maybe I've missed one post, but I cannot figure out how you're dealing with the *double* cross compiler (linux <> arm nspire <> arm linux).
Wow, I just checked the comments on my video, and I saw THAT:Yeah that happened with the nDoom vid I made >.<. Thankfully the other ones never got as many views as mine, though (most didn't even hit 100 views)
http://www.youtube.com/watch?v=K8P7lxQ9bcw (http://www.youtube.com/watch?v=K8P7lxQ9bcw)
Some a**hole motherf****r stole my video, I already reported it!
But now imagine I have succesfuly compiled the kernel, how to compile stuff that is not included in that kernel ? (for example, how to you manage to add the extra-programs that are available by default when you run your kernel ?).
*** Can't find default configuration "arch/x86/configs/nspire_defconfig"!The arch is wrong, it should be ARCH=arm :)
***
make[1]: *** [nspire_defconfig] Error 1
make: *** [nspire_defconfig] Error 2
btw, how can i make an arm compiler? i dont understand that.Just let buildroot do its job :)
Install ncurses (ncurses-devel) and try again.
oh, i have some problems with the final steps,
root@noobnonin-GN670AA-ABM-SG3110LA:~/linux# make zimage -j
HOSTLD scripts/kconfig/conf
scripts/kconfig/conf --silentoldconfig Kconfig
make: arm-none-eabi-gcc: Command not found
make: *** No rule to make target `zimage'. Stop.
root@noobnonin-GN670AA-ABM-SG3110LA:~/linux# mv arch/arm/boot/zimage zimage.tns
mv: cannot stat `arch/arm/boot/zimage': No such file or directory
root@noobnonin-GN670AA-ABM-SG3110LA:~/linux#
kernel linux/zImage.tns
initrd linux/initrd.tns
boot
Am I missing something ?
Am I missing something ?Yes, you need the bootscript from tangrs.
By the way, the -j option forkbombed my pc. I recommand to use -j8 instead.Really? It runs fine for me, if I run it on tty1.
It's probably a good idea to take a look at this. I'm not sure if this will work, but this will certainly help you get a working ARM compiler on your Linux box.Yes, I used this script and it works fine for compiling the kernel.
does it means its working and i dont have wifi? or does it means that it still doesnt recognize my dongle?It can't find the firmware. You need to find it and put it in the right directory on your usb-stick.
I think I may have had misunderstood.QuoteAm I missing something ?Yes, you need the bootscript from tangrs.
You don't give the kernel the parameter "root=/dev/sda" or "root=/dev/sda1".
If you want to use an initrd, use tangrs first bootloader script, before USB was working.Indeed, cmdline root=/dev/ram
I think it was "root=/dev/mem".
kernel linux/zImage.tns
initrd linux/initrd.tns
cmdline root=/dev/ram
boot
Does your kernel support initrds?Okay, so I'm not dumb.
Which output format did you choose for buildroot?
I did not choosed any format. What should I specify in order to generate an initrd that the kernel will launch like you managed to do today?Tangrs used the ext2 image format as initrd.
(even if the framebuffer doesn't work)I don't think the initrd and framebuffer problem are related..
Quote(even if the framebuffer doesn't work)I don't think the initrd and framebuffer problem are related..
I could really have tested the wrong kernel the whole time *embarrassed*
And I'm too lazy to change the version number every 10 minutes..Add an automated script that adds a timestamp to the version number so you don't have to?
QuoteAnd I'm too lazy to change the version number every 10 minutes..Add an automated script that adds a timestamp to the version number so you don't have to?
Linux in-place bootloader v2
Allocated memory:
ATAGs: 32512 bytes
Kernel and ramdisk: 11272192 bytes
Machine number: 4442
Detected a non-CX
Physical memory at: 0x10000000-0x12000000
Serial number: [...] rev1 (CAS)
kernel linux/zImage.tns
Kernel successfully loaded
initrd linux/initrd.tns
Ramdisk successfully loaded
cmdline earlyprintk debug console=ttyS0,115200n8
Kernel command line: "earlyprintk debug console=ttyS0,115200n8"
boot
Uncompressing Linux... done, booting the kernel.
Booting Linux on physical CPU 0
Linux version 3.7.0-rc2+ ([email protected]) (gcc version 4.6.2 (GCC) ) #494 Fri Nov 30 16:32:14 EST2
bootconsole [earlycon0] enabled
Memory policy: ECC disabled, Data cache writeback
On node 0 totalpages: 8192
free_area_init_node: node 0, pgdat c02e8de8, node_mem_map c0315000
Normal zone: 64 pages used for memmap
Normal zone: 0 pages reserved
Normal zone: 8128 pages, LIFO batch:0
pcpu-alloc: s0 r0 d32768 u32768 alloc=1*32768
pcpu-alloc: [0] 0
Built 1 zonelists in Zone order, mobility grouping on. Total pages: 8128
Kernel command line: earlyprintk debug console=ttyS0,115200n8
PID hash table entries: 128 (order: -3, 512 bytes)
Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
Memory: 32MB = 32MB total
Memory: 26680k/26680k available, 6088k reserved, 0K highmem
Virtual kernel memory layout:
vector : 0xffff0000 - 0xffff1000 ( 4 kB)
fixmap : 0xfff00000 - 0xfffe0000 ( 896 kB)
vmalloc : 0xc2800000 - 0xff000000 ( 968 MB)
lowmem : 0xc0000000 - 0xc2000000 ( 32 MB)
modules : 0xbf000000 - 0xc0000000 ( 16 MB)
.text : 0xc0008000 - 0xc02a9000 (2692 kB)
.init : 0xc02a9000 - 0xc02c601c ( 117 kB)
.data : 0xc02c8000 - 0xc02e9500 ( 134 kB)
.bss : 0xc02e9524 - 0xc0314200 ( 172 kB)
SLUB: Genslabs=13, HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
NR_IRQS:32
jiffies = 4294937296
Clock source registered
Timer mode set to 1, evt->mode = 1
Timer mode set to 3, evt->mode = 3
Clock events registered
sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 4294967286ms
Console: colour dummy device 80x30
Calibrating delay loop... 59.39 BogoMIPS (lpj=296960)
[...]
sram pool: 128 KB@0xc2880000
Serial: AMBA PL011 UART driver
[...]
Switching to clocksource clocksource
[...]
Trying to unpack rootfs image as initramfs...
rootfs image is not initramfs (junk in compressed archive); looks like an initrd
Freeing initrd memory: 2600K
io scheduler noop registered (default)
Serial: 8250/16550 driver, 4 ports, IRQ sharing disabled
serial8250.0: ttyS0 at MMIO 0x90020000 (irq = 1) is a 16550A
console [ttyS0] enabled, bootconsole disabled
console [ttyS0] enabled, bootconsole disabled
[...]
TI-NSPIRE keypad
input: nspire-keypad as /devices/platform/nspire-keypad.0/input/input0
[...]
BOOT1 ROM mapped to /proc/boot1_rom
Contrast settings mapped to /proc/backlight
RAMDISK: ext2 filesystem found at block 0
RAMDISK: Loading 2601KiB [1 disk] into ram disk... done.
VFS: Mounted root (ext2 filesystem) on device 1:0.
Welcome to Buildroot
buildroot login: root
#
# uname -a
Linux buildroot 3.7.0-rc2+ #494 Fri Nov 30 16:32:14 EST 2012 armv5tejl GNU/Linux
#
#
# cat /proc/cpuinfo
Processor : ARM926EJ-S rev 4 (v5l)
BogoMIPS : 59.39
Features : swp half thumb fastmult edsp java
CPU implementer : 0x41
CPU architecture: 5TEJ
CPU variant : 0x0
CPU part : 0x926
CPU revision : 4
Hardware : TI-NSPIRE Touchpad Calculator
Revision : 0001
Serial : [...]
# sleep 1
# sleep 10
#
Somewhere I read it hasn't even got an USB 2.0 controller.
But why is it an EHCI then? That doesn't make any sense..
I hope it's a real EHCI, the whole thing would run much faster.
Which calculator?
For CX I wrote some kind of tutorial in this thread.
If you have an older (Click-/Touchpad) nspire, you have to clone, config and build a kernel yourself.
BTW: Tangrs, you double-posted :-P
And my name is not "vloginator" xD
I'll send you a new patch (again, last time mail didn't work..) later.
What are the differences between the Touchpad, the Clickpad and the CX?On the one side, Clickpad and Touchpad calculators, which are pretty much similar, save for the keyboard and its handling.
Are there also major differences between these and their CAS models?Nope. The non-CAS Nspires can run the CAS OS just fine (well, with some persistence: on some calculators, it can be necessary to make dozens of attempts to yield a success, while it succeeds pretty quickly on others), as showed by the unreleased RunOS and the released OSLauncher.
On the other side, the CX, with more RAM, more Flash, color screen, a newer USB controller, different interrupt controllers, etc.Same display controller with just an other pixel format (4bpp iirc) too?
Notes: This memory does not support "Execute In Place" (XIP).Is this still valid for the CX models?
I just saw the linux kernel option "Kernel Execute In-Place from ROM".Nope, it wouldn't be possible: XIP requires random access, but NAND Flash can only be read page by page. NOR Flash would do the job: it's precisely used for XIP in TI-Z80 & TI-68k calcs (and also for the boot1 in Nspire Clickpad / Touchpad calcs).
At the moment linuxloader2 copies the complete kernel image to ram.
Wouldn't it be possible to use that option (more free ram)?
the extremely crappy screen of the Clickpad & TouchpadxD
Congratz :)
Just a little question, maybe it will sound silly to those who know ^^ :
The log says :
"Processor : ARM926EJ-S rev 4 (v5l)
BogoMIPS : 59.39"
Looking that proc reference I found this : http://pastebin.com/dFSsVaBe, which reads a BogoMIPS of 103.68.
How can it be different if it'as actually the exact same processor ?
Is there any tut? I would be vey interessed by testing that! :p
Ah yeah, obviously, thanks :)
And congratz for the touchpad LCD :)
(Also, Clickpad coming soon, as ou said it should actually work ?)
My friend owns a clickpad cas. Maybe I can persuade him to try it.
I'll try writing support for the adc (battery voltage) today, so we can see the power consumption.
900B0018 (R/W): Disable bus access to peripherals. Reads will just return the last word read from anywhere in the address range, and writes will be ignored.?
writel(~0, NSPIRE_APB_VIRTIO(NSPIRE_APB_POWER + 0x18));
Display is off, only reset turns on (and resets). ;-)
ACCE55? Very funny, TI..
Try starting linucx in Press-to-test Mode. If you put the linuxloader (or the script) in the ndless startup folder, it should be executed, even in Press-to-test Mode. I am not sure if it works with linuxloader, but other things in ndless startup folder are executed in Press-to-test Mode.Yes, I knew already (guess why ;-) )
The reason why I write this, is that Norse (the cool app for morsing around with the LED, not compiled for 3.1) worked sometimes when started i Press-to-test Mode, as I read somewhere.
You can exit Press-to-test Mode anytime by sending a complete EMPTY file with the file name 'Exit Test Mode.tns' (just create a empty text file and rename it, but watch out, it's case-sensitive!) to the - regulary only and empty - folder in the CAS.I had to do this once already, because I thought, "Press-to-test" is like a lcd- and keypad test mode.
To start this Mode, just hold Esc+On when calc is off.
Then try your LED code again and try reading if the values in the memory are different from normal mode (they should be, even before writing new values), because the LED blinks in Press-to-test mode.I'll try that.
Also cool news with the power managementI'd rather call that stupidity ;-)
Edit: Nope, linuxloader can't find the kernel image. At least not if I load it with "kernel linux/zImage.tns", maybe the path is different.Try /documents/linux/zImage.tns instead (I guess linuxloader2 searches in the current directory, which is /exammode/usr while in PTT mode instead of /documents)
Good work on the GPIO and power management interfaces thoughI don't know whether it actually works..
QuoteGood work on the GPIO and power management interfaces thoughI don't know whether it actually works..
Turning off by disabling access to all peripherals is likely to be a bug or it's not off at all, but we can't see it's actually on.
Also I don't know whether GPIOs do work, I can't test it, but some values make sense.
But what could be the cause for the adc always returning 0?
Is there already a program for ndless to test it or I do I have to do it wrong again? :D
What if I make the same mistakes again and it's returning the wrong values?
X and directfb are working!
Now we're one step closer to minecraft :D
Note: I can't login on SSH because of an german umlaut in my password and I haven't changed the keyboard-layout yet.
Note2: I don't know where that segfault came from, maybe too much ctrl-c? ;-)[/youtube]
How can the OS lock the LED when it is overwritten by linucx in the RAM?TI's OS does not lock the LED when it's overwritten by Linux; it's just that Linux doesn't activate it.
Or how can the OS restart the calc when reset button is pressed? (In earlier OS all user data was deleted when pressing reset button on the back.)Pressing this button triggers an interrupt, which is handled by TI's OS.
Or why can nClock run in background with linucx?It cannot ;)
Are there two different RAMs?Yes, there are indeed two different RAMs, but the main parts of both TI's OS and Linux use the same RAM, in the same area.
TI's OS does not lock the LED when it's overwritten by Linux; it's just that Linux doesn't activate it.Partially wrong: We don't know how the OS can unlock the LED. Whether the LED registers are locked is saved somewhere in hardware.
*((uint32_t*)0x900B0018) = 0;
*((uint32_t*)0x900B0020) = 0;
What is this register "0x900B0020"? In nspire_emu *(0x900B0020) & 0x10 is tested, if it returns false, the adc value is 0x3ff=1023.
You only have to run "startx" on your calc.But when I enter "startx", the console answers "not found".
BTW: 0x1ACCE551 is sent to the watchdog for unlocking, problably not related to the leds.
Edit: I can read the ADC via ndless, but the driver does still not work :-(
#define NSPIRE_ADC_PHYS_BASE 0xC4000000
#define NSPIRE_ADC_SIZE 0x000001DF
#define NSPIRE_ADC_VIRT_BASE 0xfed7ee21 //0x1df before BOOT1
struct map_desc nspire_io_regs[] __initdata = {
IOTABLE_ENTRY(ADC),
IOTABLE_ENTRY(APB),
IOTABLE_ENTRY(BOOT1),
IOTABLE_ENTRY(INTERRUPT),
};
adc[0] = readl(IOMEM(NSPIRE_ADC_VIRT_BASE + 0x110));
What am I doing wrong?But how knows nClock the right time after any softreboot (linucx, chrash on calc etc.)?QuoteOr why can nClock run in background with linucx?It cannot ;)
Like the rest, it is completely replaced by Linux and its userspace.
QuoteAre there two different RAMs?Yes, there are indeed two different RAMs, but the main parts of both TI's OS and Linux use the same RAM, in the same area.
And what is in the second RAM?There's the SRAM (flip-flops, fast) and the SDRAM (slow, has to be refreshed dynamically)
But how knows nClock the right time after any softreboot (linucx, chrash on calc etc.)?I think it CAN be that linucx doesn't override that value in RAM, but that's random.
QuoteAnd what is in the second RAM?There's the SRAM (flip-flops, fast) and the SDRAM (slow, has to be refreshed dynamically)
BTW: We should choose a new name, linucx is outdated and wrong. Maybe linspire?Nope, that's the name of a commercial Linux distro ;)
SRAM is the normal operating RAM like in a PC,Basically all RAMs of "large" capacity (beyond several hundreds of KBs, several MBs) are SDRAMs, because they're denser (significantly fewer transistors per bit) :)
I think, but what's in the other one?On the Clickpads and Touchpads, the screen buffer, for instance; but TI's OS stores some other stuff there, because the calculator usually flat out crashes, after exiting a Ndless program, if you draw past the end of the screen area.
Nope, that's the name of a commercial Linux distro ;-)Didn't know that.. What's your suggestion?
because the calculator usually flat out crashes, after exiting a Ndless program, if you draw past the end of the screen area.Yeah, I noticed it unintentionally..
You have to write it on a usb-stick using "dd if=rootfs.ext2 of=/dev/sdb".
Also, you are using the wrong image, the only images with X are my builds and I use only tar.bz2.
The ADC works perfectly with ndless, but not my linux kernel driver..
What am I doing wrong?
My changes in nspire_mmio.h:Code: [Select]#define NSPIRE_ADC_PHYS_BASE 0xC4000000
#define NSPIRE_ADC_SIZE 0x000001DF
#define NSPIRE_ADC_VIRT_BASE 0xfed7ee21 //0x1df before BOOT1
common.c:Code: [Select]struct map_desc nspire_io_regs[] __initdata = {
IOTABLE_ENTRY(ADC),
IOTABLE_ENTRY(APB),
IOTABLE_ENTRY(BOOT1),
IOTABLE_ENTRY(INTERRUPT),
};
Then im accessing it with:Code: [Select]adc[0] = readl(IOMEM(NSPIRE_ADC_VIRT_BASE + 0x110));
What am I doing wrong?
Is SZ_4K =1 because the size has to be in pages?
I'll change it, test it and send you a new patch.
Does X and directfb work on click and touchpads?
If not, you have to add cx_clcd_check to your classic clcd panel struct.
it didn't work because the MMU can only map whole pages, not bytes,
like it is on x86 with PAGing?
Pages have to be aligned to their size. What's with the random 0xfed7ee21 address?
I'm currently testing GPIOs with ndless. The binary (input) value of all ports toggles randomly between 0x59d00bf and 0x5bdoobf.
(Could also be periodically, sample rate is highest possible)
What is GPIO 21(0x020000)?
Also, the output value (0x80132d) doesn't vary at all. Isn't the touchpad connected to GPIOs 1 + 3?
Edit: Can I use GPIOs both as input and output? Example:
GPIO1 configured as output=HIGH, connected to ground through resistor.
Can I read input=LOW?
Edit2: With linux the gpio input still toggles randomly.
Should I implement an irq_chip for this? Directly setting, getting and changing direction are working. (At least the right values in the registers change)
Edit3: Could someone please test GPIOs? I don't know how.
http://dl.dropbox.com/u/105478372/zImagetest.tns (http://dl.dropbox.com/u/105478372/zImagetest.tns)
With useless i2c-gpio:
http://dl.dropbox.com/u/105478372/zImagetesti2c.tns (http://dl.dropbox.com/u/105478372/zImagetesti2c.tns)
I'm trying to make sense of all this, is there a build released for touchpad models yet or not?
That's probably to be expected. The pins are probably not connected to anything so it's floating.One floating pin? I'd expect more pins to float, although it's bad engineering.
The output shouldn't vary at all unless you change it.It has to be changed by the touchpad I²C driver.
I know you can do this with AVRs (people did this to make a cheap touch sensor - i.e. bring pin high and measure how long it actually takes to go high). Not sure with Nspires though.I tried it myself and it worked better than I expected.
Again, as expected from floating voltages.More important, that says GPIOs are working under linux :D
Best test for GPIO is the touchpad :-PBut the touchpad seems to be not connected to GPIOs at all.
Speaking of which, should the touchpad driver be a kernel driver or a userspace daemon (pulling strings with i2c and userspace uevents)?I²C can't be use for anything else than the touchpad, so a userspace implementation would only be more confusing.
Well, of course i2c isn't still running in the background OS: You completely replaced it. Nothing is running in the background except what Linux knows to doNo, im reading the GPIO registers with a C program started with ndless.
Is there a driver for the i2c protocol implemented yet?Yes, i2c-gpio.
Maybe we'll get lucky and find out the touchpad itself is already supported, and just the adapter needed a driver.If not, I think the serial mouse driver in linux will be a good example and it will be easy to port it to i²c.
No, im reading the GPIO registers with a C program started with ndless.
for (irq = 0; irq < controller->chip.ngpio; irq += 8) {
/* Sticky interrupt status */
writew(0xFF, NSPIRE_GPIO(irq, INT_STICKY));
/* Reset interrupt status */
writew(0xFF, NSPIRE_GPIO(irq, INT_STATUS));
/* Disable interrupts */
writew(0xFF, NSPIRE_GPIO(irq, INT_DISABLE));
}
NSPIRE_GPIO returns the adress of the given register in the given GPIO section. (And works)But the touchpad doesn't, have to investigate that further, but it's hard without any hardware-debugging like scope..This ?
Then how can I see how the OS is changing the GPIOs? Only in nspire_emu, if I compile it with custom debugging?
Simply re-enable interrupts?
Edit: As GPIOs generate only one interrupt (7) I have to use an irq_domain. But there are only 32 irq's available on the device.
Are there some kind of virtual interrupts?
irq = request_irq(controller->irq, nspire_gpio_irq, 0, "gpio", controller);
static irqreturn_t nspire_gpio_irq(int irq, void *data)
{
uint8_t pin, port;
uint16_t status_val;
uint16_t __iomem *status = NSPIRE_GPIO(0, INT_MASKED_STATUS);
for (port = 0; port < controller->chip.ngpio; port += 8) {
status_val = readw(status);
/* Ack interrupt */
writew(0xFF, status + (NSPIRE_GPIO_INT_STATUS_OFFSET
- NSPIRE_GPIO_INT_MASKED_STATUS_OFFSET));
status += NSPIRE_GPIO_SECTION_SIZE;
//if(!status_val)
continue;
//Rest cut out
}
return IRQ_HANDLED;
}
Do I have to do some other calls for registering my IRQ? I think request_irq should do it.
I just measured the outputs and inputs of some GPIOs connected to the pins on the bottom port, and it's correct.
They're even sensitive for fingertips..
The input of the pins 1 and 3 are always high, so there are indeed pullups.
But why does the touchpad not get detected? (At least not through i2cdetect)
I just measured the outputs and inputs of some GPIOs connected to the pins on the bottom port, and it's correct.
They're even sensitive for fingertips..
Yeah cool.No, a built-in cheat detector during exams :-P
We could make a lie detector...
QuoteYeah cool.No, a built-in cheat detector during exams :-P
We could make a lie detector...
(Find out which and what value if you want to access the LED :-P).
X is a bit too large to use as initrd.So I have to put the tar.bz2 on an usb stick (unzipped by the way ?), and then to connect it on the TI-Nspire CX CAS, with this kind of adaptator (https://www.google.fr/search?q=c%C3%A2ble+mini+usb+m%C3%A2le+vers+usb+femelle), don't I ?
http://dl.dropbox.com/u/105478372/zImage.tns (http://dl.dropbox.com/u/105478372/zImage.tns)
http://dl.dropbox.com/u/105478372/rootfs.tar.bz2 (http://dl.dropbox.com/u/105478372/rootfs.tar.bz2)
I posted these URLs somewhere in this thread, but I'm too lazy to search.
kernel linux/zImage.tns
initrd linux/rootfs.ext2.tns
cmdline debug root=/dev/ram console=ttyAMA0,115200n8
But the calculator crashed.I tried to lauch therootfs.ext2 this way :Which rootfs.ext2? If you downloaded the files from above, you only have zImage.tns and rootfs.tar.bz2.
But the calculator crashed.You can't use a tar.bz2 as initrd.
So I have to put the tar.bz2 on an usb stick (unzipped by the way ?)Yes, and yes, you need to unpack rootfs.tar.bz2.
and then to connect it on the TI-Nspire CX CAS, with this kind of adaptator, don't I ?Your link is imprecise. What you need is a fairly uncommon male mini-A to female A cable.
But do I need to have a special kind of usb stick ?No, Linux can work with any well-behaved USB Mass Storage Device.
And then, what have I to launch ?linuxloader2, preferably invoked through a script, as described into the documentation ;)
why help command doesn't existIt does on bash; maybe it does not on the size-constrained busybox.
and why commands like "ls", "cd" don't have any effect ?* when run from a directory which does not contain any non-hidden files - which is, precisely, the case when logging in as root in Vogtinator's rootfs - it's perfectly natural that ls doesn't print anything, that's the expected behaviour ;)
These questions should probably be posted in the Nspire Linux questions topic ;)Ok, I answered here (http://ourl.ca/17509/328401).
#define NSPIRE_TOUCHPAD_BASE 0x90050000
static void nspire_touchpad_write(uint32_t value, uint32_t addr, struct nspire_touchpad *touchpad)
{
*((uint32_t*)(addr + NSPIRE_TOUCHPAD_BASE)) = value;
}
static uint8_t nspire_touchpad_read(uint32_t addr, struct nspire_touchpad *touchpad)
{
return *((uint32_t*)(addr + NSPIRE_TOUCHPAD_BASE));
}
/* Reset */
nspire_touchpad_write(0, 0x38, touchpad);
/* Set port to 0xFF */
nspire_touchpad_write(0xFF, 0x10, touchpad);
/* Set page to 0x04 */
nspire_touchpad_write(0x04, 0x10, touchpad);
/* Reset */
nspire_touchpad_write(0, 0x38, touchpad);
/* Set port to 0xFF */
nspire_touchpad_write(0xFF, 0x10, touchpad);
/* Increase 'reading' */
nspire_touchpad_write(0x100, 0x10, touchpad);
/* Read current page */
read[0] = nspire_touchpad_read(0x10, touchpad);
As the Touchpad is a resistive one, it should recognize more than one contact with finders...Wrong :P Only capacitive and optical touchsensitive interfaces are capable of recognizing more than one position.
Is that possible under linux where not the standart driver from the OS is used?Nope, only position, velocity and proximity can be read.
Wrong :P Only capacitive and optical touchsensitive interfaces are capable of recognizing more than one position.Ouch. But I thought of the right type... ;)
So this is limited by the firmware in the touchpad itself?QuoteIs that possible under linux where not the standart driver from the OS is used?Nope, only position, velocity and proximity can be read.
http://hackspire.unsads.com/wiki/index.php/Keypads#Touchpad_I.C2.B2C (http://hackspire.unsads.com/wiki/index.php/Keypads#Touchpad_I.C2.B2C)
And somewhere in the web I saw a resitive touchpad witch could regocnize up to five fingers and different pressure...But not five independent positions? My old laptop with resistive touchpad could determine the count of fingers I was pressing with (Scrolling, rightclick). Gestures like zooming weren't possible.
So this is limited by the firmware in the touchpad itself?Apparently, yes. But you can't get more information than position and proximity/pressure anyway.
I am not sure, it could also have been another type of touchscreen...QuoteAnd somewhere in the web I saw a resitive touchpad witch could regocnize up to five fingers and different pressure...But not five independent positions? My old laptop with resistive touchpad could determine the count of fingers I was pressing with (Scrolling, rightclick). Gestures like zooming weren't possible.
I found a video where a touchpanel can recognize more fingers:I think they're subdividing the screen into sections, each treated seperately.
Im a bit of a noob, and I can't load the kernel for some reason, don't know why? We can't help you if you don't provide enough information.
I go kernel /linux/zImage.tns and it tells me that the kernel does not exist or is emptyQuoteIm a bit of a noob, and I can't load the kernel for some reason, don't know why? We can't help you if you don't provide enough information.
What did you do and which step fails?
kernel /linux/zImage.tns and it tells me that the kernel does not exist or is empty
kernel linux/zimage.tns (no slash before linux)Yes, I thought he was using one of the scripts here. (Which would be better)
4. Download my patch (for X, directfb...) "wget http://dl.dropbox.com/u/105478372/fbdev.patch" and apply it "git apply fbdev.patch"
Every version you can find here is official ;-)Ok but i'm lost in all these versions :$ . I read a little bit english so I find it's to hard to read all the 35 pages :/ . What I must to do to have grafics gui? or usb and keyboard?
Here (http://tiplanet.org/nspire-linux-builds) should be everything you need, only for an initrd and/or rootfs you have to look around these 35 pages :-P
Is there a special extension you need for the usb drive? like ext*, MS-DOS or something else?
Is there a special extension you need for the usb drive? like ext*, MS-DOS or something else?
with a unix system, just copy it with dd on the drive, tripple-check your spelling, otherwise all your data will get destroyed.
the dd command formats it in the right format, I think ext2 in this case.
edit: sorry, this is just possible if the file has a .ext2 ending. othwerwise just format your stick with ext4 (or any other ext*) and copy all the data in the folder . in ther archive on the stick.
What must I write to tell linux to use a partition of my stick as swap? (it is formatted as swap)
ps: my usb power supply is finished (the circuit part). It works quite good, I just have to buy more powerful batteries (~500mAh). I can even connect my little USB HDD, one without external power supply, all power is given by the USB, in my case my circuit. I will publish pictures soon. The HDD eats up to 0.6A.
OMG: If I get a kernel panic beacuse it can't find my root fs on my stick, after a couple of minutes some text output about EHCI controllers is running over the screen until i hard reset my calc... I thought, a kernel panic would total crash the kernel and nothing will happen anymore?
Just tried my first attempts with USB booting, fails with kernel paic about no root fs... Any ideas?
-Stick properly formatted and data on it
-right files used (vogtinator's)
-Stick is recognized (as sda)
I did all this already...
Cable is plugged in while still in OS mode, then booting the kernel via ll2 script (the rootdelay is set to 10). I plug my stick in when message appears and then it recognizes my hub and the stick as sda.
After serveral seconds I get the kernel panic.
I can't even mount the stick when I boot the kernel with an initrd and then plug my stick in and type 'mount /dev/sda' or something like this.
Edit: everything is fine. I tried it without partition table, now running.I think you forgot to change your bootloader script.
I think I was too tired yesterday...
I changed nothing with my bootscript...Exactly.
/dev/sda2 swap swap defaults 0 0
You have to format it before: mkswap /dev/sda2
Someone should update teh FAQ. We can run X now...At the moment the kernel doesn't even boot for me.
Can this run like KDE, Gnome, Xfce, dwm, Fluxbox, [insert favourite window manager]?Xfce, dwm, Fluxbox and LXDE should work painless.
Yes but it'll probably suck. Try not to forget that this is a 120MHz device with 64MB of RAM.
Great!
I hope I have some time this weekend to continue working on a touchpad driver, was pretty busy last week.
Serial debugging is really good for that, the screen is way to small to read tons of lines of debugging messages..
lso, in other news, I2C is working on all touchpad platforms. Now we just need a driver for the touchpad. Just a heads up, since we're using the I2C bus now, we should define a I2C driver instead of a platform driver.Can I do it? :)
If you're using an initrd (which needs decompression as well), it doesn't make any difference.
I'd say XZ, but do we really have to discuss about 0.5 MB (the kernel won't be much larger in the future)?Quotelso, in other news, I2C is working on all touchpad platforms. Now we just need a driver for the touchpad. Just a heads up, since we're using the I2C bus now, we should define a I2C driver instead of a platform driver.Can I do it? :)
I'll get cracking on the hardest device then - the NAND.Yay! But we don't have any filesystem driver for it..
QuoteI'll get cracking on the hardest device then - the NAND.Yay! But we don't have any filesystem driver for it..
But the driver shouldn't be TOO hard, the emulator source should be enough, maybe there's already a driver for our chip available?
The filesystem, we'll leave til later to solve. Perhaps the recently released nLaunch could help us here?Not nLaunch itself, but...
Edit: I've seen some interesting code hidden in the OS that formats the flash.... in the community, we've known for nearly three years the boot2 1.4.1571 for Clickpad/Touchpad contains tons of debugging and testing code for Nucleus and its elements, especially filesystem operations :)
Maybe there's some sort of data structure that we could modify to trick the OS into believing we have less NAND than we actually have and have it format the filesystem to only utilize that much. Under Linux, we could partition the NAND up and only use the portion that the Nspire OS doesn't use.
QuoteThe filesystem, we'll leave til later to solve. Perhaps the recently released nLaunch could help us here?Not nLaunch itself, but...QuoteEdit: I've seen some interesting code hidden in the OS that formats the flash.... in the community, we've known for nearly three years the boot2 1.4.1571 for Clickpad/Touchpad contains tons of debugging and testing code for Nucleus and its elements, especially filesystem operations :)
Maybe there's some sort of data structure that we could modify to trick the OS into believing we have less NAND than we actually have and have it format the filesystem to only utilize that much. Under Linux, we could partition the NAND up and only use the portion that the Nspire OS doesn't use.
The boot2 3.1.131 is smaller, and presumably doesn't contain as much.
BTW: Buildroot builds are working now.Great, thanks ;)
I downloaded one, ran "tar -xvf xconfig.tar.bz2 -C ." and was surprised, MY PWD WAS "/"Ouch. In this case, you've unleashed a world of hurt onto yourself, indeed :(
Look what I found out: http://www.linux-mtd.infradead.org/nand-data/nanddata.html (http://www.linux-mtd.infradead.org/nand-data/nanddata.html)
The NAND is already actually supported by linux!
I was a bit frustrated because of this silly synaptics_i2c polling too slow, so I did a bit of research.
Edit: After reboot in linux the touchpad doesn't work anymore with nucleus, you have to reboot. But it doesn't boot anymore and you have to run NAND-Tests everytime you reboot in linux. I'll try disabling access with 1<<7 to 0x900B0018
Edit2: The TOUCHPAD WORKS! I'll upload a video later/tomorrow
Vogtinator, you have royally screwed your desktop. You extracted an ARM linux install on top of your x86 linux root. You're lucky that it still boots, likely thanks to various configuration differences between the two.Nope, it didn't boot. Had to restore the files from another laptop:
The NAND chip itself is supported and always has been. But the NAND controller isn't :(Is it the same on all nspires?
Nice, I look forward to seeing itHere you go:
QuoteVogtinator, you have royally screwed your desktop. You extracted an ARM linux install on top of your x86 linux root. You're lucky that it still boots, likely thanks to various configuration differences between the two.Nope, it didn't boot. Had to restore the files from another laptop:
"export list=`tar -tf xconfig.tar.bz2`; for i in $list; do echo $i; rm /mnt/$i; rsync -lptgoDvzP /media/$i /mnt/$i; done;"QuoteThe NAND chip itself is supported and always has been. But the NAND controller isn't :(Is it the same on all nspires?
QuoteNice, I look forward to seeing itHere you go:
Though, some one did ask about it in a mailing list in 2008 and probably succeeded in writing one.I read:
It sounds like it isn't 'NAND' at all, as far as you're concerned. It's
a disk drive of some form. Usually these things present themselves as
IDE, so you'd use the IDE driver. If it has its own 'special' interface
then you probably want a dedicated block driver for it; nothing to do
with the MTD subsystem at all.
WTF? Flash controller with IDE interface for ARM SoCs?
QuoteThough, some one did ask about it in a mailing list in 2008 and probably succeeded in writing one.I read:Code: [Select]It sounds like it isn't 'NAND' at all, as far as you're concerned. It's
WTF? Flash controller with IDE interface for ARM SoCs?
a disk drive of some form. Usually these things present themselves as
IDE, so you'd use the IDE driver. If it has its own 'special' interface
then you probably want a dedicated block driver for it; nothing to do
with the MTD subsystem at all.
Edit: After reboot in linux the touchpad doesn't work anymore with nucleus, you have to reboot.With 1<<7 it doesn't damage the flash anymore, but the touchpad does still work only after a reboot.
But it doesn't boot anymore and you have to run NAND-Tests everytime you reboot in linux.
I'll try disabling access with 1<<7 to 0x900B0018
But one problem does still exist:Edit: After reboot in linux the touchpad doesn't work anymore with nucleus, you have to reboot.With 1<<7 it doesn't damage the flash anymore, but the touchpad does still work only after a reboot.
But it doesn't boot anymore and you have to run NAND-Tests everytime you reboot in linux.
I'll try disabling access with 1<<7 to 0x900B0018
I don't think the touchpad problem is too easy to find, but the flash problem has to be solved asap!
I didn't lose my data yet, but why is linux doing something with the NAND at all?
But it works! ???
At least there weren't any problems after 1<<7.
Hmmm. I see. In that case, move the disable from classic.c to common.c.You put "/* Renable bus access to everything in case the OS disabled them */" there already.
Yeah, you should fix that :(
I don't know how, maybe don't map it at all?
Did it happen to you, too?
If not, my device really hates me (even the reset-button doesn't work always)
Maybe I'm testing too much?
Now I'm worrying about my reset-button and flash..
Oh, now I remember what we have to support, too:
Charging the battery while running linux!
It doesn't work yet.
Edit2: I compiled psplash and now we have a nice progress bar on boot:
(http://i.imgur.com/Fb7jOl.jpg) (http://imgur.com/Fb7jO)
I am also planning to get a contrast driver working for the classics so we can remove the ugly /proc/contrast and /proc/backlight files./sys/class/backlight interface?
I am also planning to get a contrast driver working for the classics so we can remove the ugly /proc/contrast and /proc/backlight files.Sure, would be good :)
I wonder where the right place for /proc/adc is.I think it's something more complicated involving the battery and/or power stuff. Not necessarily a must for the very first mainline RFC submission.
I think it's something more complicated involving the battery and/or power stuff.I think http://www.mjmwired.net/kernel/Documentation/hwmon/sysfs-interface (http://www.mjmwired.net/kernel/Documentation/hwmon/sysfs-interface) is right, but no documentation :-(
Not necessarily a must for the very first mainline RFC submission.Not really necessary, but so we know whether the battery is charging.
The experience with the CX shows that on the CX, IMO, the AHB frequency should never be touched. The default is 66 MHz, and NAND memory corruption occurs quickly if the AHB is set to 75 MHz. 72 MHz seems to be safer, but then it's less than 10% overclocking margin.
The Clickpad & Touchpad have higher tolerance to AHB overclocking, IIRC.
Why build in such a limitation? just make sure there's a warning somewhere, and make the default lower. Ideally, the default would be normal, so new users can't blame their problems on it.
Nowadays, /dev/sda is usually the host disk of the host computer (or the VM), so you probably mean /dev/sdb
Better change this before an idiots types this in an terminal on his pc..../dev/<usb> would be better, many use a second hdd.
Is it possible to get X working on a click pad/touchpad? Mine complains about the color depth being unsupported. Is there a way around that?
The contoller http://hackspire.unsads.com/wiki/index.php/Memory-mapped_I/O_ports#C0000000_-_LCD_controller (http://hackspire.unsads.com/wiki/index.php/Memory-mapped_I/O_ports#C0000000_-_LCD_controller)
Supports 8 bpp. Maybe just use 8bpp instead of 4bpp?
101 = 24 bpp (not applicable to TI-Nspire's STN LCD).
Ok. 'cause there's written:Speed issues ?Quote101 = 24 bpp (not applicable to TI-Nspire's STN LCD).
So apparently even 16 bit are possible? That'd be even better!
But why doesn't TI use this? SRAM can't be the reason
Yes, it is. (hopefully)
I didn't test x, I used links -g (directfb) which printed
"current mode not upported".
It works only if I return 0 in clcdfb_check.
That's exactly the same error mssage we had earlier.
I cannot find sources (even the "free 30-days source demo" doesn't work when logged in), but maybe already packaged libs exists for Linux running on ARM9 ?Works for me.
nobody really knows how to interface with the NAND controller.Isn't the nspire_emu source enough to start from?
So, would a basic NAND driver potentially fix the issue with partially corrupting the NAND on reboot? (My CX CAS often freezes on reboot or it reboots with a non-functional touchpad, very weird).The latest version (actually, some days ago) resets the touchpad before rebooting. I haven't had an issue since, hard reset still doesn't work.
You would have to load boot2 in memory, and to its specific address. I don't think Linux will like that^^.MMU? (Just map the right pages)
Edit: http://ftp.icpdas.com/pub/beta_version/WinPac-8000/flashfx/dcl/common/loader/reliance/dlrelcore.h (http://ftp.icpdas.com/pub/beta_version/WinPac-8000/flashfx/dcl/common/loader/reliance/dlrelcore.h)I hate you so much :p
Edit2: http://ftp.icpdas.com/pub/beta_version/WinPac-8000/flashfx/doc/ (http://ftp.icpdas.com/pub/beta_version/WinPac-8000/flashfx/doc/) Someone forgot to make a .htaccess xD ;)
I hate you so much :pAnd I love google so much :P
Edit: Nice find, Vogtinator, someone should save that before they realize their mistake.Guess what I'm doing right now ;-)
You have to set up a few things before being able to read from files. I haven't looked precisely into it though, so I don't know how hard it would be.I don't know it, either.
Quotenobody really knows how to interface with the NAND controller.Isn't the nspire_emu source enough to start from?
Why should we need to reverse-engineer it?
We have the source code! (And it works, could confirm it with an hexeditor)
FlashFX is patented, only the wear-leveling, so we can use it read-only?
Anyhow, I was talking about reversing the OS for the NAND driver.NAND-related code underlying filesystem code will be easier to find in a 2- MB boot2 than in a 10+ MB OS containing lots of irrelevant clutter :)
Finding anything, even in a 2MB file, isn't even that easy. I have been searching through a 2 MB SNES rom and didn't find the SNES mouse BIOS for over a week. Wasn't what I was looking for. I still haven't found all of that.
maybe it has some kind of unlock sequenceThat'd be visible in nspire_emu's code
Isn't the boot2 programmed into the nand?Yup, it is, but in an area that is not written to by FS operations, and cannot therefore be corrupted by FS operations performed at too high a AHB clock rate.
How does it get loaded then?Loaded by the boot1, yup.
Would boot1 be easier to rev-eng if it needs to access the flash?For mere NAND Flash memory access, indeed, it's easier than the boot2.
I don't want to lose my loved boot2 ;)
Does is work in nspire emu?
You could easily compare the image with your bytes read.
Now, how should I test write support without killing it?Use nspire_emu, even I wasn't able to brick it ;-)
QuoteNow, how should I test write support without killing it?Use nspire_emu, even I wasn't able to brick it ;-)
If it works, test it on real hardware (Please do it, I don't want to brick mine :-) )
We really need to get linux running with nspire_emu, that would make thing
a lot easier
Just emailed you something that may be of interest. Linux doesn't run on nspire_emu right now thoughI read it, but seems to be not very useful :-(
I also added MTD partitions into the mix so you can dump your boot2 and diags via Linux if you really wanted toCould you implement one for the filesystem, too?
The worst that can happen is that I have to reinstall the OSActually (but not very likely) you could damage boot2 if you write to the wrong bytes.
QuoteJust emailed you something that may be of interest. Linux doesn't run on nspire_emu right now thoughI read it, but seems to be not very useful :-(QuoteI also added MTD partitions into the mix so you can dump your boot2 and diags via Linux if you really wanted toCould you implement one for the filesystem, too?
I'd experiment a bit with flashfx support. (Which seems to be harder than reliance)QuoteThe worst that can happen is that I have to reinstall the OSActually (but not very likely) you could damage boot2 if you write to the wrong bytes.
Edit: HehThere were at least 3 discussions about linux before you began working on it :D
@Vogtinator, we could use this to write a read-only filesystem driver for FlashFX and Reliance? http://ourl.ca/99835I already added this page to my favourites three days ago ;)
QuoteEdit: HehThere were at least 3 discussions about linux before you began working on it :DQuote@Vogtinator, we could use this to write a read-only filesystem driver for FlashFX and Reliance? http://ourl.ca/99835I already added this page to my favourites three days ago ;)
The part about reliance is useless, "INOD" is actually just a tiny part of the whole:
http://ftp.icpdas.com/pub/beta_version/WinPac-8000/flashfx/dcl/common/loader/reliance/dlrelcore.h (http://ftp.icpdas.com/pub/beta_version/WinPac-8000/flashfx/dcl/common/loader/reliance/dlrelcore.h)
Sadly they use FlashFX Tera instead of FlashFX Pro 3.0, but vfbdump.c seems to support both.
Daniel, you forgot to add include/linux/mtd/nspire_cx_nand.h :(
is this the only way?
If nspire os is gone, where does rebooting get it from?
I haven't had very much time lately, but X still does not work for me. I am getting an error like fatal server error: no screens found. I probably just havent enabled the right setting in the kernel.You don't need to change anything, if you can see the framebuffer-console everything is set up correctly.
The kernel on tiplanet does not work. It mounts the rootfs as read-onlyCorrupted download I think. Which image do you use? X and booting from flashdrive?
CONFIG_LOCALVETSION, too?
So, after all of this hard work, what can you do on Linux?
You use 80% of the available RAM so you can do what with it?
Run small programs on it?
oh OK, still not very appealing to me until you make a video showing all of the cool stuff you can do on it.
oh OK, still not very appealing to me until you make a video showing all of the cool stuff you can do on it.
The latest kernels are not working for me.What exactly doesn't work? Kernel Panic, random pixels on the display or even crashing?
Rule #1: Don't have both TI's software and TilP at the same time.Wrong ;)
kernel linux/zImage.tns
cmdline root=/dev/sda earlyprintk debug console=tty0 console=ttyAMA0,115200n8 rootdelay=10
boot
The latest kernels are not working for me.
Do you have the old version of the bootloader by any chance? If you enter the bootloader (without the script), and use the mach command, what does it give you?
Do you have the old version of the bootloader by any chance? If you enter the bootloader (without the script), and use the mach command, what does it give you?
It says "Machine ID is set to 3503"
Is there more than one version of Linux bootloader v2?
I have gotten Linux to work before with an older kernel, likely an older bootloader, and an initrd.
Also, I had an older version of TiLP, so that may have been my problem.
is there a ndless program to update the OS (and therefore ndless)?Why do you want to update your Nspire OS ?
kernel linux/zImage.tnsin manually to test it, if it works, save it as bootscript.
cmdline root=/dev/sda rootdelay=10
On which device?
So I open my linux loader and run this.
kernel linux/zImage.tns
initrd linux/initrd.tns
cmdline root=/dev/ram
boot
it runs a bunch of code and freezes at r4:00000000 r3:00000000
what do I do? thx in advance to anyone that helps
Sorry... I'm totally a n00b at this...
let me try.... do I run them as 2 seperate commands or all in one? for example rdsize 0x4000 (enter) boot or rdsize 0x4000 boot (enter)?So I open my linux loader and run this.
kernel linux/zImage.tns
initrd linux/initrd.tns
cmdline root=/dev/ram
boot
it runs a bunch of code and freezes at r4:00000000 r3:00000000
what do I do? thx in advance to anyone that helps
Sorry... I'm totally a n00b at this...
What if you add a rdsize 0x4000 before the boot?
never mind, now it says hi, wtf are you doing with me? nanocx login: what do i do lol
never mind, now it says hi, wtf are you doing with me? nanocx login: what do i do lolLogin with "root" password.
umm lol thats what the calc says ill try to get a screennever mind, now it says hi, wtf are you doing with me? nanocx login: what do i do lol
Huh?
On which device?
On your virtual machine.
To make sure USB host always works, try reading up http://hackspire.unsads.com/wiki/index.php/Linux#USB
On which device?
On your virtual machine.
To make sure USB host always works, try reading up http://hackspire.unsads.com/wiki/index.php/Linux#USB
fdisk -l shows nothing, is that normal? :-\
EDIT: Can't get it to work setting the disk value as /dev/sdb (or sdb1)
I read that article, that is actually why the read light is working again.
After typing "fsck /dev/sda" before mounting: "fsck: fsck.auto: No such file or directory"What distro do you use? They f**ked it up.
The drive is accessible from Linux when booted with an initrd, and a USB keyboard works.Then you should be able to use it as root=<drive>. You have to substitue <drive> with exactly the name of your drive you were able to mount.
QuoteAfter typing "fsck /dev/sda" before mounting: "fsck: fsck.auto: No such file or directory"What distro do you use? They f**ked it up.
QuoteThe drive is accessible from Linux when booted with an initrd, and a USB keyboard works.Then you should be able to use it as root=<drive>. You have to substitue <drive> with exactly the name of your drive you were able to mount.
The fsck: fsck.auto error is from when I tried the same thing on the calc...Probably some weird issue with busybox and buildroot.. It ran fine some time ago.
EDIT: IT'S WORKING!!! It's loading now! Thank you!Great!
EDIT: Oops... Typed "X", now there's a blank screen, what do I do now... (other than reboot)Try "startx". You can type "Ctrl + Alt + F1" on an USB keyboard and press "Ctrl + C" then.
From what I've read, GCC is not a good compiler to use on the nspire.
What compiler would you use instead?
EDIT: Also, a couple other things:
1. Is there a way to disable the USB debug messages
2. Is there a way to change the welcome message right before the "linucx login:"
3. Is there a way to make the X terminal not extend off the screen
4. Are the X programs supposed to have windows borders (to move them around and close them)
5. Is there a way to draw pixels in C or C++ code as of yet
That time comparison seems a little off, depending on where nLaunch's exploit is. (I haven't used it since I currently don't have an nspire)
If nlaunch starts loading before the RSA validation on the OS file would begin, then you should see a much faster boot time than the standard OS per MB.
1. Yes. Recompile the kernel with no USB debugging messages.
2. Yes. You should be able to just mount the rootfs on your virtual machine and modify the welcome message from there.
3. Not as far as I know. X was probably designed for larger screen sizes so the default window size is probably a reflection of that.
4. The borders and being able to drag stuff around is controlled by a window manager (which runs on X). twm is the one that looks most X-y but you can use others right up to Gnome/KDE (though, it'd probably be pretty slow).
5. I believe the directfb library will let you do that.
One easy way to reduce the x terminal screen size is to reduce its font size. It sets its dimensions to whatever is 80x24.
Update
I've started working on nLaunch integration. Basically, I'm writing up some software that will package up the kernel into a format that boot2 likes and will be launchable with nLaunch directly.
Pretty much everything is done but unfortunately, boot2 doesn't like the file I built and won't boot just yet. Once I solve this, we'll be able to boot Linux directly from boot2 without the Nspire software even existing (i.e. a 'permanent' installation).
This can save some a lot of loading time since we don't have to wait for boot2 to load a ~9MB OS into memory then load the ~2MB kernel + initrd afterwards - we can simply have boot2 load our 2MB kernel directly! This will reduce the time from cold boot to a Linux shell down to about 12-15 seconds. For reference, it normally takes ~50 seconds to get to a Linux shell from a cold boot.
I hope that post made sense. The hours of coding has messed with my brain a little XD
If you got this working would there be a way to get back to the normal OS?Sure, by getting rid of nLaunch (as described in the README, by removing the OS through the maintenance menu) :)
kernel linux/zImage.tns
cmdline root=/dev/sda earlyprintk debug console=tty0 console=ttyAMA0,115200n8 rootdelay=10
boot
?@Naruto: Try doing the following:The initrd works.
1. Rename your "linux" folder to "linux old"
2. Create a new "linux" folder
3. Download all the files needed to run Linux (Do not use any of the ones you already have)
4. Place them in the new "linux" folder and try booting linux (use a initrd first to make sure it works)
This worked in my case.
@Naruto: Try doing the following:The initrd works.
1. Rename your "linux" folder to "linux old"
2. Create a new "linux" folder
3. Download all the files needed to run Linux (Do not use any of the ones you already have)
4. Place them in the new "linux" folder and try booting linux (use a initrd first to make sure it works)
This worked in my case.
As I tried lauchning it using it using the latest rootfs, it displayed a lot more stuff than before. At the end it just repeated the line "can't run '/sbin/getty' no such file or directory", so I pressed the reset button. When the calculator reboots now, it just shows the loading screen background and the clock icon in the middle. I already tried accessing the service menu and doing a complete format. But after installing a new OS it still won't boot. What to do now?
There's a maintenance menu and a diagnostics menu. Which one did you boot to? Booting into diags and running the NAND tests has always worked for me.Thanks, the calculator is booting again.
By rootfs do you mean the USB drive?Yes, I mean the USB drive.
You may want to use the initrd and try to mount the USB flash drive in there, then use the device that works to boot (sda, sda1, ...) in your boot script.
Make sure to connect the OTG cable to the calculator before starting the bootloader.
# /mnt/usb/usr/bin/nano
/mnt/usb/usr/bin/nano: can't resolve symbol 'stat64'
# /mnt/usb/usr/bin/startx
/mnt/usb/usr/bin/startx: line 202: /usr/bin/mcookie: not found
Couldn't create cookie
mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount -t devpts none /mnt/dev/pts
chroot /mnt
startx
Yes that happened to me when I mounted it. What device file did you use?I'm using /dev/sda. (I hope you don't notice that I have no idea what a device file is :))
You can try toThat seems to mount the drive as read-only filesystem. X does not work, but nano and mplayer do.Code: [Select]mount --bind /dev /mnt/dev
mount --bind /sys /mnt/sys
mount --bind /proc /mnt/proc
mount -t devpts none /mnt/dev/pts
chroot /mnt
startx
I'm using /dev/sda (I hope you don't notice that I have no idea what a device file is :))(Yes, I'm too lazy to copy your formatting :P)
That seems to mount the drive as read-only filesystem.My commands don't mount the drive at all, they require it mounted at /mnt.
user@ixtremeM5850b:~/Downloads$ fsck.ext4 /dev/sdh
e2fsck 1.42 (29-Nov-2011)
fsck.ext4: Permission denied while trying to open /dev/sdh
You must have r/w access to the filesystem or be root
user@ixtremeM5850b:~/Downloads$ sudo fsck.ext4 /dev/sdh
e2fsck 1.42 (29-Nov-2011)
Filesystem did not have a UUID; generating one.
/dev/sdh contains a file system with errors, check forced.
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/sdh: 3320/3784 files (0.5% non-contiguous), 70671/83896 blocks
I reformatted it to make sure everything is right, but still the same result.
/dev/sdh contains a file system with errors, check forced.It should be r/w mountable by now.
I used multistrap to get the rootfs, then my Raspberry pi to set it up the rest of the way (like running dpkg)In fact, it can be even simpler than that: the qemu-user-static Debian package contains everything needed to finish the creation of the rootfs, without delegating the second stage of debootstrap / multistrap to a physical ARM board :)
# Make sure we have the appropriate packages.
apt-get install debootstrap multistrap binfmt-support
# This package ought to register the appropriate definitions for binfmt-support
apt-get install qemu-user-static
# Load binfmt support
modprobe binfmt_misc
# Start a debootstrap that will fail when trying to install the packages
mkdir $DEST_DIR
cd $DEST_DIR
debootstrap --verbose --arch=armel sid . http://ftp.fr.debian.org/debian/
# Fix it. ln assumes the programs are on the same partition, use cp instead if they aren't.
ln /usr/bin/qemu-arm-static ./usr/bin/qemu-arm-static
# Start debootstrap again, and while at it, we can add some packages into the mix :)
debootstrap --verbose --arch=armel --include=locales,build-essential sid . http://ftp.fr.debian.org/debian/
COMP--._
_'|>---DEVICE
CALC--'
One more question before I make a hub purchase: What is the largest number of ports supported (or recommended) for Linux?
I'd like to get one with more than four and have seen some with ten, but I wanted to make sure something like that would work.
auto eth0
iface eth0 inet static
address 192.168.0.45
netmask 255.255.255.0
gateway 192.168.0.1
I don't know the mechanics of Omnimaga and if editing a message bumps a topic. So just in case...You don't get notified per mail but you will be notified if your in #omnimaga. (I think)
Any ideas. I know 192.168.0.1 is the router address for wireless access, is there a different method to connect with Ethernet?You need to specify a dns-server but it's easier with DHCP:
auto eth0
iface eth0 inet dhcp
#omnimaga doesn't provide notices for edited messages as far as I know. The "new" marker next to the topic will re-appear, but the topic won't get moved to the top of the topic list.QuoteI don't know the mechanics of Omnimaga and if editing a message bumps a topic. So just in case...You don't get notified per mail but you will be notified if your in #omnimaga. (I think)
Hi, if this ends up posting, that will be pretty exciting. Has anyone ever posted on this topic from the nspire?I couldn't login.. My password contains umlauts.
I couldn't login.. My password contains umlauts.
i've downloaded the initrd (http://tiplanet.org/nspire-linux-builds/start_initrd.ll2.tns),That's the bootscript again :P
i've connected the keyboarb to the powered usb hubCould you see some messages? Could you post the output of "lsusb"(all lines) and "dmesg"(the lines that seem relevant)?
Could you see some messages?
Could you post the output of "lsusb"(all lines) and "dmesg"(the lines that seem relevant)?
If the login appears, that means that it worked. The keyboard may not work, I found that kernels that worked with initrds did not work with usb, and kernels with usb did not work with initrds. When it says "nanocx login", try typing root for the username on the calculator keypad, and that should work.yes i've done it and the keyboard still don't work -.- and i tried with 2 keyboards -.- a wireless keyboard and a normal keyboard
Could you post the output of "lsusb"(all lines) and "dmesg"(the lines that seem relevant)?
I found that kernels that worked with initrds did not work with usb, and kernels with usb did not work with initrds.Really? Mine works fine with both.
when i type the lsusb command nothing happens, no messages, just go to the next lineQuoteI found that kernels that worked with initrds did not work with usb, and kernels with usb did not work with initrds.Really? Mine works fine with both.
The dmesg output seems right, but lsusb should definitely output something relevant.
Could you try to unplug the hub before booting and plugging it in after it's booted?
Do you have a powered usb hub (which you need)?
Could you try to unplug the hub before booting and plugging it in after it's booted?well, i tried it now. i've booted the Linux without the hub connected to the nspire and i've pluged it when the Linux booted and i tried to use my 2 keyboards (microsoft wireless keyboard 700 v2.0 and e-3lue scort pro gaming) and nothing happened when I typed
No messages at all?no messages at all -.-
Could you try some older kernels?
Does ti's os notify you about the hub been plugged in?
If TI's OS doesn't recognize the hub it's not supported.
Maybe you can try another one?
Link is here (http://tiplanet.org/nspire-linux-builds/kernel.html)
You can try the next expanded version.with the next expanded version it's the same thing: nothing happens -.-
The defconfig kernels may work, too, but I don't know
whether USB keyboard support is enabled.
As to the USB issue, did you try the workaround on the Wiki? There's a bit of weirdness with USB host.
http://hackspire.unsads.com/wiki/index.php/Linux#USB
So like root=/dev/ram rootdelay=10?
Oh and, uh, what exactly are my functions dong, in a newb language?
Yeah it just keeps hanging...
No. You should connect the pendrive before using the bootloader.well, i've allready tried this lots of times but the nspire answer is ever the same -.-
Connecting to the computer would be the exact opposite.
AlexisVieira, the best I can tell you is to read everything you can and learn enough to figure it out as you go along.ty. I'll try
Ultimately, that's how great computer programmers are born in today's society.
LinksII/LynksII is a graphical version of Links that is my favorite lightweight browser.
# Example multistrap configuration file for the lenny shortcut.
[General]
arch=
directory=
# same as --tidy-up option if set to true
cleanup=true
# same as --no-auth option if set to true
# keyring packages listed in each debootstrap will
# still be installed.
noauth=false
# whether to add the /suite to be explicit about where apt
# needs to look for packages. Default is false.
explicitsuite=false
# extract all downloaded archives (default is true)
unpack=true
# the order of sections is not important.
# the debootstrap option determines which repository
# is used to calculate the list of Priority: required packages.
debootstrap=Emdebian Updates
aptsources=Emdebian Updates
[Emdebian]
packages=apt
source=http://www.emdebian.org/grip
keyring=emdebian-archive-keyring
suite=stable
[Updates]
packages=
source=http://www.emdebian.org/grip
keyring=emdebian-archive-keyring
suite=stable-proposed-updates
but when I booted it said something about runlevel,I think there's no default runlevel set, but without the whole message it's not possible to discover the real cause.
When I booted again it ran fine, but there was no Debian (as in I tried apt-get and it gave an error about the command not existing).Maybe it's just not installed?
Does it work with debootstrap?
Maybe it's just not installed?
If it boots, Debian is installed correctly. Even without apt-get it is debian, only dpkg should be there.
Could there be a problem when installing over an existing file system?I wouldn't do that. Maybe it checks if a file exists before overwriting.
What do you mean by that?debootstrap squeeze --foreign --arch=armel <root>
So wait, Debian ARM works?EVERY Linux distro for arm(v5) works!
/usr/sbin/debootstrap: 175: [: =: unexpected operator
/usr/sbin/debootstrap: 415: /usr/sbin/debootstrap: : Permission denied
mkdir root
debootstrap --arch armel --foreign --no-check-gpg squeeze root
qemu-binfmt-conf.sh
cp `which qemu-arm` `which qemu-arm-binfmt` root/usr/bin
chroot root
debootstrap/debootstrap --second-stage
Sorry, I tried running "qemu-binfmt-conf.sh", "qemu-binfmt-conf", and just plain "qemu"
r4:00000000 r3:00000000
.kernel Linux/zImage.tns
initrd Linux/initrd.tns
(rdsize 0x4000)(<-- but it still freeze)
kernel linux/zImage.tnsYou may also want to make sure all the files (including the bootloader) are up to date... Try deleting all the files related to Linux and installing fresh ones to the calc.
initrd linux/initrd.tns
cmdline root=/dev/ram
boot
Hi,There is a French Ndless installing tutorial, but sadly it is Windows-only I think. D: http://tiplanet.org/forum/viewtopic.php?f=57&t=11055
can someone make an installationguide for Linux on TI Nspire in German and French?
It is possible that an actual Linux one is hidden somewhere on TI-Planet, but I'm unsure.Just replace "TI-Nspire Computer Software" by TiLP and that's all.
Can you map the arrow keys with this kernel?That would require some ugly hacks within the touchpad driver, because:
can someone make an installationguide for Linux on TI Nspire in German and French?Linux is in English so it'd be a good practice :P
booting stocks at <RAMDISK: bzip2 image found at block 0> and then the calc freeze.Don't worry, it takes 1-2 minutes depending on the image size.
Automatic ndless installer with GUI.Are you kidding me ? Sneding two files to a calc isn't that hard.
Are you kidding me ? Sneding two files to a calc isn't that hard.For some people at my school it seems to be. They f**ked it up and I had to do it for them.
BTW, I can't boot an external RootFS. If I load the BusyBox initrd and set root=/dev/sda2 (not an error), it can't find /dev/tty0/dev/tty0 not found, you say? That's the case if the kernel isn't compiled with devtmpfs support.
and if I don't load an initrd, it kernel panics.Very strange. Your ll2 contains
kernel linux/zImage.tns
cmdline root=/dev/sda2 rootdelay=5
boot
?Ndless 1.0/1.1 used to have an automated installer with a GUI, using the TINCLS libraries, but it involved more operations than just sending a couple files.Automatic ndless installer with GUI.Are you kidding me ? Sneding two files to a calc isn't that hard.
(guess what, there was a partition numbering error and I was actually mounting a swap partition)The exact same problem (IIRC) two guys already had. It's No.1 of booting issues :P
But it keeps spamming it can't find /sbin/getty. D:That's not good at all. /sbin/getty should exist. You should be able to mount the initrd and check it.
Quotebooting stocks at <RAMDISK: bzip2 image found at block 0> and then the calc freeze.Don't worry, it takes 1-2 minutes depending on the image size.
#But linux is still "loading" after 2 hours. Thats very strange#That is indeed very strange.
And for the numbering error, it was gparted's fault because my partition was physically the second one but it was still called sdc3 on my computer. Why does it number partitions in the order you add them to queue ?I know, thats the only reason I use YaST also for partitioning.
Sorry, but can someone help me, plz! I have the problem, that my TI Nspire CX CAS freeze atIs that enough Vogtinator?Code: [Select]r4:00000000 r3:00000000
.
I run linuxloader and type in:Code: [Select]kernel Linux/zImage.tns
initrd Linux/initrd.tns
(rdsize 0x4000)(<-- but it still freeze)
kernel Linux/zImage.tns
initrd Linux/initrd.tns
cmdline root=/dev/ram
boot
I hope that all of the initial patches which tangrs submitted to the mainline Linux kernel wll be picked up for Linux 3.11 :)
At least two of them have already been picked up by tree maintainers.
kernel Linux/zImage.tns
initrd Linux/initrd.tns
cmdline root=/dev/ram
boot
kernel Linux/zImage.tns
cmdline root=/dev/ram
boot
... or what?
The only buildroot image that you can use as initrd is busyboxconfig.
And the buildroot is just a usb stick format for the TI's like NTFS for computers or what?Nope, buildroot is the content. The filesystem the initrd has is ext4, the other ones (tar.bz2) are tar-archives.
Can I git the kernel source tree and just compile the kernel for Nspire, or is it more difficult than that?
Just a heads up that minimal kernel support for Nspire CX has been merged into mainline today. For devs, this means you can clone Linus's repo and build a Nspire CX kernel :) We'll also be seeing more patches for the Nspire come up over the next week or so.Pretty awesome to hear ! :D I hope this is another step on the way to Linux dev on the Nspire.
EDIT 3: Also, could someone direct me towards a compatible USB hub?I'd say powered hubs are best.
Could somebody please help me figure out why I cannot use the larger rootfs files. I don't want to have to make an entire thread for it.
Question: If the HP Prime is eventually hackable ("HelPless" or "HPless" instead of "Ndless"?), do you have any plan to port this to that calc since it has a similar processor?
As long as HP is civil about programming support, hacking may not be required.Yeah I wouldn't be surprised if they let us hack their calcs if we play nice. As Streetwalker refers to, Casio didn't add native code support to the Prizm, but they didn't spend much effort locking it down yet, due to the lack of cheating tools. If HP added teacher modes to their calcs and hacking the calc compromised the restricted mode, then they'll most likely have a problem with it.
Hi,how it works?it's an external .tns file...
I'm adding hot swap support to the keypad driver. Could a couple of people test this with various keypads and report back whether it detected it correctly? If you could also include your keypad type/s and raw ADC value in your replies, it would be appreciated.
Cheers,
hello there. please don't post multiple times in a row, particularly when each post is a duplicate of the first :PIt was a mistake xD. my browser crashed when I posted and it posted that. but I already deleted them
thank you
Thanks everyone for your help!
It seems the only model I have to worry about are the non-removable Clickpad CAS keyboards.
compatible="zevio,nspire-usb"
to the device tree for the CX, compile it and hexedit it into offset 0x100 of the extracted OS file, replacing the touchpad dtb.#!/bin/bash
set -e
if [ "$#" -ne 4 ]; then
echo "Usage: $0 kernel.img devicetree.img initrd.img /dev/serial"
exit 0
fi
mkdir -p tmp
cp -v $1 tmp/kernel.bin
cp -v $2 tmp/devicetree.bin
cp -v $3 tmp/initrd.bin
touch tmp/bootcmd
cd tmp
sz * -y -8 > $4 < $4
CONFIG_BLK_DEV_INITRD=y
CONFIG_ARCH_NSPIRE=y
CONFIG_AEABI=y
CONFIG_BLK_DEV_RAM=y
CONFIG_KEYBOARD_NSPIRE=y
CONFIG_SERIAL_8250=y
CONFIG_SERIAL_8250_CONSOLE=y
CONFIG_SERIAL_OF_PLATFORM=y
CONFIG_FB=y
CONFIG_FB_ARMCLCD=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_TMPFS=y
Actually, support for booting directly from nLaunchy has been there for a long time. Look in the nLaunchy source code for a directory named Build_LinuxOS. I have already used this before, with the old kernel. And if you put the resulting file in linux/linuxloader.tns. You can boot from nLaunchy by pressing tab.
#!/bin/bash
set -e
if [ "$#" -ne 4 ]; then
echo "Usage: $0 kernel.img devicetree.img initrd.img /dev/serial"
exit 0
fi
mkdir -p tmp
cp -v $1 tmp/kernel.bin
cp -v $2 tmp/devicetree.bin
cp -v $3 tmp/initrd.bin
touch tmp/bootcmd
cd tmp
sz * -y -8 > $4 < $4
HelloMe too :D
sorry for my bad english im from germany
yesterday i saw this videoThe kernel in this video is still the old version (without DTB support, not mainlined),
can you help me to get this on my ti nspire cx
i got linux without grapics with linuxloader2 working but i dont know so much about that theme >:(
if i use linuxloader 2 i can restart the calculator and i have the normal os is it similar with this linux versionYou can use nlaunch to skip the OS, but as it's a bit more complicated I'd try to get it booting manually first.
thank you for your help ;D
Thank you for your fast answerYou said you have a working kernel, right?
mayby you can make a Video or explain in a more detaild what i habe to so
im 16 and i dont know so mich aboit that
nur im very interested in that theme and at my school im,in The informatic class
thanks ;D
tar -xvzf xconfig.tar.bz2 -C /media/
Replace /media/ with wherever your drive is mounted.
kernel linux/zImage.tns
cmdline root=/dev/sda earlyprintk debug console=tty0 console=ttyAMA0,115200n8 rootdelay=10
boot
cause at ubuntu you dont have the permissions to copy at the usb cause you dont have an root account"sudo"?
in kali linuxyou dont have an untar programm and the command you gave me causes an errorIt shouldn't. What's the error message?
root@kali:~# tar -xvzf xconfig.tar.bz2 -C /dev/sdd
tar (child): xconfig.tar.bz2: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
the usb drive is ext4 formatted
xconfig.tar.bz2: Cannot open: No such file or directoryTo extract a file, you need to have to file to extract first.
if i connect the usb to my calculator and type df the usb isnt listed there"lssci" maybe. Or "lsusb". For "df" the usb drive has to be mounted first.
can someone help me getting Debian on my Nspire cx?google: debootstrap armv5
what kernel/file-system do i need?
and i cant boot xconfig from my usb drive :s what format does the usb needs to be ext2/3/4?Does your drive get recognized?
i get a kernel panic..
Quotecan someone help me getting Debian on my Nspire cx?google: debootstrap armv5
what kernel/file-system do i need?
yes i can mount it if i boot from the ram disk.Quoteand i cant boot xconfig from my usb drive :s what format does the usb needs to be ext2/3/4?Does your drive get recognized?
i get a kernel panic..
]was thinking it was arm9It is an ARM926EJ-S core which is an implementation of the armv5 instruction set.
yes i can mount it if i boot from the ram disk.What's the kernel panic?
kernel linux/zImage.tns
cmdline root=/dev/sda earlyprintk debug console=tty0 console=ttyAMA0,115200n8 rootdelay=10
boot
startx should be there...Nope ! :)
You can mount it read-write by doing "mount -o remount,rw /".mount: can't read '/proc/mounts': No such file or directory
[simon@XeonArch Nspire]$ unp linux-3.13.5.tar.xz
... extracting files from archive ...
[simon@XeonArch Nspire]$ cd linux-3.13.5/
[simon@XeonArch linux-3.13.5]$ make distclean; make mrproper
[simon@XeonArch linux-3.13.5]$ export ARCH=arm
[simon@XeonArch linux-3.13.5]$ export CROSS_COMPILE=arm-none-eabi-
[simon@XeonArch linux-3.13.5]$ make menuconfig
-> System Type -> Multiple platform selection -> disable ARMv7 and ARMv5 gets selected automatically
-> System Type -> enable [*] TI-NSPIRE based
-> Device Drivers -> Input device support -> Keyboards -> enable TI-NSPIRE built-in keyboard (NEW)
-> < Save > as .config
[simon@XeonArch:linux-3.13.5]$ make -j8
..... Kernel: arch/arm/boot/zImage is ready
Booting this kernel I still get no messages on the screen. I need graphics-support somehow I guess..[simon@XeonArch:linux-3.13.5]$ make distclean; make mrproper
...
[simon@XeonArch:linux-3.13.5]$ export CROSS_COMPILE=arm-none-eabi-
[simon@XeonArch:linux-3.13.5]$ export ARCH=arm
[simon@XeonArch:linux-3.13.5]$ wget https://raw.github.com/Vogtinator/nspire-linux-configs/master/kernel/.config
...
[simon@XeonArch:linux-3.13.5]$ make silentoldconfig
scripts/kconfig/conf --silentoldconfig Kconfig
*
* Restart config...
*
*
* General setup
*
Cross-compiler tool prefix (CROSS_COMPILE) [arm-none-eabi-] arm-none-eabi-
Compile also drivers which will not load
.... BLABLABLA ...
ARMv6 based platforms (ARM11) (ARCH_MULTI_V6) [N/y] (NEW)
ARMv7 based platforms (Cortex-A, PJ4, Scorpion, Krait) (ARCH_MULTI_V7) [Y/n] (NEW)
As you can see the default for ARMv6 is No, but ARMv7 is Yes, which is wrong. You need to select No yourself to bring up ARMv5: "ARMv5 based platforms (ARM926T, XSCALE, PJ1, ...) (ARCH_MULTI_V5) [Y] (NEW) y". So converting the .conf from github doesn't work as intended..i like to see a graphical linux os can i have a precompiled versionWhat exactly do you mean by "graphical linux os"?
$ PATH=$PATH+":/opt/CodeSourcery/Sourcery_CodeBench_Lite_for_ARM_EABI/bin/"
$ wget https://www.kernel.org/pub/linux/kernel/v3.x/testing/linux-3.14-rc2.tar.xz
$ unp linux-3.14-rc2.tar.xz
<extracting without errors>
$ cd linux-3.14-rc2/
$ cp ~/Downloads/config ./.config #This is your uploaded .config, verified it multiple times
$ export ARCH=arm
$ export CROSS_COMPILE=arm-none-eabi-
$ make silentoldconfig
< ran through without a single error or question >
$ make -j2
......
Kernel: arch/arm/boot/zImage is ready
$ ls -l arch/arm/boot/zImage
-rwxrwxr-x 1 simon simon 1504096 Feb 23 19:28 arch/arm/boot/zImage #size comparison with prebuilt ones: small: 1753152 large: 1936000
And no kernel messages again...Use this script (http://hackspire.unsads.com/wiki/index.php/C_and_assembly_development_introduction_on_Linux#Setting_up_a_development_environment) to set up a toolchain.I guess you refer to my path-hack above: Thats on my Ubuntu-Laptop and I had CodeSourcery installed on that some time ago. Normally I have an Arch-Server with two quadcore Xeon processors and 16GB Ram for compiling things ;-) With a well integrated toolchain of course
YESSS!!Could you try the new xconfig image? I switched from Xorg to KDrive/TinyX (or whatever it's called in buildroot) and everything should work fine.
Your builds as well as my self compiled kernel+DTB work!
I guess you refer to my path-hack above: Thats on my Ubuntu-Laptop and I had CodeSourcery installed on that some time ago. Normally I have an Arch-Server with two quadcore Xeon processors and 16GB Ram for compiling things ;-) With a well integrated toolchain of courseYou won't need that for this small 2 MB kernel ;)
Could you try the new xconfig image? I switched from Xorg to KDrive/TinyX (or whatever it's called in buildroot) and everything should work fine.Actually I can't... I have trouble getting USB to work :/
BTW: your xconfig-download gives me:Oops, should be fixed now, sorry.
Forbidden
You don't have permission to access /nspire-linux-builds/xconfig-latest.tar.bz2 on this server.
ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) DriverI get the same + three additional ones (with the fresh downloaded kernel,initramfs,dtb):
usbcore: registered new interface driver usb-storage
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
usb1: usb@B4000000 {
reg = <0xB4000000 0x1000>;
interrupts = <9>;
status = "disabled";
};
to usb1: usb@B4000000 {
reg = <0xB4000000 0x1000>;
interrupts = <9>;
compatible = "ehci-platform";
};
I have Linux on my TI-Nspire CX (Non CAS), and it freezes at boot. Any way to get it to boot?Which files did you use (kernel, initrd, bootscript, linuxloader) and when does it freeze?
I installed linux on my TI-Nspire CX CAS and it all works fine, except for the USB, I used the files here: http://tiplanet.org/nspire-linux-builds/ and I have a powered usb hub connected to my calc, and TI OS gives me the error message about an error with the connected device. lsusb shows nothing, and dmesg doesn't show anything useful. Any help?USB isn't really working in the DTB builds. It should work if you use the "Older kernel" without DTB.
I just noticed on the wiki: It says "unknown" for the 84+ Link Port. I'm not saying I disagree with the following "do we need this" but I do want to point out that it just hooks into a few I/O pins on the CPU. It should be relatively easy to add support for it.The GPIO driver is also just setting and clearing some bits, but still >200 lines. Also, which subsystem should it use?
Sweet, thanks! Any idea when USB will be supported in the newer builds?Probably never, I don't know why it doesn't work if I simply tell the DTB the EHCI address and IRQ. Maybe some initialization differences.
Also, what is the difference between the defconfig and expanded builds for the old kernel?It's simple: The defconfig has only those options activated which are required for booting. Just use the expanded kernel if you want to use it, it has most required drivers included.
I wonder if it's possible to have a small, light-weight GUI application with this, like a small menu based file browser. That'd up the functionality by a lot.Depends which files you want to browse. I reverse-engineerd the highest level of the filesystem (reliance) and have a basic fuse driver ready, but the lower level (flashfx) isn't implemented yet.
sudo -i
mkfs.ext4 /dev/sdbX
mount /dev/sdbX /mnt
tar -xvf xconfig_latest.tar.xz -C /mnt
umount /mnt
exit
but I still don't see gcc/g++ in the target packages... should I select binutils?I don't know how the option is called, but you can always show all options in the config tool if you press 'z' and then '?' on the appropriate item to find out why it is disabled.
Also, whenever I startx the calc freezesYou should still be able to switch to another vtty using Ctrl-Alt-F1 and read the error there.
Quotebut I still don't see gcc/g++ in the target packages... should I select binutils?I don't know how the option is called, but you can always show all options in the config tool if you press 'z' and then '?' on the appropriate item to find out why it is disabled.
I used these files:Off topic, but: UHC! :D
<screenshot>
http://www.omnimaga.org/ti-nspire-projects/nspire-linux-questions/Which kernel are you using?
For questions, we have a seperate thread:Thanks for the thread link, I'll be sure to use that when/if I have further questions.Quotehttp://www.omnimaga.org/ti-nspire-projects/nspire-linux-questions/Which kernel are you using?
Is it normal to have two things mounted on / ?I have no idea why it is shown that way, but a directory can only be mountpoint of one device at a time, the newest mount is what you can see in the directory.
I don't know actually. I tried various devicetree options, but none of it seem to work as expected. I only tried OTG, though, as the host controller doesn't work reliable with "high speed" and the OTG one can switch to high speed without disconnecting.
Would it be possible to run Raspbian on the nspire?If Raspbian is armv5 compatible, yes. But it's probably armv6.
Why not ask on one of the kernel mailing lists?You can, if you want to :P
QuoteWhy not ask on one of the kernel mailing lists?You can, if you want to :P
QuoteWhy not ask on one of the kernel mailing lists?You can, if you want to :P
I know nothing about kernel dev, either you or tangrs (where is he?) should ask.
Today is a good day :D
The USB OTG and seamless switching support patch has been accepted and will be merged into the next Linux version.
Today is a good day :D
The USB OTG and seamless switching support patch has been accepted and will be merged into the next Linux version.
Does this mean USB will work with the latest kernel?
Today is a good day :D
The USB OTG and seamless switching support patch has been accepted and will be merged into the next Linux version.
Does this mean USB will work with the latest kernel?
Yep, it should work out of the box in the next major release.
Yep, it should work out of the boxin the next major release4.1-rc1 onwards.
If anyone wants a kernel build, I can make one when I have time.
Is https://tiplanet.org/nspire-linux-builds/ updated?I don't think so, at least with dtb version downloaded two days ago usb was still broken.
I built a kernel using the fairly old config and modified it a bit so it should work with systemd. Highly untested, might work just fine or ignite your calc.Well, it bootet without any smoke or flames :D Actually without any issues at all
Download (http://ritter-vogt.de/zImage.tns)
Well, it bootet without any smoke or flames :D Actually without any issues at allGreat, so the config is working for systemd.
uname -a says 4.0.0-rc6, but tangrs states that his code will land in 4.1-rc1 (accordingly I couldn't get any usb action either). But it's nice to see the calculator running the newest kernel of all my linux devices (plenty) :3Whoops, I cloned the wrong repo. Well, the minor nspire-linux-builds issue is now solved, there will be new builds soon.
I'm not sure where tangrs' code is right now, but I guess in linux-next. Not certain how adventureous it is to build from that though.It should compile just fine, there are automated tests running. (I know this because my first submission wasn't compatible with a specific arch not defining a macro...)
I built a kernel using the fairly old config and modified it a bit so it should work with systemd. Highly untested, might work just fine or ignite your calc.Well, it bootet without any smoke or flames :D Actually without any issues at all
Download (http://ritter-vogt.de/zImage.tns)
uname -a says 4.0.0-rc6, but tangrs states that his code will land in 4.1-rc1 (accordingly I couldn't get any usb action either). But it's nice to see the calculator running the newest kernel of all my linux devices (plenty) :3
I'm not sure where tangrs' code is right now, but I guess in linux-next. Not certain how adventureous it is to build from that though
http://tiplanet.org/nspire-linux-builds is running again, with linux-next builds and up-to-date buildroot images.
Uname says 4.0.0-rc7-next-20150410, but my usb thumbkeys won't work for some reason. lsusb ends without any output, no reaction on dmesg and no new device in /dev either.. (doesn't matter whether I connect otg before or after linux boot)I started a new kernel build with some more options activated, but there was no obvious USB-related option missing.
I can't guarantee that my otg adapter works (a little wonky construction), but it did with the old kernel and when pluggin it in while in Nspire OS it complains properly about a device connected it can't handleThat's a good sign that it's at least enumerating properly, so it should leave a linux syslog message.
lsmod end with "/proc/modules: No such file or directory"Modules aren't enabled.
CXQuoteUname says 4.0.0-rc7-next-20150410, but my usb thumbkeys won't work for some reason. lsusb ends without any output, no reaction on dmesg and no new device in /dev either.. (doesn't matter whether I connect otg before or after linux boot)I started a new kernel build with some more options activated, but there was no obvious USB-related option missing.
Are you using a CX or classic?
Edit: http://tiplanet.org/nspire-linux-builds/devicetree/zImage_expanded_20150418_1650.tnsYeah. Additionally to make absolutely sure the otg adapter works, I put the old kernel on it again -> otg works flawlesslyQuoteI can't guarantee that my otg adapter works (a little wonky construction), but it did with the old kernel and when pluggin it in while in Nspire OS it complains properly about a device connected it can't handleThat's a good sign that it's at least enumerating properly,
so it should leave a linux syslog message.(http://i.imgur.com/uzS6Yo0.jpg)
cfg80211: Calling CRDA to update world regulatory domain
Now it gives up with this by the time it finishes booting:cfg80211: Exceeded CRDA call max attempts. Not calling CRDA
Built 4.1-rc1 with config from https://github.com/Vogtinator/nspire-linux-configs/blob/master/kernel/devicetree.configThat file isn't the latest version, it doesn't have all options enabled. I just pushed an updated one with the chipidea stuff enabled.
Built 4.1-rc1 with config from https://github.com/Vogtinator/nspire-linux-configs/blob/master/kernel/devicetree.config
It boots but the problem remains: No device in sight on either dmesg nor lsusb ???
tangrs, would you be so kind and post the .config you used? :) Just would like to rule out that there's something misconfigured in Vogtinators one
You need to enable a few drivers to get USB fully working. I believe if any of those are missing, the USB driver won't load successfully.Wouldn't it be better to have them as dependencies, then?
QuoteYou need to enable a few drivers to get USB fully working. I believe if any of those are missing, the USB driver won't load successfully.Wouldn't it be better to have them as dependencies, then?
Anyway, I started a build on tiplanet.org now, should be available in 10 minutes.
Edit: Finished: http://tiplanet.org/nspire-linux-builds/devicetree/zImage_expanded_20150531_2237.tns
Updated at 7th Feb 2013
Can this run Android?
Theoretically, yes but it's too much work for it to be worth it.
Updated at 7th Feb 2013
Can this run Android?
Theoretically, yes but it's too much work for it to be worth it.
Oops
(http://i.imgur.com/qU5lynD.jpg)
Its probably a joke.Updated at 7th Feb 2013
Can this run Android?
Theoretically, yes but it's too much work for it to be worth it.
Oops
I hope this is legit and not just a screenshot of android being displayed on the Nspire.
Its probably a joke.Updated at 7th Feb 2013
Can this run Android?
Theoretically, yes but it's too much work for it to be worth it.
Oops
I hope this is legit and not just a screenshot of android being displayed on the Nspire.
WOW, this is unexpected. Well done! How does it run? I assume it's not really at a usable speed.
I do wonder why "Minor compilation changes for older GCC versions" was necessary, binary literals have been supported since ages.
You should definitely update your SDK and toolchain!
WOW, this is unexpected. Well done! How does it run? I assume it's not really at a usable speed.
I do wonder why "Minor compilation changes for older GCC versions" was necessary, binary literals have been supported since ages.
You should definitely update your SDK and toolchain!
Boot up is slow, taking ~3-5 minutes (Although I believe I can speed it up), but after most of the core services are starting the system is actually pretty usable (imagine an HTC Dream running at half-speed), making this a feasible alternative OS to run on the calculator.
WOW, this is unexpected. Well done! How does it run? I assume it's not really at a usable speed.
I do wonder why "Minor compilation changes for older GCC versions" was necessary, binary literals have been supported since ages.
You should definitely update your SDK and toolchain!
Boot up is slow, taking ~3-5 minutes (Although I believe I can speed it up), but after most of the core services are starting the system is actually pretty usable (imagine an HTC Dream running at half-speed), making this a feasible alternative OS to run on the calculator.
This is awesome! Where is the rootfs stored? I assume it's on an external flashdrive or something.
WOW, this is unexpected. Well done! How does it run? I assume it's not really at a usable speed.
Updated at 7th Feb 2013
Can this run Android?
Theoretically, yes but it's too much work for it to be worth it.
Oops
(http://i.imgur.com/qU5lynD.jpg)
Hello, I have a problem on my ti cx nspire case with android.
When I run it, it load for a little while and then freeze it.
How to remedy it?
Thank you in advance
P.S:
I have a 3.9.1 OS 3.9 and therefore ndl3ss
Wow, this is soooooo amazing. I did not think you could actually run a game on the android port. Though, it's not that intensive it it?(Unless that's not on the android port? :hyper:
Hello, long time lurker, first time poster here. I have several problems with my TI-Nspire CX running OS 3.6.0.550. When I run linuxloader2, it allocates a maximum of ~31mb RAM (screenshot A), but every video I've watched showcasing Linux on the Ti-Nspire CX shows linuxloader2 allocating ~43mb RAM.
This keeps me from using the xconfig initrd images.
Another problem is that whenever I try to use an initrd larger than 4mb, despite what the "Improvements over old one" section of the LL2 readme says (Being able to load ramdisks and kernels larger than 4MB (up to ~40MB on the CX), I get a kernel panic.
When I try to use the old kernel with a ramdisk larger than 4mb or a flash drive, I get a crptic kernel panic screen (screenshot B).
When I try to use the new kernel with a ramdisk larger than 4mb, I get a less cryptic panic screen (screenshot C) which doesn't make any sense since LL2 is supposed to support ramdisks larger than 4mb. And finally, when I use a flash drive to boot into Debian Jessie (armel), which only works with the new kernel, I can do most everyday tasks, but I can't properly reboot the system and have to reset (screenshot D). Thanks in advance!
reboot -f
does it reboot instantly?Hello, another noob here. I read about linux on the nspire a while ago, and seeing as I now use CAS more often (and can't put a CAS os on my rev. J CX) I figured that I'd give it a try. I followed codinghobbit's tutorial (http://codinghobbit.no-ip.org/blog/?p=81) and installed Debian on my calculator. Then I compiled the (device tree) kernel using vogtinator's config (https://github.com/Vogtinator/nspire-linux-configs/blob/master/kernel/devicetree.config) with a couple kernel options added to get my usb ethernet adapter working. That worked too. Now I'm trying to get x working.
Installing xorg on debian failed. "Hmm, maybe it's something to do with debian packages."
Fine, instead of debian, put the latest xconfig rootfs from tiplanet (https://tiplanet.org/nspire-linux-builds/) on my flash drive, since I've seen videos of xconfig working.
It boots, but gives a similar error when I try to do startx [attached]. "Ok, maybe it's a problem with my kernel."
Replaced the kernel I built with the latest from tiplanet (also device tree).
The same error occurs.
Both my kernel and the tiplanet one were kernel version 4.2 "Ok, maybe newer kernels don't work."
Fine, install the latest old kernel (non device tree) from tiplanet.
It boots, and startx does start x, but none of the inputs work; the cx keyboard and touchpad don't do anything, so I can't type anything. I don't have a usb keyboard, but I do have a mouse. It doesn't move the mouse cursor. I can tell that it isn't frozen because the clock still works. Then after a couple minutes, the screensaver kicks in and the screen turns off. I can't get out of it, and have to use the reset button.
Therefore, a couple questions:
First, is x possible with the newer kernels? How do I get it working? More kernel options?
Second, how do I get the inputs to work in X? I don't know if the touchpad can work as a mouse, but the keyboard should work. I have looked around and found the "evdev" driver (http://www.x.org/archive/X11R7.5/doc/man/man4/evdev.4.html) Could this be it? How do I enable it?
At this point I should say that I don't really know what I'm doing. I know some Linux stuff from playing with Raspberry pi, but I've never really done anything at this lower level. I'm just good at googling and poking around.
Hm. I haven't tried X11 in a long time, I'm not sure whether it's even supposed to be working with the DT kernel. Similiar issue with the touchpad, it's only partially implemented mainline and not active by default.
The screenshot has a fairly interesting error: "Address family not supported by protocol". My guess is that that is the ultimate reason why it doesn't work, combined with the "unable to open socket".
I can't tell you which kernel option to activate, but I'll try to get it working (latest devicetree and buildroot) when I've got some free time on my hands :-)
You should try to boot an older, non-devicetree kernel with an older, xconfig image. I can't tell you which versions to try (tiplanet.org is down for me, currently...).
CONFIG_UNIX:
│
│ If you say Y here, you will include support for Unix domain sockets
│ sockets are the standard Unix mechanism for establishing and
│ accessing network connections. Many commonly used programs such as
│ the X Window system and syslog use these sockets even if your
│ machine is not connected to any network. Unless you are working on
│ an embedded system or something similar, you therefore definitely
│ want to say Y here.
cmdline root=/dev/sda rw rootwait
Hello
I managed to get linux booting with root filesystem on a USB drive with this kernel command line:Code: [Select]cmdline root=/dev/sda rw rootwait
But I can't get the keypad working and I don't know what's wrong with it as the driver should be loaded.
If someone knows about this problem, please help.
Edit: My calc model: Nspire CX CAS
dtb [x]/nspire.dtb.tns
x = the directory where nspire.dtb.tns is (excluding the brackets), leave blank if at root of /documents directory (also remove the "/")Gosh, what has happened to all of the good threads?!? All the good ndless programs seem dead... :(I am on 4.3 and it works just fine for me.
Anyway, has anyone gotten this to work recently?
Running linuxloader2 just sits there, showing the last thing that ndless rendered (some micropython stuff in this case).
Same thing happens when running from the start_initrd.ll2.
TI-nspire CX, OS 4.5.0.1180, ndless 4.5.0, latest linuxloader builds from tiplanet.
Hope somebody can help me, because this is like the coolest thing ever to me.