Git Product home page Git Product logo

raspberrypi-ua-netinst's Introduction

raspberrypi-ua-netinst Issue Count

Intro

The minimal Raspbian unattended netinstaller for Raspberry Pi.

This initially was a fork of raspbian-ua-netinst. Because of extensive changes and improvements it became independent.
Some of the main differences are:

  • improved performance out of the box
  • full featured kernel and bootloader from raspberrypi.org (compatible with apt)
  • more installer customization options
  • ability to install via onboard wireless lan
  • better compatibility with accessory

This project gives Raspbian power users the ability to install a minimal base system unattended using the latest Raspbian packages, regardless when the installer was built.

The installer with the default settings configures eth0 with DHCP to get internet connectivity and completely wipes the SD card from any previous installation.

Features

  • completely unattended, you only need a working internet connection through the ethernet port or use the onboard wireless LAN (supported on model 3B, 3B+, 4B and 0W)
  • DHCP and static IP configuration (DHCP is the default)
  • always installs the latest version of Raspbian
  • configurable default settings
  • extra configuration over HTTP possible - gives unlimited flexibility
  • installation takes about 20 minutes with fast internet from power on to sshd running
  • can fit on a 512MB SD card, but 1GB is more reasonable
  • default installation includes fake-hwclock to save the current time at shutdown
  • default installation includes NTP to keep time
  • /tmp is mounted as tmpfs to improve speed
  • no clutter included, you only get the bare essential packages
  • option to install root to a USB drive

Requirements

  • a Raspberry Pi (from model 1B up to 4B, 3A+, 3B+ or Zero including Zero W)
  • SD card with at least 1GB, or at least 128MB for USB root install (without customization)
  • ethernet or wireless LAN with a working internet connection

Install instructions

  1. Write the installer to the SD card
  2. Provide unattended installation settings (optional) or follow the first boot steps later
  3. Power on the Raspberry Pi and wait until the installation is done

Writing the installer to the SD card

The installer archive contains all firmware files and the installer.

Go to our latest release page and download the .zip file.

Format your SD card as FAT32 (MS-DOS on Mac OS X) and extract the installer files.

Note: If you get an error saying it can't mount /dev/mmcblk0p1 on /boot then the most likely cause is that you're using exFAT instead of FAT32. Try formatting the SD card with this tool.
Further methods are described in doc/INSTALL_ADVANCED.md.

Installing

Under normal circumstances, you can just power on your Pi and cross your fingers.

If you don't have a display attached, you can monitor the ethernet card LEDs to guess the activity status. When it finally reboots after installing everything you will see them illuminate on and off a few times when Raspbian configures on boot.

If the installation process fails, you will see SOS in Morse code (... --- ...) on an led. In this case, power off the Pi and check the log on the sd card.

If you do have a display, you can follow the progress and catch any possible errors in the default configuration or your own modifications. Once a network connection has been established, the process can also be followed via telnet (port 23).

If you have a serial cable connected, installer output can be followed there, too. If 'console=tty1' at then end of the cmdline.txt file is removed, you have access to the console in case of problems.

Installer customization

You can use the installer as is and get a minimal system installed which you can then use and customize to your needs.

All configuration files and folders have to be placed in raspberrypi-ua-netinst/config on the SD card.
This is the configuration directory of the installer.

Unattended install settings

The primary way to customize the installation process is done through a file named installer-config.txt. Edit or create this file in the config folder on the SD card.

If you want settings changed for your installation, you should only place that changed setting in the installer-config.txt file. So if you want to have vim and aptitude installed by default, edit or create the installer-config.txt file with the following contents:

packages=vim,aptitude

That's it!

Here is another example for a installer-config.txt file:

packages=nano
firmware_packages=1

timezone=America/New_York
keyboard_layout=us
system_default_locale=en_US

username=pi
userpw=login
userperms_admin=1
usergpu=1

rootpw=raspbian
root_ssh_pwlogin=0

gpu_mem=32

All possible parameters and their description, are documented in doc/INSTALL_CUSTOM.md.

Advanced customization

More advanced customization as providing files or executing own scripts is documented in doc/INSTALL_ADVANCED.md.

First boot

The system is almost completely unconfigured on first boot. Here are some tasks you most definitely want to do on first boot.
Note, that this manual work can be done automatically during the installation process if the appropriate options in installer-config.txt) are set.

The default root password is raspbian.

  • Set new root password: passwd
  • Configure your default locale: dpkg-reconfigure locales
  • Configure your keyboard layout: dpkg-reconfigure keyboard-configuration
  • Configure your timezone: dpkg-reconfigure tzdata

Optional:
Create a swap file with dd if=/dev/zero of=/swap bs=1M count=512 && chmod 600 /swap && mkswap /swap (example is 512MB) and enable it on boot by appending /swap none swap sw 0 0 to /etc/fstab.

Logging

The output of the installation process is logged to file.
When the installation completes successfully, the logfile is placed in /var/log/raspberrypi-ua-netinst.log on the installed system.
When an error occurs during install, the logfile is placed in the raspberrypi-ua-netinst folder and is named error-\<datetimestamp\>.log

Reinstalling or replacing an existing system

If you want to reinstall with the same settings you did your first install you can just copy the original config.txt back and reboot.

The reinstallation can fail if the kernel of the current system environment is not supporting the old installer environment. In this case, you should replace the boot partition with the current installer version and replace the custom configuration if you had any.

Note: If the original installation was performed with cleanup set to 1, then the files necessary for a reinstallation will not be available.

cp /boot/raspberrypi-ua-netinst/config.txt /boot/config.txt
reboot

Remember to backup all your data and original config.txt before doing this!

Disclaimer

We take no responsibility for ANY data loss. You will be reflashing your SD card anyway so it should be very clear to you what you are doing and will lose all your data on the card. Same goes for reinstallation.

See LICENSE for license information.

raspberrypi-ua-netinst's People

Contributors

baevold avatar damienrj avatar diederikdehaas avatar dinosore avatar dragetd avatar felixrabe avatar foodeas avatar gellweiler avatar goranche avatar hifi avatar hleitzell avatar ignaciojimenez avatar jaketri avatar jturner314 avatar kpfleming avatar malignus avatar markslater avatar mausy5043 avatar mcanevet avatar mutability avatar ondrej-zary avatar phiber2000 avatar pipersw avatar pschaub avatar richard-scott avatar steveschnepp avatar thijstriemstra avatar zaephor avatar zeerix avatar zejn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

raspberrypi-ua-netinst's Issues

Auto pair bluetooth device(s)

I have a bluetooth keyboard that I'd like to pair by default. Is this maybe something for a config setting, a list of bluetooth identifiers or something that are trusted by default? I haven't looked into the whole bluetooth support yet but maybe someone tried doing this before.

i2c-dev not enabled

@FooDeas thanks for adding an i2c option. After reboot i2c_bm2708 is enabled:

$ lsmod | grep i2c
i2c_bcm2708             4834  0

But the actual devices in /dev/ are not created. After some searching it seems i2c_dev also needs to be enabled. To accomplish this; add the following lines (not sure if i2c-bm2708 is also needed there), compared to an otherwise empty file apart from the comments, to /etc/modules:

# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.

i2c-dev
i2c-bm2708

After reboot the devices are available:

$ lsmod | grep i2c
i2c_bcm2708             4834  0 
i2c_dev                 5859  0
$ sudo i2cdetect -l
i2c-1   i2c         3f804000.i2c                        I2C adapter

Is there something we can do about this? Shouldn't the dev devices always be available?

ps. apparently this option should also be changed to increase performance (for this device):

dtparam=i2c_arm=on,i2c_baudrate=400000

Screen/HDMI option

My screen requires a different HDMI resolution with the following boot settings:

# uncomment to force a specific HDMI mode (this will force VGA)
hdmi_group=2
hdmi_mode=35

Something we want to add to the settings? A HDMI or screen section maybe?

installer: cleanup /boot directory

The goal is, to have a clean /boot directory.
At the moment installer files and system files are mixed and it's not trivial to find out, what can be safely deleted, if the installer isn't needed anymore.
So all installer related files should be placed in a specific subdir (/boot/installer/).

