Merge pull request #50 from SolidHal/develop

Pull in keybindings, copyright, README changes, installer changes
This commit is contained in:
SolidHal 2018-10-11 20:27:31 +00:00 committed by GitHub
commit 7099215b02
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
21 changed files with 365 additions and 135 deletions

3
.gitmodules vendored
View File

@ -1,3 +0,0 @@
[submodule "chromeos-3.14"]
path = chromeos-3.14
url = https://chromium.googlesource.com/chromiumos/third_party/kernel

View File

@ -1,2 +1,4 @@
SolidHal (find me on github, or send me a message in a bottle, emails kinda lame)
Dima Krasner (dima@dimakrasner.com)
SolidHal (hal@halemmerich.com)
With spcial thanks to:
Dima Krasner (dima@dimakrasner.com)
- The core concepts of filesystem and kernel building for the c201 are based on his work with devsus

52
DOCUMENTATION.md Normal file
View File

@ -0,0 +1,52 @@
# PrawnOS Documentation
Some additional documentation for PrawnOS that wouldn't fit in the README
## Useful XFCE4 keybindings and libinput-gestures:
### Gestures:
#### Config file: /etc/libinput-gestures.conf
* four finger swipe left: Switch to left workspace
* four finger swipe right: Switch to right worksace
### Keybindings
#### Configure under Settings->Window Manager->Keyboard
* control+alt+left: move window to left workspace
* control+alt+right: move window to right workspace
* control+left: tile widow to the left
* control+right: tile window to the right
* control+up: maximize window
* alt+tab: app switcher
#### Configure under Settings->Keyboard->Application Shortcuts
* alt+space : App launcher (spotlight-esque)
* control+alt+l: Lock screen
* Brightness scripts are also called here and can be remapped here or in ~/.Xmodmap
#### Configured using ~/.Xmodmap
* "search" key: Mode switch aka m_s (function key)
* m_s + backspace: delete
* m_s + up: page up
* m_s + down: page down
* m_s + left: home
* m_s + right: end
* m_s + period: insert
* "brightness up key": increase backlight
* "brightness down key": decrease backlight
* "volume mute": mute volume
* "volume down": decrease volume
* "volume up": increase volume
* m_s + "brightness up key": F7
* m_s + "brightness down key": F6
* m_s + "volume mute key": F8
* m_s + "volume down key": F9
* m_s + "volume up key": F10
#### Configured using ~/.xinputrc
* alt+left left a word
* alt+right right a word

100
README.md
View File

