[gelöst] IPFire auf SolidRun ClearFog Base (hängt beim Kernel)

Probleme bei der Installation?
Post Reply
Tamashii
Posts: 28
Joined: October 28th, 2018, 7:03 pm

[gelöst] IPFire auf SolidRun ClearFog Base (hängt beim Kernel)

Post by Tamashii » October 28th, 2018, 7:33 pm

Hallo liebe IPFire Gemeinde!

Ich werke gerade daran, IPFire auf meinem ClearFog Base zum Laufen zu bewegen.

"Out of the Box" komm ich immerhin bis zum Kernel:

Code: Select all

U-Boot 2018.01-02337-gdc4398fdb8 (May 14 2018 - 18:50:45 +0200), Build: jenkins-u-boot-clearfog-model=base,variant=uart-10

SoC:   MV88F6828-A0 at 1600 MHz
DRAM:  1 GiB (800 MHz, 32-bit, ECC not enabled)
MMC:   mv_sdh: 0
Using default environment

Model: SolidRun Clearfog
Board: SolidRun ClearFog Base
SCSI:  SATA link 0 timeout.
AHCI 0001.0000 32 slots 2 ports 6 Gbps 0x3 impl SATA mode
Net:   
Warning: ethernet@70000 (eth1) using random MAC address - d2:63:b4:d6:17:a5
eth1: ethernet@70000
Warning: ethernet@30000 (eth2) using incremented MAC address - d2:63:b4:d6:17:a6
, eth2: ethernet@30000
Warning: ethernet@34000 (eth3) using incremented MAC address - d2:63:b4:d6:17:a7
, eth3: ethernet@34000
Hit any key to stop autoboot:  0 
switch to partitions #0, OK
mmc0 is current device
Scanning mmc 0:1...
Found U-Boot script /boot.scr
reading /boot.scr
2463 bytes read in 16 ms (149.4 KiB/s)
## Executing script at 00200000
reading uEnv.txt
70 bytes read in 10 ms (6.8 KiB/s)
Load uEnv.txt...
...
Set console to ttyS0,115200
reading vmlinuz-4.14.72-ipfire-multi
4867536 bytes read in 231 ms (20.1 MiB/s)
reading dtb-4.14.72-ipfire-multi/armada-388-clearfog-base.dtb
18492 bytes read in 83 ms (216.8 KiB/s)

reading uInit-4.14.72-ipfire-multi
5263976 bytes read in 252 ms (19.9 MiB/s)
Ramdisk loaded...
## Loading init Ramdisk from Legacy Image at 01800000 ...
   Image Name:   
   Created:      2018-09-27  14:45:44 UTC
   Image Type:   ARM Linux RAMDisk Image (lzma compressed)
   Data Size:    5263912 Bytes = 5 MiB
   Load Address: 00000000
   Entry Point:  00000000
   Verifying Checksum ... OK
## Flattened Device Tree blob at 00100000
   Booting using the fdt blob at 0x100000
   Loading Ramdisk to 0fafa000, end 0ffff228 ... OK
   Using Device Tree in place at 00100000, end 0010783b

Starting kernel ...
Dannach hängt die Geschichte jedoch.
Da das Ding (ClearFog) eigentlich Linux gut supporten sollte und da auch das richtige DTB im image vorliegt (dtb-4.14.72-ipfire-multi/armada-388-clearfog-base.dtb) nehme ich mal an, dass da nicht mehr viel fehlen wird. Für mehr Infos WARUM GENAU der Kernel stirbt, müsste ich den wahrscheinlich neu kompillieren und verboses debugging einschalten.

Im git finde ich da einige Projekte von Personen und "Thirdparty" die mit Kernel zu tun haben. Vermutlich wird es das Projekt von Arne F. sein - aber ich frag mal lieber zur Sicherheit. ;D

Wenn mir jemand einen Hinweis geben könnte, wo ich als nächstes suchen soll, wäre ich dankbar (und das spart mir sicher einen Haufen Zeit).

Herzlichen Dank im Voraus!
Es freut mich übrigens sehr, dass IPFire eine so starke Deutsche Community hat! :D

Alles Liebe,
Tamashii

EDIT: Habe im Titel gleich den Hinweis dazugeschrieben dass es beim Kernel hängt.
Last edited by Tamashii on November 8th, 2018, 10:49 pm, edited 2 times in total.
Image

Tamashii
Posts: 28
Joined: October 28th, 2018, 7:03 pm

Re: IPFire auf SolidRun ClearFog Base (hängt beim Kernel)

Post by Tamashii » October 29th, 2018, 2:49 pm

Lösung des Problems:
Ich habe die Environments von meinem laufenden Armbian und dem IPFire verglichen und bin auf Fehlende Paramter gestoßen.
Um diese zu sichern, ist jedoch ein Neubau des U-Boot notwendig (mitgelieferte images haben den Befehl nicht verfügbar).

U-Boot bauen -> https://wiki.solid-run.com/doku.php?id= ... ent:u-boot (Sektion Compiling from Source)
Meine Toolchain war: gcc-linaro-6.4.1-2018.05-x86_64_arm-linux-gnueabi
Anpassungen für den ClearFog Base (zum Booten von SD):

Code: Select all

CONFIG_TARGET_CLEARFOG_BASE=y
CONFIG_MVEBU_SPL_BOOT_DEVICE_SDHC=y
CONFIG_API=y
Die Pins am ClearFog Base auf 01001 setzen (UART)

Booten via:

Code: Select all

sudo ./tools/kwboot -t -b u-boot-spl-sdhc.kwb /dev/ttyUSB0
Vor dem Autoboot Taste drücken (unterbrechen)

Environment Variablen setzen:

Code: Select all

setenv fdt_addr 0x8000000
setenv fdt_addr_r 0x8000000
setenv loadaddr 0x10000
setenv eth1addr XX:XX:XX:XX:XX:XX
setenv eth2addr XX:XX:XX:XX:XX:XX
setenv eth3addr XX:XX:XX:XX:XX:XX
saveenv
(Anmerkung: ClearFog Base hat keine festen MAC Adressen, diese sollten sinnvoll gesetzt und gesichert werden.)

Dannach Booten:

Code: Select all

boot
Damit sollte das Ding von der SD booten und IPFire im ersten Durchlauf die SD Erweitern.
Nach einem Reboot, startet die Konfiguration von IPFire.

Wenn alles läuft, könnte man sinnvoller Weise das Booten von Konsole lassen, die Pins auf 00111 setzen, das u-boot image mit dd übertragen

Code: Select all

dd if=u-boot-spl-sdhc.kwb of=/dev/sdX bs=512 seek=1 conv=sync
damit das ganze alleine startet. (Anmerkung: /dev/sdX bitte auf den korrekten Wert für die lokale SD anpassen!)

Edit: Anmerkungen und MAC Adressen.
Image

Post Reply