Re: network-console, netboot, authorized_keys
On Tue, Nov 17, 2015 at 10:39:07AM +0100, Łukasz Stelmach wrote:
> Dnia 17 listopad 2015 o 10:07 Ian Campbell <ijc@debian.org> napisał(a):
>
> >> Q1-b. Is there any tutorial or a checklist how to port d-i to a new
> >> platform?
> >
> > Not that I know of, other than git log on the relevant components to
> > see what the last guy did I guess.
>
> "Relevant components" is a key phrase I hoped to find as a title of a
> section in such tutorial.
Hello,
there is no step-by-step "porting d-i to a new (arm) platform"
tutorial that I know of, but perhaps the following points can
help you:
- Your platform must be supported by the mainline kernel. From a
quick glance, that doesn't seem to be the case yet. A quick
scan of the kernel sources shows support for the Zyxel nsa320,
but not for the nsa325.
New boards get only added to the mainline kernel via
device-tree, so the first step would be writing a device-tree
for the board and getting it upstream.
Example device-tree (for the Zyxel nsa320):
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/kirkwood-nsa320.dts
- D-i uses modules udebs, which get built by the Debian kernel
package. You have to make sure that
a) all necessary modules are enabled in the relevant kernel
config:
https://anonscm.debian.org/cgit/kernel/linux.git/tree/debian/config
b) the necessary modules get included into the relevant
module-udebs:
https://anonscm.debian.org/cgit/kernel/linux.git/tree/debian/installer/armel/modules/
- Your system seems to be based on the kirkwood family of SoCs,
i.e. it needs to use the "kirwood" subarchitecture of the
Debian kernel packages. The installer therefore needs a
mapping of the machine type to the subarchitecture, which
is done in libdebian-installer:
https://anonscm.debian.org/cgit/d-i/libdebian-installer.git/tree/src/system/subarch-arm-linux.c#n26
- For making the system bootable, the installer uses
flash-kernel. Flash-kernel has a machine database which
contains a stanza for each supported system and which provides
all necessary information to create and install a bootable
kernel and the corresponding initrd. How exactly that is done
is system-dependant. Some of the steps that can be performed
by flash-kernel include:
* putting kernel and initrd into some specific directory
* appending the proper device-tree for the platform to the
kernel image (necessary on systems with old u-boot versions
that cannot load a separate device-tree blob)
* generating uImages from native Linux kernels and initrds
* installing system-specific u-boot scripts
* flashing the kernel and the initrd into some onboard flash
chip
The flash-kernel machine database:
https://anonscm.debian.org/cgit/d-i/flash-kernel.git/tree/db/all.db
Documentation of the stanza format:
https://anonscm.debian.org/cgit/d-i/flash-kernel.git/tree/README#n76
HTH,
Karsten
--
Gem. Par. 28 Abs. 4 Bundesdatenschutzgesetz widerspreche ich der Nutzung
sowie der Weitergabe meiner personenbezogenen Daten für Zwecke der
Werbung sowie der Markt- oder Meinungsforschung.
Reply to: