[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Adding d-i support for (old) armv5 hardware Iomega iConnect?



Hi,

for about 10 years now I own several small armv5 based NAS devices [1]
which running currently a Debian Jessie installation from an USB flash
drive. But Jessie will get out of LTS not to far away.

So for also about 4-5 years I'm thinking about to get the d-i let me
setup a new installation on the flash drive. In 2015 Karsten Merkers
helped me by providing a netboot kernel and initrd image, but this
wasn't working well due not detected usb subsystem most of the times.

I did now new try by creating a own kernel and initrd image, again by
help from Karsten (big thanks to him!). And now the installer works on
this device out of the box. I was able to install Debian stable, testing
and also unstable successfully multiple times on USB flash drives and
also on SATA SSDs behind an USB adapter.

But I've no idea what more is needed to adopt the current rather small
modifications into the installer. I only played around netboot images
for the kernel and initrd.

With the following diff the d-i will create netboot images for the iConnect.

> diff --git a/build/config/armel/kirkwood/netboot.cfg b/build/config/armel/kirkwood/netboot.cfg
> index 601e87ff8..95f7add35 100644
> --- a/build/config/armel/kirkwood/netboot.cfg
> +++ b/build/config/armel/kirkwood/netboot.cfg
> @@ -1,11 +1,19 @@
>  MEDIA_TYPE = netboot image
>  
> -TARGET = $(INITRD) $(KERNEL) sheevaplug sheevaplug-esata guruplug dreamplug dockstar
> +TARGET = $(INITRD) $(KERNEL) sheevaplug sheevaplug-esata guruplug dreamplug dockstar iconnect
>  EXTRANAME = $(MEDIUM)/
>  
>  MANIFEST-INITRD = "netboot initrd"
>  MANIFEST-KERNEL = "kernel image to netboot"
>  
> +iconnect:
> +       mkdir -p $(SOME_DEST)/$(EXTRANAME)marvell/iconnect
> +       cat $(TEMP_KERNEL) $(TEMP_DTBS)/kirkwood-iconnect.dtb > $(TEMP)/vmlinuz-iconnect
> +       mkimage -A arm -O linux -T kernel -C none -a 0x00008000 -e 0x00008000 -n "Debian kernel" -d $(TEMP)/vmlinuz-iconnect $(SOME_DEST)/$(EXTRANAME)marvell/iconnect/uImage
> +       mkimage -A arm -O linux -T ramdisk -C gzip -a 0x0 -e 0x0 -n "debian-installer ramdisk" -d $(TEMP_INITRD) $(SOME_DEST)/$(EXTRANAME)marvell/iconnect/uInitrd
> +       update-manifest $(SOME_DEST)/$(EXTRANAME)marvell/iconnect/uImage "Linux kernel for Iomega iConnect"
> +       update-manifest $(SOME_DEST)/$(EXTRANAME)marvell/iconnect/uInitrd "initrd for Iomega iConnect"
> +
>  sheevaplug:
>         mkdir -p $(SOME_DEST)/$(EXTRANAME)marvell/sheevaplug
>         cat $(TEMP_KERNEL) $(TEMP_DTBS)/kirkwood-sheevaplug.dtb > $(TEMP)/vmlinuz-sheevaplug

I also have created a little package that will add some udev magic to
switch the LEDs of the USB ports on and off, adds a /etc/fw_env.config
file and also set up the Power and OTB LED. This is based on the
existing scripts from the old Jessie installation. These work was done
by the company Congenio [2] in Munich around 2011. I got an acknowledge
from Congenio to modifications on theses scripts and redistribute this
under the MIT license.

I'd like to get this included into the debian installer so I don't need
to rebuild this every time by myself, also other user could participate
from this then.
I'm happy to so some more additional work if needed like packaging the
extra small package I call iconnect-tools for now. Please let me know if
there is more to prepare.

I know that after a successful run of d-i the user needs to do currently
some extra set up within the U-Boot prompt to get Debian start from the
USB flash drive. I was thinking of writing this all down into the Debian
wiki.

[1] https://openwrt.org/toh/iomega/iconnect
[2] https://www.congenio.de/infos/iconnect.html (only in German)

PS: Please CC me, I'm not subscribed to the list.

-- 
Regards
Carsten Schoenert


Reply to: