developer.shyd.de. studying my hobby

26Apr/1233

Dockstar: new Kernel 3.3.3 ready to use

linux
(4 votes, average: 5.00 out of 5)
Loading ... Loading ...

As you may have noticed, we were discussing things about newer kernels and drivers in the comments of Dockstar/Goflex: new Kernel 3.1.10 ready to use. With that in mind I started up my VM and looked at what I've got there in /usr/src - there was a compiled 3.2.1 that initially wouldn't boot. But following davy's guide to upgrade U-Boot makes that one boot.

Taking a look at kernel.org made me jealous... Here it is - a fully working 3.3.3:

1. Upgrading U-Boot

It is absolutely necessary to get a newer version than provided in Jeff's script. Otherwise your dockstar will fail to boot up. If this happens you need to revert to a lower version of the kernel than 3.2.x (find help here: Dockstar: Does not boot with self-compiled Kernel?).

For now I didn't get the kernel working with the goflex series, so this article is dedicated to dockstar users only.

What you need to do is carefully read through davy's post Newer uBoot as workaround to 3.2 kernel problem? and follow these steps before installing my kernel.

2. Upgrade the Kernel

This part is analogue to my other articles concerning kernel installations:

If you know what you are doing you are ready to download and install the kernel. I am not responsible for any malfunctions or damages on your device!

I assume that you already set the arcNumber to 2998 to make the kernel identify the dockstar as a dockstar.
You can install it as follows:

cd /tmp
wget http://dev.shyd.de/dockstar/linux-image-3.3.3-dockstar-shyd_1.1_armel.deb
dpkg -i linux-image-3.3.3-dockstar-shyd_1.1_armel.deb

cd /boot
/usr/bin/mkimage -A arm -O linux -T kernel  -C none -a 0x00008000 -e 0x00008000 -n Linux-3.3.3 -d /boot/vmlinuz-3.3.3-dockstar-shyd /boot/uImage

/usr/bin/mkimage -A arm -O linux -T ramdisk -C gzip -a 0x00000000 -e 0x00000000 -n initramfs -d /boot/initrd.img-3.3.3-dockstar-shyd /boot/uInitrd

You can leave the arcNumber untouched. In this case the LED will go off once the kernel has been loaded.

Once the device booted up again log in and check the output of uname -r:

uname -r
3.3.3-dockstar-shyd

LED setup

You have to edit two files:

add to

/etc/rc.local
echo default-on > /sys/class/leds/dockstar\:green\:health/trigger
echo none       > /sys/class/leds/dockstar\:orange\:misc/trigger

and in

/etc/init.d/halt 

find

log_action_msg "Will now halt"
halt -d -f $netdown $poweroff $hddown

add after

echo none > /sys/class/leds/dockstar\:green\:health/trigger

to set it off, when the system halts.

