Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
software:linux:ubuntu:beagleboneblack [2016-05-12 16:37] – kalberer | software:linux:ubuntu:beagleboneblack [2022-03-10 11:51] (aktuell) – gelöscht Urs Graf | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Installation von Ubuntu 14.04 minimal auf den BeagleBone Black ====== | ||
- | |||
- | Die folgende Anleitung erklärt die Installation von Ubuntu 14.04 minimal auf den BeagleBone Black. Diese Anleitung wurde auf der Basis von [[https:// | ||
- | |||
- | |||
- | ===== Voraussetzung ===== | ||
- | |||
- | * PC oder VM mit installiertem Ubuntu 14.04.1 LTS | ||
- | * BeagleBone Black | ||
- | * microSD Karte zum flashen | ||
- | |||
- | |||
- | |||
- | ===== Vorbereitung ===== | ||
- | |||
- | Abhängigketien installieren | ||
- | < | ||
- | # apt-get upgrade | ||
- | # apt-get install build-essential device-tree-compiler lzma lzop u-boot-tools libncurses5-dev: | ||
- | # apt-get install libc6:i386 libstdc++6: | ||
- | # apt-get install git</ | ||
- | |||
- | |||
- | Git konfigurieren | ||
- | < | ||
- | $ git config --global user.email " | ||
- | |||
- | |||
- | Toolchain herunterladen (50 MB) und entpacken | ||
- | < | ||
- | $ wget -c wget -c https:// | ||
- | $ tar xf gcc-linaro-arm-linux-gnueabihf-4.8-2014.04_linux.tar.xz</ | ||
- | |||
- | (Dieser Punkt kann auch übersprungen werden, da die Toolchain automatisch von einem Script heruntergeladen wird. Da aber die Toolchain später für die Softwareentwicklung benötigt wird, kann man das jetzt schon machen und später den Pfad im Kernel-Script angeben.) | ||
- | |||
- | |||
- | Symlink zu Toolchain erstellen (für User ntb) | ||
- | < | ||
- | # ln -s / | ||
- | $ cd -</ | ||
- | |||
- | |||
- | Toolchain Version anzeigen | ||
- | < | ||
- | arm-linux-gnueabihf-g++ (crosstool-NG linaro-1.13.1-4.8-2014.04 - Linaro GCC 4.8-2014.04) 4.8.3 20140401 (prerelease) | ||
- | Copyright (C) 2013 Free Software Foundation, Inc. | ||
- | This is free software; see the source for copying conditions. | ||
- | warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.</ | ||
- | |||
- | |||
- | |||
- | |||
- | ===== Kernel ===== | ||
- | |||
- | Kernel-Scripts herunterladen (Branch 3.15) | ||
- | < | ||
- | $ git clone https:// | ||
- | $ cd bb-kernel</ | ||
- | |||
- | |||
- | temporären Branch erstellen | ||
- | < | ||
- | |||
- | |||
- | system.sh.sample kopieren zu system.sh und einstellungen ändern: **CC=/ | ||
- | |||
- | |||
- | Kernel kompilieren | ||
- | < | ||
- | |||
- | Dieses Script holt automatisch alles was es braucht (Toolchain, Kernel Source, Patches, ...). Es klont aber das komplette Linux Repository, welches 1.4 GB gross ist. Die Daten werden komprimiert übermittelt, | ||
- | Das Kompilieren des Kernels dauert ca. 20 min (Ubuntu VM mit 4 Cores). Anschliessend findet man das Image im Ordner **deploy**. | ||
- | |||
- | |||
- | |||
- | |||
- | ===== Root File System ===== | ||
- | |||
- | Root File System herunterladen (90 MB) und entpacken | ||
- | < | ||
- | $ wget -c https:// | ||
- | $ md5sum ubuntu-14.04-minimal-armhf-2014-07-07.tar.xz | ||
- | c30fb91012701cdbfa00bb6c86868d0a ubuntu-14.04-minimal-armhf-2014-07-07.tar.xz | ||
- | $ tar xf ubuntu-14.04-minimal-armhf-2014-07-07.tar.xz</ | ||
- | |||
- | Standardmässig ist ein User mit dem Namen **ubuntu** und dem Passwort **temppwd** eingerichtet. | ||
- | |||
- | |||
- | |||
- | ===== Bootloader ===== | ||
- | |||
- | U-Boot Source herunterladen (63 MB) | ||
- | < | ||
- | $ git clone git:// | ||
- | $ cd u-boot/ | ||
- | $ git checkout v2014.07 -b tmp</ | ||
- | |||
- | Patches herunterladen und anwenden | ||
- | < | ||
- | patch -p1 < 0001-am335x_evm-uEnv.txt-bootz-n-fixes.patch</ | ||
- | |||
- | Kompilieren: | ||
- | < | ||
- | $ make ARCH=arm CROSS_COMPILE=/ | ||
- | $ make ARCH=arm CROSS_COMPILE=/ | ||
- | |||
- | |||
- | ===== microSD ===== | ||
- | |||
- | Bevor die microSD Karte eingelegt wird oder der Cardreader angeschlossen wird, sollte folgender Befehl ausgeführt werden. | ||
- | < | ||
- | NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT | ||
- | sda | ||
- | ├─sda1 | ||
- | ├─sda2 | ||
- | └─sda5 | ||
- | ├─ntb--vm--vg-root (dm-0) | ||
- | └─ntb--vm--vg-swap_1 (dm-1) 252:1 0 1020M 0 lvm [SWAP] | ||
- | sr0 11:0 1 56.8M 0 rom </ | ||
- | |||
- | Jetzt kann die microSD Karte oder der Cardreader angeschlossen werden. | ||
- | < | ||
- | AME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT | ||
- | sda | ||
- | ├─sda1 | ||
- | ├─sda2 | ||
- | └─sda5 | ||
- | ├─ntb--vm--vg-root (dm-0) | ||
- | └─ntb--vm--vg-swap_1 (dm-1) 252:1 0 1020M 0 lvm [SWAP] | ||
- | sde | ||
- | └─sde1 | ||
- | sr0 11:0 1 56.8M 0 rom</ | ||
- | |||
- | |||
- | Die microSD Karte ist somit das Device **/ | ||
- | < | ||
- | |||
- | Karte löschen | ||
- | < | ||
- | |||
- | Partitionen erstelln | ||
- | < | ||
- | sudo sfdisk --in-order --Linux --unit M ${DISK} << | ||
- | 1,12,0xE,* | ||
- | ,,,- | ||
- | __EOF__</ | ||
- | |||
- | Falls DISK == /dev/sdx | ||
- | < | ||
- | # mkfs.ext4 ${DISK}2 -L rootfs</ | ||
- | |||
- | Falls DISK == / | ||
- | < | ||
- | # mkfs.ext4 ${DISK}p2 -L rootfs</ | ||
- | |||
- | |||
- | Ordner erstellen um Partitionen zu mounten | ||
- | < | ||
- | # mkdir -p / | ||
- | |||
- | Falls DISK == /dev/sdx | ||
- | < | ||
- | # mount ${DISK}2 / | ||
- | |||
- | Falls DISK == / | ||
- | < | ||
- | # mount ${DISK}p2 / | ||
- | |||
- | |||
- | Bootloader installieren | ||
- | < | ||
- | # cp -v ./ | ||
- | # cp -v ./ | ||
- | |||
- | U-Boot Script | ||
- | < | ||
- | # nano / | ||
- | |||
- | Folgenden Inhalt einfügen | ||
- | < | ||
- | kernel_file=zImage | ||
- | initrd_file=initrd.img | ||
- | |||
- | loadaddr=0x82000000 | ||
- | initrd_addr=0x88080000 | ||
- | fdtaddr=0x88000000 | ||
- | |||
- | initrd_high=0xffffffff | ||
- | fdt_high=0xffffffff | ||
- | |||
- | loadimage=load mmc ${mmcdev}: | ||
- | loadinitrd=load mmc ${mmcdev}: | ||
- | loadfdt=load mmc ${mmcdev}: | ||
- | # | ||
- | |||
- | console=ttyO0, | ||
- | mmcroot=/ | ||
- | mmcrootfstype=ext4 rootwait fixrtc | ||
- | |||
- | ##To disable HDMI/ | ||
- | # | ||
- | optargs=capemgr.disable_partno=BB-BONELT-HDMI, | ||
- | |||
- | ##3.1MP Camera Cape | ||
- | # | ||
- | |||
- | mmcargs=setenv bootargs console=${console} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs} | ||
- | |||
- | #zImage: | ||
- | uenvcmd=run loadimage; run loadfdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr}</ | ||
- | |||
- | Um zu speichern Ctrl+O drücken und mit Ctrl+X schliessen. | ||
- | |||
- | |||
- | Root File system installieren | ||
- | < | ||
- | |||
- | Kernel installieren | ||
- | < | ||
- | # cp -v ./ | ||
- | # mkdir -p / | ||
- | # tar xfv ./ | ||
- | # mkdir -p / | ||
- | # tar xfv ./ | ||
- | # tar xfv ./ | ||
- | |||
- | |||
- | Auto-mount Root File System | ||
- | < | ||
- | |||
- | Netzwerk einrichten | ||
- | < | ||
- | |||
- | Folgenden Inhalt einfügen: | ||
- | < | ||
- | iface lo inet loopback | ||
- | |||
- | auto eth0 | ||
- | iface eth0 inet dhcp | ||
- | |||
- | auto usb0 | ||
- | iface usb0 inet static | ||
- | address 192.168.7.2 | ||
- | netmask 255.255.255.0 | ||
- | network 192.168.7.0 | ||
- | gateway 192.168.7.1</ | ||
- | |||
- | Um zu speichern Ctrl+O drücken und mit Ctrl+X schliessen. | ||
- | |||
- | Serial Console over UART5 | ||
- | < | ||
- | |||
- | Folgenden Inhalt einfügen: | ||
- | < | ||
- | stop on runlevel [!2345] | ||
- | |||
- | respawn | ||
- | exec /sbin/getty 115200 ttyO0</ | ||
- | |||
- | Um zu speichern Ctrl+O drücken und mit Ctrl+X schliessen. | ||
- | |||
- | |||
- | USB-Gadgets Kernelmodul beim Start laden | ||
- | < | ||
- | |||
- | Ganz unten folgende Zeile anhängen: | ||
- | < | ||
- | |||
- | Um zu speichern Ctrl+O drücken und mit Ctrl+X schliessen. | ||
- | |||
- | DHCP Server aktivieren: | ||
- | < | ||
- | |||
- | Die Zeile mit ' | ||
- | Um zu speichern Ctrl+O drücken und mit Ctrl+X schliessen. | ||
- | |||
- | DHCP Server konfigurieren: | ||
- | < | ||
- | |||
- | Folgende Einstellungen ändern: | ||
- | < | ||
- | end 192.168.7.1 # | ||
- | interface usb0 # | ||
- | max_leases 1 # | ||
- | optionsubnet 255.255.255.252 # | ||
- | |||
- | Um zu speichern Ctrl+O drücken und mit Ctrl+X schliessen. | ||
- | |||
- | Script um microSD Karte auf eMMC Flash zu kopieren | ||
- | < | ||
- | $ chmod +x bbb-eMMC-flasher-eewiki-12mb.sh | ||
- | # cp bbb-eMMC-flasher-eewiki-12mb.sh / | ||
- | |||
- | Ganz am Schluss microSD Karte unmounten. | ||
- | < | ||
- | # umount /media/boot | ||
- | # umount / | ||
- | |||
- | ==== SPI für FPGA Anbindung auf BBB ==== | ||
- | http:// | ||