User Tools

Site Tools


goflex:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
goflex:start [2011/05/03 22:41] neutronscottgoflex:start [2023/11/04 22:30] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Seagate GoFlex Home Hacks // Debian ======
 +
 Lots of people working on this. But the information is scattered, and I've not seen the point to some of it... Guess if you want something done right, you have to do it yourself? ;) Lots of people working on this. But the information is scattered, and I've not seen the point to some of it... Guess if you want something done right, you have to do it yourself? ;)
  
 I started this 4/23 so this is a work-in-progress, aka a severely disorganized page. Wiki clean-up usually happens after I put the device back together, and that could take awhile since my free time is limited. I started this 4/23 so this is a work-in-progress, aka a severely disorganized page. Wiki clean-up usually happens after I put the device back together, and that could take awhile since my free time is limited.
 +
 +[edit: 8/1] I guess it'll be some time. This project was short lived. I got debian on it and then it's done. ha. been running fine just another computer on the network now...
 +
 +===== bootrom disassembly =====
 +someone with dockstar-like device (bootrom 1.11) asked for my dump to compare and see why they cannot boot from serial as we can. my results:
 +
 +ASCII dump from U-boot: http://goflex.scottn.us/bootrom121.txt \\
 +Binary file: http://goflex.scottn.us/bootrom121.bin \\
 +Simple objdump disassemble: http://goflex.scottn.us/bootrom121.dis
 +
  
 ===== external serial port ===== ===== external serial port =====
Line 11: Line 23:
  
 it says it includes the debian patches, but it comes up as normal 2.6.32... meh. it says it includes the debian patches, but it comes up as normal 2.6.32... meh.
