14 Commits 75eb210f3a ... c27dfe1000

Autor SHA1 Mensaje Fecha
  Dima Krasner c27dfe1000 Merge branch 'mainline' hace 6 años
  Dima Krasner c75ab44f3f Documented dongle support hace 6 años
  Dima Krasner 0e31c14212 Added btusb and btintel, for CSR8150 dongle support hace 6 años
  Dima Krasner a5d21fabf9 Removed unneeded kernel features and added some speed improvements hace 6 años
  Dima Krasner d40b34a1f4 Documented the m4 build dependency hace 6 años
  Dima Krasner 7abe3833b2 Made the dependencies installation command copy-paste ready hace 6 años
  Dima Krasner 6489f678f2 Added UVC support hace 6 años
  Dima Krasner 765049b00e Re-added CH341 support hace 6 años
  Dima Krasner 1b5ca99792 Updated Devuan to 2.0 hace 6 años
  Dima Krasner 2e343ff23a Removed redundant drivers hace 6 años
  Dima Krasner f6b8aa5081 Worked around ath9k_htc instability issues hace 6 años
  Dima Krasner 5f4c0e3ff8 Fixed deletion of kernel source symlinks hace 6 años
  Dima Krasner fdba38db18 Updated the kernel to 4.9.127 hace 6 años
  Dima Krasner a4dd8b59e5 Switched from the Chrome OS 3.14 branch to Linux-libre 4.9 hace 7 años
Se han modificado 6 ficheros con 1605 adiciones y 1263 borrados
  1. 3 4
      .gitignore
  2. 23 19
      README
  3. 1 1
      cmdline
  4. 1522 1177
      config
  5. 22 18
      devsus.sh
  6. 34 44
      kernel.its

+ 3 - 4
.gitignore

@@ -1,5 +1,4 @@
-devuan-jessie-c201-libre-*GB.img
-chromeos-3.14
-deblob-3.14
-deblob-check
+devuan-*-c201-libre-*GB.img
+linux-*
 open-ath9k-htc-firmware
+ath9k_htc_do_not_use_bulk_on_ep3_and_ep4.patch

+ 23 - 19
README

@@ -4,7 +4,6 @@
 | (_| |  __/\ V /\__ \ |_| \__ \
  \__,_|\___| \_/ |___/\__,_|___/
 
-
 Overview
 ========
 
@@ -13,12 +12,16 @@ images for the Asus C201 Chromebook, one of the few laptops able to boot and run
 without any non-free software, all the way down to the firmware level. The C201
 is supported by Libreboot (http://www.libreboot.org/).
 
-The images produced by Devsus contain the latest Chrome OS kernel, deblobbed
-using the Linux-libre (http://linux-libre.fsfla.org/) scripts and tuned for
-smaller size, better performance and shorter boot times.
+The images produced by Devsus contain a Linux-libre
+(http://linux-libre.fsfla.org/) longterm kernel tuned for small size, good
+performance and short boot times.
+
+Some features of the RK3288 SoC, including built-in WiFi support, require use of
+non-free software. Therefore, they are unsupported by Devsus. To compensate for
+that, the Devsus kernel includes support for freedom-friendly devices:
 
-In addition, the images contain the latest firmware for the freedom-friendly,
-Atheros AR9271 based WiFi dongles.
+	- Firmware for Atheros AR9271 based WiFi dongles
+	- Drivers for Qualcomm CSR8510 based Bluetooth dongles
 
 Moreover, the Devuan installation is very minimal and consists of a barebones
 Devuan base, plus crucial command-line tools, like those required to connect to
@@ -27,15 +30,16 @@ a WiFi network.
 Dependencies
 ============
 
-Devsus has been tested on Devuan 1 (Jessie) on x86_64, with the following
+Devsus has been tested on Devuan 2 (ASCII) on x86_64, with the following
 packages installed:
 
 	apt install --no-install-recommends --no-install-suggests \
 		parted cgpt \
 		git gawk device-tree-compiler vboot-kernel-utils gcc-arm-none-eabi \
-		u-boot-tools \
-		gcc make libc-dev wget g++ cmake m4 patch \
-		binfmt-support qemu-user-static debootstrap
+			u-boot-tools \
+		gcc make libc-dev wget g++ cmake \
+		binfmt-support qemu-user-static debootstrap \
+		bc wget xz-utils m4
 
 Building
 ========
@@ -44,9 +48,9 @@ Building
 
 This produces two Devuan disk images:
 
-	1) devuan-jessie-c201-libre-16GB.img, a 16 GB image suitable for persistent
+	1) devuan-ascii-c201-libre-16GB.img, a 16 GB image suitable for persistent
 	   installation; its size should be exactly the size of the internal SSD
-	2) devuan-jessie-c201-libre-2GB.img, a 2 GB image suitable for booting the
+	2) devuan-ascii-c201-libre-2GB.img, a 2 GB image suitable for booting the
 	   laptop off USB
 
 Usage
