LimHD:Firmware

From Lundman Wiki
Revision as of 03:25, 1 November 2007 by Lundman (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Building a new Firmware

Unpack firmware

unrar x update.rar
mount -o loop -t romfs update.bin /mnt
rsync -arv /mnt limdata

Now all the work is in limdata/ For example, you should have limdata/linux.bin.gz


telnetd

Make sure you have a symlink for telnetd.

cd limdata/sbin/
ln -s ../bin/busybox telnetd

Add it to start up:

cd limdata/etc/init.d/
vi S30network

add four line, between the existing lines near the end:

insmod gpio_int.o
mkdir /tmp/dev/
mknod /tmp/dev/fuse -m 0666 c 10 229
/usr/sbin/telnetd &
/usr/sbin/inetd /etc/inetd.conf & 
cd /curacao
./curacao /mnt /dev/ir

Don't forget the & sign.


fuse support

Copy the fuse binaries:

cd /downloaded_files/
cp fuse.o limdata/
cp fusermount ntfs-3d remount limdata/usr/bin/
cp ftpd limdata/usr/bin/
cp busybox_ext2 /bin/
cp inetd.conf /etc/

Create symlinks

cd /sbin/
ln -s ../bin/busybox_ext2 e2fsck
ln -s ../bin/busybox_ext2 e2label
ln -s ../bin/busybox_ext2 fdisk
ln -s ../bin/busybox_ext2 fsck
ln -s ../bin/busybox_ext2 fsck.ext2
ln -s ../bin/busybox_ext2 mke2fs
ln -s ../bin/busybox_ext2 mkfs.ext2
ln -s ../bin/busybox_ext2 tune2fs

ext2 support in curacao

If you want to be able to use internal HDD with ext2 filesystem type, you need to do this patch. Edit curacao with your favorite hex editor. I use emacs, in hexl-mode, but anything will work. (Not vi though). For details you can view LimHD:EXT2 ext2 link, but essentially, find the string vfat near the /dev/ide/ section. (Which is after /dev/scsi/ - ie USB), and replace this string with "ext2". Also change iocharset=utf8 with nocheck.

BEFORE:

002c8940: 6172 740a 0000 0000 2f64 6576 2f69 6465  art...../dev/ide
002c8950: 2f68 6f73 7430 2f62 7573 302f 7461 7267  /host0/bus0/targ
002c8960: 6574 302f 6c75 6e30 2f70 6172 7425 6400  et0/lun0/part%d.
002c8970: 2f6d 6e74 2f48 4425 642f 0000 7666 6174  /mnt/HD%d/..vfat
002c8980: 0000 0000 696f 6368 6172 7365 743d 7574  ....iocharset=ut
002c8990: 6638 0000 2573 2564 0000 0000 6e74 6673  f8..%s%d....ntfs
002c89a0: 0000 0000 6e6c 733d 7574 6638 0000 0000  ....nls=utf8....

AFTER:

002c8940: 6172 740a 0000 0000 2f64 6576 2f69 6465  art...../dev/ide
002c8950: 2f68 6f73 7430 2f62 7573 302f 7461 7267  /host0/bus0/targ
002c8960: 6574 302f 6c75 6e30 2f70 6172 7425 6400  et0/lun0/part%d.
002c8970: 2f6d 6e74 2f48 4425 642f 0000 6578 7432  /mnt/HD%d/..ext2
002c8980: 0000 0000 6e6f 6368 6563 6b00 743d 7574  ....nocheck.t=ut
002c8990: 6638 0000 2573 2564 0000 0000 6e74 6673  f8..%s%d....ntfs
002c89a0: 0000 0000 6e6c 733d 7574 6638 0000 0000  ....nls=utf8....

Don't forget to null-terminate the nocheck string. Key sequence usage for emacs is:

emacs -nw curacao
M-x hexl-mode      (M-x means ESC-x, or if setup correctly, ALT-x)
C-s vfat           (C-s is ctrl-s, or Search.)
C-s                (Second C-s searches for 2nd occurence of VFAT)
C-g                (Stop search)
M-x overwrite-mode
Position cursor to start of vfat
ext2
Position cursor to start of iocharset=ut8
nocheck
M-C-x              (or, ESC then ctrl-x to input hex number)
00                 (insert hex 00)
C-x C-s            (Save buffer, answer yet to losing undo buffer)
C-x C-c            (Quit emacs)