@ -13,9 +13,11 @@ Build a deblobbed mainline kernel with:
* Support for Atheros AR9271 and AR7010 WiFi dongles
* Support for CSR8150 bluetooth dongles
Don't want to use one of the two usb ports of for the WIFI dongle? [check out this](#build-the-wifi-dongle-into-the-laptop)
### why
Combined with libreboot, an AR9271 wifi dongle, and a libre OS (like Debian with the main repos, the one built by this) the asus c201 is a fully libre machine with no blobs, or microcode, or Intel Management Engine.
Combined with libreboot, an AR9271 or AR7010 wifi dongle, and a libre OS (like Debian with the main repos, the one built by this) the asus c201 is a fully libre machine with no blobs, or microcode, or Intel Management Engine.
### Image Download
@ -44,31 +46,98 @@ Build the `PrawnOS-...-.img` by running `sudo make image`
This has only been tested on a Debian stretch VM, and borrows some components from the host system to setup apt/debootstrap during the build process so I would recommend using a Debian Stretch VM to avoid any issues.
### Install
Write the 2GB image to a flash drive. Make sure to replace $USB_DEVICE with the desired target flash drive
### Write to a flash drive or sd card
Write the 2GB image to a flash drive. Make sure to replace $USB_DEVICE with the desired target flash drive or sd card device. If you're not familiar with dd, check out Debians
how to page https://www.debian.org/CD/faq/#write-usb
```
sudo dd if=PrawnOs-*-c201-libre-2GB.img of=/dev/$USB_DEVICE bs=50M
sudo dd if=PrawnOs-*-c201-libre-2GB.img of=/dev/$USB_DEVICE bs=50M; sync
```
Now on the C201, login as root. The password is blank.
If you would like to install it to the internal emmc storage run:
### Installing
There are two ways to use PrawnOS.
The first option is to boot from the external usb or sd device you wrote the image to.
[click here](#install-to-usb-drive-or-sd-card)
* Booting from an external device allows you to try PrawnOS without removing ChromeOS or whatever linux you are running on your internal storage (emmc), but it is a much slower experience as the c201 only has usb 2.0.
The second and, recommended, option is to install it on your internal storage (emmc)
[click here](#install-to-internal-drive-emmc)
* This is faster, and frees up a usb port.
### Install To USB drive or SD card
Now on the C201, press `control+u` at boot to boot from the usb drive.
If you are running stock coreboot and haven't flashed libreboot, you will first have to enable developer mode and enable usb booting. A quick search should get you some good guides, but if you're having issues feel free to open an issue here on github.
When it boots, login as root. The password is blank.
#### If you simply want a basic linux environment with not desktop environment or window manager:
Make sure its the only storage device plugged in, and run this script to expand the partition and filesystem to the full usb drive
```
cd /InstallResources/
./InstallToUSB
```
Congratulations: you are done! Welcome to PrawnOS. You should probably change the root password and make a user, but I'm not your boss or anything so I'll leave that to you.
If you want a quick guide on how to connect to wifi, check out [this down below](#connecting-to-wifi-in-a-basic-environment)
#### For everyone else, two scripts need to be ran.
The first expands the partition and filesystem to use the entire drive.
Make sure you only have one usb or sd storage device plugged into the machine.
Run:
```
cd /InstallResources/
./InstallToUSB
```
Then run this script which installs the either the xfce4 or the lxqt desktop enviroment, sound, trackpad, and Xorg configurations as well as prompts you to make a new user that automatically gets sudo privileges.
If it asks you about terminal encoding and/or locale, just hit enter. The default works for both.
When finished, it will reboot once again placing you at a login screen.
```
./InstallPackages.sh
```
This will take a while; usb 2.0 is slow.
Welcome to PrawnOS. If you like it, I would suggest installing it to your internal storage (emmc).
### Install to Internal drive (emmc)
Now on the C201, press `control+u` at boot to boot from the usb drive.
If you are running stock coreboot and haven't flashed libreboot, you will first have to enable developer mode and enable usb booting. A quick search should get you some good guides, but if you're having issues feel free to open an issue here on github.
At the prompt, login as root. The password is blank.
WARNING! THIS WILL ERASE YOUR INTERNAL EMMC STORAGE (your chrome OS install or other linux install and all of the associated user data) Make sure to back up any data you would like to keep before running this.
If you would like to install it to the internal emmc storage run:
```
cd /
./InstallToInternal.sh
```
**This will show a bunch of scary red warnings that are a result of the emmc (internal storage) being touchy. They don't seem to effect anything longterm.
_This will show a bunch of scary red warnings that are a result of the emmc (internal storage) being touchy and the kernel message level being set low for debugging. They don't seem to effect anything longterm._
The device will then reboot, and should boot to the internal storage by default. If it doesn't, turn off the device and remove the flash drive before turning it on again.
The device will then reboot. If you are running the stock coreboot, you will have to press `control+d` or wait 30 seconds past the beep to boot to the internal storage.
If you are running libreboot, it should boot to the internal storage by default. If it doesn't, turn off the device and remove the flash drive before turning it on again.
Now login as root again and run:
```
cd /InstallResources
./InstallPackages.sh
```
Which installs the either the xfce4 or the lxqt desktop enviroment, sound, trackpad, and Xorg configurations as well as prompts you to make a new user that automatically gets sudo priviledges.
Which installs the either the xfce4 or the lxqt desktop enviroment, sound, trackpad, and Xorg configurations as well as prompts you to make a new user that automatically gets sudo privileges.
If it asks you about terminal encoding and/or locale, just hit enter. The default works for both.
When finished, it will reboot once again placing you at a login screen.
Congratulations! Your computer is now a Prawn! https://sprorgnsm.bandcamp.com/track/the-prawn-song
#### Connecting to Wifi in a basic environment
If you just want a basic enviroment without xfce or lxqt can skip running InstallPackages.sh. You can connect to wifi using wpa_supplicant by running the following commands:
```
wpa_passphrase <Network_name> <network_password> > wpa.conf
@ -77,14 +146,17 @@ wpa_supplicant -D wext -i wlan0 -c wpa.conf
Now switch to another tty by pressing ctrl+alt+f2
Login as root, and run
```
dhclient
dhclient wlan0
```
When that finishes, you should have access to the internet.
Congratulations! Your computer is now a Prawn! https://sprorgnsm.bandcamp.com/track/the-prawn-song
### Documentation
Some useful things can be found in `DOCUMENTATION.md`
### Make options, developer tools
(ALl of these should be ran as root or with sudo to avoid issues)
(All of these should be ran as root or with sudo to avoid issues)
The makefile automates many processes that make debuggung the kernel or the filesystem easier.
TO begin with:
@ -106,9 +178,9 @@ https://rosenzweig.io/blog/gpu-feed.xml
### Build the wifi dongle into the laptop
Sick of having a wsb dongle on the outside of your machine for wi-fi? Want to be able to use two usb devices at once without a hub?
Sick of having a usb dongle on the outside of your machine for wi-fi? Want to be able to use two usb devices at once without a hub?
Check out the instructions here: https://github.com/SolidHal/AsusC201-usb-wifi-from-webcam
Waringing: decent soldering skills required
Warning: decent soldering skills required
### Troubleshooting

View File

@ -1,12 +0,0 @@
#!/bin/sh -xe
#Build everything
#Get sudo
sudo echo "Thanks."
#Build kernel WITHOUT SUDO, building the kernel with sudo is bad practice
#Once, sometime in the kernel version 2 days building the kernel with sudo broke the
#The system it was built on
./scripts/buildKernel.sh
#build os WITH sudo, debootstrap requires sudo
sudo ./scripts/buildDebianFs.sh

View File

@ -1,3 +1,18 @@
# This file is part of PrawnOS (http://www.prawnos.com)
# Copyright (c) 2018 Hal Emmerich <hal@halemmerich.com>
# PrawnOS is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
# PrawnOS is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with PrawnOS. If not, see <https://www.gnu.org/licenses/>.
.PHONY: clean
clean:
@echo "Enter one of:"

View File

@ -1497,7 +1497,24 @@ CONFIG_DM_INTEGRITY=y
# CONFIG_FIREWIRE_NOSY is not set
CONFIG_NETDEVICES=y
CONFIG_MII=y
# CONFIG_NET_CORE is not set
CONFIG_NET_CORE=y
# CONFIG_BONDING is not set
# CONFIG_DUMMY is not set
# CONFIG_EQUALIZER is not set
# CONFIG_NET_FC is not set
# CONFIG_IFB is not set
# CONFIG_NET_TEAM is not set
# CONFIG_MACVLAN is not set
# CONFIG_IPVLAN is not set
# CONFIG_VXLAN is not set
# CONFIG_MACSEC is not set
# CONFIG_NETCONSOLE is not set
CONFIG_TUN=y
# CONFIG_TUN_VNET_CROSS_LE is not set
# CONFIG_VETH is not set
# CONFIG_VIRTIO_NET is not set
# CONFIG_NLMON is not set
# CONFIG_NET_VRF is not set
# CONFIG_ARCNET is not set
#
@ -2087,6 +2104,8 @@ CONFIG_CHARGER_GPIO=y
# CONFIG_CHARGER_SMB347 is not set
# CONFIG_BATTERY_GAUGE_LTC2941 is not set
# CONFIG_CHARGER_RT9455 is not set
CONFIG_POWER_SEQUENCE=y
CONFIG_PWRSEQ_GENERIC=y
# CONFIG_HWMON is not set
CONFIG_THERMAL=y
# CONFIG_THERMAL_STATISTICS is not set

View File

@ -1,2 +1,9 @@
deb http://ftp.us.debian.org/debian/ stretch main
deb-src http://ftp.us.debian.org/debian/ stretch main
deb http://deb.debian.org/debian stretch main
deb-src http://deb.debian.org/debian stretch main
deb http://deb.debian.org/debian stretch-updates main
deb-src http://deb.debian.org/debian stretch-updates main
#Disable these, as the new versions of firefox or chromium installed crash immediately see issue #29
#deb http://security.debian.org/debian-security/ stretch/updates main
#deb-src http://security.debian.org/debian-security/ stretch/updates main

View File

@ -0,0 +1,43 @@
# Make Tab autocomplete regardless of filename case
set completion-ignore-case on
# List all matches in case multiple possible completions are possible
set show-all-if-ambiguous on
# Immediately add a trailing slash when autocompleting symlinks to directories
set mark-symlinked-directories on
# Show all autocomplete results at once
set page-completions off
# If there are more than 200 possible completions for a word, ask to show them all
set completion-query-items 100
# Show extra file information when completing, like `ls -F` does
set visible-stats on
# Be more intelligent when autocompleting by also looking at the text after
# the cursor. For example, when the current line is "cd ~/src/mozil", and
# the cursor is on the "z", pressing Tab will not autocomplete it to "cd
# ~/src/mozillail", but to "cd ~/src/mozilla". (This is supported by the
# Readline used by Bash 4.)
set skip-completed-text on
# This line sets readline to display possible completions using different colors to indicate their file types.
# The colors are determined by the environmental variable LS_COLORS, which can be nicely configured.
set colored-stats On
# This line sets the completions to be listed immediately instead of ringing
# the bell, when the completing word has more than one possible completion.
set show-all-if-ambiguous On
# This line sets the completions to be listed immediately instead of ringing the bell,
# when the completing word has more than one possible completion but no partial completion can be made.
set show-all-if-unmodified On
## enable Alt-arrows for word jumping
"\e[1;3D": backward-word ### Alt left
"\e[1;3C": forward-word ### Alt right

View File

@ -3,27 +3,11 @@
<channel name="xfce4-keyboard-shortcuts" version="1.0">
<property name="commands" type="empty">
<property name="default" type="empty">
<property name="&lt;Alt&gt;F1" type="empty"/>
<property name="&lt;Alt&gt;F2" type="empty">
<property name="startup-notify" type="empty"/>
</property>
<property name="&lt;Alt&gt;F3" type="empty">
<property name="startup-notify" type="empty"/>
</property>
<property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;l" type="empty"/>
<property name="XF86Display" type="empty"/>
<property name="&lt;Super&gt;p" type="empty"/>
<property name="&lt;Primary&gt;Escape" type="empty"/>
<property name="XF86WWW" type="empty"/>
<property name="XF86Mail" type="empty"/>
</property>
<property name="custom" type="empty">
<property name="&lt;Alt&gt;F3" type="string" value="xfce4-appfinder">
<property name="&lt;Alt&gt;F1" type="string" value="xfce4-popup-applicationsmenu"/>
<property name="&lt;Alt&gt;space" type="string" value="xfce4-appfinder --collapsed">
<property name="startup-notify" type="bool" value="true"/>
</property>
<property name="&lt;Alt&gt;F1" type="string" value="xfce4-popup-applicationsmenu"/>
<property name="&lt;Alt&gt;F2" type="empty">
<property name="&lt;Alt&gt;F3" type="string" value="xfce4-appfinder">
<property name="startup-notify" type="bool" value="true"/>
</property>
<property name="&lt;Primary&gt;&lt;Alt&gt;Delete" type="string" value="xflock4"/>
@ -31,70 +15,15 @@
<property name="XF86Display" type="string" value="xfce4-display-settings --minimal"/>
<property name="&lt;Super&gt;p" type="string" value="xfce4-display-settings --minimal"/>
<property name="&lt;Primary&gt;Escape" type="string" value="xfdesktop --menu"/>
<property name="XF86WWW" type="string" value="exo-open --launch WebBrowser"/>
<property name="XF86Mail" type="string" value="exo-open --launch MailReader"/>
<property name="override" type="bool" value="true"/>
<property name="&lt;Alt&gt;space" type="string" value="xfce4-appfinder --collapsed">
<property name="startup-notify" type="bool" value="true"/>
</property>
<property name="XF86MonBrightnessUp" type="string" value="/usr/sbin/backlight_up.sh"/>
<property name="XF86MonBrightnessDown" type="string" value="/usr/sbin/backlight_down.sh"/>
<property name="XF86MonBrightnessUp" type="string" value="/usr/sbin/backlight_up.sh"/>
</property>
</property>
<property name="xfwm4" type="empty">
<property name="default" type="empty">
<property name="&lt;Alt&gt;Insert" type="empty"/>
<property name="Escape" type="empty"/>
<property name="Left" type="empty"/>
<property name="Right" type="empty"/>
<property name="Up" type="empty"/>
<property name="Down" type="empty"/>
<property name="&lt;Alt&gt;Tab" type="empty"/>
<property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="empty"/>
<property name="&lt;Alt&gt;Delete" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="empty"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Down" type="empty"/>
<property name="&lt;Alt&gt;F4" type="empty"/>
<property name="&lt;Alt&gt;F6" type="empty"/>
<property name="&lt;Alt&gt;F7" type="empty"/>
<property name="&lt;Alt&gt;F8" type="empty"/>
<property name="&lt;Alt&gt;F9" type="empty"/>
<property name="&lt;Alt&gt;F10" type="empty"/>
<property name="&lt;Alt&gt;F11" type="empty"/>
<property name="&lt;Alt&gt;F12" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;End" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Home" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="empty"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Up" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_1" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_2" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_3" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_6" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="empty"/>
<property name="&lt;Alt&gt;space" type="empty"/>
<property name="&lt;Shift&gt;&lt;Alt&gt;Page_Up" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;d" type="empty"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="empty"/>
<property name="&lt;Super&gt;Tab" type="empty"/>
<property name="&lt;Primary&gt;F1" type="empty"/>
<property name="&lt;Primary&gt;F2" type="empty"/>
<property name="&lt;Primary&gt;F3" type="empty"/>
<property name="&lt;Primary&gt;F4" type="empty"/>
<property name="&lt;Primary&gt;F5" type="empty"/>
<property name="&lt;Primary&gt;F6" type="empty"/>
<property name="&lt;Primary&gt;F7" type="empty"/>
<property name="&lt;Primary&gt;F8" type="empty"/>
<property name="&lt;Primary&gt;F9" type="empty"/>
<property name="&lt;Primary&gt;F10" type="empty"/>
<property name="&lt;Primary&gt;F11" type="empty"/>
<property name="&lt;Primary&gt;F12" type="empty"/>
</property>
<property name="custom" type="empty">
<property name="Up" type="string" value="up_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_9" type="string" value="move_window_workspace_9_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_8" type="string" value="move_window_workspace_8_key"/>
@ -104,11 +33,12 @@
<property name="&lt;Alt&gt;Tab" type="string" value="cycle_windows_key"/>
<property name="&lt;Alt&gt;&lt;Shift&gt;Tab" type="string" value="cycle_reverse_windows_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_7" type="string" value="move_window_workspace_7_key"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Right" type="string" value="move_window_right_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;d" type="string" value="show_desktop_key"/>
<property name="&lt;Primary&gt;F7" type="string" value="workspace_7_key"/>
<property name="&lt;Alt&gt;F4" type="string" value="close_window_key"/>
<property name="&lt;Primary&gt;&lt;Shift&gt;&lt;Alt&gt;Left" type="string" value="move_window_left_key"/>
<property name="&lt;Alt&gt;F6" type="string" value="stick_window_key"/>
<property name="&lt;Alt&gt;F10" type="string" value="maximize_window_key"/>
<property name="&lt;Alt&gt;F12" type="string" value="above_key"/>
<property name="&lt;Alt&gt;F9" type="string" value="hide_window_key"/>
<property name="&lt;Alt&gt;F8" type="string" value="resize_window_key"/>
@ -139,14 +69,13 @@
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_4" type="string" value="move_window_workspace_4_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;KP_5" type="string" value="move_window_workspace_5_key"/>
<property name="override" type="bool" value="true"/>
<property name="&lt;Primary&gt;Up" type="string" value="maximize_window_key"/>
<property name="&lt;Primary&gt;Left" type="string" value="tile_left_key"/>
<property name="&lt;Primary&gt;Right" type="string" value="tile_right_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Up" type="string" value="prev_workspace_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Down" type="string" value="next_workspace_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="string" value="move_window_next_workspace_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Left" type="string" value="move_window_prev_workspace_key"/>
<property name="&lt;Primary&gt;&lt;Alt&gt;Right" type="string" value="move_window_next_workspace_key"/>
</property>
</property>
<property name="providers" type="array">
<value type="string" value="xfwm4"/>
<value type="string" value="commands"/>
</property>
</channel>

View File

View File

@ -1,5 +1,21 @@
#!/bin/bash -xe
# This file is part of PrawnOS (http://www.prawnos.com)
# Copyright (c) 2018 Hal Emmerich <hal@halemmerich.com>
# PrawnOS is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
# PrawnOS is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with PrawnOS. If not, see <https://www.gnu.org/licenses/>.
DIR=/InstallResources
while true; do
@ -13,8 +29,8 @@ done
locale-gen
#Install shared packages
apt install -y xorg acpi-support lightdm tasksel dpkg librsvg2-common xorg xserver-xorg-input-libinput alsa-utils anacron avahi-daemon eject iw libnss-mdns xdg-utils xserver-xorg-input-synaptics mousepad vlc dconf-tools sudo dtrx
apt install -y network-manager-gnome network-manager-openvpn
apt install -y xorg acpi-support lightdm tasksel dpkg librsvg2-common xorg xserver-xorg-input-libinput alsa-utils anacron avahi-daemon eject iw libnss-mdns xdg-utils xserver-xorg-input-synaptics mousepad vlc dconf-tools sudo dtrx emacs25
apt install -y network-manager-gnome network-manager-openvpn network-manager-openvpn-gnome
[ "$DE" = "xfce" ] && apt install -y xfce4 dbus-user-session system-config-printer tango-icon-theme xfce4-power-manager xfce4-terminal xfce4-goodies numix-gtk-theme plank
[ "$DE" = "lxqt" ] && apt install -y lxqt
@ -56,6 +72,9 @@ then
cp -rf $DIR/xfce-config/xmodmap/.Xmodmap /etc/skel/
cp -rf $DIR/xfce-config/xmodmap/.xinitrc /etc/skel/
#Install inputrc
cp -rf $DIR/xfce-config/inputrc/.inputrc /etc/skel/
#Install brightness controls
cp $DIR/xfce-config/brightness/backlight_* /usr/sbin/
mkdir -p /etc/udev/rules.d/
@ -76,18 +95,21 @@ dmesg -D
#Force a safe username
while true; do
echo " Enter new username: "
read username
#ensure no whitespace
case $username in *\ *) echo usernames may not contain whitespace;; *) break;; esac
done
until adduser $username --gecos ""
do
while true; do
echo " Enter new username: "
read username
#ensure no whitespace
case $username in *\ *) echo usernames may not contain whitespace;; *) break;; esac
done
adduser $username --gecos ""
retVal=$?
if [ $retVal == 0 ]; then
break
fi
done
done
usermod -a -G sudo,netdev,input,video $username
dmesg -E

View File

@ -4,6 +4,21 @@
#and erase ALL data on it
# This file is part of PrawnOS (http://www.prawnos.com)
# Copyright (c) 2018 Hal Emmerich <hal@halemmerich.com>
# PrawnOS is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
# PrawnOS is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with PrawnOS. If not, see <https://www.gnu.org/licenses/>.
RESOURCES=/InstallResources
read -p "This will ERASE ALL DATA ON THE INTERNAL STORAGE (EMMC) and reboot when finished, do you want to continue? [Y/n]" -n 1 -r

21
scripts/InstallScripts/InstallToUSB.sh Normal file → Executable file
View File

@ -1,10 +1,17 @@
#!/bin/bash
#Install PrawnOS to an external device, the first usb by default
apt install -y parted
parted /dev/sda \
print \
Fix \
partx -s /dev/sda2
resize2fs /dev/sda2
apt install -y gdisk parted
#Make the boot partition fille the whole drive
#Delete the partition
sgdisk -d 2 /dev/sda
#Make new partition map entry, with full size
sgdisk -N 2 /dev/sda
#Set the type to "data"
sgdisk -t 2:0700 /dev/sda
#Name is "properly" - Probably not required, but looks nice
sgdisk -c 2:Root /dev/sda
#Reload the partition mapping
partprobe /dev/sda
#Force the filesystem to fill the new partition
resize2fs -f /dev/sda2

View File

@ -3,6 +3,22 @@
# Build fs, image
# This file is part of PrawnOS (http://www.prawnos.com)
# Copyright (c) 2018 Hal Emmerich <hal@halemmerich.com>
# PrawnOS is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
# PrawnOS is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with PrawnOS. If not, see <https://www.gnu.org/licenses/>.
KVER=4.17.2
#Ensure Sudo
@ -78,7 +94,7 @@ chmod +x $outmnt/*.sh
#Setup the chroot for apt
#This is what https://wiki.debian.org/EmDebian/CrossDebootstrap suggests
cp /etc/hosts $outmnt/etc/
cp $build_resources/sources.list $outmount/etc/apt/sources.list
cp $build_resources/sources.list $outmnt/etc/apt/sources.list
#Setup the locale
chroot $outmnt echo en_US.UTF-8 UTF-8 > /etc/locale.gen
@ -86,14 +102,14 @@ chroot $outmnt locale-gen
#Install the base packages
chroot $outmnt apt update
chroot $outmnt apt install -y initscripts udev kmod net-tools inetutils-ping traceroute iproute2 isc-dhcp-client wpasupplicant iw alsa-utils cgpt vim-tiny less psmisc netcat-openbsd ca-certificates bzip2 xz-utils ifupdown nano apt-utils git
chroot $outmnt apt install -y initscripts udev kmod net-tools inetutils-ping traceroute iproute2 isc-dhcp-client wpasupplicant iw alsa-utils cgpt vim-tiny less psmisc netcat-openbsd ca-certificates bzip2 xz-utils ifupdown nano apt-utils git kpartx
#Cleanup to reduce install size
chroot $outmnt apt-get autoremove --purge
chroot $outmnt apt-get clean
#Download the packages to be installed by Install.sh:
chroot $outmnt apt-get install -y -d xorg acpi-support lightdm tasksel dpkg librsvg2-common xorg xserver-xorg-input-libinput alsa-utils anacron avahi-daemon eject iw libnss-mdns xdg-utils lxqt xserver-xorg-input-synaptics crda xfce4 dbus-user-session system-config-printer tango-icon-theme xfce4-power-manager xfce4-terminal xfce4-goodies mousepad vlc libutempter0 xterm numix-gtk-theme dconf-tools plank network-manager-gnome network-manager-openvpn dtrx
chroot $outmnt apt-get install -y -d xorg acpi-support lightdm tasksel dpkg librsvg2-common xorg xserver-xorg-input-libinput alsa-utils anacron avahi-daemon eject iw libnss-mdns xdg-utils lxqt xserver-xorg-input-synaptics crda xfce4 dbus-user-session system-config-printer tango-icon-theme xfce4-power-manager xfce4-terminal xfce4-goodies mousepad vlc libutempter0 xterm numix-gtk-theme dconf-tools plank network-manager-gnome network-manager-openvpn network-manager-openvpn-gnome dtrx emacs25
#Download support for libinput-gestures
chroot $outmnt apt install -y libinput-tools xdotool build-essential

View File

@ -3,6 +3,22 @@
#Build kenerl, wifi firmware
# This file is part of PrawnOS (http://www.prawnos.com)
# Copyright (c) 2018 Hal Emmerich <hal@halemmerich.com>
# PrawnOS is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
# PrawnOS is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with PrawnOS. If not, see <https://www.gnu.org/licenses/>.
KVER=4.17.2
TEST_PATCHES=false

View File

@ -1,5 +1,19 @@
#!/bin/sh -xe
# This file is part of PrawnOS (http://www.prawnos.com)
# Copyright (c) 2018 Hal Emmerich <hal@halemmerich.com>
# PrawnOS is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
# PrawnOS is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with PrawnOS. If not, see <https://www.gnu.org/licenses/>.
KVER=4.17.2

View File

@ -3,6 +3,22 @@
#Runs Make menuconfig with the proper enviroment vars for cross compiling arm
#Grabs the file named config in resources/BuildResources directory, and updates it
# This file is part of PrawnOS (http://www.prawnos.com)
# Copyright (c) 2018 Hal Emmerich <hal@halemmerich.com>
# PrawnOS is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2
# as published by the Free Software Foundation.
# PrawnOS is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
# You should have received a copy of the GNU General Public License
# along with PrawnOS. If not, see <https://www.gnu.org/licenses/>.
KVER=4.17.2
ROOT_DIR=`pwd`