Challenge: Provide backward compatibility to the old and convert it to the new structure. (Do we need it?)
Question: What to do, if both structures are present? Which has the priority?

GPIO rules

In order to use and run RPi.GPIO python programs without sudo a udev rule needs to be installed. I'm now using the installation-files.list feature to install this udev rule, e.g.:

foo:foo  775  /etc/udev/rules.d/99-gpio.rules

but would be nice to have a setting for this (requires user to be added to new gpio group).

Rule contents:

SUBSYSTEM=="bcm2835-gpiomem", KERNEL=="gpiomem", GROUP="gpio", MODE="0660"
SUBSYSTEM=="gpio", KERNEL=="gpiochip*", ACTION=="add", PROGRAM="/bin/sh -c 'chown root:gpio /sys/class/gpio/export /sys/class/gpio/unexport ; chmod 220 /sys/class/gpio/export /sys/class/gpio/unexport'"
SUBSYSTEM=="gpio", KERNEL=="gpio*", ACTION=="add", PROGRAM="/bin/sh -c 'chown root:gpio /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value ; chmod 660 /sys%p/active_low /sys%p/direction /sys%p/edge /sys%p/value'"

read-only filesystem

Maybe I'm doing something wrong but I'm not able to copy files to the boot disk any more because it's read-only?

mkdir: cannot create directory ‘/media/thijs/AFF1-72C7/config/files’: Read-only file system
mkdir: cannot create directory ‘/media/thijs/AFF1-72C7/config/files’: Read-only file system
'debian/installer-config.txt' -> '/media/thijs/AFF1-72C7/installer-config.txt'
cp: cannot create regular file '/media/thijs/AFF1-72C7/installer-config.txt': Read-only file system

This was not happening with a checkout from a few days ago.

GUI

Would be nice to have a cross-platform configuration tool for this project. Something with Qt would make sense to me. I'm not sure if it can or should be backwards compatible with the original version of this fork, but I'd say it shouldn't.

Thoughts on where (the repository) it should be placed?

Enable I2C

I want to experiment with an OLED screen using the SSD1306 library which requires I2C. Can an option be added for this (instructions here)?

Locale warning

When I apt-get upgrade packages on the raspberry (using ssh connection) I keep seeing this annoying warning:

perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
    LANGUAGE = (unset),
    LC_ALL = (unset),
    LC_TIME = "nl_NL.UTF-8",
    LC_MONETARY = "nl_NL.UTF-8",
    LC_ADDRESS = "nl_NL.UTF-8",
    LC_TELEPHONE = "nl_NL.UTF-8",
    LC_NAME = "nl_NL.UTF-8",
    LC_MEASUREMENT = "nl_NL.UTF-8",
    LC_IDENTIFICATION = "nl_NL.UTF-8",
    LC_NUMERIC = "nl_NL.UTF-8",
    LC_PAPER = "nl_NL.UTF-8",
    LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to a fallback locale ("en_US.UTF-8").

My config contains:

locales="en_US.UTF-8 nl_NL"
system_default_locale="en_US.UTF-8"

Is this something that can be set during installation or is it related to SSH?

Dynamic package installation configuration variables

I was reading the latest release notes for new features in v1.4.1, it says there's documentation on this feature, but I can't find it? Are there any examples of this behaviour, and how it differs from previous versions?

Disabling root password logins for SSH & Run ssh on a different port

I use the user_ssh_pubkey setting for login but I'd like to do this on a different port. Because this is after first boot I cannot easily change it myself (unless I use installation.files for sshd_config) so it would be nice to have this as a setting. If you think it's overkill I'll look into a different way of changing this. Disabling password logins for SSH would be nice as well (even when my user has a password or is root).

installer: retry package downloads

Installation processes after debootstrapping should retried if failed because of download issues (3 times).

This can be managed by downloading packages before apt installation gets started.

Filter unnecessary outputs

Expected, installer specific errors without any impact should be filtered:

