0 Members and 7 Guests are viewing this topic.
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 image1. Download buildroot (http://buildroot.uclibc.org/)2. make menuconfig3. Target architecture is 'arm little endian'4. Variant can be 'arm generic' or 'arm926t'5. In target filesystems, select ext2 image6. make7. Get cup of coffee8. Copy and rename output/images/rootfs.ext to initrd.tnsKernel1. Add toolchain bin to PATH: buildroot-dir/output/toolchain/usr/bin (or something like that)2. make ARCH=arm nspire_defconfig3a. makeor for moar speed:3b. make -jn (Where n is number of CPU cores you have + 1)4. Coffee5. Copy and rename arch/arm/boot/zImage to zImage.tnsBootloader1. Get source from tangrs github2. Get Ndless SDK3. 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.