@@ -55,7 +59,7 @@ Usage
 To produce a bootable media, write the 2 GB image to a flash drive (of at least
 2 GB):
 
-	# dd if=$SOMEWHERE/devuan-jessie-c201-libre-2GB.img of=/dev/$DEVICE bs=50M
+	# dd if=$SOMEWHERE/devuan-ascii-c201-libre-2GB.img of=/dev/$DEVICE bs=50M
 
 The root password is blank.
 
@@ -65,16 +69,13 @@ persistently without having to download or store the large image separately.
 
 Persistent installation is performed using dd, too:
 
-	# dd if=/devuan-jessie-c201-libre-16GB.img of=/dev/mmcblk0 bs=50M
+	# dd if=/devuan-ascii-c201-libre-16GB.img of=/dev/mmcblk0
 
 Modifications
 =============
 
 The images produced by Devsus are very close to stock Devuan:
 
-	- Many redundant drivers were removed from the kernel
-	- Several responsiveness or performance vs. power consumption kernel
-	  configuration choices have been changed
 	- APT has been configured not to install "recommended" packages by default
 	- Some critical (like udev) or useful (like iw) packages have been added
 	- unscd has been added, to cache DNS
@@ -83,8 +84,11 @@ The images produced by Devsus are very close to stock Devuan:
 Credits and Legal Information
 =============================
 
