[Nix-dev] Raspberry-Pi NixOS

Tuomas Tynkkynen tuomas.tynkkynen at iki.fi
Wed Jul 27 09:25:33 CEST 2016


Hi,

There are both binaries+images and documentation at
https://nixos.org/wiki/NixOS_on_ARM.
Yeah, still pending the migration to the manual...

2016-07-21 15:47 GMT+03:00 Rok Garbas <rok at garbas.si>:
> sry i only have questions in this email :)
>
>
> - how would we speed up building? so that other can get binaries at
> least for the "base" of the nixos.
>
> - would we just hook up rpi's into hydra? can we hook this to existing
> hydra.nixos.org or we would have to come with our own hydra.
>
> - can we also collect this knowledge in some kind of manual, be it
> part of nixos manual or completely separated.
>
> - i'm still waiting for my rpi3 to arrive, but where can i help until
> then? i'd love to have proper support for rpi in nixpkgs.
>
>
>
> On Wed, Jul 20, 2016 at 12:05 AM, Lluís Batlle i Rossell
> <viric at viric.name> wrote:
>> On Tue, Jul 19, 2016 at 11:53:59PM +0200, Tomas Hlavaty wrote:
>>> Lluís Batlle i Rossell <viric at viric.name> writes:
>>> > The device tree blob should be built by the kernel, like with pi and pi2,
>>> > isn't it?
>>>
>>> This is the kernel which works for me and is taken from
>>> raspberry-firmware/boot:
>>>
>>> Linux version 4.4.13-v7+ (dc4 at dc4-XPS13-9333) (gcc version 4.9.3
>>> (crosstool-NG crosstool-ng-1.22.0-88-g8460611) ) #894 SMP Mon Jun 13
>>> 13:13:27 BST 2016
>>>
>>> and the corresponding device tree is bcm2710-rpi-3-b.dtb.
>>>
>>> This looks like the same kernel version in
>>> pkgs/os-specific/linux/kernel/linux-rpi.nix (modDirVersion = "4.4.13";
>>> tag = "1.20160620-1")
>>>
>>> Are you saying that this is not good enough?
>>>
>>> What works: If I copy files from raspberry-firmware/boot to /boot, rpi3
>>> starts fine.  These are the files I have in /boot:
>>>
>>> $ ls -al /boot
>>> -rwxr-xr-x  1 root root   13221 Jun 18 22:31 bcm2708-rpi-b.dtb
>>> -rwxr-xr-x  1 root root   13484 Jun 18 22:31 bcm2708-rpi-b-plus.dtb
>>> -rwxr-xr-x  1 root root   13257 Jun 18 22:31 bcm2708-rpi-cm.dtb
>>> -rwxr-xr-x  1 root root   14567 Jun 18 22:31 bcm2709-rpi-2-b.dtb
>>> -rwxr-xr-x  1 root root   15237 Jun 18 22:31 bcm2710-rpi-3-b.dtb
>>> -rwxr-xr-x  1 root root   17932 Jun 18 22:31 bootcode.bin
>>> -rwxr-xr-x  1 root root     165 Jul 19 22:46 cmdline.txt
>>> -rwxr-xr-x  1 root root    1369 Jan 11  2016 config.txt
>>> -rwxr-xr-x  1 root root    2504 Jun 23 20:42 fixup_cd.dat
>>> -rwxr-xr-x  1 root root    6482 Jun 23 20:42 fixup.dat
>>> -rwxr-xr-x  1 root root    9717 Jun 23 20:42 fixup_db.dat
>>> -rwxr-xr-x  1 root root    9717 Jun 23 20:42 fixup_x.dat
>>> -rwxr-xr-x  1 root root 4224232 Jun 18 22:31 kernel7.img
>>> drwxr-xr-x  2 root root    8192 Jun 18 22:31 overlays
>>> -rwxr-xr-x  1 root root  617432 Jun 23 20:42 start_cd.elf
>>> -rwxr-xr-x  1 root root 4926264 Jun 23 20:42 start_db.elf
>>> -rwxr-xr-x  1 root root 2746552 Jun 23 20:42 start.elf
>>> -rwxr-xr-x  1 root root 3877720 Jun 23 20:42 start_x.elf
>>>
>>> I don't see, why raspberrypi/builder.sh creates defaultgeneration,
>>> initrd and nixos-init files in /boot.  It actually seems to me, that
>>> initrd should not be there at all for the boot to work.
>>>
>>> raspberrypi/builder.sh doesn't create fixup_x.dat, which is in the list
>>> above; but I haven't tried booting without it.
>>>
>>> Although pkgs/os-specific/linux/kernel/linux-rpi.nix copies DTB files,
>>> it renames them to something that looks wrong and also it does not copy
>>> them to /boot at all:
>>>
>>>     # I am not sure if all of these are correct...
>>>     copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-a.dtb
>>>     copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-b.dtb
>>>     copyDTB bcm2708-rpi-b.dtb bcm2835-rpi-b-rev2.dtb
>>>     copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-a-plus.dtb
>>>     copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-b-plus.dtb
>>>     copyDTB bcm2708-rpi-b-plus.dtb bcm2835-rpi-zero.dtb
>>>     copyDTB bcm2708-rpi-cm.dtb bcm2835-rpi-cm.dtb
>>>     copyDTB bcm2709-rpi-2-b.dtb bcm2836-rpi-2-b.dtb
>>>     copyDTB bcm2710-rpi-3-b.dtb bcm2837-rpi-3-b.dtb
>>>
>>> I looks like the files in raspberry-firmware/boot should work on any rpi
>>> version so we should probably immitate that somehow in nixos and at
>>> least get it to work out of the box even if we just take the precompiled
>>> files from raspberrypi-firmware/boot and improve that later.
>>
>> I don't remember any of the details. I'm using it in rpi2 just fine. I
>> could forget some file, and I may have written code that is fit just for a
>> very specific kernel version. Maybe it has all changed in 4.4.
>>
>> The relevant detail that I remember is that the kernel recipe is told to
>> build the DTB, so I think that you should not need any dtb from the
>> firmwarefiles/boot.
>>
>> Regards,
>> Lluís.
>>
>> --
>> (Escriu-me xifrat si saps PGP / Write ciphered if you know PGP)
>> PGP key D4831A8A - https://emailselfdefense.fsf.org/
>> _______________________________________________
>> nix-dev mailing list
>> nix-dev at lists.science.uu.nl
>> http://lists.science.uu.nl/mailman/listinfo/nix-dev
>
>
>
> --
> Rok Garbas
> https://garbas.si
> _______________________________________________
> nix-dev mailing list
> nix-dev at lists.science.uu.nl
> http://lists.science.uu.nl/mailman/listinfo/nix-dev


More information about the nix-dev mailing list