debootstrap

  • pre-dependencies
  dpkg: warning: ignoring pre-dependency problem!
  dpkg: regarding .../<packagefile> containing <package>, pre-dependency problem:
   <package> pre-depends on <packagedep>
    <packagedep> is unpacked, but has never been configured.
    [<package y> provides <packagedep> but is unpacked but not configured.]
  • apt-utils
  debconf: delaying package configuration, since apt-utils is not installed
  • policies
  ************************************
  All rc.d operations denied by policy
  ************************************
  invoke-rc.d: policy-rc.d denied execution of start.
  • log
  E: Can not write log (Is /dev/pts mounted?) - posix_openpt (2: No such file or directory)
  • empty lines

apt

  • policies
  ************************************
  All rc.d operations denied by policy
  ************************************
  invoke-rc.d: policy-rc.d denied execution of start.
  • stdin
    Solution: Run apt with variable DEBIAN_FRONTEND=noninteractive set.
  dpkg-preconfigure: unable to re-open stdin: No such file or directory
  • log
  E: Can not write log (Is /dev/pts mounted?) - posix_openpt (2: No such file or directory)
  • empty lines

Serial port usage

I recently managed to hook up a Ublox NEO-6M GPS Module serial device, use gpsmon to monitor GPS activity and also use it with QtPositioning.

The device exists as /dev/ttyS0 on a RaspberryPi 3 (/dev/ttyAMA0 on older machines). All tutorials I followed suggested to remove the serial0=11500 line from /boot/cmdline.txt. My question, is this necessary? And if it is, how would I remove this using rpi-ua-netinst?

There has been some attention for the NTP/time functionality and I wonder if I'd need to make some drastic changes in NTP in order to use GPS timestamps?

I managed to get the lang, lat, timestamp in my Qt app but when I do that, other parts of the OS cannot access the serial port for the GPS anymore (restricted to one user). So rather than using it on an app-level I'd like to use it on a system-wide level where date returns a GPS time. I've read a couple of tutorials and I think I know how to setup the NTP stuff but I just wonder if you see any implications using rpi-ua-netinst.

Missing newline in config

I have an installer config with some gpu_mem stuff and a custom /boot/config.txt containg:

# Enable optional hardware interfaces
dtparam=i2c_arm=on
dtparam=i2s=on
dtparam=spi=on

After installation completed /boot/config.txt looked like this:

# Enable optional hardware interfaces
dtparam=i2c_arm=on
dtparam=i2s=on
dtparam=spi=onstart_x=1
disable_camera_led=1

gpu_mem=512

Looks like a newline was missing from my config.txt and when the final config.txt was produced it didn't add a newline, causing the dtparam option to get garbled: dtparam=spi=onstart_x=1

password_ssh_allow=0

It would be nice to have a setting that disallows SSH password login. I already disabled root ssh access (root_ssh_allow=0) but was also under the wrong impression that this would disable password SSH logins.

Network timeout during boot

By default the network setup doesn't have a timeout, resulting in a really long boottime when no ethernet cable is plugged in.

I've solved this by setting a timeout of 15 secs (my app doesn't have connectivity most of the time). Can we add an option for this?

You basically need to create (or replace) a /lib/systemd/system/networking.service.d/network-pre.conf with permissions root:root 644 with the following contents:

[Unit]
After=network-pre.target

[Service]
TimeoutStartSec=15

VC-Tools are not available

The Raspberry Pi tools like vcgencmd, raspistill and similar are not available without removing kernel.

Move to src dir

I'd suggest to move everything related to the installer (scripts etc) to a src directory, so you'll end up with a repository root containing a src and doc directory.

Ability to point SSH key settings to files

Instead of hard-coding the SSH keys in the config, point it to a file instead, e.g.:

user_ssh_pubkey=/home/me/.ssh/foo_rsa.pub

Or even fancier, simply specify the key name and it'll find it in your home:

user_ssh_pubkey=foo_rsa

Configuration API

It would be nice to define the configuration structure (keys, value types) in some sort of json object. That way it's easy for third-party (Python, JS, etc) tools to generate custom installer configuration files that can produce a custom netinst.

installation-files.list parse errors