-Devsus' kernel building procedure is based on the linux-veyron package of Arch
-Linux ARM (http://www.archlinuxarm.org/).
+Devsus' previous kernel building procedure was based on the linux-veyron package
+of Arch Linux ARM (http://www.archlinuxarm.org/).
+
+Devsus' workaround for ath9k_htc instability issues has been adopted from
+PrawnOS (https://github.com/SolidHal/PrawnOS) and found by SolidHal.
 
 Devsus 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

+ 1 - 1
cmdline

@@ -1 +1 @@
-console=tty1 init=/sbin/init root=PARTUUID=%U/PARTNROFF=1 rootfstype=ext4 rootwait rw quiet
+console=tty1 init=/sbin/init root=PARTUUID=%U/PARTNROFF=1 rootfstype=ext4 rootwait rw

La diferencia del archivo ha sido suprimido porque es demasiado grande
+ 1522 - 1177
config


+ 22 - 18
devsus.sh

@@ -2,7 +2,7 @@
 
 #  this file is part of Devsus.
 #
-#  Copyright 2017 Dima Krasner
+#  Copyright 2017, 2018 Dima Krasner
 #
 #  This program is free software; you can redistribute it and/or modify
 #  it under the terms of the GNU General Public License as published by
@@ -19,6 +19,8 @@
 #  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
 #  MA 02110-1301, USA.
 
+KVER=4.9.127
+
 outmnt=$(mktemp -d -p `pwd`)
 inmnt=$(mktemp -d -p `pwd`)
 
@@ -39,16 +41,18 @@ cleanup() {
 
 trap cleanup INT TERM EXIT
 
-# build the Chrome OS kernel, with ath9k_htc and without many useless drivers
-[ ! -d chromeos-3.14 ] && git clone --depth 1 -b chromeos-3.14 https://chromium.googlesource.com/chromiumos/third_party/kernel chromeos-3.14
-[ ! -f deblob-3.14 ] && wget http://linux-libre.fsfla.org/pub/linux-libre/releases/LATEST-3.14.N/deblob-3.14
-[ ! -f deblob-check ] && wget http://linux-libre.fsfla.org/pub/linux-libre/releases/LATEST-3.14.N/deblob-check
-cd chromeos-3.14
-# deblob as much as possible - the diff against vanilla 3.14.x is big but
-# blob-free ath9k_htc should be only driver that requests firmware
-AWK=gawk sh ../deblob-3.14 --force
-export WIFIVERSION=-3.8
-./chromeos/scripts/prepareconfig chromiumos-rockchip
+# build Linux-libre
+[ ! -f linux-libre-$KVER-gnu.tar.xz ] && wget https://www.linux-libre.fsfla.org/pub/linux-libre/releases/$KVER-gnu/linux-libre-$KVER-gnu.tar.xz
+[ ! -d linux-$KVER ] && tar -xJf linux-libre-$KVER-gnu.tar.xz
+[ ! -f ath9k_htc_do_not_use_bulk_on_ep3_and_ep4.patch ] && wget -O ath9k_htc_do_not_use_bulk_on_ep3_and_ep4.patch https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/patch/?id=2b721118b7821107757eb1d37af4b60e877b27e7
+cd linux-$KVER
+make clean
+make mrproper
+# work around instability of ath9k_htc, see https://github.com/SolidHal/PrawnOS/issues/38
+patch -R -p 1 < ../ath9k_htc_do_not_use_bulk_on_ep3_and_ep4.patch
+# reset the minor version number, so out-of-tree drivers continue to work after
+# a kernel upgrade
+sed s/'SUBLEVEL = .*'/'SUBLEVEL = 0'/ -i Makefile
 cp ../config .config
 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 .
@@ -90,10 +94,10 @@ create_image() {
 }
 
 # create a 2GB image with the Chrome OS partition layout
-create_image devuan-jessie-c201-libre-2GB.img $outdev 50M 40 $outmnt
+create_image devuan-ascii-c201-libre-2GB.img $outdev 50M 40 $outmnt
 
 # install Devuan on it
-qemu-debootstrap --arch=armhf --foreign jessie --variant minbase $outmnt http://packages.devuan.org/merged
+qemu-debootstrap --arch=armhf --foreign ascii --variant minbase $outmnt http://packages.devuan.org/merged
 chroot $outmnt passwd -d root
 echo -n devsus > $outmnt/etc/hostname
 install -D -m 644 80disable-recommends $outmnt/etc/apt/apt.conf.d/80disable-recommends
@@ -108,13 +112,13 @@ rm -f $outmnt/etc/resolv.conf
 
 # put the kernel in the kernel partition, modules in /lib/modules and AR9271
 # firmware in /lib/firmware
-dd if=chromeos-3.14/vmlinux.kpart of=${outdev}p1 conv=notrunc
-make -C chromeos-3.14 ARCH=arm INSTALL_MOD_PATH=$outmnt modules_install
-rm -f $outmnt/lib/modules/3.14.0/{build,source}
+dd if=linux-$KVER/vmlinux.kpart of=${outdev}p1 conv=notrunc
+make -C linux-$KVER ARCH=arm INSTALL_MOD_PATH=$outmnt modules_install
+rm -f $outmnt/lib/modules/${KVER%.*}.0/{build,source}
 install -D -m 644 open-ath9k-htc-firmware/target_firmware/htc_9271.fw $outmnt/lib/firmware/htc_9271.fw
 
 # create a 16GB image
-create_image devuan-jessie-c201-libre-16GB.img $indev 512 30785536 $inmnt
+create_image devuan-ascii-c201-libre-16GB.img $indev 512 30785536 $inmnt
 
 # copy the kernel and / of the 2GB image to the 16GB one
 dd if=${outdev}p1 of=${indev}p1 conv=notrunc
@@ -125,4 +129,4 @@ rmdir $inmnt
 losetup -d $indev
 
 # move the 16GB image inside the 2GB one
-cp -f devuan-jessie-c201-libre-16GB.img $outmnt/
+cp -f devuan-ascii-c201-libre-16GB.img $outmnt/

+ 34 - 44
kernel.its

@@ -1,48 +1,38 @@
 /dts-v1/;
 
 / {
-    description = "Chrome OS kernel image with one or more FDT blobs";
-    images {
-        kernel@1{
-            description = "kernel";
-            data = /incbin/("arch/arm/boot/zImage");
-            type = "kernel_noload";
-            arch = "arm";
-            os = "linux";
-            compression = "none";
-            load = <0>;
-            entry = <0>;
-        };
-        fdt@1{
-            description = "rk3288-speedy.dtb";
-            data = /incbin/("arch/arm/boot/dts/rk3288-speedy.dtb");
-            type = "flat_dt";
-            arch = "arm";
-            compression = "none";
-            hash@1{
-                algo = "sha1";
-            };
-        };
-        fdt@2{
-            description = "rk3288-speedy-rev1.dtb";
-            data = /incbin/("arch/arm/boot/dts/rk3288-speedy-rev1.dtb");
-            type = "flat_dt";
-            arch = "arm";
-            compression = "none";
-            hash@1{
-                algo = "sha1";
-            };
-        };
-    };
-    configurations {
-        default = "conf@1";
-        conf@1{
-            kernel = "kernel@1";
-            fdt = "fdt@1";
-        };
-        conf@2{
-            kernel = "kernel@1";
-            fdt = "fdt@2";
-        };
-    };
+	description = "Linux-libre kernel image with one or more FDT blobs";
+	#address-cells = <1>;
+	images {
+		kernel {
+			description = "vmlinuz";
+			data = /incbin/("arch/arm/boot/zImage");
+			type = "kernel_noload";
+			arch = "arm";
+			os = "linux";
+			compression = "none";
+			load = <0>;
+			entry = <0>;
+			hash {
+				algo = "sha1";
+			};
+		};
+		fdt {
+			description = "dtb";
+			data = /incbin/("arch/arm/boot/dts/rk3288-veyron-speedy.dtb");
+			type = "flat_dt";
+			arch = "arm";
+			compression = "none";
+			hash {
+				algo = "sha1";
+			};
+		};
+	};
+	configurations {
+		default = "conf";
+		conf{
+			kernel = "kernel";
+			fdt = "fdt";
+		};
+	};
 };