-I added a bit also to arch/arm/kernel/head-common.S so that we need not pass arcNumber. This would help later for making installable without editing bootloader. :P+I added a bit also to arch/arm/kernel/head-common.S so that we need not pass arcNumber. This would help later for making installable without editing bootloader. :P It seemed that although the Goflex Home has USB/IDE enabled in U-Boot, the arcNumber variable is not. This was partially verified later by a grep of the u-boot sources supplied in GPL release by Seagate.
  
 We can start serial commands at u-boot to load USB key with [[http://goflex.scottn.us/uMulti-2.6.32-5-kirkwood-goflex|my kernel+initrd]]. For example: We can start serial commands at u-boot to load USB key with [[http://goflex.scottn.us/uMulti-2.6.32-5-kirkwood-goflex|my kernel+initrd]]. For example:
Line 22: Line 34:
 [[goflex:debianboot]] [[goflex:debianboot]]
  
-Creation of the USB key or even ext2 partition on the SATA can be easy with debootstrap. I will attempt emdebian's soon to see if it's dependencies are a bit less a tangled web of bloat. ;)+Creation of the USB key or even ext2 partition on the SATA can be easy with debootstrap. I will attempt emdebian's soon to see if it's dependencies are a bit less a tangled web of bloat. ;) [**edit** nah I probably won't. Debian's running well, just follow [[http://linux.koolsolutions.com/2009/01/07/howto-tell-apt-get-not-to-install-recommends-packages-in-debian-linux/|this guide]] to ensure dumb things like X11 libraries getting installed with openssh doesn't happen.]
  
 http://packages.debian.org/search?arch=armel&keywords=debootstrap http://packages.debian.org/search?arch=armel&keywords=debootstrap
Line 34: Line 46:
  
 including kirkwood image ensures you get all the modules and initramfs things, you can use my uMulti to do actual booting. including kirkwood image ensures you get all the modules and initramfs things, you can use my uMulti to do actual booting.
 +
 +===== openwrt =====
 +i built this too as backup. the tiny rootfs lives in my ext2 /boot partition for now. maybe will flash to NAND some time. i also mirrored snapshot of trunk packages for the day, in case libraries change or whatever. even placed a jfs.ko there to access the jfs share if i need to. i didn't make it a kmod opkg, sorry. ;\
 +
 +http://goflex.scottn.us/openwrt/
 +
 +===== consistent nand map between kernels =====
 +first set the two mtdids/mtdparts variables, then you can use mtdparts add. for example:
 +<code>
 +set mtdids nand0=orion_nand
 +set mtdparts mtdparts=orion_nand:1M(uboot)ro
 +mtdparts add nand0 6M uImage
 +mtdparts add nand0 - rootfs
 +</code>
 +
 +That is my nand's layout inside factory firmware. You'll also need to mention $(mtdparts) inside bootargs.
 +
 +Then I was hoping that using **mtdparts del nand0,0** and removing the uboot partition would suffice on making normal kernels ignore the 4-bit ECC and printing a screen-full of bad block messages upon boot. :\
  
 ===== mods to official firmware ===== ===== mods to official firmware =====
Line 62: Line 92:
 usb_start=usb start; fatload usb 0:1 $(loadaddr) /uImage usb_start=usb start; fatload usb 0:1 $(loadaddr) /uImage
 usb_boot=echo usb success; set bootargs $(console) root=/dev/disk/by-path/platform-orion-ehci.0-usb-0:1:1.0-scsi-0:0:0:0-part2; bootm $(loadaddr) usb_boot=echo usb success; set bootargs $(console) root=/dev/disk/by-path/platform-orion-ehci.0-usb-0:1:1.0-scsi-0:0:0:0-part2; bootm $(loadaddr)
-ide_start=ide reset; set filesize; ext2load ide 0:1 $(loadaddr) /uImageprint filesize+ide_start=set filesize; ide reset; ext2load ide 0:1 $(loadaddr) /uImage 
 +ide_if_loaded=print filesize
 ide_boot=echo ide success;set bootargs $(console) root=/dev/disk/by-path/platform-sata_mv.0-scsi-0:0:0:0-part2;bootm $(loadaddr) ide_boot=echo ide success;set bootargs $(console) root=/dev/disk/by-path/platform-sata_mv.0-scsi-0:0:0:0-part2;bootm $(loadaddr)
 boot_nand=nand read.e 0x800000 0x100000 0x300000; setenv bootargs $(console) $(bootargs_root); bootm 0x800000 boot_nand=nand read.e 0x800000 0x100000 0x300000; setenv bootargs $(console) $(bootargs_root); bootm 0x800000
-bootcmd=run usb_start usb_boot; run ide_start ide_boot; run boot_nand+bootcmd=run usb_start usb_boot; run ide_start; run ide_if_loaded ide_boot; run boot_nand
 </code> </code>
  
-Look at it all first with 'printenv' before invoking 'saveenv'. many terminal emulators will paste too fast. So I modified picocom to usleep() some between writes. I later edited it to help with UART loading into the BootROM. +**NOTE** I noticed last night that 'ext2load' return value is broken in 1.1.4. The way 'run' works is you only run the next variable if the previous one returns success, which is represented by 0. In Marvell's GPL source, ext2load returns 'filelen' so basically ext2load always returns failure. Didn't see a problem yet with fatload so didn't check. I use 'filesize' as test variable now.
- +
-**NOTE** I noticed last night that 'ext2load' return value is broken in 1.1.4. The way 'run' works is you only run the next variable if the previous one returns success, which is represented by 0. In Marvell's GPL source, ext2load returns 'filelen' so basically ext2load always returns failure.+
  
 ===== cross compiling toolchain ===== ===== cross compiling toolchain =====
Line 85: Line 114:
  
 As you see from this log, the header must be changed to boot from serial: [[goflex:uartboot]]. As you see from this log, the header must be changed to boot from serial: [[goflex:uartboot]].
 +
 +===== lcd4linux =====
 +Somewhat unrelated, but I attached a Coby DP-152 I got for $5. Edited the example a bit. Here's [[http://goflex.scottn.us/picframe/lcd4linux.conf|mine]]. I think it's usable now, but I'm uncertain really what stats I want displayed or how yet. ;) Large thread about these little 128x128 LCDs found here: http://forum.doozan.com/read.php?2,2435
 +
 +
goflex/start.1304462473.txt.gz · Last modified: 2023/11/04 22:29 (external edit)

Except where otherwise noted, content on this wiki is licensed under the following license: Public Domain
Public Domain Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki