<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel>
        <title>HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
        <description>In this HOWTO I'd like to explain how to compile a custom 2.6.38.8 kernel for the GoFlex Net. I did this on Kubuntu 11.04 but I guess that every other Debian based distro should be fine as well.

First we should install the necessary packages:
[code]
sudo apt-get install aptitude libncurses5 libncurses5-dev qt3-dev-tools libqt3-mt-dev build-essential fakeroot kernel-package libncurses5 libncurses5-dev patch
[/code]
Now we want to setup the codesourcery compiler via [i]setup_codesourcery.sh[/i] script by Matthias &quot;Maddes&quot; Buecher. I attached the script to this post, but you can find this script on many sites, for example [url=http://www.nas-central.org/wiki/Setting_up_the_codesourcery_toolchain_for_X86_to_ARM9_cross_compiling#Installing_CodeSourcery.27s_Toolchain]here[/url]. We can simply get the script via wget
[code]
mkdir ~/Kernel
cd ~/Kernel
wget http://ftp.maddes.net/hardware/Linkstation/setup_codesourcery.sh
[/code]
Now let's install the compiler
[code]
chmod +x setup_codesourcery.sh
sudo ./setup_codesourcery.sh
[/code]
We also need a kernel patch for the GoFlex Net. I got one mine from [url=http://www.varkey.in/files/goflex-2.6.37.6-p1.patch]varkey's page[/url] but I had to delete the last 7 lines since they were already in the kernel source. So just download the [i]goflex-2.6.38.patch[/i] file I attached to this post and put it to ~/Kernel. What you also need is a kernel config file. To make things a bit easier I've already attached one ([i].config[/i]) for you. You must put it to ~/Kernel too.

Ok, let's get the kernel source and extract it
[code]
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.8.tar.bz2
tar xjvf linux-2.6.38.8.tar.bz2 
cd linux-2.6.38.8
[/code]
The next step is to patch the kernel and copy the config file
[code]
patch -p1 &lt; ../goflex-2.6.38.patch
cp ../.config .
[/code]
After that we go to the crosscompile environment and import the config.
[code]
codesourcery-arm-2009q3.sh
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- oldconfig
[/code]
At this stage you might be asked some questions about kernel options (probably not). It's safe to answer all questions by hitting [i]Enter[/i] which means accepting the default setting.

Now you can perform the custom configuration of your kernel
[code]
make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- xconfig
[/code]
For the first time I suggest that you don't change anything, just to make sure that your custom kernel boots at all. Later you can recompile the kernel and change whatever you want.

Finally, let's build the kernel
[code]
make-kpkg --rootcmd fakeroot --arch armel --cross-compile arm-none-linux-gnueabi- --append-to-version=-goflex --revision=1.1 --initrd binary
[/code]

On my laptop with C2D T5500 and 3GB RAM the build process takes about 40 Minutes. When finished, in ~/Kernel you will find a file called [i]linux-image-2.6.38.8-goflex-ubit_1.1_armel.deb[/i]. Copy this to your GoFlex Net, for example to /root.
[code]
scp ~/Kernel/linux-image-2.6.38.8-goflex-ubit_1.1_armel.deb root@ip-of-the-goflex:/root
[/code]
Now login to your GoFlex Net via ssh and install the kernel
[code]
ssh root@ip-of-the-goflex
-&gt; Pass
cd /root
dpkg -i linux-image-2.6.38.8-goflex-ubit_1.1_armel.deb
[/code] 
The last step is to create uImage und uInitrd for uBoot/UBIT but also backup to the old ones
[code]
cd /boot
cp uImage uImage.old
cp uInitrd uInitrd.old
mkimage -A arm -O linux -T kernel  -C none -a 0x00008000 -e 0x00008000 -n Linux-2.6.38.8 -d /boot/vmlinuz-2.6.38.8-goflex-ubit /boot/uImage
mkimage -A arm -O linux -T ramdisk -C gzip -a 0 -e 0 -n Linux-2.6.38.8  -d /boot/initrd.img-2.6.38.8-goflex-ubit /boot/uInitrd
[/code]

Done! Next time you reboot your GoFlex Net it should boot with the new kernel. If something goes wrong, just connect your USB/HDD with the rootfs to a Linux machine, mount the filesystem and do
[code]
cp /path-to-rootfs/boot/uImage.old /path-to-rootfs/boot/uImage
cp /path-to-rootfs/boot/uInitrd /path-to-rootfs/boot/uInitrd
[/code]
This will give you the old kernel back

[b]Finding the right boot partition[/b]

GoFlex Net has problems to boot from a USB flash drive when there are SATA hard drives attached. The solution you have to apply depends on whether you have Jeff's u-Boot bootloader or the UBIT bootloader. 
[list]
[*] If you initially installed Debian using [url=http://jeff.doozan.com/debian/] Jeff's script [/url] then you have u-Boot. 
[*] If you initially installed Arch using instructions from the [url=http://archlinuxarm.org/] Arch Linux ARM [/url] site then you have UBIT
[/list]
Independent of the solution you are going to use, it's mandatory to label your rootfs partition as &quot;rootfs&quot;. To do this, connect your USB flash drive to a Linux box and issue
[code]sudo tune2fs -L &quot;rootfs&quot; /dev/whatever[/code]
where /dev/whatever is the path to the partition containing the rootfs for GoFlex Net

[b]Solution for uBOOT[/b]

On the GoFlex run
[code]fw_setenv usb_init &quot;run usb_scan; setenv usb_root LABEL=rootfs&quot;[/code]
after that reboot and you're done. For more information on this solution check out [url=http://forum.doozan.com/read.php?2,5552,5552] this thread [/url]

[b]Solution for UBIT aka hacked initrd[/b]

If you have UBIT you still may try the uBOOT solution but the chances are high that it simply won't work. In this case you should do the following.

On the GoFlex Net run
[code]
cd /boot
mkdir initrd.img-new          
cp initrd.img-2.6.38.8-goflex-ubit initrd.img-new/
cd initrd.img-new/
gzip -dc initrd.img-2.6.38.8-goflex-ubit | cpio -id
rm initrd.img-2.6.38.8-goflex-ubit
nano init
[/code]
Find the section which looks like
[code]
if [ -n &quot;${noresume}&quot; ]; then
export noresume
unset resume
else
resume=${RESUME:-}
fi
[/code]
and replace it by
[code]
if [ -n &quot;${noresume}&quot; ]; then
export noresume
unset resume
else
resume=${RESUME:-}
fi
ROOT=&quot;/dev/disk/by-label/rootfs&quot;
[/code]
Save your changes (Ctrl+W) and exit (Ctrl+X) nano. Now run
[code]
find ./ | cpio -H newc -o &gt; initrd.img-2.6.38.8-goflex-ubit
gzip -9 initrd.img-2.6.38.8-goflex-ubit
mv initrd.img-2.6.38.8-goflex-ubit.gz ..//initrd.img-2.6.38.8-goflex-ubit_mod
cd ..
rm -r initrd.img-new
mkimage -A arm -O linux -T ramdisk -C gzip -a 0 -e 0 -n Linux-2.6.38.8  -d /boot/initrd.img-2.6.38.8-goflex-ubit_mod /uInitrd
[/code]
The purpose of all this is to hardcode a rootfs partition. In this case we tell the kernel (via initramfs) that the rootfs partition is a partition with the label &quot;rootfs&quot;. This is a very ugly hack but it works when everything doesn't.

[b]Hacking kernel sources[/b]
In ~/Kernel you will also find a package containing kernel sources (linux-image-2.6.38.8-goflex-ubit_1.1_armel.deb) that might be necessary for compiling some modules/utilities on the GoFlex Net. For some reason this package contains a lot of X11 related dependencies which are definitely not needed for a headless server. I solved this by simply removing those by hand. 
[code]
cd ~/Kernel
dpkg-deb -x linux-headers-2.6.38.8-goflex-ubit_1.1_armel.deb linux-headers-2.6.38.8-goflex-ubit_1.1_armel_hacked
dpkg-deb -e linux-headers-2.6.38.8-goflex-ubit_1.1_armel.deb linux-headers-2.6.38.8-goflex-ubit_1.1_armel_hacked/DEBIAN
nano linux-headers-2.6.38.8-goflex-ubit_1.1_armel/debian/control
[/code]
replace 
[code]
Depends: libaudio2, libc6 (&gt;= 2.8), libfontconfig1 (&gt;= 2.8.0), libfreetype6 (&gt;= 2.2.1), libgcc1 (&gt;= 1:4.1.1), libice6 (&gt;= 1:1.0.0), libjpeg62 (&gt;= 6b1), libpng12-0 (&gt;= 1.2.13-4), libqt3-mt (&gt;= 3:3.3.8-b), libsm6, libstdc++6 (&gt;= 4.1.1), libx11-6, libxcursor1 (&gt;&gt; 1.1.2), libxext6, libxft2 (&gt;&gt; 2.1.1), libxi6, libxinerama1, libxrandr2, libxrender1, libxt6, zlib1g (&gt;= 1:1.1.4)
[/code]
by
[code]
Depends: libc6 (&gt;= 2.8), libgcc1 (&gt;= 1:4.1.1), libjpeg62 (&gt;= 6b1), libpng12-0 (&gt;= 1.2.13-4), libstdc++6 (&gt;= 4.1.1), zlib1g (&gt;= 1:1.1.4)
[/code]
and do
[code]
dpkg-deb -b linux-headers-2.6.38.8-goflex-ubit_1.1_armel_hacked
[/code]
After that you can install the modified package the usual way.
[code]
scp ~/Kernel/linux-headers-2.6.38.8-goflex-ubit_1.1_armel_hacked.deb root@ip-of-the-goflex:/root
ssh root@ip-of-the-goflex
cd /root
dpkg -i linux-headers-2.6.38.8-goflex-ubit_1.1_armel_hacked.deb
[/code]</description>
        <link>http://forum.doozan.com/read.php?2,5775,5775#msg-5775</link>
        <lastBuildDate>Sun, 19 May 2013 00:29:37 -0400</lastBuildDate>
        <generator>Phorum 5.2.18</generator>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,7422#msg-7422</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,7422#msg-7422</link>
            <description><![CDATA[ I think I'm just about done w/ it - a drop-in replacement for the u-boot that Jeff &amp; Carmichael built... in terms of booting functions, it works identically to Jeff's original, AFAICT.<br />
<br />
I need to patch in the LED's still.   Not sure if I want to use Jeff's&amp;Carmichaels' code for that, or try to tie it in very closely with the already-existing KW_GPIO &amp; mvgpio stuff.<br />
<br />
BTW, the u-boot-2012.03-stable release is really just weeks or days away.]]></description>
            <dc:creator>davygravy</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 23 Mar 2012 10:58:32 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,7419#msg-7419</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,7419#msg-7419</link>
            <description><![CDATA[ The problem actually occurs only with UBIT v0.6. As soon as a SATA HDD is attached, the &quot;setenv bootargs&quot; is not honoured any more and UBIT always sets root=/dev/sda1 regardless of the setenv values. I might test u-boot 2011.12 if someone could provide a good howto on compiling, testing and reflashing the u-boot, but first I need to get a JTAG module to be prepared for the worst.]]></description>
            <dc:creator>Vlad</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 23 Mar 2012 07:34:05 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,7406#msg-7406</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,7406#msg-7406</link>
            <description><![CDATA[ kraqh3d Wrote:<br />
-------------------------------------------------------<br />
&gt; The only difference between Jeff's Uboot and the<br />
&gt; UBIT installed Uboot, as far as I understand, is<br />
&gt; that the UBIT installed one allows booting from<br />
&gt; SATA.  Jeff's UBoot does not because I don't think<br />
&gt; it can sense the SATA ports.  The booting issues<br />
&gt; arise because Linux udev will identify the SATA<br />
&gt; disks when the initrd is loaded.  The SATA ports<br />
&gt; will get identified as /dev/sda1 and /dev/sda2,<br />
&gt; while Jeff's Uboot thinks /dev/sda1 is the first<br />
&gt; USB port where your root file system is<br />
&gt; locationed.  Setting the root as a LABEL for Uboot<br />
&gt; works around the identification mismatch.  But if<br />
&gt; you want to boot from SATA, I think UBIT is the<br />
&gt; only option.<br />
<br />
<br />
I wonder if there is a way to fix u-boot so this misidentification cannot happen.<br />
<br />
I've now got a u-boot 2011.12 patched with the L2Cachedisable feature, and it works w/ the usb rootfs (with the roofs label method).    It will boot 3.2, 3.3 kernels, no kernel panic.  BTW, I have it identified with machid = eSATA Sheevaplug.<br />
<pre class="bbcode">
32.853467] Freeing init memory: 140K                                        
[   32.892812] udevd[48]: starting version 175                                  
[   32.960207] mv643xx_eth: MV-643xx 10/100/1000 ethernet driver version 1.4    
[   33.054640] mv643xx_eth smi: probed                                          
[   33.103361] mv643xx_eth_port mv643xx_eth_port.0: eth0: port 0 with MAC addree
[   33.113421] mmc0: mvsdio driver initialized, using GPIO 47 for card detection
[   33.131873] usbcore: registered new interface driver usbfs                   
[   33.146943] SCSI subsystem initialized                                       
[   33.167188] usbcore: registered new interface driver hub                     
[   33.203040] usbcore: registered new device driver usb                        
[   33.210161] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver       
[   33.249286] libata version 3.00 loaded.                                      
[   33.254330] sata_mv sata_mv.0: version 1.28                                  
[   33.254469] sata_mv sata_mv.0: slots 32 ports 2                              
[   33.285476] scsi0 : sata_mv                                                  
[   33.292769] scsi1 : sata_mv                                                  
[   33.303011] ata1: SATA max UDMA/133 irq 21                                   
[   33.307140] ata2: SATA max UDMA/133 irq 21                                   
[   33.317385] orion-ehci orion-ehci.0: Marvell Orion EHCI                      
[   33.323527] orion-ehci orion-ehci.0: new USB bus registered, assigned bus nu1
[   33.352332] orion-ehci orion-ehci.0: irq 19, io mem 0xf1050000               
[   33.372298] orion-ehci orion-ehci.0: USB 2.0 started, EHCI 1.00              
[   33.378313] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002    
[   33.385156] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber1
[   33.392420] usb usb1: Product: Marvell Orion EHCI                            
[   33.397144] usb usb1: Manufacturer: Linux 3.2.0-2-kirkwood ehci_hcd          
[   33.403449] usb usb1: SerialNumber: orion-ehci.0                             
[   33.409013] hub 1-0:1.0: USB hub found                                       
[   33.412812] hub 1-0:1.0: 1 port detected                                     
[   33.662314] ata1: SATA link down (SStatus 0 SControl F300)                   
[   33.732311] usb 1-1: new high-speed USB device number 2 using orion-ehci     
[   33.883218] usb 1-1: New USB device found, idVendor=0781, idProduct=5530     
[   33.889948] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[   33.897130] usb 1-1: Product: Cruzer                                         
[   33.900723] usb 1-1: Manufacturer: SanDisk                                   
[   33.904846] usb 1-1: SerialNumber: 20060775101D8B336814                      
[   34.182319] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl F300)          
[   34.602344] ata2.00: ATA-8: TOSHIBA MK1655GSX, FG010D, max UDMA/100          
[   34.608642] ata2.00: 312581808 sectors, multi 16: LBA48 NCQ (depth 31/32)    
[   34.652347] ata2.00: configured for UDMA/100                                 
[   34.656978] scsi 1:0:0:0: Direct-Access     ATA      TOSHIBA MK1655GS FG01 P5
[   34.705250] usbcore: registered new interface driver uas                     
[   34.713829] sd 1:0:0:0: [sda] 312581808 512-byte logical blocks: (160 GB/149)
[   34.722457] sd 1:0:0:0: [sda] Write Protect is off                           
[   34.727278] sd 1:0:0:0: [sda] Mode Sense: 00 3a 00 00                        
[   34.730964] Initializing USB Mass Storage driver...                          
[   34.735996] sd 1:0:0:0: [sda] Write cache: enabled, read cache: enabled, doeA
[   34.745388] scsi2 : usb-storage 1-1:1.0                                      
[   34.750647] usbcore: registered new interface driver usb-storage             
[   34.756703] USB Mass Storage support registered.                             
[   34.883194]  sda: sda1 sda2 sda3                                             
[   34.888389] sd 1:0:0:0: [sda] Attached SCSI disk                             
[   35.743313] scsi 2:0:0:0: Direct-Access     SanDisk  Cruzer           1.26 P5
[   35.756239] sd 2:0:0:0: [sdb] 15633408 512-byte logical blocks: (8.00 GB/7.4)
[   35.773637] sd 2:0:0:0: [sdb] Write Protect is off                           
[   35.778457] sd 2:0:0:0: [sdb] Mode Sense: 43 00 00 00                        
[   35.779119] sd 2:0:0:0: [sdb] Write cache: disabled, read cache: enabled, doA
[   35.794751]  sdb: sdb1 sdb2 sdb3                                             
</pre>]]></description>
            <dc:creator>davygravy</dc:creator>
            <category>Debian</category>
            <pubDate>Tue, 20 Mar 2012 20:37:39 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,7211#msg-7211</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,7211#msg-7211</link>
            <description><![CDATA[ Thanks Dpffan!]]></description>
            <dc:creator>bodhi</dc:creator>
            <category>Debian</category>
            <pubDate>Sun, 26 Feb 2012 15:41:42 -0500</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,7206#msg-7206</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,7206#msg-7206</link>
            <description><![CDATA[ I don't think so.<br />
<br />
Refs:<br />
<a href="http://lxr.free-electrons.com/source/arch/arm/mach-kirkwood/?a=arm"  rel="nofollow">Kernel Source References</a><br />
<a href="https://github.com/archlinuxarm/PKGBUILDs/blob/master/core/linux/archlinuxarm.patch"  rel="nofollow">Arch Linux ARM patch</a>]]></description>
            <dc:creator>dpffan</dc:creator>
            <category>Debian</category>
            <pubDate>Sun, 26 Feb 2012 06:22:47 -0500</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,7205#msg-7205</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,7205#msg-7205</link>
            <description><![CDATA[ Does anybody know if the patch for GoFlex Net and GoFlex Home have been incorporated in the main line? i.e. Debian 3.x.x?]]></description>
            <dc:creator>bodhi</dc:creator>
            <category>Debian</category>
            <pubDate>Sat, 25 Feb 2012 16:09:55 -0500</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,6152#msg-6152</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,6152#msg-6152</link>
            <description><![CDATA[ Hi,<br />
good news: the UBoot settings from above does not work, but even if you keep the old values:<br />
<br />
<pre class="bbcode">
fw_setenv sata_boot 'ide reset; mw 0x800000 0 1; ext2load ide 0:1 0x800000 /boot/uImage; if ext2load ide 0:1 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi'</pre>
the rootfs will be mounted as ext3 if it is formatted as ext3.<br />
<br />
Greetings,<br />
Thomas]]></description>
            <dc:creator>squeezeplug</dc:creator>
            <category>Debian</category>
            <pubDate>Sun, 23 Oct 2011 15:23:13 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,6149#msg-6149</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,6149#msg-6149</link>
            <description><![CDATA[ Hi,<br />
does:<br />
<pre class="bbcode">
fw_setenv sata_boot 'ide reset; mw 0x800000 0 1; ext2load ide 0:1 0x800000 /boot/uImage; if ext2load ide 0:1 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi'</pre>
also work with ext3:<br />
<pre class="bbcode">
fw_setenv sata_boot 'ide reset; mw 0x800000 0 1; ext3load ide 0:1 0x800000 /boot/uImage; if ext3load ide 0:1 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi'</pre>
<br />
Thanks a lot!]]></description>
            <dc:creator>squeezeplug</dc:creator>
            <category>Debian</category>
            <pubDate>Sun, 23 Oct 2011 04:51:30 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5883#msg-5883</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5883#msg-5883</link>
            <description><![CDATA[ kraqh3d Wrote:<br />
-------------------------------------------------------<br />
&gt; ... but it requires booting exclusively from the first port, right?<br />
<br />
right, right!]]></description>
            <dc:creator>squeezeplug</dc:creator>
            <category>Debian</category>
            <pubDate>Sun, 11 Sep 2011 11:31:23 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5882#msg-5882</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5882#msg-5882</link>
            <description><![CDATA[ Ah.  Thanks for that clarification varkey.   Your uboot env mod is simple enough but it requires booting exclusively from the first port, right?  It looks for the kernel and initrd on ide 0:1 and makes use of the usb_set_bootargs since the default value of usb_root is /dev/sda1 which hopefully would be the same device name assigned by udev.]]></description>
            <dc:creator>kraqh3d</dc:creator>
            <category>Debian</category>
            <pubDate>Sun, 11 Sep 2011 10:52:15 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5870#msg-5870</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5870#msg-5870</link>
            <description><![CDATA[ Hi Varkey,<br />
great! That works !!!<br />
<br />
<pre class="bbcode">
fw_setenv sata_boot 'ide reset; mw 0x800000 0 1; ext2load ide 0:1 0x800000 /boot/uImage; if ext2load ide 0:1 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi'
fw_setenv sata_bootcmd 'run usb_set_bootargs; run sata_boot'
fw_setenv bootcmd 'usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run sata_bootcmd; run rescue_bootcmd; run pogo_bootcmd; reset'</pre>
<br />
And you are right, it only works with the righthand (from the front) SATA-Slot. (booting from two devices is very unconventional ;) )<br />
<br />
Now I have only to find out the U-Boot settings for Sheeva, to use the one and only kernel and rootfs on all devices (Dockstar, Goflex and Sheeva)!<br />
<br />
Greetings,<br />
Thomas]]></description>
            <dc:creator>squeezeplug</dc:creator>
            <category>Debian</category>
            <pubDate>Sat, 10 Sep 2011 15:38:26 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5868#msg-5868</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5868#msg-5868</link>
            <description><![CDATA[ ^ Yes that's right. If you remove the hard disks it will boot the rescue system.]]></description>
            <dc:creator>varkey</dc:creator>
            <category>Debian</category>
            <pubDate>Sat, 10 Sep 2011 12:11:33 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5867#msg-5867</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5867#msg-5867</link>
            <description><![CDATA[ Thanks for that, I'll try!<br />
<br />
If I have a rescue system on the NAND is the boot behavior like this:<br />
<br />
1. USB-Stick<br />
2. SATA HD<br />
3. Rescue System<br />
<br />
Or does Goflex only boot from  SATA after the modifications ?<br />
<br />
Greetings,<br />
Thomas]]></description>
            <dc:creator>squeezeplug</dc:creator>
            <category>Debian</category>
            <pubDate>Sat, 10 Sep 2011 12:05:28 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5865#msg-5865</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5865#msg-5865</link>
            <description><![CDATA[ <blockquote class="bbcode"><div><small>Quote<br/></small><strong>squeezeplug</strong><br/>
I tried to boot from SATA, but that don't work for me. Do you have any idea?</div></blockquote>
<br />
If you are using Jeff's uBoot, by default it will not boot from a SATA drive even if you have installed a kernel which supports the SATA ports.<br />
<br />
You need to change the uBoot settings so that it can initialize the SATA ports and load the Kernel and Initrd from the SATA disk. These are the changes that I made<br />
<br />
<pre class="bbcode">
fw_setenv sata_boot 'ide reset; mw 0x800000 0 1; ext2load ide 0:1 0x800000 /boot/uImage; if ext2load ide 0:1 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi'
fw_setenv sata_bootcmd 'run usb_set_bootargs; run sata_boot'
fw_setenv bootcmd 'usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run sata_bootcmd; run rescue_bootcmd; run pogo_bootcmd; reset'</pre>
<br />
Edit : Booting from SATA is very much possible with Jeff's uBoot, and UBIT is *NOT* necessary. I have done it as described in my blog<br />
<br />
<a href="http://www.varkey.in/2011/06/boot-debian-from-sata-seagate-goflex-net/"  rel="nofollow">http://www.varkey.in/2011/06/boot-debian-from-sata-seagate-goflex-net/</a><br />
<br />
Note that you need to connect the hard disk to the *right* SATA port]]></description>
            <dc:creator>varkey</dc:creator>
            <category>Debian</category>
            <pubDate>Sat, 10 Sep 2011 11:46:24 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5864#msg-5864</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5864#msg-5864</link>
            <description><![CDATA[ Hi,<br />
thanks Vlad and kraqh3d for all your informations, but now I'm a little bit confused.<br />
<br />
What I understood is: Booting from SATA is only possible with UBIT. What about this:<br />
<br />
<a href="http://www.varkey.in/tag/goflex-net/"  rel="nofollow">http://www.varkey.in/tag/goflex-net/</a><br />
<br />
Does this modification work?<br />
<br />
fw_setenv sata_boot 'ide reset; mw 0x800000 0 1; ext2load ide 0:1 0x800000 /boot/uImage; if ext2load ide 0:1 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi'<br />
fw_setenv sata_bootcmd 'run usb_set_bootargs; run sata_boot'<br />
fw_setenv bootcmd 'usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run sata_bootcmd; run rescue_bootcmd; run pogo_bootcmd; reset'<br />
<br />
I can boot fine from my USB-attached SATA drive, but in a SATA-Port it fails booting.<br />
<br />
If an expert like to take a look at my GoFlex Net we could arrange that.<br />
<br />
Greetings,<br />
Thomas]]></description>
            <dc:creator>squeezeplug</dc:creator>
            <category>Debian</category>
            <pubDate>Sat, 10 Sep 2011 11:43:21 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5863#msg-5863</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5863#msg-5863</link>
            <description><![CDATA[ I've got nothing.  I don't have a GoFlex Net to experiment on myself.  Can you explain the entire boot process using UBIT?  I've been reading the Arch forums and UBIT doesn't seem to anything more than a one time installer for a version of UBoot.  I haven't pulled down and unpacked the ramdisk image though to look at the scripts referenced by the Arch instructions.  <br />
<br />
The only difference between Jeff's Uboot and the UBIT installed Uboot, as far as I understand, is that the UBIT installed one allows booting from SATA.  Jeff's UBoot does not because I don't think it can sense the SATA ports.  The booting issues arise because Linux udev will identify the SATA disks when the initrd is loaded.  The SATA ports will get identified as /dev/sda1 and /dev/sda2, while Jeff's Uboot thinks /dev/sda1 is the first USB port where your root file system is locationed.  Setting the root as a LABEL for Uboot works around the identification mismatch.  But if you want to boot from SATA, I think UBIT is the only option.<br />
<br />
But I have no idea why the UBIT Uboot doesn't pass the root correctly.  The boot loader's job is to load the kernel and an initrd into memory, and then execute the kernel with some parameters.  UBIT should work the same as Lilo, Grub, Grub2, and Jeff's Uboot.  The loaded initrd is then supposed to handle converting the root as UUID or LABEL into a device using the udev symlink.  (It's in the init script.)  The UBIT Uboot shouldn't be searching for anything.  After loading, and after the boot delay countdown expires, its supposed to execute bootcmd.]]></description>
            <dc:creator>kraqh3d</dc:creator>
            <category>Debian</category>
            <pubDate>Sat, 10 Sep 2011 11:12:41 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5862#msg-5862</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5862#msg-5862</link>
            <description><![CDATA[ Well, I've just updated my howto once again to incorporate both solutions. Hopefully everybody is happy  now ;)<br />
<br />
@squeezeplug<br />
If you have Jeff's bootloader I'd rather wait for kraqh3d to answer you questions concerning SATA boot.]]></description>
            <dc:creator>Vlad</dc:creator>
            <category>Debian</category>
            <pubDate>Sat, 10 Sep 2011 07:36:17 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5861#msg-5861</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5861#msg-5861</link>
            <description><![CDATA[ Hi Vlad,<br />
<br />
I decided to use Jeff's bootloader and maybe to install the rescue-system on NAND. I think that's a good setup as well.<br />
<br />
The SATA ports are working from this setup.<br />
<br />
I tried to boot from SATA, but that don't work for me. Do you have any idea?<br />
<br />
Thanks a lot,<br />
Greetings,<br />
Thomas]]></description>
            <dc:creator>squeezeplug</dc:creator>
            <category>Debian</category>
            <pubDate>Sat, 10 Sep 2011 07:12:46 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5860#msg-5860</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5860#msg-5860</link>
            <description><![CDATA[ I went even further and removed all occurences of LABEL=root from the bootloader environment<br />
<br />
<pre class="bbcode">
ethact=egiga0
bootdelay=3
baudrate=115200
mainlineLinux=yes
console=ttyS0,115200
led_init=green blinking
led_exit=green off
led_error=orange blinking
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
mtdids=nand0=orion_nand
partition=nand0,2
stdin=serial
stdout=serial
stderr=serial
rescue_installed=0
rescue_set_bootargs=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts $rescue_custom_params
rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000; else run pogo_bootcmd; fi
pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi
force_rescue=0
force_rescue_bootcmd=if test $force_rescue -eq 1 || ext2load usb 0:1 0x1700000 /rescueme 1 || fatload usb 0:1 0x1700000 /rescueme.txt 1; then run rescue_bootcmd; fi
ubifs_mtd=3
ubifs_set_bootargs=setenv bootargs console=$console ubi.mtd=$ubifs_mtd root=ubi0:rootfs rootfstype=ubifs $mtdparts $ubifs_custom_params
ubifs_bootcmd=run ubifs_set_bootargs; if ubi part data &amp;&amp; ubifsmount rootfs &amp;&amp; ubifsload 0x800000 /boot/uImage &amp;&amp; ubifsload 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; fi
usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 &amp;&amp; ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo &quot;Found bootable drive on usb $usb&quot;; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done
usb_scan_list=1 2 3 4
usb_scan_1=usb=0:1 dev=sda1
usb_scan_2=usb=1:1 dev=sdb1
usb_scan_3=usb=2:1 dev=sdc1
usb_scan_4=usb=3:1 dev=sdd1
usb_device=0:1
usb_root=/dev/sda1
usb_rootfstype=ext2
usb_rootdelay=10
usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts $usb_custom_params
usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
bootcmd=usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset
ethaddr=*******************
arcNumber=3089
ipaddr=10.0.10.6
ncip=10.10.10.5
ncipk=10.10.10.4
serverip=10.10.10.3
preboot=run nc_test nc_start
nc_test=ping $ncip
nc_start=setenv stdin nc; setenv stdout nc; setenv stderr nc; version
usb_init=run usb_scan
usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot</pre>
<br />
then I repeated the same test with a USB hub and 4 flash drives but no HDDs. Surprisingly it still works. But as soon as you connect the hard drives is doesn't. I guess that's because UBIT by default searches for partitions labeled &quot;rootfs&quot; without really respecting the environment options. Still this fails when hard drives are attached. <br />
<br />
Thus, at the moment I see no alternative to initrd hack when using GoFlex Net and UBIT v0.6]]></description>
            <dc:creator>Vlad</dc:creator>
            <category>Debian</category>
            <pubDate>Sat, 10 Sep 2011 04:39:58 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5859#msg-5859</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5859#msg-5859</link>
            <description><![CDATA[ That's not going to work because &quot;run usb_set_bootargs&quot; sets the bootargs variable which references &quot;root=$usb_root&quot;.  Altering usb_root after that does nothing at all to change your kernel boot parameters.  It's already been defined according to usb_root=/dev/$dev at the end of usb_scan.<br />
<br />
This is the relevant bit from my environment:<br />
<pre class="bbcode">

usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 &amp;&amp; ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo &quot;Found bootable drive on usb $usb&quot;; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done
usb_scan_list=1 2 3 4
usb_scan_1=usb=0:1 dev=sda1
usb_scan_2=usb=1:1 dev=sdb1
usb_scan_3=usb=2:1 dev=sdc1
usb_scan_4=usb=3:1 dev=sdd1
usb_device=0:1
usb_rootdelay=10
usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts $usb_custom_params
usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot
usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
bootcmd=usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset
usb_rootfstype=ext3
usb_root=/dev/sda1
usb_init=run usb_scan; setenv usb_root LABEL=ROOTFS

cat /proc/cmdline
console=ttyS0,115200 root=LABEL=ROOTFS rootdelay=10 rootfstype=ext3 mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)</pre>
<br />
You'll notice my usb_root variable is near the bottom.  My initial attempts of just trying to change usb_root didn't work.  I had to experiment with serial access, where I stopped the boot sequence and ran through the process manually.  I found that you have to correct usb_root after usb_scan but before usb_set_bootags, or change the entire process which didn't seem worth it.<br />
<br />
It's very strange that removing the hard drives makes it work for you.  I can't see how that would make a difference.]]></description>
            <dc:creator>kraqh3d</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 09 Sep 2011 21:59:10 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5849#msg-5849</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5849#msg-5849</link>
            <description><![CDATA[ Strange indeed. hd_args and usb_args come from my previous attempts to make it work. At the beginning I also wanted to go the clean way, but after everything else failed, a hacked initrd was the only thing left.<br />
<br />
I've just tried to pass<br />
<pre class="bbcode">#fw_setenv usb_bootcmd &quot;run usb_init; run usb_set_bootargs; usb_root=LABEL=rootfs; run usb_boot&quot;</pre>
which is like the closest point you can get.<br />
<br />
This gave me some interesting results. First I've tried the usual way: rootfs on a USB flash drive + 2 data HDDs -&gt; no luck. Then I removed the HDDs and connected a USB hub with 4 USB flash drives. To my surprise, this time LABEL=rootfs worked! <br />
<br />
<pre class="bbcode">
cat /proc/cmdline
console=ttyS0,115200 mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data) root=/dev/sdd1 rootdelay=10 netconsole=@10.0.10.6/eth0,@10.10.10.4/</pre>
<br />
This means, the option is applied but somehow the presence of HDDs seems to confuse UBIT that much, that it fails to provide a proper USB boot. To me this looks pretty much like a UBIT bug, but I'm not sure.]]></description>
            <dc:creator>Vlad</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 09 Sep 2011 20:44:09 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5836#msg-5836</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5836#msg-5836</link>
            <description><![CDATA[ Strange.  It looks like it should work.  Mind trying a manual boot?<br />
<br />
usb start<br />
run usb_scan<br />
setenv usb_root LABEL=rootfs<br />
run usb_set_bootargs<br />
printenv usb_set_bootargs<br />
run usb_boot<br />
<br />
The hd_args and usb_args seem like attempts to do the same thing, but I dont see them being referenced anywhere.  <br />
<br />
Booting from a label or uuid is the better way to go.  You're doing that by force the init script to look for a particular hard coded label.  But the init script will do that on it's own if passed a label or uuid.]]></description>
            <dc:creator>kraqh3d</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 09 Sep 2011 19:16:22 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5835#msg-5835</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5835#msg-5835</link>
            <description><![CDATA[ Here you are. But frankly speaking I don't see much purpose in applying the other solution apart from the  aesthetic reasons. Debian can only modify your initrd but not the uInitrd. Thus it definitely won't get overwritten. Moreover, I wouldn't suggest that newbies mess with the environment variables. An ugly initrd is a much lesser evil than a hosed bootloader environment. <br />
<br />
<pre class="bbcode">
ethact=egiga0
bootdelay=3
baudrate=115200
mainlineLinux=yes
console=ttyS0,115200
led_init=green blinking
led_exit=green off
led_error=orange blinking
mtdparts=mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data)
mtdids=nand0=orion_nand
partition=nand0,2
stdin=serial
stdout=serial
stderr=serial
rescue_installed=0
rescue_set_bootargs=setenv bootargs console=$console ubi.mtd=2 root=ubi0:rootfs ro rootfstype=ubifs $mtdparts $rescue_custom_params
rescue_bootcmd=if test $rescue_installed -eq 1; then run rescue_set_bootargs; nand read.e 0x800000 0x100000 0x400000; bootm 0x800000; else run pogo_bootcmd; fi
pogo_bootcmd=if fsload uboot-original-mtd0.kwb; then go 0x800200; fi
force_rescue=0
force_rescue_bootcmd=if test $force_rescue -eq 1 || ext2load usb 0:1 0x1700000 /rescueme 1 || fatload usb 0:1 0x1700000 /rescueme.txt 1; then run rescue_bootcmd; fi
ubifs_mtd=3
ubifs_set_bootargs=setenv bootargs console=$console ubi.mtd=$ubifs_mtd root=ubi0:rootfs rootfstype=ubifs $mtdparts $ubifs_custom_params
ubifs_bootcmd=run ubifs_set_bootargs; if ubi part data &amp;&amp; ubifsmount rootfs &amp;&amp; ubifsload 0x800000 /boot/uImage &amp;&amp; ubifsload 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; fi
usb_scan=usb_scan_done=0;for scan in $usb_scan_list; do run usb_scan_$scan; if test $usb_scan_done -eq 0 &amp;&amp; ext2load usb $usb 0x800000 /boot/uImage 1; then usb_scan_done=1; echo &quot;Found bootable drive on usb $usb&quot;; setenv usb_device $usb; setenv usb_root /dev/$dev; fi; done
usb_scan_list=1 2 3 4
usb_scan_1=usb=0:1 dev=sda1
usb_scan_2=usb=1:1 dev=sdb1
usb_scan_3=usb=2:1 dev=sdc1
usb_scan_4=usb=3:1 dev=sdd1
usb_device=0:1
usb_root=/dev/sda1
usb_rootfstype=ext2
usb_rootdelay=10
usb_set_bootargs=setenv bootargs console=$console root=$usb_root rootdelay=$usb_rootdelay rootfstype=$usb_rootfstype $mtdparts $usb_custom_params
usb_bootcmd=run usb_init; run usb_set_bootargs; run usb_boot
usb_boot=mw 0x800000 0 1; ext2load usb $usb_device 0x800000 /boot/uImage; if ext2load usb $usb_device 0x1100000 /boot/uInitrd; then bootm 0x800000 0x1100000; else bootm 0x800000; fi
bootcmd=usb start; run force_rescue_bootcmd; run ubifs_bootcmd; run usb_bootcmd; usb stop; run rescue_bootcmd; run pogo_bootcmd; reset
ethaddr=**********************
arcNumber=3089
ipaddr=10.0.10.6
ncip=10.10.10.5
ncipk=10.10.10.4
serverip=10.10.10.3
preboot=run nc_test nc_start
nc_test=ping $ncip
nc_start=setenv stdin nc; setenv stdout nc; setenv stderr nc; version
hd_args_0=boot_dev='ide 0:1'; dev_args='root=LABEL=rootfs'
hd_args_1=boot_dev='ide 1:1'; dev_args='root=LABEL=rootfs'
usb_args_0=boot_dev='usb 0:1'; dev_args='root=LABEL=rootfs rootdelay=10'
usb_args_1=boot_dev='usb 1:1'; dev_args='root=LABEL=rootfs rootdelay=10'
usb_args_2=boot_dev='usb 2:1'; dev_args='root=LABEL=rootfs rootdelay=10'
usb_args_3=boot_dev='usb 3:1'; dev_args='root=LABEL=rootfs rootdelay=10'
usb_init=run usb_scan
</pre>]]></description>
            <dc:creator>Vlad</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 09 Sep 2011 18:46:16 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5834#msg-5834</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5834#msg-5834</link>
            <description><![CDATA[ It will work.  This is one of the purposes of using an initrd.  Post the full environment.  It likely needs to be added someplace else so it doesn't get over written by the uboot script.   And try it with the uboot scripts.  Just break into the boot sequence and force everything to occur manually.]]></description>
            <dc:creator>kraqh3d</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 09 Sep 2011 18:32:01 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5833#msg-5833</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5833#msg-5833</link>
            <description><![CDATA[ squeezeplug Wrote:<br />
-------------------------------------------------------<br />
&gt; Hi Vlad,<br />
&gt; thanks for that! Are you sure this should work? I<br />
&gt; tried it from my working DS, because I can't do it<br />
&gt; on a non working GF.<br />
<br />
It works on my GoFlex Net, that's all I can say. By the way, if you followed my guide, you should still have your old uImage and uInitrd named uImage.old and uInitrd.old. If you rename them to uImage and uInitrd your GoFlex should boot as it did before.<br />
<br />
&gt; <br />
&gt; The kernel boots fine with Jeff's bootloader and I<br />
&gt; think I can live with that.<br />
&gt; <br />
Dockstar doesn't really need UBIT. Jeff's uBoot is fine.<br />
<br />
&gt; My other problem is the SheevaPlug device. I like<br />
&gt; to use the same image with the same kernel on<br />
&gt; Sheeva, but I got lost. Have you done this? Do you<br />
&gt; know the UBoot environment parameters to boot a DS<br />
&gt; Image (ported to MMC) on Sheeva?<br />
<br />
Unfortunately, I have no SheevaPlug, so I can't really help you here.]]></description>
            <dc:creator>Vlad</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 09 Sep 2011 17:56:51 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5832#msg-5832</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5832#msg-5832</link>
            <description><![CDATA[ kraqh3d Wrote:<br />
-------------------------------------------------------<br />
&gt; Look here for a much cleaner solution:<br />
&gt; <a href="http://forum.doozan.com/read.php?2,5552,5552"  rel="nofollow">http://forum.doozan.com/read.php?2,5552,5552</a><br />
&gt; <br />
&gt; You don't need to modify with the init script from<br />
&gt; the initrd image.  The init script does this<br />
&gt; already by default if you just simply pass the<br />
&gt; kernel the root locaton using a label.  For your<br />
&gt; example above, you just need to pass the kernel<br />
&gt; &quot;root=LABEL=rootfs&quot;.<br />
<br />
While I agree that my workaround is nothing more than an ugly hack, I must also warn, that the &quot;cleaner solution&quot; doesn't work with <b>UBIT</b>, only uBOOT. I've just did a little experiment:<br />
<ul><li> Took my GoFlex Net with UBIT v0.6 </li><li> Took <a href="http://jeff.doozan.com/debian/goflex/v0.6/v2.6.37/" rel="nofollow">Jeffs' 2.6.37 kernel</a> and unmodified initrd from my custom kernel </li><li> Changed the firmware environment as described </li></ul>
<pre class="bbcode">
#fw_setenv usb_init &quot;run usb_scan; setenv usb_root LABEL=rootfs&quot; 
#fw_printenv | grep usb_init
usb_init=run usb_scan; setenv usb_root LABEL=rootfs</pre>
<ul><li> The rootfs partition is of course labeled &quot;rootfs&quot; </li><li> Booted without any harddrives attached. </li></ul>
Check out the kernel parameters:<br />
<pre class="bbcode">
cat /proc/cmdline
console=ttyS0,115200 mtdparts=orion_nand:1M(u-boot),4M(uImage),32M(rootfs),-(data) root=/dev/sda1 rootdelay=10 netconsole=@10.0.10.6/eth0,@10.10.10.4/</pre>
<ul>Now reboot with both HDDs attached and watch the boot process via netconsole</ul>
<pre class="bbcode">
....
Registering the dns_resolver key type
registered taskstats version 1
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
Freeing init memory: 164K
scsi 2:0:0:0: Direct-Access     SanDisk  Cruzer           7.01 PQ: 0 ANSI: 0 CCS
sd 2:0:0:0: [sdc] 7905279 512-byte logical blocks: (4.04 GB/3.76 GiB)
sd 2:0:0:0: [sdc] Write Protect is off
sd 2:0:0:0: [sdc] Assuming drive cache: write through
sd 2:0:0:0: Attached scsi generic sg2 type 0
sd 2:0:0:0: [sdc] Assuming drive cache: write through
 sdc: sdc1 sdc2
sd 2:0:0:0: [sdc] Assuming drive cache: write through
sd 2:0:0:0: [sdc] Attached SCSI removable disk</pre>
at this point the kernel simply freezes. Now take my custom vanilla kernel instead:<br />
<pre class="bbcode">
....
Registering the dns_resolver key type
registered taskstats version 1
drivers/rtc/hctosys.c: unable to open rtc device (rtc0)
Waiting 10sec before mounting root device...
scsi 2:0:0:0: Direct-Access     SanDisk  Cruzer           1.10 PQ: 0 ANSI: 2
sd 2:0:0:0: Attached scsi generic sg2 type 0
sd 2:0:0:0: [sdc] 31266816 512-byte logical blocks: (16.0 GB/14.9 GiB)
sd 2:0:0:0: [sdc] Write Protect is off
sd 2:0:0:0: [sdc] Assuming drive cache: write through
sd 2:0:0:0: [sdc] Assuming drive cache: write through
 sdc: unknown partition table
sd 2:0:0:0: [sdc] Assuming drive cache: write through
sd 2:0:0:0: [sdc] Attached SCSI removable disk
scsi 3:0:0:0: Direct-Access     SanDisk  Cruzer           7.01 PQ: 0 ANSI: 0 CCS
sd 3:0:0:0: Attached scsi generic sg3 type 0
sd 3:0:0:0: [sdd] 7905279 512-byte logical blocks: (4.04 GB/3.76 GiB)
sd 3:0:0:0: [sdd] Write Protect is off
sd 3:0:0:0: [sdd] Assuming drive cache: write through
sd 3:0:0:0: [sdd] Assuming drive cache: write through
 sdd: sdd1 sdd2
sd 3:0:0:0: [sdd] Assuming drive cache: write through
sd 3:0:0:0: [sdd] Attached SCSI removable disk
Unable to handle kernel NULL pointer dereference at virtual address 000001bc
pgd = c0004000
[000001bc] *pgd=00000000
Internal error: Oops: 5 [#1]
last sysfs file: 
Modules linked in:
CPU: 0    Not tainted  (2.6.38.8-goflex-ubit #5)
PC is at blkdev_get+0x20c/0x294
LR is at blkdev_get+0x20c/0x294
pc : [&lt;c00c3d80&gt;]    lr : [&lt;c00c3d80&gt;]    psr: 60000013
sp : c7827e30  ip : 00000001  fp : 00000000
r10: 00000000  r9 : c7402390  r8 : fffffffa
r7 : 00000083  r6 : c04e0368  r5 : c7402380  r4 : c7402540
r3 : 00000000  r2 : 00000000  r1 : c7402564  r0 : c06963f8
Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
Control: 0005397f  Table: 00004000  DAC: 00000017
Process swapper (pid: 1, stack limit = 0xc7826270)
Stack: (0xc7827e30 to 0xc7828000)
7e20:                                     00000003 c7402564 c7827e44 00000004
7e40: 00000000 00800011 c7405600 00000001 00000000 c7402380 00000083 c04e0368
7e60: 00008000 c04e0368 00008000 00000000 00000000 c00c3ee8 c7b0a0a0 00000083
7e80: 00008000 c009f0a4 c058012c c058012c 00000000 0000000a c7b08ac0 c7b0a110
7ea0: 00000000 c7b08aa0 c7b08aa0 c7b0a0a0 c04e0368 c7b08ac0 00008000 00000000
7ec0: c7b08b00 c00ef864 c00f1110 00008000 c7b08ac0 c009dfa8 c04e0368 00008000
7ee0: c04e0368 c7b08b00 00000000 c7b08ac0 00008000 c009e104 00000020 c7b08ac0
7f00: 00000000 00008000 00000000 c00b3f18 0000000a c00832cc 00000000 0000000a
7f20: c78180a0 c7405600 c7815000 c044bc15 00000000 00008000 c044bc15 00000000
7f40: 00000000 c00b4008 00000000 c044bc15 00000000 00000000 c7b08ac0 c7b08b00
7f60: c78110f8 c7811000 c7811000 00008000 c0025394 c0008b60 00000000 c7811000
7f80: c7811000 c0008de4 c04dc1f0 5c2d2f7c c002c900 00000013 00000080 c00253f4
7fa0: 00000080 c7811000 00000013 00800011 c00253a9 c002c908 00000013 00000000
7fc0: 00000000 c0008f9c 00000000 00000000 c04fbb20 c0009120 fffffffe c7401ee8
7fe0: ffffff9c c04fbac0 c0008334 c000843c 00000000 c002c908 08e75e16 2ced0aac
[&lt;c00c3d80&gt;] (blkdev_get+0x20c/0x294) from [&lt;c00c3ee8&gt;] (blkdev_get_by_path+0x28/0x64)
[&lt;c00c3ee8&gt;] (blkdev_get_by_path+0x28/0x64) from [&lt;c009f0a4&gt;] (mount_bdev+0x30/0x188)</pre>
A kernel panic, which, however, doesn't make much difference. I really think that this has something to do with UBIT because all the people from the thread you linked seem to use uBOOT.]]></description>
            <dc:creator>Vlad</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 09 Sep 2011 17:47:31 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5831#msg-5831</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5831#msg-5831</link>
            <description><![CDATA[ Look here for a much cleaner solution:<br />
<a href="http://forum.doozan.com/read.php?2,5552,5552"  rel="nofollow">http://forum.doozan.com/read.php?2,5552,5552</a><br />
<br />
You don't need to modify with the init script from the initrd image.  The init script does this already by default if you just simply pass the kernel the root locaton using a label.  For your example above, you just need to pass the kernel &quot;root=LABEL=rootfs&quot;.]]></description>
            <dc:creator>kraqh3d</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 09 Sep 2011 16:52:52 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5830#msg-5830</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5830#msg-5830</link>
            <description><![CDATA[ Hi Vlad,<br />
thanks for that! Are you sure this should work? I tried it from my working DS, because I can't do it on a non working GF.<br />
<br />
The kernel boots fine with Jeff's bootloader and I think I can live with that.<br />
<br />
My other problem is the SheevaPlug device. I like to use the same image with the same kernel on Sheeva, but I got lost. Have you done this? Do you know the UBoot environment parameters to boot a DS Image (ported to MMC) on Sheeva?<br />
<br />
Greetings,<br />
Thomas]]></description>
            <dc:creator>squeezeplug</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 09 Sep 2011 16:52:31 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5827#msg-5827</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5827#msg-5827</link>
            <description><![CDATA[ squeezeplug Wrote:<br />
-------------------------------------------------------<br />
&gt; H Vlad,<br />
&gt; Ralphy and me build a kernel with your config. On<br />
&gt; DS the kernel works well. On GF the systems hangs<br />
&gt; with an error. I've attached the output!<br />
&gt; <br />
&gt; Do you have an idea?<br />
&gt; <br />
&gt; Thanks and Greetings,<br />
&gt; Thomas<br />
<br />
Looks like the kernel can't find your rootfs. Actually, I had a similar issue and even posted a solution in one of my earlier<br />
<a href="http://forum.doozan.com/read.php?2,5073,5073#msg-5073"  rel="nofollow">posts</a> (by the way a quite informative one), but because some people argued that they didn't experience this kind of problems, I left it out here. Anyway, I've updated the guide once again, covering that final step (&quot;Hacking initrd&quot;). Hope it helps.]]></description>
            <dc:creator>Vlad</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 09 Sep 2011 14:20:45 -0400</pubDate>
        </item>
        <item>
            <guid>http://forum.doozan.com/read.php?2,5775,5826#msg-5826</guid>
            <title>Re: HOWTO: Build a custom 2.6.38.8 kernel for Goflex Net</title>
            <link>http://forum.doozan.com/read.php?2,5775,5826#msg-5826</link>
            <description><![CDATA[ H Vlad,<br />
Ralphy and me build a kernel with your config. On DS the kernel works well. On GF the systems hangs with an error. I've attached the output!<br />
<br />
Do you have an idea?<br />
<br />
Thanks and Greetings,<br />
Thomas]]></description>
            <dc:creator>squeezeplug</dc:creator>
            <category>Debian</category>
            <pubDate>Fri, 09 Sep 2011 13:29:15 -0400</pubDate>
        </item>
    </channel>
</rss>
