So, new release of void linux, I built my own kernel this time, which you can find at https://github.com/aditya3098/linux
http://sudoforlunch.org/releases/voidlinux-a1.img.gz to download, checksums:
sha256 d799695e971a2e860541495d6e78d7644437d95edae9e3aff090234c353f146d voidlinux-a1.img.gz
sha512 5b9a11081ab8ffcc955ceea9b57774d298bd19679f9127be7c5286a938190683ca4b2b7b5a45bf2c3007810c43f8dff4e3abf6c377ff13910f25fbedce5d51f voidlinux-a1.img.gz
** Remember to delete the ssh host keys before putting this on any public network **
Release notes are in /root/README.txt, replicated here:
This is the unofficial Void Linux image for the Lichee Pi Zero by Aditya Goturu.
You can contact me at firstname.lastname@example.org
You can learn more about Void Linux at https://www.voidlinux.eu/
This image has a 4.13 kernel and comes with a DTB which enables UART1, UART2 (which is used for bluetooth), SPI as /dev/spidev32766.0 and I2C at /dev/i2c-0, as well as audio enabled.
The source is at https://github.com/aditya3098/linux and the config is stored under arch/arm/configs/licheepi_zero_aditya_defconfig
The image has tools for i2c and spi installed, but apart from that is a fairly minimal image. Any tools needed can be installed via xbps.
The default root password is "voidlinux".
There is a login shell launched on /dev/ttyS0 as well as /dev/ttyGS0. The former is exposed as a physical uart (UART0) on the board, while the latter shows up as a CDC serial port (usually /dev/ttyACM0) on the host device into which the lichee pi zero is plugged. These can be disabled for deleting the symlink /var/service/agetty-ttyXXX however it is not recommended to disable the one on ttyS0 and as boot messages are dumped over ttyS0, it is generally prefered not to use it for anything else. For a general purpose serial port, please use ttyS1. ttyS2 may be used if you are not interested in interfacing with the bluetooth module.
There is support for CDC ethernet, and it can be configured by adding the following lines to /etc/dhcpcd.conf:
On the host device, assign yourself an IP address 10.0.23.1 on the usb ethernet interface which will show up on device boot. Then, to enable sharing of the internet connection (assuming the internet connection is available on eth0):
sudo iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
Wifi can be configured by adding multiple "network" entries to /etc/wpa_supplicant/wpa_supplicant.conf:
Please delete the example already present (or keep it and get free wifi near a house in a small suburb of Hyderabad, India)
Time is usually configured on boot via chronyd, but if it isn't set (for example if network is unavailable at boot), installing packages will fail as xbps uses https which depends on the correct time.
Void linux uses its own "xbps" packaging system. You can read about it here: https://www.voidlinux.eu/usage/xbps/
The init system is runit, which you can read about here: https://wiki.voidlinux.eu/Runit