I guess this is 2 issues, see log below.

  • a http500 error on the raspberrypi.org server causes the jessie/main raspberrypi-bootloader to be ignored (manually installing the package moments later works fine)
  • having comments in installation-files.list causes parse errors (?)
  Get:145 http://archive.raspberrypi.org/debian/ jessie/main libi2c-dev all 3.1.1+svn-2 [10.5 kB]
  Get:146 http://archive.raspberrypi.org/debian/ jessie/main raspberrypi-kernel armhf 1.20160921-1 [30.0 MB]
  Err http://archive.raspberrypi.org/debian/ jessie/main raspberrypi-bootloader armhf 1.20160921-1
    500  Internal Server Error
  Get:147 http://archive.raspberrypi.org/debian/ jessie/main libraspberrypi0 armhf 1.20160921-1 [840 kB]
  Get:148 http://archive.raspberrypi.org/debian/ jessie/main libraspberrypi-bin armhf 1.20160921-1 [328 kB]
  Fetched 75.2 MB in 4min 11s (299 kB/s)
  E: Failed to fetch http://archive.raspberrypi.org/debian/pool/main/r/raspberrypi-firmware/raspberrypi-bootloader_1.20160921-1_armhf.deb  500  Internal Server Error
  E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing?
OK
Preserving original config.txt and kernels...
Configuring bootloader to start the installed system...
Creating default cmdline.txt... OK
=================================================
=== Start executing post-install.txt. ===
Adding files & folders listed in /bootfs/config/installation-files.list
awk: cmd. line:1: Unexpected token
awk: cmd. line:1: Unexpected token
awk: cmd. line:1: Unexpected token

chmod: invalid mode: ''
Try 'chmod --help' for more information.
chown: cannot access '': No such file or directory
awk: cmd. line:1: Unexpected token
awk: cmd. line:1: Unexpected token
awk: cmd. line:1: Unexpected token

chmod: invalid mode: ''
Try 'chmod --help' for more information.
chown: cannot access '': No such file or directory
awk: cmd. line:1: Unexpected token
awk: cmd. line:1: Unexpected token
awk: cmd. line:1: Unexpected token

chmod: invalid mode: ''
Try 'chmod --help' for more information.
chown: cannot access '': No such file or directory
awk: cmd. line:1: Unexpected token
awk: cmd. line:1: Unexpected token
awk: cmd. line:1: Unexpected token

chmod: invalid mode: ''
Try 'chmod --help' for more information.
chown: cannot access '': No such file or directory

=== Finished executing post-install.txt. ===
=================================================
Removing cdebootstrap-helper-rc.d... OK
Saving current time for fake-hwclock...

Installation finished at Tue Oct 11 18:06:42 UTC 2016 and took 17 min 33 sec (1053 seconds)

Contents of installation-files.list:

# To add custom files on the target system:
# Add one line per file using this format:
# <ownership> <permission> <path/filename>
#
# <ownership>     OWNER[:GROUP] (see `man chown`)
# <permission>    MODE  (see `man chmod`)
# <path/file>     /path/as/it/will/appear/on/the/target/system.txt
#
# Source files are stored in the directory `config/files` in the same path as
# where they will be stored on the target system.
#
# EXAMPLE:
# A file placed on the SD-card in /config/files/home/pi/.bashrc is listed as follows:
# pi:pi  755  /home/pi/.bashrc
#
# Don't forget to call the function:
# install_files my-files.list
# from your `post-install.txt` where "my-files.list" is this file.
# The function `install_files` will assume the file is located in the `config` directory.

me:me  775  /home/me/install.sh
me:me  775  /home/me/install-printer.sh
root:root  600  /etc/lsyncd.conf

Running clean removes downloaded packages

Is it necessary to remove the downloaded packages when running ./clean.sh? The build time would decrease a lot if it didn't re-download these packages (but I'd still like the latest version if the local ones are old). I use the normal build instructions.

Add custom debian repository

I have a custom debian repo with my app on a machine in the local network.

Post installation I run something like (where $1 is an ip address):

# add foo.apt to hosts file
echo "Adding foo.apt to hosts file..."
echo $1"    foo.apt" | sudo tee -a /etc/hosts

# enable deb-src
echo "Enabling deb-src..."
echo "deb-src http://mirrordirector.raspbian.org/raspbian jessie main" | sudo tee -a /etc/apt/sources.list