Filed under: Dockstar, Hardware, Kernel, Linux | 10,804 views Leave a comment
  • RonSon

    Ich sach nur YES!!! ;-)

    Ich habe mir auch n neues Spielzeug namens Goflex Net angelacht und habe meinen Dockstar der als Main-Server im Hause diente einem meiner Kumpels eingerichtet der sich ein NAS besorgen wollte um damit sachen per Torrent/pyload zu laden und auch um per UPNP Media ins netz zu streamen.

    Ich liebäugel schon paar tage damit das neue uBoot compilat von dem netten Herren davy auf meinem anderen Dockstar zu “flashen” jedoch habe ich mich diesbezüglich noch nicht so wirklich “getraut”

    Ich möchte sowohl die uBoot als auch das RescueSystem v2 flashen.

    Welche Reihenfolge würdest du einhalten? Erst die uBoot und dann das RescueSystem v2 oder umgekert oder beim PogoPlug OS belassen?!

    Und Dank dir echt für deinen kompilierten Kernel! Herrlich.

    Btw. Hab von Farnell jetzt ne Email bekommen wegen des Rpi-s … Mitte bis Ende Juni soll der geliefert werden… ^^
    Kann es kaum abwarten OpenElec draufzuspielen!

    Nette Grüße und schönes Wochenende!
    Ron!

    Btw. Meine Dockstar rennt mit deinen Kernels wie bolle! Keine Probleme bisher gehabt! *THUMBSUP*

    • shyd

      Ich danke dir!

      Mit einem/r Goflex Net liebäugel ich auch, allerdings warte ich erstmal bis der R-Pi angekommen ist, habe auch die Mail von Farnell bekommen! OpenElec sieht interessant aus, danke für den Hinweis.

      Als ich das U-Boot geupdatet habe, war das RescueSystem v2 schon geflasht, ich hatte keinerlei Probleme. Ob du eine Reihenfolge beachten solltest, kann ich dir nicht sagen – es sollte egal sein.
      Ich habe davy’s Beitrag auch mehrmals gelesen um sicherzugehen. Um sicher zu gehen, dass alles klappt, bekam mein secondary dockstar das Update als erster.

      Freut mich, dass dir meine Arbeit gefällt!

  • Tobi

    Super vielen Dank für den Kernel und die Anleitung , hatte erst Probleme nach dem uboot update den alten 2.6.35.7 Kernel zu booten nach einem Backup des System habe ich dann mit der chroot Umgebung aus dem nand rescue System den USB-Stick auf den 3.3.3 Kernel aktualisiert.
    Danach lief alles

  • RonSon

    Moin!

    Ich wollte nur mal fragen ob es auch so einfach auf einer Dockstar mit installiertem Wheezy funktioniert oder ob ich hierfür doch selber kompilieren sollte…

    Gruß aus dem Norden
    Ron

  • Pingback: Anonymous

  • VIdas

    Hi,
    thanks for kernel. But does this kernel has enabled I2C support?
    After i2cdetect -l I get empty list.
    Do you have any suggestions?
    THanks

    • shyd

      Hi,
      I didn’t enable it explicitly. There was a problem with I2C and the dockstar in earlier kernel versions. I think there are some code modifications need to be done to get it to work.
      Probably I will test I2C when I build a newer kernel, as I want a RTC without soldering work on the dockstar’s mainboard.

      • VIdas

        Is it possible to enable it without compiling kernel or maybe there is some custom-gpio package available for dockstar that could assign 8 and 9 pins for I2C.
        Good luck in your work with RTC!

        • shyd

          I can’t tell you for sure, but I don’t think so.
          Thanks!

  • chessplayer

    Hallo shyd,

    vielen Dank für den Kernel. Damit konnte ich durch eine Kopie meines alten Sticks mein altes System “retten” (läuft noch, da es ein VDR mit Spezialfeatures ist …). Ist dann anschließend sofort auf einer neuen Dockstar hochgefahren –> Super!

    Einen Hinweis möchte ich mir noch gestatten: Wenn Du je nochmal einen Kernel auf diese Weise bereit stellst, dann solltest Du vielleicht nicht nur auf die alten Posts inkl. Diskussionen verweisen, sondern UNBEDINGT die Notwendigkeit erwähnen, initramfs-tools zu installieren, wenn man das Update im laufenden System oder per chroot macht!

    Einen entsprechenden Kommentar gab es in Deinem Post zum 2.6.38-er Kernel, aber den liest ja keiner vorher ;)

    Ansosnten: super Sache!

    Chessplayer

    • shyd

      Danke für deinen Kommentar!
      Da es bei mir immer funktioniert, bin ich nicht wieder über das fehlende Paket gefallen, ich versuche nächtes mal dran zu denken!

  • François

    Thanks for this very helpful work. It works like a charm on my goflex home.

    François.

  • kpad

    Hi – I was looking to use the new kernel on my dockstar and went about as suggested to update the newer uBoot via Jeff’s U-Boot Updater Script …

    The uBoot looks to have upgraded without issues and it logs into the base system but is not able to boot into debian on the usb stick which was working fine until i did this.

    Would you be able to suggest/help me on this?

    The output from the net console is

    +++++++++++++++++++++++++++++
    U-Boot 2011.12 (Feb 12 2012 – 21:33:07)
    Seagate FreeAgent DockStar
    arm-none-linux-gnueabi-gcc (Sourcery G++ Lite 2009q3-67) 4.4.1
    GNU ld (Sourcery G++ Lite 2009q3-67) 2.19.51.20090709
    Hit any key to stop autoboot: 0
    (Re)start USB…
    USB: Register 10011 NbrPorts 1
    USB EHCI 1.00
    scanning bus for devices… 3 USB Device(s) found
    scanning bus for storage devices… 1 Storage Device(s) found
    Loading file “/rescueme” from usb device 0:1 (usbda1)
    ** File not found /rescueme
    reading /rescueme.txt

    ** Unable to read “/rescueme.txt” from usb 0:1 **
    Creating 1 MTD partitions on “nand0″:
    0×000002500000-0×000010000000 : “mtd=3″
    UBI: attaching mtd1 to ubi0
    UBI: physical eraseblock size: 131072 bytes (128 KiB)
    UBI: logical eraseblock size: 129024 bytes
    UBI: smallest flash I/O unit: 2048
    UBI: sub-page size: 512
    UBI: VID header offset: 512 (aligned 512)
    UBI: data offset: 2048
    UBI: attached mtd1 to ubi0
    UBI: MTD device name: “mtd=3″
    UBI: MTD device size: 219 MiB
    UBI: number of good PEBs: 1751
    UBI: number of bad PEBs: 1
    UBI: max. allowed volumes: 128
    UBI: wear-leveling threshold: 4096
    UBI: number of internal volumes: 1
    UBI: number of user volumes: 0
    UBI: available PEBs: 1730
    UBI: total number of reserved PEBs: 21
    UBI: number of PEBs reserved for bad PEB handling: 17
    UBI: max/mean erase counter: 1/1
    UBIFS error (pid 0): ubifs_get_sb: cannot open “ubi:rootfs”, error -19
    Error reading superblock on volume ‘ubi:rootfs’!
    Loading file “/boot/uImage” from usb device 0:1 (usbda1)
    1 bytes read
    Found bootable drive on usb 0:1
    Loading file “/boot/uImage” from usb device 0:1 (usbda1)
    2676840 bytes read
    Loading file “/boot/uInitrd” from usb device 0:1 (usbda1)
    ** File not found /boot/uInitrd
    ## Booting kernel from Legacy Image at 00800000 …
    Image Name: Linux-2.6.35.7-dockstar
    Image Type: ARM Linux Kernel Image (uncompressed)
    Data Size: 2676776 Bytes = 2.6 MiB
    Load Address: 00008000
    Entry Point: 00008000
    Verifying Checksum … OK
    Loading Kernel Image … OK
    OK

    Starting kernel …

    +++++++++++++++++++++++++++++

    Not sure what is happening , as i don’t see any wired devices on my router device connection status. I modified the network script on the usb to dhcp from static to see if it could be the problem.

    Btw, i have looked at your other articles and they have been a great help in the past , so thanks for that!

    Cheers

    • shyd

      Hi! Thanks for your comment!

      When “Starting kernel …” the kernel is being loaded from the usb key. Depending on its speed it might take a while (~20sec?). Then you should see the debug output (not sure if it works through netconsole). If your stick doesn’t show activity after this line there is something wrong. I have never tried to boot 2.6.x kernels with the newer uboot though.
      My advice would be to update the kernel in chroot environment: http://dev.shyd.de/2011/03/dockstar-no-boot-self-compiled-kernel/
      Download the kernel of your choise and install it.

      Hopefully this is what you need!
      cheers

      • kpad

        Hello – Many thanks for your quick reply. just got back home and tried the suggested chroot option but ran into something else.

        -bash-3.2# LANG=C chroot /tmp/disk/ /bin/bash
        FATAL: kernel too old

        Any suggestions on this?

        Sorry for bothering…

        Cheers

        • shyd

          Hmm weird. I have rescue v2 image installed on nand. Maybe updating your nand might help you out. Take a look in here to see what the rescue image is capable of http://forum.doozan.com/read.php?4,3896,3896

          Don’t worry, I am trying to help where I can.

          • kpad

            I don’t have the rescue system installed and the link asks to boot from the USB stick to install the rescue system, i am stumped and not very good at this i guess.

            Maybe i will try a serial cable and see if i can identify what is happening post loading the kernel, is worth a try?

            Or maybe start all over again. Is there a way that i do a fresh install of debian and copy over the installed packages?

            Thanks for all the help and advice.

            • kpad

              After a bit of looking around, figured that uInitrd was missing , this http://forum.doozan.com/read.php?2,11396 link helped me generate the uBoot & uInitrd which i copied over to my USB stick and i was able to boot back into the debian on USB stick.

              Followed your instructions to update the kernel.

              Before
              ______
              root@Dockstar:/boot# uname -r
              2.6.32-5-kirkwood

              After
              _____
              root@Dockstar:~# uname -r
              3.3.3-dockstar-shyd

              So everything back to normal now.

              Thanks for your help.

              • shyd

                Ahh, nice!
                Thanks for your info. Great to hear you got it working!

                You’re welcome!

  • moddy

    Hallo shyd!
    Die debian-Installation mit deinem Script und das Kernelupdate auf 3.3.3 hat wunderbar geklappt.
    VIELEN DANK!

    Trotzdem habe ich zwei Pröblemchen:

    Zum einen fährt die dockstar ohne erkennbaren Grund herunter. In meinem putty-fenster steht dann:
    “Broadcast message from root@vdrdock (Sat May 18 20:49:53 2013):

    The system is going down for system halt NOW!”
    und das war’s…

    Ist das ein bekanntes Problem?
    Info: Ich habe das debian auf einer externen HDD, die keine eigene Stromversorgung hat.

    Das andere Problem: Wo kriege ich Linux-Headers für den 3.3.3-dockstar-shyd her?
    Ich habe den 3.3.3-Kernel installiert in der Hoffnung, dass damit meine DVB-S USB-Box Tevii S660 läuft. Sie wurde auch problemlos erkannt, mackt aber rum.

    Nun wollte ich die S2-liplinain-Treiber bauen, aber ohne headers geht das natürlich nicht.

    Wäre schön, wenn Du mir helfen könntest.

    Gruß,
    moddy

    • shyd

      Hi, danke für deinen Kommentar!

      Da dein dockstar vdrdock heißt, gehe ich mal davon aus, dass du vdr installierst hast und seit dem diese “random halts” hast.
      Ich kann mich erinnern, dass ich genau das gleiche Problem mit dem shutdown hatte. Das kannst du irgendwo in den vdr-configs bearbeiten (schau mal in /etc/default/…)

      Ob ich dir die Header für den 3.3.3er noch packen kann, muss ich schauen, ansonsten gibt’s bald einen neuen Kernel, steht schon auf meiner Todo Liste ;)

      Gruß

      /edit: Ich habe die Sourcen des 3.3.3er nicht mehr. Du kannst aber den 3.6.6 mit Header nutzen, ich habe keinen Artikel über ihn geschrieben, weil er nur auf dem Dockstar (und nicht wie gewollt auch auf dem Goflex) läuft. Die config basiert auf der vom 3.3.3. http://dev.shyd.de/dockstar/

      • moddy

        Hi shyd,
        danke für die schnelle Antwort. Vielleicht schaffe ich es ja doch über die Feiertage die DVB-S2-Boxen zum Laufen zu bringen.
        ;)
        Habe den Kernel jetzt auf 3.6.6 geupdatet und die Headers installiert.
        Beim Komplilieren (make menuconfig) greigt er jetzt auf die 3.3.3er Module zurück.
        Habe ich was veregessen?

        [CODE]
        root@vdrdock:~/s2-liplianin-v39# make menuconfig
        make -C /root/s2-liplianin-v39/v4l menuconfig
        make[1]: Entering directory `/root/s2-liplianin-v39/v4l’
        make -C /lib/modules/3.3.3-dockstar-shyd/build -f /root/s2-liplianin-v39/v4l/Makefile.kernel config-targets=1 mixed-targets=0 dot-config=0 SRCDIR=/lib/modules/3.3.3-dockstar-shyd/build v4l-mconf
        make: Entering an unknown directory
        make: *** /lib/modules/3.3.3-dockstar-shyd/build: No such file or directory. Stop.
        make: Leaving an unknown directory
        make[1]: *** [/lib/modules/3.3.3-dockstar-shyd/build/scripts/kconfig/mconf] Error 2
        make[1]: Leaving directory `/root/s2-liplianin-v39/v4l’
        make: *** [menuconfig] Error 2
        root@vdrdock:~/s2-liplianin-v39#
        [/CODE]

        • shyd

          Dumme Frage: hast du nach dem Kernelupdate rebootet?
          Was sagt uname -a?

          • moddy

            Na klar…
            ;)

            root@vdrdock:/# uname -r
            3.6.6-dockstar-goflexnet-shyd
            root@vdrdock:/# uname -a
            Linux vdrdock 3.6.6-dockstar-goflexnet-shyd #1 Tue Nov 13 18:56:59 CET 2012 armv5tel GNU/Linux
            root@vdrdock:/#

            • moddy

              Muss ich deine Kernel-config irgendwo hinkopieren?
              Sorry, hab echt kaum einen Plan.

              • moddy

                Ok. Ich hab jetzt das “fehlende” build-Verzeichnis zu den Linux-Headers gesymlinkt. Jetzt läuft make bis hier:

                root@vdrdock:~/s2-liplianin-v39# make
                make -C /root/s2-liplianin-v39/v4l
                make[1]: Entering directory `/root/s2-liplianin-v39/v4l’
                ./scripts/make_myconfig.pl
                make[1]: Leaving directory `/root/s2-liplianin-v39/v4l’
                make[1]: Entering directory `/root/s2-liplianin-v39/v4l’
                perl scripts/make_config_compat.pl /lib/modules/3.3.3-dockstar-shyd/build ./.myconfig ./config-compat.h
                creating symbolic links…
                make -C firmware prep
                make[2]: Entering directory `/root/s2-liplianin-v39/v4l/firmware’
                make[2]: Leaving directory `/root/s2-liplianin-v39/v4l/firmware’
                make -C firmware
                make[2]: Entering directory `/root/s2-liplianin-v39/v4l/firmware’
                CC ihex2fw
                Generating vicam/firmware.fw
                Generating ttusb-budget/dspbootcode.bin
                Generating cpia2/stv0672_vp4.bin
                Generating av7110/bootcode.bin
                make[2]: Leaving directory `/root/s2-liplianin-v39/v4l/firmware’
                Kernel build directory is /lib/modules/3.3.3-dockstar-shyd/build
                make -C ../linux apply_patches
                make[2]: Entering directory `/root/s2-liplianin-v39/linux’
                Patches for 3.3.3-dockstar-shyd already applied.
                make[2]: Leaving directory `/root/s2-liplianin-v39/linux’
                make -C /lib/modules/3.3.3-dockstar-shyd/build SUBDIRS=/root/s2-liplianin-v39/v4l modules
                make[2]: Entering directory `/usr/src/linux-headers-3.6.6-dockstar-goflexnet-shyd’
                CC [M] /root/s2-liplianin-v39/v4l/altera-lpt.o
                In file included from include/linux/timex.h:174,
                from include/linux/jiffies.h:8,
                from include/linux/ktime.h:25,
                from include/linux/timer.h:5,
                from include/linux/workqueue.h:8,
                from include/linux/pm.h:25,
                from include/linux/device.h:24,
                from include/linux/input.h:1166,
                from /root/s2-liplianin-v39/v4l/compat.h:9,
                from :0:
                /usr/src/linux-headers-3.6.6-dockstar-goflexnet-shyd/arch/arm/include/asm/timex.h:16:24: error: mach/timex.h: No such file or directory
                In file included from include/linux/io.h:22,
                from /root/s2-liplianin-v39/v4l/altera-lpt.c:26:
                /usr/src/linux-headers-3.6.6-dockstar-goflexnet-shyd/arch/arm/include/asm/io.h:120:21: error: mach/io.h: No such file or directory
                /root/s2-liplianin-v39/v4l/altera-lpt.c: In function ‘byteblaster_write’:
                /root/s2-liplianin-v39/v4l/altera-lpt.c:34: error: implicit declaration of function ‘outb’
                /root/s2-liplianin-v39/v4l/altera-lpt.c: In function ‘byteblaster_read’:
                /root/s2-liplianin-v39/v4l/altera-lpt.c:40: error: implicit declaration of function ‘inb’
                make[3]: *** [/root/s2-liplianin-v39/v4l/altera-lpt.o] Error 1
                make[2]: *** [_module_/root/s2-liplianin-v39/v4l] Error 2
                make[2]: Leaving directory `/usr/src/linux-headers-3.6.6-dockstar-goflexnet-shyd’
                make[1]: *** [default] Error 2
                make[1]: Leaving directory `/root/s2-liplianin-v39/v4l’
                make: *** [all] Error 2
                root@vdrdock:~/s2-liplianin-v39#

                BTW: VDR war tatsächlich schuld, dass die dockstar ausging. Habe dem VDR jetzt verboten shutdowns durchzuführen und jetzt läuft sie.

              • shyd

                Die .config hat damit nichts zutun, die ist nur für Dokuzwecke da, falls du selber kompilieren willst.
                Aus dem Kopf kann ich dir leider nicht weiterhelfen. Muss mir das ganze nachher mal auf meinem TestDockstar anschauen.
                Vielleicht hilft es schon, wenn du den 3.3.3 er deinstallierst: apt-get remove linux-image-3.3.3-dockstar-shyd
                Scheinbar fehlt der Symlink zu den Headern: ln -s /usr/src/linux-headers-3.6.6-dockstar-goflexnet-shyd /lib/modules/3.6.6-dockstar-goflexnet-shyd/build erstell ihn mal und versuchs nochmal.

  • Burns

    Hi,

    ich habe den Kernel 3.6.6 auf der Dockstar ausprobiert. Unter Nutzung des WLAN AP’s (http://www.mikrocontroller.net/topic/193795 ; Stick: TP-Link TL-WN821N v2) kriege ich folgende Meldungen:

    http://pastebin.com/gSwgHirV

    • shyd

      Hi,
      ich weiß nicht genau, was du nun lesen möchtest, wie kann ich dir helfen?
      Den Beitrag bei µC.net kenne ich nicht.

      • Burns

        Das ist schonmal eine schlechte Grundvoraussetzung, dass du den Beitrag nicht kennst. ;D
        Also ich werde regelrecht von diesen Meldungen zugespammt, wenn ein WLAN-Gerät auf den WLAN-AP(Dockstar) zugreift. Es hätte ja sein können, dass du anhand der Meldungen siehst, wo das Problem sein könnte. Die Fehler traten im Kernel 3.3.3 nicht auf. Ich habe mich für den 3.6.6 entschieden, weil die Linux-Headers installiert werden konnten. Die brauche ich, um z.B. hostsapd2.0 zu kompilieren.

        Vllt. hast du ein Tip für mich. Danke!

        • shyd

          Die Meldungen sagen mir auch nichts, deshalb habe ich nachgefragt :)
          Leider kann ich dir nicht wirklich helfen, da ich noch kein Gerät zu einem AP umfunktioniert habe.
          Die einzige Möglichkeit wäre, dass du das ganze mit einem frischen 3.9.2er testest. Der ist bei mir noch in testing, da ich noch keinen Beitrag geschrieben habe: http://dev.shyd.de/dockstar/testing/

          • Burns

            Super, das du weitere Kernels bäckst. Ich habe den 3.9.2-er eben getestet. Kann es sein, das du den carl9170-Treiber rausgenommen hast? Der Stick wird jedenfalls nicht mehr out-of-the-box erkannt. Wäre schön wenn du das irgendwie korrigieren könntest.
            Danke!

            • shyd

              Nicht absichtlich. Ich schaue morgen mal in die config und baue ihn evtl. neu.
              Werde dich dann per Mail kontaktieren!

  • Pingback: Dockstar/Goflex: new Kernel 3.9.5 ready to use | developer.shyd.de.