From mboxrd@z Thu Jan 1 00:00:00 1970 From: Timothy Sample Subject: Re: Guix on the ASUS C201PA Date: Sun, 17 Mar 2019 11:20:25 -0400 Message-ID: <877ecxzfwm.fsf@ngyro.com> References: <875zswjwoc.fsf@ngyro.com> <87lg1s4bv9.fsf@ponder> <871s3kjcnj.fsf@ngyro.com> <87va0rzbze.fsf@ponder> <874l82ngip.fsf@ponder> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([209.51.188.92]:39313) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1h5Xfz-0003IU-IG for guix-devel@gnu.org; Sun, 17 Mar 2019 11:26:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1h5XaT-0008HT-54 for guix-devel@gnu.org; Sun, 17 Mar 2019 11:20:34 -0400 Received: from out2-smtp.messagingengine.com ([66.111.4.26]:37169) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1h5XaQ-0008GM-QN for guix-devel@gnu.org; Sun, 17 Mar 2019 11:20:31 -0400 In-Reply-To: <874l82ngip.fsf@ponder> (Vagrant Cascadian's message of "Sat, 16 Mar 2019 23:47:58 -0700") List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+gcggd-guix-devel=m.gmane.org@gnu.org Sender: "Guix-devel" To: Vagrant Cascadian Cc: guix-devel@gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Vagrant Cascadian writes: > With libreboot re-installed, it's working for me as well! Hooray! > I haven't tried just applying the minimal patches and/or configuration > on top of Guix's linux-libre, but that seems like a logical next step... One thing worth trying might be to turn off the patches in PrawnOS kernel, to see if they make a difference for booting. I think it is mostly the configuration that is making the difference. Also, I wrote a little script (see attached) that looks for semantic differences in kernel configuration files. I=E2=80=99ll attach it in case = you could use it. My approach was to compare the PrawnOS and Arch Linux ARM configurations against the Guix one, and find things that former two have in common that Guix lacks. To this end, you can run guile --no-auto-compile kconfig.scm guix.cfg prawnos.cfg alarm.cfg and it should tell you all the things that both the working configurations explicitly enable (either as =E2=80=9Cm=E2=80=9D or =E2=80= =9Cy=E2=80=9D) that Guix does not. (I found the output a little cleaner than using =E2=80=9Cdiff=E2=80= =9D, =E2=80=9Csort=E2=80=9D, and friends.) --=-=-= Content-Type: text/plain Content-Disposition: attachment; filename=kconfig.scm (use-modules (ice-9 match) (ice-9 rdelim)) (define (read-config path) (call-with-input-file path (lambda (port) (let loop ((line (read-line port)) (acc '())) (if (eof-object? line) acc (match (string-split line #\=) ((key-part value-part) (let ((key (string->symbol key-part)) (value (match value-part ("y" #t) ("n" #f) ("m" 'm) ((? (lambda (x) (string-prefix? "0x" x))) (string->number (substring value-part 2) 16)) (_ (call-with-input-string value-part read))))) (loop (read-line port) (cons `(,key . ,value) acc)))) (_ (loop (read-line port) acc)))))))) (define (kequal? a b) (or (equal? a b) (and (memq a '(m #t)) (memq b '(m #t))))) (match (program-arguments) ((_ p1 p2 p3) (let ((c1 (read-config p1)) (c2 (read-config p2)) (c3 (read-config p3))) (for-each (match-lambda ((k2 . v2) (let ((v1 (match (assq k2 c1) ((_ . v1) v1) (#f 'nil))) (v3 (match (assq k2 c3) ((_ . v3) v3) (#f 'nil)))) (unless (or (kequal? v1 v2) (kequal? v1 v3)) (write `(,k2 ,v1 -> ,v2 / ,v3)) (newline))))) c2)))) --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable >> I did manage to get the rockchip.usb_uart with a hacked up USB cable to >> produce a serial console for debugging and actually seeing the kernel >> logs rather than them scrolling pass the screen only to give a kernel >> panic. >> >> (kernel-arguments '("console=3DttyS2,115200" "rockchip.usb_uart")) > > To be clear, this feature doesn't actually make a serial console over > USB, it somehow "rewires" one of the USB ports to have a ground, rx and > tx serial-ttl pinout. So you pretty much need a custom USB-A plug and > solder/crimp the bare wires to a serial-ttl adapter. Slightly more > details in Documentation/admin-guide/kernel-parameters.txt. I made one of these cables, but wasn=E2=80=99t sure if it worked, and I did= n=E2=80=99t know what settings I needed in the kernel to make it work. Thanks for figuring this out! I hope that it gives you a nicer way to debug the kernel when it boots to a white screen. Thanks for testing and working on this. -- Tim --=-=-=--