# add foo apt repository
echo "Adding foo repository..."
wget -O - http://foo.apt/foo.gpg.key| sudo apt-key add -
echo 'deb http://foo.apt/apt/debian jessie main' > foo.list
sudo mv foo.list /etc/apt/sources.list.d/
sudo apt-get update
sudo apt-get upgrade --assume-yes

Would be nice to have some sort of setting(s) for a custom repo but if you think it's overkill, please close.

Shared config

I have two apps running on different raspberrypi's. I have a good config file for the first app and I would like to re-use that config file, not copy all of it's values and duplicate them in a second file. The only difference between config 1 and 2 would be the values for the boot_volume_label, hostname,
username, userpw and user_ssh_pubkey.

Any suggestions how to accomplish this?

Documentation is misleading (does not match release)

Very annoying: the documentation states that config files should go into raspberrypi-ua-netinst/config, but the installer loads (or tries to load) the installer-config.txt/post-install.txt from /bootfs (aka root of sd-card as in previous versions). This has cost me a few hours of work to figure that out.

The best way to work around this issue: keep the master in sync with the latest release and use a git branch for new developments. Or at least document which part of the documentation is valid for existing releases.

Thanks, Bernhard

Add user to groups

I have an install.sh on the pi that adds the user to several groups, e.g.:

# setup permissions: add user to video, lpadmin, input and gpio groups
echo "Creating permissions..."
sudo groupadd -f -r gpio
sudo usermod -a -G gpio,lpadmin,video,input $(whoami)

