bpi-r2:storage
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
bpi-r2:storage [2019/07/30 12:47] – [komplett] frank | bpi-r2:storage [2023/06/08 17:06] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Speicher ====== | ||
+ | {{: | ||
+ | Quelle: http:// | ||
+ | |||
+ | es sieht so aus, als wenn / | ||
+ | |||
+ | ===== preloader ===== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | sudo dd if=BPI-R2-EMMC-boot0-DDR1600-20190722-2k.img of=/dev/sdc bs=1k seek=2 | ||
+ | |||
+ | (SD-Card benötigt zusätzlich MMC_BOOT & BRLYT header, siehe weiter unten) | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | sudo dd if=BPI-R2-EMMC-boot0-DDR1600-20190722-0k.img of=/ | ||
+ | |||
+ | Dateien von hier: https:// | ||
+ | ===== SD ===== | ||
+ | sdcard-bootsektor reverse-engineering | ||
+ | [[http:// | ||
+ | |||
+ | [[http:// | ||
+ | |||
+ | [[https:// | ||
+ | |||
+ | * SDMMC_BOOT-Signatur + Adresse des 2. Headers (0x00000200) - erste 440 byte (vor Partitionstabelle): | ||
+ | |||
+ | gunzip -c BPI-R2-HEAD440-0k.img.gz | dd of=/ | ||
+ | |||
+ | * BRLYT-Signatur + Preloader-Adresse (0x00000800): | ||
+ | |||
+ | gunzip -c BPI-R2-HEAD1-512b.img.gz | dd of=/ | ||
+ | | ||
+ | |||
+ | ==== komplett ==== | ||
+ | |||
+ | dd if=/ | ||
+ | loopdev=$(losetup -f) | ||
+ | sudo losetup ${loopdev} ../ | ||
+ | echo $loopdev | ||
+ | sudo dd if=~/ | ||
+ | sudo dd if=~/ | ||
+ | sudo dd if=~/ | ||
+ | sudo dd if=/ | ||
+ | sudo sfdisk ${loopdev} < ~/ | ||
+ | sudo partprobe ${loopdev} | ||
+ | ls ${loopdev}* | ||
+ | sudo mkfs -t vfat ${loopdev}p1 | ||
+ | sudo mkfs -t ext4 ${loopdev}p2 | ||
+ | sudo fatlabel ${loopdev}p1 BPI-BOOT | ||
+ | sudo e2label ${loopdev}p2 BPI-ROOT | ||
+ | |||
+ | install debian (from [[debian# | ||
+ | |||
+ | sudo mount ${loopdev}p2 /mnt/ | ||
+ | sudo cp -r debian_buster_armhf/ | ||
+ | #install kernel-modules to same partition | ||
+ | kernelpack=/ | ||
+ | sudo tar -xzf ${kernelpack} -C /mnt/ --strip-components=1 BPI-ROOT | ||
+ | #install kernel to boot-partition | ||
+ | sudo umount /mnt | ||
+ | sudo mount ${loopdev}p1 /mnt/ | ||
+ | sudo tar -xzf ${kernelpack} -C /mnt/ --strip-components=1 BPI-BOOT | ||
+ | #maybe create a uEnv.txt | ||
+ | sudo umount /mnt | ||
+ | |||
+ | sudo losetup -d ${loopdev} | ||
+ | #now write the image to card (make sure /dev/sdc is your sdcard-device and no partition is mounted) | ||
+ | sudo dd if=../ | ||
+ | sync | ||
+ | ===== MMC-Utils ===== | ||
+ | |||
+ | über die [[https:// | ||
+ | |||
+ | < | ||
+ | .... | ||
+ | Boot configuration bytes [PARTITION_CONFIG: | ||
+ | ....</ | ||
+ | |||
+ | ich habe die mmc-utils auch in [[https:// | ||
+ | |||
+ | laut einem Forum-Nutzer (siehe [[http:// | ||
+ | |||
+ | ./mmc bootpart enable 1 1 / | ||
+ | |||
+ | < | ||
+ | [18:02] root@bpi-r2: | ||
+ | Boot configuration bytes [PARTITION_CONFIG: | ||
+ | [18:02] root@bpi-r2: | ||
+ | [18:03] root@bpi-r2: | ||
+ | Boot configuration bytes [PARTITION_CONFIG: | ||
+ | </ | ||
+ | ===== Betriebssystem auf EMMC installieren ===== | ||
+ | |||
+ | http:// | ||
+ | |||
+ | - [[uboot# | ||
+ | - Schreibmodus für / | ||
+ | - Preloader von [[https:// | ||
+ | * < | ||
+ | * mit [[https:// | ||
+ | - kopieren des OS-Abbildes auf EMMC (device=/ | ||
+ | * < | ||
+ | * Alternative (mit [[https:// | ||
+ | - Ausschalten, | ||
+ | |||
+ | wenn sd-Karten-Abbild nicht auf emmc passt: [[https:// | ||
+ | |||
+ | ===== manuelles kopieren des Betriebssystems ===== | ||
+ | * für ein neues SD-Card-Image wird der Bootblock eines vorhandenen Images benötigt | ||
+ | * {{ : | ||
+ | dd if=bpi-r2-sd-boot1m.img of=/dev/sdx | ||
+ | #ggf. partitonstabelle neu einlesen: | ||
+ | sfdisk -R /dev/sdx | ||
+ | #alternativ aus Paket parted | ||
+ | partprobe /dev/sdx | ||
+ | </ | ||
+ | * uboot installieren:< | ||
+ | * Partitionstabelle auf der SD exportieren {{ : | ||
+ | root@bpi-r2: | ||
+ | </ | ||
+ | * ggf. checken/ | ||
+ | * Dateisysteme anlegen (mkfs) für p1=vfat (apt-get install dosfstools) und p2=ext4< | ||
+ | mkfs -t ext4 / | ||
+ | * im bestehenden System mount-Punkte anlegen/ | ||
+ | mkdir -p / | ||
+ | nano /etc/fstab | ||
+ | # <file system> | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | </ | ||
+ | * mounten:< | ||
+ | mount / | ||
+ | mount / | ||
+ | </ | ||
+ | * rootfs entpacken/ | ||
+ | </ | ||
+ | * kernel (p1) und Module (p2) rüberkopieren< | ||
+ | cp / | ||
+ | mkdir -p / | ||
+ | cp -r / | ||
+ | * uboot auf die richtige Partition konfigurieren< |