Buildroot och Raspberry PI

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
John_E
Inlägg: 95
Blev medlem: 16 oktober 2007, 20:02:25
Ort: Bråten

Buildroot och Raspberry PI

Inlägg av John_E »

Hej!

Fick lite tips om hur man kommer igång med ARM här på forumet. Rådet var att börja med en Raspberry PI och utforska byggprocessen innan jag satte igång och etsa ett eget kort.

Jag har nu plockat ihop ett operativsystem med hjälp av buildroot och tänkte dela med mig av hur jag gått tillväga.

Jag kompilerar på min Fedora 22 laptop
Min pi är en modell B
Skriver testapplikationen I Eclipse Mars med buildroot pluginen tillhörande Juno

Om någon utav mina förklaringar är felaktiga är jag tacksam om ni påpekar detta.

Bygga operativsystem med buildroot

1. Skapa en mapp att arbeta I.
  • #mkdir /home/john/dev/buildroot_raspberrypi_hello
    #cd /home/john/dev/buildroot_raspberrypi_hello
2. Hämta buildroot 3. Skapa användartabell
  • #echo ”john -1 john -1 =lösenord_i_klartext /home/john /bin/sh dialout” > makeusers
4. Konfigurera buildroot
  • #cd buildroot

    Konfigurera automatiskt för Raspberry pi mod B.
    Detta innebär att man slipper tala om vilken linuxkärna som skall laddas ner, vilken processor man kompilerar mot, osv.
    #make raspberrypi_defconfig

    Fler inställningar
    #make xconfig (eller make menuconfig om man föredrar det)
    Jag väljer:
    • Toolchain → C library → glibc
      Toolchain → Register toolchain within Eclipse Buildroot plug-in
      Toolchain → Build cross gdb for the host
      Target packages → Networking applications → openssh
      Target packages → Debugging, profiling and benchmark → gdb
      Target packages → Debugging, profiling and benchmark → gdb → full
      Target packages → Debugging, profiling and benchmark → gdb → gdbserver
      Target packages → Text editors and viewers → nano
      System configuration → System hostname = raspi
      System configuration → System banner = Kul hälsningsfras
      System configuration → Root password = starkt lösenord
      System configuration → Path to the user table = ../makeusers
    Spara och stäng
5. Kompilera
  • Jag fick installera ett par paket som saknades på värddatorn.

    Fick felmeddelanden om miljövariabeln PERL_MM_OPT hade något värde
    #export PERL_MM_OPT=""
    #make -j4

    Här är det läge att hitta på något annat en stund.
6. Partitionera SD-kortet
  • Jag tycker om gparted.
    Skapar först en FAT32 partition på 50MB, döper den till BOOT och sätter lba flaggan
    Använder sedan resten av SD kortet till en EXT4 partition och döper den till ROOT

    Mitt operativsystem monterar SD kortets partitioner automatiskt under /var/run/media/john/
7. Kopiera filerna
  • Device tree filerna
    #cp output/images/*.dtb /var/run/media/john/BOOT/
    Firmware och konfigurationsfiler
    • #cp output/images/rpi-firmware/* /var/run/media/john/BOOT/
    Ställ in linuxavbilden att använda device tree och kopiera avbilden
    • #./output/host/usr/bin/mkknlimg output/images/zImage /var/run/media/john/BOOT/zImage
    Packa upp root filsystemet som root
    • #sudo tar xf output/images/rootfs.tar -C /var/run/media/john/ROOT/
    Ställ in ethernetporten att ansluta automatiskt
    • #sudo echo "auto eth0" >> /var/run/media/john/ROOT/etc/network/interfaces
      #sudo echo "iface eth0 inet dhcp" >> /var/run/media/john/ROOT/etc/network/interfaces

8. Provstarta pi:en
John_E
Inlägg: 95
Blev medlem: 16 oktober 2007, 20:02:25
Ort: Bråten

Re: Buildroot och Raspberry PI

Inlägg av John_E »

Skriva ett testprogram I eclipse och kompilera med den nya verktygskedjan

1. Installera eclipse-buildroot-plugin
  • Under Help→Install new software
    Lägg till platsen http://buildroot.org/downloads/eclipse/juno
    Jag använde juno eftersom det ännu inte finns någon buildroot-plug-in för mars
    Välj buildroot och klicka dig igenom installationsprocessen.
    Starta om eclipse
2. Skapa testprojekt
  • Jag väljer min buildroot_raspberrypi_hello mapp som workspace
    Skapar ett nytt C-projekt
    Väljer Makefile project→ empty project.
    Verktygskedjan: Buildroot ARM /home/john/dev/buildroot_raspberrypi_hello
    Döp projektet till HelloWorld
    Klicka på finish
3. Skapa Makefile

Kod: Markera allt

CFLAGS = -Wall
TARGET = hello

all: $(TARGET)

$(TARGET): main.c
	$(CC) $(CFLAGS) -o $(TARGET)  main.c 
	
clean: 
	$(RM) $(OBJS) hello
4. Skapa ett hello world program.

Kod: Markera allt

#include <stdio.h>

int main( int argc, char **argv )
{
	printf( "Hello World!\n" );

	return 0;
}
5. Spara allt och kompilera (Ctrl + B)

6. Skapa en anslutning
  • Väljer vyn Remote system explorer
    Högerklickar på Local och väljer new connection
    Remote system type: Linux
    Host name: pi:ens ip adress
    Connection name: buildroot_raspberrypi_hello
    Files:
    • Configuration: ssh.files
    Processes:
    • Configuration: processes.shell.linux
    Shells:
    • Configuration: ssh.shells
    Klicka på finish
7. Anslut
  • Högerklicka på den nya anslutningen och välj connect
8. Skapa en run configuration
  • Klicka på Run → Run configurations
    Dubbelklicka på C/C++ Remote Application
    Vid Remote Absolute file path for C/C++ application skriv: /home/john/hello
    Vid commands to execute before application skriv: chmod a+x /home/john/hello
9. Klicka på run
  • Om allt gått bra skall din binära fil hello kopieras via ssh och köras på Pi:en.
John_E
Inlägg: 95
Blev medlem: 16 oktober 2007, 20:02:25
Ort: Bråten

Re: Buildroot och Raspberry PI

Inlägg av John_E »

Härnäst tänkte jag försöka lägga till OWFS i byggprocessen samt experimentera lite med .dts filerna.
Skriv svar