Would be nice to have a setting that adds you to specified groups (and creates the group if it doesn't exist).

Modules missing on reinstall

Following the README, I wanted to reinstall, with a few modifications.

I made some modifications to the files in /boot/, eg adding "bring-your-own" files to my-files.list and /boot/config/files.

Then I run:

mv /boot/config-reinstall.txt /boot/config.txt
reboot

During the installation, I get this:

Waiting for serial device... OK

Searching for boot device...
SD card detected.
Boot files found on SD card.

==================================================
raspberrypi-ua-netinst
==================================================
Revision v1.3.0 (6e71081)
Built on Wed Sep 14 23:34:00 CEST 2016
Running on Raspberry Pi version B
==================================================
https://github.com/FooDeas/raspberrypi-ua-netinst/
==================================================
Starting HWRNG succeeded!
Copying boot files... OK
==================================================
=== Start executing installer-config.txt. ========
=== Finished executing installer-config.txt. =====
==================================================

Network configuration:
  ip_addr = dhcp
  wlan_ssid = <...>
  wlan_psk = <...>
  online_config =

depmod: can't change directory to 'lib/modules/4.4.21+': No such file or directory
Loading additional drivers.
  Loading driver 'brcmfmac'... modprobe: can't change directory to '4.4.21+': No such file or directory

Oh noes, something went wrong!
You have 10 seconds to hit ENTER to get a shell...

I noticed that the files in /boot/, such as the bcm*.dtb, kernel.img and start*.elf files are different to those in the original installer files. Might this be the problem?

I've also tried it without modifying anything (except mv /boot/config-reinstall.txt /boot/config.txt) but it does the same thing.

So far I've had success by changing the files in /boot/:

  • Restore bcm2708-rpi-b.dtb
  • Restore bcm2708-rpi-b-plus.dtb
  • Restore bcm2708-rpi-cm.dtb
  • Restore bcm2709-rpi-2-b.dtb
  • Restore bcm2710-rpi-3-b.dtb
  • Delete bcm2710-rpi-cm3.dtb
  • Restore kernel.img

Then it re-installs successfully. (I know the last file was necessary, but I'm not sure about the others.)

Enable SPI

I need to use SPI to interact with a led matrix. Can we add an option that enables this (instructions here)?

Build process for making raspberrypi-ua-netinst from source

I was wondering what the entire build process is, starting right from the source code, all the way to the released img.* and .zip files? It would be useful, so I can contribute and test? And also so I could make my own modifications? I was also thinking of forking it to make a version that is specifically oriented towards NodeJS and GPIO functionality with WiringPi in C.

Cannot install over WiFi dongle

The installation hangs on "Configuring eth0 with DHCP" - I've tried a couple of WiFi dongles, same problem each time.

I also tried installing via wired Ethernet which worked, and then getting WiFi to work, but often it failed to get a lease, and when it managed, it was unable to ping anything. What could be going on here?

Testing on Zero

Does someone have a RaspberriPi Zero to test the netinstaller on it using a USB network adapter?

Ask for / generate password

The user password is currently hardcoded in the config file (and therefore also in my git repo). Would be nice to be able ask for a password when generating the installer (?) or generate one itself (and print that out). Perhaps this is not in the scope of this project but just thought I'd bring it up.

Hide startup messages with custom image

It would be really nice to be able to specify a custom boot logo and hide the system startup messages.

I would then start my app, which it's already doing using a systemd service, but it shows the login prompt for a couple seconds during the app startup that I'd also like to mask with the boot logo image.

Choose keyboard layout

There should be an option to choose the default system keyboard layout.
Add reference for possible values.

Missing log file

After a succesful installation (that failed twice) I have two log files, raspberrypi-ua-netinst-20160915T212422.log ending with:

Waiting 5 seconds.....
Waiting for /dev/mmcblk0... 
  Disk /dev/mmcblk0: 14.5 GiB, 15523119104 bytes, 30318592 sectors
  Disklabel type: dos
  Disk identifier: 0x04130dc6
OK
Applying new partition table... OK
Initializing /boot as vfat... OK
Copying /boot files in... OK
Initializing / as ext4... OK
Mounting new filesystems... OK
Starting install process...
P: Retrieving Release
P: Retrieving Release.gpg
P: Validating Release
I: Good signature from "Mike Thompson (Raspberry Pi Debian armhf ARMv6+VFP) <[email protected]>"
P: Parsing Release
P: Retrieving Packages.gz
P: Validating Packages.gz
E: Couldn't validate Packages!

Oh noes, something went wrong!
You have 10 seconds to hit ENTER to get a shell...

And raspberrypi-ua-netinst-20160915T212233.log with:

Waiting 5 seconds.....
Waiting for /dev/mmcblk0... 
  Disk /dev/mmcblk0: 14.5 GiB, 15523119104 bytes, 30318592 sectors
  Disklabel type: dos
  Disk identifier: 0xbfa557d0
OK
Applying new partition table... OK
Initializing /boot as vfat... OK
Copying /boot files in... OK
Initializing / as ext4... OK
Mounting new filesystems... OK
Starting install process...
P: Retrieving Release
P: Retrieving Release.gpg
P: Validating Release
I: Good signature from "Mike Thompson (Raspberry Pi Debian armhf ARMv6+VFP) <[email protected]>"
P: Parsing Release
P: Retrieving Packages.gz
P: Validating Packages.gz
P: Parsing Packages
P: Retrieving gcc-4.9-base
P: Validating gcc-4.9-base
E: Couldn't download pool/main/g/gcc-4.9/gcc-4.9-base_4.9.2-10_armhf.deb!

Oh noes, something went wrong!
You have 10 seconds to hit ENTER to get a shell...

Unfortunately the last log file wasn't stored? Can you reproduce this?

Can not run Kodi or can not use RPI-Display

Hi there,

I can install Kodi, but Kodi needs libraspberryi0 to run.
If I install libraspberrypi0 , I lose the kernel in /boot.
A backup of /boot I have before created and copied back after installation.
Now the RI display stops working .

How do I run with this Kodi Installer?

apt-get install libraspberrypi0
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
Die folgenden zusätzlichen Pakete werden installiert:
  raspberrypi-bootloader-nokernel
Die folgenden Pakete werden ENTFERNT:
  raspberrypi-bootloader raspberrypi-kernel

Die folgenden NEUEN Pakete werden installiert:
  libraspberrypi0 raspberrypi-bootloader-nokernel
0 aktualisiert, 2 neu installiert, 2 zu entfernen und 0 nicht aktualisiert.

Es müssen 3.897 kB an Archiven heruntergeladen werden.
Nach dieser Operation werden 104 MB Plattenplatz freigegeben.
Möchten Sie fortfahren? [J/n] 

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.