Added README
This commit is contained in:
parent
024d0b4818
commit
5cde811354
1 changed files with 116 additions and 0 deletions
116
README.md
Normal file
116
README.md
Normal file
|
@ -0,0 +1,116 @@
|
||||||
|
# 0s
|
||||||
|
|
||||||
|
*Preferred OS*: Debian 9 "Stretch"
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Installs required packages on host
|
||||||
|
make setup
|
||||||
|
# Builds all necessary components and creates an image file (0s.img).
|
||||||
|
make build
|
||||||
|
```
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
* Debian build process is *very* slow?
|
||||||
|
[Performance issue with qemu-arm-static](https://lists.nongnu.org/archive/html/qemu-devel/2017-12/msg05236.html). This should hopefully be fixed once Debian 10 rolls around, but in the very unlikely case that it is not, I'd recommend grabbing an old version of qemu-arm-static ([2.8](https://packages.debian.org/en/stretch/qemu-user-static) is not affected).
|
||||||
|
|
||||||
|
* Upgrading to Debian 10 should be relatively straight forward, however [packaging the KIPR software stack](https://github.com/F-WuTS/kipr-packages-deb) for a new release could pose problematic. **Consider this a warning.**
|
||||||
|
|
||||||
|
* **Do not** attempt to upgrade the Linux kernel.
|
||||||
|
The [Gumstix fork](https://github.com/gumstix/linux) of the Linux kernel (specifically the yocto-v3.18.y release) is heavily modified to run on their hardware. You **will** go nuts if you try to switch to a newer version.
|
||||||
|
|
||||||
|
* When in doubt: Use an old GCC version
|
||||||
|
Linux utilizes compiler specific hacks, which [older version](https://github.com/gumstix/linux/blob/yocto-v3.18.y/include/linux/compiler-gcc5.h) obviously do not include. Upgrading to [GCC 6](https://github.com/F-WuTS/wallaby-linux/blob/899f4f2d6dfb486b67853fbb4671856ca5815d2e/include/linux/compiler-gcc6.h) does work, but as far as I'm concerned it is not possible to easily back-port the GCC 7 hacks.
|
||||||
|
|
||||||
|
* [sfdisk](https://linux.die.net/man/8/sfdisk) was upgraded quite some time ago and its user interface changed significantly. Current versions do not provide all required flags to successfully create a working image, therefor an old version is used.
|
||||||
|
|
||||||
|
* Corrupt files?
|
||||||
|
`git lfs install`
|
||||||
|
|
||||||
|
* Running out of disk space?
|
||||||
|
I'd recommend at least `20GB` of spare storage.
|
||||||
|
|
||||||
|
* WiFi is constantly disconnecting!
|
||||||
|
[This *should* hopefully be resolved](https://github.com/F-WuTS/0s/blob/master/root-fs/etc/modprobe.d/8192cu.conf).
|
||||||
|
If it still isn't: Write a program that executes `systemctl restart networking` with root permissions.
|
||||||
|
|
||||||
|
* My screen if flipped!
|
||||||
|
[Uncomment the rotate option.](https://github.com/F-WuTS/0s/blob/master/root-fs/usr/share/X11/xorg.conf.d/20-display.conf)
|
||||||
|
|
||||||
|
* I want to make changes to the root overlay-fs!
|
||||||
|
Be aware that permissions are ignored entirely and everything will be owned by root once copied.
|
||||||
|
|
||||||
|
* Is this entirely blob-free?
|
||||||
|
No, U-Boot as well as certain `.dtb` files are included.
|
||||||
|
|
||||||
|
* I want to test stuff!
|
||||||
|
```bash
|
||||||
|
./combine.sh
|
||||||
|
cd build
|
||||||
|
# Probably only works on systemd based Linux distributions
|
||||||
|
sudo systemd-nspawn -b -D debian
|
||||||
|
```
|
||||||
|
|
||||||
|
* What the hell are chroot stages?
|
||||||
|
1. Runs the final `debootstrap` stage inside the chroot.
|
||||||
|
Is cached across Debian builds to slightly increase iteration speed.
|
||||||
|
2. Should only perform idempotent changes.
|
||||||
|
Stuff like `apt-get`.
|
||||||
|
Should probably be cacheable too, haven't gotten around to that.
|
||||||
|
3. Can perform non-idempotent changes.
|
||||||
|
Should not be cacheable.
|
||||||
|
|
||||||
|
* I want to connect to an access point!
|
||||||
|
Add the access point to `/etc/wpa_supplicant/wpa_supplicant.conf` and learn how to Google™ stuff.
|
||||||
|
|
||||||
|
* Why is this taking so long?
|
||||||
|
Execute this on a beefy machine with a fast internet connection and it won't take longer than 30 minutes.
|
||||||
|
|
||||||
|
* What is the default root password?
|
||||||
|
`wallaby`
|
||||||
|
|
||||||
|
* Why is login as root over SSH enabled?
|
||||||
|
The KIPR software stack basically requires root privileges to do anything useful, therefor all security concerns are thrown out of the window. Still, consider changing the root password.
|
||||||
|
|
||||||
|
* I want to disable `<insert-service-here>`!
|
||||||
|
```bash
|
||||||
|
# Look for unwanted service (for example c0re.service)
|
||||||
|
systemctl list-unit-files
|
||||||
|
# Disable and mask it
|
||||||
|
systemctl disable <service>
|
||||||
|
systemctl mask <service>
|
||||||
|
|
||||||
|
* I want to publish packages in the F-WuTS repository!
|
||||||
|
Contact either [Daniel Swoboda](https://twitter.com/snoato) or [Philip Trauner](https://twitter.com/PhilipTrauner) to obtain the PGP signing key.
|
||||||
|
|
||||||
|
* Why doesn't the F-WuTS package repository use LFS?
|
||||||
|
Packages were corrupting left and right, don't really know why.
|
||||||
|
|
||||||
|
* `botui` is crashing!
|
||||||
|
KIPRs fault ¯\\_(ツ)_/¯
|
||||||
|
|
||||||
|
* `harrogate` is not working properly!
|
||||||
|
* CTRL-S/CMD-S doesn't work properly
|
||||||
|
Buy a Mac
|
||||||
|
|
||||||
|
* The servo ports do not work properly!
|
||||||
|
Hardware issue.
|
||||||
|
|
||||||
|
* 0s build is failing!
|
||||||
|
* Delete `build` folder and try again.
|
||||||
|
* Weird `apt-get` errors
|
||||||
|
MITs PGP key-server might be down. Try again later.
|
||||||
|
|
||||||
|
* How does a successful build look?
|
||||||
|
[Screencast](https://asciinema.org/a/175222)
|
||||||
|
|
||||||
|
* Booting takes *waaay* longer than it does on the original Wallaby OS
|
||||||
|
Debian handles WiFi setup during the boot process, while the original Wallaby OS does not.
|
||||||
|
|
||||||
|
* `E: Sub-process /usr/bin/dpkg returned an error code (1)`
|
||||||
|
Just re-run the build, don't really know why that happens sometimes.
|
||||||
|
|
||||||
|
* I want to make changes to 0s!
|
||||||
|
Cool, be aware that applying them on all Wallaby controllers is a major pain in the butt. Consider publishing a package in the F-WuTS repository instead.
|
||||||
|
|
||||||
|
* What am I supposed to do with `0s.img`?
|
||||||
|
😒
|
Reference in a new issue