20878a1017
The current Buildroot defconfigs for Raspberry Pi and Raspberry Pi 2 instantiate a console on tty1, which appears on HDMI. Add a console on the serial port (ttyAMA0) to be more consistent with other defconfigs and provide a better out-of-the-box experience to users used to have a serial console from Buildroot defconfigs. This requires three changes: 1. have two 'console=' entries in the kernel command line: tty1, then ttyAMA0; 2. change BR2_TARGET_GENERIC_GETTY_PORT to "console", so it starts a getty on the last console= passed to the kernel, ttyAMA0; 3. add a new getty on tty1 to the generated inittab. Step 2 is actually obtained by removing BR2_TARGET_GENERIC_GETTY_PORT entirely from the defconfigs, since "console" is the default value. Step 3 requires a post-build script since the Buildroot makefiles can configure only one console. Note: instead of simply adding a new getty on ttyAMA0 (which would work) this patch actually changes BR2_TARGET_GENERIC_GETTY_PORT to instantiate a console on UART, then adds back tty1 via post-build.sh. This is done only to avoid the "GENERIC_SERIAL" comment where we instantiate an HDMI console, then instantiate a really-serial console on another line. The result is these two inittab lines: console::respawn:/sbin/getty -L console 0 vt100 # GENERIC_SERIAL tty1::respawn:/sbin/getty -L tty1 0 vt100 # HDMI console Cc: Yann E. MORIN <yann.morin.1998@free.fr> Cc: Arnout Vandecappelle <arnout@mind.be> Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
||
---|---|---|
.. | ||
genimage-raspberrypi2.cfg | ||
genimage-raspberrypi.cfg | ||
post-build.sh | ||
post-image.sh | ||
readme.txt |
Raspberry Pi Intro ===== These instructions apply to all models of the Raspberry Pi: - the original models A and B, - the "enhanced" models A+ and B+, - the model B2 (aka Raspberry Pi 2). How to build it =============== Configure Buildroot ------------------- There are two RaspberryPi defconfig files in Buildroot, one for each major variant, which you should base your work on: For models A, B, A+ or B+: $ make raspberrypi_defconfig And for model 2 B: $ make raspberrypi2_defconfig Build the rootfs ---------------- Note: you will need to have access to the network, since Buildroot will download the packages' sources. You may now build your rootfs with: $ make (This may take a while, consider getting yourself a coffee ;-) ) Result of the build ------------------- After building, you should obtain this tree: output/images/ +-- bcm2708-rpi-b.dtb [1] +-- bcm2708-rpi-b-plus.dtb [1] +-- bcm2709-rpi-2-b.dtb [1] +-- boot.vfat +-- kernel-marked/zImage [2] +-- rootfs.ext4 +-- rpi-firmware/ | +-- bootcode.bin | +-- cmdline.txt | +-- config.txt | +-- fixup.dat | `-- start.elf +-- sdcard.img `-- zImage [1] Not all of them will be present, depending on the RaspberryPi model you are using. [2] This is the mkknlimg DT-marked kernel. How to write the SD card ======================== Once the build process is finished you will have an image called "sdcard.img" in the output/images/ directory. Copy the bootable "sdcard.img" onto an SD card with "dd": $ sudo dd if=output/images/sdcard.img of=/dev/sdX Insert the SDcard into your Raspberry Pi, and power it up. Your new system should come up now.