Cleaned up image creation, made functional installation scripts
Cleaned up build files, resources, scripts. Made the image use a partition map to fix mmc issues Signed-off-by: SolidHal <solidhal@users.noreply.github.com>
This commit is contained in:
parent
2f162bce46
commit
d0403b14e3
5
.gitignore
vendored
5
.gitignore
vendored
@ -1,6 +1,3 @@
|
|||||||
devuan-jessie-c201-libre-*GB.img
|
|
||||||
linux-*
|
linux-*
|
||||||
open-ath9k-htc-firmware
|
open-ath9k-htc-firmware
|
||||||
debian-stretch-c201-libre-*GB.img
|
PrawnOS-Alpha-c201-libre-2GB.img
|
||||||
librean-stretch-c201-libre-*GB.img
|
|
||||||
|
|
||||||
|
26
README.md
26
README.md
@ -1,4 +1,4 @@
|
|||||||
# Librean
|
# PrawnOS
|
||||||
|
|
||||||
A build system for making blobless debian and mainline kernel for the Asus c201 Chromebook
|
A build system for making blobless debian and mainline kernel for the Asus c201 Chromebook
|
||||||
|
|
||||||
@ -8,15 +8,15 @@ No blobs, anywhere.
|
|||||||
Support for Aetheros AR271 usb wifi dongles through the open source firmware
|
Support for Aetheros AR271 usb wifi dongles through the open source firmware
|
||||||
Minimal toolset intended as a based, including tools to setup a wifi connection
|
Minimal toolset intended as a based, including tools to setup a wifi connection
|
||||||
Sources from only main, not contrib or non-free which keeps Debian libre
|
Sources from only main, not contrib or non-free which keeps Debian libre
|
||||||
TODO: basic graphical desktop like xfce
|
Currently PrawnOS supports lxqt, with plans to include xfce as an option in the future
|
||||||
|
|
||||||
### why
|
### why
|
||||||
|
|
||||||
Combined with libreboot,an AR271 wifi dongle, and a libre OS (like Debian, the one built by this) the asus c201 is a fully libre machine with no blobs, or microcode.
|
Combined with libreboot, an AR271 wifi dongle, and a libre OS (like Debian, the one built by this) the asus c201 is a fully libre machine with no blobs, or microcode.
|
||||||
|
|
||||||
### Dependencies
|
### Dependencies
|
||||||
|
|
||||||
Librean has been tested on Debian 9 Stretch (in a vm)
|
Building PrawnOS has been tested on Debian 9 Stretch (in a vm)
|
||||||
These packages are required:
|
These packages are required:
|
||||||
|
|
||||||
```
|
```
|
||||||
@ -26,7 +26,7 @@ These packages are required:
|
|||||||
u-boot-tools \
|
u-boot-tools \
|
||||||
gcc make libc-dev wget g++ cmake \
|
gcc make libc-dev wget g++ cmake \
|
||||||
binfmt-support qemu-user-static debootstrap \
|
binfmt-support qemu-user-static debootstrap \
|
||||||
lzip libssl-dev libncurses-dev flex bison
|
lzip libssl-dev libncurses-dev flex bison sudo patch
|
||||||
```
|
```
|
||||||
|
|
||||||
### Build
|
### Build
|
||||||
@ -36,22 +36,20 @@ Run the kernel one then the fs one.
|
|||||||
### Install
|
### Install
|
||||||
Write the 2GB image to a flash drive, which contains the full 15GB (acutally 14.7GB) to write to the internal storage. We can do this since the 15GB image is a sparse file.
|
Write the 2GB image to a flash drive, which contains the full 15GB (acutally 14.7GB) to write to the internal storage. We can do this since the 15GB image is a sparse file.
|
||||||
```
|
```
|
||||||
sudo dd if=debian-stretch-c201-libre-2GB.img of=/dev/$USB_DEVICE bs=50M
|
sudo dd if=PrawnOs-Alpha-c201-libre-2GB.img of=/dev/$USB_DEVICE bs=50M
|
||||||
```
|
```
|
||||||
|
|
||||||
Now on the C201, login as root. The password is blank.
|
Now on the C201, login as root. The password is blank.
|
||||||
Write the 15GB image to the internal storage
|
Write the 15GB image to the internal storage
|
||||||
For me this was /dev/mmcblk2 but it may be /dev/mmcblk1 for you depending on what device it assigns to sdcards
|
For me this was /dev/mmcblk2 but it may be /dev/mmcblk1 for you depending on what device it assigns to sdcards
|
||||||
|
|
||||||
```
|
WIP
|
||||||
dd if=/debian-stretch-c201-libre-2GB.img of=/dev/$DEVICE bs=50M
|
|
||||||
```
|
|
||||||
|
|
||||||
Reboot. Run /Install.sh which will install xfce, wicd, and some device configurations. This will reboot one last time when done.
|
Reboot. Run /Install.sh which will install lxqt, wicd, and some device configurations. This will reboot one last time when done.
|
||||||
```
|
```
|
||||||
/Install.sh
|
/Install.sh
|
||||||
```
|
```
|
||||||
You should now be greeted by the xfce login screen.
|
You should now be greeted by a login screen.
|
||||||
|
|
||||||
If you just want a basic enviroment without xfce upu can skip running Install.sh but I recommend installing wicd-curses for wifi configuration.
|
If you just want a basic enviroment without xfce upu can skip running Install.sh but I recommend installing wicd-curses for wifi configuration.
|
||||||
|
|
||||||
@ -69,15 +67,15 @@ Check out the instructions here: https://github.com/SolidHal/AsusC201-usb-wifi-f
|
|||||||
|
|
||||||
### Troubleshooting
|
### Troubleshooting
|
||||||
|
|
||||||
The pulse audio mixer will only run if you are logged in as a non root account. This is an issue (feature?) of pulse audio
|
The pulse audio mixer will only run if you are logged in as a non-root account. This is an issue (feature?) of pulse audio
|
||||||
|
|
||||||
### Credits and Legal Information
|
### Credits and Legal Information
|
||||||
|
|
||||||
Thanks to dimkr for his great devsus scripts, from which Librean took much inspiration
|
Thanks to dimkr for his great devsus scripts, from which PrawnOS took much inspiration
|
||||||
https://github.com/dimkr/devsus
|
https://github.com/dimkr/devsus
|
||||||
|
|
||||||
Because of this started as a fork of devsus, much of this repos history can be found at https://github.com/SolidHal/devsus/tree/hybrid_debian
|
Because of this started as a fork of devsus, much of this repos history can be found at https://github.com/SolidHal/devsus/tree/hybrid_debian
|
||||||
|
|
||||||
Librean is free and unencumbered software released under the terms of the GNU
|
PrawnOS is free and unencumbered software released under the terms of the GNU
|
||||||
General Public License, version 2; see COPYING for the license text. For a list
|
General Public License, version 2; see COPYING for the license text. For a list
|
||||||
of its authors and contributors, see AUTHORS.
|
of its authors and contributors, see AUTHORS.
|
||||||
|
13
TODO.txt
13
TODO.txt
@ -1,13 +0,0 @@
|
|||||||
Investigate CONFIG_DRM_PANEL_LVDS vs CONFIG_DRM_PANEL_SIMPLE
|
|
||||||
|
|
||||||
CONFIG_DRM_DW_HDMI_I2S_AUDIO vs CONFIG_DRM_DW_HDMI_AHB_AUDIO
|
|
||||||
|
|
||||||
CONFIG_IIO_CROS_EC_SENSORS_CORE vs CONFIG_IIO_CROS_EC_ACCEL_LEGACY
|
|
||||||
(probably the first??)
|
|
||||||
tried the first, didn't change anything obvious. Further testing required.
|
|
||||||
|
|
||||||
Enable boot logo? Device Drivers->Graphics support->Bootup logo
|
|
||||||
|
|
||||||
|
|
||||||
Added:
|
|
||||||
better sound support? HDMI support?
|
|
BIN
blank_kernel
BIN
blank_kernel
Binary file not shown.
6
buildLibrean.sh → buildPrawnOS.sh
Normal file → Executable file
6
buildLibrean.sh → buildPrawnOS.sh
Normal file → Executable file
@ -5,6 +5,8 @@
|
|||||||
#Get sudo
|
#Get sudo
|
||||||
sudo echo "Thanks."
|
sudo echo "Thanks."
|
||||||
#Build kernel WITHOUT SUDO, building the kernel with sudo is bad practice
|
#Build kernel WITHOUT SUDO, building the kernel with sudo is bad practice
|
||||||
./buildKernel.sh
|
#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
|
#build os WITH sudo, debootstrap requires sudo
|
||||||
sudo ./buildDebian.sh
|
sudo ./scripts/buildDebianFs.sh
|
9
resources/InstallResources/mmc.partmap
Normal file
9
resources/InstallResources/mmc.partmap
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
label: gpt
|
||||||
|
label-id: EBA5A923-2F33-7C4E-AC9A-1555FD600D19
|
||||||
|
device: /dev/mmcblk2
|
||||||
|
unit: sectors
|
||||||
|
first-lba: 34
|
||||||
|
last-lba: 30785502
|
||||||
|
|
||||||
|
/dev/mmcblk2p1 : start= 20480, size= 65536, type=FE3A2A5D-4F32-41A7-B725-ACCC3285A309, uuid=89B31CDB-1147-5241-8271-C1ADBB9BBB44, name="Kernel", attrs="GUID:49,51,52,54,56"
|
||||||
|
/dev/mmcblk2p2 : start= 86016, size= 30699486, type=EBD0A0A2-B9E5-4433-87C0-68B6B72699C7, uuid=63DB8E49-63C4-984E-90A0-8AC3222C4771, name="Root"
|
18
Install.sh → scripts/InstallScripts/InstallPackages.sh
Normal file → Executable file
18
Install.sh → scripts/InstallScripts/InstallPackages.sh
Normal file → Executable file
@ -1,19 +1,23 @@
|
|||||||
#!/bin/sh -xe
|
#!/bin/sh -xe
|
||||||
|
|
||||||
#Setup locales
|
DIR=/InstallResources
|
||||||
|
|
||||||
|
#Setup locales, crda
|
||||||
apt install -y locales
|
apt install -y locales
|
||||||
#Install xfce, wicd
|
dpkg-reconfigure locale
|
||||||
|
apt install -y crda
|
||||||
|
locale-gen
|
||||||
|
#Install lxqt, wicd
|
||||||
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 lxqt wicd-daemon wicd wicd-curses wicd-gtk xserver-xorg-input-synaptics
|
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 lxqt wicd-daemon wicd wicd-curses wicd-gtk xserver-xorg-input-synaptics
|
||||||
#Copy in acpi, pulse audio, trackpad settings, funtion key settings
|
#Copy in acpi, pulse audio, trackpad settings, funtion key settings
|
||||||
cp -rf /os_configs/default.pa /etc/pulse/default.pa
|
cp -rf $DIR/default.pa /etc/pulse/default.pa
|
||||||
mkdir /etc/acpi
|
mkdir /etc/acpi
|
||||||
cp -rf /os_configs/sound.sh /etc/acpi/sound.sh
|
cp -rf $DIR/sound.sh /etc/acpi/sound.sh
|
||||||
mkdir /etc/acpi/events
|
mkdir /etc/acpi/events
|
||||||
cp -rf /os_configs/headphone-acpi-toggle /etc/acpi/events/headphone-acpi-toggle
|
cp -rf $DIR/headphone-acpi-toggle /etc/acpi/events/headphone-acpi-toggle
|
||||||
mkdir /etc/X11/xorg.conf.d/
|
mkdir /etc/X11/xorg.conf.d/
|
||||||
cp -rf /os_configs/50-synaptics.conf /etc/X11/xorg.conf.d/
|
cp -rf $DIR/50-synaptics.conf /etc/X11/xorg.conf.d/
|
||||||
|
|
||||||
locale-gen
|
|
||||||
|
|
||||||
echo " Enter new username: "
|
echo " Enter new username: "
|
||||||
read username
|
read username
|
27
scripts/InstallScripts/InstallToInternal.sh
Executable file
27
scripts/InstallScripts/InstallToInternal.sh
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#Install PrawnOS to the internal emmc, this will partition the internal emmc
|
||||||
|
#and erase ALL data on it
|
||||||
|
|
||||||
|
|
||||||
|
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
|
||||||
|
echo
|
||||||
|
if [[ $REPLY =~ ^[Yy]$ ]]
|
||||||
|
then
|
||||||
|
echo Writing partition map
|
||||||
|
sfdisk /dev/mmcblk2 < $RESOURCES/mmc.partmap
|
||||||
|
echo Writing kernel partition
|
||||||
|
dd if=/dev/sda1 of=/dev/mmcblk2p1
|
||||||
|
echo Writing Filesystem, this will take a moment...
|
||||||
|
#Set the post install script to run after reboot
|
||||||
|
./$RESOURCES/runonce.sh $RESOURCES/InstallPackages.sh
|
||||||
|
dd if=/dev/sda2 of=/dev/mmcblk2p2 bs=50M
|
||||||
|
echo Expanding Filesystem
|
||||||
|
e2fsck -p /dev/mmcblk2p2
|
||||||
|
resize2fs /dev/mmcblk2p2
|
||||||
|
echo Rebooting... Please remove the usb drive once shutdown is complete
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo Exiting
|
5
scripts/InstallScripts/InstallToUSB.sh
Normal file
5
scripts/InstallScripts/InstallToUSB.sh
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
#Install PrawnOS to an external device, the first usb by default
|
||||||
|
|
46
scripts/InstallScripts/runonce.sh
Executable file
46
scripts/InstallScripts/runonce.sh
Executable file
@ -0,0 +1,46 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [[ $# -eq 0 ]]; then
|
||||||
|
echo "Schedules a command to be run after the next reboot."
|
||||||
|
echo "Usage: $(basename $0) <command>"
|
||||||
|
echo " $(basename $0) -p <path> <command>"
|
||||||
|
echo " $(basename $0) -r <command>"
|
||||||
|
else
|
||||||
|
REMOVE=0
|
||||||
|
COMMAND=${!#}
|
||||||
|
SCRIPTPATH=$PATH
|
||||||
|
|
||||||
|
while getopts ":r:p:" optionName; do
|
||||||
|
case "$optionName" in
|
||||||
|
r) REMOVE=1; COMMAND=$OPTARG;;
|
||||||
|
p) SCRIPTPATH=$OPTARG;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
|
||||||
|
SCRIPT="${HOME}/.$(basename $0)_$(echo $COMMAND | sed 's/[^a-zA-Z0-9_]/_/g')"
|
||||||
|
|
||||||
|
if [[ ! -f $SCRIPT ]]; then
|
||||||
|
echo "PATH=$SCRIPTPATH" >> $SCRIPT
|
||||||
|
echo "cd $(pwd)" >> $SCRIPT
|
||||||
|
echo "logger -t $(basename $0) -p local3.info \"COMMAND=$COMMAND ; USER=\$(whoami) ($(logname)) ; PWD=$(pwd) ; PATH=\$PATH\"" >> $SCRIPT
|
||||||
|
echo "$COMMAND | logger -t $(basename $0) -p local3.info" >> $SCRIPT
|
||||||
|
echo "$0 -r \"$(echo $COMMAND | sed 's/\"/\\\"/g')\"" >> $SCRIPT
|
||||||
|
chmod +x $SCRIPT
|
||||||
|
fi
|
||||||
|
|
||||||
|
CRONTAB="${HOME}/.$(basename $0)_temp_crontab_$RANDOM"
|
||||||
|
ENTRY="@reboot $SCRIPT"
|
||||||
|
|
||||||
|
echo "$(crontab -l 2>/dev/null)" | grep -v "$ENTRY" | grep -v "^# DO NOT EDIT THIS FILE - edit the master and reinstall.$" | grep -v "^# ([^ ]* installed on [^)]*)$" | grep -v "^# (Cron version [^$]*\$[^$]*\$)$" > $CRONTAB
|
||||||
|
|
||||||
|
if [[ $REMOVE -eq 0 ]]; then
|
||||||
|
echo "$ENTRY" >> $CRONTAB
|
||||||
|
fi
|
||||||
|
|
||||||
|
crontab $CRONTAB
|
||||||
|
rm $CRONTAB
|
||||||
|
|
||||||
|
if [[ $REMOVE -ne 0 ]]; then
|
||||||
|
rm $SCRIPT
|
||||||
|
fi
|
||||||
|
fi
|
@ -6,37 +6,31 @@
|
|||||||
KVER=4.17.2
|
KVER=4.17.2
|
||||||
|
|
||||||
#Ensure Sudo
|
#Ensure Sudo
|
||||||
if [[ $UID != 0 ]]; then
|
if [ ! $UID = "0" ]
|
||||||
echo "Please run this script with sudo:"
|
then
|
||||||
|
echo "Please run this script with sudo, or as root:"
|
||||||
echo "sudo $0 $*"
|
echo "sudo $0 $*"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
outmnt=$(mktemp -d -p `pwd`)
|
outmnt=$(mktemp -d -p `pwd`)
|
||||||
inmnt=$(mktemp -d -p `pwd`)
|
|
||||||
|
|
||||||
outdev=/dev/loop4
|
outdev=/dev/loop4
|
||||||
indev=/dev/loop5
|
|
||||||
|
install_resources=resources/InstallResources
|
||||||
|
build_resources=resources/BuildResources
|
||||||
|
|
||||||
#A hacky way to ensure the loops are properly unmounted and the temp files are properly deleted.
|
#A hacky way to ensure the loops are properly unmounted and the temp files are properly deleted.
|
||||||
#Without this, a reboot is sometimes required to properly clean the loop devices and ensure a clean build
|
#Without this, a reboot is sometimes required to properly clean the loop devices and ensure a clean build
|
||||||
cleanup() {
|
cleanup() {
|
||||||
set +e
|
set +e
|
||||||
|
|
||||||
umount -l $inmnt > /dev/null 2>&1
|
|
||||||
rmdir $inmnt > /dev/null 2>&1
|
|
||||||
losetup -d $indev > /dev/null 2>&1
|
|
||||||
|
|
||||||
umount -l $outmnt > /dev/null 2>&1
|
umount -l $outmnt > /dev/null 2>&1
|
||||||
rmdir $outmnt > /dev/null 2>&1
|
rmdir $outmnt > /dev/null 2>&1
|
||||||
losetup -d $outdev > /dev/null 2>&1
|
losetup -d $outdev > /dev/null 2>&1
|
||||||
|
|
||||||
set +e
|
set +e
|
||||||
|
|
||||||
umount -l $inmnt > /dev/null 2>&1
|
|
||||||
rmdir $inmnt > /dev/null 2>&1
|
|
||||||
losetup -d $indev > /dev/null 2>&1
|
|
||||||
|
|
||||||
umount -l $outmnt > /dev/null 2>&1
|
umount -l $outmnt > /dev/null 2>&1
|
||||||
rmdir $outmnt > /dev/null 2>&1
|
rmdir $outmnt > /dev/null 2>&1
|
||||||
losetup -d $outdev > /dev/null 2>&1
|
losetup -d $outdev > /dev/null 2>&1
|
||||||
@ -64,7 +58,7 @@ create_image() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# create a 2GB image with the Chrome OS partition layout
|
# create a 2GB image with the Chrome OS partition layout
|
||||||
create_image librean-stretch-c201-libre-2GB.img $outdev 50M 40 $outmnt
|
create_image PrawnOS-Alpha-c201-libre-2GB.img $outdev 50M 40 $outmnt
|
||||||
|
|
||||||
# install Debian on it
|
# install Debian on it
|
||||||
export LC_ALL="en_US.UTF-8" #Change this as necessary if not US
|
export LC_ALL="en_US.UTF-8" #Change this as necessary if not US
|
||||||
@ -73,18 +67,18 @@ qemu-debootstrap --arch armhf stretch --include locales,init $outmnt http://deb.
|
|||||||
chroot $outmnt passwd -d root
|
chroot $outmnt passwd -d root
|
||||||
|
|
||||||
#Place the config files and installer script and give them the proper permissions
|
#Place the config files and installer script and give them the proper permissions
|
||||||
echo -n librean > $outmnt/etc/hostname
|
echo -n PrawnOS-Alpha > $outmnt/etc/hostname
|
||||||
cp -R os_configs/ $outmnt/os_configs/
|
cp -R $install_resources/ $outmnt/InstallResources/
|
||||||
cp Install.sh $outmnt/Install.sh
|
cp scripts/InstallScripts/* $outmnt/InstallResources/
|
||||||
chmod +x $outmnt/os_configs/sound.sh
|
cp scripts/InstallScripts/InstallToInternal.sh $outmnt/
|
||||||
chmod +x $outmnt/Install.sh
|
chmod +x $outmnt/*.sh
|
||||||
|
|
||||||
#install -D -m 644 80disable-recommends $outmnt/etc/apt/apt.conf.d/80disable-recommends #This should fix the issue of crda being installed but unconfigured causing regulatory.db firmware loading errors in dmesg
|
install -D -m 644 $build_resources/80disable-recommends $outmnt/etc/apt/apt.conf.d/80disable-recommends #This should fix the issue of crda being installed but unconfigured causing regulatory.db firmware loading errors in dmesg
|
||||||
|
|
||||||
#Setup the chroot for apt
|
#Setup the chroot for apt
|
||||||
#This is what https://wiki.debian.org/EmDebian/CrossDebootstrap suggests
|
#This is what https://wiki.debian.org/EmDebian/CrossDebootstrap suggests
|
||||||
cp /etc/hosts $outmnt/etc/
|
cp /etc/hosts $outmnt/etc/
|
||||||
cp sources.list $outmount/etc/apt/sources.list
|
cp $build_resources/sources.list $outmount/etc/apt/sources.list
|
||||||
|
|
||||||
#Setup the locale
|
#Setup the locale
|
||||||
cp /etc/locale.gen $outmnt/etc/
|
cp /etc/locale.gen $outmnt/etc/
|
||||||
@ -98,33 +92,19 @@ chroot $outmnt apt-get autoremove --purge
|
|||||||
chroot $outmnt apt-get clean
|
chroot $outmnt apt-get clean
|
||||||
|
|
||||||
#Download the packages to be installed by Install.sh: TODO: potentially dpkg-reconfigure locales?
|
#Download the packages to be installed by Install.sh: TODO: potentially dpkg-reconfigure locales?
|
||||||
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 wicd-daemon wicd wicd-curses wicd-gtk xserver-xorg-input-synaptics
|
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 wicd-daemon wicd wicd-curses wicd-gtk xserver-xorg-input-synaptics crda
|
||||||
|
|
||||||
#Cleanup hosts
|
#Cleanup hosts
|
||||||
rm -rf $outmnt/etc/hosts #This is what https://wiki.debian.org/EmDebian/CrossDebootstrap suggests
|
rm -rf $outmnt/etc/hosts #This is what https://wiki.debian.org/EmDebian/CrossDebootstrap suggests
|
||||||
echo -n "127.0.0.1 librean" > $outmnt/etc/hosts
|
echo -n "127.0.0.1 PrawnOS-Alpha" > $outmnt/etc/hosts
|
||||||
|
|
||||||
# put the kernel in the kernel partition, modules in /lib/modules and AR9271
|
# put the kernel in the kernel partition, modules in /lib/modules and AR9271
|
||||||
# firmware in /lib/firmware
|
# firmware in /lib/firmware
|
||||||
dd if=linux-$KVER/vmlinux.kpart of=${outdev}p1 conv=notrunc
|
dd if=build/linux-$KVER/vmlinux.kpart of=${outdev}p1 conv=notrunc
|
||||||
make -C linux-$KVER ARCH=arm INSTALL_MOD_PATH=$outmnt modules_install
|
make -C build/linux-$KVER ARCH=arm INSTALL_MOD_PATH=$outmnt modules_install
|
||||||
rm -f $outmnt/lib/modules/3.14.0/{build,source}
|
rm -f $outmnt/lib/modules/3.14.0/{build,source}
|
||||||
install -D -m 644 open-ath9k-htc-firmware/target_firmware/htc_9271.fw $outmnt/lib/firmware/ath9k_htc/htc_9271-1.4.0.fw
|
install -D -m 644 build/open-ath9k-htc-firmware/target_firmware/htc_9271.fw $outmnt/lib/firmware/ath9k_htc/htc_9271-1.4.0.fw
|
||||||
|
|
||||||
# create a 15GB image
|
|
||||||
create_image librean-stretch-c201-libre-15GB.img $indev 512 30777343 $inmnt
|
|
||||||
|
|
||||||
# copy the kernel and / of the 2GB image to the 15GB one
|
|
||||||
dd if=${outdev}p1 of=${indev}p1 conv=notrunc
|
|
||||||
cp -a $outmnt/* $inmnt/
|
|
||||||
|
|
||||||
#Cleanup the 15GB image
|
|
||||||
umount -l $inmnt
|
|
||||||
rmdir $inmnt
|
|
||||||
losetup -d $indev
|
|
||||||
|
|
||||||
# move the 15GB image inside the 2GB one
|
|
||||||
cp -f librean-stretch-c201-libre-15GB.img $outmnt/
|
|
||||||
echo "DONE!"
|
echo "DONE!"
|
||||||
cleanup
|
cleanup
|
||||||
|
|
@ -6,6 +6,10 @@
|
|||||||
KVER=4.17.2
|
KVER=4.17.2
|
||||||
TEST_PATCHES=false
|
TEST_PATCHES=false
|
||||||
|
|
||||||
|
ROOT_DIR=`pwd`
|
||||||
|
RESOURCES=$ROOT_DIR/resources/BuildResources
|
||||||
|
|
||||||
|
cd build
|
||||||
# build Linux-libre, with ath9k_htc, dwc2 from Chrome OS and without many useless drivers
|
# build Linux-libre, with ath9k_htc, dwc2 from Chrome OS and without many useless drivers
|
||||||
[ ! -f linux-libre-$KVER-gnu.tar.lz ] && wget https://www.linux-libre.fsfla.org/pub/linux-libre/releases/$KVER-gnu/linux-libre-$KVER-gnu.tar.lz
|
[ ! -f linux-libre-$KVER-gnu.tar.lz ] && wget https://www.linux-libre.fsfla.org/pub/linux-libre/releases/$KVER-gnu/linux-libre-$KVER-gnu.tar.lz
|
||||||
[ ! -d linux-$KVER ] && tar --lzip -xvf linux-libre-$KVER-gnu.tar.lz && FRESH=true
|
[ ! -d linux-$KVER ] && tar --lzip -xvf linux-libre-$KVER-gnu.tar.lz && FRESH=true
|
||||||
@ -13,18 +17,18 @@ cd linux-$KVER
|
|||||||
make clean
|
make clean
|
||||||
make mrproper
|
make mrproper
|
||||||
#Apply the usb and mmc patches if unapplied
|
#Apply the usb and mmc patches if unapplied
|
||||||
[ "$FRESH" = true ] && for i in ../patches-tested/*.patch; do patch -p1 < $i; done
|
[ "$FRESH" = true ] && for i in $RESOURCES/patches-tested/*.patch; do patch -p1 < $i; done
|
||||||
[ "$FRESH" = true ] && for i in ../patches-tested/DTS/*.patch; do patch -p1 < $i; done
|
[ "$FRESH" = true ] && for i in $RESOURCES/patches-tested/DTS/*.patch; do patch -p1 < $i; done
|
||||||
[ "$FRESH" = true ] && for i in ../patches-tested/kernel/*.patch; do patch -p1 < $i; done
|
[ "$FRESH" = true ] && for i in $RESOURCES/patches-tested/kernel/*.patch; do patch -p1 < $i; done
|
||||||
#Apply all of the rockMyy patches that make sense
|
#Apply all of the rockMyy patches that make sense
|
||||||
[ "$TEST_PATCHES" = true ] && for i in ../patches-untested/kernel/*.patch; do patch -p1 < $i; done
|
[ "$TEST_PATCHES" = true ] && for i in $RESOURCES/patches-untested/kernel/*.patch; do patch -p1 < $i; done
|
||||||
[ "$TEST_PATCHES" = true ] && for i in ../patches-untested/DTS/*.patch; do patch -p1 < $i; done
|
[ "$TEST_PATCHES" = true ] && for i in $RESOURCES/patches-untested/DTS/*.patch; do patch -p1 < $i; done
|
||||||
# reset the minor version number, so out-of-tree drivers continue to work after
|
# reset the minor version number, so out-of-tree drivers continue to work after
|
||||||
# a kernel upgrade
|
# a kernel upgrade **TODO - is this needed?
|
||||||
sed s/'SUBLEVEL = .*'/'SUBLEVEL = 0'/ -i Makefile
|
# sed s/'SUBLEVEL = .*'/'SUBLEVEL = 0'/ -i Makefile
|
||||||
cp ../config .config
|
cp $RESOURCES/config .config
|
||||||
make -j `grep ^processor /proc/cpuinfo | wc -l` CROSS_COMPILE=arm-none-eabi- ARCH=arm zImage modules dtbs
|
make -j `grep ^processor /proc/cpuinfo | wc -l` CROSS_COMPILE=arm-none-eabi- ARCH=arm zImage modules dtbs
|
||||||
[ ! -h kernel.its ] && ln -s ../kernel.its .
|
[ ! -h kernel.its ] && ln -s $RESOURCES/kernel.its .
|
||||||
mkimage -D "-I dts -O dtb -p 2048" -f kernel.its vmlinux.uimg
|
mkimage -D "-I dts -O dtb -p 2048" -f kernel.its vmlinux.uimg
|
||||||
dd if=/dev/zero of=bootloader.bin bs=512 count=1
|
dd if=/dev/zero of=bootloader.bin bs=512 count=1
|
||||||
vbutil_kernel --pack vmlinux.kpart \
|
vbutil_kernel --pack vmlinux.kpart \
|
||||||
@ -33,7 +37,7 @@ vbutil_kernel --pack vmlinux.kpart \
|
|||||||
--arch arm \
|
--arch arm \
|
||||||
--keyblock /usr/share/vboot/devkeys/kernel.keyblock \
|
--keyblock /usr/share/vboot/devkeys/kernel.keyblock \
|
||||||
--signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
|
--signprivate /usr/share/vboot/devkeys/kernel_data_key.vbprivk \
|
||||||
--config ../cmdline \
|
--config $RESOURCES/cmdline \
|
||||||
--bootloader bootloader.bin
|
--bootloader bootloader.bin
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
@ -44,3 +48,4 @@ cd open-ath9k-htc-firmware
|
|||||||
make toolchain
|
make toolchain
|
||||||
make -C target_firmware
|
make -C target_firmware
|
||||||
cd ..
|
cd ..
|
||||||
|
cd $ROOT_DIR
|
Loading…
Reference in New Issue
Block a user