Installing debian with the installer
Debian Jessie does not support the D01 directly, but can be installed on this board using a modified kernel/installer build, detailed here.
We have support for PXE/TFTP booting a 'netboot' image, then installing to HD in the normal way. There is nothing special about the installer image except for the updated kernel.
PXE booting (Setup Info)
- TFTP server
New enough UEFI image on the board to support PXEboot Boards/D01#Upgrade_UEFI
- Serial connection to control the install
- Ethernet for downloading packages
If doing this on a network where you do not control the main DHCP server then it's fiddly because you need a second DHCP server on a private segment to do the PXE boot. Then either forwarding configuration to the rest of the net for the downloads, or swap the ethernet cable over after the initial boot and before network config and downloading packages.
Create folder structure under your TFTP root path, and copy files into it like this:
. ├── boot │ └── grub │ └── grub.cfg ├── grub.efi ├── hip04-d01.dtb ├── initrd.gz └── vmlinuz-3.14-trunk-armmp
- Power up the board. Keep hitting the 's' key until you get into the bootloader (may take a few goes - the nominal '2second' gap is quite hard to hit.
- Choose '2' to enter into the UEFI schell
Add a 'PXE boot' option by inputting these commands in turn:
a //Boot Manager 1 //Add Boot Device Entry 3 //PXE on MAC Address:... (the number varies according to what is installed onthe HD already) PXE //Description for this new Entry 5 //Return to main menu 2 //PXE
- Unfortunately the UEFI image does not remember this setting so you need to do this every time to PXE boot.
- Choose '2' to boot over PXE. You should see a menu with just one item. 'Debian-installer 3.14 kernel'. Hit return to boot it.
- Now in debian installer proceed with a normal install. You will get a warning about 'missing modules', but ignore that. You cannot do a raid/LVM install without those modules but otherwise things work fine.
The jessie grub2 package is new enough to work. But the grub.efi file has to be generated (it is a concatenation of a set of efi modules). These commands should do the trick:
echo "configfile /boot/grub/grub.cfg" > startup dpkg --add-architecture armhf apt-get update sudo apt-get install grub-efi-arm-bin modules="boot chain configfile configfile efinet ext2 fat gettext help hfsplus loadenv lsefi normal normal ntfs ntfscomp part_gpt part_msdos part_msdos read search search_fs_file search_fs_uuid search_label terminal terminfo tftp linux" grub-mkimage -v -o grub.efi -c startup -O arm-efi -p "efi" $modules
The kernel can be cross-built. You need an armhf cross-toolchain installed. See https://wiki.debian.org/CrossToolchains
dget http://repo.linaro.org/ubuntu/linaro-overlay/pool/main/l/linux/linux_3.14.0-1+hip04.dsc apt-get build-dep linux cd linux-3.14.0-D01 dpkg-buildpackage -aarmhf -B -d
That should produce several udebs. They all need to be copied in the the build/localudebs dir in the debian-installer build.
Cross-building is not supported. Debian-installer has to be natively built.
- Copy all the kernel udebs into debian-installer-20150108/build/localudebs
- Create debian-installer-20150108/build/sources.list.udeb to point at those udebs and the main archive. Note the copy path is absolute so it will need to be changed for your machine/layout:
deb [trusted=yes] copy:/PATH/TO/linaro/installer/d-i/debian-installer-20150108/build/ localudebs/ deb http://httpredir.debian.org/debian unstable main/debian-installer
apt-get install build-dep debian-installer cd debian-installer-20150108/build fakeroot make build_netboot
Boards/D01/DebianInstaller (last modified 2015-05-01 22:35:11)