New driver is located at: ftp://ftp.embeddedarm.com/ts-arm-sbc/ts-7800-linux/binaries/ts-modules/tssdcard-new.ko Instructions for putting the new TSSDCARD driver onto the TS-7800 initrd. First, a little explanation of the boot process of the TS-7800. The bootrom on the board will load the kernel and initrd images from the SD card into memory, and will then launch the kernel, which in turn will mount the initrd as the root filesystem. Next, the kernel will run the linuxrc script, which is at the top-level of the root filesystem. (Actually, linuxrc is a symbolic link to the actual script, which will be linuxrc-sdroot, when booting to SD.) One of the things that the script does is load the driver for the TSSDCARD. The driver is also at the top-level of the root filesystem, and is named tssdcard.ko. The instructions that follow will explain how to replace the old driver with new, and how to modify the startup script, as well as how to make these changes persistent across reboots. First, boot the card normally (to SD).... ------------------------------------------------------------------------------- >> TS-BOOTROM - built Jun 10 2009 >> Copyright (c) 2008, Technologic Systems >> Booting from SD card... . . . . >> Booting to SD Card... INIT: version 2.86 booting Starting the hotplug events dispatcher: udevd. Synthesizing the initial hotplug events...done. Waiting for /dev to be fully populated...done. Timed out waiting for time change. Timed out waiting for time change. Cleaning up ifupdown...done. Loading kernel modules...done. Checking all file systems... fsck 1.37 (21-Mar-2005) ... done. Setting up networking...done. Setting up IP spoofing protection: rp_filter. Enabling packet forwarding...done. Configuring network interfaces...done. Starting portmap daemon: portmap. Timed out waiting for time change. Recovering nvi editor sessions... done. INIT: Entering runlevel: 3 Starting system log daemon: syslogd. Starting kernel log daemon: klogd. Starting MTA: exim4. Starting internet superserver: inetd. Starting OpenBSD Secure Shell server: sshd. Starting NFS common utilities: statd. Starting periodic command scheduler: cron. Starting web server (apache2).... Debian GNU/Linux 3.1 ts7800 ttyS0 ts7800 login: root Last login: Thu Jan 1 00:03:49 1970 on ttyS0 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. root@ts7800:root# ------------------------------------------------------------------------------- The initrd image resides on partition #3 of the SD card, so make a copy of it like so.... dd if=/dev/tssdcardb3 of=initrd.dd Then mount this image to a temporary mount point.... mkdir temp mount -o loop initrd.dd temp The new driver should be copied to temp (overwriting the old one)... cp path-to-new-driver temp/tssdcard.ko And the linuxrc script should be edited.... vi temp/linuxrc Look for the line with this... insmod /tssdcard.ko ...and add the reqmode=2 parameter at the end of the line... insmod /tssdcard.ko reqmode=2 Save the file. Next... sync umount temp Copy the modified initrd back to partition #3, and reboot... dd if=initrd.dd of=/dev/tssdcardb3 sync reboot ------------------------------------------------------------------------------- Broadcast message from root (ttyS0) (Thu Jan 1 00:23:34 1970): The system is going down for reboot NOW! INIT: Sending processes the TERM signal INIT: SendingStopping web server (apache2).... Stopping periodic command scheduler: cron. Stopping MTA: exim4. Stopping internet superserver: inetd. Stopping MySQL database server: mysqld. Stopping OpenBSD Secure Shell server: sshd. Stopping NFS common utilities: statd. Stopping kernel log daemon: klogd. Stopping system log daemon: syslogd. Sending all processes the TERM signal...done. Sending all processes the KILL signal...done. Unmounting remote and non-toplevel virtual filesystems...done. Stopping portmap daemon: portmap. Deconfiguring network interfaces...SIOCDELRT: No such process done. Deactivating swap...umount: tmpfs busy - remounted read-only done. Unmounting local filesystems...umount: tmpfs busy - remounted read-only done. Rebooting... . >> TS-BOOTROM - built Jun 10 2009 >> Copyright (c) 2008, Technologic Systems >> Booting from SD card... . . . . >> Booting to SD Card... INIT: version 2.86 booting Starting the hotplug events dispatcher: udevd. Synthesizing the initial hotplug events...done. Waiting for /dev to be fully populated...done. Timed out waiting for time change. Timed out waiting for time change. Cleaning up ifupdown...done. Loading kernel modules...done. Checking all file systems... fsck 1.37 (21-Mar-2005) ... done. Setting up networking...done. Setting up IP spoofing protection: rp_filter. Enabling packet forwarding...done. Configuring network interfaces...done. Starting portmap daemon: portmap. Timed out waiting for time change. Recovering nvi editor sessions... done. INIT: Entering runlevel: 3 Starting system log daemon: syslogd. Starting kernel log daemon: klogd. Starting MTA: exim4. Starting internet superserver: inetd. Starting OpenBSD Secure Shell server: sshd. Starting NFS common utilities: statd. Starting periodic command scheduler: cron. Starting web server (apache2).... Debian GNU/Linux 3.1 ts7800 ttyS0 ts7800 login: root Last login: Thu Jan 1 00:04:16 1970 on ttyS0 The programs included with the Debian GNU/Linux system are free software; the exact distribution terms for each program are described in the individual files in /usr/share/doc/*/copyright. Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. ------------------------------------------------------------------------------- Check that the new driver is installed and using the correct reqmode.... cat /sys/module/tssdcard/parameters/reqmode 2 All done! If you have multiple boards to update, I suggest performing the above procedure on just one card, and saving a copy of the modified initrd.dd image, which you can then copy to partition #3 of the other boards, as before... dd if=initrd.dd of=/dev/tssdcardb3 sync reboot